RT Adaptive Learning Engine Inspiration
Traditional learning platforms deliver the same content to all students, regardless of their ability level. This often leads to boredom when the material is too easy or frustration when it is too difficult. Additionally, many systems fail to reinforce previously learned material, leading to forgetting over time.
The inspiration behind RT Adaptive Learning Engine was to build a system that behaves like a human tutor — continuously adapting in real time to a student’s performance. The goal was to combine established learning science theories into a single intelligent engine that selects the right question at the right time and at the right difficulty level.
What It Does
RT Adaptive Learning Engine is a real-time intelligent question selection system.
After every student response, the engine:
Estimates the student’s ability using Item Response Theory (IRT)
Enforces topic prerequisites using a knowledge graph
Schedules reviews using spaced repetition
Updates mastery using a Bayesian-inspired model
Selects the optimal next question based on difficulty and topic priority
The system ensures:
Students remain in an optimal learning zone (target accuracy 60–70%)
Topics unlock only after prerequisites are mastered
Learned material is reviewed at optimal intervals
Personalization happens per topic, not globally
All of this occurs within milliseconds, enabling real-time adaptation.
How We Built It
The system was designed as five independent, testable Python modules.
- IRT Module (irt.py)
Implements the Rasch (1PL) model
Estimates student ability (theta) using Maximum Likelihood Estimation
Computes target difficulty as theta + 0.3
- Knowledge Graph Module (knowledge_graph.py)
Represents topics as a Directed Acyclic Graph (DAG)
Enforces prerequisite mastery thresholds (≥ 80%)
Determines eligible topics for progression
- Spaced Repetition Module (spaced_repetition.py)
Implements the SM-2 algorithm
Dynamically adjusts review intervals
Updates ease factor based on performance
- Mastery Updater Module (mastery_updater.py)
Uses a Bayesian-inspired mastery update rule
Adjusts mastery based on correctness, hints, and response time
Adapts learning rate depending on mastery level
- Orchestrator (question_selector.py)
Executes the complete 8-step adaptive pipeline
Handles cold-start logic
Queries the database for best-matching questions
Updates mastery and review schedules after each response
System Architecture:
Redis for fast state caching
PostgreSQL for persistent storage
Asynchronous processing for low-latency execution
Modular design for scalability and testability
Challenges We Ran Into
Cold Start Problem IRT requires several responses to estimate ability reliably. Solution: Serve medium-difficulty questions for the first few attempts before enabling IRT-based selection.
Balancing Mastery Updates If updates were too aggressive, mastery jumped unrealistically. If too slow, the system felt unresponsive. We tuned learning rates dynamically based on mastery levels.
Integrating Multiple Theories Knowledge graphs control topic order, while IRT controls difficulty. Combining both required careful orchestration to avoid conflicts.
Maintaining Target Accuracy Achieving the 60–70% target range required repeated tuning of:
Difficulty offset (+0.3)
Topic urgency weights
Mastery learning rates
Performance Optimization Ensuring question selection time remained under 50ms required:
Efficient caching
Avoiding heavy computation during runtime
Designing lightweight mathematical models
Accomplishments That We’re Proud Of
Built a fully functional adaptive engine from scratch
Successfully integrated three major learning theories into one system
Achieved target session accuracy within the optimal range
Designed a modular and production-ready architecture
Implemented mathematical ability estimation without external ML frameworks
Enabled per-topic ability tracking instead of a single global score
Most importantly, we built a measurable adaptive system with clear evaluation metrics.
What We Learned
Technical Learnings:
Mathematical foundations of Item Response Theory
Implementing Maximum Likelihood Estimation
Designing Directed Acyclic Graphs for prerequisite modeling
Internal mechanics of spaced repetition algorithms
Real-time system design using caching and async processing
Research Learnings:
Adaptive learning is about balance, not maximizing correctness
Optimal learning happens at moderate difficulty (around 60–70% accuracy)
Theoretical models must be carefully integrated to work in practice
Product Learnings:
Cold start handling is critical in intelligent systems
Data quality strongly affects adaptive accuracy
Evaluation metrics are essential to prove system effectiveness
What’s Next for RT Adaptive Learning Engine
Data-Driven Refinement Collect real student interaction data and tune model parameters statistically.
Upgrade to Advanced IRT Models Move from 1PL (Rasch) to 2PL or 3PL models to include discrimination and guessing parameters.
Enhanced Mastery Modeling Implement full Bayesian Knowledge Tracing or Deep Knowledge Tracing (neural network-based).
Teacher Analytics Dashboard Provide ability growth charts, retention forecasts, and mastery insights.
Large-Scale Evaluation Conduct controlled experiments and apply statistical tests to validate learning improvements.
Multi-Subject Expansion Expand the knowledge graph dynamically across multiple domains.
RT Adaptive Learning Engine is a real-time, scientifically grounded personalized learning system that dynamically adapts difficulty, sequencing, and retention after every student response, ensuring optimal learning progression.
Built With
- ability
- adaptive
- algorithm
- algorithms
- api
- architecture
- asynchronous
- asyncio
- backend
- bank
- bayesian
- caching
- calculation
- cold-start
- computations
- computing
- containerization
- control
- databases
- decision
- design
- docker
- educational
- estimation
- execution
- fastapi
- framework
- git
- github
- handling
- high-performance
- implemented
- in-memory
- irt
- logic
- mastery
- mathematical
- mathematical-modeling
- models
- modular
- non-blocking
- numpy
- operations
- optimization
- optional
- orchestration
- performance
- persistent
- pipeline
- postgresql
- postman
- programming-language-python-?-core-engine-logic
- pytest
- python
- question
- queue
- real-time
- recent
- records
- redis
- redis-based
- repetition
- request
- responses
- scientific
- scipy
- selection
- sm-2
- spaced
- state
- storage
- structures
- student
- supporting
- testing
- tools
- topic
- tracing
- unit
- version
Log in or sign up for Devpost to join the conversation.