Lehrplan und Ablauf
Lehrplan - III. Jahrgang
Abschnitt betitelt „Lehrplan - III. Jahrgang“Der Lehrplan für SEW - Softwareentwicklung im III. Jahrgang sieht wie folgt aus (Zitat aus dem offiziellen Lehrplan):
5. Semester - Kompetenzmodul 5
Abschnitt betitelt „5. Semester - Kompetenzmodul 5“Bildungs- und Lehraufgabe
Abschnitt betitelt „Bildungs- und Lehraufgabe“Die Schülerinnen und Schüler können im
Bereich Algorithmen und Datenstrukturen
- das Konzept der Rekursion und ihre Anwendungsgebiete erklären.
Bereich Objektorientierte Programmierung
- die Konzepte der Vererbung und des Polymorphismus erläutern;
- mit Hilfe objektorientierter Konzepte erweiterbare und wartbare Programme entwickeln.
Bereich Softwareentwicklungsprozess
- im Rahmen der Programmentwicklung unter Berücksichtigung von Vererbung und Polymorphismus Fehler finden und beheben;
- einfache Testfälle unter Berücksichtigung von Vererbung und Polymorphismus definieren sowie damit Programme systematisch testen;
- die Konzepte der Versionsverwaltung erläutern und Werkzeuge zur Versionsverwaltung einsetzen.
Bereich Anwendungsentwicklung
- externe Programmbausteine unter Berücksichtigung von Vererbung und Polymorphismus in eigene Programme integrieren sowie eigene Programmbausteine zur Verfügung stellen;
- geeignete Werkzeuge und umfangreiche Programmbibliotheken für gängige Aufgaben einsetzen;
- Programme mit einer umfangreichen grafischen Benutzeroberfläche für unterschiedliche Medien entwickeln.
Lehrstoff
Abschnitt betitelt „Lehrstoff“Bereich Algorithmen und Datenstrukturen:
- Rekursion, reguläre Ausdrücke.
Bereich Objektorientierte Programmierung:
- Vererbung und Polymorphismus, Interfaces.
Bereich Softwareentwicklungsprozess:
- Testen und Fehlersuche, Debugging, Versionsverwaltung.
Bereich Anwendungsentwicklung:
- Programmentwicklung in Abstimmung mit den fachtheoretischen Pflichtgegenständen, GUI-Entwicklung für Desktop oder mobile Geräte oder Webentwicklung.
6. Semester - Kompetenzmodul 6
Abschnitt betitelt „6. Semester - Kompetenzmodul 6“Bildungs- und Lehraufgabe
Abschnitt betitelt „Bildungs- und Lehraufgabe“Die Schülerinnen und Schüler können im
Bereich Objektorientierte Programmierung
- die Struktur gegebener Problemstellungen analysieren und mit Hilfe von grafischen Notationen darstellen;
- den Ablauf einer gegebenen Problemstellung analysieren und mit Hilfe von grafischen Notationen darstellen.
Bereich Anwendungsentwicklung
- umfangreiche Programme für unterschiedliche Medien mit graphischer Benutzeroberfläche entwickeln und Eingabefehler abfangen;
- mit Hilfe einfacher Bibliotheken auf Datenquellen zugreifen.
Lehrstoff
Abschnitt betitelt „Lehrstoff“Bereich Objektorientierte Programmierung:
- Statik- und Dynamik-Modellierung.
Bereich Anwendungsentwicklung:
- GUI-Entwicklung für Desktop oder mobile Geräte oder Webentwicklung und/oder hardwarespezifische Programmierung in Abstimmung mit den fachtheoretischen Pflichtgegenständen, Exception-Handling, Daten-Schnittstellen und Bibliotheken.
Daraus ergibt sich der folgende (grobe) Wochenplan für das III. Jahr:
3. Klasse - Wochenplan
Abschnitt betitelt „3. Klasse - Wochenplan“Verplant sind in der 3. Klasse 30 Wochen, wobei 3 Wochen für das Abschlussprojekt reserviert sind. Werkzeug ist Python.
-
Einführung in Python (2 Wochen)
Werkzeuge, REPL, Syntax, Einrückung; Grundkonstrukte (Verzweigungen, Schleifen, Funktionen, Listen, Dictionaries) als Einführung mit Wiederholungscharakter -
Rekursion (3 Wochen)
Basisfall und Rekursionsschritt, Call Stack, klassische Beispiele, rekursive Datenstrukturen, Grenzen -
Reguläre Ausdrücke (2 Wochen)
Zeichenklassen, Quantoren, Gruppen; Suchen, Validieren, Ersetzen mit dem re-Modul -
Klassen in Python (1 Woche)
Klassen, Objekte und Kapselung: init, self, Properties, Klassen- und Instanzattribute -
Vererbung (3 Wochen)
Basis- und Subklassen, Überschreiben, super(), Klassenhierarchien entwerfen, und wann Vererbung die falsche Wahl ist -
Polymorphismus und Interfaces (2 Wochen)
Gemeinsame Schnittstelle, Duck Typing, abstrakte Basisklassen (abc), erweiterbare Programme -
Exceptions (2 Wochen)
try/except/finally, Exception-Hierarchie, eigene Exceptions, Eingabefehler abfangen -
Versionsverwaltung mit Git (2 Wochen)
Konzepte (Repository, Commit, Branch, Merge), tägliche Arbeit mit Git, Remote-Repositories -
Dateien und Datenformate (2 Wochen)
Dateien lesen/schreiben, CSV und JSON als Daten-Schnittstellen -
Bibliotheken und Pakete (1 Woche)
pip und virtuelle Umgebungen, Auswahl und Einsatz umfangreicher Bibliotheken -
Testen mit pytest (2 Wochen)
Testfälle schreiben und strukturieren, Parametrisierung, Tests bei Vererbung und Polymorphismus -
Statik-Modellierung (1 Woche)
Klassendiagramme mit Vererbung, abstrakten Klassen und Interfaces -
Dynamik-Modellierung (2 Wochen)
Sequenzdiagramme, Zustandsdiagramme, Aktivitätsdiagramme: Abläufe grafisch darstellen -
GUI mit Python (2 Wochen)
GUI-Entwicklung (Tkinter): Fenster, Widgets, Ereignisse, Layout -
Projekt: GUI-Anwendung mit Datenquelle (3 Wochen)
Umfangreiche GUI-Anwendung mit Exception-Handling, Datenzugriff (CSV/JSON), Git-Workflow und Tests