Technology

Options for tools to support interactive tutorial materials

Python

Recommendation: Jupyter Notebooks are the standard, unless you are teaching about running Python scripts from the command line. Jupyter Notebooks can be run locally for users who are familiar with running them on their own machine, but Google Colab works well for running Jupyter Notebook files online. You can set up a link to open a file in Colab directly from GitHub. Many common packages are already installed on Colab, avoiding many package installation issues. File I/O can be tricky on Colab, so it's best to stick with reading files from URLs where at all possible (we use a !wget command in the notebook to read files directly from GitHub).

Other options:

  • Binder: as with Google Colab, you can set up links to open an interactive notebook directly from GitHub.

  • If specialized environments are needed, consider setting up and running Jupyter on a cloud server and preinstalling all packages needed. This takes time to set up the first time, but if you anticipate the need to do it frequently, you can set up a script or template.

R

Recommendation: Create an R Notebook or R Markdown file with your tutorial materials. Students use their own R/RStudio installation, with RStudio Cloud as a backup if they run into R installation issues. Most students in R workshops already have R and RStudio installed. As long as they don't run into package installation issues, they can usually use their local software if you provide self-contained files (i.e. read files from URLs, not local disk).

If you need participants to have complicated packages installed or have access to multiple files, consider setting up an RStudio Cloud environment yourself that can be shared.

Other options:

  • Binder: you can set up links to open an interactive notebook directly from GitHub.

  • If specialized environments are needed, consider setting up and running RStudio Server (free community edition) on a cloud server and preinstalling all packages needed. This takes time to set up the first time, but if you anticipate the need to do it frequently, you can set up a script or template.

Bash

Recommendation: Replit can be used for free, or you can set up a classroom/team for a relatively low price on a monthly/workshop basis. Users must create an account, but they can log in with other existing accounts they may have (Google, GitHub). For teaching Bash, you may want to have a script that participants can run to set up files and directories to work with. Replit has multiuser functionality, but instead of everyone coding in the same workspace, you may want participants working independently.

SQL

Recommendation (beginner): Use an online database fiddle such as DB Fiddle or SQLfiddle. These tools are only suitable for building and sharing simple schemas, but you can set up tables and queries ahead of time to share with participants. Can work well for beginner exercises and other simple examples or exercises where large tables aren't needed. You can create teaching materials in an html file (using GitHub pages or another static website generator), and add links to open fiddles for exercises or examples.

Recommendation (intermediate to advanced): Set up a database server using a cloud resource such as AWS or Google, and then have participants use Sqlectron as a client. Sqlectron has to be installed, and clear instructions would need to be given, since participants may have to grant special permissions for their operating system to install non-app store software. Hint: Mac users should install the *.dmg file, not the *mac.zip file. This option works best if you expect participants to need a database client of their own, if they'll be participating in a longer SQL workshop series, or you need to use a customized database.

Other options:

  • w3schools SQL database tutorial has an interactive, in-browser exercise page. If you can use their example database that is already loaded for your tutorial, this option might work.

Regular Expressions

Recommendation: For general regular expression tutorials (not programming language specific), create tutorial materials in html files (using GitHub pages or another static website generator), and link to examples and exercises in a regex fiddle such as RegExr. For language-specific regex tutorials, use recommendations for the particular programming language.

MATLAB

Recommendation: Live Editor.

Otherwise, MATLAB users are likely to have access to a copy of the software they can use.

Stata, Mathematica, SPSS

Participants are likely to have access to a copy of the software if they are attending a tutorial. In such cases, think about how you will organize your files and lay out your screen so they can see clearly what you're doing and follow along. Try to avoid switching back and forth between tutorial materials (a web page or slides, or a well-commented script) and the application as you teach.

Other

Teaching another language or technology? We welcome suggestions for good teaching options.

Fiddles and Online IDEs

When exploring possible online options for doing exercises, fiddles can be good for simple exercises and examples, particularly ones that allow you to share a link to a pre-populated example. https://www.w3schools.com/ has online tools for learning Java, C++, and some web technologies. This may be an option for beginner or intermediate workshops in these languages.

For more complicated exercises and examples, Replit supports multiple languages beyond Bash. GitHub Codespaces is in beta trial; we haven't used it yet, but it may be worth exploring. CodePen is useful for Javascript/webdev type workshops.

Last updated

Was this helpful?