30.08 Teaching materials
Best practices and resources for preparing teaching materials.
Table of contents
- Input
- Page
- Repository Setup
- Notebooks and Exercises
- Slides
- Teaching notes
- Terminal animations (asciinema)
- Feedback
- Resources
Input
- Check other courses here
Page
- Each course should have a separate repository and page.
- Options to provide feedback should be linked on the first page.
Repository Setup
A teaching repository contains
- A syllabus (example)
- Detailed teaching notes allow teaching assistants to replicate it quickly.
- Links related to continuous improvement: feedback, evaluations, improvement.
- Add branch protection rule for
main
: restrict deletions and block force pushes
Additional checks:
- Dates, rooms, and links should be in one place to prevent inconsistent information.
- VC links never point to a specific course but to a search in VC (e.g., for the project).
- Teaching contents are licensed under the CC-BY license per default.
Notebooks and Exercises
We use Jupyter notebooks for exercises.
Resources
Slides
- Slides are in Markdown.
- HTML and PDF versions are automatically generated (e.g., GitHub actions).
- Learning objectives should be on all slides (verifiable outcomes).
- Use markers for tasks/questions (see example)
Teaching notes
- Teaching notes are shared and updated regularly.
Week 1: Topics (Teaching notes)
Time (min) | Duration | Topic | Additional materials |
---|---|---|---|
0-10 | 10 | Intro and instructor background | |
10-25 | 15 | What you will learn | |
50-80 | 30 | Orientation in Open Source projects | Group task, discussing solutions afterwards |
80-90 | 10 | Next steps |
In this session, our goal is to …. (competencies)
Summary of last session.
Intro and instructor
- Contents (e.g., photo of the board writing)
- Highlight areas that can be shortened (optional)
- Additional challenges and tasks for students
- Typical questions raised (common errors)
Summarize lessons learned.
Page breaks for PDFs/print
<div class=”page-break”></div>
Terminal animations (asciinema)
Installation
pip install asciinema
git clone https://github.com/asciinema/agg
cd agg
docker build -t agg .
Recording and conversion
asciinema rec demo.cast
# code ...
# ctrl+d to quit
# convert:
docker run --rm -it -u $(id -u):$(id -g) -v $PWD:/data agg demo.cast demo.gif
Feedback
- Limesurvey
- Rustpad for anonymous feedback/suggestions (contents are deleted after 1 day of inactivity)
Embedding Google Forms (anonymous responses possible):
<style>
blockquote {
border-top: 0.1em;
font-size: 60%;
margin-top: auto;
}
</style>
<iframe src="https://docs.google.com/forms/d/e/1FAIpQLSeACViOkyuuG3Bvz4Dhq1yA-Fm8WTPiRst5D_IxK3UuRyFzjg/viewform?embedded=true" width="100%" height="90%" frameborder="" marginheight="0" marginwidth="0">Wird geladen…</iframe>
> Open [responses](https://docs.google.com/forms/d/1Wa_MNL3zClW7j-1NPm31PIP7pXs7QqLnZPi4oefA_gA/edit#responses){: target="_blank"}