Schulinterner Lehrplan für das Fach Informatik in der Sek II (G8) (Stand: 11.02.2012) In der Oberstufe (Einführungsphase / EF / Jgst.10, Qualifikationsphase 1 / Q1 / Jgst.11 und Qualifikationsphase 2 / Q2 / Jgst.12) werden die grundlegende Inhalte der Informatik in einem Grundkurs auf der Grundlage des Paradigmas der Objektorientierung behandelt. Die Prinzipien der objektorientierten Analyse, Modellierung und Programmierung werden nach dem Ansatz „Stifte und Mäuse“ mit der Programmiersprache Java und der Entwicklungsumgebung BlueJ erarbeitet. Die Lehrbücher „Informatik mit Java“ (Band I bis III) von Bernard Schriek greifen dieses Konzept auf und werden sowohl in der Einführungsphase wie auch in den Qualifikationsphasen 1 und 2 eingesetzt. Phase Gebiet EF Grundlagen der Objektorientierung Thema/Inhalt Klärung der Begriffe Klasse, Objekt, Dienste/Methoden (Anfragen und Aufträge), Eigenschaften/Attribute durch ihre Benutzung Programmiersprache, Aufbau von Java-Programmen, Benutzung Programmierumgebung, von Templates, einfache Datentypen (int, Algorithmik double, char, boolean), Kontrollstrukturen Schleife mit Eingangsbedinung, Schleife mit Ausgangsbedingung ein-, zwei- und mehrseitige Verzweigung Struktogramm als Werkzeug Objektorientierung: Klassen und Klassenbeziehungen Erstellung eigener Klassen Klassen, Unter-/Oberklassen – Vererbung Attribute und Dienste – privat und öffentlich Beziehungen von Klassen und Objekten (Hat-, Kennt-, Ist-Beziehung) Abstrakte Klassen Klassen- und Beziehungsdiagramm Ereignisbezogene Programmverarbeitung Ereignisse, Ereignisbearbeitung, ereignisorientierte Programmierung, Entwicklung eines Klassenmodells (Klassenbibliothek) für Ereignisverarbeitende Programme, Benutzung der Ereignisbibliothek und visueller Programmierhilfen Bemerkung Q1 Projektarbeit Phasenmodell Pflichtenheft Entwurf bzw. Modellierung Implematation Modultest Zusammenbau M-V-C-Konzept Rekursion Rekursive Algorithmen rekursive Funktionen rekursive Figuren selbstähnliche Bäume Rekursion mit Zeichenketten Türme von Hanoi Datenstrukturen Benutzung statischer und Entwicklung eigener dynamischer Datenstrukturen mit einfachen und komplexen Datentypen (Objekten) Problemlösungen unter Verwendung einund zweidimensionaler Felder Problemlösungen durch Erstellung und Benutzung eigener Klassen (Schlange, Liste, Stapel, Binärbaum) Optimierung von Algorithmen zur Datenverarbeitung in Datenstrukturen Sortierverfahren und Laufzeitverhalten Bubblesort Selectionsort Insertionsort Quicksort Suchverfahren binäres Suchen Suchbaum Hashverfahren Q2 Datenstrukturen Nachtrag noch nicht behandelter Themen (Ergänzungen z.B. Tiefensuche und/oder Breitensuche) ggf. als Referat Anwendung und Vertiefung an ausgewählten Themen Netzwerkprogrammierung Aufbau und Organisation OSI-Schichtenmodell Protokolle Client-Server-Programmierung Parallel-Verarbeitung von Prozessen alternativ, Reihenfolge beliebig Relationale Datenbanken und SQL alternativ, Reihenfolge SQL-Anweisungen Entity-Relationship-Diagramme und ihre beliebig Übersetzung in Tabellenstrukturen Relationenalgebra Inkonsistenz, Redundanz, Normalisierung Programmierung einer Anwendungsoberfläche Kryptographie Cäsar-Verschlüsselung Vigenère-Verschlüsselung Schlüsselübergabe-Problem RSA-Verschlüsselung Schlüsselerzeugung und Verschlüsselung mit kleinen und großen Zahlen alternativ, Reihenfolge beliebig Theoretische Informatik Endliche Automaten (Auswahl) Mealy-Automaten Akzeptoren Reguläre Ausdrücke Reguläre Sprachen und Grammatiken alternativ, Reihenfolge beliebig Projektarbeit alternativ, Reihenfolge beliebig Programmierung eines Adventure-Games oder Ähnlichem