Introduction

Creating good course material takes time! Escpecially non-programming and programming problems that align closely with learning outcome.

History: Erik adopted the operating systems course (one big messy zip archive) in 2009, Eigil joined in 2014. Erik teaches in Gjøvik in the spring, Eigil teaches at Jørstadmoen in the fall.

What is a course?

We have a course with five "things":

  • Slides and notes in one LaTeX Beamer file
    • code examples, demos
    • videos
    • web pages, etc
  • Review questions in one LaTeX file
  • Non-programming problems in one LaTeX file
  • Programming problems in one LaTeX file
  • Lab exercises in one LaTeX file
  • and a bunch of other stuff (exams, evaluations, archives, illustrations, ...)

The "protocol"

  1. Topics are organized as folders with foldernames XX-keyword/ where XX is a sequence number 01, 02, ...
    (keyword is mapped to full names in buildbook.conf)
  2. The LaTeX Beamer file is in XX-keyword/tex/keyword.tex, notes are placed in \begin{graybox}...\end{graybox}
  3. Review questions in 00-REVIEW/review-qa.tex

  4. Non-programmering problems in 00-PROBLEMS/problems-qa.tex

  5. Programming problems in 00-PROG/prog-qa.tex

  6. Lab exercises in 00-LAB/lab-qa.tex
    Entries in in these files follow same format, e.g.

    %%%%%io19:ErikH:-1:5:REP,X14HiG,X15HiOAHiG,KX17NTNU
    \item Beskriv kort RAID nivå 0, 1 og 5.

    \textbf{0 er striping, 1 er speiling, 5 er striping med spredt paritet i
    tillegg som gir en disk redundans.}
    %%%%%

    where the header line indicates id, author, level, weight, REP=part of hand-out, the rest are exam codes

The "tool" - DEMO

The "tool" buildbook.py (a horrible Perl-script by Erik, rewritten into nice Python by Eigil)

foreach keyword in topiclist
__create chapter
__parse XX-keyword/tex/keyword.tex (create graybox if instructor-switch on)
__create section "Theory questions"
____parse 00-REVIEW/review-qa.tex (include all entries labelled "REP")
____parse 00-PROBLEMS/problems-qa.tex (include all entries labelled "REP")
____parse 00-PROG/prog-qa.tex (include all entries labelled "REP")
__create section "Lab exercises"
____parse 00-LAB/lab-qa.tex (include all entries labelled "REP")
Add appendices if part of command line options

(in each topicfolder there is also a build-script to create presentation and notes from the Beamer file)

Discussion

  • This was created when pdf and paper still was a thing...maybe not LaTeX anymore?
  • How to simplify/extend/generalize/etc this to be usable for others?
  • Where to put the course git repo?
  • No labels