Fundamentals of Programming
(Spring 2021)

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 (https://shimmer.mit.edu) to authenticate, and then you will be redirected back to this page.

Announcements

  1. Scores for quiz 2 are now available from the Progress page. Please double-check the information there, and if anything seems incorrect, please let us know by Thursday afternoon (20 May) at 5pm Eastern.

  2. Our last live recitation will be on Wednesday 19 May. This will be a fun one, so hope you can join us!

  3. Please fill out the 6.009 subject evaluation before Monday 24 May. This is super useful feedback that helps us improve the subject in the future.

  4. We will continue holding office hours according to our normal schedule, up to and including Wednesday (19 May).

  5. Late submissions for any remaining assignments must be completed by Wednesday 19 May at 10pm Eastern, including any remaining lab checkoffs.

Archived announcements are available here.

Calendar/Handouts

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

We'll be using Jupyter notebooks (.ipynb files) to distribute some of the content and code from recitations 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 Recitation Labs
Week 0
02/15 - 02/19
Subject Overview and Logistics
Video
lec00_slides.pdf
Python Notional Machine
Live Session
rec00.ipynb
rec00.pdf
rec00_full.ipynb
rec00_full.pdf
Video
Lab 0 Due (Audio Processing) (Solution)
Lab 1 Released (Image Processing 1)
Week 1
02/22 - 02/26
Functions and Functional Design Patterns
Video
lec01_slides.pdf
(Optional) Live Q&A Session
Testing and Debugging Programs
Live Session
rec01.ipynb
rec01.pdf
rec01_full.ipynb
rec01_full.pdf
Video
Lab 1 Due (Solution)
Lab 2 Released (Image Processing 2)
Week 2
03/01 - 03/05
Flood Fill
Video
lec02_code.zip
(Optional) Live Q&A Session
Word Play
Live Session
rec02.zip
rec02_full.zip
Video
Lab 2 Due (Solution)
Lab 3 Released (Bacon Number)
Week 3
03/08 - 03/12
Informed Search
Video
lec03_slides.pdf
(Optional) Live Q&A Session
Search
Live Session
rec03.zip
rec03_full.zip
Video
Lab 3 Due (Solution)
Lab 4 Released (Frugal Maps)
Week 4
03/15 - 03/19
Recursive Patterns
Video
lec04.pdf
lec04_code.zip
(Optional) Live Q&A Session
Recursive Patterns
Live Session
rec04.zip
rec04_full.zip
Video
Lab 4 Due (Solution)
Week 5
03/22 - 03/26
No Lecture No Recitation Quiz 1: 25 Mar, 7:35-9:25pm ET
Quiz Information and Practice Materials
Quiz Solutions
Conflict Quiz Solutions
Lab 5 Released (Minesweeper)
Week 6
03/29 - 04/02
Recursive Backtracking
Video
lec06_code.zip
(Optional) Live Q&A Session
Recursive Backtracking
Live Session
rec06.zip
rec06_full.zip
Video
Lab 5 Due (Solution)
Lab 6 Released (SAT Solver)
Week 7
04/05 - 04/09
Custom Types
and Environment Model
Video
lec07.pdf
(Optional) Live Q&A Session
OOP
Live Session
rec07.zip
rec07_full.zip
rec07_hz_12pm_nbodies.zip
Video (Adam)
Video (Duane)
Lab 6 Due (Solution)
Lab 7 Released (Autocorrect)
Week 8
04/12 - 04/16
Custom Types
and Linked Structures
Video
lec08_slides.pdf
(Optional) Live Q&A Session
OOP
Live Session
rec08.zip
rec08_full.zip
Video
Lab 7 Due (Solution)
Lab 8 Released (Symbolic Algebra)
Week 9
04/19 - 04/23
No Lecture Shapes
Live Session
rec09.zip
rec09_full.zip
Video
Lab 8 Due (Solution)
Lab 9 Released (LISP 1)
Week 10
04/26 - 04/30
Functions and Scoping Redux, LISP
Video
lec10_slides.pdf
(Optional) Live Q&A Session
Functions and Scoping
Live Session
rec10.zip
rec10_full.zip
Video
Lab 9 Due (Solution)
Lab 10 Released (LISP 2)
Week 11
05/03 - 05/07
Even More Fun with Functions
Video
(Optional) Live Q&A Session
Working with Text Files
Live Session
rec11.zip
rec11_full.zip
Video
Lab 10 Due (Solution)
Week 12
05/10 - 05/14
Digging in to the Python Interpreter
Video
lec12_slides.pdf
(Optional) Live Q&A Session
No Recitation Quiz 2: 13 May, 7:35-9:25pm ET
Quiz Information and Practice Materials
Quiz Solutions
Conflict Quiz Solutions
Week 13
05/17 - 05/21
Programming Beyond 6.009
Video
lec13_slides.pdf
(Optional) Live Q&A Session
Programming Beyond 6.009
Live Session
rec13.zip
Video