exsheet2: Support final exams, like bachelors
[exsheet.git] / README.markdown
1 ## Präamble
2
3 Die LaTeX Klasse `exsheet2` ist zur Erstellung von Aufgabenblättern und
4 Klausuren, also im weitesten Sinne "exercise sheets". Sie geht aus einer
5 älteren Version `exsheet` hervor, die bislang nicht publiziert wurde und welche
6 ich in den letzten 10 Jahren für diese Anwedungen verwendete.
7
8 Viele Entwurfsaspekte von `exsheet2` stammen aus einer Erhebung am Department
9 for Information Technologies and Digitalisation an der FH Salzburg.
10
11 Ich verwende die Klasse für zwei Kategorien von Anwendungsfällen:
12
13 * Prüfungen, Tests oder Abschlussklausuren
14 * Aufgabenblätter oder Übungsblätter
15
16
17 ## Installation
18
19 Die nachhaltige Lösung ist das Kopieren der Datei `exsheet2.cls` in ein
20 [TEXINPUTS](https://www2.ph.ed.ac.uk/~wjh/tex/documents/environmental.pdf)
21 Verzeichnis. Die schlechtere Alternativ ist, dass man `exsheet2.cls` lokal in
22 jedes Verzeichnis gibt, wo es verwendet wird, d.h. wo die betreffenden LaTeX
23 Dokumente liegen.
24
25
26 ## Allgemeine Features
27
28 Es wird eine Umgebung `exercises` zur Verfügung gestellt, um Aufgaben zu
29 formulieren. Man kann auch die Antwort mitformulieren und über die Option
30 `showanswers` an die Dokumentenklasse diese anzeigen lassen.
31
32 ```latex
33 \begin{exercise}
34 An exercise.
35 \end{exercise}
36
37 \begin{answer}
38 $\vec{a} = \frac{\vec{F}}{m}$
39 \end{answer}
40 ```
41
42 Ein optionales Argument erlaubt es die Punkteanzahl bekanntzugeben. Die
43 Umgebung `choices` erlaubt es single- oder multiple-choice Fragen zu
44 formulieren:
45
46 ```latex
47 \begin{exercise}[4] % Frage mit vier Punkten
48 Kreuzen Sie die richtigen Anworten an:
49 \begin{choices}
50 \item $1 + 1 = 0 \pmod 2$
51 \item $1 + 1 = 1 \pmod 2$
52 \item $1 + 1 = 1 \pmod 3$
53 \item $1 + 1 = 5 \pmod 7$
54 \end{choices}
55 \end{exercise}
56 ```
57
58
59 Über die Optionen `german`, `ngerman` oder `austrian` wird die Sprache
60 entsprechend umgestellt. Die betreffenden Pakete werden geladen.
61
62 Über die Option `exam` lassen sich Klausuren erstellen. Sie weitere
63 Informationen unten.
64
65 Die Optionen `10pt`, `12pt` und `twoside` werden an die Klasse `article`
66 weitergeleitet.
67
68 Es können über folgende Befehle entsprechend die Daten zur Klausur gesetzt
69 werden: `\title`, `\author`, `\date`, `\course`, `\curriculum`, `\semester`,
70 `\institute`, `\school`, `\duration`, `\instructions`.
71
72
73 ## Aufgsabenblätter
74
75 Die Klassse `exsheet2` erzeugt ohne weitere Optionen einfache Aufgabenblätter.
76 Es werden zwei Sprachen unterstützt und notwendige Packete entsprechend geladen:
77
78 * american
79 * german, ngerman
80
81 Ein Beispiel [exsheet2-demo-aufgabenblatt.tex](exsheet2-demo-aufgabenblatt.tex)
82 befindet sich als Demo im Repository. Ein einfaches Beispiel für ein
83 Aufgabenblatt mit einer Aufgabe lautet wie folgt:
84
85 ```latex
86 \documentclass[ngerman]{exsheet2}
87
88 \usepackage{fontspec}
89
90 \title{Aufgabenblatt 7}
91 \course{ILV Numerik und Industrielle Algorithmen}
92 \curriculum{ITS}
93
94 \date{21.10.2022}
95 \semester{WS 2022}
96
97 \author{Stefan Huber}
98 \institute{Department IT}
99 \school{FH Salzburg}
100
101 \begin{document}
102
103 \maketitle
104
105 \begin{exercise}
106 Welche Beschleunigung $\vec{a}$ erfährt eine träge Masse $m$ im Kraftfeld
107 $\vec{F}$ nach Newton?
108 \vspace{2cm}
109 \end{exercise}
110
111 \end{document}
112 ```
113
114
115 ## Klausuren
116
117 Klausuren werden durch die Option `exam` für die Klasse `exsheet2`erzeugt. Das
118 führt zu folgendem zusätzlichem Verhalten:
119
120 * Für Klausuren wird ein Deckblatt erzeugt.
121 * Die Punktesumme der Aufgaben wird am Deckblatt angezeigt.
122 * Es wird eine Zufallszahl als
123 [Nonce](https://en.wikipedia.org/wiki/Cryptographic_nonce) generiert, die
124 rechts unten auf den Blättern bedruckt wird. Das ermöglicht die Zuordnung von
125 losen Blättern zu Klausuren und verhindert, dass Blätter von Student·innen
126 vorgeschrieben werden können.
127
128 Durch die automatische Berechnung der Punktesummen wird das **effiziente
129 Generieren von Klausuren** über Fragenkataloge erleichtert: Man kann in einem
130 Sammeldokumente Fragen sammeln, die vom Umfang mehrere Klausuren füllen und für
131 die Erstellung konkreter Klausuren fragen löschen, um auf die gewünschte
132 Punktezahl zu kommen.
133
134 Die Kopfzeile enthält jene Informationen, welche rasch erkennen lassen sollen,
135 um welche Klausur es sich handelt. Das ist für Sammelklausuren, wo gleichzeitig
136 viele verschiedene Klausuren durchgeführt werden, für die Beaufsichtigung
137 wichtig.
138
139 Zwei Beispiele befinden sich als Demo im Repository:
140
141 * [exsheet2-demo-klausur.tex](exsheet2-demo-klausur-en.tex) ist eine deutsche Klausur
142 * [exsheet2-demo-klausur-en.tex](exsheet2-demo-klausur-en.tex) ist eine englische Klausur