Compare commits
2 commits
9c8819f3fe
...
f028dde18d
Author | SHA1 | Date | |
---|---|---|---|
![]() |
f028dde18d | ||
![]() |
f8b904e1a5 |
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
*.pdf
|
21
LICENSE
Normal file
21
LICENSE
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2025 Gero Beckmann <orangerot@orangerot.dev>
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
|
@ -1,3 +1,7 @@
|
||||||
|
// SPDX-FileCopyrightText: 2025 Gero Beckmann <orangerot@orangerot.dev>
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#let oral-post-exam(
|
#let oral-post-exam(
|
||||||
lecture: "", // Fach
|
lecture: "", // Fach
|
||||||
date: datetime(year: 0, month: 1, day: 1), // Prüfungsdatum
|
date: datetime(year: 0, month: 1, day: 1), // Prüfungsdatum
|
||||||
|
|
110
muendliche-pruefung-mathematik/lib.typ
Normal file
110
muendliche-pruefung-mathematik/lib.typ
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
#let KIND = (:
|
||||||
|
"DIPLOM": "Diplomprüfung",
|
||||||
|
"STAATSEXAM": "Staatsexamensprüfung",
|
||||||
|
"STUDIENBEGLEITEND": "Studienbegleitende Prüfung",
|
||||||
|
"BACHELOR": "Bachelorprüfung",
|
||||||
|
"MASTER": "Masterprüfung",
|
||||||
|
"NONE": ""
|
||||||
|
)
|
||||||
|
|
||||||
|
#let oral-exam(
|
||||||
|
study: "", // Studiengang
|
||||||
|
lecture: "", // Fach
|
||||||
|
kind: KIND.NONE, // Prüfungsart (Diplom, Staatsexam, Studienbegleitend, Bachelor, Master)
|
||||||
|
date: datetime(year: 0, month: 1, day: 1), // Prüfungsdatum
|
||||||
|
examiner: "", // PrüferIn (Prof)
|
||||||
|
grade_received: 0.0, // Note
|
||||||
|
grade_reasonable: "", // War die Note angemessen?
|
||||||
|
exam_duration: duration(minutes: 0), // Prüfungsdauer
|
||||||
|
checked_knowledge_gaps: none, // Wurde Unwissen abgeprüft?
|
||||||
|
attendance: (
|
||||||
|
// Titel der Vorlesung, Dozent, Wann gehört, SWS, ECTS, LP
|
||||||
|
(lecture: "", lecturer: "", year: "", sws: "", ects: "", lp: ""),
|
||||||
|
(lecture: "", lecturer: "", year: "", sws: "", ects: "", lp: ""),
|
||||||
|
(lecture: "", lecturer: "", year: "", sws: "", ects: "", lp: ""),
|
||||||
|
(lecture: "", lecturer: "", year: "", sws: "", ects: "", lp: ""),
|
||||||
|
(lecture: "", lecturer: "", year: "", sws: "", ects: "", lp: ""),
|
||||||
|
),
|
||||||
|
attendance_worth: [
|
||||||
|
// Wie regelmäßig hast du die Lehrveranstaltungen besucht? Hat sich der
|
||||||
|
// Besuch/Nichtbesuch in der Prüfung positiv/negativ ausgewirkt?
|
||||||
|
],
|
||||||
|
literature: [
|
||||||
|
// Welche Literatur hast du benutzt (Bücher, Skripten, Vorlesungsmitschriften)?
|
||||||
|
],
|
||||||
|
preparation_time: [
|
||||||
|
// Hast du dich alleine/zu mehreren auf die Prüfung vorbereitet? Wie lange?
|
||||||
|
// Hat es etwas gebracht?
|
||||||
|
],
|
||||||
|
agreements: [
|
||||||
|
// Fanden vor der Prüfung Absprachen statt (Form, Inhalt, ...)?
|
||||||
|
// Wenn ja, welche? Wurden sie eingehalten?
|
||||||
|
],
|
||||||
|
preparations: [
|
||||||
|
// Welche Tipps zur Vorbereitung kannst du geben?
|
||||||
|
// (wichtige/unwichtige Teile des Stoffs, gute Literatur, Lernstil)
|
||||||
|
],
|
||||||
|
examiner_behavior: [
|
||||||
|
// Was kannst du zum Prüfungsstil des/der Prüfenden sagen?
|
||||||
|
// (Prüfungsatmosphäre, (un)klare Fragestellungen, Fragen nach Einzelheiten
|
||||||
|
// oder eher gröÿere Zusammenhänge, gezielte Zwischenfragen oder lässt
|
||||||
|
// er/sie dich erzählen, Weiterhelfen bei Unsicherheiten ...)
|
||||||
|
],
|
||||||
|
examiner_recommendation: (none, [
|
||||||
|
// Kannst du die Prüfenden weiterempfehlen?
|
||||||
|
]),
|
||||||
|
examinee_behavior: [
|
||||||
|
// Welche Ratschläge für das Verhalten in der Prüfung kannst du geben?
|
||||||
|
],
|
||||||
|
doc
|
||||||
|
) = [
|
||||||
|
#let checkbox(checked: false) = if (checked) {$times.square$} else {$square$}
|
||||||
|
#let input(width: 1fr, name: "", body) = box(width: width, height: 1em, inset: (bottom: 2pt), baseline: 2pt, stroke: (bottom: 0.5pt),align(right, [#body #label(name)]))
|
||||||
|
#let grid_arguments(it) = {
|
||||||
|
let g = it.fields()
|
||||||
|
let _ = g.remove("label")
|
||||||
|
let _ = g.remove("children")
|
||||||
|
return g
|
||||||
|
}
|
||||||
|
|
||||||
|
#show <study>: study
|
||||||
|
#show <lecture>: lecture
|
||||||
|
#show <date>: if date.year() > 0 {date.display("[day].[month].[year]")}
|
||||||
|
#show <examiner>: examiner
|
||||||
|
#show <literature>: literature
|
||||||
|
#show <preparation_time>: preparation_time
|
||||||
|
#show <attendance_worth>: attendance_worth
|
||||||
|
#show <agreements>: agreements
|
||||||
|
#show <preparations>: preparations
|
||||||
|
#show <exam_duration>: if exam_duration.minutes() > 0 {exam_duration.minutes()}
|
||||||
|
#show <examiner_behavior>: examiner_behavior
|
||||||
|
#show <examinee_behavior>: examinee_behavior
|
||||||
|
#show <grade_received>: if grade_received > 0.0 {str(grade_received+0.01).slice(0,3).replace(".",",")}
|
||||||
|
#show <grade_reasonable>: grade_reasonable
|
||||||
|
#show <examiner_recommendation>: examiner_recommendation.at(1)
|
||||||
|
#show <kind>: it => grid(..grid_arguments(it),
|
||||||
|
..KIND.values().filter(it => it != KIND.NONE).map(exam_kind => [
|
||||||
|
#checkbox(checked: kind == exam_kind) #exam_kind
|
||||||
|
]),
|
||||||
|
[#checkbox(checked: kind not in KIND.values() and kind != "")
|
||||||
|
#input(width: 1fr)[ #if kind not in KIND.values() [#kind] ]
|
||||||
|
]
|
||||||
|
)
|
||||||
|
#show <attendance>: it => table(..grid_arguments(it),
|
||||||
|
..it.fields().children.at(0).children,
|
||||||
|
..(attendance.map(lecture => lecture.values()).flatten() + 5*6*([],)).slice(0,count: 5*6)
|
||||||
|
)
|
||||||
|
#show <checked_knowledge_gaps>: [
|
||||||
|
#h(1fr)
|
||||||
|
#checkbox(checked: checked_knowledge_gaps == true) ja
|
||||||
|
#h(0.8cm)
|
||||||
|
#checkbox(checked: checked_knowledge_gaps == false) nein
|
||||||
|
]
|
||||||
|
|
||||||
|
#include "muendliche-pruefung.typ"
|
||||||
|
|
||||||
|
#doc
|
||||||
|
]
|
||||||
|
|
||||||
|
#oral-exam()[]
|
||||||
|
|
|
@ -8,7 +8,8 @@
|
||||||
|
|
||||||
#show heading: it => box(inset: (bottom: 1em), it)
|
#show heading: it => box(inset: (bottom: 1em), it)
|
||||||
#let checkbox(checked: false) = if (checked) {$times.square$} else {$square$}
|
#let checkbox(checked: false) = if (checked) {$times.square$} else {$square$}
|
||||||
#let input(width: 1fr, body) = box(width: width, height: 1em, inset: (bottom: 2pt), baseline: 2pt, stroke: (bottom: 0.5pt),align(right, body))
|
#let input(width: 1fr, name: "", body) = box(width: width, height: 1em, inset: (bottom: 2pt), baseline: 2pt, stroke: (bottom: 0.5pt),align(right, [#body #label(name)]))
|
||||||
|
#let textfield(..args, name: "", body) = block(..args)[#body #label(name)]
|
||||||
|
|
||||||
#v(4em)
|
#v(4em)
|
||||||
#align(center)[
|
#align(center)[
|
||||||
|
@ -17,7 +18,7 @@
|
||||||
#text(size: 16pt)[der Fachschaft Mathematik]
|
#text(size: 16pt)[der Fachschaft Mathematik]
|
||||||
|
|
||||||
#v(3.5em)
|
#v(3.5em)
|
||||||
#block(width: 14cm)[
|
#textfield(width: 14cm)[
|
||||||
#align(left)[
|
#align(left)[
|
||||||
#par(first-line-indent: (amount: 0.5em, all: true))[
|
#par(first-line-indent: (amount: 0.5em, all: true))[
|
||||||
Dieser Fragebogen dient dazu, den Studierenden, die nach dir die Prüfung
|
Dieser Fragebogen dient dazu, den Studierenden, die nach dir die Prüfung
|
||||||
|
@ -36,15 +37,15 @@
|
||||||
[
|
[
|
||||||
_Welchen Studiengang/Profl studierst du?_
|
_Welchen Studiengang/Profl studierst du?_
|
||||||
],
|
],
|
||||||
input[
|
input(name: "study")[
|
||||||
// Hier ist Platz für deinen Kommentar.
|
// Hier ist Platz für deinen Kommentar.
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
_Wann hast du die Prüfung abgelegt (Monat/Jahr)?_
|
_Wann hast du die Prüfung abgelegt (Monat/Jahr)?_
|
||||||
],
|
],
|
||||||
input[
|
input(name: "date")[
|
||||||
// Hier ist Platz für deinen Kommentar.
|
// Hier ist Platz für deinen Kommentar.
|
||||||
]
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
_Was war es für eine Prüfung?_
|
_Was war es für eine Prüfung?_
|
||||||
|
@ -70,14 +71,14 @@ _Was war es für eine Prüfung?_
|
||||||
// Hier ist Platz für deinen Kommentar.
|
// Hier ist Platz für deinen Kommentar.
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
)
|
) <kind>
|
||||||
|
|
||||||
_Wer hat die Prüfung abgenommen?_ #input[
|
_Wer hat die Prüfung abgenommen?_ #input(name: "examiner")[
|
||||||
// Hier ist Platz für deinen Kommentar.
|
// Hier ist Platz für deinen Kommentar.
|
||||||
]
|
]
|
||||||
|
|
||||||
_Welche Vorlesungen wurden geprüft und bei wem hast du sie gehört?_
|
_Welche Vorlesungen wurden geprüft und bei wem hast du sie gehört?_
|
||||||
#block(height: 1em)[
|
#textfield(height: 1em, name: "lecture")[
|
||||||
// Hier ist Platz für deinen Kommentar.
|
// Hier ist Platz für deinen Kommentar.
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -96,13 +97,13 @@ _Welche Vorlesungen wurden geprüft und bei wem hast du sie gehört?_
|
||||||
)}, rows: (auto,) + 5 * (2.5em,),
|
)}, rows: (auto,) + 5 * (2.5em,),
|
||||||
table.header[Titel der Vorlesung][Dozent][Wann gehört][SWS][ECTS][LP],
|
table.header[Titel der Vorlesung][Dozent][Wann gehört][SWS][ECTS][LP],
|
||||||
..(lectures + 5*6*([hi],)).slice(0,5*6)
|
..(lectures + 5*6*([hi],)).slice(0,5*6)
|
||||||
)
|
) <attendance>
|
||||||
|
|
||||||
#pagebreak()
|
#pagebreak()
|
||||||
|
|
||||||
_Wie *regelmäßig* hast du die Lehrveranstaltungen besucht?
|
_Wie *regelmäßig* hast du die Lehrveranstaltungen besucht?
|
||||||
Hat sich der Besuch/Nicht- besuch in der Prüfung positiv/negativ ausgewirkt?_
|
Hat sich der Besuch/Nicht- besuch in der Prüfung positiv/negativ ausgewirkt?_
|
||||||
#block(height: 1cm)[
|
#textfield(height: 1cm, name: "attendance_worth")[
|
||||||
// Hier ist Platz für deinen Kommentar.
|
// Hier ist Platz für deinen Kommentar.
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -110,25 +111,25 @@ Hat sich der Besuch/Nicht- besuch in der Prüfung positiv/negativ ausgewirkt?_
|
||||||
== Vorbereitung auf die Prüfung
|
== Vorbereitung auf die Prüfung
|
||||||
|
|
||||||
_Welche *Literatur* hast du benutzt (Bücher, Skripten, Vorlesungsmitschriften)?_
|
_Welche *Literatur* hast du benutzt (Bücher, Skripten, Vorlesungsmitschriften)?_
|
||||||
#block(height: 2cm)[
|
#textfield(height: 2cm, name: "literature")[
|
||||||
// Hier ist Platz für deinen Kommentar.
|
// Hier ist Platz für deinen Kommentar.
|
||||||
]
|
]
|
||||||
|
|
||||||
_Hast du dich *alleine/zu mehreren* auf die Prüfung vorbereitet? Wie lange?
|
_Hast du dich *alleine/zu mehreren* auf die Prüfung vorbereitet? Wie lange?
|
||||||
Hat es etwas gebracht?_
|
Hat es etwas gebracht?_
|
||||||
#block(height: 1cm)[
|
#textfield(height: 1cm, name: "preparation_time")[
|
||||||
// Hier ist Platz für deinen Kommentar.
|
// Hier ist Platz für deinen Kommentar.
|
||||||
]
|
]
|
||||||
|
|
||||||
_Fanden vor der Prüfung *Absprachen* statt (Form, Inhalt ...)? Wenn ja, welche?
|
_Fanden vor der Prüfung *Absprachen* statt (Form, Inhalt ...)? Wenn ja, welche?
|
||||||
Wur- den sie eingehalten?_
|
Wur- den sie eingehalten?_
|
||||||
#block(height: 3cm)[
|
#textfield(height: 3cm, name: "agreements")[
|
||||||
// Hier ist Platz für deinen Kommentar.
|
// Hier ist Platz für deinen Kommentar.
|
||||||
]
|
]
|
||||||
|
|
||||||
_Welche *Tipps* zur Vorbereitung kannst du geben? (wichtige/unwichtige Teile des
|
_Welche *Tipps* zur Vorbereitung kannst du geben? (wichtige/unwichtige Teile des
|
||||||
Stoffs, gute Literatur, Lernstil)_
|
Stoffs, gute Literatur, Lernstil)_
|
||||||
#block(height: 3cm)[
|
#textfield(height: 3cm, name: "preparations")[
|
||||||
// Hier ist Platz für deinen Kommentar.
|
// Hier ist Platz für deinen Kommentar.
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -142,7 +143,7 @@ Beweisen gefragt wurde, wo besonders nachgehakt wurde. Schreibe wenn möglich
|
||||||
auch auf, worauf der Prüfer hinaus wollte. Kennzeichne bitte Fragen, die
|
auch auf, worauf der Prüfer hinaus wollte. Kennzeichne bitte Fragen, die
|
||||||
eigentlich nicht direkt zum Stoff gehören._
|
eigentlich nicht direkt zum Stoff gehören._
|
||||||
|
|
||||||
_Dauer der Prüfung?_ #input[
|
_Dauer der Prüfung?_ #input(name: "exam_duration")[
|
||||||
// Hier ist Platz für deinen Kommentar.
|
// Hier ist Platz für deinen Kommentar.
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -150,18 +151,20 @@ _Was kannst du zum *Prüfungsstil* des/der Prüfenden sagen? (Prüfungsatmosphä
|
||||||
(un)klare Fragestellungen, Fragen nach Einzelheiten oder eher gröÿere
|
(un)klare Fragestellungen, Fragen nach Einzelheiten oder eher gröÿere
|
||||||
Zusammenhänge, gezielte Zwischenfragen oder lässt er/sie dich erzählen,
|
Zusammenhänge, gezielte Zwischenfragen oder lässt er/sie dich erzählen,
|
||||||
Weiterhelfen bei Unsicherhei- ten...)_
|
Weiterhelfen bei Unsicherhei- ten...)_
|
||||||
#block(height: 3cm)[
|
#textfield(height: 3cm, name: "examiner_behavior")[
|
||||||
// Hier ist Platz für deinen Kommentar.
|
// Hier ist Platz für deinen Kommentar.
|
||||||
]
|
]
|
||||||
|
|
||||||
_Wurde an Stelle deines Wissens auch dein Unwissen abgeprüft?_
|
_Wurde an Stelle deines Wissens auch dein Unwissen abgeprüft?_
|
||||||
|
#[
|
||||||
#h(1fr)
|
#h(1fr)
|
||||||
#checkbox(checked: false) ja
|
#checkbox(checked: false) ja
|
||||||
#h(0.8cm)
|
#h(0.8cm)
|
||||||
#checkbox(checked: false) nein
|
#checkbox(checked: false) nein
|
||||||
|
] <checked_knowledge_gaps>
|
||||||
|
|
||||||
_Welche *Ratschläge für das Verhalten* in der Prüfung kannst du geben?_
|
_Welche *Ratschläge für das Verhalten* in der Prüfung kannst du geben?_
|
||||||
#block(height: 3.5cm)[
|
#textfield(height: 3.5cm, name: "examinee_behavior")[
|
||||||
// Hier ist Platz für deinen Kommentar.
|
// Hier ist Platz für deinen Kommentar.
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -171,20 +174,20 @@ _Welche *Ratschläge für das Verhalten* in der Prüfung kannst du geben?_
|
||||||
[
|
[
|
||||||
_Welche Note hast du bekommen?_
|
_Welche Note hast du bekommen?_
|
||||||
],
|
],
|
||||||
input[
|
input(name: "grade_received")[
|
||||||
// Hier ist Platz für deinen Kommentar.
|
// Hier ist Platz für deinen Kommentar.
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
_Empfandest du sie als angemessen?_
|
_Empfandest du sie als angemessen?_
|
||||||
],
|
],
|
||||||
input[
|
input(name: "grade_reasonable")[
|
||||||
// Hier ist Platz für deinen Kommentar.
|
// Hier ist Platz für deinen Kommentar.
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
_Kannst du die Prüfenden weiterempfehlen?_
|
_Kannst du die Prüfenden weiterempfehlen?_
|
||||||
],
|
],
|
||||||
input[
|
input(name: "examiner_recommendation")[
|
||||||
// Hier ist Platz für deinen Kommentar.
|
// Hier ist Platz für deinen Kommentar.
|
||||||
]
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
// SPDX-FileCopyrightText: 2025 Gero Beckmann <orangerot@orangerot.dev>
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
#let kind = (:
|
#let kind = (:
|
||||||
"wahlpflicht": "Wahlpflicht",
|
"wahlpflicht": "Wahlpflicht",
|
||||||
"vertiefungsfach": "Vertiefungsfach",
|
"vertiefungsfach": "Vertiefungsfach",
|
||||||
|
|
Loading…
Reference in a new issue