|
Covid-19 😷: Our course is fully
online this year. I think this has substantial advantages for a
course like this one: more pair programming, more online
exercises, more chances for feedback on student progress and
student goals, and more individualized paths to becoming expert
programmers. —Chris
|
|
Sep 14 |
- The basics of numerical types and strings
- The basics of lists, built-ins, for-loops, conditionals, and function definitions
|
- Assignment 1 [due Sep 28]
- Chris's solutions
|
- str
- list
- Using Python as a calculator
- Numeric types
- Built-in functions
- Control flow tools
- Defining functions
|
Sep 16 |
Sep 21 |
- The basics of executing files, homework formatting, dicts, and tuples
- Review exercises and miscellaneous items
|
- tuple
- dict
- set
- sorted
- collections.defaultdict
|
Sep 23 |
Sep 28 |
- Range, advanced assignments, logical statements, printing, and function definitions
- Basic file and CSV reading and writing; os.path basics
|
- Assignment 2 [due Oct 5]
- Chris's solutions
|
- range, enumerate, and others
- More on defining functions
- Reading and writing files
- glob
- os
- shutil
- csv
- json
- gzip
- pickle
- Optional: shelve, yaml
|
Sep 30 |
Oct 5 |
- In-class hackathon: Anagram finder
[Chris's implementation]
- Iterators and generators
|
- Assignment 3 [due Oct 12]
- Chris's solutions
|
- Notes on yield
- iterators
- generators
|
Oct 7 |
Oct 12 |
- In-class hacking using the Ed platform
|
- Assignment 4 [due Oct 19]
- Chris's solutions
|
|
Oct 14 |
- No class; Chris in a workshop
|
Oct 19 |
- Introduction to regular expressions
- More on regular expressions
|
- Assignment 5 [due Oct 26]
- Chris's solutions
|
- re
- Dataquest regular expression cheat sheet
|
Oct 21 |
Oct 26 |
- Using Jupyter notebooks
- Introduction to Pandas
[HTML version]
- Pandas exercises
[HTML version]
|
- Assignment 6 [due Nov 2; HTML version]
- Chris's solutions [HTML version]
|
- Lucy Li's Jupyter notebook tutorial
- Pandas documentation
|
Oct 28 |
Nov 2 |
- Hackathon (== Assignment 7)
|
- Assignment 7 [due Nov 9; HTML version]
|
- Wonderful language resources from Victor Kuperman and colleagues
|
Nov 4 |
Nov 9 |
- Introduction to object-oriented programming in Python
[HTML version;
completed version;
completed version HTML]
- Selected earlier homework problems as classes
|
- Assignment 8 [due Nov 16; HTML version]
- Chris's solutions [HTML version]
|
- Classes
|
Nov 11 |
Nov 16 |
- Document formats [HTML version]
- subprocess [HTML version]
|
- All coursework must be submitted by December 1, 11:59 pm Pacific
|
- glob
- csv
- gzip
- json
- pickle
- zipfile
- textract
- PyMuPDF
- Beautiful Soup
- requests
|
Nov 18 |
- Exception handling
- Unit testing with pytest
- Sorting
- Overview of visualization libraries
|
- pytest
- Background on unit testing
- sorted
- matplotlib
- Pandas visualization
- seaborn
|