ALT + + Schriftgröße anpassen
ALT + / Kontrast anpassen
ALT + M Hauptnavigation
ALT + Y Socials
ALT + W Studiengang wählen
ALT + K Homenavigation
ALT + G Bildwechsel
ALT + S Übersicht
ALT + P Funktionsleiste
ALT + O Suche
ALT + N Linke Navigation
ALT + C Inhalt
ALT + Q Quicklinks
ESC Alles zurücksetzen
X
A - keyboard accessible X
A
T

Wieso Python in der Lehre einsetzen?

Bildquelle: xkcd.com/353/

In der Lehre kann man eine Programmiersprache als Werkzeug betrachten, mit dem wichtige Konzepte der Informatik/Softwareentwicklung erlernt werden. Die Lernkurve soll dabei nicht zu steil sein, damit Programme via „Rapid Prototyping“ - also mit geringem Aufwand und schnell sichtbaren Erfolg erstellt werden können.
Optimal ist, wenn man für verschiedene Gebiete durchgehend ein und dieselbe Programmiersprache verwenden kann. Dies ist vielleicht ist herausragende Eigenschaft von Python: Es gibt ein Python-Ökosystem, mit dem man Anwendungsprogramme erstellen kann, Simulationen durchführen kann, symbolisch rechnen kann, Web-basiert mit Code arbeiten kann, Mikrocontroller programmieren kann, und und und.

Die Programmiersprache Python wurde lange Zeit nicht ernst genommen. Erst nach 2011 als die Einplatinencomputer Raspberry Pi und BeagleBone aufkamen wollten viele Nutzer „schnell mal Sensoren einzubinden“ wozu die Programmiersprache C für manche zu kompliziert war. Zusätzlich wuchs bei einigen der Frust mit MATLAB/Simulink und sie suchten nach einer Alternative dafür.

Viele heute Fünfzigjährige wurden in deren Jugend während der pubertären Phase vom Monty Python Kinofilm („Life of Brian“) geprägt. Dieser Film war damals sehr skandalös für Religionslehrer.

Erfahrene Softwareentwickler reagierten anfangs ähnlich auf (Monty) Python: Strukturierung durch Einrücken? Das ist Ketzerei!

Ähnlich ging es 2011 als der Arduino auf der Bildfläche erschien: Die Embedded Experten schimpften mit Recht über das fehlende Debuggen, über die rudimentäre Entwicklungsumgebung und über das seltsame Mischen von C- und C++-Code, teils prozedural teils objektorientiert.

Arduinos haben sich aber auch im industriellen Bereich inzwischen durchgesetzt: Neulich hat ein Bachelorstudent sogar einen Controllino in eine Prüfeinrichtung bei Bosch einbauen dürfen! ;-)

Python hat ähnliche Erfolgsgeschichte hinter sich wie Arduino-Plattform. Vermutlich führten diese Gemeinsamkeiten auch hier zum Erfolg: Open Source, multiparadigmisch, plattformunabhängig. Ähnlich wie Hardwarehersteller inzwischen Arduino-Shields anbieten müssen, sehen sich kommerzielle Softwarehersteller wie z.B. NI (LabView) gezwungen Pyhton-Schnittstellen anzubieten.
„Mulitparadigmisch“ bedeutet, dass Algorithmen in Python objektorientiert, funktional oder auch prozedural implementiert werden können. Dabei gibt es aber immer einen „offiziell“ besten Weg - den „Pythonic Way“. Gleiches gilt für die formale Gestaltung des Codes.

Es gibt nicht die beste Programmiersprache. Diese Frage ist höchstens berechtigt im Hinblick auf eine Zielgruppe und auf einen Zweck bzw. Lernziel.

