#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 #show : lecture #show : if date.year() > 0 {date.display("[day].[month].[year]")} #show : examiner #show : literature #show : preparation_time #show : attendance_worth #show : agreements #show : preparations #show : if exam_duration.minutes() > 0 {exam_duration.minutes()} #show : examiner_behavior #show : examinee_behavior #show : if grade_received > 0.0 {str(grade_received+0.01).slice(0,3).replace(".",",")} #show : grade_reasonable #show : examiner_recommendation.at(1) #show : 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 : 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 : [ #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()[]