Course Schedule

Part 1: Performance

Week 1

Tue: No Class (Sep 01)
Thu: Reproducibility 1 (Sep 03)
  • Course Overview
  • Hardware, OS, Interpreters
Watch Fall 2026: Lecture
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Watch Prerecorded: Recording
Slides: PDF
Assigned:

Week 2

Tue: Reproducibility 2 (Sep 08)
  • versioning
  • git commands
  • branching and merging
  • conflict resolution
Watch Fall 2026: Lecture
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Watch Prerecorded: Recording
Slides: PDF
Due: Assigned:
Thu: Performance 1 (Sep 10)
  • check_output
  • time
  • identifying steps
  • counting executed steps
  • complexity analysis
Watch Fall 2026: Lecture
Watch Spring 2026: Lecture
Watch Fall 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: Performance 2 (Sep 15)
  • big O notation
  • worksheet practice
  • large data
  • generators
Watch Fall 2026: Lecture
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Watch Prerecorded: Recording
Lecture notes: Code
Read: HTML (NB)
Worksheet: Question, Answer
Assigned: Due:
Thu: OOP 1 (Sep 17)
Classes
  • attributes
  • methods
  • constructors
Watch Fall 2026: Lecture
Watch Spring 2026: Lecture
Watch Fall 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:

Week 4

Tue: OOP 2 (Sep 22)
Special Methods
  • __str__, __repr__, _repr_html_
  • __eq__, __lt__
  • __len__, __getitem__
  • __enter__, __exit__
Watch Fall 2026: Lecture
Watch Spring 2026: Lecture
Watch Fall 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: Due:
Thu: OOP 3 and Recursion (Sep 24)
Inheritance
  • method resolution order
  • overriding methods
  • calling overridden methods
Recursion
  • functions that return something
  • functions that do something
Watch Fall 2026: Lecture
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Watch Prerecorded: Recording
Lecture notes: Code
Read: HTML (NB)
Worksheet: Question, Answer
Interactive Exercises
Assigned: Grade Released: Project 1 (10:00 pm)

Week 5

Tue: Graphs and Trees (Sep 29)
Graphs
  • graphviz
  • types of graph
Trees
  • trees
  • binary trees
  • binary search trees (BSTs)
  • BSTs: height, for sets+dicts
Watch Fall 2026: Lecture
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Watch Prerecorded: Recording
Lecture notes: Code
Read: HTML1 (NB1), HTML2 (NB2)
Slides: PDF
Assigned: Due:
Thu: Graph Search 1 (Oct 01)
  • depth-first search
Watch Fall 2026: Lecture
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Watch Prerecorded: Recording
Lecture notes: Code
Read: HTML (NB)
Slides: PDF
Honorlock: Practice with Honorlock
Assigned: Grade Released: Project 2 (10:00 pm)
Part 2: Web and Visualization

Week 6

Tue: Graph Search 2 (Oct 06)
  • breadth-first search
  • stacks, queues, priority queues
  • deque (for queues)
  • heapq (for priority queues)
Watch Fall 2026: Lecture
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Watch Prerecorded: Recording
Lecture notes: Code
Read: HTML1 (NB1), HTML2 (NB2)
Slides: PDF
Assigned: Due:
Thu: Web 1 (Oct 08)
Selenium
  • web intro
  • finding elements, text
  • polling
  • screenshots
  • clicking, typing
Watch Fall 2026: Lecture
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Watch Prerecorded: Recording
Tricky Pages
Lecture notes: Code
Read: HTML (NB)
Slides: PDF
Assigned:

Week 7

Tue: Web 2 (Oct 13)
Recursive Crawl
  • more tricky pages
  • BFS for webpages
Flask
  • Internet overview
Watch Fall 2026: Lecture
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Watch Prerecorded: Recording
Crawl Practice
Lecture notes: Code
Read: HTML (NB)
Slides: PDF
Assigned: Due:
Thu: Web 3 (Oct 15)
Flask
  • flask
  • headers, rate limiting (HTTP 429)
  • robots.txt
Watch Fall 2026: Lecture
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Watch Prerecorded: Recording
Lecture notes: Code
Read: HTML (NB)
Assigned:
  • Exam 1 (Online with Honorlock)
    Note: For detailed information about the exam schedule and other guidelines, please refer to the exam instructions on the Canvas page.
Due:
  • Exam 1 (7:30:00 pm)
Answers Released: Exam 1 (10:00 pm)

Week 8

Tue: Web 4 (Oct 20)
Flask
  • query strings
  • decorators
