Praktische Informatik - IN / PI (Prof. Dr. Vogt)
Praktische Informatik - IN / PI
(Prof. Dr. C. Vogt,
Bereich Informatik,
Institut Nachrichtentechnik,
Fakultät 07,
FH Köln)
Im Sommersemester 2012 wird die IN2-Vorlesung von Prof. Hartung gehalten,
er stellt im Juli und September dann auch die IN2-Klausur.
Die folgenden Angaben beziehen sich auf die Vorlesung IN1 vom Wintersemester 2010/11.
Die Vorlesung "Praktische Informatik (IN)" ist eine Pflichtveranstaltung für alle Studierenden
des 1. und 2. Semesters. Sie wird durch eine Übung und ein Praktikum ergänzt.
Zusätzlich kann man an einem Tutorium teilnehmen, in dem der Stoff wiederholt und vertieft wird.
Die Veranstaltungen sollen mit grundlegenden Konzepten der praktischen Informatik
vertraut machen und mit Hilfe der höheren Programmiersprache Java
ermöglichen, Programmieraufgaben praktisch zu lösen.
Vorsorglicher Hinweis: Am Praktikum IN2 darf man nur teilnehmen,
wenn man das Praktikum IN1 bestanden hat.
Am Praktikum "Betriebssysteme und Verteilte Systeme (BVS)" des 3./4. Semesters darf man nur teilnehmen,
wenn man beide Module des IN-Praktikums bestanden hat.
Zudem gilt die allgemeine
Verriegelungsregelung.
Im WWW findet man zur Veranstaltung "Praktische Informatik"
Termine
Im Wintersemester 2011/12 gilt ab sofort der folgende Terminplan
(für aktuelle Änderungen bitte Mitteilungen in der Vorlesung
und/oder Aushänge beachten):
- Vorlesung TIN1a+TIN1b: Mi., 9:45-11:15 Uhr, Hörsaal 1
- Übung TIN1a: Mi., 15:00-16:30 Uhr, Raum ZW-7-02 (jedoch am 9.11., 16.11., 23.11., 30.11. 8:00-9:30 Uhr in Raum ZS-6-01!)
- Termine Gruppe I: 2.11., 16.11., 30.11., 14.12., 4.1., 18.1.
- Termine Gruppe II: 26.10., 9.11., 23.11., 7.12., 21.12., 11.1., 18.1. (Terminänderung!)
- Übung TIN1b: Mi., 11:30-13:00 Uhr, Raum ZN-9-12
- Termine Gruppe I: 2.11., 16.11., 30.11., 14.12., 4.1., 18.1.
- Termine Gruppe II: 26.10., 9.11., 23.11., 7.12., 21.12., 11.1., 25.1.
- Übung zur Klausurvorbereitung TIN1a+TIN1b: 1.2.2012, 8:15 Uhr, Raum ZW-8-03
- Praktikum TIN1a: Raum ZW-7-17
- Vorbesprechung (Pflichttermin): Mo., 24.10., 16:30 Uhr
- Gruppentermine (Pflichttermine) und Beratung im Zeitraum Mo.+Mi., 16:45-18:15 Uhr
(genaue Anwesenheitstermine für die einzelnen Gruppen und sonstige Hinweise: siehe Aushang am Laboreingang)
- Praktikum TIN1b: Raum ZW-7-17
- Vorbesprechung (Pflichttermin): Mo., 24.10., 13:15 Uhr
- Gruppentermine (Pflichttermine) und Beratung im Zeitraum Mo., 13:15-16:15 Uhr, und Mi., 16:45-18:15 Uhr
(genaue Anwesenheitstermine für die einzelnen Gruppen und sonstige Hinweise: siehe Aushang am Laboreingang)
- Das aktuelle Aufgabenblatt wird jeweils in den Lehrveranstaltungen ausgeteilt und liegt dann auch im Labor ZW-7-17 aus.
- Regeln für das Praktikum finden Sie hier.
- Tutorium: Do., 16:45 Uhr, ZW-7-17
Themenübersicht
In der Vorlesung 2011/12 werden die folgenden Themen behandelt:
- Einführung: Informatik und Computer
Informatik: Daten und Algorithmen. Algorithmen: Eigenschaften und Darstellungsmöglichkeiten.
Digitalrechner: Bits und Bytes, Hardwarearchitektur,
Schichtenmodell mit Hardware, System- und Anwendungssoftware.
- Programmierung - eine allgemeine Einführung
Motivation und Vorgehensweise der Software-Entwicklung.
Höhere Programmiersprachen: Eigenschaften von C und
Java.
Programmausführung: Übersetzung versus Interpretation, Mischform daraus.
- Darstellung und Verarbeitung von Zahlen
Zahlenverarbeitung in Java: Variablen, Typen, Konstanten, arithmetische
Operatoren, Wertzuweisungen, Ein-/Ausgabe.
- Aussagenlogik
Aussagenlogik in Java: Typ boolean mit Standardoperatoren.
- Darstellung und Verarbeitung von Textzeichen
Standards zur Zeichencodierung: ASCII, Unicode. Zeichen und Zeichenketten in Java:
Konstantendarstellung und Standardoperationen.
- Ablaufsteuerung
Spezifikation: Struktogramme, Programmablaufpläne.
Strukturierte Anweisungen in Java: Blöcke, bedingte Anweisungen, Mehrfachverzweigung,
kopfgesteuerte Schleifen, fußgesteuerte Schleifen.
Exkurs: Java-Programme im Vergleich mit C-Programmen.
- Methoden
Motivation und grundlegende Prinzipien. Methoden in Java: Definition, Aufruf mit Parameterübergabe, Überladung,
Speicherklassen.
- Felder / Arrays
Grundlegende Eigenschaften: Speicherorganisation, Indizierung.
Arrays in Java: Array-Deklaration und Benutzung, mehrdimensionale
Arrays, Zusammenhang zu Zeichenketten.
- Objektorientierte Programmierung: Objekte und Klassen
Objektorientierte Programmierung: Motivation, Grundbegriffe. Java-Konzepte: Objekte mit Attributen, Objekte mit Attributen
und Methoden (auch Zugriffsschutz, Konstruktoren), klassenbezogene Attribute und Methoden (auch Hauptprogramm main, Standardklassen Math und Arrays).
- Objektorientierte Programmierung: Klassenstrukturen
Klassenhierarchien: Vererbungs-Begriff, explizite und implizites Typ-Casting, Überladen und Überschreiben
von Methoden, Zugriffsschutz. Abstrakte Klassen und Interfaces. Pakete.
- Objektorientierte Programmierung: Generische Klassen
Motivation. Anwendungsbeispiel: Queue mit verschiedenen Komponententypen. Allgemeine Konstrukte in Java.
- Ausnahmebehandlung
Motivation. Schritte einer Ausnahmebehandlung. Klassen von Ausnahmen.
- Formale Spezifikation syntaktischer Strukturen
Motivation und Grundlagen: Sprache, Syntax. Syntaxdiagramme. Backus-Naur-Form.
- Ein-/Ausgabe: Ströme und Dateien
Byteorientierte vs. zeichenorientierte Ein-/Ausgabe. Standardströme und -klassen in Java. Operationen auf dem Dateisystem.
- Ein-/Ausgabe: Graphische Benutzeroberflächen
Fensterklassen. Grundlegendes Arbeitsprinzip von Dialogelementen: u.a. Listener und Events. Oberflächenelemente:
u.a. Eingabefelder, Schaltflächen, Auswahllisten, Menus. Layout. Grafikprogrammierung. Applets.
- Dynamische Datenstrukturen: einfache Strukturen
Arten von Datenstrukturen: Mengen, Listen, Abbildungen. Collection-Interface: Set, List, Stack. Map-Interface.
- Dynamische Datenstrukturen: Graphen
Grundlegende Eigenschaften von Graphen. Rekursive Funktionen. Bäume: u.a. Binärbäume und Suchbäume.
Algorithmen auf Bäumen: Eingabe, Durchlaufen, Ausgabe.
Literaturempfehlungen
Informationen zur Klausur
Die Klausurtermine werden vom Hochschulprüfungsausschuss festgelegt.
Zur Klausur sind beliebige schriftliche Unterlagen und ein einfacher Taschenrechner zugelassen,
aber keine weiteren elektronische Hilfsmittel (Mobiltelefon, Tab, Notebook, ...).
Hinweise zur Vorbereitung:
- Um in der Klausur zurechtzukommen, braucht man (halbwegs) sichere Programmierkenntnisse.
Diese Kenntnisse erwirbt man nicht allein durch das Lesen der Unterlagen, sondern durch praktisches Üben.
Man sollte sich also regelmäßig an den Computer setzen und Programme ans Laufen bringen.
Anregungen dazu bieten die Beispiele aus den Lehrveranstaltungen.
- Bei der Stellung der Aufgaben nehme ich an, dass Sie die Foliendrucke, die ich in der
Vorlesung ausgeteilt habe, dabei haben.
- Musterlösungen früherer Klausuren können beim
Fachschaftsrat eingesehen werden.
Prof. Dr. Carsten Vogt, 5.3.2012