Warum Python?
Python ist eine Einsteigerfreundliche, breit einsetzbare höhere Programmiersprache und wird in meinen Programmierkursen (speziell in Kursen für Kinder und Jugendliche) hautpsächlich unterrichtet.
Python ist eine Interpretersprache, für Skripting geeignet und unterstützt objektorientiertes, funktionales und prozedurale Programmier-paradigmen. Ein herausragendes Merkmal von Python ist die gute Lesbarkeit mit Einrückungen anstatt Klammern zur Trennung von Code-Blöcken.
Python ist freie (free/libre open Source) Software.
Python Ökosystem
Um Python herum hat sich ein lebendiges und reichhaltiges Ökosystem an (freier) Software gebildet, welches verschiedenste Anwendungsbereiche abdeckt die bisher nur mit anderer Software / anderen Programmiersprachen bearbeitet werden konnten.
In meinen Kursen verwende ich z.B. folgende auf Python basierende bzw. Python-Skripting unterstützende freie Software (Auswahl):
- Gaming
- pygame zur Erstellung von 2D-Grafiken und Spielen, Vektormathematik, Sound, Musik, Joystickabfragen
- arcade zur Erstellung von 2D-Grafiken und Spielen unter Ausnutzen von OpenGL
- vpython zur Erstellung von 3D-Anwendungen innerhalb eines Webbrowsers (WebGL) und Physik (Ersatz für Javascript)
- renpy zur Erstellung von Story-basierten 2D Spielen / Animationen
- Godot (Godot hat eine eigene, sehr stark an Python angelehnte Skriptsprache) für komplette 3D / 2D Spiele / Android Anwendungen
- Hardware
- Micropython für Mikrocontroller / Hardwareprogrammierung
- Circuitpython für Mikrocontroller / Hardwareprogrammierung von Adafruit-Boards
- GUI
- pysimplegui zur schnellen Erstellung GUI's - grafischen Benutzeroberflächen (Buttons, Formularen etc.) basierend auf TkInter oder Qt
- dearpygui zur erstellung von GUI's die direkt in der Grafikkarte laufen (OpenGL)
- Grafik / 3D Druck
- FreeCAD zur Erstellung von 2D / 3D Konstruktionszeichnungen für den 3D-Drucker
- Blender zur Erstellung von 3D Objekten / Animationen
- Gimp zum Editieren von 2D-Grafiken
- Matplotlib für Graphen / Plotting
- Physik
- PyBox2d für 2D Physik (mit Pygame)
- Robotik
- PyroSim für 3D Simulation von Robotern
- Data science, AI
- Jupyter Jupyter-Notebooks zum mischen von Python-Code, Plots und Datenanalysen
- Web
Unterrichtsgegenstände in den einzelnen Kursen variieren natürlich stark, ich kann unmöglich alles in allen Kursen unterrichten.