Zielgruppe
Voraussetzungen Das Praktikum wendet sich an Studierende der Informatik ab dem zweiten Semester; laut
Studienverlaufsplan würde es typischerweise parallel zur "Mathematik für Informatiker 2a/b" (Standard-Track) bzw. "Analysis 1" (Nebenfach Mathematik) bzw. "Mathematik für Physiker 1" (Nebenfach Physik) belegt. Die Veranstaltung "Mathematik für Informatiker 1" (oder äquivalente Kenntnisse, z. B. aus Mathematik-Grundvorlesungen) wird vorausgesetzt.
Die Teilnahme wird gemäß Studienverlaufsplan empfohlen, ist aber freiwillig (es handelt sich um eine Wahlpflichtveranstaltung).
Fortgeschrittene Fachsemester Studierende aus einer früheren Prüfungsordnung können ebenfalls an der Veranstaltung teilnehmen. Grundkenntnisse in der Mathematik (typischerweise durch erfolgreichen Besuch der Veranstaltungen "Lineare Algebra 1" und "Analysis 1" oder der entsprechenden Veranstaltungen "Mathematik für Physiker") liefern auf jeden Fall einen ausreichenden Hintergrund für eine erfolgreiche Teilnahme.
Ein wenig Affinität zur Mathematik Die Veranstaltung richtet sich ausdrücklich
sowohl an Studierende, die den forschungsorientierten Studienverlauf (aktuell: Analysis 1 / Mathematik für Physiker) gewählt haben
als auch an Studierende, die sich für den Standardverlauf (aktuell: Mathematik für Informatiker 2a/b) entschieden haben. Die Veranstaltung ist soweit in sich abgeschlossen, dass alle wichtigen Konzept nochmal kurz eingeführt und erklärt werden, um Wissensunterschiede möglichst auszugleichen. Eine grundsätzliches Interesse an mathematischen-konzeptionelle Fragen ist natürlich in jedem Fall nötig und ein wenig Neugier für und Talent in diesem Bereich schade sicher auch nicht.
Zweisemestrige Veranstaltung Die Veranstaltung zählt zusammen mit dem Praktikum
"Mathematische Modellierung am Rechner 2", welches im kommenden Semester angeboten wird,
insgesamt als
eine Wahlfplichtveranstaltung. Eine Teilnahme an nur einer der beiden Veranstaltungen ist nicht möglich (bzw. ergibt nicht die Creditpoints der vollen Wahlpflichtveranstaltung). Die Veranstaltung ist unbenotet (sie kann also nicht als benotetes Wahlpflichtfach eingebracht werden). Bestehen erfordert eine aktive Teilnahme an dem Praktikum (s. u.).
Programmierkenntnisse Für die Teilnahme am Praktikum sind Programmierkenntnisse (EiP) erforderlich. Bevorzugt ist eine Bearbeitung der Aufgaben in
Python (alle unterstützenden Materialien sind in Python verfasst). Eine Bearbeitung der Aufgaben in
JAVA oder
C/C++ ist ebenfalls erlaubt; hier stehen allerdings keine Vorlagen/Frameworks/Musterlösungen zur Verfügung und die Unterstützung durch Tutoren kann nicht garantiert werden (diese Option ist daher eher für erfahrenere Programmiererinnen und Programmierer geeignet, z. B. Studierende aus fortgeschrittenen Fachsemestern, die anderen Sprachen in der Grundausbildung gelernt haben).
Inhalt
Überblick und Motivation Das Praktikum soll die Brücke zwischen Informatik auf der einen Seite und mathematischen Modellen auf der anderen Seite schließen. Die Mathematik als Disziplin beschäftigt sich vorwiegend mit strukturellen Fragen: Wie können Folgerungen (Rechenregeln, Gleichungen, Sätze) aus bestehenden Annahmen (Axiome, Modelle) abgeleitet werden. Der Fokus liegt dabei auf statischer Logik: Die Frage ist "ist die Aussage wahr - ja oder nein". Was dabei in den Hintergrund tritt, und erst in späteren Semestern, z.B. in der numerischen Mathematik geklärt wird, ist die Frage, wie man konkret mit diesen mathematischen Modellen rechnet (Algorithmen, dynamische Abläufe) bzw. wie man Phänomene der realen Welt damit modelliert (Anwendung mathematischer Modelle auf praktische Probleme). Für Studierende der Informatik kann das Verständnis und die Motivation für das (extrem wichtige) Gebiet der mathematischen Modelle und Konzepte leiden. Dieses Praktikum soll dazu beitragen, die Lücke zwischen Theorie und Anwendung zu schließen und den logischen Aussagen der Mathematik algorithmische Methodik (Umsetzung in Programme) an die Seite zu stellen.
Aufbau und Inhalte Der erste Teil dieses Praktikums behandelt (voraussichtlich) unter anderem die folgenden Themen:
- Grundlagen mathematischer Modellierung (Mengen, Funktionen, Logik, Ausdrücke, Relationen, etc.) und deren Zusammenhang zu algorithmischen Strukturen (Datenstrukturen, Algorithmen).
- Grenzen der Berechenbarkeit und emergente Komplexität oder auch: sehr einfache Programme erzeugen komplexe Strukturen.
- Modelle und Methoden aus der Analysis (Reihen, Ableitungen, Integrale, Differentialgleichungen).
- Umsetzung / Anwendung in Programmiersprachen (Python bzw. für Fortgeschrittene auch in JAVA/C/C++).
Ablauf
Aufbau der VeranstaltungDie Veranstaltung besteht im Kern aus mehreren zu bearbeitenden Praktikumsaufgaben.
- Bearbeitung: Die Bearbeitung finden in Gruppen von je drei Studierenden statt. Gemeinsam werden sowohl die theoretischen als auch die praktischen Aufgaben bearbeitet und präsentiert.
- Aufgaben: Jede Aufgabe besteht aus mehreren Teilen und ist insgesamt relativ umfangreich (daher ist die Gruppenarbeit obligatorisch). Sie besteht aus einem theoretischen Teil, in welcher das Problem sowie die mathematische Herangehensweise erläutert wird. Daran schließen sich ein oder mehrere praktische Teile an, in denen die mathematischen Ideen in einem Programm umgesetzt werden sollen. Neben der praktischen Umsetzung sind auch begleitende theoretische Fragen zu bearbeiten.
- Abnahme: Die Bearbeitungszeit jeder Aufgabe beträgt zwei Wochen. Jeweils zum Termin der Veranstaltung stellt jede Gruppe ihre Ergebnisse in etwa 20 Minuten vor, wobei für jede Gruppe ein bestimmter Zeitslot vorgesehen ist. Die Lösung ist spätestens einen Tag zuvor in einem entsprechenden Git-Repository hochzuladen.
- Tutorium: In den Wochen, in denen keine Abnahme der Aufgaben stattfindet, findet in der Zeit der Veranstaltung ein Tutorium statt, in dem wichtige Schwerpunkte erläutert werden und insbesondere auf Rückfragen und Probleme bei der Bearbeitung der Aufgaben eingegangen werden kann.
Für eine erfolgreiche Teilnahme müssen - alle Aufgaben bearbeitet und alle Abgabe-Meetings besucht werden und
- ein Mindestanteil der Aufgaben gelöst werden (Bewertung erfolgt individuell - alle Gruppenmitglieder müssen die Lösung und deren Konzeption erklären können).