Python Foundations
A beginner-friendly, original Python course for adults and young adults who want to read, review, modify, and debug Python, especially AI-generated Python, rather than memorize syntax.
- Modules
- 15
- Lessons
- 46
- Estimated time
- About 20 hours of lessons
- Before you start
- Beginner friendly. No programming experience needed.
Times are planning estimates from each lesson's stated length, not measured completion times.
Reading and practice are open to everyone. Saving your progress needs an account with access to this course.
What the practice looks like
base_value = 120000
option_years = 2
option_rate = 0.4
option_value = base_value * option_rate * option_years
ceiling = base_value + option_value
option_rate = 0.6
print(f"Option value: {option_value:,.0f}")
print(f"Ceiling: {ceiling:,.0f}")What does this print?
Check your prediction
Option value: 96,000
Ceiling: 216,000Line 8 rebinds option_rate after both values were computed, so neither printed number changes.
Course roadmap
Modules are in the recommended order, and every lesson is open from day one.
Module 0: Orientation, Python with AI
How Python programs run, the read/predict/modify/run/debug/explain workflow, where each kind of work belongs, and when to reach for ChatGPT versus Claude Code.
Module 1: Values, Variables, and Expressions
The five value types you meet immediately, how names are bound and rebound, how expressions combine them, and how to turn a record into readable output without changing what it stores.
Module 2: Decisions and Validation
Comparisons and boolean logic, branching that stays readable, truthiness traps, and the first explainable matching rule for the opportunity review assistant.
Module 3: Collections and Iteration
Lists, tuples, dictionaries, and sets, how to choose between them, and how to loop over many opportunity records to produce a shortlist instead of judging one record at a time.
Module 4: Functions and Program Structure
Naming a piece of work so it can be called, tested, and replaced: parameters, return values, scope, docstrings, type hints, and the refactor that turns the shortlist script into small explainable parts.
Module 5: Errors, Debugging, and Testing
Reading a traceback for what it actually says, handling the failures worth handling, and writing the tests that stop a repaired bug from coming back.
Module 6: Files, JSON, CSV, and Data Quality
Reading and writing text safely, parsing the two formats published data actually arrives in, and turning untidy input into validated records with errors a person can act on.
Module 7: APIs and Web Data
What an HTTP request and response actually contain, how pagination, rate limits, timeouts, and retries shape a real client, and how to build that client against stored fixtures so every part of it can be tested with no network and nothing to configure.
Module 8: Data Analysis
Thinking in rows and columns, grouping and aggregating a batch of opportunities, and recognising the analyses that are arithmetically correct and still misleading.
Module 9: SQL and Persistent Data
Storing opportunity records in a real database, asking questions of them in SQL, joining normalised tables, and doing all of it with parameterised queries and versioned migrations.
Module 10: Automation and Reliable Scripts
Turning working code into a repeatable local command: virtual environments and dependencies, configuration and logging, arguments, idempotent re-runs, and the Git habits that make a mistake reversible.
Module 11: Object-Oriented Python and Maintainability
What a class buys you and what it costs, dataclasses for records, composition and duck typing instead of inheritance hierarchies, and how to justify choosing one design over another.
Module 12: Web Apps and Service Boundaries
The server side of the request and response you met in Module 7: routes, validated inputs, honest error responses, and a small read-only local interface over the shortlist that other software can call.
Module 13: AI-Assisted Software Development
Framing a task an assistant can complete and you can check, reading a generated diff for the change nobody asked for, and the risks worth refusing outright.
Module 14: The Opportunity Review Assistant
Every thread in this course assembled into one finished project: scope and a data dictionary, a fixture-backed client, normalisation and explainable matching, storage and reporting, four categories of test, a read-only local interface, one reviewed AI-assisted change, and the operational documents that make it somebody else's to run.
- Capstone Phase 1 and 2: Scope, Data Dictionary, and Loading the Batch30 min
- Capstone Phase 3 and 4: Normalisation, Validation, and Explainable Rules30 min
- Capstone Phase 5 to 7: Storage, Reporting, and the Test Suite30 min
- Capstone Phase 8 to 11: The API Contract, the Interface, One Reviewed Change, and the Handover30 min