Lektion 1 – Einführung
Diese Lektion erklärt das Thema des Kurses und gibt einen Überblick über den Aufbau und die Materialien. Des Weiteren beschreibt sie die benötigte Software und technischen Voraussetzungen, und gibt Tipps und Hinweise zum Zeitmanagement und zur erfolgreichen Absolvierung des Kurses.
Lektion 2 – Programmiersprachen
Die Lektion gibt eine Einführung in das Thema Programmiersprachen. Einige der wichtigsten Sprachen werden kurz vorgestellt. Die Lektion erklärt den Unterschied zwischen kompilierten und interpretierten Sprachen, sowie die wichtigsten Paradigmen inklusive prozeduraler und objektorientierter Programmierung. Markup-Sprachen werden ebenfalls diskutiert und gegenüber Programmiersprachen abgegrenzt.
Lektion 3 – Grundlagen der Programmierung
Die Lektion stellt die wichtigsten Konzepte prozeduraler Programmierung anhand von Beispielen vor (überwiegend in Python, aber auch in anderen Sprachen zum Vergleich). Die vorgestellten Konzepte umfassen Variablen, Operatoren, Ausdrücke, Kontrollstrukturen, Gültigkeitsbereiche, Funktionen und Output. Am Ende der Lektion wird auf die Formatierung und Kommentierung von Code eingegangen.
Lektion 4 – Erste Schritte in Python
Die Lektion gibt detaillierte Informationen zur Installation und Nutzung von Python. Sie beschreibt die Installation von Anaconda, das Schreiben von ersten Python-Code mit einem einfachen Text-Editor sowie das Ausführen von Python-Skripten von der Kommandozeile aus. Die Lektion beschreibt außerdem Alternativen und nützliche Ressourcen zur Python-Programmierung.
Lektion 5 – Grundkonzepte der Python-Programmierung
Die Lektion zeigt und vertieft den Einsatz der grundlegenden Konzepte aus Lektion 3 in Python. Sie gibt einen Überblick über die grundlegenden Datentypen, Kontrollstrukturen und Funktionen anhand kurzer Beispiele und Übungen zum selbst Ausprobieren. Darüber hinaus enthält die Lektion auch Beispiele in anderen Sprachen zum Vergleich. Des Weiteren wird die Kommentierung von Python-Code erörtert.
Lektion 6 – Weitere Themen der Python-Programmierung
Die Lektion behandelt leicht fortgeschrittene aber häufig begegnete Themen der Python-Programmierung, nämlich den Einsatz von try-except, das Importieren von Modulen und die Verwendung von Paketen der Python-Bibliothek sowie das Lesen und Schreiben von Dateien. Des Weiteren werden eine Einführung in die objektorientierte Programmierung geben und Funktionen mit optionalen Parametern diskutiert.
Lektion 7 – Integrierte Entwicklungsumgebungen und Debugging
Die Lektion beschreibt das Konzept einer Integrierten Entwicklungsumgebung und gibt detaillierte Instruktionen zur Installation und Verwendung von Visual Studio Code (VS Code) und der benötigten und empfohlenen Python-Erweiterungen. Darüber hinaus wird der Sinn und Einsatz des Debuggers erläutert.
Lektion 8 – Jupyter Notebooks und Markdown
Die Lektion führt in die Erstellung von Jupyter Notebooks ein und diskutiert Vor- und Nachteile gegenüber herkömmlicher Entwicklung in einer IDE. Sie enthält detaillierte Instruktionen zur Erstellung und Einsatz der benötigten Umgebung. Des Weiteren führt die Lektion in die Markup-Sprache Markdown und ihren Einsatz zur formatierten Dokumentation innerhalb eines Jupyter Notebooks ein.
Lektion 9 – Versionskontrollsysteme
Die Lektion gibt einen Überblick über Versionskontrollsysteme mit Fokus auf Git und GitHub. Studierende lernen den zentralisierten Git-Arbeitsablauf kennen und erhalten Instruktionen zum Anlegen eines GitHub-Kontos sowie zu verschiedenen Optionen des Zugriffs, inklusive der direkten Nutzung von VS Code aus. Des Weiteren werden das Mergen mit Auflösen von Konflikten und Branching erklärt.
Lektion 10 – Softwarebibliotheken und Paketverwaltung
Die Lektion führt in die Thematik der Softwarebibliotheken ein und gibt Beispiele für externe Python-Pakete, die für die Verarbeitung räumlicher Daten relevant sind (Pandas, GeoPandes, GeoPy, Shapely). Sie behandelt außerdem die Paketverwaltung mit pip und conda. Die Lektion enthält darüber hinaus auch Beispiele für Bibliotheken in anderen Sprachen.
Lektion 11 – Konzepte und Methoden der Softwaretechnik
Die Lektion gibt einen Überblick über die Grundlagen und Ansätze der Softwaretechnik zur Planung und Durchführung größerer Softwareprojekte. Es werden klassische Vorgehensmodelle und neuere Ansätze wie Prototyping und agile Methoden beschrieben sowie Qualitätskriterien und ethische Aspekte der Software-Entwicklung diskutiert.
Lektion 12 – Software-Architektur, UML und Design Patterns
Die Lektion beschreibt die Konzepte Software-Architektur, Architektur-Patterns, Design Patterns, UI Patterns und Anti-Patterns. Darüber hinaus bietet sie eine Einführung in die Unified Modeling Language (UML) anhand von Use-Case-, Klassen- und Sequenzdiagrammen.
Lektion 13 – Testen, Evaluation und Software Refactoring
Im ersten Teil der Lektion werden Ansätze zum systematischen Testen vorgestellt und diskutiert, einschließlich Unit-Tests. Im Weiteren werden die Evaluation von Usability und Performance einer Software behandelt. Schließlich geht es im letzten Teil um das Refactoring von Code.
Lektion 14 – Ausblick: Weiterführende Themen und Möglichkeiten
Zum Abschluss des Moduls werden aktuelle Trends wie der Einsatz von KI in der Software-Entwicklung angesprochen sowie Wege und Ressourcen aufgelistet, die Studierenden ermöglichen sollen, sich weiter in das Gebiet der Anwendungsentwicklung zu vertiefen.