Materialien Kurse Softwareentwicklung Kontakt 🇩🇪 🇬🇧

Python für Fortgeschrittene

Wie entwickle ich ein großes Programm? Dieser Kurs führt Sie über die reine Sprachsyntax hinaus zu den tieferen Fragen der Programmierung. Beim Schreiben objektorientierter Software in Python werden Sie viele Entscheidungen zu Projektaufbau, Struktur und Zusammensetzung von Klassen treffen müssen. Ich zeige Ihnen bewährte Muster, um diese Entscheidungen robust zu treffen.

Ziele

Im Laufe des Kurses entwickeln Sie ein Python-Programm von Grund auf. Sie beginnen mit dem Aufbau einer sauberen Projektstruktur. Wenn der Code größer wird, zerlegen Sie ihn in Funktionen und Module. Wird er noch größer, benötigen Sie auch Klassen. Damit der Code auch bei Änderungen funktionsfähig bleibt, brauchen Sie außerdem eine automatisierte Testsuite und einige statische Codeprüfungen. Der Kurs behandelt typische Herausforderungen in einem Softwareprojekt und Strategien, um sie zu bewältigen.

Das Hauptziel des Kurses ist es, Sie in die Lage zu versetzen, gut strukturierte Python-Software zu schreiben.

Themen

Teil 1: Ein Python-Projekt aufsetzen

Eine virtuelle Umgebung erstellen
Was ist ein Python-Paket?
Abhängigkeiten mit uv verwalten
Wie schreibt man eine pyproject.toml-Datei?

Teil 2: Funktionale Muster in Python

Funktionsweise von Python-Funktionen
Metafunktionen in Python
Typannotierte Funktionen
Generatoren
Decorators
Refactoring in Funktionen

Teil 3: Automatisierte Tests

Tests mit pytest schreiben
Fixtures und Testkonfiguration
Test-Parametrisierung
Statische Codeprüfungen
Type Hints prüfen

Teil 4: Objektorientierte Programmierung

Daten mit Klassen strukturieren
Wie entwirft man Klassen?
Methoden schreiben
Magische Methoden
Refactoring in Klassen

Wie der Kurs abläuft

Der Kurs besteht aus einem kleineren theoretischen Teil und zahlreichen Übungen. Während der Übungen implementieren Sie Schritt für Schritt eine Python-Anwendung und integrieren dabei zentrale Konzepte aus den theoretischen Teilen. Es gibt einige Zusatzaufgaben, die Sie gemeinsam als Team lösen müssen.

Das Kursmaterial enthält Hintergrundlektüre und Codebeispiele, mit denen Sie Ihr Wissen nach dem Kurs vertiefen können. Während der Kurstermine erhalten Sie Unterstützung bei technischen Fragen. Wir führen außerdem gemeinsam einige Code-Reviews durch. Die Kursmaterialien sind dauerhaft unter einer Creative-Commons-4.0-Lizenz verfügbar.

Voraussetzungen

Um am Kurs teilzunehmen, sollten Sie mit grundlegenden Python-Datenstrukturen und -Befehlen vertraut sein. Sie sollten in der Lage sein, eigenständige Python-Programme auszuführen und mit einem Git-Repository zu arbeiten. Dieser Kurs eignet sich auch für Personen, die bisher überwiegend in Jupyter Notebooks gearbeitet haben.

Vorregistrierung

Nutzen Sie das Formular, um sich einen Platz in einem Kurs zu reservieren. Ich melde mich bei Ihnen wegen der Formalitäten.