Introduction to CS and Programming using Python
(Fall 2021)
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
at 3pm-4:30pm in 54-100 with
Login to view: Live Zoom used for polls and chat
Office Hours
(get a spot via the Help Queue)
11am-5pm
Beginning Sept 13:
Monday-Thursday: 9am-9pm
Friday 9am-5pm
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
Lec1 Finger Ex. out
PS 1 out
Readings: Ch 1, Ch 2.1-2.2
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
Lec2 Finger Ex. out
Lec1 Finger Ex. due
Readings: Ch 2.3-2.4
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
Lec5 Finger Ex. out
Lec4 Finger Ex. due
Readings: Ch 3.1-3.3
9/23
9/24: Recitation 2 notes
9/27: Lecture 6 slides
Simple Algorithms: bisection search, Newton-Raphson
Lec6 Finger Ex. out
Lec5 Finger Ex. due
Readings: Ch 3.2, 3.5
9/28
9/29: Lecture 7 slides
Functions: decomposition, abstraction, specifications
Lec7 Finger Ex. out
Lec6 Finger Ex. due
Readings: Ch 4.1-4.2
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
Lec9 Finger Ex. out
Readings: Ch 5.1-5.2
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
Lec10 Finger Ex. out
Lec9 Finger Ex. due
PS 2 halfway-handin due at 9PM
Readings: Ch 5.3-5.5
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)
Lec12 Finger Ex. out
Lec11 Finger Ex. due
PS 3 out
PS 2 due at 9PM
Readings: Ch 6.2-6.4
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
Lec14 Finger Ex. out
Lec13 Finger Ex. due
Readings: Ch 5.7
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
Lec16 Finger Ex. out
Lec15 Finger Ex. due
PS 4 out
PS 3 due at 9PM
Readings: Ch 10.1
11/4
PS 3 Checkoffs start
11/5: Recitation 8 notes
11/8: Lecture 17 slides
Inheritance: hierarchies, subclasses, using inherited methods, examples
Lec17 Finger Ex. out
Lec16 Finger Ex. due
Readings: Ch 10.2
11/9
11/10: Lecture 18 slides
Inheritance: more examples
Lec18 Finger Ex. out
Lec17 Finger Ex. due
PS 4 halfway-handin due at 9PM
Readings: Ch 10.4
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
No L19 Finger Ex.
Readings: Ch 11
Microquiz 6
(45 minutes in-class on your computer)
Lec18 Finger Ex. due
11/16
11/17: Lecture 20 slides
Complexity: Big-Oh notation, string and list examples, analyzing complexity
PS 5 out
PS 4 due at 9PM
No L20 Finger Ex.
Readings: Ch 11
11/18
PS 4 Checkoffs start
11/19: Recitation 10 notes
11/22: Lecture 21 slides
Search: indirection, linear search, bisection search
No L21 Finger Ex.
Readings: Ch 12.1
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
(No checkoff for PS 5)
No L22 Finger Ex.
Readings: Ch 12.2
Microquiz 7
(30 minutes in-class on your computer)
PS 5 halfway-handin due at 9PM
11/30
12/1: Lecture 23 slides
Visualization library
No L23 Finger Ex.
Readings: Ch 13
12/2
PS 4 Checkoff due
12/3
12/6: Lecture 24 slides
Extras: lists in memory, hashing, simulations, wrap-up
PS 5 due at 9PM
(No checkoff for PS 5)
No L24 Finger Ex.
Readings: Ch 12.3, Ch 17
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