My CS50x Experience

At the start of this vacation, I set out to be productive and have something to look forward to, while doing something fun at the same time. Looking back, I felt that my previous few university vacations passed me by very quickly. Hence, this time round, I decided to do something different. My goal for this holiday is to pick up a new skill and learn something new.

CS50 is an introductory computer science course originally offered as one of the modules in Harvard University. This course became extremely popular over time and it was eventually offered on edX as CS50x. This meant that anyone in the world with a computer and internet access is now able to take this course for free, in the comfort of their own homes.

In CS50x, the syllabus is broken down into eleven parts (Week 0 to 10). However, these segments are not released sequentially, meaning you can access all eleven weeks’ worth of content whenever you want. Each week contains a pre-recorded lecture video, some Shorts, a Lab and a Problem Set. The lecture is usually around two to two and a half hours long, while Shorts are video clips ranging from five to thirty minutes, focusing more on each sub-topic covered during that week’s lecture. Of course, what better way to learn than to test yourself and work on problems to reinforce your learning. Each Lab is usually an easier problem and you will be provided with quite a fair bit of guidance to help you solve the problem. Each Problem Set usually contains either one or two problems. You will also be given an option to solve either the more or less challenging version of that particular problem.

In order to complete the course successfully, you will have to submit all Labs, Problem Sets, one Final Project, in addition to meeting the required grading criteria for your submissions. At the end, you can choose to walk away with a free certificate or pay USD 199 to receive a verified certificate from edX and Harvard University. A verified certificate is more credible and it will show that you have officially completed CS50x. Congratulations, you now have the bragging rights to list it in your resume!

I first encountered CS50x last May as I had taken an interest in computer science and coding. However, I did not officially enrol for the course on edX. Instead, I simply watched some of the lectures here. I did not commit to completing this course, thus I did not attempt the Labs and Problem Sets. As you can imagine, adopting this form of passive learning without actively testing myself on what I had learnt, I did not retain much of the information from watching the lectures last year.

This year, I decided to commit to completing CS50x. With less than 2 weeks before school starts again, I am currently at Week 5 but I do not think that I will be able to complete the Final Project any time soon. Nonetheless, the good news is that credits earned for each week can be rolled over to next year, provided that you complete a full week’s worth of Lab and Problem Set. Essentially, this means that you have a maximum of two years to complete this course. This is great for those who are busy working or studying full-time, as you can access this course whenever you are free. I plan to complete Week 6 by the end of next week and spend a couple of hours on CS50x every weekend once school starts. Even if I am unable to complete everything by the end of this year, I should be able to do so during the electives period around this time next year.

Having gone through half of the course, I really enjoy the teaching style and how the curriculum is structured. I find that the lecture duration is just nice and it covers the key concepts required for me to work on the Labs and Problem Sets. Professor David J. Malan and his teaching assistants use a variety of interesting props to demonstrate those concepts, and this helps me gain a much better understanding of the content. Professor Malan also explains the concepts very well, using simple layman terms at times to get his point across. This is especially useful for people like me without a computer science background. He is a captivating lecturer who keeps his audience constantly engaged.

Next, I appreciate how each week builds on the previous to eventually reach more complicated concepts. I do not feel overwhelmed when learning new concepts because there is always some link to a previously taught concept. Furthermore, I thoroughly enjoy working on the Labs and Problem Sets. As mentioned earlier, by trying to solve problems using concepts learnt, I find it easier to retain information, as it forces me to recall and revise these concepts. I love how these well-formulated Labs and Problem Sets are never mundane. In my opinion, the level of difficulty is optimal, as it is sufficiently challenging to keep me interested in reaching the solution. It also helps that there are walkthroughs for each problem, where the teaching assistant gives a break down of the problem, in a video clip, into smaller and more manageable parts. In addition, there is a program called check50, written by the CS50 staff, that allows me to check whether my solution is correct or not, before making a submission. I applaud the staff for implementing this program because I can get instant feedback on my solution and identify areas for improvement in my code.

Overall, I am having a lot of fun taking CS50x and I highly recommend this course to those with an interest in computer science! It is free and you could learn a thing or two, so why not check it out now! Β 

Leave a Comment