1. Rekursion
Aufbauend auf dem Vorwissen über Algorithmen, beginnen wir damit uns das Prinzip der Rekursion als weitere Möglichkeit der Formulierung mancher Algorithmen anzuschauen. Dabei ist der Sinn erst ersichtlich, wenn die Rekursion auf rekursiv aufgebaute Datenstrukturen angewendet wird. Dabei betrachten wir Algorithmen, die einen echten Mehrgewinn durch eine rekursive Formulierung bekommen.
Zur Materialseite Rekursion
2. Listen
Nachdem wir das Prinzip der Rekursion kennengelernt haben schauen wir uns die Rekursive Datenstruktur schlechthin an – die Liste. Dabei stellen wir fest, dass die Grundstruktur der Liste eine ideale Vorlage für rekursive Algorithmen darstellt. Zum Abschluss betrachten wir das Kompositum als finale Version einer wiederverwendbaren Liste.
Zur Materialseite Liste
3. Binärbäume
Ausgehend von der simplen Struktur einer Liste betrachten wir anschließend die rekursive Datenstruktur auf der Suchaufgaben besonders effizient gelöst werden können. Dafür betrachten wir konkret den Binärbaum und sehen an diesem Beispiel, wie man durch geschickte Wahl der Datenstruktur Algorithmen beschleunigen kann.
Zur Materialseite Binärbaum
4. Nebenläufige Prozesse
Im vorletzten Thema bewegen wir uns etwas weg von der Rekursion, bleiben aber bei der Frage, wie man Algorithmen schneller und effizienter durchführen kann. Dabei ist der nächste Schritt die Frage, welche Algorithmen (oder Teile eines Algorithmus) man zeitgleich ausführen kann. Wir beschäftigen und dabei auch mit den typischen Problemen die bei der zeitgleichen Verwendung von Ressourcen auftreten kann und besprechen unterschiedliche Lösungsansätze.
Zur Materialseite Nebenläufige Prozesse
5. Informationssicherheit
Im Themenblock Informationssicherheit betrachten wir typische Sicherheitsprobleme in Informationssystemen und beschäftigen uns mit typischen Angriffsszenarien. Dabei gehen wir auf mögliche Lösungsansätze ein.
Zur Materialseite Informationssicherheit
6. Praktische Softwareentwicklung und Softwaretechnik
Im letzten großen Abschnitt der 12. Klasse nutzen wir alles Wissen, dass wir seit der 9. Klasse gesammelt haben, um ein großes Softwareprojekt auf die Beine zu stellen. Dabei werden alle Facetten beleuchtet, die bei der Zusammenarbeit in einem großen Team nötig sind. Moderne Hilfsmittel wie Versionskontrollsysteme und SCRUM-Boards sind ebenso teil dieser Unterrichtseinheit wie der Vergleich verschieden Vorgehensweisen bei der Organisation eines Projektes.
Zur Materialseite Softwareentwicklung