Fundamentals of Programming
(Spring 2019)

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://oidc.mit.edu) to authenticate, and then you will be redirected back to this page.

Announcements

Congratulations on completing 6.009!

Please report any discrepancies between your understanding of your scores and what you see on your Progress page as soon as possible and before May 15, 10pm.

And, please fill out course evaluations before May 20, 9am. We welcome feedback to improve future offerings of 6.009.

Archived announcements are available here.

Calendar/Handouts

The calendar below will be populated throughout the semester with links to labs, quizzes, and lecture/tutorial handouts.

We'll be using Jupyter notebooks (.ipynb files) to distribute some of the content and code from tutorials and lectures. If you'd like to run these interactively on your machine, please see the Jupyter installation guide. We recommend following the instructions that use pip3.

Week Lecture Tutorial Lab Release Lab Due Quiz
Week 1
02/04 - 02/08
No Lecture (Registration Day) Subject Intro
tutorial1.zip
1: Image Processing
Week 2
02/11 - 02/15
Built-In Data Types (Lists, Dictionaries, Sets, and Friends)
lecture2.zip
Practice with Sets and Dictionaries
tutorial2.zip
2: Bacon Number 1: Image Processing

Solution Release:
12/31 8:00 AM
Week 3
02/18 - 02/22
Recursion 1: Decomposing Problems
lecture3.ipynb
lecture3_template.ipynb
Recursive Patterns
tutorial3.zip
3: HyperMines 2: Bacon Number

Solution Release:
12/31 8:00 AM
Week 4
02/25 - 03/01
Recursion 2: Backtracking Search
lecture4.zip
Applications of Backtracking Search
tutorial4.ipynb
tutorial4_template.ipynb
3: HyperMines

Solution Release:
12/31 8:00 AM
Week 5
03/04 - 03/08
Linked Data Structures
lecture5.zip
No Tutorial (Office Hours)
q1_practice_solutions.zip
4: Tent Packing Quiz 1:
March 6th,
7:30-9:30pm


Quiz Info Release:
03/01 4:00 PM


Room Signup Starts:
03/04 4:00 PM


Quiz Solutions Released:
03/18 4:00 PM
Week 6
03/11 - 03/15
Mutating Recursive Data Structures
lecture6.zip
Introduction to Nested Data Structures
tutorial6.ipynb
tutorial6_template.ipynb
5: Autocomplete 4: Tent Packing

Solution Release:
12/31 8:00 AM
Week 7
03/18 - 03/22
Interfaces and Implementations
lecture7.zip
Classes and More Interfaces
tutorial7.zip
6: Gift Delivery 5: Autocomplete

Solution Release:
12/31 8:00 AM
Week 8
03/25 - 03/29
No Lecture (Spring Vacation) No Tutorial (Spring Vacation)
Week 9
04/01 - 04/05
Nested Data Structures
lecture9.zip
Data Representation
tutorial9.ipynb
tutorial9_template.ipynb
6: Gift Delivery

Solution Release:
12/31 8:00 AM
Week 10
04/08 - 04/12
Taking the Wheel: Extending Built-In Python Constructs with Iterators and Overloaded Operators
lecture10.ipynb
lecture10_template.ipynb
No Tutorial (Office Hours)
q2_practice_solutions.zip
7: Faster Gift Delivery Quiz 2:
April 10th,
7:30-9:30pm


Quiz Info Release:
04/05 4:00 PM


Room Signup Starts:
04/08 4:00 PM


Quiz Solutions Released:
04/22 4:00 PM
Week 11
04/15 - 04/19
No Lecture (Patriot's Day) Generators
tutorial11.zip
8: 6.009 Zoo 7: Faster Gift Delivery

Solution Release:
12/31 8:00 AM
Week 12
04/22 - 04/26
Sorting Techniques
lecture12.zip
Symbolic Algebra
tutorial12.zip
9: 6.009 Zoo, Part 2 8: 6.009 Zoo

Week 13
04/29 - 05/03
Scripting and Text-File Processing
lecture13.zip
Web Requests
tutorial13.zip
9: 6.009 Zoo, Part 2

Solution Release:
12/31 8:00 AM (Combined solution for Lab 8 and Lab 9)
Week 14
05/06 - 05/10
Concurrent Programming
lecture14.zip
No Tutorial (Office Hours)
q3_practice_solutions.zip
10: File Downloader Quiz 3:
May 8th,
7:30-9:30pm


Quiz Info Release:
05/01 8:00 AM


Room Signup Starts:
05/06 4:00 PM


Quiz Solutions Released:
05/20 4:00 PM
Week 15
05/13 - 05/17
No Lecture (Extra Office Hours) No Tutorial (Office Hours) 10: File Downloader

Solution Release:
12/31 8:00 AM