Discover programming and learn to code in Python through interactive Jupyter notebook discovery labs.
Provide an experience before the explanation. Each lesson should invite learners to interact with code through familiar, compelling contexts — games, films, story, and more — before introducing underlying programming concepts. By the time a concept is named, the learner has already used it successfully, transforming abstract definitions into recognition of something they've done or experienced.
- Python 3.8+
- Jupyter Lab or Jupyter Notebook
pip install -r requirements.txt- Clone this repository
- Open a terminal in the project folder
- Run
jupyter lab - Start with
01_variables.ipynband work through in order
Learners who want hands-on practice with runnable code examples. Each notebook covers a core topic with explanations, examples you can modify, and space for your own notes.
- Fundamentals (01-12): For beginners new to Python
- Intermediate (13-24): For those ready to go deeper after mastering the basics
Learning sticks when it connects to things you find interesting. These notebooks use examples drawn from compelling corners of culture—not just generic foo/bar variables, but references that spark curiosity and make concepts memorable.
| # | Topic | Description |
|---|---|---|
| 01 | Variables | Types, assignment, naming conventions |
| 02 | Strings | String operations, formatting, methods |
| 03 | Lists | List operations, slicing, methods |
| 04 | Conditionals | if/elif/else, comparisons, boolean logic |
| 05 | Control Flow | match/case, break/continue, pass |
| 06 | Loops | for, while, enumerate, zip, comprehensions |
| 07 | Functions | def, args, kwargs, return, lambda |
| 08 | OOP | Classes, inheritance, methods, properties |
| 09 | File I/O | Reading/writing files, context managers |
| 10 | Error Handling | try/except, raising exceptions |
| 11 | Modules | Import, packages, __name__ |
| 12 | Testing | unittest, pytest basics, assertions |
| # | Topic | Description | Final-Boss |
|---|---|---|---|
| 13 | Functional Programming | map, filter, reduce, pure functions, immutability | No |
| 14 | Decorators | Function wrappers, @syntax, practical patterns | No |
| 15 | Generators & Iterators | yield, lazy evaluation, memory efficiency | No |
| 16 | CSS Glow Effects | box-shadow, neon effects, UI visual design | No |
| 17 | Regular Expressions | Pattern matching, text parsing, validation | No |
| 18 | Data Structures | Stacks, queues, trees, graphs, when to use each | Yes |
| 19 | Algorithms | Sorting, searching, complexity, problem-solving | Yes |
| 20 | Databases | SQLite, CRUD operations, SQL basics | Yes |
| 21 | Web Scraping | BeautifulSoup, requests, ethical scraping | Yes |
| 22 | APIs & HTTP | REST, JSON, authentication, building clients | Yes |
| 23 | Concurrency | Threading, asyncio, parallel processing | |
| 24 | Type Hints | Static typing, mypy, better code documentation | |
| 25 | Capstone | Bring it all together | Yes |
Extra notebooks exploring specific topics:
experimental/ImageToAsciiConversion.ipynb— Convert images to colored ASCII art
Some modules will include a "final-boss" challenge—a project that demonstrates mastery. These live in the projects/ directory and can take two forms:
Improve the learning materials:
- Add themed examples to existing notebooks
- Create better explanations or visualizations
- Fix or enhance content
Build something new:
- An application using the module's concepts
- A game, tool, or visualization
- Something personally compelling that demonstrates understanding
The capstone (24) requires a final-boss project. Others are optional but encouraged.
- Apply themed examples across all notebooks (currently only 01, 08 have themes)
- Expand theme variety beyond 80s sci-fi, to include compelling topics of interest and pop culture
- Create intermediate notebooks (13-24)
- Add final-boss project prompts to applicable modules
- Add choice design elements, images, colors, typefaces, and formatting
- Game theory fundamentals (prisoner's dilemma, Nash equilibrium)
- Music: BPM analysis, tone generation
- Data visualization with matplotlib
- Text analysis of language and literature structures
- Simple game simulations (Conway's Game of Life, etc.)
- Add requirements.txt
- Consider themed learning "tracks" (e.g., complete topics using film noir examples, Tron, sports teams, historic battles / armies, Time travel movies/stories/concepts, choose your own adventures, etc)
Lava Monster Labs Open Learning License v1.0 — free to use, modify, and share with attribution. See LICENSE for full terms including branding and commercial use guidelines.
- Blue Marble image: NASA (public domain)