====== Weiterbildung X Informatik ====== Leider fehlt mir das Programm zu Kurs 5. Wenn das noch jemand hat... ===== Kurs 1 ===== Montag: Darstellung von Information (Becker) * Überblick über den Weiterbildungskurs * WWW-Informationsdienst im Internet * Strukturierte Darstellung von Information mit HTML * Formatierung mit CSS * Grundlagen der Informationsverarbeitung * Informationsdarstellung und formale Sprachen * Rechtliche Aspekte Dienstag: Algorithmisches Problemlösen * Programmgesteuerte Systeme * Algorithmen mit Wiederholungen * Algorithmen mit Fallunterscheidungen * Wiederholungen mit Abbruchbedingungen * Aufbau von Algorithmen * Zerlegung in Teilalgorithmen, Top-Down-Methode * Entwicklung von Algorithmen als Prozess * Automatisierte Verarbeitung von Daten Mittwoch: Programmierung mit JavaScript (Becker) * Interaktive Webseiten * Variablenkonzept, Wertzuweisung, Datentypen * Kontrollstrukturen und ihre Implementierung * Ereignisgesteuerte Abläufe und ihre Implementierung * Unterprogramme Donnerstag: Datenbanken (Heusel) * Gesellschaftliche und informatische Bedeutung * Grundbegriffe * Grundfunktionen einer DB * Excel-DB * MySQL-DB * ER-Diagramme Freitag: Datenbanken (Heusel) * Umsetzung ER->DB * SQL-Anfragen ===== Kurs 2 ===== Montag: Einführung in die Software-Entwicklung mit Delphi - Teil 1 (Becker) * Erstellung einer Benutzeroberfläche * Ereignisverarbeitung * implementierung eines zustandsbasierten Modells Dienstag: Einführung in die Software-Entwicklung mit Delphi - Teil 2 (Becker) * Operationen auf Daten - Unterprogramme * Schnittstellenbeschreibung * Unterprogramme mit Parametern * Modultests * Nutzung vordefinierter Komponenten * MVC-Konzept * Datenstruktur "Reihung" * Fehlersuche Mittwoch: Einführung in die Software-Entwicklung mit Delphi - Teil 3 (Becker) * Vordefinierte Komponenten zur Erzeugung von Grafiken * Erzeugung einfacher Grafiken * Datenstruktur "Verbund" * Mehrdimensionale Reihungen * Schachtelung von Datenstrukturen Donnerstag: Sortieren und Suchen (Jonietz) * Grundlegende Ideen zur Sortierung * Elementare Sortierverfahren * Quicksort * Aufwandsbetrachtungen * Einfache Suchverfahren Freitag: Rekursion (Selinger) * Rekursion: Prinzip und Visualisierung * Numerische Beispiele (Funktionen) und Übungen * Vergleich Iteration vs. Rekursion (Effizienz, Eleganz) * Graphische Beispiele (Turtlegrafik) und Übungen * Weitere Beispiele (Hanoi, Permutationen, Backtracking) ===== Kurs 3 ===== Montag: Grundkonzepte der objektorientierten Programmierung (Becker) * Grundidee der OOP, Modellierung mit Objekten und Klassen * Objekte in Aktion, gekapselte Objekte * Implementierung von Objekte und Klassen * Übungen: Objektorientierte Modellierung einer Miniwelt und Implementierung des objektorientierten Modells Dienstag: Grundkonzepte der objektorientierten Programmierung - Teil 2 (Becker) * Beziehungen zwischen Objekten * Implementierung der Hat-Beziehung * Implementierung der Kennt-Beziehung * Objekte in Aktion * Übung: Modellierung und Implementierung * Vererbung und Polymorphie * Implementierung von Modellen mit Vererbung Mittwoch: Objektorientierte Software-Entwicklung (Becker) * Software-Entwicklungsprozesse, Entwicklungsaufträge * Anforderungsanalyse * Entwicklung eines objektorientierten Modells * Dokumentation des Modells * Implementierung des Modells * Testen des entwickelten Modells * Erweiterungen und Verbesserungen des Systems Donnerstag: Rechnerarchitektur - Teil 1 (Merkert) * Das Registermaschinenmodell * Universelle Registermaschine * Bestandteile eines Rechners * Befehlszyklus * Mikroprogrammierung * eigene Assemblerbefehle * Binäre Kodierung * Bonsai-Hardware Freitag: Rechnerarchitektur - Teil 2 (Lösch) * Rechenfähigkeit der Registermaschine * Programmierfähigkeit der Registermaschine * Entwicklung von Übersetzungsschablonen * Automatisierte Sprachübersetzung ===== Kurs 4 ===== Montag: Formale Sprachen - Beschreibung mit Grammatiken und Erkennung mit Automaten (Becker) * Formale Sprachen * Sprachbeschreibung mit Syntaxdiagrammen * Sprachbeschreibung mit Grammatiken * Übungen zur Sprachbeschreibung mit Grammatiken * Spracherkennung mit endlichen Automaten * Sprachbeschreibung mit regulären Ausdrücken * Anwendung: Auszeichnungssprachen, Programmiersprachen, ... Dienstag: Formale Sprachen - Klassifikation von Sprachen; Exkurs: Semantik von Programmiersprachen (Becker) * Reguläre Sprachen * Grenzen endlicher Automaten * kontextfreie Sprachen * Spracherkennung mit Kellerautomaten * Kontextfreie, kontextsensitive und allgemeine Sprachen * Spracherkennung mit einer Turingmaschine * Syntax und Semantik von Programmiersprachen * Interpretation und Übersetzung von Programmiersprachen Mittwoch: Entwicklung und Implementierung von Automatensimulatoren (Becker) * Entwicklung eines Automatensimulators: Pflichtenheft * Objektorientierte Modellierung eines einfachen Systems * Implementierung und Test des Simulators * Erweiterung der Eingabemäglichkeiten * Verarbeitung von Listen * Erweiterung der Eingabemöglichkeiten * Verarbeitung von Bäumen Donnerstag: Kommunikation in Rechnernetzen - Teil 1 (Jonietz) * Motivation, Datenübertragung * Entwicklung eines Modellnetzes * Senden und Empfangen von Bitfolgen * Programmtechnische Realisierung mit Delphi * Übertragung von Zeichen, Zeichenfolgen, Texten * Übertragungsfehler * Erweiterung zum Bus * Experimente mit dem Bus Freitag: Kommunikation in Rechnernetzen - Teil 2 (Schneider) * Adressen, Kollisionen * Zugriffskontrolle (Aloha) * Routing * Das Routing Information Protocol * Experimente mit Sniffer-Programmen ===== Kurs 5 ===== Digitaltechnik * Logische Grundoperationen * Schaltfunktionen und Schaltnetze * Schaltalgebra * Rechensysteme * Flip-Flops * Von taktgesteuerten Flip-Flops zu Registern * Registermaschine, Rechnerarchitektur (von Neumann) Logische Programmierung mit Prolog * Fakten und Regeln * Anfragen * Das Berechnungskonzept * Listenverarbeitung * Verarbeitung von Graphen * Deklarative Programmierung Graphen und ihre Implementierung * Graphen und Graphenprobleme * Graphenalgorithmen, Fallstudie: Wege in Graphen * Implementierung von Graphen Socketprogrammierung und Internetprotokolle * Kryptologie * ===== Kurs 6 ===== Montag: * Historische Algorithmen * Korrektheit von Algorithmen * Effizienz von Algorithmen * Fallstudie: Algorithmen in der Kryptologie * Verschlüsselung mit modularer Addition * Verschlüsselung mit modularem Multiplizieren / Potenzieren * Kerrektheit und Sicherheit des RSA-Verfahrens DIenstag: Grenzen algorithmischer Verfahren * Das Halteproblem * Berechenbarkeit als Problem * Turingmaschine und Marienkäfer * Turingmaschine als universelles Berechnungsmodell * Alternative Berechnungsmodelle * Church-Turing-These * Prinzipielle Grenzen der Berechenbarkeit * Ein Blick in die Geschichte Mittwoch: Funktionale Programmierung (Becker), Ethische Aspekte der Informationstechnik (Mehlfeldt) * Von der Registermaschine zur funktionalen Abstraktion * Kontrollstrukturen der funktionalen Programmierung * Datenstrukturen der funktionalen Programmierung * Übungen zu den Konzepten der funktionalen Programmierung * Miniprojekte zur funktionalen Programmierung * Bedeutung der Informationstechnik für die Gesellschaft * Verantwortungsvoller Einsatz der Informationstechnik Donnerstag: Praktische Grenzen der Berechenbarkeit (Breuer) * Der Komplexitätsbegriff * Beschreibung der Zeitkomplexität * Abschätzung der Zeitkomplexität an Beispielen * Praktisch nicht anwendbare Algorithmen * Praktisch unlösbare Probleme * Nichtdeterministische Algorithmen, P und NP * NP-Vollständigkeit * Näherungslösungen Freitag: Chatbots (Tabor) * Einführung, Funktionsweise und Geschichte * Beispiele und Demos * Chatbot-Programmierung und * experimenteller Zugang * Prüfungsvorbereitung