03 - CS50 Pedagogy
I spent the past Sunday going through the CS50 for Educators playlist on YT. This blog contains my notes. I had underestimated the scale of content they have put out!
Primary Takeaways
David walked us through the evolution of CS50 from 1999 to the present.
CS50 AP for High School
There is a CS50 AP course which has some additional components like CS50T (contains more basics like Hardware, Internet, etc.). This seems more in line with what I want CS17’s structure to be.
Sections and Office Hours
CS50 is not just the 10 or so weekly lectures we see as part of the course. There are other core components:
-
Office Hours: Dedicated time slots where Teaching Assistants answer questions and help understand concepts.
-
Sections: Again run by TAs, topic wise lectures going more in-depth than the weekly lecture.
My plan is to have devs from BWH Studios to be the initial TAs 😁
Memorable Moments
I still remember the iconic “tear the phone book in half” moment from CS50’s first lecture. David emphasized on the use of props to add theatrics to the lectures. This also helps students build a mental model to think about concepts like searching algorithms, sorting, etc.
One of my favorite examples is using actual physical doors to demonstrate sorting algorithms:

Here are some more props that David listed:
Since CS50 lectures happen at a big scale these days, bigger props are feasible. But David pointed out that the same effect can be achieved with the use of sticky papers to hide the numbers written on board.
Accessibility, Rigor, Community

Accessibility is the reason why they start from “Scratch” and not directly a programming language. The same reason they use a cloud based IDE for the duration of the course, so the students don’t have to go through the nitty-gritty of the development environment setup. The students come from various departments and levels, so they have kept that in mind.
The students should feel that they are going through something substantial, that is why the rigor is needed.
As for the community part, they want to give the students a feeling of belonging. Not for competition, but bunch of students going together through the course.
Adapt / Adopt
They encourage adapting the CS50 core syllabus to our own situation. That is what we are doing at CS17. For example, we might want to start with Python instead of C, and take the reverse approach. Or we can break down the “keynote” lecture into smaller lectures over the week.
Both the above points are a good “adaption” to have for CS17!
Puzzle Day and Hackathon
They run a 12-hour hackathon in-person for students to build their capstone projects or work on their problem sets. The primary idea is to provide an “hacking” environment rather than the specific thing they are working on.
Puzzle day is open to all and the idea is to promote logical problem solving, which David says is the core of Computer Science.
We can probably do something similar frequently…
License
All of the CS50’s contents are licensed under CC BY-NC-SA 4.0. I have decided to license CS17 under the exact same license!
More details: Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public License https://creativecommons.org/licenses/by-nc-sa/4.0/
Next Steps
I will probably start by going through the handbook they have provided for the teacher.
References
- CS50T: https://cs50.harvard.edu/technology/weeks/
- CS50 Handbook: https://cs50.tf/
- CS50 Sections: https://www.youtube.com/watch?v=KraVJDqv7uo
- CS50 AP: https://cs50.harvard.edu/ap/curriculum
- CS50 SQL: https://cs50.harvard.edu/sql
- CS50S: https://pll.harvard.edu/course/cs50s-introduction-programming-scratch
- CS50P: https://cs50.harvard.edu/python/