Skip to content

Post Idea: using Pyodide in LMS (interactive examples and in-browser assignment checker) #60

@obrizan

Description

@obrizan

Hi,

my name is Volodymyr Obrizan, PhD, I've integrated Pyodide in my LMS to teach students Python.

It has two use-cases:

  1. Show interactive Python code examples inside text learning materials.
  2. Verify programming assignments.
  3. Show step-by-step variable values.

In the proposed blog post I'd like to cover:

  1. Architecture: Django app — HTML/JS — Monaco Editor — Pyodide.
  2. JavaScript code integration details between Code Editor and Pyodide.
  3. ServiceWorker solution to handle infinite loops in Python codes (timeout whatchdog).
  4. Test runner (in-browser assignment checker) integration with Pyodide.
  5. Pros of Pyodide: a) instant feedback; b) no need for server resources to check assignments, so it could be scaled to many students without increasing number of servers.

The Pyodide implementation already in production: https://first.institute/en/edu/course/basic_python/task/linear_search/ (the tasks are in Ukrainian right now as I'm Ukrainian and teach Ukrainians, but for the blog-post I'll translate tasks to English). Here is a short demo showing instant assignment feedback thanks to Pyodide:

Screen.Recording.2025-09-18.at.11.08.00.mov

P.S.

I'm aware of rejected similar blog post (#23, #24), so I'll keep my post technical-oriented.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions