Course Schedule

Part 1: Performance

Week 1

[Mon] No Class (Jan 23)
[Wed] Reproducibility 1 (Jan 25)
  • Course Overview
  • Hardware, OS, Interpreters
Watch: Lecture
Read: Syllabus
Slides: PDF
[Fri] Reproducibility 2 (Jan 27)
  • versioning
Watch: Lecture
Slides: PDF
Read: Course Notes

Week 2

[Mon] Reproducibility 3 (Jan 30)
  • git commands
  • branching and merging
  • conflict resolution
Watch: Lecture (LEC001)
Watch: Lecture (LEC002)
Lecture notes: Lecture notes repository
Slides: PDF
Read: Course Notes (NB)
Lab: Week 2 Activities
[Wed] Performance 1 (Feb 1)
  • check_output
  • time
  • identifying steps
  • counting executed steps
Released: P1 (perf measurements)
Watch: Lecture
Slides: PDF
Read: Course Notes (NB)
[Fri] Performance 2 (Feb 3)
  • complexity analysis
  • big O notation
  • worksheet practice
Lecture: attendance (requires wisc login)
Watch: Lecture
Worksheet: PDF
Read: Course Notes (NB)
Quiz (now due Sat, Feb 4th): week 1

Week 3

[Mon] Performance 3 (Feb 6)
  • large data
  • generators
Lecture: attendance (requires wisc login)
Watch: Lecture
Read: Course Notes
Lab: Week 3 Activities
[Wed] OOP 1: Classes (Feb 8)
  • attributes
  • methods
  • constructors
Optional Reading: Think Python 15, 16, and 17.1 - 17.5
Lecture: attendance (requires wisc login)
Watch: Lecture
Slides: PDF
Read: Course Notes (NB)
[Fri] OOP 2: Special Methods (Feb 10)
  • __str__, __repr__, _repr_html_
  • __eq__, __lt__
  • __len__, __getitem__
  • __enter__, __exit__
Released: P2 (trees)
Optional Reading: Python Data Model
Lecture: attendance (requires wisc login)
Watch: Lecture
Slides: PDF
Read: Course Notes (NB)
Quiz: week 2 and before (cumulative)

Week 4

[Mon] OOP 3: Inheritance (Feb 13)
  • method resolution order
  • overriding methods
  • calling overridden methods
Optional Reading: Think Python 18
Lecture: attendance (requires wisc login)
Watch: Lecture
Slides: PDF
Read: Course Notes (NB)
Lab: Week 4 Activities
[Wed] Recursion (Feb 15)
  • functions that return something
  • functions that do something
Due: P1
Lecture: attendance (requires wisc login)
Watch: Lecture
Worksheet: PDF
Read: Course Notes (NB)
[Fri] Graphs and Tree Intro (Feb 17)
  • types of graph
  • graphviz
Lecture: attendance (requires wisc login)
Watch: Lecture
Read: Course Notes (NB)
Quiz: week 3 and before (cumulative)

Week 5

[Mon] Trees 1 (Feb 20)
  • trees
  • binary trees
  • binary search trees (BSTs)
Lecture: attendance (requires wisc login)
Watch: Lecture
Read: Course Notes (NB)
Lab: Week 5 Activities
[Wed] Trees 2 (Feb 22)
  • BSTs: height, for sets+dicts
  • depth-first search
Lecture: attendance (requires wisc login)
Watch: Lecture
Slides: PDF
Read: Course Notes (NB)
[Fri] Graph Search 1 (Feb 24)
  • breadth-first search
  • stacks, queues, priority queues
Released: P3 (crawler)
Lecture: attendance (requires wisc login)
Watch: Lecture
Slides: PDF
Read: Course Notes (NB)
Quiz: week 4 and before (cumulative)
Part 2: Web and Visualization

Week 6

[Mon] Graph Search 2 (Feb 27)
  • deque (for queues)
  • heapq (for priority queues)
  • web intro
Lecture: attendance (requires wisc login)
Watch: Lecture
Read: Course Notes (NB)
Lab: Week 6 Activities
[Wed] Web 1: Selenium (Mar 1)
  • finding elements, text
  • polling
  • screenshots
  • clicking, typing
Due: P2
TRICKY PAGES
Lecture: attendance (requires wisc login)
Watch: Lecture
Slides: PDF
[Fri] Exam 1 (Mar 3)
  • Regular exam: in class
  • McBurney exam: 5:45 to 7:05 PM

Week 7

[Mon] Web 2: Recursive Crawl (Mar 6)
  • more tricky pages
  • BFS for webpages
CRAWL PRACTICE
Lecture: attendance (requires wisc login)
Watch: Lecture
Read: Course Notes (NB)
Lab: Week 7 Activities
[Wed] Web 3: Flask (Mar 8)
  • Internet overview
  • flask
  • headers, rate limiting (HTTP 429)
Lecture: attendance (requires wisc login)
Watch: Lecture
Slides: PDF
Read: Course Notes (NB)
[Fri] Web 4: More Flask (Mar 10)
  • robots.txt
  • query strings
  • decorators
Due: P3
Released: P4 (website)
Watch: Lecture
Quiz: week 6 and before (cumulative)

Week 8

