Fundamentals of Programming
(Fall 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 2 is next Wednesday (1 December), starting at 7:35pm. More information about the quiz is available from this page (including practice materials).

  2. 6.009 Schedule and Thanksgiving Holiday: There will be a few adjustments to 6.009's schedule around the Thanksgiving Holiday, as noted below:

    • We will have a recitation as normal on Wednesday, 24 November.
    • We will not hold any office hours on Wednesday-Sunday, 24-28 November.
    • Lab 9's checkoff (which would normally come due on Wednesday, 24 November) will come due on Friday (3 December) at 5pm.
    • Code submissions and concept questions for lab 10 (which would normally come due on Friday, 26 November) will come due on Friday (3 December) at 5pm.
  3. Upcoming Due Dates:

    • Lab 9 submissions are due on Friday (19 November) at 5pm Eastern.
    • Lab 9 checkoff is due on Friday (3 December) at 5pm Eastern.
    • Lab 10 code is due on Friday (3 December) at 5pm Eastern.
    • Lab 10 checkoff is due on Tuesday (7 December) at 10pm Eastern.

Archived announcements are available here.

Calendar/Handouts

Please log in to see your section assignment.

The calendar below will be populated throughout the semester with links to lecture/recitation materials, as well as labs.

Week Lecture Recitation Labs
Week 0
09/06 - 09/10
No Lecture Python Notional Machine
Live Questions
diagrams.pdf
Video
Lab 01 Released (Image Processing 1)
Week 1
09/13 - 09/17
Functions and Functional Design Patterns
Pre-lecture Reading
lec01_slides.pdf
Live Questions
Testing and Debugging Programs
Live Questions
rec01_hz_code.py
Video
Lab 01 Due
Lab 02 Released (Image Processing 2)
Week 2
09/20 - 09/24
Flood Fill
Pre-lecture Reading
lec02_code.zip
Live Questions
Word Play
Live Questions
set_dict_examples.py
Video
Lab 02 Due
Lab 03 Released (Bacon Number)
Week 3
09/27 - 10/01
Recursive Patterns
Pre-lecture Reading
Video
lec03.pdf
Live Questions
Recursive Patterns
Live Questions
instrument.py
subwords.py
tree_max.py
Video
Lab 03 Due
Lab 04 Released (Minesweeper)
Week 4
10/04 - 10/08
Recursive Backtracking
Pre-lecture Reading
Video
sudoku_skeleton.py
Live Questions
Recursive Backtracking
Live Questions
rec04.zip
Video
Lab 04 Due
Week 5
10/11 - 10/15
No Lecture
(Indigenous Peoples' Day)
No Recitation
(Quiz)
Quiz 1: 13 Oct, 7:35-9:25pm ET
Quiz Information and Practice Materials
Lab 05 Released (SAT Solver)
Week 6
10/18 - 10/22
Custom Types
and Environment Model
Pre-lecture Reading
Video
lec06_slides.pdf
Live Questions
OOP
Live Questions
nbodies.pdf
Video
Lab 05 Due
Lab 06 Released (Autocorrect)
Week 7
10/25 - 10/29
Custom Types
and Linked Structures
Pre-lecture Reading
Video
lec07_code_full.py
lec07_skeleton.py
lec07_slides.pdf
Live Questions
OOP
Live Questions
diagrams.pdf
inheritence.py
Video
Lab 06 Due
Lab 07 Released (Symbolic Algebra)
Week 8
11/01 - 11/05
Shapes
Video
lec08_full.py
lec08_skeleton.py
Live Questions
OOP
Live Questions
game_utils.py
rec08_full.py
Video
Lab 07 Due
Lab 08 Released (LISP 1)
Week 9
11/08 - 11/12
Functions and Scoping Redux, LISP
Video
lec09_slides.pdf
Live Questions
Functions and Scoping
Live Questions
Video
Lab 08 Due
Lab 09 Released (LISP 2)
Week 10
11/15 - 11/19
Even more Fun with Functions
Video
Live Questions
Working with Text Files
Live Questions
rec10.zip
rec10_full.zip
Video
Lab 09 Due
Lab 10 Released (Game)
Week 11
11/22 - 11/26
Data Abstraction
Video
lec11_code.zip
Live Questions
Data Abstraction
Live Questions
rec11.zip
Video
Week 12
11/29 - 12/03
Python, Sockets, and the Web
lec12_code.zip
lec12_extra_bytestrings.zip
lec12_slides.pdf
socketdemo.py
Live Questions
No Recitation
(Quiz)
Quiz 2: 1 Dec, 7:35-9:25pm ET
Quiz Information and Practice Materials
Lab 10 Due
Week 13
12/06 - 12/10
Programming Beyond 6.009 Programming Beyond 6.009