When I signed up for CS50x I assumed that I was in for a rigorous Harvard course, and I was, but I had no idea how much fun I would have, and how much of a community experience it would be.
This class is different.....seriously:
Harvard students know that CS50 is more than a class, its a movement, a force for good in computer Science. I literally bought the T-Shirt. This class does more than teach you code, its like being initiated into a club. I was a part of CS50x 2012. The first run I think. There were about 150,000 in my class. It was amazing. Here's the story:
As with any other edX.org class, I signed up through the edX.org portal. I then watched a series of lectures, by the most creatively informative professor you could ever meet, David Malan. These lectures were not like the MIT course, they were not five minutes long, they were not made for the online course. These were recordings of the lectures that actually happened at Harvard in Sanders Theater just a week prior. You can see the 2012 lectures here. We as online students were a week behind the actual class, and our online forum was the same forum the students on campus used. I can't express enough how exciting that made the class, With MIT's 6.00x the goal of the class was to teach you how to code in order to do science. On the other hand, CS50 is an introductory course designed to teach you computer science in the most fun and approachable way possible.
The teaching staff was also amazing. Robert Bowden, Zamyla Chan, Tommy Macwilliam, and Nate Hardison changed my life. Robert Bowden is the reason I know what a Hashtable is and how it works. Nate Hardison is why I know what a Linked List is and how it works. Zamayla Chan is the reason I didn't run screaming from each homework problem set. Tommy MacWilliam is the reason that I am comfortable with Trees.
As to assignments there were seven problem sets and two quizzes, not including Homework Walk Through's, Video Shorts, and a Group Lab session called Section. All homework was checked and uploaded via what was called The CS50 appliance.
The CS50 appliance was a Virtual Linux OS image that you ran through either VMware player or Fusion or Virtual Box. This Linux environment was where we learned to code in C. C is a very unforgiving language and that is why its perfect to begin with. Having come from python's almost non-existent syntax, the idea that I had to load the array myself and make sure to allocate the memory for it, was offensive. The syntax better be right or the compiler will yell at you. This infuriating stickler of a language made every tiny success huge. Once I got comfortable with C, all the fear and intimidation that come with not having a programming background disappear. (Well, I started with basic in 1986 and...it didn't work out.. that's a different post :-) ) All of the sudden, climbing the seemingly complex mountain of Code and API's needed to create anything seemed completely doable! If you are afraid of not being able to learn to code, CS50 is the class for you. CS50 takes away the fear, and turns it into just work.
All of these assignments end with your crowning achievement, your final project. The challenge is to take everything you have learned in the course and make something useful with it. You then display it at the CS50 fair:
For us online students the fair was online and they provided a website where you could browse videos of other people's projects.....BTW, here's mine:
CS50x has continued to evolve and is now larger and better than ever before. Code can be hard, algorithms can be hard, but at CS50x the encouragement is 100%. I met people online taking the course with me from Pakistan, Canada, New Zealand, and Thailand and we still talk to this day. Yeah, I loved CS50x. Its lessons still serve me.
What would you build, if you weren't afraid to fail? Take CS50x and find out!