Course Schedule

Part 1: Performance

Week 1

[Mon] Labor Day (Sep 6)
[Wed] Reproducibility 1 (Sep 8)
  • Course Overview
  • Hardware, OS, Interpreters
Read: Syllabus
Watch: Lecture
Slides: PDF
[Fri] Reproducibility 2 (Sep 10)
  • versioning
  • git
Watch: Lecture
Slides: PDF
Read: Lecture Notes

Week 2

[Mon] Performance 1 (Sep 13)
  • check_output
  • time
Lab: Cloud Setup
Released: P1 (perf measurements)
Watch: Lecture
Slides: PDF
Read: Lecture Notes (NB)
[Wed] Performance 2 (Sep 15)
  • complexity analysis
  • Big O
Watch: Lecture
Slides: PDF
Read: Lecture Notes (NB)
[Fri] Performance 3 (Sep 17)
  • practice
Watch: Lecture
Worksheet: PDF
PythonTutor: examples
Read: Lecture Notes (NB)

Week 3

[Mon] Performance 4 (Sep 20)
  • large data
  • generators
Lab: Git Practice
Watch: Lecture
PythonTutor: examples
[Wed] OOP 1: Classes (Sep 22)
  • attributes
  • methods
  • constructors
Optional Reading: Think Python 15, 16, and 17.1 - 17.5
Watch: Lecture
QUIZ 1 DUE
Slides: PDF
Read: Lecture Notes (NB)
[Fri] OOP 2: Special Methods (Sep 24)
  • __str__, __repr__, _repr_html_
  • __eq__, __lt__
  • __len__, __getitem__
  • __enter__, __exit__
Optional Reading: Python Data Model
Watch: Lecture
Slides: PDF
Read: Lecture Notes (NB)

Week 4

[Mon] OOP 3: Inheritance (Sep 27)
  • method resolution order
  • overriding methods
  • calling overridden methods
Due: P1
Released: P2 (trees)
Optional Reading: Think Python 18
Lab: Files and Complexity
Watch: Lecture
Slides: PDF
Read: Lecture Notes (NB)
[Wed] Catchup (Sep 29)
  • wrapup inheritance
  • recursion
QUIZ 2 DUE
Watch: Lecture
Worksheet: PDF
[Fri] Recursion (Oct 1)
  • functions that return something
  • functions that do something
Watch: Lecture
Read: Lecture Notes (NB)

Week 5

[Mon] Graphs and Tree Intro (Oct 4)
  • types of graph
  • graphviz
Lab: Linked Lists
Watch: Lecture
Read: Lecture Notes (NB)
[Wed] Trees 1 (Oct 6)
  • trees
  • binary trees
  • binary search trees (BSTs)
QUIZ 3 DUE
Watch: Lecture
Read: Lecture Notes (NB)
[Fri] Trees 2 (Oct 8)
  • implementing sets with BSTs
  • balance, complexity
  • graph search
Watch: Lecture
Slides: PDF
Read: Lecture Notes (NB)

Week 6

[Mon] Graph Search 1 (Oct 11)
  • depth-first search
Lab: BSTs
Watch: Lecture
Slides: PDF
Read: Lecture Notes (NB)
[Wed] Graph Search 2 (Oct 13)
  • breadth-first search
Due: P2
Released: P3 (crawler)
QUIZ 4 DUE
Watch: Lecture
Slides: PDF
Read: Lecture Notes (NB)
[Fri] Web 1: Selenium (Oct 15)
  • advanced web scraping
TRICKY PAGES
Watch: Lecture
Slides: PDF
Read: Lecture Notes (NB)
Part 2: Web and Visualization

Week 7

[Mon] Web 2: Recursive Crawl (Oct 18)
  • more tricky pages
  • BFS for webpages
CRAWL PRACTICE
Lab: DFS vs. BFS
Watch: Lecture
Read: Lecture Notes (NB)
[Wed] Web 3: Flask (Oct 20)
  • Internet overview
  • flask
  • decorators
QUIZ 5 DUE
Watch: Lecture
Slides: PDF
Read: Lecture Notes (NB)
[Fri] Web 4: More Flask (Oct 22)
  • query strings
  • rate limiting (HTTP 429)
  • robots.txt
Watch: Lecture
Read: Lecture Notes (NB)

Week 8

