CS50's Introduction To Programming With Python. Course overview

Table of Contents

You are thinking or already decided to learn to program? That is good, but first, you need to understand what you can expect from this course. This course overview helps you to make a choice.

Introduction

Briefly about CS50's Introduction To Programming With Python.

Course designed to be 10 weeks long (but you can take it even faster, depending on your pace, and free time)
Each week you have a lecture, shorts, and problem sets

Prerequisites

This course is suitable for both learner types:

Beginner

If you are new to programming, it's perfectly fine to start with it. The course has a good flow of content and material. You can learn and nail fundamental programming concepts like variables, loops, conditions, data types...
Yeah sometimes you will struggle on problem sets (We'll cover it, continue reading)
There will be some misunderstanding in later lectures, but take some time and rewatch it if you don't grasp it fully.

Experienced

If you are experienced in other languages and have time to spend, the course comprehensively covers Python syntax, core libraries, and some advanced stuff like OOP, generators, iterators, decorators, etc...
In another case where you don't have time simply go to documentation.

Course structure

How to take it, and important step before start

To take this course you must register through edx and enroll there (important). There will be a verified certificate upgrade option, but you can ignore it. The course is 100% free, after submitting the final project you will be notified to take your free certificate. Instructions and additional information are here.

Lectures

Course lecturer David J. Malan makes an introduction to the course where he explains what you will learn. And then the main lectures start. On average they last 1:30 hours ~. Of course, you can split them but make sure that you have a full focus while listening to the lectures. Write to the notebook or somewhere, where you can check the notes later when actual programming starts.

The best practice would be to follow along with David on the code editor on a structured folder path like this:

Problem Sets

The course have a 9 unique problem sets. But before you must watch the shorts after lectures because there will be crucial material about technical stuff.

You can use CS50 Duck Debugger which helps you like ChatGPT, but it doesn't solve your problem, instead, it teaches you how to solve the problem. But please don't rely on it heavily.

Final Project

After completing all problem sets, you need to submit your project. It can be anything from a basic CLI to-do app (which I did) to a complex app or game with UI.

Tips:

  • You can take your time and do some YouTube tutorials, and crash courses to increase your understanding related to your chosen project scope. Also, do yourself a favor and think & generate ideas about what you do on the final project 1 to 2 weeks before. Because I spent a lot of time figuring out what I wanted to do.
  • Make a Notion (Or whatever you prefer to use) kanban-like system. Outline your project idea structure and break it down into small parts like:
    1) Read project requirements
    2) Project folder set-up
    3) Write function 1,2,3...
    4) Testing
    5) Write readme...

It is worth it?

What you can learn & expect

As I mentioned earlier you can learn all of the basic programming concepts, object-oriented programming (OOP), and Python specific features.

Personal experience and thoughts

I took this course with absolutely 0 knowledge on programming and grasped a lot from it. Finished with a final project in 1,5 months ~. After it I took main CS50: Introduction to Computer Science and CS50’s Web Programming with Python and JavaScript.

Conclusion

Thank you for reading this article. I hope that you have a clear vision of course now. If you have questions about it, feel free to reach out.