Courses › Course02

Course02 · Programming with Python

From first program to tested, packaged, database-backed applications — the working programming skill AI work demands.

56 days 56 written 56 complete

Days 43-49 · Python Setup and First Programs 7/7 complete
  1. Day 043 Installing Python and Virtual Environments complete
  2. Day 044 Variables and Types complete
  3. Day 045 Strings and Text Processing complete
  4. Day 046 Numbers, Math, and Precision complete
  5. Day 047 Input, Output, and f-strings complete
  6. Day 048 Reading Error Messages and Debugging complete
  7. Day 049 Your First Real Program complete

Project: Command-Line Calculator — Build a calculator that parses expressions, handles bad input gracefully, and ships with a README and usage examples.

Days 50-56 · Control Flow and Collections 7/7 complete
  1. Day 050 Conditionals and Boolean Logic complete
  2. Day 051 Loops: for, while, and Iteration Patterns complete
  3. Day 052 Lists in Depth complete
  4. Day 053 Dictionaries in Depth complete
  5. Day 054 Tuples, Sets, and Choosing a Collection complete
  6. Day 055 Comprehensions and Iterator Thinking complete
  7. Day 056 Building a Data-Driven CLI complete

Project: Terminal Task Manager — Build a to-do CLI with add/list/complete/delete commands persisting to a JSON file, using lists and dictionaries idiomatically.

Days 57-63 · Functions and Program Design 7/7 complete
  1. Day 057 Functions: Definition, Arguments, and Return Values complete
  2. Day 058 Scope, Closures, and *args/**kwargs complete
  3. Day 059 Modules, Imports, and Project Layout complete
  4. Day 060 A Tour of the Standard Library complete
  5. Day 061 Writing Readable Code complete
  6. Day 062 Recursion complete
  7. Day 063 Designing a Small Program Well complete

Project: Flashcard Study App — Build a spaced-repetition flashcard CLI organized into clean modules with documented functions.

Days 64-70 · Files, Errors, and Object-Oriented Python 7/7 complete
  1. Day 064 Reading and Writing Files complete
  2. Day 065 CSV and JSON in the Real World complete
  3. Day 066 Exceptions and Error Handling Strategy complete
  4. Day 067 Classes and Objects complete
  5. Day 068 Inheritance, Composition, and Dunder Methods complete
  6. Day 069 Dataclasses and Type Hints complete
  7. Day 070 Modeling a Domain with Objects complete

Project: Expense Tracker — Build an expense tracker with CSV import/export, category classes, and monthly summary reports.

Days 71-77 · Testing and Code Quality 7/7 complete
  1. Day 071 Why Test, and pytest Basics complete
  2. Day 072 Fixtures, Parametrization, and Test Design complete
  3. Day 073 Test-Driven Development complete
  4. Day 074 Mocking and Testing Boundaries complete
  5. Day 075 Static Typing with mypy complete
  6. Day 076 Linting and Formatting with Ruff complete
  7. Day 077 Quality Gates for a Python Project complete

Project: Tested Utility Library — Publish a small utility library with a full pytest suite, type hints checked by mypy, and CI-style local quality gates.

Days 78-84 · Python for Automation and the Web 7/7 complete
  1. Day 078 HTTP in Python with requests complete
  2. Day 079 Web Scraping Responsibly complete
  3. Day 080 Building CLIs with argparse complete
  4. Day 081 Scheduling and Background Jobs complete
  5. Day 082 A First Web API with FastAPI complete
  6. Day 083 Packaging and Distributing Python Code complete
  7. Day 084 Shipping an Automation Toolkit complete

Project: Personal Automation Toolkit — Package three real automations (an API poller, a file organizer, a report generator) as one installable CLI tool.

Days 85-91 · SQL and Relational Databases 7/7 complete
  1. Day 085 Relational Databases and SQLite complete
  2. Day 086 SELECT: Filtering, Sorting, and Aggregating complete
  3. Day 087 Joins and Relationships complete
  4. Day 088 Inserting, Updating, and Schema Design complete
  5. Day 089 Indexes and Query Performance complete
  6. Day 090 SQLite from Python complete
  7. Day 091 Designing and Querying a Real Schema complete

Project: Personal Library Database — Design and query a SQLite database for a book collection: schema, seed data, joins, and a Python reporting script.

Days 92-98 · Data Formats and Pipelines 7/7 complete
  1. Day 092 Beyond Tables: NoSQL and Key-Value Stores complete
  2. Day 093 ORMs and SQLAlchemy complete
  3. Day 094 Data Validation with pydantic complete
  4. Day 095 Dates, Times, and Time Zones complete
  5. Day 096 Concurrency and async Basics complete
  6. Day 097 Logging and Configuration complete
  7. Day 098 Section Project: A Complete Data Pipeline complete

Project: Section Project: End-to-End Data Pipeline — Build a pipeline that ingests a public API, validates records with pydantic, stores them in SQLite via SQLAlchemy, and emits a daily report — tested and logged.