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

Announcements: Week 11 (Week of 16 Nov)

  1. Quiz 2: Quiz 2 will be held on Wednesday, 2 December, from 7:35-9:25pm Eastern. Quiz 2 Information and Practice Materials are now available. If you have any questions after reading that information, please feel free to reach out via the forum.

  2. Lab 9 Checkoff is due on Wednesday, 18 November at 10pm EST.

  3. Lab 10 is due on Friday, 20 November at 4pm EST.

  4. Lab 10 Checkoff is due on Friday, 4 December at 4pm EST (moved back from the normal time due to the holiday break and quiz 2).

  5. Thanksgiving Holiday: 6.009 will not be holding office hours during the Thanksgiving break, and lateness will not accrue over the break. We will hold normal office hours on the Friday before the break (20 Nov) and the Sunday at the end of the break (29 Nov).

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
08/31 - 09/04
Subject Overview and Logistics
Video
Python Notional Machine
Live Session
rec00.ipynb
rec00.pdf
Lab 0 Due (Audio Processing) (Solution)
Lab 1 Released (Image Processing 1)
Week 1
09/07 - 09/11
Functions and Functional Design Patterns
Video
lec01_code.zip
lec01_slides.pdf
lec01_slides_scribbles.pdf
Testing and Debugging Programs
Live Session
rec01.ipynb
rec01.pdf
rec01_full.ipynb
Lab 1 Due (Solution)
Lab 2 Released (Image Processing 2)
Week 2
09/14 - 09/18
Flood Fill
Video
lec02_code.zip
Word Play
Live Session
rec02.zip
Lab 2 Due (Solution)
Lab 3 Released (Bacon Number)
Week 3
09/21 - 09/25
Style and Design
Video
lec03_slides.pdf
Search with a Queue
Live Session
rec03.ipynb
rec03.pdf
rec03_table.py
Lab 3 Due (Solution)
Lab 4 Released (Frugal Maps)
Week 4
09/28 - 10/02
Informed Search
Video
lec04_slides.pdf
Recursive Patterns
Live Session
rec04.ipynb
rec04.pdf
rec04_instrument.py
Lab 4 Due (Solution)
Lab 5 Released (Minesweeper)
Week 5
10/05 - 10/09
Recursive Patterns
Video
lec05_slides.pdf
Tent Packing
Live Session
rec05.zip
rec05_solution1.ipynb
rec05_solution2.ipynb
Lab 5 Due (Solution)
Week 6
10/12 - 10/16
Recursion with Backtracking
Video
lec06_mixtape.zip
lec06_sudoku.zip
No Recitation Quiz 1: 14 Oct, 7:35-9:25pm ET
Quiz Information and Practice Materials
Quiz Solutions
Conflict Quiz Solutions
Lab 6 Released (SAT Solver)
Week 7
10/19 - 10/23
Custom Types
and Environment Model
Video
lec07_slides.pdf
OOP
Live Session
rec07.ipynb
rec07_solution.ipynb
Lab 6 Due (Solution)
Lab 7 Released (Autocorrect)
Week 8
10/26 - 10/30
Custom Types
and Linked Structures
Video
lec08_slides.pdf
lec08_template.py
OOP
Live Session
rec08.ipynb
rec08_solution.ipynb
Lab 7 Due (Solution)
Lab 8 Released (Symbolic Algebra)
Week 9
11/02 - 11/06
Classes, Inheritance, OOP
Video
lec09_classes.ipynb
lec09_classes.pdf
Factory Simulation
Live Session
rec09.py
rec09_animation.py
rec09_solution.py
Lab 8 Due (Solution)
Lab 9 Released (LISP 1)
Week 10
11/09 - 11/13
Functions and Scoping Redux, LISP
Video
No Recitation Lab 9 Due
Lab 10 Released (LISP 2)
Week 11
11/16 - 11/20
Even More Fun with Functions
Video
Working with Text Files
Live Session
rec11.ipynb
rec11.zip
rec11_solution.ipynb
Lab 10 Due

Thanksgiving Break

Week 12
11/30 - 12/04
TBD No Recitation Quiz 2: 2 Dec, 7:35-9:25pm ET
Quiz Information and Practice Materials
Week 13
12/07 - 12/11
Programming Beyond 6.009 TBD