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. Quiz 1 Scores and Statistics are now available from the Progress page.

  2. Upcoming Due Dates:

    • Lab 6 checkoff is due on Wednesday (14 Apr) at 10pm Eastern.

    • Lab 7 submissions and concept questions are due on Friday (16 Apr) at 5pm Eastern.

    • Lab 7 checkoff is due on Sunday (25 Apr) at 10pm Eastern.

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
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
Lab 9 Released (LISP 1)
Week 10
04/26 - 04/30
Functions and Scoping Redux, LISP Factory Simulation Lab 9 Due
Lab 10 Released (LISP 2)
Week 11
05/03 - 05/07
Even More Fun with Functions Working with Text Files Lab 10 Due
Week 12
05/10 - 05/14
Python, Sockets, and the Web No Recitation Quiz 2: 13 May, 7:35-9:25pm ET
Week 13
05/17 - 05/21
Programming Beyond 6.009 Programming Beyond 6.009