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
    • Django für große dynamische Websiten mit Datenbank
    • Nikola für einfache, statische Websiten wie diese Homepage

andere Programmiersprachen

Anfänger

Der Schwerpunkt meiner Kurse liegt fast immer auf der Programmiersprache Python, ich utnerrichte aber auch andere Software:

  • Scratch visuelle Programmiersprache mit "Blöcken", vor allem für Programmieranfänger / Volksschüler
  • Snap! visuelle Programmiersprache ähnlich zu Scratch, aber mit mehr Support für komplexere Techniken, geeignet für Oberstufe / Gymnasium
  • Pocket Code (catrobat) visuelle Programmiersprache mit "swipe" bausteinen für das Smartphone, vor allem für Programmieranfänger
  • Beetle Blocks visuelle 3d Programmiersprache ähnlich wie Scratch, aber zum erstellen von 3D Grafiken / 3D printer Vorlagen

Profis

  • HTML, CSS und Javascript (läuft in JEDEM Browser) vor allem, aber nicht nur, für Web-Kurse
  • Processing (eine etwas vereinfachte Java-Umgebung, speziell für 2d/3d Grafik und Kunst)
  • C meist in Zusammenhang mit Adruino / Hardware-Projekten
  • Rust (moderner als C, extrem peformant). Hautpsächlich um besser bei Veloren mitarbeiten zu können

Unterrichtsgegenstände in den einzelnen Kursen variieren natürlich stark, ich kann unmöglich alles in allen Kursen unterrichten.

Contents © 2021 Horst JENS - This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License Creative Commons License.