From Reproducible Research to Teaching, and Back

Our Vision…

“Our vision for the modern teacher-scholar is having consistent reproducibility practices in how they conduct research, what they teach to students, and how they prepare teaching materials. We distinguish the three aspects as reproducible research, teaching reproducibility, and reproducible teaching…” (Dogucu and Çetinkaya-Rundel 2022)

Some Benefits of Reproducible Workflows

For Students For Teacher-Scholars
Abstraction Abstraction
Employability Employability
Learning-by-Seeing Learning-by-Seeing
Learning-by-Breaking Learning-by-Breaking
Workload Management Workload Management

What Do We Want?

As (Literate) Researchers As (Technical) Instructors
Easy editing and formatting Code that doesn’t break without warning
An up-to-date bibliography Tools that work for us, not against us
A polished final output An easy to manage module web site
One tool to rule them all One tool to rule them all

That Tool is Quarto

What is Quarto?

  • From the people who brought you (R) Bookdown
  • Now with added Python and Julia goodness
  • Everything in one place in Markdown/YAML
  • Integrated code, with flexibility as to how it’s used/displayed
  • Output web sites, PDFs, Reveal.js presentations, even Word!

Why Use It?

  • More accessible than \(\LaTeX\) (just get on with your writing!)
  • More accessible that PowerPoint or Word (see above)
  • Fully tangled and woven documents (Knuth 1984)
  • Workflow that makes sense for researchers/devs
  • Extensible plug-in framework for custom features1

How We Use It

  • One Git/GitHub repo for everything
  • Web site is rendered to HTML
  • Lectures are rendered to Reveal.js
  • Practicals are rendered to Jupyter (workbooks) and PDFs (answer sheets)
  • Assessment guidance is rendered to PDF with…
    • Due dates, weightings, data sources, etc. are parameterised
  • Pyodide for in-browser execution in some demonstrations

One More Thing…

  • Automate all the things:
    • Presentations are converted to PNG via node’s decktape
    • Audio recorded to M4A in ocenaudio
    • ffmpeg splices together image and audio to create flipped lecture
    • Intro/Outro rendered on the fly (copyright always up-to-date!)
    • Orchestrated in Python with custom classes + scripts
    • Will publish this at some point (happy to have help!)
  • Both rendering and student work managed via… Docker
    • Looking at Podman, but needs testing
    • Write once - Run anywhere gains

All Free, All Open

Questions?

In practice…

Source Site
github.com/jreades/code-camp/ jreades.github.io/code-camp/
github.com/jreades/fsds/ jreades.github.io/fsds/

Photo by Joshua Harris on Unsplash

References

Dogucu, Mine, and Mine Çetinkaya-Rundel. 2022. “Tools and Recommendations for Reproducible Teaching.” Journal of Statistics and Data Science Education 30 (3). Taylor & Francis:251–60. https://doi.org/10.1080/26939169.2022.2138645.
Knuth, Donald Ervin. 1984. “Literate Programming.” The Computer Journal 27 (2). Oxford University Press:97–111.