Resolution #4: Take More Advantage Of Free Education...

Date: 1-4-2014

Due Date: 1-4-2015

Resolution: Take advantage of free online education by signing up for and completing at least two free online courses.

1) This online Computer Science Course provided by Harvard.

Credit: Inspired by a Facebook post from Erica Ellis.

 
results.png

Result #4: This Is Just A Placeholder For A Future Success Post…

 

Update #1: The Class…

Date: 1-17-2014

I'm now officially enrolled in this course. I've yet to take a class but I'm enrolled!

 

Update #2: Free Harvard Classes!!!

Date: 1-17-2014

harvard_crimson_veritas.jpg

I woke up too early today, too tired to be productive, too early to be creative. I was going to just sit around and watch some British guy play video games on YouTube until I went back to sleep, but as you can see from my list of resolutions I've got shit to do.

It's now noon. I'm awake enough to not fall asleep, but still not ready to work on any creative projects. Being that I just signed up for this free Harvard class I figured why not start now?

 

Update: #3: First Day Of Class…

Date: 1-17-2014

So I logged in watched the introductory video, printed and read the syllabus and instructions and now I'm just waiting for the main lecture to download. I could watch the video streaming but I live in an apartment so my internet gets choppy at times. I figured instead that I'd take a recess and play for a bit.

This is part of my playing.

As part of the instructions… they give you suggestions as to how you can get the most out of the experience.

  • Join their group on Facebook

  • Like their page on Facebook

  • Bug the teacher to say hello

  • Do the same type of thing with Twitter

  • Start a conversation on their subreddit page

I did everything but the subreddit step. I'm not all that familiar with Reddit, but it turns out that I already had an account. It must have been from a while back when I was the Best Boy Electric for a movie starring Cary Elwes. I heard there was a picture with me my friend/boss and Cary was getting attention. I must have signed up then.

Anyways enough with the name dropping. I didn't post anything about the class to Reddit, but I did post a link to this project.

Alright back to my Harvard experience. I found two interesting facts about this course.

  1. I have a final project where I will have to develop software that they ask will, "be of interest to you, that you solve an actual problem, or that you change the world."

    • Though the development of this software will fall under this education resolution… but …what that software does will definitely be a resolution of its own!

  2. There are nine assignments and a final. For the assignments… there is a "Standard Edition" and a "Hacker Edition". I'm going to stick with standard but only because the hacker edition of the assignment does not go towards your credits to get that PDF certificate at the end.

Well, it looks like lecture one is complete.

Recess over.

 

Update #4: Let There Be Puppets!!!

Date: 1-17-2014

Holy shit the lecture started with puppets...

... oh and binary makes way more sense to me now!!!

I just finished watching the first lecture and I can't wait to continue on with this course. I guess I always got the gist of binary, stuff is made up of ones and zeros but if you were to waterboard me I wouldn't be able to tell you any more than that. I probably would still get jumbled up if I were to try and explain it to someone else but it now makes sense in my head.

This first lecture was very introductory but in an entertaining way. As I pointed out it starts with a puppet and continues on to be a great blend of entertainment and education. Not entertainment as in skits and other wackiness but David J. Malan, the host/professor has a very entertaining style of conveying information. This lecture felt more like a TedTalk than the tutorial that I was half expecting to watch.

Along with understanding the concept binary better… I'm also more comfortable with a few other concepts that up until now I just kind of had a grasp on. That not to say that I'm now magically an expert at any of this stuff. I'm just saying after this first lecture I trust that I'm going to get a lot out of this course.

I want to jump right into the next lecture but this course is set up to where they give you a week's worth of material at a time. Though I have access to all the material for the week my mind started to wander towards the end so I think I would be better of if I didn't marathon watch this course and risk it becoming nothing but background noise.

I'm really excited about this resolution!

 

Update #5: Back To School…

Date: 1-18-2014

I just got done watching the second lecture and now I'm very excited to get to work on my homework assignment... Damn… I haven't had homework in years... wait the whole resolution thing is nothing more than homework assignments that I'm giving to myself...

Whatever I'm excited either way.

I did attend ITT for a couple of months so I do have a little experience with the concepts of programming but I never had much practice actually writing any code so it was pretty easy to follow along with the theories introduced in the lecture. 

