Course Schedule

Part 1: Performance

Week 1

[Mon, Jun 5]
Reproducibility 1
  • course overview
  • hardware, interpreters
Slides
Lec Recording
[Tue, Jun 6]
Reproducibility 2
  • OS
  • versioning
P1 Released
Slides
Lec Recording
Reading
Lab 1A
[Wed, Jun 7]
Reproducibility 3
  • git commands
  • branching and merging
  • conflict resolution
Slides
Lec Recording
Reading .nb
[Thu, Jun 8]
Performance 1
  • check_output
  • time
  • identifying steps
  • counting executed steps
Slides
Lec Recording
Reading .nb
Lab 1B
Quiz 1

Week 2

[Mon, Jun 12]
Performance 2
  • complexity analysis
  • big O notation
Worksheet Answer
Lec Recording
Reading .nb
[Tue, Jun 13]
Performance 3
  • large data
  • generators
Lec Recording
Reading
Lab 2A
[Wed, Jun 14]
OOP 1: Classes
  • attributes
  • methods
  • constructors
P2 Released
Slides
Lec Recording
Reading .nb
[Thu, Jun 15]
OOP 2: Special Methods
  • __str__, __repr__, _repr_html_
  • __eq__, __lt__
  • __len__, __getitem__
  • __enter__, __exit__
P1 Due
Slides
Lec Recording
Reading .nb
Lab 2B
Quiz 2

Week 3

[Mon, Jun 19]
OOP 3: Inheritance
  • method resolution order
  • overriding methods
  • calling overridden methods
Slides
Lec Recording
Reading .nb
[Tue, Jun 20]
Recursion
  • functions that return something
  • functions that do something
Worksheet Answer
Lec Recording
Reading .nb
Lab 3A
[Wed, Jun 21]
Graphs and Trees Intro
  • types of graph
  • graphviz
Lec Recording
Reading .nb
[Thu, Jun 22]
Trees 1
  • trees
  • binary trees
  • binary search trees (BSTs)
Lec Recording
Reading .nb
Lab 3B
Quiz 3

Week 4

[Mon, Jun 26]
Trees 2
  • BSTs: height, for sets+dicts
  • depth-first search
Slides
Lec Recording
Reading .nb
[Tue, Jun 27]
Graph Search 1
  • breadth-first search
  • stacks, queues, priority queues
Slides
Lec Recording
Reading .nb
Lab 4A
[Wed, Jun 28]
Graph Search 2
  • deque (for queues)
  • heapq (for priority queues)
  • web intro
P3 Released
Lec Recording
Reading .nb
[Thu, Jun 29]
Web 1: Selenium
  • finding elements, text
  • polling
  • screenshots
  • clicking, typing
Midterm 1
Fri, June 30th, 7:00PM - 8:30PM

Slides
Lec Recording
Lab 4B
Quiz 4
Part 2: Web and Visualization

Week 5

[Mon, Jul 3]
Web 2: Recursive Crawl
  • more tricky pages
  • BFS for webpages
P2 Due
Lec Recording
Reading .nb
[Tue, Jul 4]
Independence Day
[Wed, Jul 5]
Web 3: Flask
  • Internet overview
  • flask
  • headers, rate limiting (HTTP 429)
P4 Released
Slides
Lec Recording
Reading .nb
[Thu, Jul 6]
Web 4: More Flask
  • robots.txt
  • query strings
  • decorators
P3 Due Fri, July 7th
Lec Recording
Lab 5B
Quiz 5

Week 6

[Mon, Jul 10]
Web 5: A/B Testing
  • data collection
  • significance
Slides
Lec Recording
[Tue, Jul 11]
Web 6: Dashboards
  • dashboards
  • POST
  • CDFs
Lec Recording
Reading .nb
Lab 6A
[Wed, Jul 12]
Regex 1
  • character classes
  • repetition
  • anchoring
P5 Released
Slides
Lec Recording
[Thu, Jul 13]
Regex 2
  • practice
Lec Recording
Reading .nb
Lab 6B
Quiz 6

Week 7

[Mon, Jul 17]
Visualization 1
  • matplotlib coordinate systems
  • drawing custom lines/polygons
P4 Due
Lec Recording
Reading .nb
[Tue, Jul 18]
Visualization 2
  • geographic maps
  • shapely
  • coordinate reference systems
Lec Recording
Reading .nb
Lab 7A
[Wed, Jul 19]
Visualization 3
  • shapefiles, GeoJSON
  • geocoding
Lec Recording
[Thu, Jul 20]
ML Overview
  • regression, classification
  • clustering, decomposition
Midterm 2
Fri, July 21st, 7:00PM - 8:30PM

Slides
Lec Recording
Lab 7B
Part 3: Machine Learning

Week 8

[Mon, Jul 24]
Regression 1
  • sklearn LinearRegression
  • explained variance
  • train/test split
P6 Released
Lec Recording
[Tue, Jul 25]
Regression 2
  • PolynomialFeatures
  • OneHot Encoding
  • Pipelines
Slides
Lec Recording
Lab 8A
[Wed, Jul 26]
Linear Algebra 1
  • numpy arrays
  • numpy images
  • multiplication
P5 Due
Lec Recording
Reading .nb
[Thu, Jul 27]
Linear Algebra 2
  • more multiplication
  • fit with np.linalg.solve
  • predict with np.dot
  • column perspective
Lec Recording
Reading .nb
Lab 8B
Quiz 8

Week 9

[Mon, Jul 31]
Linear Algebra 3
  • column spaces
  • projection matrices
Lec Recording
Reading .nb
[Tue, Aug 1]
Classification 1
  • LogisticRegression
  • multiclass, proba
  • decision boundaries
  • standardization
P7 Released
Slides
Lec Recording
Lab 9A
[Wed, Aug 2]
Classification 2
  • confusion matrices
  • accuracy, precision, recall
Slides
Lec Recording
[Thu, Aug 3]
Clustering 1
  • KMeans
  • AgglomerativeClustering
  • fit, transform, predict
P6 Due
Lec Recording
Lab 9B
Quiz 9

Week 10

[Mon, Aug 7]
Clustering 2
  • AgglomerativeClustering
  • linkage
Slides
Lec Recording
[Tue, Aug 8]
Decomposition
  • Principal Component Analysis (PCA)
  • Feature Dimensionality Reduction
  • Compressing Data
Slides
Lec Recording
Reading .nb
Lab 10A
[Wed, Aug 9]
Parallelism
  • threads vs. processes
  • multiprocessing pools
  • parallel map
  • pytorch
P7 Due
Slides
Lec Recording
Reading .nb