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. Recitation section assignments have been made based on the information provided in the student survey.

    Please log in to see your section assignment.

    If you have not been assigned a section, or if you would like to change your section, please fill out the recitation section change form.

  2. Information and Policies: Please be sure to read and understand all of the course policies, which are linked from under the "Information" header in the menu at the top of this page. There are some differences compared to past semesters, so it will be important to understand the rules and expectations for this semester.

  3. Upcoming Due Dates:

    • Lab 1 checkoff is due on Wednesday (22 September) at 10pm Eastern.

    • Lab 2 submissions are due Friday (24 September) at 5pm Eastern.

    • Lab 2 checkoff is due on Wednesday (29 September) at 10pm Eastern.

Archived announcements are available here.

Calendar/Handouts

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 Session
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 Session
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 Session
set_dict_examples.py
Lab 02 Due
Lab 03 Released (Bacon Number)
Week 3
09/27 - 10/01
Recursive Patterns Recursive Patterns Lab 03 Due
Lab 04 Released (Minesweeper)
Week 4
10/04 - 10/08
Recursive Backtracking Recursive Backtracking 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

Lab 05 Released (SAT Solver)
Week 6
10/18 - 10/22
Custom Types
and Environment Model
OOP Lab 05 Due
Lab 06 Released (Autocorrect)
Week 7
10/25 - 10/29
Custom Types
and Linked Structures
OOP Lab 06 Due
Lab 07 Released (Symbolic Algebra)
Week 8
11/01 - 11/05
Inheritance OOP Lab 07 Due
Lab 08 Released (LISP 1)
Week 9
11/08 - 11/12
TBD Factory Simulation Lab 08 Due
Lab 09 Released (LISP 2)
Week 10
11/15 - 11/19
Functions and Scoping Redux, LISP TBD Lab 09 Due
Lab 10 Released (Game)
Week 11
11/22 - 11/26
Even More Fun with Functions Working with Text Files Lab 10 Due
Week 12
11/29 - 12/03
Digging in to the Python Interpreter No Recitation
(Quiz)
Quiz 2: 1 Dec, 7:35-9:25pm ET
Week 13
12/06 - 12/10
Programming Beyond 6.009 Programming Beyond 6.009