summaryrefslogtreecommitdiff
path: root/mundl-prufung
diff options
context:
space:
mode:
Diffstat (limited to 'mundl-prufung')
-rw-r--r--mundl-prufung/lib.typ199
-rw-r--r--mundl-prufung/prufung.typ169
2 files changed, 236 insertions, 132 deletions
diff --git a/mundl-prufung/lib.typ b/mundl-prufung/lib.typ
new file mode 100644
index 0000000..7349c76
--- /dev/null
+++ b/mundl-prufung/lib.typ
@@ -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
+]
+
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?
-]