Session Notes

Running notes from each session. Questions raised and answered. Confusing moments recorded. Breakthroughs noted. This is the human side of the learning log.

For AI sessions: After each session, add a note entry here summarising what was covered, any questions that came up, any concepts that needed extra explanation, and the final quiz score.

Note Format

<div class="card">
  <div style="display:flex; justify-content:space-between;">
    <span class="card-title">Session NN โ€” Title</span>
    <span style="color:var(--text-muted);font-size:13px;">YYYY-MM-DD</span>
  </div>
  <p><strong>Covered:</strong> ...</p>
  <p><strong>Questions raised:</strong> ...</p>
  <p><strong>Confusion points:</strong> ...</p>
  <p><strong>Quiz scores:</strong> Pre: X/5 ยท Post: X/5</p>
  <p><strong>Passed?</strong> Yes / No (repeat)</p>
</div>

Pre-curriculum โ€” Project Setup 2026-07-26

Covered: Full 40-session Python Fundamentals curriculum designed, mirroring the structure of the source React course. Repository structure created. All documentation infrastructure generated. No code written yet.

Decisions made: pip, minimal CSS dark theme (reused from the source course), plain Python (no external framework), static HTML docs, mock data before real APIs, a single running project โ€” the Country Explorer โ€” built incrementally across the 44-session core curriculum (plus 3 optional bonus sessions).

Next: Session 01 โ€” Hello, World & Variables.

Layer 0 โ€” Python Basics (Sessions 01โ€“04)

Covered: A true starting point for anyone new to programming: running code, naming values, branching, and repeating. Every later session assumes these are second nature.

Gate session: Session 04 โ€” Loops.

Layer 1 โ€” Python Foundations (Sessions 05โ€“11)

Covered: Before we build anything, we must be fluent in the core data structures and control flow that every later session relies on: dictionaries, lists, functions, and error handling.

Gate session: Session 11 โ€” Errors and Exceptions.

Layer 2 โ€” Object-Oriented Basics (Sessions 12โ€“19)

Covered: We start modelling real things as classes. Every concept here maps to something in Layer 1 โ€” a class is just a structured way of grouping the dictionaries and functions you already know.

Gate session: Session 19 โ€” Object Identity and Equality.

Layer 3 โ€” State & Interactivity (Sessions 20โ€“26)

Covered: State is data that changes over time. We learn to track it safely on objects, take input from a user, and compute values instead of duplicating them.

Gate session: Session 26 โ€” Computed Properties.

Layer 4 โ€” Mock Data (Sessions 27โ€“30)

Covered: Real teams build against fake data before a real data source exists. We design data contracts and a data-access layer independent of where the data actually comes from.

Gate session: Session 30 โ€” Designing Data Contracts.

Layer 5 โ€” Testing (Sessions 31โ€“35)

Covered: Testing is introduced gradually alongside the code it tests, using pytest. We test behavior โ€” what a function or class does โ€” not implementation details.

Gate session: Session 35 โ€” Testing the Data Layer with Mocks.

Layer 6 โ€” Architecture (Sessions 36โ€“40)

Covered: With the foundations in place, we learn to structure a Python project for long-term maintainability: package layout, reusable modules, and recognizing tight coupling.

Gate session: Session 40 โ€” Architecture Review.

Layer 7 โ€” Real World (Sessions 41โ€“44)

Covered: Only now do we touch the filesystem and a real network API. By this point we have the vocabulary to understand exactly what changed and why it matters.

Gate session: Session 44 โ€” Capstone Review.

Layer 8 โ€” Beyond the Fundamentals (Sessions 45โ€“47)

Covered: Optional, bonus sessions beyond the core curriculum: decorators, generators and context managers, and packaging/virtual environments โ€” closing the remaining gaps to a genuinely intermediate level.

Gate session: Session 47 โ€” Packaging & Virtual Environments.