CS50x – Week 0

Week 0 introduces us to Scratch, algorithmic thinking, a professor of endless energy, and the beautiful, jealousy-inducing Harvard campus. One day I’ll make it there. One day.

Protip for this week: watch all lecture videos on at least 1.25 speed. There are two excellent reasons for this.

  1. Two hours of lectures a week. It’s a big chunk of your day, and you could just chill and take it slow or you could do 5 minutes of video in 4 minutes, saving you 24 minutes a week. And there’s a lot you can do in 24 minutes.
  2. The professor, David Malam, is a man possessed of near infinite energy. At regular speed he moves around the stage in a clear state of passion and excitement. At high speeds. he moves around like a cartoon character and breathes helium before every pronouncement, and that tickles me.

This series of lectures introduces binary and a programming language called Scratch. It’s a drag-and-drop format, where you can use blocks representing code to make images do things. For example, you can make game where you play as Pikachu and bombs, pokéballs, and cake rains down from the top of the screen.

Where can you play this game? Right here. You’re goddamned welcome.


The lectures talk through Scratch and some basics of how to use, and serve as a very gentle introduction to programming. They also introduce the idea of computational thinking: thinking like a computer. There are two key takeaways:

  1. Computers are great at doing repetitive tasks endlessly and well. You want to find a person in a phone book with 6 million records? Ask a computer.
  2. Computers are not good at things human beings take for granted, like making assumptions, understanding context, or making PB&J sandwiches.1

There was also a really nice demo of algorithms – for example, what’s the optimal way to count the number of people in a room? If there are 10, it’s probably just by counting, but what if there are 400? 4,000? What if were trying to count how many people had crammed into Wembley stadium to hear my poetry reading?


Ah…I knew this would come in handy again.

It’s a great, gentle opener into the course. At least I assume it is; at 1.5 speed concepts are thrown at you with no warning and great velocity.

I love it already.

The final thing – every week there are problem sets. This week, I’ve got to come up with something written with Scratch with the following requirements:

  • Your project must have at least two sprites, at least one of which must resemble something other than a cat.
  • Your project must have at least three scripts total (i.e., not necessarily three per sprite).
  • Your project must use at least one condition, one loop, and one variable.
  • Your project must use at least one sound.
  • Your project should be more complex than most of those demonstrated in lecture (many of which, though instructive, were quite short) but it can be less complex than, say, Pikachu’s Pastry Catch and Ivy’s Hardest Game. As such, your project should probably use a few dozen puzzle pieces overall.

I need your help, so if you’ve got an idea please (please!) let me know.

My loathing for PB&J sandwiches notwithstanding.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s