From d5c2f311c665b31400efaf95ba0d95cc56644b82 Mon Sep 17 00:00:00 2001 From: orangerot Date: Sun, 31 Aug 2025 00:06:04 +0200 Subject: feat: template for muendliche Pruefung --- mundl-prufung/prufung.typ | 169 ++++++++++------------------------------------ 1 file changed, 37 insertions(+), 132 deletions(-) (limited to 'mundl-prufung/prufung.typ') diff --git a/mundl-prufung/prufung.typ b/mundl-prufung/prufung.typ index db8ce42..a661177 100644 --- a/mundl-prufung/prufung.typ +++ b/mundl-prufung/prufung.typ @@ -1,140 +1,45 @@ -#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 question(q, body) = [ - #grid(columns: 2, emoji.hand.write, box(inset: (top: 3pt))[*#q*]) - - #body -] -#let input(width: 1fr, body) = box(width: width, height: 1em, inset: (bottom: 2pt), baseline: 2pt, stroke: (bottom: (dash: "loosely-dotted")),align(right, 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 - ]) +#import "lib.typ": prufung, kind + +#show: prufung.with( + 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? ], - [],[ - #align(center)[Barcode:] + agreements: [ + // Fanden vor der Prüfung Absprachen zu Form oder Inhalt statt? Wurden sie eingehalten? ], - 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! + preparations: [ + // Welche Tips zur Vorbereitung kannst Du geben? ], - [ - #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) + examiner_behavior: [ + // Wie war der Prüfungsstil des Prüfers / der Prüferin? ], - [ - Dein Sudiengang: #input[] - - Prüfungsart: - #let module_kind = ( - "Wahlpflicht", - "Vertiefungsfach", - "Ergänzungsfach", - ) - #for kind in module_kind [ - \ #radiobox() #kind - ] - - Welches? #input[] + examiner_recommendation: (none, [ // true, false + // Kannst du ihn / sie weiterempfehlen? Warum? + ]), + examinee_behavior: [ + // Kannst Du Ratschläge Verhalten in der Prüfung geben? ], - [ - #grid(columns: (auto, 1fr), - [Prüfungsdatum:], input[], - [Prüfer(in):], input[], - [Beisitzer(in):], input[], - ) - ]) - - *Prüfungsfächer und Vorbereitung:* - #table(columns: 4 * (1fr,), row-gutter: (2pt, ..(3*(0pt,))), - table.header[Veranstaltung][Dozent(in)][Jahr][regelmäßig besucht?], - ..range(4*4).map(it => []) - ) - #v(1em) - #grid(columns: 2 * (1fr,),[ - Note: #input[] - ],[ - Prüfungsdauer:#input[] Minuten - ]) - - #v(1em) - War diese Note angemessen? #input[] - - #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? - ] - -], footer: [#h(1fr)$arrow.r.hook$ *Rückseite bitte nicht vergessen!*]) - -#page()[ - - // #grid(rows: (3 * (7.8cm,)), columns: 2 * (1fr,), - #grid(rows: (3 * (22em,)), columns: 2 * (1fr,), - question[ - Hat sich der Besuch / Nichtbesuch der Veran- - staltung für dich gelohnt? - ][], - question[ - Kannst du ihn / sie weiterempfehlen? Warum? \ \ - ][ - $circle$ Ja \ - $circle$ Nein - ], - question[ - Wie lange und wie hast du dich alleine oder - mit anderen auf die Prüfung vorbereitet? - ][], - question[ - Fanden vor der Prüfung Absprachen zu Form - oder Inhalt statt? Wurden sie eingehalten? - ][], - question[ - Welche Tipps zur Vorbereitung kannst du ge- ben? - - ][ - Wichtige / unwichtige Teile des Stoffes, gute Bücher / Skrip- - ten, Lernstil, ... - ], - question[ - Kannst du Ratschläge für das Verhalten in der - Prüfung geben? - ][] - ) +) - *Inhalte der Prüfung (bitte auf weitere Blätter):* +// Schreibe bitte möglichst viele Fragen und Antworten auf. +// Hier ist Platz für deinen Kommentar - #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? -] -- cgit v1.2.3