Again the teacher has an entertaining way of guiding the discussion, and again being that I'm here in the comfort of my own home my mind did wander from time to time. Luckily those mind wondering moments seemed to take place right when he would have students come up to play video games (to give samples of past projects, not just a random act of weirdness) so, I'd chose those moments to zone out.

For my first homework assignment… I get to create whatever I want using Scratch, a fun program that seems more like a puzzle game than programming software. I think this is my favorite part of the course, it's not intimidating and it's actually designed as an introduction to programming without treating you like a moron. He has yet to say anything like, "If you click “file” you will see a drop-down menu, from there you will click new to open a new project..." I always hate when I do a tutorial and they go that far back into explaining the basics and have yet to see that happen here, but who knows, it could still happen.

I found one more thing interesting about this lecture. The first week he used these lamps turning them on and off as an example of how binary works...

Those lamps returned in this weeks lecture, then I looked over at my bed and realized...

I don't know if it's the same model but close enough to be interesting...

At least to me.

 

Update #6: So That’s How Binary Works!!! 

Date: 1-21-2014

Having completed the lectures earlier in the week today was the day for me to learn more about my first homework assignment.

I clicked on the link that led me to the page with instructions and a quick recap of things that might be important for one to know to complete the assignment. The first video was a recap on the concept of binary (the above video.)

The other day I was so proud of myself for finally feeling like I understand binary more than just the concept that everything is broken down to nothing but ones and zeros. When the video started an old habit kicked in of me thinking, "Ah, I remember this stuff from the original lecture, I just want to get to the assignment already."

So I stopped the video and begin to hunt for the actual assignment description. Luckily you have to scroll through a lot of stuff before getting to the actual nuts and bolts of the assignment because as I started to skim through the recaps I realized, "Wait? Do I know this stuff?"

That's when I realized in order to get the most out of this free opportunity I actually need to read all the content and not just cherry-pick the information that I need to fulfill the assignment.

So I did all the reading and watched all the videos.

I even tested myself and my understanding of binary. Whenever this new host would introduce a new concept, I would pause the video and try and figure out the answers to his questions before he walked us through the step by step process and was very proud of myself that I was right every time.

Each time I log into this class I am more and more confident that I'll make it all the way through!

My next update for this resolution will be my completed assignment. I have a bit of an ambitious yet silly idea, so it might take a while but even if I'm silent I'm always working on something.

Can't wait to share!!!

 

Update #7: Fun With The Scratch Cat!!!

Date: 1-25-2014

Assignment number 0 is done!!!

Click here to see what I put this poor cat through.

This is what I spent the last couple of days working on in the morning while I waited for it to get dark to write.

I put way more time and effort into this than I needed to and had fun doing it. Once I got to the midpoint I decided that I need to learn Photoshop and that's why I made Resolution #24, and pretty much started over.

It was kind of a pain because it's not all that easy to test a section at a time with this program. If you really want to see if the changes you make are working correctly then you have to watch the entire thing from the start.

You can test just a line of code, but the sprites (characters) will just start doing their thing where ever they happen to be at the time at not at the place where you set them to be when the entire code runs. So if you're not paying attention you can trigger all kinds of chaos.

I don't know how I came up with the idea but it wasn't until today that I realized most of the characters can be referring to coding.

Alright now that that's over with it's time to take a little break from school and work on some of these other resolutions. I figure there are 11 lessons and the final is due on December 29th. I can do one section a month and still make it in time.

That said I'm going to try to get these weekly lessons over with as quickly as I can so that I can spend more time on the final project.

Now go see what that cat's up to!!!

(PS If you find it annoying try watching it 100 times in a row, why angry because something is not quite right.)

 

Update #8: An Introduction To C And Linux

Date: 1-31-2014

It feels like it's been forever since I worked on this resolution, but then I noticed that my last update was less than a week ago. Sometimes I feel like l need to take more breaks and not beat myself up when I'm unable to get as much done as I hoped while planning my tasks for the day. It's that neurotic need to check things off lists that make me know that I'll complete this experiment. I'm still prepared to fail at some of the resolutions, but I'm going to give it my all.

