This schedule is tentative, and it is neither sound (that is, if a topic is listed here, that doesn’t mean we’ll cover it!) nor complete (that is, if a topic is not listed here, that doesn’t mean we won’t cover it!).

As we get to each topic, the topic description will become a link to a Python notebook covering that topic. The notebooks I use in lectures are based on chapters of my colleague Luca de Alfaro’s draft textbook, Programming Abstractions in Python. However, I’ll present some things differently in my own notebooks linked below: I’ll add things, change things, and leave things out. Nevertheless, if you want a sneak preview of future course material, you can look at Luca’s book.

Assignments and surveys will be released (via Canvas announcements) no later than 9pm on the listed “out” date, and are due at 9pm on the listed “due” date.

Date Topics Notes
Monday, 1/6 Course overview; a fast-paced (re)introduction to Python 3 Start-of-course survey out
Wednesday, 1/8 A fast-paced (re)introduction to Python 3 (continued) Start-of-course survey due; assignment 1 out
Friday, 1/10 Data structures and their access characteristics  
Monday, 1/13 Data structures and their access characteristics (continued); counting stacks and queues, iterators, generators Assignment 2 out
Wednesday, 1/15 Counting stacks and queues, iterators, generators (continued) Assignment 1 due; assignment 3 out
Friday, 1/17 Review of the last few lectures; livecoding assignment 1!  
Monday, 1/20 No class (Martin Luther King, Jr. Day) Assignment 2 due
Wednesday, 1/22 Class cancelled, but watch the lecture video (livecoding assignment 2!) on Canvas  
Friday, 1/24 Sparse arrays Assignment 3 due; assignment 4 out
Monday, 1/27 Sock drawers and arithmetic dictionaries (deadline to add/drop the class)  
Wednesday, 1/29 Sock drawers and arithmetic dictionaries (continued); livecoding assignment 3! Assignment 5 out
Friday, 1/31 Review of recursion; stream averages and motion detection Assignment 4 due
Monday, 2/3 Stream averages and motion detection (continued) Assignment 6 out
Wednesday, 2/5 Expressions as trees Assignment 5 due
Friday, 2/7 Expressions as classes Assignment 7 out
Monday, 2/10 Expressions as classes (continued) Assignment 6 due; assignment 8 out
Wednesday, 2/12 Class cancelled due to grad student labor strike Mid-course survey out
Friday, 2/14 From expressions to optimization and machine learning Assignment 7 due; mid-course survey due
Monday, 2/17 No class (Presidents’ Day)  
Wednesday, 2/19 From expressions to optimization and machine learning (continued) Assignment 8 due; Assignment 9 out
Friday, 2/21 Class cancelled due to grad student labor strike  
Monday, 2/24 Understanding the regression line with standard units Assignment 10 out
Wednesday, 2/26 Graphs Assignment 9 due; assignment 11 out
Friday, 2/28 Guest speaker: Tom Ballinger  
Monday, 3/2 Class cancelled due to grad student labor strike Assignment 10 due
Wednesday, 3/4 Scheduling with dependencies Assignment 11 due; assignment 12 out
Friday, 3/6 Cooking times and resource constraints Assignment 13 out
Monday, 3/9 Sudoku  
Wednesday, 3/11 Sudoku (continued) Assignment 12 due; assignment 14 out
Friday, 3/13 Reasoning under uncertainty in SAT solving and life; wrap-up and AMA Assignment 13 due
Friday, 3/20 Happy finals week! Assignment 14 due