A/B testing
  • data collection
  • significance
Watch Fall 2026: Lecture
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Watch Prerecorded: Recording
Lecture notes: Code
Read: HTML (NB), TechCrunch article
Slides: PDF
Assigned: Due:
Thu: Web 5 (Oct 22)
Dashboards
  • dashboards
  • POST
  • CDFs
Watch Fall 2026: Lecture
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Lecture notes: Code
Read: HTML (NB)
Assigned: Grade Released: Project 3 (10:00 pm)

Week 9

Tue: Regex (Oct 27)
  • character classes
  • repetition
  • anchoring
  • practice
Watch Fall 2026: Lecture
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Watch Prerecorded: Recording
Lecture notes: Code
Read: HTML (NB), DS100 Ch 13
Slides: PDF
Assigned: Due:
Thu: Visualization 1 (Oct 29)
  • matplotlib coordinate systems
  • drawing custom lines/polygons
  • coordinate reference systems
Watch Fall 2026: Lecture
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Watch Prerecorded: Recording
Lecture notes: Code
Read: HTML (NB)
Assigned: Grade Released: Project 4 (10:00 pm)
Part 3: Machine Learning

Week 10

Tue: Visualization 2 (Nov 03)
  • geographic maps
  • shapely
  • shapefiles, GeoJSON
  • DPI (dots per inch)
  • geocoding
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Watch Prerecorded: Recording
Lecture notes: Code
Read: HTML (NB)
Assigned: Due:
Thu: Regression 1 (Nov 05)
  • Machine Learning (ML) overview
    • regression, classification
    • clustering, decomposition
  • sklearn LinearRegression
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Watch Prerecorded: Recording
Lecture notes: Code
Slides: PDF
Assigned:

Week 11

Tue: Regression 2 (Nov 10)
  • explained variance
  • train/test split
  • PolynomialFeatures
  • OneHot Encoding
  • Pipelines
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Lecture notes: Code
Slides: PDF
Assigned: Due:
Thu: Linear Algebra 1 (Nov 12)
  • numpy arrays
  • numpy images
  • multiplication
  • fit with np.linalg.solve
  • predict with np.dot
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Lecture notes: Code
Read: HTML1 (NB1), HTML2 (NB2)
Slides: PDF
Assigned:
  • Exam 2 (Online with Honorlock)
    Note: For detailed information about the exam schedule and other guidelines, please refer to the exam instructions on the Canvas page.
Due:
  • Exam 2 (7:30:00 pm)
Answers Released: Exam 2 (10:00 pm)

Week 12

Tue: Linear Algebra 2 (Nov 17)
  • column perspective
  • column spaces
  • projection matrices
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Lecture notes: Code
Read: HTML (NB)
Assigned: Due:
Thu: Classification 1 (Nov 19)
  • LogisticRegression
  • multiclass, proba
  • decision boundaries
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Lecture notes: Code
Slides: PDF
Assigned: Grade Released: Project 5 (10:00 pm)

Week 13

Tue: Classification 2 (Nov 24)
  • standardization
  • confusion matrices
  • accuracy, precision, recall
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Lecture notes: Code
Slides: PDF
Thu: No Class (Nov 26)
Thanksgiving recess

Week 14

Tue: Clustering (Dec 01)
  • KMeans
  • AgglomerativeClustering
  • fit, transform, predict
  • AgglomerativeClustering
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Lecture notes: Code
Slides: PDF
Assigned: Due:
Thu: Decomposition (Dec 03)
  • Principal Component Analysis (PCA)
  • Feature Dimensionality Reduction
  • Compressing Data
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Lecture notes: Code
Read: HTML (NB)
Assigned: Grade Released: Project 6 (10:00 pm)

Week 15

Tue: Unsupervised ML Recap (Dec 08)
  • linkage
  • wrapup Dendrograms
  • when to use the following:
    • KMeans
    • AgglomerativeClustering
    • PCA
Watch Spring 2026: Lecture
Watch Fall 2025: Lecture
Lecture notes: Code
Slides: PDF
Assigned: Due:
Thu: No Class (Dec 10)
Due: Grade Released: Project 7 (10:00 pm)
Grade Released: Project 8 (10:00 pm) on December 12

Week 16

Tuesday: Final Exam (Dec 15)
Assigned: Due:
  • Final Exam (7:30:00 pm)
Answers Released: Final Exam (10:00 pm)
Part 4: Additional Topics (Not to be graded)

Week 1-15

SQL: September 3 - December 11
Learning Material: Link