Functional prototype for adaptive learning with explainable analytics.
Traditional classrooms and online platforms often deliver one-size-fits-all quizzes. Students with different mastery levels get the same sequence, reducing engagement and slowing learning.
- Middle/high school students practicing math topics.
- Teachers who need measurable progress and concept-level insight.
- Adaptive question sequencing using a Bayesian online-learning policy (concept + difficulty), implemented with Thompson sampling.
- Measurable learning metrics (accuracy, response speed, learning gain).
- Concept-level mastery tracking.
- Structured, explainable recommendations for next learning actions.
- Basic academic integrity flagging using response-time behavior patterns.
- Python
- Streamlit
- Pandas
- Plotly
- Create and activate a virtual environment (recommended).
- Install dependencies:
pip install -r requirements.txt
- Start the app:
streamlit run app.py
- Student selects a topic and starts a session.
- Engine predicts success probability per concept+difficulty (Bayesian bandit) and selects the next question near a “challenge sweet spot”.
- Student answers; system logs correctness + response time.
- Dashboard updates rolling accuracy, time trends, and learning gain.
- Engine outputs structured recommendations and integrity flags.
This prototype supports uploading a professor quiz PDF, extracting text, and using a local LLM (LM Studio or an OpenAI-compatible endpoint) to convert it into MCQs that are stored in data/imported_topics.json.
Set environment variables before running Streamlit:
LLM_API_BASE(default:http://localhost:1234/v1)LLM_MODEL(required; your LM Studio model id)LLM_API_KEY(optional; some local servers ignore it)
- The PDF-to-MCQ accuracy depends on PDF quality and the LLM’s extraction ability.
- No training is required for the adaptive engine; it learns online from student attempts using Bayesian updates.