feat: template for muendliche Pruefung
This commit is contained in:
		
							parent
							
								
									ece9780159
								
							
						
					
					
						commit
						d5c2f311c6
					
				
							
								
								
									
										199
									
								
								mundl-prufung/lib.typ
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										199
									
								
								mundl-prufung/lib.typ
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,199 @@ | ||||||
|  | #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 | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | @ -1,140 +1,45 @@ | ||||||
| #set page("a4", margin: 1.1cm) | #import "lib.typ": prufung, kind | ||||||
| #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 question(q, body) = [ |  | ||||||
|   #grid(columns: 2, emoji.hand.write, box(inset: (top: 3pt))[*#q*]) |  | ||||||
| 
 | 
 | ||||||
|   #body | #show: prufung.with( | ||||||
| ] |   study: "",                                 // Studiengang | ||||||
| #let input(width: 1fr, body) = box(width: width, height: 1em, inset: (bottom: 2pt), baseline: 2pt, stroke: (bottom: (dash: "loosely-dotted")),align(right, body)) |   lecture: "",                               // Fach | ||||||
| 
 |   kind: kind.none,                           // Prüfungsart (Wahlpflicht, Vertiefungsfach, Ergänzungsfach) | ||||||
| #page([ |   date: datetime(year: 0, month: 1, day: 1), // Prüfungsdatum | ||||||
|   #grid(columns: 2 * (1fr,), |   examiner: "",                              // PrüferIn (Prof) | ||||||
|   [ |   assistant: "",                             // BeisitzerIn | ||||||
|     #v(1em) |   grade_received: 0.0,                       // Note | ||||||
|     #grid(columns: 2, |   grade_reasonable: "",                      // War die Note angemessen? | ||||||
|     image(width: 1.8cm, "fsmi-logo.svg"), |   exam_duration: duration(minutes: 0),       // Prüfungsdauer | ||||||
|     text(size: 15pt)[ |   attendance: ( | ||||||
|       Fragebogen der Fachschaft zu |   /* Veranstaltung, Dozent(in), Jahr, regelmäßig besucht? */ | ||||||
|       *mündlichen Prüfungen* \ |     (lecture: "", lecturer: "", year: "", did_attend: ""), | ||||||
|       im Informatikstudium |     (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: [ | ||||||
|     #align(center)[Barcode:] |     // Fanden vor der Prüfung Absprachen zu Form oder Inhalt statt? Wurden sie eingehalten? | ||||||
|   ], |   ], | ||||||
|   par(justify: true)[ |   preparations: [ | ||||||
|     Dieser Fragebogen gibt den Studierenden, die nach dir die Prüfung ablegen |     // Welche Tips zur Vorbereitung kannst Du geben? | ||||||
|     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! |  | ||||||
|   ], |   ], | ||||||
|   [ |   examiner_behavior: [ | ||||||
|     #grid( |     // Wie war der Prüfungsstil des Prüfers / der Prüferin? | ||||||
|       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) |  | ||||||
|   ], |   ], | ||||||
|   [ |   examiner_recommendation: (none, [          // true, false | ||||||
|     Dein Sudiengang: #input[] |     // Kannst du ihn / sie weiterempfehlen? Warum? | ||||||
| 
 |   ]), | ||||||
|     Prüfungsart: |   examinee_behavior: [ | ||||||
|     #let module_kind = ( |     // Kannst Du Ratschläge Verhalten in der Prüfung geben? | ||||||
|       "Wahlpflicht", |  | ||||||
|       "Vertiefungsfach", |  | ||||||
|       "Ergänzungsfach", |  | ||||||
|     ) |  | ||||||
|     #for kind in module_kind [ |  | ||||||
|       \ #radiobox() #kind |  | ||||||
|     ] |  | ||||||
| 
 |  | ||||||
|     Welches? #input[] |  | ||||||
|   ], |   ], | ||||||
|   [ | ) | ||||||
|     #grid(columns: (auto, 1fr), |  | ||||||
|     [Prüfungsdatum:], input[], |  | ||||||
|     [Prüfer(in):],    input[], |  | ||||||
|     [Beisitzer(in):], input[], |  | ||||||
|     ) |  | ||||||
|   ]) |  | ||||||
| 
 | 
 | ||||||
|   *Prüfungsfächer und Vorbereitung:* | // Schreibe bitte möglichst viele Fragen und Antworten auf. | ||||||
|   #table(columns: 4 * (1fr,), row-gutter: (2pt, ..(3*(0pt,))), | // Hier ist Platz für deinen Kommentar | ||||||
|   table.header[Veranstaltung][Dozent(in)][Jahr][regelmäßig besucht?], |  | ||||||
|   ..range(4*4).map(it => []) |  | ||||||
|   ) |  | ||||||
|   #v(1em) |  | ||||||
|   #grid(columns: 2 * (1fr,),[ |  | ||||||
|     Note: #input[] |  | ||||||
|   ],[ |  | ||||||
|     Prüfungsdauer:#input[] Minuten |  | ||||||
|   ]) |  | ||||||
| 
 | 
 | ||||||
|   #v(1em) |  | ||||||
|   War diese Note angemessen? #input[] |  | ||||||
| 
 |  | ||||||
|   #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? |  | ||||||
|   ] |  | ||||||
| 
 |  | ||||||
| ], footer: [#h(1fr)$arrow.r.hook$ *Rückseite bitte nicht vergessen!*]) |  | ||||||
| 
 |  | ||||||
| #page()[ |  | ||||||
| 
 |  | ||||||
|     // #grid(rows: (3 * (7.8cm,)), columns: 2 * (1fr,), |  | ||||||
|     #grid(rows: (3 * (22em,)), columns: 2 * (1fr,), |  | ||||||
|     question[ |  | ||||||
|       Hat sich der Besuch / Nichtbesuch der Veran- |  | ||||||
|       staltung für dich gelohnt? |  | ||||||
|     ][], |  | ||||||
|     question[ |  | ||||||
|       Kannst du ihn / sie weiterempfehlen? Warum? \ \ |  | ||||||
|     ][ |  | ||||||
|       $circle$ Ja \ |  | ||||||
|       $circle$ Nein |  | ||||||
|     ], |  | ||||||
|     question[ |  | ||||||
|       Wie lange und wie hast du dich alleine oder |  | ||||||
|       mit anderen auf die Prüfung vorbereitet? |  | ||||||
|     ][], |  | ||||||
|     question[ |  | ||||||
|       Fanden vor der Prüfung Absprachen zu Form |  | ||||||
|       oder Inhalt statt? Wurden sie eingehalten? |  | ||||||
|     ][], |  | ||||||
|     question[ |  | ||||||
|       Welche Tipps zur Vorbereitung kannst du ge- ben? |  | ||||||
| 
 |  | ||||||
|     ][ |  | ||||||
|       Wichtige / unwichtige Teile des Stoffes, gute Bücher / Skrip- |  | ||||||
|       ten, Lernstil, ... |  | ||||||
|     ], |  | ||||||
|     question[ |  | ||||||
|       Kannst du Ratschläge für das Verhalten in der |  | ||||||
|       Prüfung geben? |  | ||||||
|     ][] |  | ||||||
|   ) |  | ||||||
| 
 |  | ||||||
|   *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? |  | ||||||
| ] |  | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 orangerot
						orangerot