SchulcurriculumInformatikSekII Zeit Inhalte Verknüpfung mit der Obligatorik Q1/I Spiralförmige Vertiefung des Stoffes aus der E-Phase: • Erstellen von Klassendiagrammen bzw. Umsetzen von Diagrammen in Java • Miniprojekte mit verschiedenen Abhängigkeiten zwischen Klassen • Vertiefung der Verwendung von Arrays (Feldern) und Umsetzung in Klassendiagrammen I.1 Konzepte des objektorientierten Modellierens • Klasse, Objekt, Attribut, Methode, Geheimnisprinzip • Klassendiagramme (Entwurfsdiagramme, Implementationsdiagramme) • Beziehungen zwischen Klassen: (Gerichtete) Assoziation mit Multiplizität, Vererbung • Abstrakte Klassen, Polymorphie I.2 Datenstrukturen • Lineare Strukturen mit den Akzenten - Schlange und Stapel o Anwendung der Standardoperationen o Implementation der Standardoperationen - Lineare Liste o Anwendung der Standardoperationen - Such- und Sortieralgorithmen für Felder und Listen o Rekursion o Suchen o Sortieren durch direktes Einfügen Im Leistungskurs zusätzlich: o Quicksort Entwicklung und Verwendung von linearen Datenstrukturen in Programmen mit graphischen Benutzeroberflächen: • Bspw. Modellierung und Implementation einer Wartezimmeranwendung: o Lineare Liste inkl. Standardoperationen o Datenstruktur Schlange o Datenstruktur Stapel o Entwicklung von Oberflächen mit Java Swing o Designkonzept Model-ViewController • Sortieren von Feldern und Listen o Entwickeln und Implementieren einfacher Sortieralgorithmen für elementar vergleichbare Datentypen (int, double, char,…) o Sortieren von Arrays und Listen mit beliebigen Objekten durch Erfüllen des ComparableInterfaces (nur LK) Sinn und Verwendung von Interfaces in Java Entwickeln und Implementieren eigener Interfaces o schnelle Sortieralgorithmen (mit Rekursion) Mergesort Quicksort (nur LK) o Untersuchung und Vergleich von Laufzeiten im O-Kalkül Zeit Inhalte Q1/II Implementation, Untersuchung und Verwendung weiterer (nichtlinearer) Datenstrukturen: • Binäre Suchbäume (inkl. Traversierungsalgorithmen und Standardoperationen) o Laufzeitvergleich mit linearen Datenstrukturen o Implementation (nur LK) • Balancierte Suchbäume (bspw. AVLBäume) o Aufbau und Balancekonzept o Anwendung der Rotationen o Implementation (nur LK) Graphentheoretische Problemstellungen: • Graphen als Modellierungswerkzeug • Implementation einer Graphenklasse (nur LK) • Eulerwege/-kreise (bspw. Königsberger Brückenproblem) • Finden minimaler Spannbäume (bspw. Versorgungsbrücken zwischen Inseln einer Inselgruppe) • Durchführen der Suche in Graphen (Tiefensuche) (bspw. Finden defekter Pumpstation in Kanalsystem; Ausweg aus Labyrinth finden) • Durchführen des Verfahrens von Dijkstra zum Finden kürzester Wege (bspw. Funktionsweise von Navigationssystemen) • Modellierung von Graphen mithilfe von Adjazenzlisten/-matrizen • Breitensuche (nur LK) • Implementation einzelner Algorithmen (nur LK) Verknüpfung mit der Obligatorik I.2 Datenstrukturen • Baumstrukturen mit den Akzenten - Binärbaum o Anwendung der Standardoperationen o Traversierungsalgorithmen - Binärer Suchbaum o Anwendung der Standardoperationen o Traversierungsalgorithmen Im Leistungskurs zusätzlich: o Implementation der Methoden insert und search I.2 Datenstrukturen Im Leistungskurs zusätzlich: • Ungerichteter gewichteter Graph mit den Akzenten - Adjazenzmatrix, Adjazenzlisten - Anwendung der Standardoperationen - Graphtraversierung mit Breiten- und Tiefensuche - Suche eines kürzesten Weges zwischen zwei Knoten: Backtracking, DijkstraAlgorithmus Zeit Inhalte Verknüpfung mit der Obligatorik Q2/I Aufbau von Netzwerken und Implementation von Client-ServerAnwendungen: • Kommunikation in Netzwerken o Zeichenkodierung o Kommunikations-Protokolle o Fehlerkorrektur o TCP/IP-Protokoll • Aufbau von Computer-Netzwerken (bspw. mit FILIUS) o Installieren und Administrieren von Netzwerken mit verschiedenen Adressbereichen o Einrichten von Client-ServerSoftware wie Webserver/-client, Emailserver/-client, DHCP, …) • Netzwerkprogrammierung in Java o Implementation einfacher Server-/Clientklassen (aufbauend auf vorgegebenen Klassen des Zentralabiturs) (bspw. Echoserver/-client, Additionsserver/-client, …) o Projektarbeit (bspw. netzwerkfähiges "Vier gewinnt"Spiel, "Schiffeversenken", Chatserver/-client, …) Kryptologische Verfahren: • Rückblick: Verschlüsselung in der Geschichte • Anwenden symmetrischer Verfahren • Implementation in Java/Excel (nur LK) • Kryptoanalyse: Sicherheit symmetrischer Verfahren (Knacken von Verschlüsselungen) • Funktionsweise asymmetrischer Verfahren (RSA) inkl. Schlüsselaustausch • Einbau eines Verfahrens in eigene Netzwerk-Projekte (nur LK) • Schülerpräsentationen möglich (bspw. Authentifizierung, E-Geld, elektronische Wahlen, …) I.3 Modellieren und Implementieren kontextbezogener Problemstellungen als Netzwerkanwendungen • Netzwerkprotokolle, TCP/IPReferenzmodell • Client-Anwendungen • Client-Server-Anwendungen • Kryptografie - Symmetrische Verschlüsselungsverfahren (Caesar, Vigenère) - Asymmetrische Verschlüsselungsverfahren (RSA) - Schlüsselaustausch (Diffie-Hellmann) I.3 Modellieren und Implementieren kontextbezogener Problemstellungen als Netzwerkanwendungen • Kryptografie - Symmetrische Verschlüsselungsverfahren (Caesar, Vigenère) - Asymmetrische Verschlüsselungsverfahren (RSA) - Schlüsselaustausch (Diffie-Hellmann) Zeit Inhalte Q2/II Option A – Berechenbarkeit und formale - A - Sprachen: • Der Akzeptor als deterministischer endlicher Automat o Aufbau, Funktionsweise o mathematische und graphische Darstellung o reguläre Grammatiken • Nichtdeterministische endliche Automaten o Unterschied zu DEA o Mächtigkeitsvergleich zu DEA o Umwandeln NEA DEA o Grenzen von NEA/DEA • Kellerautomaten o Aufbau, Funktionsweise o graphische Darstellung o kontextfreie Grammatiken o Verwendung in Compilern (nur LK) Entwicklung eines Parsers o Grenzen von KA • Turingmaschine o Aufbau, Funktionsweise o Programmierung mittels Applet (matheprisma.de) o mathematische und graphische Darstellung o kontextsensitive Grammatiken/unbeschränkte Grammatiken o Grenzen der allgemeinen Berechenbarkeit Q2/II Option B – Relationale Datenbanken: - B - • Aufbau und Funktionsweise von relationalen Datenbanksystemen • Installation eines mySQL-DatenbankSystems • Einrichten von Tabellen (inkl. Schlüsseln) und Erstellen von Abfragen (Selektion, Projektion, Vereinigung etc.) über mehrere Tabellen • Modellierung mithilfe von EntityRelationship-Diagrammen • Normalisierung von Datenbanken • Sicherheit von personenbezogenen Daten (Salt); Datenschutz Verknüpfung mit der Obligatorik III. Endliche Automaten und formale Sprachen • Modellieren kontextbezogener Problemstellungen als deterministische endliche Automaten • Darstellung von deterministischen endlichen Automaten als Graph und als Tabelle • Formale Sprachen: Reguläre Sprachen und ihre Grammatiken Im Leistungskurs zusätzlich: • Entwicklung eines Parsers für eine einfache formale Sprache II. Relationale Datenbanken • Modellieren kontextbezogener Problemstellungen als Datenbanken mit dem Entity Relationship-Modell • Datenbankschemata • Normalisierung: Überführung einer Datenbank in die 1. bis 3. Normalform • Relationenalgebra (Selektion, Projektion, Vereinigung, Differenz, kartesisches Produkt, Umbenennung, Join) • SQL-Abfragen über eine und mehrere verknüpfte Tabellen • Datenschutzaspekte