When I took CS50, I remember being impressed by how exciting it was. Most online courses simply involve an instructor talking into a camera or voicing over some slides. It can be an effective learning tool. But it sometimes makes for a dull affair.
CS50 was like a show. Prof. Malan would pace the stage in front of a live audience while filmed from multiple angles, explaining concepts at a sustained yet easy-to-follow pace, live coding his way through examples, and taking student questions.
This show-like precision led CS50, the most popular on-campus course at Harvard, to become one of the most popular online courses ever with over 3.6M learners. Fortunately, Harvard’s new Python course, CS50P, retains the same strengths.
A nice thing about the new course is that it has no prerequisites: it’s a true introduction, made for complete beginners to programming and Python.
The course spans 9 weeks, with most weeks involving one 90-minute lecture and one problem set. And it hits the ground running. Within 20 seconds of the start of the first lecture, Prof. Malan will be introducing the most fundamental programming tool: the code editor.
In terms of content, the course is a rather comprehensive survey of Python programming. It starts with the basics, such as variables and conditionals, and works its way up the ladder of abstraction to discuss more involved subjects, such as object-oriented programming.
Among others, the course covers the following topics:
Variables as well as data structures for storing them, such as lists.
Conditionals, to allow your code to run different actions in different conditions.
Functions, to package your programming logic and make it reusable.
Loops, to run lines of code repeatedly; most notably, over each element of a list.
Libraries, to extend Python functionality via ready-made software packages.
In the final lecture, the course also touches on concepts that give Python character, such as list comprehensions, generators, lambdas, and tuple unpacking, to name a few. By the end of the course, you’ll be able to confidently say that you know Python programming.
But knowing a language conceptually is one thing. Being able to put it into practice is another. That’s why coding assignments are essential. And in my experience, that’s an aspect in which many programming online courses are lacking.
Coding assignments are often behind a paywall. Sometimes, they’re available but require setting up a local environment. This can be tricky, especially if instructions are outdated, which isn’t rare, because software keeps evolving but many courses are in “autopilot.”
The new course cuts through that by letting learners access all the assignments for free and conveniently complete them through an in-browser code editor. The assignments take the form of weekly problem sets designed to contextualize and reinforce the concepts learned throughout the week.
Problem sets typically involve five or so problems, allowing you to put into practice different facets of Python. Among others, the course includes the following problems:
Unit testing: Writing tests to avoid introducing bugs into your programs.
Data processing: Creating a program for reading and formatting a text dataset.
Form validation: Using regex to validate forms, like websites often do.
PDF generation: Generating PDF files programmatically with images and text.
Class definition: Fleshing out a class modeling a cookie jar and its interactions.
This last problem is a playful way of practicing OOP, a popular programming paradigm that you’ll likely want to further explore. I think that’s one of the main strengths of Harvard’s new course: it will prepare you to tackle more advanced coursework, on Python and beyond.
Years ago, upon finishing a course, you’d often receive a free certificate of completion. But in their quest for profitability, online course platforms stopped offering free certificates, favoring paid alternatives. In my experience, free course certificates are extremely rare nowadays.
Fortunately, Harvard’s new Python course goes against the grain. Besides being entirely free in terms of learning content, it also offers a free certificate of completion. But figuring out how to earn the free certificate can be confusing, because the course is offered via two platforms:
edX: This is the platform many of you will be familiar with. But edX hasn’t offered free certificates in a while. Instead, when you enroll in the course on edX, you’ll be given the option to purchase a verified certificate for $199.
Harvard OpenCourseWare (OCW): This is the platform set up by Prof. Malan and his team, where you’ll get a free certificate once you complete the course.
Note that the course on Harvard OCW and edX are exactly the same, including all the assignments. The only notable difference is that on Harvard OCW, the certificate is free and doesn’t require ID-verification.
To unlock the free certificate, here’s what you need to do:
Note that on Harvard OCW, you won’t need to enroll in the course per se. Lectures are readily available. Instead, you’ll set up a CS50 account via GitHub to submit your assignments, see your grades, and unlock your certificate. Don’t worry, it’s a one-time setup, and it’s all explained in the first assignment, Problem Set 0.
More Free Certificates
Finally, if you’re interested in some of the other courses in the CS50 lineup, or in free certificates in general, Class Central’s got you covered. Check our articles: