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 (Thu @ 4:59PM Pacific)
Jan 9 Course introduction
Asking questions
Command line
Introductory git
Lecture recordings
Lecture materials
bash cheat sheet
Learning Linux Commands
Software Carpentry: Git
How To Ask Questions The Smart Way
Install required software
Homework 1
 
Jan 16 Jupyter notebooks & math (notebook)
Python basics (notebook)
Pandas (notebook)
More python exercises (notebook)
Lecture recordings
Lecture materials
A Whirlwind Tour of Python
Python Data Science Handbook
Homework 2
Homework 1 Regrade
Homework 1
Jan 23 Python functions (notebook)
Python modules (notebook)
Python I/O (notebook)
Interfaces & specifications
Project overview
Lecture recordings
Lecture materials
  Homework 3
Project: proposals
Homework 2
Homework 1 Regrade (due Saturday 12pm)
Jan 30 Debugging (notebook)
Exceptions (notebook)
Testing (notebook)
Lecture recordings
Lecture materials
  Homework 4
Homework 2 Regrade
Homework 3
Feb 6 (P) Project proposals
Team formation
Git part 2
Modules & imports
(link to download code)
Lecture recordings
Lecture materials
  Project: GitHub repository & idea validation Homework 4
Project: proposals (due before class! 12pm)
Homework 2 Regrade (due Friday 12pm)
Homework 3 Regrade (due 12pm Monday 2/10)
Feb 13 (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 20 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
Homework 4 Regrade (due 12pm Saturday 2/22)
Feb 27 (P) Standups
First project demo
Documentation & style (repository)
Lecture recordings
Lecture materials
PEP8
Google Python Style Guide
Homework 5 Project: Continuous Integration
A basic project demo
Project: Technology reviews
Mar 6 (P) Standups
Packages
Advanced Testing
Software design (Part 2) (repository)
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 13 (P) Standups & Group Work
Software design patterns
Giving presentations
Secrets
Group consultations with Melissa/Baisakhi
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 20 (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
Homework 5 Regrade (due 12pm noon Friday 3/21)