Today was pretty rough. I am dog/house-sitting for some friends while they're out of town. I'm having to adjust to working on a strange computer, with technology that's similar to what I have at home only different enough to cause complications.

For example… I have a Sony media player at home and that thing will play any form of media. You can network it to your computer or you can stab it with a thumb drive, if there is media anywhere it will play it. My friends own a Roku that is networked to their computer, but it's very picky as to what it will play.

I mention this because I spent a couple of hours trying to transfer this week's lecture onto this stupid device. When I say I spent hours, most of that time was spent working on different resolutions as I had the lecture converting into different file formats in the background. I just wanted to watch the lecture in the living room with the dogs where it would've been way more comfortable than watching it on the computer.

I never figured it out and rather than waste more time I just watched the lecture on the computer. I did have a dog sleeping at my feet, that was pretty cool.

I fired up the lecture and was a little confused. The first twelve minutes were spent explaining how the course works. I thought that was all taken care of last week, but I guess that's why this is actually called week one, where last week was week zero. I guess week zero is optional? 

I don't know.

That was the only confusing part. Once the instructor was done with the introductions the rest of the lecture was great. I love how this guy is both informative and entertaining.

This week was an introduction to C and Linux. I'm old enough that when I was in High School our computer lab was filled with machines that ran on DOS so the logic of this language makes sense to me.

It's very interesting to revisit this old school form of programming because now it makes way more sense to me than it did back then or at least now I'm way more interested in what I can do with it. Other than spending hours writing a code that when you hit run it would create a smiley face by repeating the f word over and over again, I saw no use for computers at that time.

And here I am now.

I'm looking forward to watching the second lecture so that I can move on to the actual assignment. I continue to be blown away by how useful this class is and that it's absolutely free.

Stay tuned for more updates.

 

Update #9: Lecture #Two…

Date: 2-1-2014

I just got done watching the 2nd lecture from Week 1's learning material. I have to admit. It left me kind of confused, not by the material that was covered but by the fact that it seemed to cover the same material from the lecture I watched last night. 

I wasn't too bothered by this because it felt like it was repetitive as a way to really get the information to stick. In the first half… the instructor shared a few examples using a couple of students to show how computer processes would work in the real world.  

By the time he got to the actual programming examples… they were just abridged versions of the same exact examples from the last lecture.  I ended up getting bored and zoning out. By the time he got to the new material toward the end… I had lost interest.

Another thing that bothered me was the last lecture ended on a cliffhanger of a code that was supposed to get the computer to count to four hundred billion or some crazy number and the instructor said we'd start the next lecture by seeing how far the computer got.

He never mentioned this counting computer at all. I need closure.

I don't think it was a good idea for me to watch this tonight. I was a little burnt out anyway so I probably would have zoned out no matter what he was talking about.

I'm not discouraged, just disappointed.

 

Update #10: Learning C. 

Date: 2-12-2014

So I just spent an hour and a half to write this program:

And this is what the program does:

Exciting huh?

Okay so it didn't take me that long to write the actual program but it did take about that long to download and install all the Linux software needed to do this week’s assignment. 

I'm in no way complaining that it took too long because I am partially to blame. I download the files that actually took a lot of time last night before I went to bed. Today was supposed to just be a matter of installing everything and getting to work.

I would install one piece then play a ragdoll game (one of my new favorite things on the internet) then I would remember that I was actually working on something only to find that I still needed to click one more next button to get the software to actually install.

Though there was some slacking involved there was also a lot of updating, waiting, and having to download this or that as an add-on.

I'd say that it took about 45 minutes to get everything up and running, 20 minutes of me goofing off and the rest went to the walk-through for this sample assignment designed to get you used to the interface and language.

I'm going to call it quits for today, but tomorrow I look forward to sitting down and getting to work. I'll let you know how it goes.

 

Update#11: Mario.c 

Date: 2-15-2014

The first part of assignment 1 was pretty easy. The instructions walk you through step by step for the code needed to write a program that prints, "Hello, World," when you run it.

The second part of the assignment was a little more difficult. In this part, we are asked to write a program that first asks the user to enter a number between 1 and 23 and then write a program to create a half pyramid using #s the height of the number entered ala Mario Brothers.

