Leitfaden Programmierkentnisse im Physikstudium: Unterschied zwischen den Versionen
Sents (Diskussion | Beiträge) |
Keine Bearbeitungszusammenfassung |
||
(8 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Kategorie: | [[Kategorie:Programmierung]] | ||
Zeile 6: | Zeile 6: | ||
==Entwurf für Modul== | ==Entwurf für Modul== | ||
Im Folgenden soll erst einmal ein Entwurf für die vom AK als ideal erachtete Vorgehensweise zur Vermittelung von grundlegenden Programmierkenntnissen dargestellt werden. | Im Folgenden soll erst einmal ein Entwurf für die vom AK als ideal erachtete Vorgehensweise zur Vermittelung von grundlegenden Programmierkenntnissen dargestellt werden. | ||
===Einführungsveranstaltung=== | ===Einführungsveranstaltung=== | ||
Eine Einführungsveranstaltung mit ca 4 SWS hierzu sollte spätestens im dritten Semester <ref> Die ersten beiden Semester sind zu stressig und für die höheren APs und das FP brauch man die Kenntnisse. </ref>liegen und verpflichtend sein. Die Vorlesung besteht idealerweise aus kurzen Inputvorträgen gefolgt von Präsenzprogrammierübungen mit direkter Betreuung durch die Tutoren während der Vorlesungszeit in einer grundlegenden Sprache. Die Aufgaben werden von den Tutoren (idealerweise Doktoranden) korrigiert, wobei idealerweise der Schwerpunkt auf Funktion des Codes gelegt wird. Von einer Benotung <ref>Reduziert die Motivation abzuschreiben und erlaubt "kreative" Ansätze. Reduziert auch den Vorteil der Leute, die schon programmieren können.</ref> sowie einer Anwesenheitspflicht <ref>Manche Leute können schon gut programmieren und wären bei Anwesenheitspflicht stark unterfordert.</ref> wird stark abgeraten, evtl. ist das Ganze Voraussetzung für die Klausurzulassung. | |||
=== | ===Vertiefung=== | ||
In den folgenden zwei bis drei Semestern wird eine verpflichtende Programmierübung (2SWS) zur Festigung der Kenntnisse eingeführt. Die Übung besteht aus zwei sich abwechselnden Formaten. | |||
* In Woche 1 stellt der*die Tutor*in die Aufgaben mit ihren grundlegenden Ideen vor. In der folgenden Woche haben die Studierenden dann die Zeit die Aufgabe in Zweiergruppen zu erledigen. Um die Arbeitsbelastung auszugleichen werden in dieser Woche die Arbeitsblätter der Physikvorlesung etwas reduziert. | |||
* In Woche 2 werden dann die Resultate der zuhause gelösten Übungen im Dreiergespräch mit dem*der Tutor*in abgesprochen. Die Studierenden haben in dieser Woche dann keine Aufgaben zu erledigen. | |||
===Weitere Hinweise=== | ===Weitere Hinweise=== | ||
* Die oben beschriebenen Formate werden idealerweise als ein Modul (z.B. Einführung in die naturwissenschaftliche Programmierung) angeboten. | * Die oben beschriebenen Formate werden idealerweise als ein Modul (z.B. Einführung in die naturwissenschaftliche Programmierung) angeboten. | ||
* Bezüglich der Inhalte wird auf das zugehörige ZaPF Positionspapier verwiesen (https://zapf.wiki/Datei:Programmierkenntnisse.pdf). Evtl. Punkt 1 (Kompilierung Versionierung etc.) auslassen | * Bezüglich der Inhalte wird auf das zugehörige ZaPF Positionspapier verwiesen (https://zapf.wiki/Datei:Programmierkenntnisse.pdf). Evtl. Punkt 1 (Kompilierung Versionierung etc.) auslassen | ||
* Prinzipiell werden | * Prinzipiell werden Professor*innen auch dazu angehalten, passende Programmieraufgaben in ihren Übungsblättern zu integrieren. | ||
* Im Fortgeschrittenenpraktikum soll es die Möglichkeit geben als Versuch eine Simulation zu schreiben. | * Im Fortgeschrittenenpraktikum soll es die Möglichkeit geben, als Versuch eine Simulation zu schreiben. | ||
==Begründungen== | ==Begründungen== | ||
<references /> | <references /> | ||
==NoGos== | ==NoGos== | ||
* Starke Niveausprünge zwischen den Veranstaltungen (Kommunikation zwischen | * Starke Niveausprünge zwischen den Veranstaltungen (Kommunikation zwischen Dozent*innen anregen) | ||
* "Programmieren auf Papier" (kein handschriftlicher Code in Prüfungen oder Übungszetteln) | * "Programmieren auf Papier" (kein handschriftlicher Code in Prüfungen oder Übungszetteln) | ||
* Frontalübung | * Frontalübung | ||
* An der Tafel "vorrechnen" | * An der Tafel "vorrechnen" | ||
==Beispiele für sinnvolle Versuche== | ==Beispiele für sinnvolle Versuche== | ||
Zeile 46: | Zeile 39: | ||
===Theorieversuche im Fortgeschrittenen-Praktikum (Beispiel aus Duisburg)=== | ===Theorieversuche im Fortgeschrittenen-Praktikum (Beispiel aus Duisburg)=== | ||
Es wird die Hardware gestellt und Studierende schreiben in der Uni unter Anleitung | Es wird die Hardware gestellt und Studierende schreiben in der Uni unter Anleitung einer betreuenden Person eine Simulation. | ||
Eine Anleitung mit der zugrunde liegenden Theorie steht zur Verfügung, die sich die Studierenden vor dem Versuchstag nachvollziehen. | Eine Anleitung mit der zugrunde liegenden Theorie steht zur Verfügung, die sich die Studierenden vor dem Versuchstag nachvollziehen. | ||
Am Versuchstag selbst wird diese Theorie in einem Vorgespräch mit dem Betreuer durchgesprochen und offene Fagen geklärt bzw. Fehler diskutiert. | Am Versuchstag selbst wird diese Theorie in einem Vorgespräch mit dem Betreuer durchgesprochen und offene Fagen geklärt bzw. Fehler diskutiert. | ||
Anschließend muss die Theorie auf das vorliegende Problem bezogen und implementiert werden (z.B. bei einem der Versuche wird wird über den Virialsatz, die Monte Carlo-Methode und Pfadintegrale gesprochen und man muss sich vor der Implementierung überlegen, wie man Observablen messen kann). | Anschließend muss die Theorie auf das vorliegende Problem bezogen und implementiert werden (z.B. bei einem der Versuche wird wird über den Virialsatz, die Monte Carlo-Methode und Pfadintegrale gesprochen und man muss sich vor der Implementierung überlegen, wie man Observablen messen kann). | ||
Der Betreuer ist während der Implementierung anfänglich für ein paar Stunden anwesend oder in seinem Büro erreichbar, sodass Rückfragen direkt möglich sind und Hilfestellungen, wenn notwendig, geleistet werden können. | Der*die Betreuer*in ist während der Implementierung anfänglich für ein paar Stunden anwesend oder in seinem*ihrem Büro erreichbar, sodass Rückfragen direkt möglich sind und Hilfestellungen, wenn notwendig, geleistet werden können. | ||
Durch die "Präsenzzeit" ist der Versuch vom Aufwand vergleichbarer mit den experimentellen Versuchen. | Durch die "Präsenzzeit" ist der Versuch vom Aufwand vergleichbarer mit den experimentellen Versuchen. |
Aktuelle Version vom 2. November 2019, 09:32 Uhr
Basierend auf dem SoSe19 AK Programmierkentnisse (SoSe19_AK_Programmierkenntnisse)
Entwurf für Modul
Im Folgenden soll erst einmal ein Entwurf für die vom AK als ideal erachtete Vorgehensweise zur Vermittelung von grundlegenden Programmierkenntnissen dargestellt werden.
Einführungsveranstaltung
Eine Einführungsveranstaltung mit ca 4 SWS hierzu sollte spätestens im dritten Semester [1]liegen und verpflichtend sein. Die Vorlesung besteht idealerweise aus kurzen Inputvorträgen gefolgt von Präsenzprogrammierübungen mit direkter Betreuung durch die Tutoren während der Vorlesungszeit in einer grundlegenden Sprache. Die Aufgaben werden von den Tutoren (idealerweise Doktoranden) korrigiert, wobei idealerweise der Schwerpunkt auf Funktion des Codes gelegt wird. Von einer Benotung [2] sowie einer Anwesenheitspflicht [3] wird stark abgeraten, evtl. ist das Ganze Voraussetzung für die Klausurzulassung.
Vertiefung
In den folgenden zwei bis drei Semestern wird eine verpflichtende Programmierübung (2SWS) zur Festigung der Kenntnisse eingeführt. Die Übung besteht aus zwei sich abwechselnden Formaten.
- In Woche 1 stellt der*die Tutor*in die Aufgaben mit ihren grundlegenden Ideen vor. In der folgenden Woche haben die Studierenden dann die Zeit die Aufgabe in Zweiergruppen zu erledigen. Um die Arbeitsbelastung auszugleichen werden in dieser Woche die Arbeitsblätter der Physikvorlesung etwas reduziert.
- In Woche 2 werden dann die Resultate der zuhause gelösten Übungen im Dreiergespräch mit dem*der Tutor*in abgesprochen. Die Studierenden haben in dieser Woche dann keine Aufgaben zu erledigen.
Weitere Hinweise
- Die oben beschriebenen Formate werden idealerweise als ein Modul (z.B. Einführung in die naturwissenschaftliche Programmierung) angeboten.
- Bezüglich der Inhalte wird auf das zugehörige ZaPF Positionspapier verwiesen (https://zapf.wiki/Datei:Programmierkenntnisse.pdf). Evtl. Punkt 1 (Kompilierung Versionierung etc.) auslassen
- Prinzipiell werden Professor*innen auch dazu angehalten, passende Programmieraufgaben in ihren Übungsblättern zu integrieren.
- Im Fortgeschrittenenpraktikum soll es die Möglichkeit geben, als Versuch eine Simulation zu schreiben.
Begründungen
- ↑ Die ersten beiden Semester sind zu stressig und für die höheren APs und das FP brauch man die Kenntnisse.
- ↑ Reduziert die Motivation abzuschreiben und erlaubt "kreative" Ansätze. Reduziert auch den Vorteil der Leute, die schon programmieren können.
- ↑ Manche Leute können schon gut programmieren und wären bei Anwesenheitspflicht stark unterfordert.
NoGos
- Starke Niveausprünge zwischen den Veranstaltungen (Kommunikation zwischen Dozent*innen anregen)
- "Programmieren auf Papier" (kein handschriftlicher Code in Prüfungen oder Übungszetteln)
- Frontalübung
- An der Tafel "vorrechnen"
Beispiele für sinnvolle Versuche
- Düsseldorf:* Monte-Carlo Simulation(http://www.thphy.uni-duesseldorf.de/~ls4/Praktikum/fpversuch.html)
Weiche Materie(Computersimulationen, numerische Verfahren)
- Duisburg:* AP-Anleitungen
- https://aglorke.uni-due.de/fp2/vanleit/1%2013%20Untersuchung%20von%20Quantenpunkt-Helium%20mit%20Monte%20Carlo%20Simulationen%20Feb%202016.pdf
- https://aglorke.uni-due.de/fp2/vkurz/1.12%20Zeitreihenanalyse%20-%2024.11.2017.pdf
Theorieversuche im Fortgeschrittenen-Praktikum (Beispiel aus Duisburg)
Es wird die Hardware gestellt und Studierende schreiben in der Uni unter Anleitung einer betreuenden Person eine Simulation. Eine Anleitung mit der zugrunde liegenden Theorie steht zur Verfügung, die sich die Studierenden vor dem Versuchstag nachvollziehen. Am Versuchstag selbst wird diese Theorie in einem Vorgespräch mit dem Betreuer durchgesprochen und offene Fagen geklärt bzw. Fehler diskutiert.
Anschließend muss die Theorie auf das vorliegende Problem bezogen und implementiert werden (z.B. bei einem der Versuche wird wird über den Virialsatz, die Monte Carlo-Methode und Pfadintegrale gesprochen und man muss sich vor der Implementierung überlegen, wie man Observablen messen kann). Der*die Betreuer*in ist während der Implementierung anfänglich für ein paar Stunden anwesend oder in seinem*ihrem Büro erreichbar, sodass Rückfragen direkt möglich sind und Hilfestellungen, wenn notwendig, geleistet werden können.
Durch die "Präsenzzeit" ist der Versuch vom Aufwand vergleichbarer mit den experimentellen Versuchen. Die Implementatierung dauert üblicherweise länger bei experimentellen Versuchen, dafür ist das Post-Processing der Daten weniger aufwendig. Im Protokoll wird dann die Theorie beschrieben (Virialsatz usw. siehe oben). Das Programm wird angehängt und ist idealerweise minimal kommentiert.