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 created with in one LaTeX Beamer file
- code examples, demos
- videos
- web pages, etc
- Review questions in one LaTeX documentfile
- Non-programming problems in one LaTeX documentfile
- Programming problems in one LaTeX documentfile
- Lab exercises in one LaTeX documentfile
- and a bunch of other stuff (exams, evaluations, archives, illustrations, ...)
The "protocol"
- Topics are organized as folders with foldernames
XX-keyword/
whereXX
is a sequence number01
,02
, ...
(keyword
is mapped to full names inbuildbook.conf
) - The LaTeX Beamer file is in
XX-keyword/tex/keyword.tex
, notes are placed in\begin{graybox}...\end{graybox}
Review questions in
00-REVIEW/review-qa.tex
Non-programmering problems in
00-PROBLEMS/problems-qa.tex
Programming problems in
00-PROG/prog-qa.tex
- 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 ErikHErik, rewritten into nice Python by EigilOEigil)
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?