6.100L | Fall 2022 | Undergraduate

Introduction to CS and Programming using Python

Calendar

In-person lectures were mandatory and occurred on Mondays and Wednesdays. Recitations were held on Fridays and were optional.

Finger Ex. stands for “Finger Exercises” and “PS” stands for “Problem Set.”

Week # Monday Lecture Wednesday Lecture Recitations
1 No lecture.

Lecture 1: Introduction to Python: knowledge, machines, objects, types, variables, bindings, IDEs

Readings: Ch 1, Ch 2.1–2.2

Lecture 1 Finger Ex. handed out

PS 0 out (not graded)

Recitation 1
2

Lecture 2: Core Elements of Programs: strings, input/output, f-strings, operators, branching, indentation

Readings: Ch 2.3–2.4

Lecture 2 Finger Ex. handed out

Lecture 1 Finger Ex. due

PS 1 out

Lecture 3: Program Flow: control flow, loops

Readings: Ch 2.5–2.8

Microquiz 1 (30 minutes in-class on your computer)

Lecture 3 Finger Ex. handed out

Lecture 2 Finger Ex. due

Recitation 2
3

Lecture 4: Iteration, Simple Programs: guess and check, binary, fractions

Readings: Ch 3.1, 3.3

Lecture 4 Finger Ex. handed out

Lecture 3 Finger Ex. due

Lecture 5: Simple Algorithms: approximation method, floats

Readings: Ch 3.2–3.3

Microquiz 2 (30 minutes in-class on your computer)

Lecture 5 Finger Ex. handed out

Lecture 4 Finger Ex. due

PS 1 halfway hand-in due

No recitation
4

Lecture 6: Simple Algorithms: bisection search, Newton-Raphson

Readings: Ch 3.4–.5

Lecture 6 Finger Ex. handed out

Lecture 5 Finger Ex. due

Lecture 7: Functions: decomposition, abstraction, specifications

Readings: Ch 4.1–4.2

Microquiz 3 (30 minutes in-class on your computer)

Lecture 7 Finger Ex. handed out

Lecture 6 Finger Ex. due

Recitation 3
5

Lecture 8: Functions: environments, scope, functions as objects

Readings: Ch 4.3–4.6

Lecture 8 Finger Ex. handed out

Lecture 7 Finger Ex. due

Lecture 9: Tuples and Lists

Readings: Ch 5.1–5.3

Microquiz 4 (30 minutes in-class on your computer)

Lecture 9 Finger Ex. handed out

Lecture 8 Finger Ex. due

PS 2 out

PS 1 due

Recitation 4
6 No lecture

Lecture 10: List Operations, Mutability: mutation, aliasing, tricky examples with loops over L

Readings: Ch 5.3–5.5

Lecture 10 Finger Ex. handed out

Lecture 9 Finger Ex. due

PS 2 halfway hand-in due

Recitation 5
7

Lecture 11: Aliasing and Cloning, List Comprehensions

Readings: Ch 5.3–5.5

Microquiz 5 (30 minutes in-class on your computer)

Lecture 11 Finger Ex. handed out

Lecture 10 Finger Ex. due

Lecture 12: More Functions as Objects, Keyword Arguments, Default Arguments, Debugging: glass box/black box testing, examples

Readings: Ch 4.4, Ch 8

Lecture 12 Finger Ex. handed out

Lecture 11 Finger Ex. due

PS 3 out

PS 2 due

Recitation 6
8

Lecture 13: Exceptions, Assertions

Readings: Ch 9

Microquiz 6 (30 minutes in-class on your computer)

Lecture 13 Finger Ex. handed out

Lecture 12 Finger Ex. due

Lecture 14: Dictionaries: keys, values, mutability, iteration over a dict, examples

Readings: Ch 5.7

Lecture 14 Finger Ex. handed out

Lecture 13 Finger Ex. due

PS 3 halfway hand-in due

Recitation 7
9

Lecture 15: Recursion: iteration vs recursion, inductive reasoning

Readings: Ch 6.1

Microquiz 7 (30 minutes in-class on your computer)

Lecture 15 Finger Ex. handed out

Lecture 14 Finger Ex. due

Lecture 16: Recursion: Fibonacci, Fibonacci with a dict, recursion on non-numerics, recursion on lists, Towers of Hanoi (extra)

Readings: Ch 6.2–6.4 

Lecture 16 Finger Ex. handed out

Lecture 15 Finger Ex. due

PS 4 out

PS 3 due

Recitation 8
10

Lecture 17: Object Oriented Programming: data abstraction, class def, class instances, methods

Readings: Ch 10.1

Microquiz 8 (30 minutes in-class on your computer)

Lecture 17 Finger Ex. handed out

Lecture 16 Finger Ex. due

Lecture 18: Object Oriented Programming: dunder methods, examples

Readings: Ch 10.1

Lecture 18 Finger Ex. handed out

Lecture 17 Finger Ex. due

PS 4 halfway hand-in due

No recitation
11

Lecture 19: Inheritance: hierarchies, subclasses, using inherited methods, examples

Readings: Ch 10.2

Lecture 19 Finger Ex. handed out

Lecture 18 Finger Ex. due

Lecture 20: Inheritance: more examples

Readings: Ch 10.4

Lecture 20 Finger Ex. handed out

Lec19 Finger Ex. due

PS 5 out

PS 4 due

Recitation 9
12

Lecture 21: Complexity: measuring efficiency, timing programs, counting operations

Readings: Ch 11

Microquiz 9 (45 minutes class on your computer)

Lecture 20 Finger Ex. due

No Lecture 21 Finger Ex.

No lecture No recitation
13

Lecture 22: Complexity: Big-Oh notation, Big-Theta notation, complexity relations and classes, calc-complexity

Readings: Ch 11

Lecture 22 Finger Ex. handed out

Lecture 23: String and List Examples, Analyzing Complexity, Search: indirection, linear search, bisection search

Readings: Ch 12.1

Lecture 23 Finger Ex. handed out

Lecture 22 Finger Ex. due

PS 5 halfway hand-in due

Recitation 10
14

Lecture 24: Sort: bogo, bubble, selection, merge sort

Readings: Ch 12.2

Microquiz 10 (30 minutes in-class on your computer)

Lecture 23 Finger Ex. due

No Lecture 24 Finger Ex.

Lecture 25: Visualization Library

Readings: Ch 13

PS 5 due

No Lecture 25 Finger Ex.

No recitation
15

Lecture 26: Extras: lists in memory, hashing, simulations, wrap-up

Readings: Ch 12.3, Ch 17

No Lecture 26 Finger Ex.

No lecture No recitation

Course Info

Instructor
As Taught In
Fall 2022
Learning Resource Types
Lecture Videos
Lecture Notes
Problem Sets
Programming Assignments with Examples
Readings
Recitation Notes