Marimo is a computational notebook that lets data scientists mix code, discussion, and results. Its plugin system relies on AnyWidget, which specifies a simple contract between extensions and Marimo. The aim of this project is to design, build, and test a set of Marimo plugins for classroom exercises similar to those in H5P: multiple choice, fill in the blanks, and so on.
You can watch the demo video of explaining the overall design and structure of plugins
- YouTube: https://youtu.be/oeYEotXOvgA
- Google Drive: https://drive.google.com/file/d/1DYZI3w0ikATuKTXiATNHsOeLZL5uu5M_/view?usp=sharing
-
Clone this repository.
-
Create and activate a Python virtual environment.
- E.g., if you are using uv, run
uv venvand thensource .venv/bin/activate.
- E.g., if you are using uv, run
-
Install the package in
pyproject.tomlfor development.- E.g., run
uv pip install -e ".[dev]".
- E.g., run
You may also want to clone the Marimo repository.
- Many professors and students preferred straightforward, simple, and common exercises like multiple choice, fill in the blank, and true or false
- Professors also found more unique widgets to be useful for the specific courses that they teach
- For example, the professor who teaches a Machine Learning course shares their opinion that it would be useful to see widgets where students can interact with the data, such as drawing decision boundaries.
- Students overall chose more interactive and quick activities like Drag the Words or Sort the Paragraphs over ones that required more writing or detail like Essay
- Professors also chose interactive activities but recommended against gamification and relying on too many images
Below are a few of the H5P plugins suggested by professors and students, along with some differences noted between the H5P versions and those from other online learning platforms:
| Widget | H5P Features | Other Implementations | Summary |
|---|---|---|---|
| Multiple Choice |
|
Canvas
|
|
| Sort the paragraphs |
|
D2L Creator+ (extra D2L package)
|
|
| Branching Scenario |
|
Elucidat
|
|
| Chart |
|
JSXGraph (Moodle’s plugin)
|
|
| Course Presentation |
|
reveal.js (Moodle plugin)
|
|
| Interactive Video |
|
|
|
| Fill in the blanks |
|
Canvas:
|
|
| Drag the words |
|
Blackboard Learn
|
|
| Interactive Book |
|
Genially
|
|
| Structure Strip |
|
Canvas
|
|
- Quiz (Question Set)
- Useful in between lessons or at the end of modules to reinforce students’ understanding with different types of questions available (multiple choice, fill in the blanks, drag the words, etc.)
- Cornell Notes
- Useful for taking notes while watching a video or reading
- Dialog Cards
- Useful for students to do a quick self-check of whether they understood the material
- Similar to many students’ studying methods
- True/False
- Useful to test students’ knowledge, similar to Multiple Choice