Course Schedule
Part 1: Performance
Week 1
Week 2
Tue: Performance 1 (Jan 27)
- check_output
- time
- identifying steps
- counting executed steps
- complexity analysis
Watch Fall 2025: Lecture
Watch Spring 2025: Lecture
Watch Prerecorded: Recording
VM Setup: Video
Git Workflow: Video
Lecture notes: Code
Read: HTML1 (NB1), HTML2 (NB2)
Slides: PDF
Assigned:
Week 3
Tue: OOP 1 (Feb 03)
Classes- attributes
- methods
- constructors
Watch Fall 2025: Lecture
Watch Spring 2025: Lecture
Watch Prerecorded: Recording
GitLab: Video
Lecture notes: Code
Read: HTML (NB)
Slides: PDF
Optional Reading: Think Python 15, 16, and 17.1 - 17.5
Assigned: Due:
Thu: OOP 2 (Feb 05)
Special Methods- __str__, __repr__, _repr_html_
- __eq__, __lt__
- __len__, __getitem__
- __enter__, __exit__
- method resolution order
- overriding methods
- calling overridden methods
Watch Fall 2025: Lecture
Watch Spring 2025: Lecture
Watch Prerecorded: Recording
Lecture notes: Code
Read: HTML1 (NB1), HTML2 (NB2)
Slides: PDF
Optional Reading: Python Data Model
Optional Reading: Think Python 18
Assigned:
Week 4
Tue: Recursion and Graphs (Feb 10)
Recursion- functions that return something
- functions that do something
- graphviz
- types of graph
Watch Spring 2025: Lecture
Watch Prerecorded: Recording
Lecture notes: Code
Read: HTML1 (NB1), HTML2 (NB2)
Worksheet: Question, Answer
Interactive Exercises
Assigned: Due:
Week 5
Tue: Graph Search 1 (Feb 17)
- depth-first search
Watch Spring 2025: Lecture
Watch Prerecorded: Recording
Lecture notes: Code
Read: HTML (NB)
Slides: PDF
Honorlock: Practice with Honorlock
Assigned: Due:
Thu: Graph Search 2 (Feb 19)
- breadth-first search
- stacks, queues, priority queues
- deque (for queues)
- heapq (for priority queues)
Watch Spring 2025: Lecture
Watch Prerecorded: Recording
Lecture notes: Code
Read: HTML1 (NB1), HTML2 (NB2)
Slides: PDF
Assigned: Grade Released: Project 2 (10:00 pm)
Part 2: Web and Visualization
Week 6
Tue: Web 1 (Feb 24)
Selenium- web intro
- finding elements, text
- polling
- screenshots
- clicking, typing
- more tricky pages
- BFS for webpages
Watch Spring 2025: Lecture
Watch Prerecorded: Recording
Tricky Pages, Crawl Practice
Lecture notes: Code
Read: HTML1 (NB1), HTML2 (NB2)
Slides: PDF
Assigned: Due:
Thu: Exam 1 (Honorlock) (Feb 26)
- Regular exam: during class time
- McBurney exam (with 1.5 x time): during class time
- McBurney exam (with > 1.5 x time): 5:45 pm to 7:15 pm
Note: For detailed information about the exam schedule and other guidelines, please refer to the exam instructions on the Canvas page.
Week 7
Tue: Web 2 (Mar 03)
Flask- Internet overview
- flask
- headers, rate limiting (HTTP 429)
- robots.txt
Watch Spring 2025: Lecture
Watch Prerecorded: Recording
Lecture notes: Code
Read: HTML (NB)
Slides: PDF
Assigned: Due:
Week 8
Tue: Web 4 (Mar 10)
Dashboards- dashboards
- POST
- CDFs
Watch Spring 2025: Lecture
Lecture notes: Code
Read: HTML (NB)
Assigned: Due:
Week 9
Part 3: Machine Learning
Week 10
Tue: Regression 1 (Mar 24)
- Machine Learning (ML) overview
- regression, classification
- clustering, decomposition
- sklearn LinearRegression
Watch Spring 2025: Lecture
Watch Prerecorded: Recording
Lecture notes: Code
Assigned: Due:
Week 11
Tue: Spring Break (Mar 31)
Thu: Spring Break (Apr 02)
Week 12
Tue: Linear Algebra (Apr 07)
- numpy arrays
- numpy images
- multiplication
- fit with np.linalg.solve
- predict with np.dot
- column perspective
- column spaces
- projection matrices
Watch Spring 2025: Lecture
Lecture notes: Code
Read: HTML1 (NB1), HTML2 (NB2), HTML3 (NB3)
Assigned: Due:
Thu: Exam 2 (Honorlock) (Apr 09)
- Regular exam: during class time
- McBurney exam (with 1.5 x time): during class time
- McBurney exam (with > 1.5 x time): 5:45 pm to 7:15 pm
Note: For detailed information about the exam schedule and other guidelines, please refer to the exam instructions on the Canvas page.
Week 13
Tue: Classification 1 (Apr 14)
- LogisticRegression
- multiclass, proba
- decision boundaries
Watch Spring 2025: Lecture
Lecture notes: Code
Slides: PDF
Assigned: Due:
Week 14
Week 15
Tue: Unsupervised ML Recap (Apr 28)
- linkage
- wrapup Dendrograms
- when to use the following:
- KMeans
- AgglomerativeClustering
- PCA
Watch Spring 2025: Lecture
Lecture notes: Code
Slides: PDF
Assigned: Due:
Thu: Parallelism (Apr 30)
- threads vs. processes
- multiprocessing pools
- parallel map
- pytorch
Lecture notes: Code
Read: HTML (NB)
Slides: PDF
Due on May 02:
- Survey 2 (11:59:00 pm; hard deadline)
- Project 8 (hard deadline: no project will be accepted after Saturday, May 02 at 11:59:00 pm)
Grade Released: Project 8 (10:00 pm) on May 03
Week 16
Wednesday: Final Exam (Online Exam with Honorlock) (May 6)
- Regular exam: 2:45 pm - 4:45 pm
- McBurney exam: 1:45 pm - 5:45 pm
- Alternate exam: 3:45 am - 5:45 pm
Note: For detailed information about the exam schedule and other guidelines, please refer to the exam instructions on the Canvas page.