Quiz Bank & Score Tracker
Each session has 5 questions — asked before coding and after. Must score ≥ 80% (4/5) to advance. Scores are recorded here after each session.
Quiz rule: Questions test understanding of the exact code and examples taught
in that session, not generic trivia. If you score below 80%, the session repeats.
Quiz Design Principles
Bad question (disconnected trivia): "What keyword defines a function in Python?"
Good question (grounded in the session's own material): "Given def region_label(name, region=\"Unknown\"):, what does region_label(\"Kenya\") return for region, and why?"
Every quiz question in this curriculum reuses the exact code example just taught in that session's concept section — questions require reasoning about what the code actually does, not recalling isolated syntax facts.
Score History
| # | Session | Pre-Quiz | Post-Quiz | Status |
|---|---|---|---|---|
| 01 | Hello, World & Variables | — | — | Not started |
| 02 | Operators, Strings & Type Conversion | — | — | Not started |
| 03 | Conditionals | — | — | Not started |
| 04 | Loops | — | — | Not started |
| 05 | Dictionaries | — | — | Not started |
| 06 | Lists and Iteration | — | — | Not started |
| 07 | List Comprehensions | — | — | Not started |
| 08 | Functions and Lambda | — | — | Not started |
| 09 | Unpacking and *args/**kwargs | — | — | Not started |
| 10 | Modules and Imports | — | — | Not started |
| 11 | Errors and Exceptions | — | — | Not started |
| 12 | What Classes Are and Why | — | — | Not started |
| 13 | Class Anatomy — __init__ and Attributes | — | — | Not started |
| 14 | Instance Methods | — | — | Not started |
| 15 | Passing Data via the Constructor | — | — | Not started |
| 16 | Composition — Objects Containing Objects | — | — | Not started |
| 17 | Conditional Logic in Methods | — | — | Not started |
| 18 | Building Lists of Objects | — | — | Not started |
| 19 | Object Identity and Equality | — | — | Not started |
| 20 | What Is State in a Program? | — | — | Not started |
| 21 | Updating State via Methods | — | — | Not started |
| 22 | Handling User Input | — | — | Not started |
| 23 | Tracing State Changes | — | — | Not started |
| 24 | Validating Input | — | — | Not started |
| 25 | Passing State Between Functions | — | — | Not started |
| 26 | Computed Properties | — | — | Not started |
| 27 | Why Mock Data Matters | — | — | Not started |
| 28 | Building a Data Access Layer | — | — | Not started |
| 29 | Working with JSON Files | — | — | Not started |
| 30 | Designing Data Contracts | — | — | Not started |
| 31 | Why We Test and What to Test | — | — | Not started |
| 32 | Setting Up pytest | — | — | Not started |
| 33 | Testing Functions and Return Values | — | — | Not started |
| 34 | Testing Classes and State Changes | — | — | Not started |
| 35 | Testing the Data Layer with Mocks | — | — | Not started |
| 36 | Package and Folder Organization | — | — | Not started |
| 37 | Reusable Functions and Modules | — | — | Not started |
| 38 | Building Utility Modules | — | — | Not started |
| 39 | The Prop Drilling Problem | — | — | Not started |
| 40 | Architecture Review | — | — | Not started |
| 41 | File I/O Deep Dive | — | — | Not started |
| 42 | Calling a Real API with requests | — | — | Not started |
| 43 | Handling Errors and Edge Cases Gracefully | — | — | Not started |
| 44 | Capstone Review | — | — | Not started |
| 45 | Decorators | — | — | Not started |
| 46 | Generators, Iterators & Context Managers | — | — | Not started |
| 47 | Packaging & Virtual Environments | — | — | Not started |