summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib.typ169
-rw-r--r--nachprufung.typ40
2 files changed, 209 insertions, 0 deletions
diff --git a/lib.typ b/lib.typ
new file mode 100644
index 0000000..e61092f
--- /dev/null
+++ b/lib.typ
@@ -0,0 +1,169 @@
+#let nachprufung(
+ lecture: "", // Fach
+ date: datetime(year: 0, month: 1, day: 1), // Prüfungsdatum
+ examiner: "", // PrüferIn (Prof)
+ assistant: "", // BeisitzerIn
+ did_pass: none, // Bestanden? true || false
+ exam_duration: duration(minutes: 0), // Prüfungsdauer
+ attendence: (:
+ /* Veranstaltung, Jahr, regelmäßig besucht? */
+ "Vorlesung": (year: "", did_attend: ""),
+ "Übung": (year: "", did_attend: ""),
+ "Tutorium": (year: "", did_attend: ""),
+ ),
+ 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?
+ ],
+ examinee_behavior: [
+ // Kannst Du Ratschläge Verhalten in der Prüfung geben?
+ ],
+ 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: "✎"
+
+ #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: ""),
+ ..attendence
+ )
+ #table(columns: (7.4cm,2.4cm,8.2cm),
+ table.header(
+ [Veranstaltung ],[Jahr],[regelmäßig besucht?]),
+ ..events.pairs().map(((location, (year, did_attend))) =>
+ (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)
+
+ #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/nachprufung.typ b/nachprufung.typ
new file mode 100644
index 0000000..eb4bd66
--- /dev/null
+++ b/nachprufung.typ
@@ -0,0 +1,40 @@
+#import "lib.typ": nachprufung
+
+#show: nachprufung.with(
+ lecture: "", // Fach
+ date: datetime(year: 0, month: 1, day: 1), // Prüfungsdatum
+ examiner: "", // PrüferIn (Prof)
+ assistant: "", // BeisitzerIn
+ did_pass: none, // Bestanden? true || false
+ exam_duration: duration(minutes: 0), // Prüfungsdauer
+ attendence: (:
+ /* Veranstaltung, Jahr, regelmäßig besucht? */
+ "Vorlesung": (year: "", did_attend: ""),
+ "Übung": (year: "", did_attend: ""),
+ "Tutorium": (year: "", did_attend: ""),
+ ),
+ preparation_time: [
+ // Wie lange und wie hast alleine bzw. mit anderen vorbereitet?
+ // Hier ist Platz für deinen Kommentar
+ ],
+ agreements: [
+ // Fanden vor der Prüfung Absprachen zu Form oder Inhalt statt? Wurden sie eingehalten?
+ // Hier ist Platz für deinen Kommentar
+ ],
+ preparations: [
+ // Welche Tips zur Vorbereitung kannst Du geben?
+ // Hier ist Platz für deinen Kommentar
+ ],
+ examiner_behavior: [
+ // Wie war der Prüfungsstil des Prüfers / der Prüferin?
+ // Hier ist Platz für deinen Kommentar
+ ],
+ examinee_behavior: [
+ // Kannst Du Ratschläge Verhalten in der Prüfung geben?
+ // Hier ist Platz für deinen Kommentar
+ ],
+)
+
+// Schreibe bitte möglichst viele Fragen und Antworten auf.
+// Hier ist Platz für deinen Kommentar
+