Spaces:
Runtime error
Runtime error
| # 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 | |
| 1. *"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."* | |
| 2. *"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."* | |
| 3. *"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.* | |