[Mon] Web 5: A/B testing (Oct 25)
  • data collection
  • significance
Read: The Morality of A/B Testing (TechCrunch article)
Due: P3
Released: P4 (website)
Lab: Web
Watch: Lecture
Slides: PDF
[Wed] Web 6: Dashboards (Oct 27)
  • dashboards
QUIZ 6 DUE
Watch: Lecture
Read: Lecture Notes (NB)
[Fri] Regex 1 (Oct 29)
  • character classes
  • repetition
  • anchoring
Read: DS100 Ch 13
Watch: Lecture
Slides: PDF

Week 9

[Mon] Regex 2 (Nov 1)
  • findall, sub, groups
Lab: Regex
Watch: Lecture
Read: Lecture Notes (NB)
[Wed] In-Class Midterm (Nov 3)
[Fri] Visualization 1 (Nov 5)
  • matplotlib coordinate systems
  • drawing custom lines/polygons
Watch: Lecture
Read: Lecture Notes (NB)

Week 10

[Mon] Visualization 2 (Nov 8)
  • geographic maps
  • shapefiles
  • high resolution graphics
Lab: Geo Maps
Watch: Lecture
Read: Lecture Notes (NB)
[Wed] Visualization 3 (Nov 10)
  • shapely
  • animations
Due: P4
Released: P5 (trace analysis)
QUIZ 7 DUE
Watch: Lecture
Read: Lecture Notes (NB)
[Fri] Visualization 4 (Nov 12)
  • big example
  • animated map of incidents scraped from Madison Fire Department
Watch 1: Lecture (In Class)
Watch 2: Lecture (After Class)
Part 3: Machine Learning

Week 11

[Mon] Regression 1 (Nov 15)
  • ML overview
  • sklearn LinearRegression
  • explained variance
  • train/test split
Lab: Regressions and SQL
Watch: Lecture
Slides: PDF
[Wed] Regression 2 (Nov 17)
  • PolynomialFeatures
  • OneHot Encoding
  • Pipelines
QUIZ 8 DUE
Watch: Lecture
[Fri] Linear Algebra 1 (Nov 19)
  • numpy arrays
  • numpy images
  • multiplication
Watch: Lecture
Read: Lecture Notes (NB)

Week 12

[Mon] Linear Algebra 2 (Nov 22)
  • more multiplication
  • fit with np.linalg.solve
  • predict with np.dot
  • column perspective
Watch: Lecture
Due: P5
Released: P6 (land matrices and regression)
Lab: Dot Product and Counting Cells
Read: Lecture Notes (NB)
[Wed] Linear Algebra 2 (Nov 24)
  • catchup
Watch (23 min): Lecture
QUIZ 9 DUE
[Fri] Thanksgiving Break (Nov 26)

Week 13

[Mon] Linear Algebra 3 (Nov 29)
  • column spaces
  • projection matrices
Lab: Model Comparison
Watch: Lecture
Read: Lecture Notes (NB)
[Wed] Classification 1 (Dec 1)
  • LogisticRegression
  • multiclass, proba
  • decision boundaries
QUIZ 10 DUE
Watch: Lecture
Slides: PDF
[Fri] Classification 2 (Dec 3)
  • confusion matrices
  • accuracy, precision, recall
  • regularization and standardization
Due: P6
Released: P7 (classification)
Watch: Lecture
Slides: PDF

Week 14

[Mon] Clustering 1 (Dec 6)
  • k-means
Lab: Decision Boundaries
Watch: Lecture
[Wed] Clustering 2 (Dec 8)
  • hierarchical clustering
  • dendrograms
  • linkage matrices
  • AgglomerativeClustering
QUIZ 11 DUE
Watch: Lecture
Slides: PDF
[Fri] Decomposition (Dec 10)
  • Singular Value Decomposition (SVD)
  • Principal Component Analysis (PCA)
  • Compressing Data
Watch: Lecture
Read: Lecture Notes (NB)

Week 15

[Mon] Parallelism 1 (Dec 13)
  • multiprocessing pools
  • parallel map
Lab: Clustering Pixels
Due: P7
Watch: Lecture
Slides: PDF
Read: Lecture Notes (NB)
[Wed] Parallelism 2 (Dec 15)
  • pytorch
Watch: Lecture
Slides: PDF
Read: Lecture Notes (NB)