Fundamentals of Programming
(Spring 2020)

You are not logged in.

If you are a current student, please Log In for full access to the web site.
Note that this link will take you to an external site ( to authenticate, and then you will be redirected back to this page.

Announcements: Week 1 (Week of 10 Feb 2020)

  1. The checkoff for lab 0 is due on Wednesday, 12 Feb at 10pm.

  2. Lab 1 is now available. It has a few questions due on Monday (10 Feb) at 1:30pm. The rest of the questions (and code submission) are due on Friday (14 Feb) at 4pm, and the checkoff is due on Wednesday, 19 Feb, at 10pm.

  3. If you have not already done so, it is a good idea to log in to the 6.009 Forum. Not only is this a good place to ask questions and get help as you are working through the labs, but we will also use that forum as a way to make announcements throughout the semester. Logging in to the forum will make sure that you also receive e-mails when new announcements are posted to the forum.

Archived announcements are available here.


The calendar below will be populated throughout the semester with links to labs, quizzes, and lecture/tutorial handouts.

We'll be using Jupyter notebooks (.ipynb files) to distribute some of the content and code from tutorials and lectures. If you would like to run these interactively on your machine, please see the Jupyter installation guide (we recommend following the instructions that use pip3 if you do decide to install Jupyter).

Week Lecture Tutorial Labs
Week 0
02/03 - 02/07
Welcome, Python Notional Machine
Python Notional Machine
Lab 0 Due (Image Processing 1)
Lab 1 Released (Image Processing 2)
Week 1
02/10 - 02/14
Functions and Functional Design Patterns
Word Play
Lab 1 Due
Lab 2 Released (Bacon Number)
Week 2
02/17 - 02/21
Exhaustive Search Search with a Queue Lab 2 Due
Lab 3 Released (TBD)
Week 3
02/24 - 02/28
Recursion Recursive Patterns Lab 3 Due
Lab 4 Released (TBD)
Week 4
03/02 - 03/06
Python Goodies Tent Packing Lab 4 Due
Week 5
03/09 - 03/13
TBD No Tutorial Quiz 1: 11 Mar, 7:35-9:25pm
Lab 5 Released (TBD)
Week 6
03/16 - 03/20
Recursion 2 (with Backtracking) Talent Search Lab 5 Due
Lab 6 Released (TBD)
Spring Break
Week 7
03/30 - 04/03
Custom Types Card Game Lab 6 Due
Lab 7 Released (TBD)
Week 8
04/06 - 04/10
Classes and Inheritance Factory Lab 7 Due
Week 9
04/13 - 04/17
Scoping and Closures No Tutorial Quiz 2: 15 Apr, 7:35-9:25pm
Lab 8 Released (TBD)
Week 10
04/20 - 04/24
No Lecture
(Veterans Day)
Scheme Environment Model Lab 8 Due
Lab 9 Released (TBD)
Week 11
04/27 - 05/01
Python, Sockets, and the Web Functional Programming Lab 9 Due
Week 12
05/04 - 05/08
Parallel Programming No Tutorial Quiz 3: 6 May, 7:35-9:25pm
Week 13
05/11 - 05/15
Programming Beyond 6.009 No Tutorial (Office Hours)