From 9ac7b58b29c67f81279d7039609836da3eb9f30b Mon Sep 17 00:00:00 2001 From: orangerot Date: Sun, 31 Aug 2025 01:11:19 +0200 Subject: style: uniform naming convention with directories, files and variables --- muendliche-pruefung/lib.typ | 199 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 muendliche-pruefung/lib.typ (limited to 'muendliche-pruefung/lib.typ') 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 +] + -- cgit v1.2.3