Tentative Course Schedule Spring 2021

This schedule is subject to change. Please check back frequently.


Week Date Lecture Assignment Resources and Readings
Week 1 March 29th Introduction to Syllabus & Classroom Tooling
Python Basics Recap
Metaprogramming: Callable Classes
Metaprogramming: Decorators Classes
Metaprogramming: Runtime Patching
Week 1 & 2 Readings: Lutz. Ch. 1-7, Ch. 12, Ch. 21, Ch 39-40
Week 2 April 5th & 6th Developer Tooling & Testing:
Linter
Debugger
Profiling and Benchmarking Code<
PyTest & Other Popular Testing Frameworks
Homework #1 Out Week 1 & 2 Readings: Lutz. Ch. 1-7, Ch. 12, Ch. 21, Ch 39-40
Week 3 April 12th & 13th Working with Databases
NoSQL vs SQL Options
SQLAlchemy & Popular Database Modules
Homework #1 Due (April 13th 11:59pm CT)
Homework #2 Out
Reitz & Schlusser Ch. 10-11
Week 4 April 19th & 23rd Networking Programming
Socket, requests module
Connecting to the client
Homework#2 Due (April 21st 11:59pm CT)
Homework #3 Out April 22nd

Readings: Lutz. Ch. 14, 17,18,19,20
Week 5 April 26th & 29th Multiprogramming
Threading & Sharing Variables
Multiprocessing & Pools
Async Programming
Python's GIL
Homework #3 Due (April 29th 11:59pm CT)
Homework #4 Out April 29th

Readings: Ramalho Ch. 16-17
Week 6 May 3rd & 6th Serializing Data
XML
JSON
YAML
Pickling
Protobufs
Data Classes
Collections Module
Homework #4 Due (May 6th 11:59pm CT)
Homework #5 Out May 6th

Readings: Reitz & Schlusser Ch. 9-11
Week 7 May 10th & 13th Python & The Web
SQLAlchemy
Flask
What is web programming
Homework #5 Due (May 13th 11:59pm CT)
Homework #6 Out May 13th

Readings: Readings: Reitz & Schlusser Ch. 9-11
Week 8 May 17th & 20th Python For Data Analysis
SciPy & Pandas & Scikit-learn overview
Building a predictive model with sklearn
Homework #6 Due (May 20th 11:59pm CT)
Downey Ch. 6
Week 9 May 24th & 25th CPython Internals & Type Hinting
Writing a Python compiler

Final Project Out.

Readings: Core Python Documentation
Week 10 May 31st
No Class!
Final Project Due (June 1st @ 11:59pm CT)