2026_gamified_SQL_dataset
Description
This dataset contains de-identified student-level data from a semester-long quasi-experiment comparing gamified SQL training games with traditional end-to-end database design practice, conducted at MIREA – Russian Technological University in the spring semester of the 2025/2026 academic year. Study design. Two independent cohorts of engineering students were stratified by pre-test score and grade point average (GPA) into an experimental group (EG, n = 82) that used gamified online SQL trainers, and a control group (CG, n = 85) that completed conventional end-to-end database design from a written specification. Both groups were taught by the same instructor under equal contact time. A pre-test (20 closed-form items in Moodle) was administered before the practical cycle; a post-test (20 parallel-form items) was administered at the end. An anonymous survey (138 responses) collected self-reported engagement and obstacles; survey data are not included in this dataset because they carry no student identifier linking them to test scores.
Files
Steps to reproduce
import pandas as pd, numpy as np from scipy import stats import statsmodels.formula.api as smf df = pd.read_csv("Kotilevets_2026_gamified_SQL_dataset.csv") eg = df[df.group=="EG"]; cg = df[df.group=="CG"] Baseline: stats.ttest_ind(eg.gpa.dropna(), cg.gpa.dropna(), equal_var=False) → p=.95. Pre-test (n=48/51): p=.99. Post-test: stats.ttest_ind(eg.post_test.dropna(), cg.post_test.dropna(), equal_var=False) → Δ≈+0.62, p≈.38. Cohen's d: pooled-SD standardized mean difference → d≈0.15. Ceiling: df.post_test.median() → 17; (df.post_test>=18).mean() → ≈0.49; (df.post_test==20).mean() → ≈0.25. Subgroups by pre-test median: Split at df.pre_test.median() (13). Lower half: Δ≈−0.56, d≈−0.14, p≈.67. Upper half: Δ≈+1.09, d≈+0.29, p≈.15. ANCOVA: smf.ols("post_test ~ EG + gpa + pre_test", data=df.dropna(subset=['pre_test','post_test'])) on n=89 → EG b≈−0.35 p≈.60; GPA b≈2.15 p≈.003. Without pre-test on n=137: smf.ols("post_test ~ EG + gpa", data=df.dropna(subset=['post_test'])) → EG b≈0.56 p≈.37; GPA b≈2.48 p<.001. TOST: Two one-sided t-tests vs SESOI ±2.04 pts (d=0.5). Full sample: p≈.022 (equivalence). Subgroups (lower, upper, post<18): p>.05 (equivalence not established). Gain on n=89: p≈.021. BF01: exp((n*log(1-R²)+log(n))/2) where R²=corr(group,post_test)² → BF01≈7.0. Gain: df['gain']=df.post_test-df.pre_test; Welch on gain (n=42+47=89) → Δ≈−0.50, p≈.52, d≈−0.11. Attrition: stats.ttest_ind(df[df.completed_post==1].gpa, df[df.completed_post==0].gpa, equal_var=False) → d≈0.20, p≈.08.
Institutions
- MIREA - Russian Technological UniversityMoscow, Moscow