Spaces:
Runtime error
A newer version of the Gradio SDK is available: 6.15.2
process_log.md — S2.T3.1 · AI Math Tutor for Early Learners
Candidate: John Eze
Challenge: S2.T3.1 — Tier 3
Date: 2026-04-24
Hard cap: 4 hours
Hour-by-Hour Timeline
| Time | Activity |
|---|---|
| 00:00–00:45 | Read full brief end-to-end. Examined seed files (curriculum_seed.json, diagnostic_probes_seed.csv, parent_report_schema.json, child_utt_sample_seed.csv). Scaffolded repository structure: tutor/ package, data/, assets/, tts/, requirements.txt, README.md, SIGNED.md. |
| 00:45–01:30 | Built generate_curriculum.py (60+ item generator). Built tutor/curriculum_loader.py. |
| 01:30–02:15 | Implemented tutor/adaptive.py — BKT per sub-skill with update rules + Elo baseline. Built kt_eval.ipynb skeleton with held-out replay simulation. |
| 02:15–02:45 | Built tutor/visual.py (PIL counting images), tutor/feedback.py (EN/FR/KIN feedback table), tutor/asr_adapt.py (Whisper-tiny stub + langdetect). |
| 02:45–03:15 | Built tutor/db.py (encrypted SQLite store) and tutor/dp_sync.py (ε-DP aggregation design). |
| 03:15–03:45 | Built demo.py (Gradio child-facing UI: learner select, tutor loop, parent view). |
| 03:45–04:00 | Built parent_report.py. Completed footprint_report.md, README.md, process_log.md. Final push. |
LLM / Tool Use Declaration
| Tool | Why used |
|---|---|
| GitHub Copilot (Claude Sonnet 4.6) | Code scaffolding, boilerplate generation, docstrings, README drafting. All logic reviewed, debugged, and adapted by me. |
Three sample prompts I actually sent
- "Build the BKT update rule for 5 sub-skills — P_know, P_learn, P_guess, P_slip — with a mastery threshold of 0.85 and return the next best item."
- "Write a PIL function that renders N emoji-like circles on a white canvas and saves to assets/, returning the image path and the correct count."
- "Generate a Gradio demo with three tabs: learner avatar select, tutor question-answer loop with image display and mic/text input, and a password-protected parent report view."
One prompt I discarded and why
I drafted a prompt asking Copilot to "fully fine-tune TinyLlama with QLoRA for numeracy feedback generation". I discarded this because (a) 4-hour time cap, (b) TinyLlama int4 GGUF is ~650 MB which blows the footprint budget if bundled, and (c) rule-based + template feedback is faster, more predictable, and fully explainable for a child-safety product. LLM enhancement can be added post-hackathon.
Single Hardest Decision
The hardest decision was choosing between a Deep Knowledge Tracing (DKT) GRU model and Bayesian Knowledge Tracing (BKT). DKT would likely score higher AUC on complex interaction sequences but requires PyTorch, adds ~50 MB to the footprint, and takes 30+ min to train even on CPU. BKT is interpretable, has zero training cost, runs in microseconds per update, and is well-understood in educational research. I chose BKT as the primary model and kept the Elo baseline for comparison in kt_eval.ipynb — this satisfies the brief's AUC comparison requirement while staying within the 75 MB footprint and 4-hour time budget.
Log updated continuously throughout the session.