Last updated: May 03, 2005
Zielgruppe
Zusammenfassung
Ziele
Voraussetzungen
Organisatorischer Rahmen
Bewertungskriterien
- NEU - Termin
Wiederholungsprüfung / Scheine - NEU -
Literatur
Inhaltsübersicht
Vorlesungsmaterialien
Übungen
und Programmierpraktikum
Ab diesem Semester geht eine neue Rahmenregelung für alle
PO
in Kraft, nach der sich Studierende für jeden Modul, den sie
belegen
wollen, innerhalb der ersten zwei Wochen schriftlich anmelden
müssen. Von dieser Anmeldung kann man innerhalb der ersten
sieben Wochen zurücktreten. Mit der Anmeldung zu einer
Lehrveranstaltung ist man für die
zugehörige
Prüfung angemeldet. Die Anmeldung erfolgt über LEHVIS.
Siehe auch Allgemeine
Prüfungsmodalitäten.
Die Lehrveranstaltung Informatik 1 besteht pro Vorlesungswoche aus zwei
Blöcken Vorlesungen,
einem Block Übung und einem Block des begleitenden Programmierpraktikums
(nicht
für alle obligatorisch).
donnerstags |
2. Block |
GH |
freitags | 2. Block |
Audimax 2 (ab
05.11.2004) |
Gruppeneinteilung und organisatorische
Leitung
Ronny Richter, rrichter(at)informatik.tu-cottbus.de
Die Gruppeneinteilung erfolgt mit dem Einschreiben in die
Lehrverantaltung (vgl. oben) über LEHVIS.
Die Übungen und Praktika beginnen in der zweiten Vorlesungswoche
(44. KW
2004).
Referenz-Programmiersprache - Java, Version 1.5.
Die Prüfung besteht aus drei Teilen - zwei während
des Semesters angebotenen Testaten sowie einer Abschlussklausur.
Alle Testate sowie Klausuren werden ohne Unterlagen
(d.h.
auch ohne Handy und ohne Wörterbücher) geschrieben. Die
Gesamtnote ergibt sich aus der Summe
der erreichten Punktzahl aus den drei Prüfungsteilen. Zum Bestehen
der Prüfung sind mindestens 50 % der erreichbaren Maximalpunktzahl
erforderlich.
1. Testat | Freitag, den
26.11.2004, 07.30 - 09.00 |
20 % |
2. Testat | Freitag, den
14.01.2005, 07.30 - 09.00 |
20 % |
Abschlussklausur | Montag, den
21.02.2005, 09.00 - 11.00 |
60 % |
Wiederholungsklausur | Montag, den 18. 07.2005, 13.30 - 16.30 | 100 % |
Die Wiederholungsklausur wird über drei Stunden geschrieben und ersetzt alle drei Prüfungsteile aus dem WS 2004/05. Je nach Anzahl der bisherigen Fehlversuche gilt sie als erste bzw. zweite Wiederholung. Achtung: es werden keine mündlichen Prüfungstermine für die zweite Wiederholung angeboten.
Studierende, die an der Abschlussklausur am 21.02.2005 wegen Krankschreibung nicht teilnehmen konnten, können zu diesem Termin ihre Abschlussklausur über 1.5 h schreiben.
Die Scheine zur Vorlesung können ab sofort im Sekretariat EHS 208, nachmittags (14.00 - 16.30) abgeholt werden. Unabhängig davon erfolgt eine direkte Meldung der Ergebnisse an das Prüfungsamt. Die Ergebnisse sind auch über LEHVIS abfragbar.
Mittwoch, den 13.04.2005, 11.00 - 12.00
Donnerstag, den 14.04.2005, 11.00 -12.00
Bitte melden Sie sich zuvor über dsszsekr(at)informatik.tu-cottbus.de an, damit wir Ihre Klausur bereitlegen können.
Im Verlaufe des Semesters gibt es sechs Übungsblätter, die
individuell zu bearbeiten sind. Die Abgabe/Bewertung ist freiwillig.
Jedes
Übungsblatt wird nach dem Schema "sehr gut" - "gut" -
"bestanden" - "nicht bestanden" bewertet. Wer alle
Übungsblätter mit mindestens "gut" absolviert, bekommt
für die beiden Testate volle Punktzahl angerechnet.
Im Verlaufe des Semesters gibt es sieben Aufgabenblätter, die
individuell zu bearbeiten sind. zum Bestehen des
Programierpraktikums sind mindestens 70 % der erreichbaren
Maximalpunktzahl erforderlich. Bei Bedarf gibt es in der Semesterpause
zwei Wiederholungsblätter (die dann aber dem aktuellen Wissenstand
entsprechend deutlich schwerer ausfallen).
Die Praktikumsscheine können ab sofort im Sekretariat EHS 208, nachmittags (14.00 - 16.30) abgeholt werden. Unabhängig davon erfolgt eine direkte Meldung der Ergebnisse an das Prüfungsamt. Die Ergebnisse sind auch über LEHVIS abfragbar.
Ein Credit entspricht 30 Arbeitstunden (Bachelorstudienordnung,
§7). Somit gilt
Diese Aufwandskalkulation ist beim Verfassen der Aufgabenblätter berücksichtigt worden.
Organisationsform dieser LV, die Spielregeln zum Bestehen der LV;
Literatur; Kurzüberblick zu Mini-Java;
Grundprinzipien des Programmierens: abstrahieren, modellieren,
transformieren, implementieren;
Beispiele: (1) Königsberger Brückenproblem, (2) Färbung
von Graphen/Ampelsteuerung;
die Rolle von ADTn im Softwareentwicklungsprozeß;
Zum Programmieren im Kleinen: souveräner Umgang mit
Prozeduren
und Pointern;
Zum Programmieren im Großen: Modularisierung
von Programmen,
Implementierung von ADT;
Effizienz von Programmen, Laufzeitabschätzungen von
nichtrekursiven und rekursiven Programmen;
die Groß-Oh-Notation;
Anwendungsbeispiele: siehe weitere Abschnitte in diesem Kapitel;
Definition als ADT;
Implementierung durch Arrays + vier Varianten von
Zeigerstrukturen;
Vergleich der Implementierungsvarianten bzgl. der Zeitkomplexität
der Operationen;
Anwendungsbeispiele: Umkehren einer ZK, Überprüfen
wohlgeformter Klammerausdrücke;
Definition als ADT; Implementierung über Listen bzw. direkt durch
Arrays + Zeigerstrukturen;
Anwendungsbeispiele: Zwischenspeicher in BS;
Definition als ADT; Implementierung über Listen bzw. direkt durch
zirkuläre Arrays + Zeigerstrukturen;
Anwendungsbeispiele: mathematischer Grundbegriff;
Definition als ADT; Implementierung durch Bitvektoren +
Zeigerstrukturen;
weitere Implementierungen (siehe Kap. 4, Verzeichnisse);
Vergleich der Implementierungsvarianten bzgl. der Zeitkomplexität
der Operationen;
Anwendungsbeispiele: mathematischer Grundbegriff;
Definition als ADT; Implementierung über Mengen bzw. direkt durch
Arrays + Zeigerstrukturen;
weitere Implementierungen (siehe Kap. 4, Verzeichnisse);
Anwendungsbeispiele: mathematischer Grundbegriff (vgl. Abschnitt
1.1);
Definition als ADT (vgl. Abschnitt 1.1);
Implementierung durch Adjazenz-Matrizen/Listen + verschiedene
Zeigerstrukturen;
ein ausgewählter Basisalgorithmus: die Transitive Hülle
mit
verschiedenen Anwendungen;
grundlegende Begriffe, rekursive Definitionen durch
Komposition/Zerlegung;
Pre/In/Post-Order-Durchlaufverfahren, Formelbäume;
Anwendungsbeispiel: Formelauswertung (mit Formelbäumen und Keller);
typische Operationen auf Bäumen;
Durchlaufverfahren: rekursiv und nichtrekursiv, Wirbeltraversierung;
in vier allg. Varianten und einer sehr speziellen für vollständig binäre Bäume (vgl. 5.3, ADT heap);
Anwendungen; Definition als ADT;
einfache Implementierungen: ungeordnete/geordnete Arrays +
Zeigerstrukturen;
allgemeine und binäre Suchbäume; Suche, Löschen und Einfügen;
vollständig ausgeglichene und ausgeglichen Suchbäume;
Klassen ausgeglichener Suchbäume: [AVL-Bäume, ]
2/3-Bäume, B-Bäume;
Hash-Funktionen, Kollissionen, Wahrscheinlichkeit von Kollisionen;
Behandlung von Kollissionen: geschlossenes/offenes Hashing;
Sondiermethoden: lineares Sondieren, Doppelhash-Verfahren;
allgemeines: interne/externe Sortierverfahren, Kriterien für
den Vergleich von Sortierverfahren;
zur Visualisierung der Sortierverfahren;
insertion sort, selection sort, bubble sort, shell sort;
bucket sort [, radix sort]
merge sort, quick sort, tree sort,
heap sort: ADT heap, Einfügen und Löschen am heap;
Tries für die Organisation von ZK; binäre Tries
zur Organisation von geometrischen Objekten:
(1) Punkte in der Ebene, (2) Pixelgraphiken (die Katze im Viererbaum);
Demo-Lösung zum Euler-Problem:
hier eine txt-Datei
mit dem
Java-Programmkode
einiger der in der Vorlesung angesprochenen Algorithmen;
... und hier zwei Programme zur Visualisierung ausgewählter
Algorithmen
als jar-Dateien (Aufruf: java -jar <file name>.jar)
sachdienliche Hinweise zu dieser Seite bitte an: