Introduction to CS and Programming using Python
(Fall 2021)

You are not logged in.

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.

The spring 2022 site: CLICK HERE

This is the first time offering this full-semester version of 6.0001. We welcome any feedback via this form.

Lecture Material


In-person Lectures
at 3pm-4:30pm in 54-100 with
Login to view: Live Zoom used for polls and chat
(no recording will be available!)

Slides in Calendar below

Office Hours


In-person in 38-370 and on Zoom
(get a spot via the Help Queue)

First week (Sept 9 and 10 only):
11am-5pm

Beginning Sept 13:
Monday-Thursday: 9am-9pm
Friday 9am-5pm

This Week's Pset


Finished with 6.0001 Psets!


Changing Buddy Preferences?
PSet Buddy Form

Recitation Schedule


In-person (and optional)
Fridays at: 10am in 37-212
Recitation Feedback Form

Calendar and Materials 6.0001 - Fall 2021

All course announcements are on -> Stellar linked here <-
Monday
Tuesday
Wednesday
Thursday
Friday
9/6 PS 0 out
9/7
9/8: Lecture 1 slides
Introduction to Python: knowledge, machines, objects, types, variables, bindings, IDEs
Readings: Ch 1, Ch 2.1-2.2
Lec1 Finger Ex. out PS 1 out
9/9
9/10 PS 0 due at 9PM (No checkoff for PS 0)
9/13: Lecture 2 slides
Core elements of programs: strings, input/output, f-strings, operators, branching, indentation
Readings: Ch 2.3-2.4
Lec2 Finger Ex. out Lec1 Finger Ex. due
9/14
9/15: Lecture 3 slides
Program Flow: control flow, loops, iteration
Readings: Ch 2.5-2.8
Microquiz 0 (testing microquiz mechanics, not for points, take it on your own between 4:30pm and 9:30pm)
Lec3 Finger Ex. out Lec2 Finger Ex. due
9/16
9/17: Recitation 1 notes
9/20: Lecture 4 slides
Simple Programs: guess and check
Readings: Ch 3.1
Microquiz 1 (30 minutes in-class on your computer)
Lec4 Finger Ex. out Lec3 Finger Ex. due
9/21
9/22: Lecture 5 slides
Simple Algorithms: floats and fractions, binary numbers, approximate solutions
Readings: Ch 3.1-3.3
Lec5 Finger Ex. out Lec4 Finger Ex. due
9/23
9/24: Recitation 2 notes
9/27: Lecture 6 slides
Simple Algorithms: bisection search, Newton-Raphson
Readings: Ch 3.2, 3.5
Lec6 Finger Ex. out Lec5 Finger Ex. due
9/28
9/29: Lecture 7 slides
Functions: decomposition, abstraction, specifications
Readings: Ch 4.1-4.2
Lec7 Finger Ex. out Lec6 Finger Ex. due
9/30 Last day we are accepting adds
10/1: Recitation 3 notes
10/4: Lecture 8 slides
Functions: environments, scope, functions as objects
Readings: Ch 4.3-4.6
Microquiz 2 (30 minutes in-class on your computer)
Lec8 Finger Ex. out Lec7 Finger Ex. due PS 2 out PS 1 due at 9PM PS 1 halfway-handin due at 9PM
10/5 PS 1 Checkoffs start
10/6: Lecture 9 slides
More functions as objects, keyword arguments, default arguments. Tuples and Lists: tuples, lists, list operations
Readings: Ch 5.1-5.2
Lec9 Finger Ex. out
10/7
10/8: Recitation 4 notes Lec8 Finger Ex. due Add Date
10/11: Holiday No Class or OH
10/12 PS 1 Checkoff due
10/13: Lecture 10 slides
Mutability: mutation, aliasing, cloning
Readings: Ch 5.3-5.5
Lec10 Finger Ex. out Lec9 Finger Ex. due PS 2 halfway-handin due at 9PM
10/14
10/15: Recitation 5 notes
10/18: Lecture 11 slides
Recursion: iteration vs recursion, inductive reasoning
Readings: Ch 6.1
Microquiz 3 (30 minutes in-class on your computer)
Lec11 Finger Ex. out Lec10 Finger Ex. due
10/19
10/20: Lecture 12 slides
Recursion: fibonacci, recursion on non-numerics, recursion on lists, Towers of Hanoi (extra)
Readings: Ch 6.2-6.4
Lec12 Finger Ex. out Lec11 Finger Ex. due PS 3 out PS 2 due at 9PM
10/21 PS 2 Checkoffs start
10/22: Recitation 6 notes
10/25: Lecture 13 slides
Debugging: glass box/black box testing, examples, exceptions, assertions
Readings: Ch 8, Ch 9
Microquiz 4 (30 minutes in-class on your computer)
Lec13 Finger Ex. out Lec12 Finger Ex. due
10/26
10/27: Lecture 14 slides
Dictionaries: keys, values, mutability, iteration over a dict, examples, fibonacci with a dict
Readings: Ch 5.7
Lec14 Finger Ex. out Lec13 Finger Ex. due
10/28 PS 2 Checkoff due
10/29: Recitation 7 notes PS 3 halfway-handin due at 9PM
11/1: Lecture 15 slides
Object Oriented Programming: data abstraction, class def, class instances, methods
Readings: Ch 10.1
Microquiz 5 (30 minutes in-class on your computer)
Lec15 Finger Ex. out Lec14 Finger Ex. due
11/2
11/3: Lecture 16 slides
Object Oriented Programming: dunder methods, examples
Readings: Ch 10.1
Lec16 Finger Ex. out Lec15 Finger Ex. due PS 4 out PS 3 due at 9PM
11/4 PS 3 Checkoffs start
11/5: Recitation 8 notes
11/8: Lecture 17 slides
Inheritance: hierarchies, subclasses, using inherited methods, examples
Readings: Ch 10.2
Lec17 Finger Ex. out Lec16 Finger Ex. due
11/9
11/10: Lecture 18 slides
Inheritance: more examples
Readings: Ch 10.4
Lec18 Finger Ex. out Lec17 Finger Ex. due PS 4 halfway-handin due at 9PM
11/11: Holiday No Class or OH
11/12: Recitation 9 notes PS 3 Checkoff due
11/15: Lecture 19 slides
Complexity: measuring efficiency, complexity relations and classes, calc complexity
Readings: Ch 11
Microquiz 6 (45 minutes in-class on your computer)
Lec18 Finger Ex. due No L19 Finger Ex.
11/16
11/17: Lecture 20 slides
Complexity: Big-Oh notation, string and list examples, analyzing complexity
Readings: Ch 11
PS 5 out PS 4 due at 9PM No L20 Finger Ex.
11/18 PS 4 Checkoffs start
11/19: Recitation 10 notes
11/22: Lecture 21 slides
Search: indirection, linear search, bisection search
Readings: Ch 12.1
No L21 Finger Ex.
11/23
11/24: Pre-holiday No Class or OH
11/25: Holiday No Class or OH
11/26: Holiday No Class or OH
11/29: Lecture 22 slides
Sort: bogo, bubble, selection, merge sort
Readings: Ch 12.2
Microquiz 7 (30 minutes in-class on your computer)
PS 5 halfway-handin due at 9PM (No checkoff for PS 5) No L22 Finger Ex.
11/30
12/1: Lecture 23 slides
Visualization library
Readings: Ch 13
No L23 Finger Ex.
12/2 PS 4 Checkoff due
12/3
12/6: Lecture 24 slides
Extras: lists in memory, hashing, simulations, wrap-up
Readings: Ch 12.3, Ch 17
PS 5 due at 9PM (No checkoff for PS 5) No L24 Finger Ex.
12/7
12/8
12/9
12/10
12/13
12/14
12/15
12/16
12/17
12/20
12/21
12/22
12/23
12/24