|
Diese Seite gibt weitere Informationen zur Vorlesung. Wir bemühen
uns diese Informationen so aktuell wie möglich zu halten.
Aktuelles
- Zettel 7 wurde samt Hintergrundmaterial modifiziert, da es bei der
Aufgabenstellung zu
Missverständnissen kam.
- Die Musterlösung von Blatt 4 wurde korrigiert.
- Die Musterlösung von Blatt 1 wurde auf Anregung hin nochmal
modifieziert.
- Das Tutorium von Tom Wetjen findet ab sofort im Raum MZH
7210 statt.
- Das neue Tutorium wird von Dienstag auf Mittwoch verschoben. Gleiche
Zeit, anderer Ort (
SpT C4180)!
- Aufgrund der überfüllten Tutorien, gibt es nun ein Tutorium 9, immer
dienstags von 8-10 im Raum MZH 5210. Wir weisen schon mal darauf hin, dass die
Tutoriengröße auf maximal 9-10 Gruppen festgelegt ist und ihr notfalls auch
zwangsweise umgesiedelt werden. Aufgrund von Korrekturen und Fachgesprächen
ist das notwendig, damit einzelne Tutoren nicht überlastet werden!
- Achtung: Raumänderung! Tutorium 3 findet jetzt immer im GW1-HS 1010 statt!
- Die Eintragung in die Tutorien findet am Montag, 11.4.2005 von 9-12 Uhr
vor dem Hörsaal NW1 HS1 statt.
Inhalt dieser Seite
Termine
VAK: |
03-700.02 |
Semester: |
SoSe 2005 |
Vorlesung: |
Mo, 10:00 - 12:00, NW1
H1 (H0020), ab 11.4.2005 (inkl. Tutoriumsbetrieb)
|
Die Veranstaltung ist in zwei Bereiche gegliedert:
- In der Vorlesung werden die Themenbereiche der Praktischen
Informatik im Überblick vorgestellt. Wir versuchen,
Fragestellungen und ihre Lösungen zu motivieren, Schwerpunkte
zu setzen,
Zusammenhänge deutlich zu machen, wichtige Probleme zu
verdeutlichen und ganz allgemein den Zuhörern Appetit auf
weitere Vertiefung des Lehrstoffs zu machen.
- In den Tutorien (= Übungen/Lektüre-Stunden) wird der
vertiefte Stoff in
Gruppen eigenständig erarbeitet: Wir sind überzeugt, dass
echtes Verständnis nur aus der selbständigen intensiven
Beschäftigung mit der Materie entstehen kann. Daher wird im
Rahmen der Übungen Fachliteratur erarbeitet und zusammen mit den
Tutorinnen und Tutoren besprochen. In diesem Teil werden auch die
Lösungsansätze für die Aufgaben besprochen, die von den
Teilnehmern im Programmierpraktikum zu lösen sind.
Die folgende Liste von Lerninhalten wird im Laufe des Semesters
fortgeschrieben. Sie dient als Checkliste, mit welchen Themen und
Begriffen die Veranstaltungsteilnehmer vertraut werden sollten. Eine
"Session" entspricht einer zusammengehörigen Lerneinheit, sie muss
nicht notwendig in genau einer Vorlesung abgehandelt werden.
Session 1: Komplexität
Vorlesung:
- Grundbegriff der Asymptotischen Komplexität - O-Notation
- Bestimmung der Komplexität von eigenen Programmen
- Komplexitätsklassen
- Beweis: konstante Faktoren sind unerheblich
- Beweis: der größte Summand dominiert
- mittlere Komlexität basierend auf Gleichverteilung,
Wahrscheinlichkeitsanalyse
Übungen - Lektüre:
- Bestimmung der Komplexität bei
- einfachen Anweisungen
- Sequenzen
- Schleifen
- Verzweigungen
Material zu Session 1:
Literatur zu Session 1:
- Saake, Sattler: Kap. 7.3.2-7.3.4
- Aho, Hopcroft, Ullman: Kap. 1.5
- Schöning: Kap. 1.7
Session 2: Hashtables
Vorlesung:
- Schlüssel, Hashfunktion, Hashwert
- Auswahl einer guten Hashfunktion, z.B. für Zeichenketten
- Kollisionen
- Kollisionsbehandlung: Sondieren und Verkettung
Übungen - Lektüre:
- Offenes Hashing mit Sondierfunktionen
- Hashing in Java
Material zu Session 2:
- Beispiel Hashing mit Verkettung aus der Vorlesung vom 18.4.2005: MyHashS.java
Literatur zu Session 2:
- Saake, Sattler: Kap. 15
- Aho, Hopcroft, Ullman: Kap. 4.7 und 4.8
- Schöning: Kap. 3
Session 3: Bäume
Vorlesung:
- Gerichteter Graph: Kanten, Knoten, Pfad
- Baum als Sonderfall eines Graphen:
- Wurzel
- Blatt
- innerer Knoten
- Höhe eines Baums
- Niveau eines Knotens im Baum
- n-äre Bäume, Sonderfall binärer Baum
- Suchbäume (geordneter Baum)
- Durchlaufen von Bäumen: Inorder, Preorder, Postorder, Levelorder
- Einfügen und Löschen in Bäumen
- Balancierte Bäume: AVL-Bäume
Übungen - Lektüre:
- Huffman-Kodierung auf Basis binärer Bäume
- Einlesen von Dateien mit Java
- Erstes Beispiel von Exceptions: IOException
- Java-Klasse Vector, Verwendung von Vector als List in Collections
(Sortieren)
- Java-Interface Compareable mit Methode compareTo()
- Heapsort
- Binäre Bäume zur Darstellung von Termen in Polnischer Notation
- Einfügen und Löschen in AVL-Bämen
- Tries als Beispiel von Digitalen Bämen
Material zu Session 3:
Literatur zu Session 3:
- Saake, Sattler: Kap. 14
- Aho, Hopcroft, Ullman: 3
- Schöning: Kap. 8.1
Session 4: Graphen
Vorlesung:
- Kanten und Knoten
- Graph mit:
- gerichteten/ungerichteten Kanten
- gewichteten/ungewichteten Kanten
- Adjazenz
- Sonderfall: Labelled Transition System
- Graphrepräsentation als:
- Kantenliste
- Knotenliste
- Adjazenzmatrix
- Adjazenzliste
- Breitensuche
- Tiefensuche
- Minimierung und Äquivalenz von endlichen, deterministischen Automaten
Übungen - Lektüre:
- Implementierung von Transitionssystemen als Graph
- Dijstra's Algorithmus zur Bestimmung der kürzesten Wege
Material zu Session 4:
Literatur zu Session 4:
- Saake, Sattler: Kap. 16
- Aho, Hopcroft, Ullman: 6,7
- Schöning: Kap. 6
Session 5: Java: Exceptions und Reflection
Vorlesung:
Das reflect--Paket:
- Class
- Field
- Method
- Constructor
- Modifier
Übungen - Lektüre:
- Erforschung des Marsianers
Material zu Session 5:
Literatur zu Session 5:
- Saake, Sattler: Kap. 12.5
Session 6: Textsuche
Vorlesung:
- Brute-Force Ansatz
- Algorithmus von Knuth/Morris/Pratt
Übungen - Lektüre:
- Algorithmus von Boyer/Moore
Material zu Session 6:
Literatur zu Session 6:
- Saake, Sattler: Kap. 17
- Schöning: Kap. 12
Session 7: Graphik
Vorlesung:
- Nicht für das Fachgespräch relevant!
Material zu Session 7:
Literatur zu Session 7:
In diesem Abschnitt findet Ihr die Aufgabenblätter und gegebenenfalls
Zusatzinformationen für die Lektürestunden zum Herunterladen und
ausdrucken.
Die Lösungen zu den Aufgabenblättern müssen mit LaTeX
gesetzt werden. Dazu gibt es die Dokumentenklasse und ein Beispiel für die Erstellung der
Lösungsvorschläge mit LaTeX/pdfLaTeX. Für manche Installationen
(z.B. MikTeX) werden auch noch fancyhdr.sty und moreverb.sty benötigt. Diese kann man aber auch
über das Setup-Programm nachinstallieren (empfohlen)
Für die Bewertung der Programmieraufgaben haben
wir unsere Grundzüge
aufgeschrieben, ebenso wie Hinweise zum
Kommentieren und Testen der
Programme.
Die mit Latex gesetzten Übungszettel werden ausgedruckt und montags
nach der Vorlesung abgegeben. Quellcode müsst ausserdem per Email an eure
Praktikumsleiter schicken.
Die Kriterien für den Erwerb eines Leistungsnachweises werden in der
ersten Vorlesung verhandelt. Der Vorschlag der Lehrveranstalter sieht
folgendermaßen aus:
Ein Übungszettel gilt als erfolgreich bearbeitet, wenn er zu mindestens 40%
gelöst wurde. Es darf nur maximal ein Übungzettel nicht bestanden werden. Bei
der Benotung wird der Übungszettel mit der schlechtesten Bewertung nicht berücksichtigt,
wobei dies auch ein nicht bestandener Zettel sein kann. Die Note ergibt sich
aus der Durchschnittsprozentzahl der erfolgreichen Bearbeitung der restlichen
Übungsblätter:
Ab 95%: 1,0
Ab 90%: 1,3
Ab 85%: 1,7
Ab 80%: 2,0
Ab 75%: 2,3
Ab 70%: 2,7
Ab 65%: 3,0
Ab 60%: 3,3
Ab 55%: 3,7
Ab 50%: 4,0
Unter 50% oder bei mehr als einem nicht bestandenen Übungszettel: nicht bestanden
Aus den Übungszetteln ergibt sich die Vornote für das
Fachgespräch am Ende des Semesters. Hier wird die Einzelleistung der
Gruppenmitglieder überprüft und bewertet.
Alle Fachgespräche werden vom jeweiligen Tutor
durchgeführt. Wiederholungsprüfungen werden bei Jan Peleska
abgelegt.
Zur Prüfung muss der ausgefüllte Schein (gibt's in der 7. Ebene oder hier
als Vordruck zum Ausdrucken) mitgebracht werden:
- Informatik Diplom: Vordruck
- Informatik Bachelor:
Vordruck
- Digitale Medien: Vordruck
- Technomathematik: Vordruck
- Systems Engineering: Scheine liegen bereits vor, nichts mehr mitbringen
- Andere: eigene Scheine mitbringen oder
Informatik-Scheine benutzen (Vordruck) und im eigenen Prüfungsamt anerkennen lassen
Wer im Bachelor-Studiengang ist, muss Diplom einfach durchstreichen. Es gibt
bis jetzt keine gesonderten Scheine.
Die Prüfungen finden in der ersten Woche nach Vorlesungsende
(11.-15.7.2005) statt. Die Termine für die einzelnen Gruppen werden direkt mit
dem Tutor abgesprochen.
An dieser Stelle findet sich eine kleine Auswahl an Literatur zur
Vorlesung. Weitere Lerninhalte, die nicht direkt in der hier genannten
Literatur verfügbar sind, werden als Skripte im Laufe des
Semesters im WWW veröffentlicht, die Links werden in diesem
Abschnitt angegeben.
Literatur zu Java
Zum Erlernen der Programmiersprache Java verfahren wir
folgendermaßen:
-
Die intuitive, motivierende ;-) Einführung in Java erfolgt
auf Grundlage des Tutoriums The Java Tutorial - A practical guide for
programmers welches im WWW unter
http://java.sun.com/docs/books/tutorial zu finden ist.
-
Das systematische, wissenschaftlich ausgerichtete Erlernen von Java
Syntax und Semantik erfolgt auf Grundlage der "offiziellen"
Dokumentation The Java Language Specification von James
Gosling, Bill Joy, Guy Steele und Gilad Bracha. Auch dieses Dokument
ist im WWW erhältlich:
http://java.sun.com/docs/books/jls/index.html
-
Einen guten Einstieg bietet das Handbuch Java 2 , Grundlagen
und Einführung geeignet, welches beim Zentrum für Netze
erhältlich ist. In den Tutorien werden in der ersten Woche
Sammelbestellungen aufgenommen.
- Die Java-Klassenbibliothek zum Nachschlagen
- Java-Buch das auch 1.5 behandelt: Programmieren mit Java von Reinhard
Schiedermeier, Pearson Studium
Online-Literatur zur Java
Algorithmen und Datenstrukturen
- Zu den Themen Algorithmen und
Datenstrukturen wird im Wesentlichen folgendes Buch verwendet:
Gunter Saake, Kai-Uwe Sattler: Algorithmen und Datenstrukturen. dpunkt
2004
- Auch sehr gut:
Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman: Data Structures and
Algorithms. Addison-Wesley 1987
- Etwas tiefergehend:
Uwe Schöning: Algorithmik. Spektrum 2001
Rechnerorganisation und -architektur
- Einige Grundlagen in Bezug auf Rechnerorganisation, -Architektur
und Assembler-/Maschinensprachen werden auf Basis des Buches
W. Oberschelp und G. Vossen: Rechneraufbau und
Rechnerstrukturen. Oldenburg 1998 eingeführt.
Latex
- Für die eingehendere Beschäftigung mit diesem System zum
anspruchsvollen Setzen von Dokumenten ist als Einstieg Leslie Lamport:
Das LaTeX Handbuch. Addison-Wesley 1995
- ebenso wie Helmut Kopka: LaTeX Einführung, Band
1. Addison-Wesley 2000 zu empfehlen.
- Alles, was in Bezug auf LaTeX für die Abgabe der
Aufgabenblätter notwendig ist,
findet man ebenfalls in der online verfügbaren Kurzanleitung zu LaTeX
Linux und Unix
- Eine Einführung in die Grundlagen der Benutzung des UNIX
bzw. Linux Betriebssystems findet man in dem
SuSE-Linux
Handbuch im Kapitel 19. Interessant sind dabei insbesondere die
Abschnitte 19.5 bis 19.9.
Nachschlagewerke
Allgemeine Fachbegriffe und auch spezielle Begriffe der Informatik
werden häufig sehr gut in den im WWW
verfügbaren Nachschlagewerken erklärt.
Online-Wörterbuch Deutsch-Englisch
Ein sehr gutes Wörterbuch für Übersetzungen Deutsch-Englisch wird von der
TU-Chemnitz zur Verfügung gestellt:
http://dict.tu-chemnitz.de
Wenn Ihr lieber zuhause arbeiten möchtet, so könnt Ihr das unter allen
gängigen Betriebssystemen tun - alle notwendigen Tools dafür stehen
kostenfrei im Internet zur Verfügung.
Für Linux (auch auf jeder aktuellen Distribution vertreten):
Für Windows:
Eine Einführung in die Installation von Latex unter Windows findet ihr
hier (Miktex-Webseite) und
hier
(bebildertes pdf-Dokument).
Für MacOS:
|
|