A local-first, feedback-driven learning environment for teaching "ai coding" through structured practice.
You will need the following tools installed before getting started:
Download and install Git from https://git-scm.com/downloads
Verify the installation:
git --versionDownload and install Python from https://www.python.org/downloads/
⚠️ On Windows, make sure to check "Add Python to PATH" during installation.
Verify the installation:
python --versionUsing a virtual environment is recommended to prevent library conflicts and ensure you are using the correct Python version:
Windows:
# 1. Clone the repository
git clone https://gitlab.empa.ch/empa-scientific-it/ai-coding-tutorial.git
cd ai-coding-tutorial
# 2. Create and activate a virtual environment
python -m venv .venv
.venv\Scripts\activate
# 3. Install the dependencies and run
python -m pip install -e supervisor/
python run.pymacOS / Linux:
# 1. Clone the repository
git clone https://gitlab.empa.ch/empa-scientific-it/ai-coding-tutorial.git
cd ai-coding-tutorial
# 2. Create and activate a virtual environment
python3 -m venv .venv
source .venv/bin/activate
# 3. Install the dependencies and run
pip install -e supervisor/
python run.pyOpen http://localhost:10000 in your browser.
Install Docker Desktop from https://www.docker.com/products/docker-desktop/
Then run:
git clone https://gitlab.empa.ch/empa-scientific-it/ai-coding-tutorial.git
cd ai-coding-tutorial
docker compose upOpen http://localhost:10000 in your browser.
- The Supervisor runs at
http://localhost:10000and watches your work - You implement a small data-driven app inside
/workspace - The platform tracks your progress automatically and gives hints when you're stuck
- Complete all steps to finish the exercise
See exercise/task.md for the full task description.
Your work area is the workspace/ folder — only edit files there.
ai-coding-tutorial/
├── supervisor/ # FastAPI platform backend
├── workspace/ # YOUR WORK AREA
└── exercise/ # Task definition and rubric
The Supervisor:
- watches
workspace/for changes - runs checks and tests on every save
- serves the progress dashboard at
:10000 - pushes live updates via WebSocket