SciPy 2026

Accessible Python Powered Web Apps for the Classroom
2026-07-16 , Thomas Swain Room

Introducing novel software tools into the classroom is increasingly challenging. Fortunately, the richness of the modern web platform, and the proliferation of free static web hosting, provides a low friction way to introduce powerful software into the classroom. Coupled with the maturity of the Pyodide project, the possibilities of introducing scientific Python powered web-apps into classroom are limitless. This presentation demonstrates these possibilities through a case study of the open-source EngineeringPaper.xyz project that gives students instant access to the SymPy library. The unique interactive capabilities enabled by the web platform, such as math expression editing, will also be discussed.


I've been using Jupyter notebooks for example calculations in my mechanical engineering classes at the University of Minnesota Duluth for many years. However, due to my students' limited coding experience, these Python powered calculations were often impenetrable to my students and provided limited value since I wasn't able to have my students create their own calculations. I simply didn't have the course time available to get them up to speed on Python coding while also covering the core topics of my course, especially with the challenges of getting a working scientific Python stack on the plethora of student computers. The introduction of the Pyodide project, and the power of the modern web platform, have been a game changer in what's possible in terms of bringing powerful Python powered apps into the classroom. This presentation will use my EngineeringPaper.xyz open-source project as a case study in what's possible in terms of bringing intuitive scientific Python powered apps into the classroom. With EngineeringPaper.xyz, I'm now able to have my students create, modify, and submit their own Python powered calculations, using their own devices, with minimal training.

This talk will cover the technical stack that powers EngineeringPaper.xyz, which includes Pyodide to run the scientific Python stack in the browser and the MathLive interactive math notation editor used to provide the user an intuitive way to enter mathematical expressions. The talk will also cover the parsing strategy used to convert the LaTeX expressions obtained from MathLive into Python expressions that can be interpreted by the SymPy symbolic math library.

In addition to the technical aspects of EngineeringPaper.xyz, this talk will also discuss key usability features that are used to allow students who are technical, but are not necessarily coders, to take advantage of Python powered scientific computing. These principles include using math notation as a common language and leaning into declarative logic rather than imperative logic in order to minimize confusion and tripping points. Finally, the all-important issue of how students submit their work to a learning management system (LMS), such as Canvas, is addressed. A strategy that uses Markdown as an intermediate format and Pandoc to convert this Markdown into the DOCX or PDF files that can be submitted to the LMS is presented.

EngineeringPaper.xyz is likely more complex than most scientific Python powered apps for the classroom need to be. However, I think the friction points addressed and the overall approach taken can be instructive for the builders of more narrowly focused apps. These app builders can pick and choose from the technologies and approaches used in EngineeringPaper.xyz.

Relevant Links:
EngineeringPaper.xyz GitHub Repository
My Previous SciPy 2021 talk
Blog Post Describing EngineeringPaper.xyz's use in the education

See also: EngineeringPaper.xyz GitHub Repository

Associate Professor at the University of Minnesota Duluth in the Mechanical and Industrial Engineering Department and developer of the EngineeringPaper.xyz engineering calculation web app.