Course Schedule

Part 1: Performance

Week 1

Mon: Reproducibility 1 (Jun 17)
  • Course Overview
  • Hardware, OS, Interpreters
Git Workflow: Video
Slides: PDF
Assigned:
Tue: Reproducibility 2 (Jun 18)
  • versioning
  • git commands
  • branching and merging
  • conflict resolution
Slides: PDF
Due:
Wed: Performance 1 (Jun 19)
  • check_output
  • time
  • identifying steps
  • counting executed steps
  • complexity analysis
VM Setup: Video
Lecture notes: Code
Read: HTML1 (NB1), HTML2 (NB2)
Slides: PDF
Assigned:
Thu: Performance 2 (Jun 20)
  • big O notation
  • worksheet practice
  • large data
  • generators
Lecture notes: Code
Read: HTML (NB)
Worksheet: Question, Answer

Week 2

Mon: OOP 1 (Jun 24)
Classes
  • attributes
  • methods
  • constructors
Lecture notes: Code
Read: HTML (NB)
Slides: PDF
Optional Reading: Think Python 15, 16, and 17.1 - 17.5
Assigned: Due:
Tue: OOP 2 (Jun 25)
Special Methods
  • __str__, __repr__, _repr_html_
  • __eq__, __lt__
  • __len__, __getitem__
  • __enter__, __exit__
Inheritance
  • method resolution order
  • overriding methods
  • calling overridden methods
Lecture notes: Code
Read: HTML1 (NB1), HTML2 (NB2)
Slides: PDF
Optional Reading: Python Data Model
Optional Reading: Think Python 18
Wed: Recursion and Graphs (Jun 26)
Recursion
  • functions that return something
  • functions that do something
Graphs
  • graphviz
  • types of graph
Lecture notes: Code
Read: HTML1 (NB1), HTML2 (NB2)
Worksheet: Question, Answer
Interactive Exercises
Assigned: Due:
Thu: Trees (Jun 27)
  • trees
  • binary trees
  • binary search trees (BSTs)
  • BSTs: height, for sets+dicts
Watch: Video
Lecture notes: Code
Read: HTML (NB)
Slides: PDF

Week 3

Mon: Graph Search 1 (Jul 01)
  • depth-first search
Watch: Video
Lecture notes: Code
Read: HTML (NB)
Slides: PDF
Honorlock: Practice with Honorlock
Assigned: Due:
Tue: Graph Search 2 (Jul 02)
  • breadth-first search
  • stacks, queues, priority queues
  • deque (for queues)
  • heapq (for priority queues)
Watch: Video
Lecture notes: Code
Read: HTML1 (NB1), HTML2 (NB2)
Slides: PDF
Assigned:
Wed: Web 1 and Exam 1 (Honorlock) (Jul 03)
Selenium
  • web intro
  • finding elements, text
  • polling
  • screenshots
  • clicking, typing
Recursive Crawl
  • more tricky pages
  • BFS for webpages
Tricky Pages, Crawl Practice
Lecture notes: Code
Read: HTML1 (NB1), HTML2 (NB2)
Slides: PDF
Assigned: Due:
Thu: Independence Day (Jul 04)
No Class
Part 2: Web and Visualization

Week 4

Mon: Web 2 (Jul 08)
Flask
  • Internet overview
  • flask
  • headers, rate limiting (HTTP 429)
Lecture notes: Code
Read: HTML (NB)
Slides: PDF
Assigned: Due:
Tue: Web 3 (Jul 09)
Flask
  • robots.txt
  • query strings
  • decorators
A/B testing
  • data collection
  • significance
Lecture notes: Code
Read: HTML (NB), TechCrunch article
Slides: PDF
Due:
Wed: Web 4 (Jul 10)
Dashboards
  • dashboards
  • POST
  • CDFs
Lecture notes: Code
Read: HTML (NB)
Assigned:
Thu: Regex (Jul 11)
  • character classes
  • repetition
  • anchoring
  • practice
Watch: Video
Lecture notes: Code
Read: HTML (NB), DS100 Ch 13
Slides: PDF

Week 5

Mon: Visualization 1 (Jul 15)
  • matplotlib coordinate systems
  • drawing custom lines/polygons
  • coordinate reference systems
Watch: Video
Lecture notes: Code
Read: HTML (NB)
Assigned: Due:
Tue: Visualization 2 (Jul 16)
  • geographic maps
  • shapely
  • shapefiles, GeoJSON
  • DPI (dots per inch)
  • geocoding
Lecture notes: Code
Read: HTML (NB)
Wed: Regression 1 (Jul 17)
  • Machine Learning (ML) overview
    • regression, classification
    • clustering, decomposition
  • sklearn LinearRegression
  • explained variance
Lecture notes: Code
Assigned: Due:
Thu: Exam 2 (Honorlock) (Jul 18)
  • Regular exam: during class time
  • McBurney exam (with 1.5 x time): during class time
  • McBurney exam (with > 1.5 x time): 5:45 to 7:15 PM
Assigned:
Part 3: Machine Learning

Week 6

Mon: Regression 2 (Jul 22)
  • train/test split
  • PolynomialFeatures
  • OneHot Encoding
  • Pipelines
Lecture notes: Code
Slides: PDF
Assigned: Due:
Tue: Linear Algebra (Jul 23)
  • numpy arrays
  • numpy images
  • multiplication
  • fit with np.linalg.solve
  • predict with np.dot
  • column perspective
  • column spaces
  • projection matrices
Lecture notes: Code
Read: HTML1 (NB1), HTML2 (NB2), HTML3 (NB3)
Wed: Classification 1 (Jul 24)
  • LogisticRegression
  • multiclass, proba
  • decision boundaries
Lecture notes: Code
Slides: PDF
Assigned: Due:
Thu: Classification 2 (Jul 25)
  • standardization
  • confusion matrices
  • accuracy, precision, recall
Lecture notes: Code
Slides: PDF

Week 7

Mon: Clustering (Jul 29)
  • KMeans
  • AgglomerativeClustering
  • fit, transform, predict
  • AgglomerativeClustering
  • linkage
Lecture notes: Code
Slides: PDF
Assigned: Due:
Tue: Decomposition (Jul 30)
  • Principal Component Analysis (PCA)
  • Feature Dimensionality Reduction
  • Compressing Data
Lecture notes: Code
Read: HTML (NB)
Assigned:
Wed: Unsupervised ML Recap (Jul 31)
  • wrapup Dendrograms
  • when to use the following:
    • KMeans
    • AgglomerativeClustering
    • PCA
Lecture notes: Code
Slides: PDF
Assigned: Due:
Thu: Parallelism (Aug 01)
  • threads vs. processes
  • multiprocessing pools
  • parallel map
  • pytorch
Lecture notes: Code
Read: HTML (NB)
Slides: PDF
Due:

Week 8

Monday: Final Exam (Honorlock) (August 5)
  • Regular exam: 7:15 AM - 9:15 AM
  • McBurney exam: 7:15 AM -11:15 AM
  • Alternate exam: 9:15 AM -11:15 AM
Assigned: