SynLMS: A Configurable Synthetic Dataset of Learning Management System Interactions for Dropout Prediction and Engagement Modelling
Description
High-quality Learning Management System (LMS) interaction data are essential for dropout prediction and personalized learning interventions, yet privacy constraints severely limit their public availability. This paper presents a fully synthetic, privacy-preserving event-log dataset comprising over 11 million interactions from 50,000 learners across 20 courses, structured as a 10-table relational schema spanning demographics, enrolments, sessions, assessments, forum activity, and weekly engagement aggregates. Data were generated using a four-layer pipeline with parameters empirically calibrated against the Open University Learning Analytics Dataset (OULAD). Validation shows close alignment with real LMS behaviour: action-type distributions achieved a Jensen–Shannon divergence of 0.005, engagement-cluster survival curves closely tracked OULAD benchmarks, and quiz–assignment performance correlated strongly within students (Spearman r = 0.91, p < 0.0001). The dataset contains no missing dimensional values, foreign-key violations, or duplicate records, supporting reproducible research on dropout prediction and learning analytics without institutional data-sharing barriers.
Files
Steps to reproduce
Codebase Github Link: https://github.com/abiromio1505/Layer-1-2-3-4-OLB-Synthetic-Data 1. Environment. Run the notebook layer-1-2-3-4-olb-synthetic-data.ipynb in a Python 3 environment (developed on Kaggle). Execute the first cell to install the required package: pip install Faker. Other dependencies (numpy, pandas) are standard and assumed pre-installed. 2. Run Layer 1 (cell 2): Base entity generation. Executes independently, with no upstream dependencies. Generates: COURSE (20 rows, across CS/MATH/BUS/SOC/LANG/GEN departments) STUDENT (50,000 rows, with region, demographic, and engagement-cluster attributes) ASSESSMENT (300 rows, ~15 per course, split across TMA/CMA/Quiz types) Random seeds are fixed at the top of the cell (Faker.seed(42), np.random.seed(42)) for exact reproducibility. Outputs are written as student.csv, course.csv, and assessment.csv to /kaggle/working/layer1_output/. 3. Run Layer 2 (cell 4): Enrolment and activity structures. Loads the three Layer 1 CSVs from layer1_output/ and generates: ENROLLMENT (~150,000 rows, course load drawn per engagement cluster) COURSE_MODULE (400 rows, 20 modules × 20 courses) SESSION (~500,000 rows, session duration drawn from a log-normal distribution, μ=3.5, σ=0.7) Outputs, plus mirrored copies of the Layer 1 CSVs, are written to /kaggle/working/layer2_output/. 4. Run Layer 3 (cell 6): Assessment attempts, forum activity, and weekly aggregates. Loads all six upstream CSVs from layer2_output/ and generates: ASSESSMENT_ATTEMPT (~200,000 rows) FORUM_EVENT (~80,000 rows) DERIVED_WEEKLY_STATS (~650,000 rows, built with a vectorised weekly aggregation routine) Outputs, plus mirrored upstream CSVs, are written to /kaggle/working/layer3_output/. 5. Run Layer 4 (cell 8): Event log generation. Loads the six required upstream CSVs from layer3_output/ (student, course, course_module, assessment, enrollment, session) and generates the EVENT_LOG table (target ~10,000,000 rows) by simulating per-session actions (video, quiz, forum, assignment, page_view, pdf, ppt, online_link) drawn from cluster-conditioned action-probability distributions, with a Poisson-distributed session action count (λ = 12 / 22 / 35 for low/mid/high engagement clusters). Processing is batched (150,000 sessions per batch) to manage memory. Output is streamed to /kaggle/working/layer4_output/event_log.csv. 6. Assemble the full relational dataset. The ten final tables — student.csv, course.csv, assessment.csv, enrollment.csv, course_module.csv, session.csv, assessment_attempt.csv, forum_event.csv, derived_weekly_stats.csv, and event_log.csv — are collected from /kaggle/working/layer4_output/ (which mirrors all upstream tables plus the new event log) and uploaded together as the published dataset.
Institutions
- Chittagong University of Engineering & TechnologyChittagong, Chittagong