feat: template for muendliche Pruefung

This commit is contained in:
orangerot 2025-08-31 00:06:04 +02:00
parent ece9780159
commit d5c2f311c6
2 changed files with 235 additions and 131 deletions

199
mundl-prufung/lib.typ Normal file
View file

@ -0,0 +1,199 @@
#let kind = (:
"wahlpflicht": "Wahlpflicht",
"vertiefungsfach": "Vertiefungsfach",
"ergaenzungsfach": "Ergänzungsfach",
"none": ""
)
#let prufung(
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
]

View file

@ -1,140 +1,45 @@
#set page("a4", margin: 1.1cm) #import "lib.typ": prufung, kind
#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 #show: prufung.with(
] study: "", // Studiengang
#let input(width: 1fr, body) = box(width: width, height: 1em, inset: (bottom: 2pt), baseline: 2pt, stroke: (bottom: (dash: "loosely-dotted")),align(right, body)) lecture: "", // Fach
kind: kind.none, // Prüfungsart (Wahlpflicht, Vertiefungsfach, Ergänzungsfach)
#page([ date: datetime(year: 0, month: 1, day: 1), // Prüfungsdatum
#grid(columns: 2 * (1fr,), examiner: "", // PrüferIn (Prof)
[ assistant: "", // BeisitzerIn
#v(1em) grade_received: 0.0, // Note
#grid(columns: 2, grade_reasonable: "", // War die Note angemessen?
image(width: 1.8cm, "fsmi-logo.svg"), exam_duration: duration(minutes: 0), // Prüfungsdauer
text(size: 15pt)[ attendance: (
Fragebogen der Fachschaft zu /* Veranstaltung, Dozent(in), Jahr, regelmäßig besucht? */
*mündlichen Prüfungen* \ (lecture: "", lecturer: "", year: "", did_attend: ""),
im Informatikstudium (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: [
#align(center)[Barcode:] // Fanden vor der Prüfung Absprachen zu Form oder Inhalt statt? Wurden sie eingehalten?
], ],
par(justify: true)[ preparations: [
Dieser Fragebogen gibt den Studierenden, die nach dir die Prüfung ablegen // Welche Tips zur Vorbereitung kannst Du geben?
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!
], ],
[ examiner_behavior: [
#grid( // Wie war der Prüfungsstil des Prüfers / der Prüferin?
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_recommendation: (none, [ // true, false
Dein Sudiengang: #input[] // Kannst du ihn / sie weiterempfehlen? Warum?
]),
Prüfungsart: examinee_behavior: [
#let module_kind = ( // Kannst Du Ratschläge Verhalten in der Prüfung geben?
"Wahlpflicht",
"Vertiefungsfach",
"Ergänzungsfach",
)
#for kind in module_kind [
\ #radiobox() #kind
]
Welches? #input[]
], ],
[ )
#grid(columns: (auto, 1fr),
[Prüfungsdatum:], input[],
[Prüfer(in):], input[],
[Beisitzer(in):], input[],
)
])
*Prüfungsfächer und Vorbereitung:* // Schreibe bitte möglichst viele Fragen und Antworten auf.
#table(columns: 4 * (1fr,), row-gutter: (2pt, ..(3*(0pt,))), // Hier ist Platz für deinen Kommentar
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):*
#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?
]