summaryrefslogtreecommitdiff
path: root/muendliche-nachpruefung
diff options
context:
space:
mode:
Diffstat (limited to 'muendliche-nachpruefung')
-rw-r--r--muendliche-nachpruefung/bachelor.typ230
-rw-r--r--muendliche-nachpruefung/lib.typ163
2 files changed, 165 insertions, 228 deletions
diff --git a/muendliche-nachpruefung/bachelor.typ b/muendliche-nachpruefung/bachelor.typ
index b753b38..a70aacc 100644
--- a/muendliche-nachpruefung/bachelor.typ
+++ b/muendliche-nachpruefung/bachelor.typ
@@ -2,123 +2,157 @@
#set text(lang: "de", size: 10.5pt)
#set par(justify: true, leading: .5em, spacing: 0.5em)
#set block(spacing: 0pt)
-#set table(inset: (top: 2pt, x: 8pt), stroke: .5pt)
+#set table(inset: (top: 2pt, bottom: 4pt, x: 8pt), stroke: .5pt)
#set grid(inset: (y: 3pt, x: 6pt))
#set grid.vline(stroke: .5pt)
-#let checkbox(b) = if (b) {$times.square$} else {$square$}
#set linebreak(justify: true)
-#show underline: it => box(it)
+#let checkbox(checked: false) = if (checked) {$times.square$} else {$square$}
+#let input(width: 1fr, name: "", body) = box(width: width, inset: (bottom: 2pt), baseline: 2pt, stroke: (bottom: (dash: "dotted")),align(right, [#body #label(name)]))
+#let textarea(name: "", body) = [#body #label(name)]
#show emoji.pencil: "✎"
-#let pruefungsrahmen = (
- "Prüfungsdatum": [],
- "PrüferIn (Prof.)": [],
- "BeisitzerIn": [],
-)
-
-#let modul = ""
-#let bestanden = none
-#let pruefungsdauer_minuten = 0
-
#grid(columns: (2cm, 15cm), align: bottom,
-box(inset: (x: 3pt), image(width: 1.3cm, "fsmi-logo.svg")),
-[
- #set text(size: 15pt)
- #set par(spacing: 3pt)
- Fragebogen der Fachschaft zu
+ box(inset: (x: 3pt), image(width: 1.3cm, "fsmi-logo.svg")),
+ [
+ #set text(size: 15pt)
+ #set par(spacing: 3pt)
+ Fragebogen der Fachschaft zu
- *mündlichen Vordiplomsprüfungen* im Informatikstudium
-])
-#grid(columns: 2*(1fr,), grid.vline(x:1), [
-Dieser Fragebogen gibt den KommilitonInnen, die nach
-Dir die Prüfung ablegen wollen, einen Einblick in Ab-
-lauf und Inhalt der Prüfung. Das erleichtert die Vorbe-
-reitung.
+ *mündlichen Vordiplomsprüfungen* im Informatikstudium
+ ]
+)
-Bitte verwende zum Ausfüllen einen schwarzen Stift.
+#grid(columns: 2*(1fr,), grid.vline(x:1),
+ [
+ Dieser Fragebogen gibt den KommilitonInnen, die nach
+ Dir die Prüfung ablegen wollen, einen Einblick in Ab-
+ lauf und Inhalt der Prüfung. Das erleichtert die Vorbe-
+ reitung.
-Das erleichtert das Einscannen.
+ Bitte verwende zum Ausfüllen einen schwarzen Stift.
-#for (key,value) in pruefungsrahmen {box(inset: (top: 1.2em), [*#key:*#box(width: 1fr, repeat[.])#value])}
+ Das erleichtert das Einscannen.
-],
-[
-#block(width: 7cm, inset: .3cm, align(center, [
- Barcode:
-#grid(
- columns: (.1cm, 7.8cm, .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},
-))
-]))
-*Fach:* \
-#let modules = (
- "Algo I",
- "Algo II",
- "Betriebssysteme",
- "GdI",
- "HM",
- "KomDat",
- "Programmierparadigmen",
- "SWT I",
- "Theoretische Grundlagen der Informatik",
- "TI",
+ #box(height: 2em, align(bottom)[
+ *Prüfungsdatum:*#input(name: "date")[
+ // Hier ist Platz für deinen Kommentar.
+ ]
+ ])
+ #box(height: 2em, align(bottom)[
+ *PrüferIn (Prof.):*#input(name: "examiner")[
+ // Hier ist Platz für deinen Kommentar.
+ ]
+ ])
+ #box(height: 2em, align(bottom)[
+ *BeisitzerIn:*#input(name: "assistant")[
+ // Hier ist Platz für deinen Kommentar.
+ ]
+ ])
+ ],
+ [
+ #block(width: 7cm, inset: (top: 1.5em, bottom: .3cm, rest: .2cm), align(center,
+ [
+ Barcode: #v(2pt)
+ #grid(
+ columns: (.1cm, 7.8cm, .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},
+ ))
+ ]))
+ *Fach:* \
+ #set box(height: .5em, inset: (left: 5pt))
+ #textarea(name: "lecture", {
+ // box[#checkbox(checked: true) Dein Fach]
+ box[#checkbox() Algo I]
+ box[#checkbox() Algo II]
+ box[#checkbox() Betriebssysteme]
+ box[#checkbox() GdI]
+ box[#checkbox() HM]
+ box[#checkbox() KomDat]
+ box[#checkbox() Programmierparadigmen]
+ box[#checkbox() SWT I]
+ box[#checkbox() Theoretische Grundlagen der Informatik]
+ box[#checkbox() TI]
+ })
+ ]
)
-#for (module) in modules {box(inset: (right: 5pt))[#checkbox(false) #module]}
-])
-#table(columns: (7.4cm,2.4cm,8.2cm),
-table.header(
+
+#table(columns: (7.4cm,2.4cm,8.2cm), table.header(
[Veranstaltung ],[Jahr],[regelmäßig besucht?]),
- [*Vorlesung*#v(.2cm)],[ ],[ ],
- [*Übung* #v(.2cm)],[ ],[ ],
- [*Tutorium* #v(.2cm)],[ ],[ ],
-)
+ [Vorlesung ],[ ],[ ],
+ [Übung ],[ ],[ ],
+ [Tutorium ],[ ],[ ],
+) <attendance>
-#grid(columns: 2*(1fr,), grid.vline(x:1), inset: (y: .5cm),
- [*Bestanden? #checkbox(bestanden == true) Ja / #checkbox(bestanden == false) Nein*],
+#grid(columns: 2*(1fr,), inset: (y: .5cm), grid.vline(x:1),
+ textarea(name: "did_pass")[
+ *Bestanden?
+ #checkbox(checked: false) Ja /
+ #checkbox(checked: false) Nein*
+ ],
box(width: 6cm)[
- *Prüfungsdauer: #box(width: 1fr, repeat[.])
- #if (pruefungsdauer_minuten > 0) {pruefungsdauer_minuten}
+ *Prüfungsdauer: #input(name: "exam_duration")[
+ // Hier ist Platz für deinen Kommentar.
+ ]
Minuten*
-])
+ ]
+)
#grid(columns: 2*(1fr,), rows: (3.5cm,2.8cm,7.3cm), grid.vline(x:1),
-[
- #emoji.pencil Wie lange und wie hast Du Dich
- #underline[alleine bzw. mit anderen vorbereitet]?
-],
-grid.cell(rowspan: 2)[
- #emoji.pencil Welche #underline[Tips zur Vorbereitung] kannst Du geben? \
- #text(size: 8.5pt)[(Wichtige / Unwichtige Teile des Stoffes, gute Bücher / Skripten, Lernstil)]
-],
-[
- #emoji.pencil Fanden vor der Prüfung #underline[Absprachen] zu Form oder
- Inhalt statt? Wurden sie #underline[eingehalten]?
-],
-[
- #emoji.pencil Kannst Du Ratschläge für das #underline[Verhalten in der Prüfung] geben?
-],
-[
- #emoji.pencil Wie war der #underline[Prüfungsstil des Prüfers / der Prüferin?] \
- #text(size: 8.5pt)[(Prüfungsathmosphäre, (un)klare Fragestellungen, Fragen nach \
- Einzelheiten oder eher größeren Zusammenhängen, kamen häufiger Zwischenfragen
- oder ließ er/sie Dich erzählen, wurde Dir weitergeholfen, wurde in Wissenslücken
- gebohrt?)]
-]
+ [
+ #emoji.pencil Wie lange und wie hast Du Dich \
+ #underline[alleine bzw. mit anderen vorbereitet]?
+ #textarea(name: "preparation_time")[
+ // Hier ist Platz für deinen Kommentar.
+ ]
+ ],
+ grid.cell(rowspan: 2)[
+ #emoji.pencil Welche #underline[Tips zur Vorbereitung] kannst Du geben? \
+ #text(size: 8.5pt)[(Wichtige / Unwichtige Teile des Stoffes, gute Bücher / Skripten, Lernstil)]
+ #textarea(name: "preparations")[
+ // Hier ist Platz für deinen Kommentar.
+ ]
+ ],
+ [
+ #emoji.pencil Fanden vor der Prüfung #underline[Absprachen] zu Form oder
+ Inhalt statt? Wurden sie #underline[eingehalten]?
+ #textarea(name: "agreements")[
+ // Hier ist Platz für deinen Kommentar.
+ ]
+ ],
+ [
+ #emoji.pencil Kannst Du Ratschläge für das \ #underline[Verhalten in der Prüfung] geben?
+ #textarea(name: "examinee_behavior")[
+ // Hier ist Platz für deinen Kommentar.
+ ]
+ ],
+ [
+ #emoji.pencil Wie war der #underline[Prüfungsstil des Prüfers / der Prüferin?] \
+ #text(size: 8.5pt)[
+ (Prüfungsathmosphäre, (un)klare Fragestellungen, Fragen nach \
+ Einzelheiten oder eher größeren Zusammenhängen, kamen häufiger
+ Zwischenfragen oder ließ er/sie Dich erzählen, wurde Dir weitergeholfen,
+ wurde in Wissenslücken gebohrt?)
+ ]
+ #textarea(name: "examiner_behavior")[
+ // Hier ist Platz für deinen Kommentar.
+ ]
+ ]
)
#line(length: 100%, stroke: .5pt)
#v(2pt)
-#[
- #text(size: 13pt)[*Inhalte der Prüfung:*] $-->$ Bitte auf die Rückseite und weitere Blätter!
- #v(1.2em)
+#text(size: 13pt)[*Inhalte der Prüfung:*] $-->$ Bitte auf die Rückseite und weitere Blätter!
+#v(1.2em)
+
+#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?
- #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?
-]
+#colbreak()
+// Hier ist Platz für deinen Kommentar.
diff --git a/muendliche-nachpruefung/lib.typ b/muendliche-nachpruefung/lib.typ
index 46b6452..5e725e8 100644
--- a/muendliche-nachpruefung/lib.typ
+++ b/muendliche-nachpruefung/lib.typ
@@ -32,142 +32,45 @@
],
doc
) = [
- #set page("a4", margin: (top: 1cm, bottom: 0cm, rest: 1.55cm))
- #set text(lang: "de", size: 10.5pt)
- #page[
- #set par(justify: true, leading: .5em, spacing: 0.5em)
- #set block(spacing: 0pt)
- #set table(inset: (top: 2pt, bottom: 4pt, x: 8pt), stroke: .5pt)
- #set grid(inset: (y: 3pt, x: 6pt))
- #set grid.vline(stroke: .5pt)
- #set linebreak(justify: true)
- #let checkbox(b) = if (b) {$times.square$} else {$square$}
- #let input(width: 1fr, body) = box(width: width, inset: (bottom: 2pt), baseline: 2pt, stroke: (bottom: (dash: "dotted")),align(right, body))
- #show emoji.pencil: "✎"
+ #let checkbox(checked: false) = if (checked) {$times.square$} else {$square$}
- #grid(columns: (2cm, 15cm), align: bottom,
- box(inset: (x: 3pt), image(width: 1.3cm, "fsmi-logo.svg")),
- [
- #set text(size: 15pt)
- #set par(spacing: 3pt)
- Fragebogen der Fachschaft zu
-
- *mündlichen Vordiplomsprüfungen* im Informatikstudium
- ])
- #grid(columns: 2*(1fr,), grid.vline(x:1), [
- Dieser Fragebogen gibt den KommilitonInnen, die nach
- Dir die Prüfung ablegen wollen, einen Einblick in Ab-
- lauf und Inhalt der Prüfung. Das erleichtert die Vorbe-
- reitung.
-
- Bitte verwende zum Ausfüllen einen schwarzen Stift.
-
- Das erleichtert das Einscannen.
-
- #let pruefungsrahmen = (
- "Prüfungsdatum": if date.year() > 0 {date.display("[day].[month].[year]")},
- "PrüferIn (Prof.)": examiner,
- "BeisitzerIn": assistant,
- )
- #for (key,value) in pruefungsrahmen {
- box(height: 2em, align(bottom)[*#key:*#input(value)])
- }
-
- ],
- [
- #block(width: 7cm, inset: (top: 1.5em, bottom: .3cm, rest: .2cm), align(center,
- [
- Barcode: #v(2pt)
- #grid(
- columns: (.1cm, 7.8cm, .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},
- ))
- ]))
- *Fach:* \
- #v(-2pt)
- #let modules = if lecture.len() > 0 {(lecture,)} else {(
- "Algo I",
- "Algo II",
- "Betriebssysteme",
- "GdI",
- "HM",
- "KomDat",
- "Programmierparadigmen",
- "SWT I",
- "Theoretische Grundlagen der Informatik",
- "TI",
- )}
- #for module in modules.flatten() {
- box(height: .5em, inset: (left: 5pt))[#checkbox(lecture.len() > 0) #module]
- }
- ])
+ #let events = (
+ "Vorlesung": (year: "", did_attend: ""),
+ "Übung": (year: "", did_attend: ""),
+ "Tutorium": (year: "", did_attend: ""),
+ ..attendance
+ )
- #let events = (
- "Vorlesung": (year: "", did_attend: ""),
- "Übung": (year: "", did_attend: ""),
- "Tutorium": (year: "", did_attend: ""),
- ..attendance
- )
- #table(columns: (7.4cm,2.4cm,8.2cm),
- table.header(
- [Veranstaltung ],[Jahr],[regelmäßig besucht?]),
+ #show <date>: if date.year() > 0 {date.display("[day].[month].[year]")}
+ #show <examiner>: examiner
+ #show <assistant>: assistant
+ #show <exam_duration>: if exam_duration.minutes() > 0 [#exam_duration.minutes()]
+ #show <preparation_time>: preparation_time
+ #show <agreements>: agreements
+ #show <preparations>: preparations
+ #show <examinee_behavior>: examinee_behavior
+ #show <examiner_behavior>: examiner_behavior
+ #show <did_pass>: [
+ *Bestanden?
+ #checkbox(checked: did_pass == true) Ja /
+ #checkbox(checked: did_pass == false) Nein*
+ ]
+ #show <lecture>: it => if lecture.len() > 0 {
+ box[#checkbox(checked: true) #lecture]
+ } else {it}
+ #show <attendance>: it => {
+ let g = it.fields()
+ let _ = g.remove("children")
+ let _ = g.remove("label")
+ table(..g,
+ ..it.fields().children.at(0).children,
..events.pairs().map(((location, (year, did_attend))) =>
- (box(height: 1.2em)[*#location*], [#year], [#did_attend])
- ).flatten()
+ (box(height: 1.2em)[*#location*], [#year], [#did_attend])).flatten()
)
+ }
- #grid(columns: 2*(1fr,), grid.vline(x:1), inset: (y: .5cm),
- [*Bestanden? #checkbox(did_pass == true) Ja / #checkbox(did_pass == false) Nein*],
- box(width: 6cm)[
- *Prüfungsdauer: #input[
- #if (exam_duration.minutes() > 0) {exam_duration.minutes()}
- ]
- Minuten*
- ])
- #grid(columns: 2*(1fr,), rows: (3.5cm,2.8cm,7.3cm), grid.vline(x:1),
- [
- #emoji.pencil Wie lange und wie hast Du Dich \
- #underline[alleine bzw. mit anderen vorbereitet]?
- #preparation_time
- ],
- grid.cell(rowspan: 2)[
- #emoji.pencil Welche #underline[Tips zur Vorbereitung] kannst Du geben? \
- #text(size: 8.5pt)[(Wichtige / Unwichtige Teile des Stoffes, gute Bücher / Skripten, Lernstil)]
- #preparations
- ],
- [
- #emoji.pencil Fanden vor der Prüfung #underline[Absprachen] zu Form oder
- Inhalt statt? Wurden sie #underline[eingehalten]?
- #agreements
- ],
- [
- #emoji.pencil Kannst Du Ratschläge für das \ #underline[Verhalten in der Prüfung] geben?
- #examinee_behavior
- ],
- [
- #emoji.pencil Wie war der #underline[Prüfungsstil des Prüfers / der Prüferin?] \
- #text(size: 8.5pt)[(Prüfungsathmosphäre, (un)klare Fragestellungen, Fragen nach \
- Einzelheiten oder eher größeren Zusammenhängen, kamen häufiger Zwischenfragen
- oder ließ er/sie Dich erzählen, wurde Dir weitergeholfen, wurde in Wissenslücken
- gebohrt?)]
- #examiner_behavior
- ])
- #line(length: 100%, stroke: .5pt)
- #v(2pt)
- #text(size: 13pt)[*Inhalte der Prüfung:*] $-->$ Bitte auf die Rückseite und weitere Blätter!
- #v(1.2em)
+ #include "bachelor.typ"
- #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
]