Course Schedule

Part 1: Quantifying and Improving Performance

Week 1

[Mon] (Jan 20)
Martin Luther King Day!
No Class
WEEKLY LAB: Cloud Setup
[Wed] Reproducibility 1 (Jan 22)
  • Course Overview
  • Hardware, OS, Interpreters
SLIDES
Read: Syllabus
[Fri] Reproducibility 2 (Jan 24)
  • versioning
  • git

Week 2

[Mon] Quantifying Perf 1 (Jan 27)
  • time
  • subprocess
  • regression testing
[Wed] Quantifying Perf 2 (Jan 29)
  • complexity theory: big-O, worst-case, const factors
[Fri] Quantifying Perf 3 (Jan 31)
  • worksheet

Week 3

[Mon] OOP 1: Classes (Feb 3)
  • attributes, methods, constructors
[Wed] OOP 2: Py Data Model (Feb 5)
  • special data methods
[Fri] OOP 3: Inheritance (Feb 7)
  • method resolution order

Week 4

[Mon] OOP 4: Practice (Feb 10)
  • worksheets? Demos?
[Wed] Trees 1 (Feb 12)
  • review recursion
  • build, print trees
Due: P1
[Fri] Trees 2 (Feb 14)
  • trees as a lookup structure
  • point lookup vs. range query

Week 5

[Mon] Graphs 1 (Feb 17)
  • directed vs. non-directed
  • dense numpy implementation
  • sparse implementation via classes
  • build from data
  • introduce graphviz, visualize
[Wed] Graphs 2 (Feb 19)
  • DFS and BFS search
  • time vs. memory complexity
[Fri] Graphs 3 (Feb 21)
  • Markov chains
  • log probability of sequence
Part 2: Tracing and Evaluating Data Applications

Week 6

[Mon] Regex 1 (Feb 24)
  • extract more features of
  • https://docs.python.org/3/howto/regex.html
  • https://regex101.com/
[Wed] Regex 2 (Feb 26)
  • worksheet
Due: P2
[Fri] Web 1: Flask (Feb 28)
  • review from CS 220
  • RPC, POST
  • decorators

Week 7

[Mon] Web 2: Tracing (Mar 2)
  • wrappers based on *args and **kwargs
[Wed] Web 3: Selenium (Mar 4)
  • simulating users
  • advanced web scraping
[Fri] Web 4: Markov chains (Mar 6)
  • construct from traces
  • visualize

Week 8

[Mon] Web 4: A/B testing (Mar 9)
  • data collection
  • significance
[Wed] Review/Exam (Mar 11)
Due: P3
[Fri] Visualization 1 (Mar 13)
  • custom designs
  • drawing polygons, etc

Week 9

[Mon] Spring Break! (Mar 16)
No Class
[Wed] Spring Break! (Mar 18)
No Class
[Fri] Spring Break! (Mar 20)
No Class

Week 10

[Mon] Visualization 2 (Mar 23)
  • plotting variation
  • bar and whiskers
  • CDFs
[Wed] Visualization 3 (Mar 25)
  • geographic maps
[Fri] Visualization 4 (Mar 27)
  • animations
Part 3: Pre-Machine Learning

Week 11

[Mon] Linear Algebra 1 (Mar 30)
  • matrix multiplication basics
  • numpy
[Wed] Linear Algebra 2 (Apr 1)
  • equation solving
Due: P4
[Fri] Linear Algebra 3 (Apr 3)
  • fit lines
  • loss function
  • multiple linear regression

Week 12

[Mon] Linear Algebra 4 (Apr 6)
  • transforming non-linear data
[Wed] Linear Algebra 5 (Apr 8)
  • principal component analysis
  • TSNE (visualization)
[Fri] Parallelism 1 (Apr 10)
  • multiprocessing pools
  • parallel map

Week 13

[Mon] Parallelism 2 (Apr 13)
  • pytorch
[Wed] Parallelism 3 (Apr 15)
  • pytorch
Due: P5
[Fri] Supervised Learning 1 (Apr 17)
  • TODO

Week 14

[Mon] Supervised Learning 2 (Apr 20)
  • TODO
[Wed] Supervised Learning 3 (Apr 22)
  • TODO
[Fri] Unsupervised Learning 1 (Apr 24)
  • k-means

Week 15

[Mon] Unsupervised Learning 2 (Apr 27)
  • hierarchical
[Wed] Unsupervised Learning 3 (Apr 29)
  • visualization
Due: P6
[Fri] Review For Final (May 1)