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
SLIDES
VIDEO
Read: Git Tutorial

Week 2

[Mon] Quantifying Perf 1 (Jan 27)
  • check_output
  • time
LECTURE NB
AUDIO (NO VIDEO)
Read: HTML, NB
WEEKLY LAB: Git Practice
[Wed] Quantifying Perf 2 (Jan 29)
  • complexity analysis
  • Big O
LECTURE NB STARTER
SLIDES
VIDEO
Read: Think Python Appendix B (except B.4)
Released: P1
[Fri] Quantifying Perf 3 (Jan 31)
  • practice
WORKSHEET
ANSWERS
NOTEBOOK
EXAMPLES
VIDEO

Week 3

[Mon] OOP 1: Classes (Feb 3)
  • attributes
  • methods
  • constructors
NOTEBOOK
SLIDES
VIDEO
Read: Think Python 15 + 17.1 - 17.5
Optional: Think Python 16
WEEKLY LAB: Complexity
[Wed] OOP 2: Special Methods (Feb 5)
  • __str__, __repr__, _repr_html_
  • __eq__, __lt__
  • __len__, __getitem__
  • __enter__, __exit__
NOTEBOOK
SLIDES
VIDEO
TEST CASES
Read: Think Python 17.6 - 17.12
Optional: Python Data Model
[Fri] OOP 3: Inheritance (Feb 7)
  • method resolution order
  • overriding methods
  • calling overridden methods
LECTURE NB STARTER
NOTEBOOK
SLIDES
VIDEO
Read: Think Python 18

Week 4

[Mon] Review + Practice (Feb 10)
  • Inheritance
  • Recursion
WORKSHEET
WEEKLY LAB: Linked Lists and Zips
VIDEO
[Wed] Graphs 1 (Feb 12)
  • review recursion
  • types of graph
  • graphviz
NO VIDEO :(
Read: HTML
Due: P1
Released: P2
[Fri] Graphs 2 (Feb 14)
  • trees
  • binary trees
  • binary search trees (BSTs)
Read: HTML
VIDEO

Week 5

[Mon] Graphs 3 (Feb 17)
  • implementing dictionaries with BSTs
  • graph search
LECTURE NB STARTER
MORNING NB
SLIDES
Read: HTML
WEEKLY LAB: BSTs and More!
VIDEO
[Wed] Graphs 4 (Feb 19)
  • DFS vs. BFS
  • time vs. memory complexity
SLIDES
LECTURE NB STARTER
MORNING NB
AFTERNOON NB
Read: HTML
VIDEO
[Fri] Graphs 5 (Feb 21)
  • dense graphs
  • Markov chains
  • log likelihood
SLIDES
Read: HTML
VIDEO
Part 2: Tracing and Evaluating Data Applications

Week 6

[Mon] Regex 1 (Feb 24)
  • character classes
  • repetition
  • anchoring
  • findall, sub, groups
LECTURE NB STARTER
SLIDES
Read: DS100 Ch 8
WEEKLY LAB: DFS vs. BFS
STUDENT EXAMPLES
VIDEO
[Wed] Catchup (Feb 26)
  • regex
Released: P3
VIDEO
[Fri] Web 1: Flask (Feb 28)
  • review from CS 220
  • RPC, POST
  • decorators
Due: P2
DECORATOR EXAMPLES
SLIDES

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)
[Fri] Visualization 1 (Mar 13)
  • custom designs
  • drawing polygons, etc
Due: P3

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)