C ist konkurrenzlos der Standard im Mechatronikstudiuem und wird das zumindest im Embedded Bereich noch lange Zeit bleiben. Jedoch schreiben viele Softwareingenieure nicht mehr direkt C-Code. Sie arbeiten mit C-Codegeneratoren wie z.B. Simulink ähnlich wie ArduBlock beim Bildungssystem letsgoING.
Java wird viel für Anwendungsprogramme verwendet und ist nicht zuletzt so populär durch die vielen Android-Anwendungen, die in Java geschrieben werden.
Python erlebt in den letzten Jahren einen steilen Aufstieg und ist auf halben Weg zur Augenhöhe mit C bzw. Java.

Was hat sich in der Welt verändert, das zu diesem Aufstieg von Python führte?

Es ist „Rapid Prototyping“, welches in den letzten Jahren Einzug in den Main Stream hielt: Die Ikone hierfür ist der 3D-Drucker.
Produktzyklen werden kürzer, die Produkte werden komplexer (auch was Software betrifft). Gleichzeitig wird Rechenzeit immer billiger. Softwareingenieure wurden nicht billiger, auch wenn die Industrie sich das mit den Green-Card-Indern mal erhofft hatte. Somit ist Python für Softwareingenieure auch interessant, um schnell mal eine Idee zu implementieren. Bei Erfolg wird  anschließend der Algorithmus dann noch in C übersetzt, wenn es kein Unikat wie eine Prüfeinrichtung sondern ein Produkt in höheren Stückzahlen werden soll.

Im kommerziellen Embedded Bereich wird Python wenn überhaupt aber erst in einigen Jahren als Rapid Prototyping Werkzeug interessant werden. Hier ist der Kostendruck durch die Hardware noch zu hoch.

Eigentlich spricht nichts gegen die Programmiersprache C:
C ist quasi das „Englisch“ der Programmiersprachen was die Verbreitung über viele verschiedene Disziplinen betrifft. Es ist das „Latein“ der Programmiersprachen,denn fast alle aktuelle Hochsprachen - auch Python - sind stark an C angelehnt.
Ein Einstieg in C für fachfremde oder Schüler/Studenten ist aber sehr mühsam. Wieso man also nicht die Lernkurve flacher gestalten und erst im zweiten Schritt C lernen? Davon profitieren nicht nur die Lernenden sondern auch die LehrerInnen - Python erzeugt weniger Frust und das Ökosystem ist einfacher zu handhaben. Für die Lernenden gibt es eine immense Menge an Tutorials, Blogs, Foren um sich Python-Wissen anzueignen.

Ein Blick nach England, wo mit RasPi, Caliope und MicroBit der IT-Unterricht im Vergleich zu Deutschland um Lichtjahre voraus ist: Hier sieht man z.B. in der Zeitschrift „Hello World“, wie viel dort  mit Python in den Schulen gearbeitet wird.

In der Oberstufe und später in der Schule kommt man fast egal welches Fach nicht um das wissenschaftliche Rechnen herum. An der Hochschule hat sich dafür in den letzten 20 Jahren MATLAB etabliert zumal das Land BaWü alle Hochschulen mit kostenlosen Lizenzen dafür ausstattet.

Bei Schulen ist das anders und kritisch wird es, wenn man während des Studiums oder später in einem Start Up mit MATLAB Geld verdienen möchte: Die Lizenzgebühren und -politik außerhalb des Hochschulbereichs sind meiner Ansicht nach recht nachteilig für den Nutzer und typisch für die „Marktmacht“ (schöne Umschreibung des Begriffs Monopol) von Mathworks.

Eine gute Open Source Alternative zu MATLAB ist Octave. Im Vergleich dazu ist Python jedoch eine richtige Programmiersprache für das wissenschaftliche Rechnen.

Nachfolgend finden Sie als Download die Folien eines Vortrags zum Thema "Python in der Lehre". Dort wird die vielfältigen Einsatzmöglichkeiten von Python an Schulen und Hochschulen exemplarisch dargestellt. Auf der letzten Folie finden Sie alle Internetlinks zu den genannten Beispielen.