Python im Grundstudium für ET, MT, RES?
Position des Organisators des Pythonkurses für Ingenieur*innen
Ziel der Lehrveranstaltung Informatik für die Studiengänge Elektrotechnik, Mechatronik und Regenerative Energiesysteme ist laut Modulbeschreibung, die Fähigkeit der objektorientierten Programmierung zu vermitteln. Welche Sprache dafür benutzt wird ist nicht vorgegeben. Derzeit (Stand März 2018) ist es die Programmiersprache Java. Ein wichtiges Auswahlkriterium für Java war sicherlich, dass es objektorientiertes Programmieren "erzwingt" weil es funktionales und prozedurales Programmieren nicht oder nur schlecht unterstützt.
Aus meiner Sicht ist Python jedoch als Lehrsprache an im 2. Semester deutlich sinnvoller. Diese Einschätzung beruht, kurzgefasst, auf folgenden Gründen:
- In Python kann man mindestens genau so gut objektorientiert programmieren wie in Java. Tatsächlich kennt Python im Gegensatz zu Java keine Unterscheidung zwischen primitiven Datentypen (z. B. Integer) und Objekten. In Python ist alles ein Objekt.
- Python erzwingt jedoch nicht das objektorientierte Paradigma, sondern erlaubt prozedurales und funktionales Programmieren oder Kombinationen aller drei Varianten. Das kann gerade für kleine Probleme deutlich effizienter sein.
- Mein aus Gesprächen mit Studierenden gewonnener Eindruck: Die Java-Programmierung in Info2 wird nicht wertgeschätzt, weil vielen unklar ist wozu man das als Ingenieur*in brauchen soll. Im Hauptstudium (Oberseminar, Studienarbeit, Diplomarbeit) fehlen dann die Programmierkenntnisse.
- Hauptargument: Python bietet, anders als Java, exzellente Unterstützung typische Ingenieur-Aufgaben:
Symbolische und numerische Berechnungen, Simulation, 2d und 3d Visualisierung und Kommunikation
mit externer Hardware (z.B. Messgeräte).
Die Beherrschung von Python versetzt die Studierenden in die Lage,
eigenständig komplexe Fragestellungen zu untersuchen z.B. bei der Vor- und Nachbereitung von Übungen
(Fehlersuche, alternative Lösungswege), bei der Auswertung von Praktika und nicht zuletzt in Belgen, Studien- und Diplomarbeiten.
Dies würde als Nebeneffekt die Abhängigkeit von MATLAB mit seinem problematischen Lizenzmodell verringern.
- Für Python spricht weiterhin: Gute Lesbarkeit, einfache Erlernbarkeit, freie Verfügbarkeit mit sehr liberaler Lizenz, Plattformunabhängigkeit, einfaches Einbinden von externem Code, Interaktive Bedienbarkeit, Existenz sehr vieler sehr guter Zusatzpakete sowie die relativ weite und wachsende Verbreitung.
Python wird bereits erfolgreich an vielen Instituten an unserer und an anderen Fakultäten in der Forschung eingesetzt, Java dagegen kaum. Es wäre nur konsequent wenn die Lehre dieser Entwicklung Rechnung trüge.
Weitere Informationen:
- Hauptseite (Python-Kurs)
- Plädoyer für Python (Erschienen in der BAR-News Nr. 63)
- [10 Reasons for Python in Research]
- Direkter Vergleich. Java vs. Python
Kommentare, Anregungen und ggf. Kritik bitte an Carsten Knoll.