summaryrefslogtreecommitdiff
path: root/muendliche-nachpruefung/lib.typ
diff options
context:
space:
mode:
Diffstat (limited to 'muendliche-nachpruefung/lib.typ')
-rw-r--r--muendliche-nachpruefung/lib.typ163
1 files changed, 33 insertions, 130 deletions
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
]