Course Schedule
Part 1: Performance
Week 1
Mon: Reproducibility 1 (Jun 16)
- Course Overview
- Hardware, OS, Interpreters
Watch: Recording
Slides: PDF
Assigned:
Tue: Reproducibility 2 (Jun 17)
- versioning
- git commands
- branching and merging
- conflict resolution
Watch: Recording
Slides: PDF
Due:
Week 2
Mon: OOP 1 (Jun 23)
Classes- attributes
- methods
- constructors
Watch: Recording
GitLab: Video
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 24)
Special Methods- __str__, __repr__, _repr_html_
- __eq__, __lt__
- __len__, __getitem__
- __enter__, __exit__
- method resolution order
- overriding methods
- calling overridden methods
Watch: Recording
Lecture notes: Code
Read: HTML1 (NB1), HTML2 (NB2)
Slides: PDF
Optional Reading: Python Data Model
Optional Reading: Think Python 18
Assigned: Due:
Week 3
Mon: Graph Search 1 (Jun 30)
- depth-first search
Watch: Recording
Lecture notes: Code
Read: HTML (NB)
Slides: PDF
Honorlock: Practice with Honorlock
Assigned:
Tue: Graph Search 2 (Jul 01)
- breadth-first search
- stacks, queues, priority queues
- deque (for queues)
- heapq (for priority queues)
Watch: Recording
Lecture notes: Code
Read: HTML1 (NB1), HTML2 (NB2)
Slides: PDF
Due: Grade Released: Project 1 (10:00 pm)
Wed: Web 1 (Jul 02)
Selenium- web intro
- finding elements, text
- polling
- screenshots
- clicking, typing
- more tricky pages
- BFS for webpages
Watch: Recording
Tricky Pages, Crawl Practice
Lecture notes: Code
Read: HTML1 (NB1), HTML2 (NB2)
Slides: PDF
Assigned: Due:
Thu: Exam 1 (Honorlock) (Jul 03)
- Regular exam: during class time
- McBurney exam (with 1.5 x time): during class time
- McBurney exam (with > 1.5 x time): 5:45 pm to 7:15 pm
Part 2: Web and Visualization
Week 4
Mon: Web 2 (Jul 07)
Flask- Internet overview
- flask
- headers, rate limiting (HTTP 429)
Watch: Recording
Lecture notes: Code
Read: HTML (NB)
Slides: PDF
Assigned: Due:
Tue: Web 3 (Jul 08)
Flask- robots.txt
- query strings
- decorators
- data collection
- significance
Watch: Recording
Lecture notes: Code
Read: HTML (NB), TechCrunch article
Slides: PDF
Grade Released: Project 2 (10:00 pm)
Wed: Web 4 (Jul 09)
Dashboards- dashboards
- POST
- CDFs
Lecture notes: Code
Read: HTML (NB)
Assigned: Due:
Week 5
Mon: Visualization 1 (Jul 14)
- matplotlib coordinate systems
- drawing custom lines/polygons
- coordinate reference systems
Watch: Recording
Lecture notes: Code
Read: HTML (NB)
Assigned: Due: Grade Released: Project 3 (10:00 pm)
Tue: Visualization 2 (Jul 15)
- geographic maps
- shapely
- shapefiles, GeoJSON
- DPI (dots per inch)
- geocoding
Watch: Recording
Lecture notes: Code
Read: HTML (NB)
Assigned:
Wed: Regression 1 (Jul 16)
- Machine Learning (ML) overview
- regression, classification
- clustering, decomposition
- sklearn LinearRegression
Watch: Recording
Lecture notes: Code
Assigned: Due:
Part 3: Machine Learning
Week 6
Mon: Linear Algebra (Jul 21)
- 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)
Assigned:
Tue: Exam 2 (Honorlock) (Jul 22)
- Regular exam: during class time
- McBurney exam (with 1.5 x time): during class time
- McBurney exam (with > 1.5 x time): 5:45 pm to 7:15 pm
Wed: Classification 1 (Jul 23)
- LogisticRegression
- multiclass, proba
- decision boundaries
Lecture notes: Code
Slides: PDF
Assigned: Due: Grade Released: Project 5 (10:00 pm)
Week 7
Mon: Clustering (Jul 28)
- KMeans
- AgglomerativeClustering
- fit, transform, predict
- AgglomerativeClustering
Lecture notes: Code
Slides: PDF
Assigned: Due:
Tue: Decomposition (Jul 29)
- Principal Component Analysis (PCA)
- Feature Dimensionality Reduction
- Compressing Data
Lecture notes: Code
Read: HTML (NB)
Wed: Unsupervised ML Recap (Jul 30)
- linkage
- wrapup Dendrograms
- when to use the following:
- KMeans
- AgglomerativeClustering
- PCA
Lecture notes: Code
Slides: PDF
Assigned: Due: Grade Released: Project 6 (10:00 pm)
Thu: Parallelism (Jul 31)
- threads vs. processes
- multiprocessing pools
- parallel map
- pytorch
Lecture notes: Code
Read: HTML (NB)
Slides: PDF
Due:
- Survey 2 (11:59:00 pm)
- Project 8 (hard deadline: no project will be accepted after Thursday, July 31 at 11:59:00 pm)
Grade Released: Project 8 (10:00 pm) on August 01
Week 8
Monday: Final Exam (Honorlock) (August 4)
- Regular exam: 5:05 pm - 7:05 pm
- McBurney exam: 4:05 pm - 8:05 pm
- Alternate exam: 4:05 pm - 6:05 pm