Python in der Universitären Lehre
In den Sommersemestern 2011 und 2012 wurden an der TU Dresden erfolgreich interdisziplinäre Pythonkurse durchgeführt, mit Teilnehmenden u. a. aus den Bereichen Elektrotechnik, Informatik, Maschinenbau und Physik.Im aktuellen Sommersemester (2013) findet ebenfalls wieder ein solcher Kurs statt (→ Infos).
Außerdem steht auf Grund der anstehenden Neuberufung die Frage im Raum, ob Python als Lehrsprache für die Informatik-Grundlagen-Ausbildung an der Fakultät EuI nicht geeigneter wäre als Java. Dazu ein Diskussionsbeitrag.
Für allgemeine Informationen mit Bezug zu Python im Umfeld der TU-Dresden steht die Mailingliste tud-python zur Verfügung. Darüber werden z. B. weitere Lehrveranstaltungen angekündigt oder über freie Stellen (SHK, WHK, ...) mit python-Bezug informiert.
Python ist eine Skriptsprache, die sich sehr gut im natur- und ingenieurwissenschaftlichen Bereich einsetzen lässt. Das Anwendungsspektrum reicht von Berechnung und Visualisierung über Gerätesteuerung und Messwerterfassung bis zu (Hilfs-)Programmen für die Verarbeitung und Verwaltung von Daten. Sie ist vergleichsweise einfach zu lernen aber gleichzeitig sehr mächtig. D.h. man kann mit geringem Aufwand Probleme aus sehr unterschiedlichen Bereichen lösen. Als interpretierte Skriptsprache ist die Ausführungsdauer in der Regel größer als bei kompilierten Sprachen wie C oder Fortran. Dafür ist die benötigte Entwicklungszeit eines Programms meist deutlich geringer. Außerdem lassen sich bei Bedarf geschwindigkeitskritische Algorithmen einfach in kompilierte Bibliotheken auslagern bzw. bereits existierende nutzen.
Python kann in vielen Fällen als Ersatz für proprietäre Software (insbesondere für Matlab) dienen und hat dabei zwei entscheidende Vorteile: es ist frei (d.h. kostenlos und quelloffen) und es ist eine "richtige" Programmiersprache, die man sehr vielseitig einsetzen kann (anders als die spezialisierten Skriptsprachen von Matlab, Maple, etc).
Es gibt bereits sehr viel gute Dokumentation zu python. Auf dieser Seite möchte ich
a)eigene Beiträge zur Verfügung stellen und
b)auf einige ausgewählte Webseiten und Dokumente verweisen.
(teilweise) eigene Beiträge
- Aushang (ggf. erheiternd)
- Folien der einzelnen Vorträge
- Material komplett (inkl. Beispiele und Lösungen)
- Vortrag im Rahmen des Dresdner Linux Infotages 2008
- Material zum Workshop im Rahmen des Dresdner Linux Infotages 2008
- Vortrag im Institutsseminar 2010
- Plädoyer für Python (Erschienen in der BAR-News Nr. 63, Zeitschrift des FSR Elektrotechnik).
- pyblocksim Blockorintiertes Modellieren und Simulieren dynamischer Systeme (ohne GUI)
- Python-Skript zur Eigenwertplatzierung bei SISO-Systemen
- PyMbs - Python Multibody Systems Werkzeug zur Modellbildung, Simulation und Visualisierung mechanischer Mehrkörpersysteme
Sommerkurs, April bis Juli 2011
Im Sommersemester 2011 fand auf Initiative von vier Doktoranden (Ingo Keller, Carsten Knoll, Peter Seifert, Sebastian Voigt) der TU-Dresden erstmals ein interdisziplinärer Pythonkurs statt. Das dabei entstandene Material wird hier für die nicht kommerzielle Nutzung zur Verfügung gestellt. Ich war dabei für die Vorträge 2, 9 und 10 verantwortlich.Kurze Inhaltsangabe: 01. Grundlagen, 02. Effiziente Lernmethoden, ipython und debugger, 03. Interaktion mit dem Betriebssystem, 04. Grundlagen der Objektorientierung, 05. Grafische Benutzeroberflächen (I), 06. Grafische Benutzeroberflächen (II), 07. Imports (Konsultation) 08. 2D Visualisierung ("Plotten"), 09. Numerisch und symbolisch Rechnen, 10. Ansteuerung externer Geräte und Hardware, 11. 3D Visualisierung, 12. Grundlagen ZODB (Objektorientierte Datenbank)
Ziel des Kurses war, die Sprache und die mit ihr verbunden Möglichkeiten bekannter zu machen, um damit letzlich positive Effekte für Forschung und Lehre zu erreichen. Außerdem sollte eine Möglichkeit des Austausches über Python und seine Anwednungen geboten werden. Dazu wurde u.a. eine entsprechende Mailinliste eingerichtet: tud-python. Für Fragen und weitere Vorschläge in diese Richtung bin ich selbstverständlich offen (Kontakt).
Kursmaterial
Weitere Vorträge / Artikel
Software (selbst bzw. mitentwickelt)
Links
- Python: Programmieren macht Spaß Crash Kurs (I) (auf deutsch)
- instant python Crash Kurs (II)
- Dive into python Umfangreicher, gut strukturierter Kurs
- scipy/numpy Pakete für numerisches Rechnen (wie Matlab, Scilab, Octave)
- sympy Paket für symbolisches Rechnen (wie Maple, Maxima, Mathematica)
- matplotlib Paket für Visualisierung (Syntax stark an Matlab angelehnt)
- pythonxy Sammlung von allen wichtigen python-Paketen ('rundum sorglos Meta-Paket'; ca. 1 GB). Für Windows. Für Linux/Unix sind quasi alle Pakete unkompliziert über den jeweiligen Paketmanager verfügbar.
- python-control Bibliothek mit Funktionen aus dem Bereich (Automatisierungs- und Regelungstechnik)
- Pythonkurs 2012 TU Dresden (Doku + Übungsaufgaben + Lösungen))
- Pythonkurs von Hans Fangohr (Southhampton)
- Computational Physics Gruppe an der TU Dresden (python basierte Vorlesung "Computational Physics" mit Material (unter "teaching"))
- Numpy for Matlab Users
- NumPy/SciPy 'Kochbuch' Zeigt an konkreten Beispielen grundlegende Aufgaben (Matrizenrechnung, Interpolation, ODE-Simulation, ...)
- Numerical Methods in Engineering with Python von Jaan Kiusalaas, 2. Auflage 2010
- A Primer on Scientific Programming With Python Hans Petter Langtangen, 2009
- Python Scripting for Computational Science Hans Petter Langtangen, 2008