EDUMATH: Generating Standards-aligned Educational Math Word Problems

Bryan R. Christ, Penelope Molitz, Jonathan Kropko, Thomas Hartvigsen
10/8/2025
cs.CLcs.AI

No official code found. Best implementation: bryanchrist/EDUMATH (1 star, GPL-3.0, last commit 2026-04-18).

Abstract

Math word problems (MWPs) are critical K-12 educational tools, and customizing them to students' interests and ability levels can increase learning outcomes. However, teachers struggle to find time to customize MWPs for each student given large class sizes and increasing burnout. We propose that LLMs can support math education by generating MWPs customized to student interests and math education standards. To this end, we use a joint human expert-LLM judge approach to evaluate over 11,000 MWPs generated by open and closed LLMs and develop the first teacher-annotated dataset for standards-aligned educational MWP generation. We show the value of our data by using it to train a 12B open model that matches the performance of larger and more capable open models. We also use our teacher-annotated data to train a text classifier that enables a 30B open LLM to outperform existing closed baselines without any training. Next, we show our models' MWPs are more similar to human-written MWPs than those from existing models. We conclude by conducting the first study of customized LLM-generated MWPs with grade school students, finding they perform similarly on our models' MWPs relative to human-written MWPs but consistently prefer our customized MWPs.

View on arXivView PDF

Code Implementations(1)

GPL-3.0

Code base for EDUMATH: Generating Standards-aligned Educational Math Word Problems

11Python, Jupyter NotebookOct 6, 20256 months agoGPL-3.0

Similar Papers

Cite this paper

@article{christ2025edumath,
  title  = {EDUMATH: Generating Standards-aligned Educational Math Word Problems},
  author = {Bryan R. Christ and Penelope Molitz and Jonathan Kropko and Thomas Hartvigsen},
  year   = {2025},
  eprint = {2510.06965},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2510.06965v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2510.06965.svg)](https://codeofpaper.com/paper/2510.06965)

Discussion