summaryrefslogtreecommitdiff
path: root/muendliche-pruefung/lib.typ
diff options
context:
space:
mode:
Diffstat (limited to 'muendliche-pruefung/lib.typ')
-rw-r--r--muendliche-pruefung/lib.typ199
1 files changed, 199 insertions, 0 deletions
diff --git a/muendliche-pruefung/lib.typ b/muendliche-pruefung/lib.typ
new file mode 100644
index 0000000..b95d165
--- /dev/null
+++ b/muendliche-pruefung/lib.typ
@@ -0,0 +1,199 @@
+#let kind = (:
+ "wahlpflicht": "Wahlpflicht",
+ "vertiefungsfach": "Vertiefungsfach",
+ "ergaenzungsfach": "Ergänzungsfach",
+ "none": ""
+)
+
+#let oral-exam(
+ study: "", // Studiengang
+ lecture: "", // Fach
+ kind: kind.none, // Prüfungsart (Wahlpflicht, Vertiefungsfach, Ergänzungsfach)
+ date: datetime(year: 0, month: 1, day: 1), // Prüfungsdatum
+ examiner: "", // PrüferIn (Prof)
+ assistant: "", // BeisitzerIn
+ grade_received: 0.0, // Note
+ grade_reasonable: "", // War die Note angemessen?
+ exam_duration: duration(minutes: 0), // Prüfungsdauer
+ attendance: (
+ /* Veranstaltung, Dozent(in), Jahr, regelmäßig besucht? */
+ (lecture: "", lecturer: "", year: "", did_attend: ""),
+ (lecture: "", lecturer: "", year: "", did_attend: ""),
+ (lecture: "", lecturer: "", year: "", did_attend: ""),
+ (lecture: "", lecturer: "", year: "", did_attend: ""),
+ ),
+ attendance_worth: [
+ // Hat sich der Besuch / Nichtbesuch der Veranstaltung für dich gelohnt?
+ ],
+ preparation_time: [
+ // Wie lange und wie hast alleine bzw. mit anderen vorbereitet?
+ ],
+ agreements: [
+ // Fanden vor der Prüfung Absprachen zu Form oder Inhalt statt? Wurden sie eingehalten?
+ ],
+ preparations: [
+ // Welche Tips zur Vorbereitung kannst Du geben?
+ ],
+ examiner_behavior: [
+ // Wie war der Prüfungsstil des Prüfers / der Prüferin?
+ ],
+ examiner_recommendation: (none, [
+ // Kannst du ihn / sie weiterempfehlen? Warum?
+ ]),
+ examinee_behavior: [
+ // Kannst Du Ratschläge Verhalten in der Prüfung geben?
+ ],
+ doc
+) = [
+ #set page("a4", margin: 1.1cm)
+ #set text(lang: "de", size: 10pt)
+ #set grid(column-gutter: .5cm, inset: (bottom: 10pt))
+ #set table(stroke: 0.5pt)
+ #show emoji.hand.write: box(height: 10pt, clip: true, scale(x:-100%)[🖎])
+ #show table.cell: it => block(inset: (bottom: 4pt, rest: 8pt), box(height: 1em, it.body))
+ #let radiobox(checked: false) = if checked {$circle.filled$} else {$circle$}
+ #let input(width: 1fr, body) = box(width: width, height: 1em, inset: (bottom: 2pt), baseline: 2pt, stroke: (bottom: (dash: "loosely-dotted")),align(right, body))
+ #let question(q, body) = [
+ #grid(columns: 2, inset: 0pt, emoji.hand.write, box(inset: (top: 3pt))[*#q*])
+
+ #body
+ ]
+
+ #page([
+ #grid(columns: 2 * (1fr,),
+ [
+ #v(1em)
+ #grid(columns: 2,
+ image(width: 1.8cm, "fsmi-logo.svg"),
+ text(size: 15pt)[
+ Fragebogen der Fachschaft zu
+ *mündlichen Prüfungen* \
+ im Informatikstudium
+ ])
+ ],
+ [
+ ],
+ [],[
+ #align(center)[Barcode:]
+ ],
+ par(justify: true)[
+ Dieser Fragebogen gibt den Studierenden, die nach dir die Prüfung ablegen
+ wollen, einen Einblick in Ablauf und Inhalt der Prüfung. Das erleichtert die
+ Vorbereitung. \
+ Bitte verwende zum Ausfüllen einen schwarzen Stift. Das erleichtert das
+ Einscannen. \
+ Vielen Dank für deine Mitarbeit!
+ ],
+ [
+ #grid(
+ columns: (.1cm, 1fr, .1cm),
+ rows: (.1cm, 2.5cm, .1cm),
+ stroke: (x,y) => (:
+ top: if x != 1 and y == 0 {.5pt},
+ bottom: if x != 1 and y == 2 {.5pt},
+ left: if y != 1 and x == 0 {.5pt},
+ right: if y != 1 and x == 2 {.5pt},
+ ))
+ #v(2em)
+ ],
+ [
+ Dein Sudiengang: #input[#study]
+
+ Prüfungsart:
+ #let module_kinds = (
+ "Wahlpflicht",
+ "Vertiefungsfach",
+ "Ergänzungsfach",
+ )
+ #for module_kind in module_kinds [
+ \ #radiobox(checked: kind == module_kind) #module_kind
+ ]
+
+ Welches? #input[#lecture]
+ ],
+ [
+ #grid(columns: (auto, 1fr),
+ [Prüfungsdatum:], input[#if date.year() > 0 {date.display("[day].[month].[year]")}],
+ [Prüfer(in): ], input[#examiner],
+ [Beisitzer(in):], input[#assistant],
+ )
+ ])
+
+ #let modules = attendance + 4 * ((lecture: "", lecturer: "", year: "", did_attend: ""),)
+
+ *Prüfungsfächer und Vorbereitung:*
+
+ #table(columns: 4 * (1fr,), row-gutter: (2pt, ..(3*(0pt,))),
+ table.header[Veranstaltung][Dozent(in)][Jahr][regelmäßig besucht?],
+ ..modules.map(((lecture, lecturer, year, did_attend)) =>
+ (lecture, lecturer, year, did_attend)
+ ).slice(0,4).flatten()
+ )
+
+ #v(1em)
+ #grid(columns: 2 * (1fr,),[
+ Note: #input[#if grade_received > 0.0 {str(grade_received+0.01).slice(0,3).replace(".",",")}]
+ ],[
+ Prüfungsdauer:#input[#if exam_duration.minutes() > 0 {exam_duration.minutes()}] Minuten
+ ])
+
+ #v(1em)
+ War diese Note angemessen? #input[#grade_reasonable]
+
+ #v(1em)
+ #question[Wie war der Prüfungsstil des Prüfers / der Prüferin?][
+ Prüfungsatmosphäre, (un)klare Fragestellungen, Frage nach Einzelheiten oder eher größeren Zusammenhängen, kamen häufiger Zwi-
+ schenfragen oder ließ er/sie dich erzählen, wurde dir weitergeholfen, wurde in Wissenslücken gebohrt?
+
+ #examiner_behavior
+ ]
+
+ ], footer: [#h(1fr)$arrow.r.hook$ *Rückseite bitte nicht vergessen!*])
+
+ #page()[
+ #grid(rows: (3 * (22em,)), columns: 2 * (1fr,),
+ question[
+ Hat sich der Besuch / Nichtbesuch der Veran-
+ staltung für dich gelohnt?
+ ][#attendance_worth],
+ question[
+ Kannst du ihn / sie weiterempfehlen? Warum? \ \
+ ][
+ #radiobox(checked: examiner_recommendation.at(0) == true) Ja \
+ #radiobox(checked: examiner_recommendation.at(0) == false) Nein
+
+ #examiner_recommendation.at(1)
+ ],
+ question[
+ Wie lange und wie hast du dich alleine oder
+ mit anderen auf die Prüfung vorbereitet?
+ ][#preparation_time],
+ question[
+ Fanden vor der Prüfung Absprachen zu Form
+ oder Inhalt statt? Wurden sie eingehalten?
+ ][#agreements],
+ question[
+ Welche Tipps zur Vorbereitung kannst du ge-\ ben?
+ ][
+ Wichtige / unwichtige Teile des Stoffes, gute Bücher / Skrip-
+ ten, Lernstil, ...
+
+ #preparations
+ ],
+ question[
+ Kannst du Ratschläge für das Verhalten in der
+ Prüfung geben?
+ ][#examinee_behavior]
+ )
+
+ *Inhalte der Prüfung (bitte auf weitere Blätter):*
+
+ #set list(spacing: 1.2em, indent: 1.5em)
+ - Schreibe bitte möglichst viele Fragen und Antworten auf.
+ - Wo wurde nach Herleitungen oder Beweisen gefragt oder sonstwie nachgehakt?
+ - Worauf wollte der Prüfer / die Prüferin hinaus?
+ - Welche Fragen gehörten nicht zum eigentlichen Stoff?
+ ]
+ #doc
+]
+