Zum Inhalt springen

Lehrplan und Ablauf

Zu Zen-Modus wechseln

Der Lehrplan für SEW - Softwareentwicklung im III. Jahrgang sieht wie folgt aus (Zitat aus dem offiziellen Lehrplan):

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.

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.

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.

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:

Verplant sind in der 3. Klasse 30 Wochen, wobei 3 Wochen für das Abschlussprojekt reserviert sind. Werkzeug ist Python.

  1. Einführung in Python (2 Wochen)
    Werkzeuge, REPL, Syntax, Einrückung; Grundkonstrukte (Verzweigungen, Schleifen, Funktionen, Listen, Dictionaries) als Einführung mit Wiederholungscharakter

  2. Rekursion (3 Wochen)
    Basisfall und Rekursionsschritt, Call Stack, klassische Beispiele, rekursive Datenstrukturen, Grenzen

  3. Reguläre Ausdrücke (2 Wochen)
    Zeichenklassen, Quantoren, Gruppen; Suchen, Validieren, Ersetzen mit dem re-Modul

  4. Klassen in Python (1 Woche)
    Klassen, Objekte und Kapselung: init, self, Properties, Klassen- und Instanzattribute

  5. Vererbung (3 Wochen)
    Basis- und Subklassen, Überschreiben, super(), Klassenhierarchien entwerfen, und wann Vererbung die falsche Wahl ist

  6. Polymorphismus und Interfaces (2 Wochen)
    Gemeinsame Schnittstelle, Duck Typing, abstrakte Basisklassen (abc), erweiterbare Programme

  7. Exceptions (2 Wochen)
    try/except/finally, Exception-Hierarchie, eigene Exceptions, Eingabefehler abfangen

  8. Versionsverwaltung mit Git (2 Wochen)
    Konzepte (Repository, Commit, Branch, Merge), tägliche Arbeit mit Git, Remote-Repositories

  9. Dateien und Datenformate (2 Wochen)
    Dateien lesen/schreiben, CSV und JSON als Daten-Schnittstellen

  10. Bibliotheken und Pakete (1 Woche)
    pip und virtuelle Umgebungen, Auswahl und Einsatz umfangreicher Bibliotheken

  11. Testen mit pytest (2 Wochen)
    Testfälle schreiben und strukturieren, Parametrisierung, Tests bei Vererbung und Polymorphismus

  12. Statik-Modellierung (1 Woche)
    Klassendiagramme mit Vererbung, abstrakten Klassen und Interfaces

  13. Dynamik-Modellierung (2 Wochen)
    Sequenzdiagramme, Zustandsdiagramme, Aktivitätsdiagramme: Abläufe grafisch darstellen

  14. GUI mit Python (2 Wochen)
    GUI-Entwicklung (Tkinter): Fenster, Widgets, Ereignisse, Layout

  15. Projekt: GUI-Anwendung mit Datenquelle (3 Wochen)
    Umfangreiche GUI-Anwendung mit Exception-Handling, Datenzugriff (CSV/JSON), Git-Workflow und Tests