From 9ac7b58b29c67f81279d7039609836da3eb9f30b Mon Sep 17 00:00:00 2001 From: orangerot Date: Sun, 31 Aug 2025 01:11:19 +0200 Subject: style: uniform naming convention with directories, files and variables --- README.md | 50 ++--- bachelor.typ | 124 ----------- fsmi-logo.svg | 234 --------------------- lib.typ | 169 --------------- muendliche-nachpruefung/README.md | 91 ++++++++ muendliche-nachpruefung/bachelor.typ | 124 +++++++++++ muendliche-nachpruefung/fsmi-logo.svg | 234 +++++++++++++++++++++ muendliche-nachpruefung/lib.typ | 169 +++++++++++++++ .../muendliche-nachpruefung.typ | 40 ++++ muendliche-pruefung/README.md | 87 ++++++++ muendliche-pruefung/fsmi-logo.svg | 234 +++++++++++++++++++++ muendliche-pruefung/lib.typ | 199 ++++++++++++++++++ muendliche-pruefung/muendliche-pruefung.typ | 45 ++++ mundl-prufung/README.md | 87 -------- mundl-prufung/fsmi-logo.svg | 234 --------------------- mundl-prufung/lib.typ | 199 ------------------ mundl-prufung/prufung.typ | 45 ---- nachprufung.typ | 40 ---- 18 files changed, 1236 insertions(+), 1169 deletions(-) delete mode 100644 bachelor.typ delete mode 100644 fsmi-logo.svg delete mode 100644 lib.typ create mode 100644 muendliche-nachpruefung/README.md create mode 100644 muendliche-nachpruefung/bachelor.typ create mode 100644 muendliche-nachpruefung/fsmi-logo.svg create mode 100644 muendliche-nachpruefung/lib.typ create mode 100644 muendliche-nachpruefung/muendliche-nachpruefung.typ create mode 100644 muendliche-pruefung/README.md create mode 100644 muendliche-pruefung/fsmi-logo.svg create mode 100644 muendliche-pruefung/lib.typ create mode 100644 muendliche-pruefung/muendliche-pruefung.typ delete mode 100644 mundl-prufung/README.md delete mode 100644 mundl-prufung/fsmi-logo.svg delete mode 100644 mundl-prufung/lib.typ delete mode 100644 mundl-prufung/prufung.typ delete mode 100644 nachprufung.typ diff --git a/README.md b/README.md index 98c27d0..068de55 100644 --- a/README.md +++ b/README.md @@ -1,44 +1,20 @@ -# Vorlage mündliche Nachprüfung (3. Versuch) in Typst +# Protokoll-Vorlagen in Typst -Dieser Fragebogen gibt den KommilitonInnen, die nach Dir die Prüfung ablegen -wollen, einen Einblick in Ablauf und Inhalt der Prüfung. Das erleichtert die -Vorbereitung. +Hier finden sich Vorlagen für Prüfungsprotokolle am KIT für die Fachschaft +Mathematik/Informatik, neu erstellt in dem modernen Textsatzsystem +[Typst](https://typst.app/) +und inspiriert von den +[Vorlagen in LaTeX](https://www.fsmi.org/studium/pruefungen/muendliche-pruefungen/#protokoll-vorlagen). -Für Informationen zu dem Textsatzsystem Typst am besten in die [Dokumentation](https://typst.app/docs/) -schauen. +## Struktur -## Nutzung - -Es ist der Typst-Compiler nötig. Dieser ist für eine vielzahl an Betriebssystemen -verfügbar. - -Die Vorlage enthält zwei Optionen den Fragebogen zu erstellen. Empfohlen ist das -Erstellen mit Template. Dafür müssen lediglich die Argumente in der Datei -`nachprufung.typ` ausgefüllt werden. Um den Fragebogen schlussendlich zu bauen -führt man folgenden Befehl aus: -```sh -typst compile nachprufung.typ -``` +In den Unterordern finden sich jeweils die Vorlagen für -Für Personen, welche in die Struktur des Dokuments eintauchen wollen gibt es die -Datei `bachelor.typ`. Diese ist der Inspiration in TeX vom Aufbau ähnlich. Das -befüllen des Fragebogens ist hier etwas schwerer, weil erst die richtige Stelle -im Code gefunden werden muss. +- **Vorlagen mündliche Nachprüfung (3. Versuch)** `muendliche-nachpruefung/` +- **Vorlagen mündliche Prüfung (Bachelor, Master, Diplom)** `muendliche-pruefung/` -Um die Änderungen direkt beim Speichern zu sehen, kann man folgenden Befehl -nutzen: -```sh -typst watch nachprufung.typ -``` - -## Hintergrund - -Diese Vorlage ist stark Inspiriert von der [Protokollvorlage Nachprüfung -(TeX)](https://legacy.fsmi.org/Pruefungen/Vorlagen/Info/bachelor.tgz) von der -Liste an [Protokollvorlagen](https://www.fsmi.org/studium/pruefungen/muendliche-pruefungen/) der Fachschaft Mathematik/Informatik des KIT. +## Nutzung -Bei der Erstellung der Vorlage wurde darauf geachtet, dass die PDF-Ausgabe von -Typst möglichst ähnlich zu der PDF-Ausgabe der Inspiration in TeX ist. Dabei -werden diverse Layoutelemente von Typst verwendet, welche das Layout mit Tabellen in -TeX ersetzen. +Wie die Vorlagen verwendet werden, wird in der `README.md` in den jeweiligen +Unterordern erläutert. diff --git a/bachelor.typ b/bachelor.typ deleted file mode 100644 index b753b38..0000000 --- a/bachelor.typ +++ /dev/null @@ -1,124 +0,0 @@ -#set page("a4", margin: (top: 1cm, bottom: 0cm, rest: 1.55cm)) -#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 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) -#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 - - *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. - -#for (key,value) in pruefungsrahmen {box(inset: (top: 1.2em), [*#key:*#box(width: 1fr, repeat[.])#value])} - -], -[ -#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", -) -#for (module) in modules {box(inset: (right: 5pt))[#checkbox(false) #module]} -]) -#table(columns: (7.4cm,2.4cm,8.2cm), -table.header( - [Veranstaltung ],[Jahr],[regelmäßig besucht?]), - [*Vorlesung*#v(.2cm)],[ ],[ ], - [*Übung* #v(.2cm)],[ ],[ ], - [*Tutorium* #v(.2cm)],[ ],[ ], -) - -#grid(columns: 2*(1fr,), grid.vline(x:1), inset: (y: .5cm), - [*Bestanden? #checkbox(bestanden == true) Ja / #checkbox(bestanden == false) Nein*], - box(width: 6cm)[ - *Prüfungsdauer: #box(width: 1fr, repeat[.]) - #if (pruefungsdauer_minuten > 0) {pruefungsdauer_minuten} - 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?)] -] -) -#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? -] - diff --git a/fsmi-logo.svg b/fsmi-logo.svg deleted file mode 100644 index 438660d..0000000 --- a/fsmi-logo.svg +++ /dev/null @@ -1,234 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib.typ b/lib.typ deleted file mode 100644 index fd2220a..0000000 --- a/lib.typ +++ /dev/null @@ -1,169 +0,0 @@ -#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 - attendance: (: - /* 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: ""), - ..attendance - ) - #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/muendliche-nachpruefung/README.md b/muendliche-nachpruefung/README.md new file mode 100644 index 0000000..a56cbcb --- /dev/null +++ b/muendliche-nachpruefung/README.md @@ -0,0 +1,91 @@ +# Vorlage mündliche Nachprüfung (3. Versuch) in Typst + +Dieser Fragebogen gibt den KommilitonInnen, die nach Dir die Prüfung ablegen +wollen, einen Einblick in Ablauf und Inhalt der Prüfung. Das erleichtert die +Vorbereitung. + +Für Informationen zu dem Textsatzsystem Typst am besten in die +[Dokumentation](https://typst.app/docs/) +schauen. + +## Nutzung + +Es ist der Typst-Compiler nötig. Dieser ist für eine vielzahl an Betriebssystemen +verfügbar. + +Die Vorlage enthält zwei Optionen den Fragebogen zu erstellen. Empfohlen ist das +Erstellen mit Template. Dafür müssen lediglich die Argumente in der Datei +`muendliche-nachpruefung.typ` ausgefüllt werden. +```typst +#import "lib.typ": oral-post-exam + +#show: oral-post-exam.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 + attendance: (: + /* 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 +``` + +Um den Fragebogen schlussendlich zu bauen +führt man folgenden Befehl aus: +```sh +typst compile muendliche-nachpruefung.typ +``` + +Für Personen, welche in die Struktur des Dokuments eintauchen wollen gibt es die +Datei `bachelor.typ`. Diese ist der Inspiration in TeX vom Aufbau ähnlich. Das +befüllen des Fragebogens ist hier etwas schwerer, weil erst die richtige Stelle +im Code gefunden werden muss. + +Um die Änderungen direkt beim Speichern zu sehen, kann man folgenden Befehl +nutzen: +```sh +typst watch muendliche-nachpruefung.typ +``` + +## Hintergrund + +Diese Vorlage ist stark Inspiriert von der +[Protokollvorlage Nachprüfung (TeX)](https://legacy.fsmi.org/Pruefungen/Vorlagen/Info/bachelor.tgz) +von der +Liste an +[Protokollvorlagen](https://www.fsmi.org/studium/pruefungen/muendliche-pruefungen/#protokoll-vorlagen) +der Fachschaft Mathematik/Informatik des KIT. + +Bei der Erstellung der Vorlage wurde darauf geachtet, dass die PDF-Ausgabe von +Typst möglichst ähnlich zu der PDF-Ausgabe der Inspiration in TeX ist. Dabei +werden diverse Layoutelemente von Typst verwendet, welche das Layout mit Tabellen in +TeX ersetzen. + diff --git a/muendliche-nachpruefung/bachelor.typ b/muendliche-nachpruefung/bachelor.typ new file mode 100644 index 0000000..b753b38 --- /dev/null +++ b/muendliche-nachpruefung/bachelor.typ @@ -0,0 +1,124 @@ +#set page("a4", margin: (top: 1cm, bottom: 0cm, rest: 1.55cm)) +#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 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) +#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 + + *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. + +#for (key,value) in pruefungsrahmen {box(inset: (top: 1.2em), [*#key:*#box(width: 1fr, repeat[.])#value])} + +], +[ +#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", +) +#for (module) in modules {box(inset: (right: 5pt))[#checkbox(false) #module]} +]) +#table(columns: (7.4cm,2.4cm,8.2cm), +table.header( + [Veranstaltung ],[Jahr],[regelmäßig besucht?]), + [*Vorlesung*#v(.2cm)],[ ],[ ], + [*Übung* #v(.2cm)],[ ],[ ], + [*Tutorium* #v(.2cm)],[ ],[ ], +) + +#grid(columns: 2*(1fr,), grid.vline(x:1), inset: (y: .5cm), + [*Bestanden? #checkbox(bestanden == true) Ja / #checkbox(bestanden == false) Nein*], + box(width: 6cm)[ + *Prüfungsdauer: #box(width: 1fr, repeat[.]) + #if (pruefungsdauer_minuten > 0) {pruefungsdauer_minuten} + 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?)] +] +) +#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? +] + diff --git a/muendliche-nachpruefung/fsmi-logo.svg b/muendliche-nachpruefung/fsmi-logo.svg new file mode 100644 index 0000000..438660d --- /dev/null +++ b/muendliche-nachpruefung/fsmi-logo.svg @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/muendliche-nachpruefung/lib.typ b/muendliche-nachpruefung/lib.typ new file mode 100644 index 0000000..cf3e8fc --- /dev/null +++ b/muendliche-nachpruefung/lib.typ @@ -0,0 +1,169 @@ +#let oral-post-exam( + 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 + attendance: (: + /* 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: ""), + ..attendance + ) + #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/muendliche-nachpruefung/muendliche-nachpruefung.typ b/muendliche-nachpruefung/muendliche-nachpruefung.typ new file mode 100644 index 0000000..888e89a --- /dev/null +++ b/muendliche-nachpruefung/muendliche-nachpruefung.typ @@ -0,0 +1,40 @@ +#import "lib.typ": oral-post-exam + +#show: oral-post-exam.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 + attendance: (: + /* 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 + diff --git a/muendliche-pruefung/README.md b/muendliche-pruefung/README.md new file mode 100644 index 0000000..6fb0f55 --- /dev/null +++ b/muendliche-pruefung/README.md @@ -0,0 +1,87 @@ +# Vorlagen mündliche Prüfung (Bachelor, Master, Diplom) in Typst + +Dieser Fragebogen gibt den KommilitonInnen, die nach Dir die Prüfung ablegen +wollen, einen Einblick in Ablauf und Inhalt der Prüfung. Das erleichtert die +Vorbereitung. + +Für Informationen zu dem Textsatzsystem Typst am besten in die [Dokumentation](https://typst.app/docs/) +schauen. + +## Nutzung + +Es ist der Typst-Compiler nötig. Dieser ist für eine vielzahl an Betriebssystemen +verfügbar. + +Zum Erstellen des Dokumentes müssen lediglich die Argumente in der Datei +`muendliche-pruefung.typ` ausgefüllt werden. + +```typst +#import "lib.typ": oral-exam, kind + +#show: oral-exam.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? + ], + 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, [ // true, false + // Kannst du ihn / sie weiterempfehlen? Warum? + ]), + examinee_behavior: [ + // Kannst Du Ratschläge Verhalten in der Prüfung geben? + ], +) + +// Schreibe bitte möglichst viele Fragen und Antworten auf. +// Hier ist Platz für deinen Kommentar +``` + +Um den Fragebogen schlussendlich zu bauen führt man folgenden Befehl aus: +```sh +typst compile muendliche-pruefung.typ +``` + +Um die Änderungen direkt beim Speichern zu sehen, kann man folgenden Befehl +nutzen: +```sh +typst watch muendliche-pruefung.typ +``` + +## Hintergrund + +Diese Vorlage ist stark Inspiriert von der [Protokollvorlage mündliche Prüfung +(TeX)](https://legacy.fsmi.org/Pruefungen/Vorlagen/Info/muendlich-neu.tar.gz) +von der Liste an [Protokollvorlagen](https://www.fsmi.org/studium/pruefungen/muendliche-pruefungen/#protokoll-vorlagen) +der Fachschaft Mathematik/Informatik des KIT. + +Bei der Erstellung der Vorlage wurde darauf geachtet, dass die PDF-Ausgabe von +Typst möglichst ähnlich zu der PDF-Ausgabe der Inspiration in TeX ist. Dabei +werden diverse Layoutelemente von Typst verwendet, welche das Layout mit Tabellen in +TeX ersetzen. + diff --git a/muendliche-pruefung/fsmi-logo.svg b/muendliche-pruefung/fsmi-logo.svg new file mode 100644 index 0000000..438660d --- /dev/null +++ b/muendliche-pruefung/fsmi-logo.svg @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/muendliche-pruefung/lib.typ b/muendliche-pruefung/lib.typ new file mode 100644 index 0000000..b95d165 --- /dev/null +++ b/muendliche-pruefung/lib.typ @@ -0,0 +1,199 @@ +#let kind = (: + "wahlpflicht": "Wahlpflicht", + "vertiefungsfach": "Vertiefungsfach", + "ergaenzungsfach": "Ergänzungsfach", + "none": "" +) + +#let oral-exam( + 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/muendliche-pruefung/muendliche-pruefung.typ b/muendliche-pruefung/muendliche-pruefung.typ new file mode 100644 index 0000000..ef2ea4d --- /dev/null +++ b/muendliche-pruefung/muendliche-pruefung.typ @@ -0,0 +1,45 @@ +#import "lib.typ": oral-exam, kind + +#show: oral-exam.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? + ], + 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, [ // true, false + // Kannst du ihn / sie weiterempfehlen? Warum? + ]), + examinee_behavior: [ + // Kannst Du Ratschläge Verhalten in der Prüfung geben? + ], +) + +// Schreibe bitte möglichst viele Fragen und Antworten auf. +// Hier ist Platz für deinen Kommentar + diff --git a/mundl-prufung/README.md b/mundl-prufung/README.md deleted file mode 100644 index bc8fd83..0000000 --- a/mundl-prufung/README.md +++ /dev/null @@ -1,87 +0,0 @@ -# Vorlagen mündliche Prüfung (Bachelor, Master, Diplom) in Typst - -Dieser Fragebogen gibt den KommilitonInnen, die nach Dir die Prüfung ablegen -wollen, einen Einblick in Ablauf und Inhalt der Prüfung. Das erleichtert die -Vorbereitung. - -Für Informationen zu dem Textsatzsystem Typst am besten in die [Dokumentation](https://typst.app/docs/) -schauen. - -## Nutzung - -Es ist der Typst-Compiler nötig. Dieser ist für eine vielzahl an Betriebssystemen -verfügbar. - -Zum Erstellen des Dokumentes müssen lediglich die Argumente in der Datei -`nachprufung.typ` ausgefüllt werden. - -```typst -#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? - ], - 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, [ // true, false - // Kannst du ihn / sie weiterempfehlen? Warum? - ]), - examinee_behavior: [ - // Kannst Du Ratschläge Verhalten in der Prüfung geben? - ], -) - -// Schreibe bitte möglichst viele Fragen und Antworten auf. -// Hier ist Platz für deinen Kommentar -``` - -Um den Fragebogen schlussendlich zu bauen führt man folgenden Befehl aus: -```sh -typst compile prufung.typ -``` - -Um die Änderungen direkt beim Speichern zu sehen, kann man folgenden Befehl -nutzen: -```sh -typst watch prufung.typ -``` - -## Hintergrund - -Diese Vorlage ist stark Inspiriert von der [Protokollvorlage mündliche Prüfung -(TeX)](https://legacy.fsmi.org/Pruefungen/Vorlagen/Info/muendlich-neu.tar.gz) -von der Liste an [Protokollvorlagen](https://www.fsmi.org/studium/pruefungen/muendliche-pruefungen/#protokoll-vorlagen) -der Fachschaft Mathematik/Informatik des KIT. - -Bei der Erstellung der Vorlage wurde darauf geachtet, dass die PDF-Ausgabe von -Typst möglichst ähnlich zu der PDF-Ausgabe der Inspiration in TeX ist. Dabei -werden diverse Layoutelemente von Typst verwendet, welche das Layout mit Tabellen in -TeX ersetzen. - diff --git a/mundl-prufung/fsmi-logo.svg b/mundl-prufung/fsmi-logo.svg deleted file mode 100644 index 438660d..0000000 --- a/mundl-prufung/fsmi-logo.svg +++ /dev/null @@ -1,234 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mundl-prufung/lib.typ b/mundl-prufung/lib.typ deleted file mode 100644 index 7349c76..0000000 --- a/mundl-prufung/lib.typ +++ /dev/null @@ -1,199 +0,0 @@ -#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 deleted file mode 100644 index a661177..0000000 --- a/mundl-prufung/prufung.typ +++ /dev/null @@ -1,45 +0,0 @@ -#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? - ], - 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, [ // true, false - // Kannst du ihn / sie weiterempfehlen? Warum? - ]), - examinee_behavior: [ - // Kannst Du Ratschläge Verhalten in der Prüfung geben? - ], -) - -// Schreibe bitte möglichst viele Fragen und Antworten auf. -// Hier ist Platz für deinen Kommentar - diff --git a/nachprufung.typ b/nachprufung.typ deleted file mode 100644 index 9691e46..0000000 --- a/nachprufung.typ +++ /dev/null @@ -1,40 +0,0 @@ -#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 - attendance: (: - /* 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 - -- cgit v1.2.3