[Mon] Spring Break (Mar 13)
[Wed] Spring Break (Mar 15)
[Fri] Spring Break (Mar 17)

Week 9

[Mon] Web 5: A/B testing (Mar 20)
  • data collection
  • significance
Read: The Morality of A/B Testing (TechCrunch article)
Lecture attendance: link provided in-person
Watch: Lecture
Slides: PDF
Lab: Week 9 Activities
[Wed] Web 6: Dashboards (Mar 22)
  • dashboards
  • POST
  • CDFs
Lecture attendance: link provided in-person
Watch: Lecture
Read: Course Notes (NB)
[Fri] Regex 1 (Mar 24)
  • character classes
  • repetition
  • anchoring
Read: DS100 Ch 13
Lecture attendance: link provided in-person
Watch: Lecture
Slides: PDF
Quiz: week 8 and before (cumulative)

Week 10

[Mon] Regex 2 (Mar 27)
  • practice
Lecture attendance: link provided in-person
Watch: Lecture
Read: Course Notes (NB)
Lab: Week 10 Activities
[Wed] Visualization 1 (Mar 29)
  • matplotlib coordinate systems
  • drawing custom lines/polygons
Lecture attendance: link provided in-person
Watch: Lecture
Read: Course Notes (NB)
[Fri] Visualization 2 (Mar 31)
  • geographic maps
  • shapely
  • coordinate reference systems
Due: P4
Released: P5 (trace analysis)
Lecture attendance: link provided in-person
Watch: Lecture
Read: Course Notes (NB)
Quiz: week 9 and before (cumulative)

Week 11

[Mon] Visualization 3 (Apr 3)
  • shapefiles, GeoJSON
  • DPI (dots per inch)
  • geocoding
Lecture attendance: link provided in-person
Watch: Lecture
Lab: Week 11 Activities
[Wed] ML overview (Apr 5)
  • regression, classification
  • clustering, decomposition
Lecture attendance: link provided in-person
Watch: Lecture
Slides: PDF
[Fri] Exam 2 (Apr 7)
  • Regular exam: in class
  • McBurney exam: 5:45 to 7:05 PM
Part 3: Machine Learning

Week 12

[Mon] Regression 1 (Apr 10)
  • sklearn LinearRegression
  • explained variance
  • train/test split
Lecture attendance: link provided in-person
Watch: Lecture
Lab: Week 12 Activities
[Wed] Regression 2 (Apr 12)
  • PolynomialFeatures
  • OneHot Encoding
  • Pipelines
Lecture attendance: link provided in-person
Watch: Lecture
Slides: PDF
[Fri] Linear Algebra 1 (Apr 14)
  • numpy arrays
  • numpy images
  • multiplication
Due: P5
Released: P6 (land matrices and regression)
Lecture attendance: link provided in-person
Watch: Lecture
Read: Course Notes (NB)
Quiz: week 11 and before (cumulative)

Week 13

[Mon] Linear Algebra 2 (Apr 17)
  • more multiplication
  • fit with np.linalg.solve
  • predict with np.dot
  • column perspective
Lecture attendance: link provided in-person
Watch: Lecture
Read: Course Notes (NB)
Lab: Week 13 Activities
[Wed] Linear Algebra 3 (Apr 19)
  • column spaces
  • projection matrices
Lecture attendance: link provided in-person
Watch: Lecture
Read: Course Notes (NB)
[Fri] Classification 1 (Apr 21)
  • LogisticRegression
  • multiclass, proba
  • decision boundaries
  • standardization
Released: P7 (classification)
Lecture attendance: link provided in-person
Watch: Lecture
Quiz: week 12 and before (cumulative)

Week 14

[Mon] Classification 2 (Apr 24)
  • confusion matrices
  • accuracy, precision, recall
Lecture attendance: link provided in-person
Watch: Lecture
Slides: PDF
Lab: Week 14 Activities
[Wed] Clustering 1 (Apr 26)
  • KMeans
  • AgglomerativeClustering
  • fit, transform, "predict"
Due: P6
Lecture attendance: link provided in-person
Watch: Lecture
[Fri] Clustering 2 (Apr 28)
  • AgglomerativeClustering
  • linkage
Lecture attendance: link provided in-person
Watch: Lecture
Slides: PDF
Quiz: week 13 and before (cumulative)

Week 15

[Mon] Decomposition (May 1)
  • Principal Component Analysis (PCA)
  • Feature Dimensionality Reduction
  • Compressing Data
Lecture attendance: link provided in-person
Watch: Lecture
Read: Course Notes (NB)
Lab: Week 15 Activities
[Wed] Parallelism (May 3)
  • threads vs. processes
  • multiprocessing pools
  • parallel map
  • pytorch
Lecture attendance: link provided in-person
Watch: Lecture
Slides: PDF
Read: Course Notes (NB)
[Fri] Final review / Unsupervised Machine Learning Recap (May 5)
  • wrapup Dendrograms
  • when to use KMeans, AgglomerativeClustering, PCA
Due (HARD DEADLINE - No submissions accepted after today): P7
Final exam: Regular exam: Friday, May 12th 10:05AM - 12:05PM
Final exam: McBurney exam: Friday, May 12th 9:00AM - 1:00PM
Lecture attendance: link provided in-person
Watch: Lecture
Slides: PDF