I was a little confused at first because they didn't provide the step by step instructions like they did in the first part of this assignment. "Alright," I thought, they'll surely hold our hands through this problem in the walkthrough video.

Nope.

They just gave hints to the functions that you need to study to figure it out. I figured out how to ask for the Height and set limitations for the number inputted to be between 1 and 23 pretty easily, but building the actual half pyramid was rather frustrating and took a lot of searching to figure it out.

The course has books that are recommended but not required. I'm not sure if this would have been easier with the recommended book, but after a day of angrily hunting through the videos and reading materials provided on the site, I finally turned to the YouTubes and found a tutorial for the for loop function that they suggested we use to create the half pyramid.

After watching the video there was still a lot of trial and error but I eventually figured it out.

Part three looks like it's going to be even more difficult, but I'm hoping that now that I'm open to using the entire internet as a resource I'll learn a lot more and won't be as frustrated while figuring it out.

 

Update #12: Greedy.c 

Date: 2-16-2014

Part three of assignment one ended up being a little easier for me. I'm not sure how much of it is that I just get C a little better after my struggles with the Mario assignment or if I just understood the logic needed to get to the answer they were looking for.

They asked to write a program that when the user inputs the amount of change they should receive the program breaks it down to give a coin count of the least amount of coins it would take to pay them off. (IE $.27 = 3 coins, $.82 = 6 coins $.25 = 1 coin...)

It took me a while to figure out the wording and signage but once I figured out how to write the code to subtract the quarters while adding a coin to the coin count it was just a matter of repeating the same steps for all the other amounts.

This means assignment one is officially complete!!!

 

Update #13: The inaccuracy of computing. 

Date: 2-27-2014

I'm in a better mood so I decided to stop my slacker ways and get back to class.

Today's lecture was awesome because it started with the teacher showing us this video from The History Channel's show Modern Marvels that helps describe the inaccuracies of modern computing.

The video blew my mind for multiple reasons.

First… I had no idea that this inaccuracy in computing due to the limitations that come with the computer’s inability to count to infinity was a thing. Between the lecture and the video… it makes total sense. I'm just surprised this was the first time I heard about it.

Second… this video got me thinking back to the first Gulf War and not only how long ago it was, but how I was young and naive enough to think of it as a humorous little battle where we just stomped the enemy. It was hard not to feel that way, especially when I got a majority of my news from Saturday Night Live and the opening monologue from later night talk shows. We also didn't have this ongoing threat of terrorism and fear-mongering that made it feel like the war would go on forever. 

Ah… the innocents of the time and youth.

Finally, I had no idea until tonight that the Patriot Missiles were so inaccurate and again I'm more surprised that I'm just now learning this, and not that it's the case.

Other than the video the lecturer went on to explain more of the processes available through the C programming language. Some of the things that he discussed would have come in very handy last week, but I feel having to figure it out on my own first, then have it explained made it sink in and make a lot more sense why. Before the lecture… I just knew how.

Well, that's what I learned today. There's still part two of the lecture and several walk-throughs before I get to the assignment. As always I'll keep you posted.

 

Update #14: Oops... 

Date: 5-26-2014

...that ended up being a much longer break than I intended but I'm back.

When I last updated this resolution I was stuck on one of the assignments and had to wait until I could afford to buy the supplemental reading material to move forward. It took close to a month until I was finally able to afford to buy the book in question. Not because the book was that expensive but because I was jobless and that broke.

I don't know about you but once that much time goes by it's hard to pick up where you left off, especially when you're trying to learn something.

Well… I now own the book...

... and am motivated enough to get back to work on this resolution.

I spent a couple of hours today getting caught up and plan to set aside at least a half-hour a day to complete this experiment. My new goal is to be completely caught up and done with the current assignment by Friday night.

As always I'll keep you posted.

 

Update #15: I Finally Figured It Out!!! 

Date: 6-7-2014

It turns out that learning Computer Science is not like riding a bike. I guess it is a language and not just a skill after all. Until you become fluent it's easy to lose what you've learned unless you practice.

This break started while I was still on my job hunt and couldn't afford the supplemental material I needed to get a better understand of the language to get past a hurdle that I was struggling with.

