Contents

Teacher Guide

Course order: All of Python → FastAPI → AI → Django (last)

1. How the folders are organised

text
teacher/
├── index.html                  ← this guide
├── RATIBA_YA_MWALIMU.html      ← order of weeks and sessions
└── masomo/
    └── wiki_01.html ... wiki_16.html   ← notes for every session (includes ANSWERS)

student/
└── index.html                  ← the student's schedule (nothing else)

Important: Do not give the student the teacher/ folder, because it contains all the answers. Give them student/index.html only.

2. Two computers

Computer 1: for teaching Computer 2: for reading
Google Meet (camera + mic) teacher/index.html in a browser
Share screen → the VS Code window only Session notes and code to type live
VS Code + terminal (you type code live) Answers, which the student cannot see
Browser for FastAPI /docs etc. Google or AI to look up what you don't know

Tips:

  • In Meet choose "Share a window" (not "Entire screen") and then VS Code, so your notifications stay hidden.
  • Increase the VS Code font size with Ctrl + = 2–3 times so the student can see clearly.
  • On Computer 2 use the side menu to move to any week. Answers open when you click "Answer", and the Copy button copies code.
  • Turn on Meet Recording if your account allows it, so the student can rewatch the session.

3. How to prepare

Rule: Don't teach anything you haven't typed yourself at least once.

  1. Before the week starts: read the whole week file and its "Teacher Preparation" section. Install whatever is needed.
  2. Before each session: type the "Type this code live" code, run it, and do the "In-class exercise" before looking at the answer.
  3. At the start of the session: open VS Code, a clean folder, the terminal and Meet, then the week file on Computer 2.
  4. After the session: note what the student understood and where they got stuck in the Progress Log.

From Month 3 (FastAPI, AI, Django) prepare more, because the topics are new to you too.

4. Flow of each session

  1. Greeting and homework check (the student shares their screen)
  2. Explanation and live code (you type, the student watches and asks)
  3. Short break
  4. The student types code while you guide
  5. In-class exercise and questions to test understanding
  6. Summary and homework

The big secret of teaching programming: students learn by typing, not by watching. For most of the session, the student should be the one writing code.

5. If you get stuck or are asked something you don't know

This will happen, and it is normal even for experienced teachers.

  1. Say honestly: "Great question. Let's look it up together." Then search live. This teaches the student how to search.
  2. Or say: "I'll research that and explain it next session." Write it down, then answer it.
  3. If you get an error you don't understand, read the last line of the error first, then paste it into Google or an AI.
  4. Official sources: - Python: https://docs.python.org/3/tutorial/ - FastAPI: https://fastapi.tiangolo.com/ - pandas: https://pandas.pydata.org/docs/ - scikit-learn: https://scikit-learn.org/stable/ - Claude API: https://docs.anthropic.com/ - Django: https://docs.djangoproject.com/

6. How to assess the student

  • Every week: use the "End-of-week checklist". If the student misses an item, review it before moving on.
  • Course projects (the student's GitHub portfolio): 1. Student Register (CLI) 2. Library System (OOP + JSON) 3. Todo API (FastAPI + DB + auth) 4. AI endpoint + the final Django project

If the student falls behind, it is better to slow down than to skip ahead.

7. Progress Log

Click an empty box and type. Your notes are saved in this browser only, so use the same browser on the same computer.

Week Understood well Got stuck on Homework Next step
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16