Lecture materials (slides, keys, & notes) and recordings will be posted by midnight after class. Homework will be posted just before lecture.

Homework is due by 4:59pm on the date that it is posted as “due”, unless otherwise noted.

A notation of (P) beside a date indicates that participation will be taken that day.

Day Topic References Assigned Due (Tue @ 4:59PM Pacific)
Jan 6 Course introduction
Asking questions
Command line
Introductory git
Lecture recordings
Lecture materials
bash cheat sheet
Learning Linux Commands
Software Carpentry: Git
So You Want To Be A Wizard
Install required software
Homework 1
 
Jan 13 Jupyter notebooks & math
Python basics
Pandas
More python exercises
Lecture recordings
Lecture materials
A Whirlwind Tour of Python
Python Data Science Handbook
Homework 2 Homework 1
Jan 20 Python functions
Python modules
Python I/O
Interfaces & specifications
Project overview
Lecture recordings
Lecture materials
  Homework 3
Project: proposals
Homework 2
Jan 27 Debugging
Exceptions
Testing
Lecture recordings
Lecture materials
  Homework 4 Homework 3
Feb 3 (P) Project proposals
Team formation
Git part 2
Modules & imports
Lecture recordings
Lecture materials
  Project: GitHub repository & idea validation Homework 4
Project: proposals (due before class! 12pm)
Feb 10 (P) Team collaboration
Software & use case design (group work)
Technology reviews (lecture)
Lecture recordings
Lecture materials
Sequence Diagram tool
diagrams.net
Project: Technology reviews
Project: software & use case design
Project: GitHub repository & idea validation
Feb 17 Standups
Virtual environments
Continuous integration
Example CI repository
Lecture recordings
Lecture materials
Conda environments
GitHub Actions
GitHub Workflows for Python
Project: Continuous Integration Project: software & use case design
Feb 24 (P) Standups
First project demo
Documentation & style
Lecture recordings
Lecture materials
PEP8
Google Python Style Guide
Homework 5 Project: Continuous Integration
A basic project demo
Project: Technology reviews
Mar 3 (P) Standups
Packages
Advanced Testing
Software design (Part 2)
Lecture recordings
Lecture materials
Python packaging
setuptools
unittest.mock
Streamlit AppTest
Wikipedia on design patterns
Python Patterns Guide
“Gang of Four” Design Patterns book
  Homework 5
Mar 10 (P) Standups & Group Work
Software design patterns
Giving presentations
Secrets
Group consultations with Naomi/Riyosha
Lecture recordings
Lecture materials
dotenv
streamlit secrets.toml
Secrets in GitHub Actions
Project: survey
Course evaluations
Project: Practice presentations with course staff (low-stress, just to see how it’s going)
Mar 17 (P) 5:00pm - 8:00pm. Project presentations. PLEASE UPLOAD presentation & demo to your GitHub repo BEFOREHAND.     Project: presentation and final code (due Thursday at classtime)
Project: survey