I bought the book about a month ago but kept the break going due to procrastination, not lazy based procrastination but fear-based procrastination. Fear that I'd almost have to start over to get caught to the point where I started to get lost.

I spent the last week and a half reading the supplemental material and have finally worked through my issues.

And now I give you part one of week two's homework assignment!

Ladies and Gentlemen here is Caesar.c

A simple encryption code that scrabbles messages by increasing the letter values by a number that you assign.

Now that I'm caught up again I will definitely allocate time throughout each week to devote to completing this course on time. I'm pretty excited because I actually missed working on this stuff.

 

Update #16: I'm Finally Done With Week 2!!!

Date: 6-13-2014

Week three if you count week zero?

Which I do.

Tonight I finished week number two/three of Harvard's free Computer Science course CS50. This week's assignment focused on encryption techniques. It took me about three months to complete this assignment.

As I pointed out in my last update I had to take a break while on my job hunt because I couldn't afford the twenty-dollar supplemental book that's not necessarily required, but now that I'm back to it have found to be pretty helpful.

Helpful enough to finally get me through these two problems. It took a while to finally crack the nut with the Caesar.c assignment but as I predicted this new Vigenere.c portion of the assignment wasn't going to be as hard because it builds off of the Caesar.c program.

I still don't really know what I'm doing but I'm getting a little better at figuring out how to do it and isn't that what life is all about after all?

 

Update #17: Assignment #3 Complete!!! 

Date: 7-19-2014

Wow, this year's really getting away from me. I'm still confident that I will complete a majority of my resolutions, but I really need to step it up with this free education goal.

The problem is that the coding language is still foreign to me so it takes me a long time to get through the assignments. Being that I have 200 if anyone challenge takes more than a half-hour a day to work on I tend to put it off.

With a little over five months to go and nine more assignments to complete, it looks like it's time to step it up to get this class over with.

This week the assignment was to create a digital sliding tile game, we'll they created the code, it was my job to fix it so the code would work.

Not only did I eventually figure it out, but I also figured out the game!!!

Tomorrow I will start on Week #4.

 

Update #18: Assignment #4 Complete.

Date: 8-8-2014

This week I got to make one of my favorite games. Granted it took about a month and not a week like it was supposed to but it's also Breakthrough and not Arkanoid so there was a little less urgency.

Just kidding.

I really wish I would have focused on this class more while I was unemployed and had fewer resolutions piling up. I really need to start treating these like the weekly assignments that they are, but they take so much time.

Well, an appropriate amount of time for someone with less than 220 other projects to have to juggle. 

This is my doing though.

Luckily I do good during crunch time.

 

Update #19: Assignments 5 And 6 Are Now Complete…

Date: 8-24-2014

I procrastinated on this assignment for over a week. It's been a busy past couple of weeks so even though I had time to watch the videos, I didn't have that much time to commit to the assignment. This led me to put the whole thing on hold.

I started to watch the lectures a couple of days ago when I noticed this week is meant to be a review for the midterm that the non-internet students actually had to take.

Not us freeloaders!!!

Because this is a review week not only is there no homework assignment, but we, the internet students have no week because that's when the actual class took their midterm, and that would be a pretty boring video to watch.

That means I'm now up to week seven!!!

 

Update #20: Assignment #7 COMPLETE!!!

Date: 11-13-2014

They also taught us how to recover deleted files. There wasn't that much to show for that assignment.

Time to get started on Assignment #8.

 

Update #21: The Deadline For Free Education Passed… Now It’s Off To The Redemption Pile…

Date: 1-4-2015

When I started Resolution #4, to take two free online classes, one from Harvard and one from MIT, I was still working as a freelancer. I got used to the idea of working really hard for several weeks then taking a couple of weeks off.

This allowed me to keep up with the course’s schedule.

Then I ran out of gigs and money and could not afford a book that I needed for the computer science class I was taking. By the time I could afford the book I had forgotten everything I learned in prior lessons.

To top it off my new resolutions started to pile up.

I kept telling myself that I had time, but it turns out that I'm wrong.

I still want to complete this resolution as part of the overall 365 Days of Resolution deal, so the Redemption Deadline is 12-31-2015.

Now that I no longer have to set resolutions I have way more time to work on them.

 
 

Play Along At Home…