1. Semester: Einfache Algorithmen und Datenstrukturen

  1. Programmiersprachen und Programmierung
  2. Benutzung des Java-Editors:
    Erstellung von Java-Applets (AWT-Komponenten Textfield, Label, Button, Choice, Ein- und Ausgabe)
  3. Algorithmen
    • Erstellung eines Algorithmus zu einem gegebenen Problem in schriftlich verbalisierter Form oder als Struktogramm
    • Bearbeitung eines Algorithmus, gegeben durch Code oder ein Struktogramm
    • Analyse, z. B. mit einer Tracetabelle oder durch Auswahl geeigneter Testdaten, Vervollständigung, Präzisierung, Korrektur
    • Implementierung eines Algorithmus in die Programmiersprache
  4. Einfache Datentypen, Variablen und Konstanten, Wertzuweisungen und Rechenoperationen
  5. Strukturierte Anweisungen:
    • Verbundanweisung
    • Wiederholungsanweisungen (Zähl-, Wiederhole- und Solange-Schleife)
    • Auswahlanweisungen (bedingte Verzweigung, Mehrfachverzweigung)
  6. Der Hamster-Simulator (vereinfachter Programmaufbau, vorgegebene Methoden)

2. Semester: Komplexe Algorithmen und Datenstrukturen

  1. Objektorientierte Modellierung (mit dem Hamstersimulator)
    • Analyse eines vorgegebenen Klassendiagramms (vom Hamster)
    • Erweiterung eines vorgegebenen Klassendiagramms
    • Erstellung eines Klassendiagramms / eines Sequenzdiagramms für ein vorgegebenes System
    • Implementierung eines Modells unter Berücksichtigung der Konzepte der Kapselung, der Vererbung und der Polymorphie in Java
  2. Datenstrukturen und abstrakte Datentypen
    Mögliche Erweiterungen:
    • Nutzung und Implementierung eines abstrakten Datentyps ("Stapel", "Schlange" oder "Liste")
    • Implementierung eines neuen abstrakten Datentyps
    • Nutzung eines vorgegebenen abstrakten Datentyps und Beurteilung bezüglich eines Anwendungsfalls
  3. Iteration und Rekursion
    • Implementierung und Anwendung rekursiver Algorithmen
    • Vergleich rekursiver und iterativer Methoden
    • Abschätzung des Aufwands (in verbaler Form)
  4. Suchen und Sortieren
    • Binäre Suche
    • Sortierverfahren: direkte Auswahl, direktes Einfügen, Quicksort
      (Beschreibung des Algorithmus, Demonstration an einem Beispiel, Vervollständigung eines Codefragments)
    • Such- und Sortierverfahren, die Variationen der genannten Verfahren darstellen
    • Abschätzen der Komplexität von Such- und Sortier-Algorithmen
(Neben Punkt 2 sollte mindestens einer der Punkte 1, 3 und 4 behandelt werden.)

3. Semester: Datenbanken mit PHP/MySQL

4. Semester: Automaten und Schaltwerke

  1. Endliche Automaten
    • Entwicklung eines Zustandsgraphen für ein System mit vorgegebenen Eigenschaften
    • Analyse eines vorgegebenen Zustandsgraphen bezüglich eines Anwendungsfalls
    • Erweiterung eines vorgegebenen Zustandsgraphen
  2. Elementare Schaltnetze
    • Entwicklung eines Schaltnetzes mit vorgegebenen Eigenschaften (Schaltwerttabelle, Schaltfunktionen, Gatterdarstellung)
    • Analyse einer vorgegebenen Gatterdarstellung
    • Entwicklung einer Schaltung mit vorgegebenen Eigenschaften aus gegebenen Komponenten
  3. Elementare Schaltwerke
    • Entwicklung eines Schaltwerkes aus einem Zustandsgraphen
    • Umsetzung eines endlichen Automaten in ein Schaltwerk
    • Simulation von Automaten durch selbstgeschriebene Programme
  4. Ergänzung: Physikalische Grundlagen
  5. Realisierung von Schaltnetzen
    • Integrierte Schaltungen
    • Bau der logischen Grundschaltungen aus NANDs
    • Digitale Speicherglieder (Bau von Grund-FLIP-FLOP, Auffang-FLIP-FLOP und Master-Slave-FLIP-FLOP aus NANDS)