Why a University of Pittsburgh Professor Standardized his Teaching on Marimo
Matt Burton- Teaching Associate Professor, Information Culture and Data Stewardship, University of Pittsburgh
The Course: Writing Machines
Can machines really write? What do writing machines do to, or for, human writers?
Writing Machines is a cross-listed course spanning computing and composition at the University of Pittsburgh that approaches the contemporary buzz around ChatGPT and natural language generation through a sociotechnical and historical lens. The course traces automated writing from 18th-century automatons and Ouija boards through combinatorial poetics and procedural algorithms to recurrent neural networks and the transformer technology behind modern LLMs. Organized into units; mechanical, spiritual, procedural, statistical, simulative, each section teaches students historical and technical contexts through texts and hands-on projects.
Students learn to generate text using computational processes and critically examine what they produce, engaging with the political and ethical implications of large-scale data usage: underrepresented languages, bias, hate speech, labor automation, environmental impacts, and privacy violations.
The result is a classroom where CS majors sit alongside English and professional writing students; learners with wildly different technical backgrounds, all trying to make sense of the same set of ideas.
The Challenge
That mix of students is what makes Writing Machines compelling, but it’s also what makes it hard to teach. Some students arrive with Python experience. Many have never written a line of code.
Matt needed a way to let non-programmers interact directly with the underlying concepts; training a Markov chain, running a recurrent neural network, fine-tuning GPT-2, all without requiring them to understand every line of code. He also wanted to experiment with the reactive notebook paradigm and leverage its affordances over the traditional notebook model (no hidden state). The course had previously used Google Colab for compute-heavy training exercises, and while it worked, students would frequently report reproducibility issues. The associated friction would derail the learning experience.
Enter marimo.
marimo as a flexible, reactive teaching tool
marimo is an open-source, reactive notebook for Python. The tool was designed by scientists at Stanford who needed a single programming environment for conducting reproducible computational science and communicating it as interactive web-based learning experiences. marimo is used in classes and labs across the world and has been downloaded over 19 million times.
Matt used marimo in multiple distinct ways across the course:
Interactive Apps for Teaching
Matt built a series of interactive apps, each illustrating a different era of automated text generation. Students could engage with these directly in the browser via molab, no code required:
- Christopher Strachey’s Love Letter Algorithm: Possibly the first computational text generator, dating to 1952. Matt implemented a quick approximation in Python and marimo, available as a WASM app.
- Teardrops on My Markov: A Markov chain trained on Taylor Swift lyrics that generates new songs. Copyright violation? That’s part of the discussion. (Training notebook also available.)
- You vs. MMLU: A WASM app that quizzes students with questions from the MMLU benchmark, letting them compete against LLM scores and develop an intuition for what benchmarks actually measure.
- Ghostwrite the Lit: A GPT-2 medium writing assistant that runs locally on GPU
The most impactful use of marimo was turning notebook-based training processes into interactive applications. Matt teaches three eras of generative text ML; Markov chains, recurrent neural networks, and fine-tuned GPT-2. He wanted students to train their own models, bring their own text, and experiment with generation.
In marimo, instead of asking students to dig into code and change variables directly, Matt composed the training workflow into widgets: upload a file, adjust a slider for epochs, set the number of layers, and hit run. Students could focus on conceptual learning; curating their input text, modifying parameters, observing how changes in configuration alter the generated output, rather than wrestling with syntax or installation. Loss curves rendered live as training progressed, giving students immediate visual feedback on what was happening inside the model.
Built-in GPU access through molab was a game-changer. One student tried running a GPT-2 fine-tune on his own machine’s CPU overnight and got nowhere. With molab’s GPUs, the class could fine-tune GPT-2 together in a single session and see results immediately.
Programming Assignments with Built-In AI Support
Matt also had students complete a Python encryption cipher assignment directly in marimo. For students who lacked coding experience, marimo’s built-in AI assistant (via molab) provided on-the-spot help. Students who got stuck on syntax or logic could get unstuck without waiting for office hours, which let them push further than they otherwise would have.
Results
The previous year, using Google Colab, the training exercises on recurrent neural networks were a struggle. Students would open the Colab notebook, hit an error, and stall out. Not everyone completed the full progression through all three model types.
This year, with marimo apps handling the training interface, every student was able to train a Markov chain, train a recurrent neural network, and fine-tune GPT-2. That outcome, where all students were able to complete all 3 training exercises, wasn’t possible before.
The qualitative feedback from Matt and his students was also encouraging. Many students had never used any kind of notebook environment before and were, in Matt’s words, “terrified of programming.” The combination of the reactive notebook format, immediate visual feedback, and integrated AI assistance shifted their perception. Several students came away saying things like “programming isn’t as hard as I thought.”
molab and the marimo notebook lowered the barrier for learners: no command-line setup, no choosing an editor, no figuring out how to install Python. molab handled the environment, and students could just start working.
Writing Machines will run again in Fall 2026. Whether Matt teaches it himself or hands it off to a colleague, the course will continue to be built around marimo.
Bring marimo Into Your Classroom
If you’re an educator interested in using marimo in your own courses, we’d love to help. We offer free teaching resources and free GPUs on molab for educators; everything you need to get interactive, reactive notebooks into your students’ hands.
Learn more here or reach out to us at contact@marimo.io to learn more!
