Solving Advanced Problems with Python LEGACY bis 2024
Idee & Ziele:
- Verschiedene anspruchsvolle Probleme aus dem mathematisch-naturwissenschaftlichen Bereich mit Python lösen.
- Mit Jupyter-Notebooks arbeiten
Auftrag 1: Jupyter-Widgets & Markdown
- Studiere das kurze Tutorial zu Jupyter Notebooks und installiere beide Varianten, also Jupyter im Browser und Jupyter in VSCode.
- Lade das PDF mit dem Jupyter-Cheat Sheet herunter und verschaffe dir eine grobe Übersicht.
- Lade das folgende Jupyter-Notebook herunter (zuerst entzippen) und arbeite es durch: 01_intro_widgets.ipynb.zip
Auftrag 2: Einfache Differentialgleichungen (DGL)
- Kurze Einführung in DGL
- Lade das folgende Jupyter-Notebook herunter (zuerst entzippen) und arbeite es durch: 02_einfache_dgl.ipynb.zip
Auftrag 3: Bewegungsgleichungen
TODO: Federpendel mitbringen
Unterlagen: 03_bewegungsgleichungen.ipynb.zip
- Selbständig Theorie zu Bewegungsgleichungen studieren (sca mit 2M beschäftigt am Anfang)
- Aufgaben lösen
- Besprechung mit sca:
- Fragen zu Auftrag 2?
- Physik & Mathe hinter Bewegungsgleichung besprechen, Experimente anschauen
Auftrag 4: Eigener DGL-Solver
Unterlagen: 04_eigener_dgl_solver.ipynb.zip
- Kurzer Input zu DGL-Solvern
- Auftrag lösen
- Fragen zu Auftrag 3?
Auftrag 5: Game of Life
Version 1
- Studiere nur Spielregeln
- Implementiere das Game of Life mit Python (normal oder Jupyter)
- Wie du es visualisierst, ist dir überlassen: Konsole, PyGame, PyQt, Jupyter, …
- Programmiere ganz alleine (keine Inspiration von Google, weiter unten auf Wiki, …)
Version 2
Version 3
Vorgaben:
- Basierend auf v02 (alles OOP, strikte Trennung von Modell und Logik)
- Verwende Python-Bibliothek für GUI wie PyGame, PyQT, … (Konsole reicht nicht!)
- sehr ansprechende Grafik
- verschiedene Buttons für versch. Startbedingungen:
- random mit einstellbarer Wahrscheinlichkeit (z.B. Slider)
- einige coole Objekte (Glider, Kanonen, … siehe hier für Inspiration https://de.wikipedia.org/wiki/Conways_Spiel_des_Lebens#Gleiterkanonen)
Version 4
- Web-Version mit Flask
- Verwende Model von letzter Version