MV Abitur Computer Science study plan
MV Abitur Computer Science · Give each week a clear focus.
8 weeks · About 7 hours per week
Algorithmen und Programmierung (algorithmic concepts, control structures, data types, recursion, implementation in a programming language)
Implementiere aus dem Gedächtnis je ein Programm zu Verzweigung, Zählschleife und bedingter Schleife in einer gewählten Sprache und teste alle Randfälle.
Erkläre die Begriffe Variable, Datentyp, Wertebereich und Typumwandlung an selbst gewählten Beispielen und notiere typische Überlauffehler.
Zerlege drei Alltagsprobleme (z. B. Notendurchschnitt, Primzahltest, Zinseszins) in Struktogramm und Pseudocode, bevor du sie codierst.
Schreibe eine rekursive und eine iterative Fassung derselben Funktion (z. B. Fakultät, Fibonacci) und vergleiche Aufrufanzahl und Laufzeit.
Your checkpoint
Ein Programmpaket mit fünf lauffähigen Programmen, je einem Struktogramm und einem kurzen Kommentar zu Rekursionstiefe und Testfällen.
Algorithmen und Programmierung (algorithmic concepts, control structures, data types, recursion, implementation in a programming language) & Formale Sprachen und Automaten (regular expressions, finite automata, grammars, parsing, decidability)
Implementiere Sortier- und Suchverfahren (Bubblesort, binäre Suche) selbst und begründe deren Laufzeit in O-Notation.
Formuliere reguläre Ausdrücke für drei Validierungsaufgaben (E-Mail grob, Postleitzahl, Datum) und teste sie gegen gültige und ungültige Eingaben.
Zeichne deterministische endliche Automaten zu vorgegebenen regulären Ausdrücken und umgekehrt und prüfe je ein Wort per Hand.
Erkläre den Unterschied zwischen regulären Ausdrücken und kontextfreien Grammatiken an einem Beispiel, das nicht regulär lösbar ist.
Your checkpoint
Ein Übungsblatt mit zwei selbst gezeichneten DEAs, den zugehörigen regulären Ausdrücken und einer Tabelle mit mindestens zehn Testwörtern samt Akzeptanzentscheidung.
Datenstrukturen und Datenbanken (lists, stacks, queues, trees, relational databases, SQL, data modelling)
Modelliere ein ER-Diagramm für einen Anwendungsfall (z. B. Bibliothek) mit mindestens vier Entitäten und begründe Kardinalitäten.
Überführe das ER-Modell in ein relationales Schema mit Primär- und Fremdschlüsseln und benenne die Normalform jeder Tabelle.
Schreibe SQL-Abfragen mit JOIN, GROUP BY, HAVING und Aggregatfunktionen zu deinem Schema und prüfe die Ergebnisse von Hand.
Implementiere einen Stack und eine Queue als Liste und beschreibe je eine Anwendung mit Begründung der Operationskosten.
Your checkpoint
Ein SQL-Skript, das das Schema anlegt, mit Testdaten füllt und mindestens acht Abfragen enthält, plus eine kurze Normalisierungsbegründung.
Datenstrukturen und Datenbanken (lists, stacks, queues, trees, relational databases, SQL, data modelling) & Objektorientierung (classes, objects, inheritance, polymorphism, UML class and object diagrams, modelling and implementation)
Zeichne ein UML-Klassendiagramm mit Vererbung, Assoziation und Multiplizität für ein selbst gewähltes Szenario.
Implementiere das Diagramm in Code mit Konstruktoren, privaten Attributen und Getter-/Setter-Methoden.
Erstelle ein UML-Objektdiagramm zum selben Szenario und prüfe, ob jede Assoziation im Objektdiagramm konsistent ist.
Erkläre den Unterschied zwischen Klasse, Objekt und Referenz und beschreibe, was beim Überschreiben einer Methode im Speicher geschieht.
Your checkpoint
Ein UML-Klassendiagramm und ein Objektdiagramm zum selben Szenario sowie der lauffähige Code, der beide Diagramme exakt abbildet.
Objektorientierung (classes, objects, inheritance, polymorphism, UML class and object diagrams, modelling and implementation)
Setze Polymorphie über eine abstrakte Basisklasse oder ein Interface um und rufe Methoden über Referenzen des Obertyps auf.
Erkläre dynamisches Binden und den Unterschied zwischen Überschreiben und Überladen an je einem eigenen Codebeispiel.
Zeichne ein UML-Zustands- oder Sequenzdiagramm für einen Ablauf in deinem Programm und leite daraus eine Testsequenz ab.
Refaktoriere eine Klasse mit dupliziertem Code in eine Vererbungshierarchie und begründe die Änderung mit dem Liskov-Prinzip.
Your checkpoint
Eine kleine Klassenbibliothek mit mindestens drei Klassen und einer Vererbungshierarchie, dokumentiert durch UML-Diagramm und Polymorphie-Testlauf.
Rechnerarchitektur und Rechnernetze (Boolean logic, von Neumann architecture, networks, protocols, client-server concepts)
Stelle Wahrheitstabellen für UND, ODER, NICHT, XOR und NAND auf und vereinfache zwei Ausdrücke mit KV-Diagramm oder boolescher Algebra.
Entwirf eine Addiererschaltung aus Halb- und Volladdierer und prüfe die Ausgabe für vier Eingangspaare.
Beschreibe den von-Neumann-Zyklus (Fetch, Decode, Execute) und ordne Register, ALU, Steuerwerk und Speicher den Schritten zu.
Erkläre den Ablauf einer HTTP-Anfrage vom Browser bis zum Webserver inklusive DNS, TCP und Statuscodes und grenze Client-Server von Peer-to-Peer ab.
Your checkpoint
Ein Lerndokument mit zwei vereinfachten booleschen Ausdrücken, einem Addiererschaltbild und einem beschrifteten Ablaufdiagramm einer HTTP-Anfrage.
Formale Sprachen und Automaten (regular expressions, finite automata, grammars, parsing, decidability) & Gesellschaftliche und rechtliche Aspekte der Informatik (data protection, social implications, security, professional ethics)
Leite aus einer kontextfreien Grammatik Ableitungsbäume für drei Wörter ab und entscheide, ob die Grammatik mehrdeutig ist.
Führe einen einfachen Parser (rekursiver Abstieg) für eine kleine Ausdrucksgrammatik aus und teste ihn mit gültigen und fehlerhaften Eingaben.
Erkläre, warum das Halteproblem nicht entscheidbar ist, und grenze entscheidbare von nicht entscheidbaren Problemen ab.
Wende die Grundsätze des Datenschutzes (Zweckbindung, Datenminimierung, Löschung) auf ein selbst gewähltes Szenario an und benenne Betroffenenrechte.
Your checkpoint
Ein Dokument mit drei Ableitungsbäumen, einem lauffähigen Mini-Parser und einer Datenschutz-Folgenabschätzung im Umfang einer halben Seite.
Algorithmen und Programmierung (algorithmic concepts, control structures, data types, recursion, implementation in a programming language) & Datenstrukturen und Datenbanken (lists, stacks, queues, trees, relational databases, SQL, data modelling) & Objektorientierung (classes, objects, inheritance, polymorphism, UML class and object diagrams, modelling and implementation) & Rechnerarchitektur und Rechnernetze (Boolean logic, von Neumann architecture, networks, protocols, client-server concepts) & Formale Sprachen und Automaten (regular expressions, finite automata, grammars, parsing, decidability) & Gesellschaftliche und rechtliche Aspekte der Informatik (data protection, social implications, security, professional ethics)
Löse unter Zeitdruck eine vollständige Probeklausur aus Aufgaben aller sechs Bereiche und markiere jede Unsicherheit.
Wiederhole gezielt die drei schwächsten Themen aus der Auswertung und schreibe je eine Kurzzusammenfassung aus dem Gedächtnis.
Erkläre laut die Kernbegriffe jedes Bereichs (z. B. Rekursion, Normalform, Polymorphie, Fetch-Decode-Execute, DEA, Zweckbindung) in je zwei Sätzen.
Prüfe typische Fehlerquellen: Off-by-one, fehlende Kardinalitäten, falsche Normalform, verwechselte Automatentypen.
Your checkpoint
Eine korrigierte Probeklausur mit Fehlerprotokoll und drei einseitigen Merkblättern zu den schwächsten Themen.
Milestones
Week 2: Du kannst fünf Programme ohne Vorlage schreiben, Laufzeiten grob abschätzen und einen DEA zu einem regulären Ausdruck selbst zeichnen.
Week 4: Du überführst ein ER-Modell fehlerfrei in ein normalisiertes Schema, schreibst JOIN-Abfragen und bildest ein UML-Klassendiagramm in lauffähigem Code ab.
Week 6: Du vereinfachst boolesche Ausdrücke korrekt, erklärst den von-Neumann-Zyklus und den Ablauf einer HTTP-Anfrage ohne Notizen.
Week 8: Die Probeklausur ist vollständig bearbeitet; im Fehlerprotokoll steht zu jedem Bereich mindestens eine konkrete Maßnahme, und die drei Merkblätter sind fertig.