| Date |
Lecture Topics |
Readings |
Assigned Work |
| Week 1 |
| Lectures |
- Course introduction
- The importance of natural curiosity
- Experimentation in a running Python shell
- Dictionaries as a recurring theme in Python
- Scopes and namespaces
- Shadowing and the LEGB rule
- Module importation
- How different ways to import behave differently
- Importation in non-global scopes
- Importation vs. loading
- Classes and objects
- Attributes in objects
- Attributes in classes
- Static and class methods
- Positional and keyword arguments
- Packing and unpacking
- Default arguments
- Tuple-packing parameters
- Keyword-only and positional-only parameters
- Dictionary-packing parameters
|
|
|
| W 1/7 |
|
|
|
| F 1/9 |
|
|
- Lab sections begin meeting today
|
| Week 2 |
| Lectures |
- Context managers and the
with statement
- Examples of existing context managers in Python
- Writing one's own context managers
- Asymptotic analysis
- O-notation
- The limitations of O-notation
- "Closest-fit" O-notation
- Measuring time and memory
|
|
|
| W 1/14 |
|
|
|
| F 1/16 |
|
|
|
| Week 3 |
| Lectures |
- Searching
- The mechanics of Python lists
- Sequential search
- Binary search
- Best-, worst-, and average-case analysis
- Databases and persistence
- Relational databases
- Tables, rows, and columns
- Primary keys
- Relationships and foreign keys
|
|
|
| M 1/19 |
- University Holiday: Martin Luther King Jr. Day — NO LABS TODAY
|
|
|
| F 1/23 |
|
|
|
| Week 4 |
| Lectures |
- SQL and SQLite
- Creating tables in SQL
- Querying data using SQL's
SELECT
- Modifying data using SQL's
INSERT and UPDATE
- Removing data using SQL's
DELETE
- The meaning of
NULL in SQL
- Constraints and data integrity
- Relationships and joins
- List comprehensions
- Set comprehensions
- Interlude: What does it mean to be hashable?
- Dictionary comprehensions
|
|
|
| W 1/28 |
|
|
|
| Week 5 |
| Lectures |
- The mechanics of iteration
- The iterable protocol
- Implementing one's own iterator class
- Generators
- Using generators to decouple parts of a design
- Generator comprehensions
- Lazy evaluation
- Infinite generators
- Combining generators
- Generators in the Python standard library
|
|
|
| M 2/2 |
|
|
|
| Week 6 |
| Lectures |
- The Python data model
- Sized objects
- Booleanness of objects
- Indexing and slicing
- Hashing
- Overloading comparison operators
- Overloading arithmetic operators
- Revisiting the resolution of attribute access
|
|
|
| M 2/9 |
|
|
|
| W 2/11 |
|
|
|
| Week 7 |
| Lectures |
|
|
|
| M 2/16 |
- University Holiday: Memorial Day — NO LABS TODAY
|
|
|
| Week 8 |
| Lectures |
|
|
|
| Week 9 |
| Lectures |
|
|
|
| Week 10 |
| Lectures |
|
|
|
| Finals Week |
| Th 3/19 |
- FINAL EXAM (Lecture A): 4:00pm-6:00pm, ELH 100
- FINAL EXAM (Lecture B): 7:00pm-9:00pm, ELH 100
|
|
|