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: End of Semester

  1. Scores for all assignments (including 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 Sunday morning (13 December).

  2. 6.009 is over for the fall 2020 semester. Enjoy your winter break!

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 (Solution)
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 (Solution)

Thanksgiving Break

Week 12
11/30 - 12/04
Python, Sockets, and the Web
Video
lec12_code.zip
lec12_extra_bytestrings.zip
lec12_slides.pdf
No Recitation Quiz 2: 2 Dec, 7:35-9:25pm ET
Quiz Information and Practice Materials
Quiz Solutions
Conflict Quiz Solutions
Week 13
12/07 - 12/11
Programming Beyond 6.009
Video
lec13_slides.pdf
Programming Beyond 6.009
Live Session
rec13.md