# Aabha Python for AI and Data · Course package

Start with `SYLLABUS.md`, then open `course.html` in a browser or read the numbered files in `lessons/`. The HTML guide is an offline reading edition of the same lessons, not a Python runner. Keep this folder together so images and downloads resolve.

## Choose a practice route

**Browser-first:** open https://lab.aabhaai.com/ and select the profile named by the lesson. Paste the whole relevant file from `examples/` or your completed exercise into Editable practice.py, then Run Python. Each run starts fresh. Keep needed definitions and data in the same run. Download edited work before leaving. The course does not rely on files surviving another run or reload. The lab's Check example button belongs to its preset; it does not grade these course exercises or record completion.

**Optional local route:** install Python from its official source if you do not have it, unzip the course, and open a terminal in this folder. Python 3.12 is the tested local baseline. Creating a new virtual environment does not change the system Python. Commands are terminal commands, not code to paste into the Python editor.

macOS/Linux:

```sh
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
.venv/bin/python examples/00_first_run.py
.venv/bin/python -m unittest discover -s tests -v
.venv/bin/python -m solutions.capstone
```

Windows PowerShell, if `py -3.12` is installed:

```powershell
py -3.12 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe examples\00_first_run.py
.\.venv\Scripts\python.exe -m unittest discover -s tests -v
.\.venv\Scripts\python.exe -m solutions.capstone
```

Use the full interpreter path shown here; activation and PowerShell execution-policy changes are unnecessary. Initial installation needs internet and disk space. If your Python version differs, use compatible package versions and record what you actually test. The pins reproduce the authoring environment, not every operating system or browser runtime. Windows/macOS commands were reviewed but not executed in this Linux workspace.

For your capstone, run `python check_capstone.py`; it loads your exercise file and tests your `clean_orders`, not a reference answer. The browser starter embeds the same public checker. `BRIDGE_SOLUTIONS.md` has separate answers to the new bridge/transfer checkpoints.

The unit suite tests the reference implementation. To assess your readiness file specifically, use `python check_readiness.py` after completing `exercises/readiness.py`. The incomplete readiness file is expected to fail until you implement it. The interactive browser route is enough for required lessons; local files and module-import extensions are optional.

## Contents

- `lessons/`: ordered explanations, worked examples, exercises and exit checks
- `examples/`: ready-to-run examples; files labelled local-only need this folder
- `exercises/`: clearly incomplete starters to finish yourself
- `solutions/` and `SOLUTIONS.md`: separate worked answers and explanations
- `datasets/`: synthetic CSVs, schema and defect policy
- `assets/`: original instructional SVG diagrams
- `tests/`: automated reference-solution and regression tests
- `outputs/`: generated reference results, never replacements for raw datasets
- `integration/`: proposed content manifest and release checklist; no site has been edited
- `VERIFICATION.md`: actual execution results, browser coverage and limitations

## Troubleshooting

A NameError often means a definition was omitted or spelled differently. A SyntaxError may point just after a missing quote or bracket. An IndentationError means block spacing is inconsistent. A ModuleNotFoundError for NumPy/pandas/Matplotlib usually means the wrong lab profile or local interpreter. A local FileNotFoundError means a path resolved somewhere other than expected: run from this folder, or use the provided path-based example. If the lab hangs, use Stop and reduce the task; do not rerun an unbounded loop. Package loading requires an available network.

This package contains original instructional text, code, diagrams and invented datasets. External documentation is linked for reference and not redistributed. Review `SOURCES.md` and the integration checklist before publication. This is a content/testing handoff, not a live course launch or completed learner pilot.
