
Learning Analytics
How learning analytics transform education through data. Discover techniques for measuring engagement, predicting outcomes, and improving learning experiences.
Learning Analytics: Data-Driven Educational Insights
Learning analytics transforms educational data into actionable insights. These techniques help educators understand how students learn, predict who needs help, and continuously improve educational experiences.
What is Learning Analytics?
Definition
Learning Analytics: The measurement, collection, analysis, and reporting of data about learners and their contexts, for purposes of understanding and optimising learning and the environments in which it occurs.
Core Components:
- Data Collection: Capturing learner interactions
- Analysis: Finding patterns and insights
- Visualisation: Making data understandable
- Action: Using insights to improve learning
- Feedback Loop: Continuous improvement
Types of Analytics
Descriptive (What happened?):
- How many students completed the course?
- What's the average time spent per module?
- Which topics have highest dropout?Diagnostic (Why did it happen?):
- Why did students fail this assessment?
- What correlates with course completion?
- Which behaviors predict success?Predictive (What will happen?):
- Which students are at risk of dropping out?
- Who will need additional support?
- What's the expected completion time?Prescriptive (What should we do?):
- What intervention will help this student most?
- Which content should we recommend next?
- How should we modify the course?Data Sources
Learning Management Systems (LMS)
Captured Data:
Login patterns:
- Frequency of access
- Time spent on platform
- Access times (patterns)
Content interaction:
- Pages viewed
- Videos watched
- Resources downloaded
- Navigation paths
Assessments:
- Quiz attempts and scores
- Assignment submissions
- Time on assessments
- Attempt patternsExample LMS Log:
{
user_id: "student_123",
timestamp: "2026-01-03T14:32:15Z",
action: "video_play",
resource: "module_2_intro",
duration: 237, // seconds watched
completion: 0.85 // 85% watched
}Interactive Content
Granular Interaction Data:
Coding platforms:
- Code submissions
- Compilation errors
- Execution attempts
- Time between attempts
- Help requests
Interactive exercises:
- Clicks and inputs
- Paths through content
- Hint requests
- Error patternsExample Coding Log:
Problem: "Write function to reverse string"
Attempt 1: Syntax error (line 3)
Attempt 2: Logic error (partial solution)
Hint requested: "Consider string slicing"
Attempt 3: Correct solution
Total time: 12 minutesAssessment Data
Beyond Just Scores:
Multiple-choice questions:
- Distractor analysis (wrong answers chosen)
- Time per question
- Question order effects
- Changes after review
Open-ended:
- Response length
- Vocabulary used
- Structure and coherence
- Revision patternsSocial Learning Data
Collaborative Behavior:
Discussion forums:
- Post frequency
- Response quality
- Network position (central vs peripheral)
- Help-seeking vs help-giving
Study groups:
- Participation patterns
- Contribution balance
- Communication style
- Group dynamicsExternal Data
Context:
Demographics (carefully!):
- Prior education level
- Language background
- Time zone
Goals and motivation:
- Career aspirations
- Reasons for enrollment
- Time commitment
Performance:
- Employment outcomes
- Skill application
- Continued learningKey Metrics and Indicators
Engagement Metrics
Time-Based:
Total time on platform
Active learning time (interaction vs passive)
Session duration and frequency
Time of day patterns
Consistency over timeCalculation Example:
def calculate_engagement_score(user_logs):
# Active days in last 30
active_days = count_unique_days(user_logs, last_n_days=30)
# Average session length
avg_session = mean(session_lengths(user_logs))
# Content interaction depth
interaction_depth = sum(clicks, video_completions, submissions)
# Normalise and combine
engagement = (
0.4 * (active_days / 30) +
0.3 * normalise(avg_session, min=5, max=60) +
0.3 * normalise(interaction_depth, min=10, max=100)
)
return engagement # 0 to 1Interpretation:
< 0.3: At risk (minimal engagement)
0.3-0.6: Moderate (could improve)
> 0.6: High engagement (on track)Performance Metrics
Assessment Performance:
Score distributions:
- Mean, median, mode
- Standard deviation
- Percentile rankings
Trends:
- Improvement over time
- Concept mastery progression
- Difficulty adaptation
Patterns:
- Which concepts are difficult?
- Where do students get stuck?
- What predicts success?Learning Velocity:
Concepts mastered per week
Time to competency per skill
Acceleration or deceleration
Comparison to cohort averageProgress Indicators
Completion Tracking:
Content completion rate:
- Overall course
- Per module
- Per content type
Milestone achievements:
- Quizzes passed
- Projects completed
- Certificates earned
Pacing:
- Ahead of schedule
- On track
- Behind schedule
- Dropped outExample Dashboard:
Student: Jane Smith
Overall progress: 67% complete
Expected completion: March 15
Current pace: On track
Module breakdown:
✓ Module 1: Complete (95% score)
✓ Module 2: Complete (88% score)
→ Module 3: In progress (45% complete)
Module 4: Not started
Module 5: Not startedAt-Risk Indicators
Warning Signs:
Declining engagement:
- Fewer logins over time
- Shorter sessions
- Incomplete content
Poor performance:
- Multiple failed assessments
- Low quiz scores
- Incomplete assignments
Behavioral patterns:
- Last-minute submissions
- No discussion participation
- Excessive hint requests
- Long gaps between sessionsRisk Score Calculation:
def calculate_risk_score(student):
risk_factors = {
'low_engagement': student.avg_sessions_per_week < 2,
'poor_performance': student.avg_score < 60,
'declining_trend': student.recent_scores < student.early_scores,
'no_social': student.forum_posts == 0,
'deadline_misses': student.late_submissions > 2,
'long_absence': days_since_last_login(student) > 7
}
weights = {
'low_engagement': 0.25,
'poor_performance': 0.30,
'declining_trend': 0.20,
'no_social': 0.10,
'deadline_misses': 0.10,
'long_absence': 0.05
}
risk = sum(weights[factor] for factor, present in risk_factors.items() if present)
return risk # 0 (low risk) to 1 (high risk)Intervention Triggers:
Risk < 0.3: Low (automated nudges)
Risk 0.3-0.6: Medium (personalised outreach)
Risk > 0.6: High (immediate intervention)Analysis Techniques
Cohort Analysis
Purpose: Compare groups of learners
Example:
Cohort A (Jan 2025):
- Started: 100 students
- Week 4: 85 active (85%)
- Week 8: 67 active (67%)
- Completed: 58 (58%)
Cohort B (Feb 2025):
- Started: 120 students
- Week 4: 102 active (85%)
- Week 8: 89 active (74%) ← Better retention!
- Completed: TBD
Analysis: What changed?
- New onboarding process added
- Better pacing in Module 2
- More engaging content in Week 3Retention Curves:
Week 0: 100% (baseline)
Week 1: 92%
Week 2: 84%
Week 3: 76% ← Drop
Week 4: 73%
Week 8: 67%
Week 12: 58%
Investigate Week 3 content!Learning Path Analysis
Sequential Pattern Mining:
Common successful paths:
Path A: Lecture → Practice → Quiz → 88% pass rate
Path B: Lecture → Quiz → Practice → 76% pass rate
Path C: Practice → Lecture → Quiz → 82% pass rate
Insight: Practice before quiz improves outcomesDrop-off Analysis:
Module 1 → Module 2: 92% proceed
Module 2 → Module 3: 78% proceed ← Drop
Module 3 → Module 4: 95% proceed
Why does Module 3 have lower retention?
- Difficulty spike?
- Less engaging content?
- External factors (mid-semester)?Navigation Patterns:
Students who succeed:
- Follow linear path: 65%
- Jump around: 35%
Students who struggle:
- Follow linear path: 45%
- Jump around: 55%
Insight: Struggling students search for help
Action: Add better navigation/searchTime Series Analysis
Engagement Over Time:
Pattern: Typical learner
Week 1: High activity (new user excitement)
Week 2-3: Decline (novelty wears off)
Week 4: Spike (first assessment)
Week 5-7: Steady
Week 8: Decline (dropout risk)
Week 9: Push (deadline approaching)
Interventions:
- Week 3: Gamification element
- Week 8: Check-in emailTemporal Patterns:
Time of day usage:
Morning (6-9am): 15%
Midday (12-2pm): 25%
Evening (6-10pm): 40% ← Peak
Late night (10pm-1am): 20%
Day of week:
Monday-Thursday: Steady
Friday: Drop
Weekend: Variable
Insight: Schedule live sessions during peak timesPredictive Modeling
Dropout Prediction:
from sklearn.ensemble import RandomForestClassifier
# Features
features = [
'avg_session_duration',
'login_frequency',
'quiz_scores_mean',
'assignment_completion_rate',
'forum_activity',
'days_since_last_login',
'video_completion_rate',
'help_requests'
]
# Target
target = 'completed_course' # 1 = completed, 0 = dropped
# Train model
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)
# Predict for current students
at_risk_students = model.predict_proba(X_current)[:, 0] > 0.7
# Feature importance
print(model.feature_importances_)
# → [0.25, 0.20, 0.18, 0.12, 0.08, 0.07, 0.06, 0.04]
# Top predictor: avg_session_durationPerformance Prediction:
Predict final grade after Week 4:
Features:
- Week 1-4 quiz scores
- Engagement metrics
- Assignment quality
- Forum participation
Model: Linear regression
Accuracy: R² = 0.72
Use for:
- Early intervention
- Study group formation
- Personalised recommendationsNetwork Analysis
Social Learning Networks:
Forum interaction graph:
Nodes: Students
Edges: Replies, mentions, collaborations
Metrics:
- Centrality: Who is most connected?
- Betweenness: Who bridges groups?
- Clusters: Are there isolated groups?
Insights:
- Central students → Potential mentors
- Isolated students → Need connection
- Dense clusters → Effective study groupsKnowledge Sharing:
Who helps whom?
Helpers (high out-degree):
- Engaged, knowledgeable students
- Natural TAs/mentors
- Community builders
Help-seekers (high in-degree):
- May need additional support
- Active learners
- Engaged despite struggles
No connections:
- At-risk group
- May feel isolated
- Intervention neededVisualisation and Dashboards
Learner Dashboards
Progress View:
┌─ Your Progress ────────────────────┐
│ 67% Complete │
│ ████████████████░░░░░░░░░░ │
│ │
│ Modules: 3 of 5 complete │
│ Quizzes: 8 of 12 passed │
│ Projects: 2 of 4 submitted │
│ │
│ Expected completion: March 15 │
│ Current pace: On track ✓ │
└────────────────────────────────────┘Performance View:
┌─ Your Performance ─────────────────┐
│ │
│ Overall: 85% ↗ +3% from last week│
│ │
│ Strengths: │
│ ⭐ Variables & Data Types: 95% │
│ ⭐ Functions: 92% │
│ │
│ Areas to improve: │
│ ⚠ Loops: 68% │
│ ⚠ Error Handling: 72% │
│ │
│ 📚 Recommended: Practice loops │
└────────────────────────────────────┘Educator Dashboards
Class Overview:
┌─ Class Analytics ──────────────────┐
│ CS101 - Spring 2026 │ 87 students │
├────────────────────────────────────┤
│ │
│ Overall Progress: │
│ ████████████░░░░░░░░ 62% │
│ │
│ Engagement: ⚠ Below target │
│ Performance: ✓ On track │
│ Completion rate: 73% (vs 68% last)│
│ │
│ 🔴 At-risk: 12 students │
│ 🟡 Struggling: 18 students │
│ 🟢 On track: 57 students │
└────────────────────────────────────┘Individual Student View:
┌─ Student: Alice Johnson ───────────┐
│ Risk level: 🟡 Medium │
│ │
│ Recent activity: │
│ • Last login: 6 days ago ⚠ │
│ • Quiz 3: 62% (below avg) │
│ • Assignment 2: Not submitted │
│ │
│ Patterns: │
│ • Declining engagement trend │
│ • Struggles with Module 3 content │
│ • Low forum participation │
│ │
│ Recommendations: │
│ • Send check-in email │
│ • Suggest office hours │
│ • Connect with study group │
└────────────────────────────────────┘Course-Level Analytics
Content Effectiveness:
Module Performance:
Module 1: ████████░ 87% avg score
Module 2: ████████░ 85% avg score
Module 3: █████░░░░ 68% avg score ← Issue!
Module 4: ███████░░ 82% avg score
Video engagement:
Module 3 Video 1: 45% completion ← Drop-off point
Module 3 Video 2: 78% completion
Action items:
1. Review Module 3 Video 1 (too long? confusing?)
2. Add practice before Module 3 quiz
3. Consider splitting Module 3 into twoAssessment Analysis:
Quiz 3 - Question Analysis:
Q1: 92% correct ✓
Q2: 88% correct ✓
Q3: 45% correct ✗ ← Problem question
Q4: 78% correct ✓
Q5: 82% correct ✓
Q3 Distractor analysis:
- Option A: 12% (correct answer)
- Option B: 45% (common mistake: off-by-one error)
- Option C: 28% (conceptual misunderstanding)
- Option D: 15% (guess)
Action: Add example about off-by-one errors before Q3Ethical Considerations
Privacy
Data Minimization:
Collect only what's necessary:
✓ Performance data
✓ Engagement metrics
✓ Anonymous usage patterns
Don't collect:
✗ Keystroke logging (too invasive)
✗ Webcam monitoring (privacy violation)
✗ Unrelated browsing behaviorAnonymization:
For research/aggregation:
- Remove direct identifiers
- Aggregate small groups
- Use differential privacy
- K-anonymity (at least k similar records)Transparency:
Tell learners:
✓ What data is collected
✓ How it's used
✓ Who has access
✓ How long it's kept
✓ How to opt outBias and Fairness
Algorithmic Bias:
Risks:
- Historical data reflects existing inequities
- Proxies for protected characteristics
- Feedback loops amplify bias
Example:
If model trained on data where certain groups
historically performed poorly → Model predicts they
will perform poorly → Creates self-fulfilling prophecyMitigation:
1. Audit for bias across groups
2. Use fairness-aware ML techniques
3. Don't use sensitive attributes unless necessary
4. Regular impact assessments
5. Human oversight of algorithmic decisionsSurveillance Concerns
Balance:
Helpful analytics ✓:
- Aggregate course improvement
- Voluntary learner progress tracking
- Opt-in performance insights
Harmful surveillance ✗:
- Constant monitoring
- Punitive use of data
- Invasion of privacy
- Pressure and stressAgency and Consent
Learner Control:
✓ Opt-in for detailed tracking
✓ View their own data
✓ Delete their data
✓ Understand how it's used
✓ Control who sees itImplementing Learning Analytics
Getting Started
Phase 1: Foundation (Months 1-3)
1. Define goals:
- What questions do you need answered?
- What decisions will be informed?
2. Identify data sources:
- LMS logs
- Assessment data
- User surveys
3. Set up basic tracking:
- Login frequency
- Content completion
- Assessment scores
4. Create simple dashboards:
- Progress tracking
- Engagement overviewPhase 2: Analysis (Months 4-6)
1. Deeper metrics:
- At-risk identification
- Performance prediction
- Content effectiveness
2. Visualisations:
- Trend charts
- Comparison views
- Individual profiles
3. Initial interventions:
- Automated reminders
- Personalised recommendationsPhase 3: Optimization (Months 7-12)
1. Advanced analytics:
- Predictive models
- A/B testing
- Causal analysis
2. Automated personalisation:
- Content recommendations
- Difficulty adaptation
- Pacing adjustments
3. Continuous improvement:
- Feedback loops
- Iterative refinementTools and Platforms
Open Source:
- LAPA (Learning Analytics Platform)
- Apache Spark (big data processing)
- Jupyter notebooks (analysis)
- Tableau Public (visualisation)
- R/Python (statistical analysis)Commercial:
- Brightspace Insights
- Canvas Analytics
- Blackboard Analytics
- Coursera Analytics
- EdX InsightsCustom Solutions:
Stack:
- Data warehouse: PostgreSQL, MongoDB
- Processing: Python (pandas, scikit-learn)
- Visualisation: D3.js, Plotly
- Dashboards: Dash, Streamlit
- APIs: FastAPI, GraphQLBest Practices
Data Quality:
1. Validate data integrity
2. Handle missing values appropriately
3. Document data sources and definitions
4. Regular audits
5. Version control for datasetsActionable Insights:
Not just: "Engagement is down 15%"
But: "Engagement drops in Week 3. Students report
Module 3 is too difficult. Recommend: Add scaffolding
video and practice problems before Quiz 3."Iterative Improvement:
1. Collect data
2. Analyse patterns
3. Form hypothesis
4. Test intervention
5. Measure impact
6. Refine and repeatCase Studies
Georgia State University
Challenge: 40% graduation rate, achievement gaps
Analytics Implementation:
- 800+ risk factors tracked
- Predictive models for at-risk students
- 50,000+ early alerts per year
- Proactive advising interventions
Results:
- Graduation rate: 40% → 54%
- Achievement gaps reduced significantly
- $22 million in additional graduation revenue
Purdue University (Signals)
System: Real-time feedback for students
Features:
- Traffic light system (green/yellow/red)
- Predictive algorithm based on:
- LMS activity
- Assessment performance
- Prior academic performance
- Automated and personalized feedback
Results:
- Increased student success rates
- Higher retention
- Earlier intervention
Future of Learning Analytics
Emerging Trends
Real-Time Analytics:
Move from:
- Weekly reports
- Delayed insights
To:
- Live dashboards
- Instant feedback
- Just-in-time interventionsMultimodal Analytics:
Combine:
- Clickstream data
- Text analysis
- Video engagement
- Biometric data (ethical use)
- Social network dataLearning at Scale:
- MOOCs with millions of learners
- Cross-institutional data
- Longitudinal tracking
- Career outcome analyticsResponsible Analytics
Principles:
1. Transparency: Clear about what's collected and why
2. Privacy: Protect learner data
3. Fairness: Monitor for and mitigate bias
4. Agency: Learner control over their data
5. Benefit: Use data to help, not harm
6. Consent: Informed opt-in
7. Purpose limitation: Use data only for stated purposesNext Steps
Explore related topics:
Learning analytics has enormous potential to improve education, but it must be implemented thoughtfully with attention to privacy, fairness, and learner agency. The goal is insight that leads to action—better learning experiences and outcomes for all students.