Harvard's CS50x: Course Review & Thoughts
After nearly two months of dedication to coding and learning, I can proudly say I’ve completed Harvard’s CS50x! I highly recommend it to anyone looking to get into the field of computer science.
Earlier this year, I signed up for an edX account and discovered the incredible range of computer science courses Harvard offers — all accessible for free from the comfort of home. When summer rolled around, I fully immersed myself in this new adventure. Here’s my review of this unforgettable course.
The CS50 program
CS50x (Computer Science 50) is Harvard University’s renowned introduction to computer science, taught by the legendary David J. Malan. On campus, it's Harvard's largest course, with over 800 students, 100+ staff, and thousands more participating globally through online events like hackathons.
The CS50 program includes various courses — like CS50AI (Artificial Intelligence), CS50P (Python), and more. But CS50x is the flagship course, designed as a comprehensive introduction to the world of computer science. Officially, it’s a 12-week course — but depending on your prior experience and how much time you commit, you can absolutely complete it faster. (I managed to complete the majority of the course over my school holidays itself!)
CS50x content & experience
The course is broken down into 11 weeks of content:
- Scratch
- C
- Arrays
- Algorithms
- Memory
- Data Structures
- Python
- Artificial Intelligence
- SQL
- HTML, CSS, JavaScript
- Flask
- Cybersecurity
Each week consisted of:
-
A lecture - from David J. Malan (recorded from live class on campus)
-
A ‘section’ - where the learned concepts were put into practice
-
Several ‘shorts’ - that dive into narrower concepts and ideas
-
A problem set - coursework that tests and challenges your understanding of the week’s content
Overall, the structure of the course was fantastic. You’re first introduced to a new concept with the truly engaging and enjoyable teaching style of David J. Malan. Then, step by step, you dive deeper — all at your own pace.
The course’s decision to teach us C before Python was a brilliant one. Learning C first gave me a strong foundational understanding of the fundamental concepts, so when I moved on to higher-level languages like Python, I already had a solid grasp of how things work under the hood. And the problem sets were incredibly rewarding. One standout was Problem Set 7, where I was tasked with solving a mystery using SQL skills!
The Final project
After all the learning, the final week arrived, and with it, the end-of-course project. Unlike other weeks, there was no problem set this time. Instead, we were given the freedom to create our own project, showcasing everything we’d learned throughout the course.
My final project was SimulAIte — something I spent much more time on than the other parts of the course. I poured a lot of effort into crafting the website. I’ll dive deeper into the details of SimulAIte in another blog post!
Last Words
Overall, CS50x has truly taught me so much about the vast world of computer science. I hope this post has given you an idea of how fantastic the course is, no matter your age or prior experience in computer science.
After finishing the course at a fast pace over the summer, I spent the following weeks at a slower pace, enjoying the process of creating SimulAIte. I definitely hope to develop it into a business in the near future. I’m also planning to take CS50AI and CS50 Cybersecurity — fields that currently interest me the most.
This was CS50x!