|
Diese Seite gibt weitere Informationen zur Vorlesung. Wir bemühen
uns diese Informationen so aktuell wie möglich zu halten.
Aktuelles
- Denkt bitte daran, den ausgefüllten Schein zum Fachgespräch mitzubringen!
Weiteres unter "Kriterien für den Erwerb eines
Leistungsnachweises"
- Bitte beachtet, dass bei Aufgabenblatt 11 die einfach verkettete Liste als
vorlage dienen soll. Das bedeutet konkret, dass der Anfang und das Ende der
Liste durch Dummy-Elemente markiert werden und es einen Zeiger auf das
aktuelle Element gibt.
- Die einfach verkettete Liste aus der Vorlesung ist online. Sie dient auch
als Vorlage für den neuen Übungszettel.
- Aufgrund der Aktionen gegen die Einführung von Studiengebühren ist die
Abgabe des nächsten und letzten Zettels ausnahmsweise auf die Praktika am
Mittwoch und Donnerstag verlegt.
- Die Fachgesprächstermine und Räume
stehen fest (zu finden unter "Kriterien für den Erwerb eines
Leistungsnachweises").
- Neue Literaturhinweise zu Java (Klassenbibliothek
und Buch, dass Java 1.5 behandelt).
- Die Nachhilfestunden finden ab dem
14.12.2004 immer dienstags von 12-14 Uhr im Raum P1 der Ebene 0 statt. Eine
Anmeldung ist nicht erforderlich. Dieses Angebot richtet sich insbesondere an
alle, denen im Zwischenfachgespräch die Teilnehme empfohlen wurde, aber
natürlich auch an alle, die gerne zusätzliche Vertiefung am Rechner machen
möchten.
- Die Java-Bücher im Rechenzentrum sind ausverkauft, neue
Exemplare wird es im nächsten Jahr geben.
- Aufgrund der großen
Nachfrage wurde eine weitere Übungsgruppe (Gruppe 12) eingerichtet. Für diese
Gruppe meldet euch bitte direkt bei an und gebt
unbedingt eure vorige Gruppennummer an. Hier sind besonders die Leute aus den
Übungsgruppen mit mehr als 30 Teilnehmern angesprochen. Ihr bekommt dann eine
Bestätigungsmail, ob ihr in die neue Gruppe wechseln könnt oder nicht. Ziel
ist es, für eine möglichst gleimäßige Verteilung der Teilnehmer auf die
Tutorien zu sorgen. Wenn ihr als komplette Gruppe von 3-4 Leuten wechseln
wollt, schickt bitte eine Mail mit allen Namen!
Inhalt dieser Seite
Termine
VAK: |
03-700.01 / 03-700.01a |
Semester: |
WiSe 04/05 |
Vorlesung: |
Mo. 10:00 - 12:00, HS Grosser
Hörsaal (2010),
regulär ab 25.10.2004 (inkl. Tutoriums- und Praktikumsbetrieb) |
Tutorien und Praktika werden in kleinen Übungsgruppen abgehalten. Die
Eintragung in die Gruppen findet am 21.10.2004 ab 9.00 Uhr in der Ebene 7 des
MZH statt. Bitte sorgt für eine gleichmässige Auslastung der Gruppen.
Tutorien/Praktika: |
Gruppe 1 |
Tutorium:
Praktikum: |
Mo. 15-17 Uhr,
MZH
7230
Mi. 9-12 Uhr,
MZH
0190 (P1) |
|
Gruppe 2 |
Tutorium:
Praktikum |
Mo. 15-17 Uhr,
MZH
7220
Mi. 9-12 Uhr,
MZH 0210/0220 (P2) |
|
Gruppe 3 |
Tutorium:
Praktikum: |
Mo. 17-19 Uhr,
MZH
7210
Mi. 9-12 Uhr,
MZH 0230/0240 (P5) |
|
Gruppe 4 |
Tutorium:
Praktikum: |
Mo. 17-19 Uhr,
MZH
6240
Mi. 13-16 Uhr,
MZH 0190 (P1)
|
|
Gruppe 5 |
Tutorium:
Praktikum: |
Mo. 17-19 Uhr,
MZH
7220
Mi. 13-16 Uhr,
MZH 0230/0240 (P5) |
|
Gruppe 6 |
Tutorium:
Praktikum: |
Mo. 17-19 Uhr,
MZH
7230
Do. 9-12 Uhr,
MZH 0190 (P1) |
|
Gruppe 7 |
Tutorium:
Praktikum: |
Di. 8-10 Uhr,
MZH
7230
Do. 9-12 Uhr,
MZH 0210/0220 (P2) |
|
Gruppe 8 |
Tutorium:
Praktikum: |
Di. 8-10 Uhr,
MZH
7250
Do. 13-16 Uhr,
MZH 0210/0220 (P2) |
|
Gruppe 9 |
Tutorium:
Praktikum: |
Di. 8-10 Uhr,
MZH
7260
Mi. 16-19 Uhr,
MZH 0190 (P1) |
|
Gruppe 10 |
Tutorium:
Praktikum: |
Mi. 17-19 Uhr,
MZH
7210
Do. 16-19 Uhr,
MZH 0210/0220 (P2) |
|
Gruppe 11 |
Tutorium:
Praktikum: |
Mi. 17-19 Uhr,
MZH
7220
Do. 16-19 Uhr,
MZH 0230/0240 (P5) |
|
Gruppe 12 |
Tutorium:
Praktikum: |
Mi 13-15 Uhr,
5210
Do. 13-16 Uhr,
MZH
0190 (P1) |
|
Die Studenten der Hochschule für Künste haben eine separate Veranstaltung ,
die in der HfK stattfindet. Nähere Auskünfte erteilen hier:
,
und
Die Veranstaltung ist in drei 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.
- Keine Theorie ohne Praxis: Im Programmierpraktikum werden
die erarbeiteten Konzepte im Rahmen von Programmieraufgaben umgesetzt.
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: Grundlagen aus der technischen Informatik
Vorlesung:
-
Begriffe: von-Neumann'sche Rechnerorganisation und
Rechnerarchitektur
-
CPU und ihre Grundstruktur (Register und
Befehlszähler)
-
Datenbus und Adressbus, Cache, RAM und ROM,
Hintergrundspeicher
-
Bytes, Bits, Maschinenworte
-
Ein-/Ausgabeeinheit
- Arbeitsweise einer CPU ("fetch"-"execute")
-
Assembler und Maschinensprache
-
Speicheradresse versus
Speicherinhalt, Speicherwort
-
Darstellung nicht-negativer ganzer Zahlen
- Der Begriff des Algorithmus: terminierender Algorithmus -
deterministischer Ablauf eines Algorithmus - determiniertes Ergebnis eines
Algorithmus
-
Die Hierarchie der Programmiersprachen (von "unten nach oben",
d.h. von hardwarenah bis anwendungsnah): (1) CPU Mikrocode (2)
Maschinencode (3) Assembler (4) Wide-spectrum Languages, 3rd generation
(C,C++,Java,Ada,...) (5) Domain-specific Languages
(anwendungsspezifische Sprachen)
- eine fiktive Assemblersprache und
ihre Realisierung im Mikrocode
- Compiler und Interpreter
- Java Compiler, Java Virtual Machine, Java Laufzeitumgebung
Übungen - Lektüre:
- Wiederholung von Grundbegriffen aus der Logik
- Funktionen und Relationen
- binäre Darstellung positiver ganzer Zahlen
- Beispiele zur Umsetzung einer fiktiven Assemblersprache in
Maschinencode
- Beispiele zur Umsetzung von Pseudocode in eine fiktive
Assemblersprache
Programmierpraktikum:
- Textverarbeitung in LaTeX
- Emacs im LaTeX Mode
- pdflatex und Acrobat Reader - xdvi - ghostview
- LaTeX-Templates für die Abfassung von Übungsaufgaben
Material zu Session 1:
- Folie zur von Neumannschen Rechnerarchitektur aus der Vorlesung vom
25.10.2004: pdf
- Folie zum Aufbau des Speichers aus der Vorlesung vom 25.10.2004: pdf
- Folie zum Aufbau einer CPU aus der Vorlesung vom 25.10.2004: pdf
- Folie zum I/O aus der Vorlesung vom 1.11.2004: pdf
- Hintergrund: Mikroinstruktionen und Pseudoassembler: pdf
- Hintergrund: Unix- und Latexgrundlagen: pdf
Literatur zu Session 1:
- Oberschelp und G. Vossen: Rechneraufbau und Rechnerstrukturen, Kapitel
8
- Gunter Saake, Kai-Uwe Sattler: Algorithmen und Datenstrukturen, Abschnitt
2.1
Session 2: Erste Schritte in Java
Das Lernziel dieser Session besteht darin, ein intuitives Verständnis für die
Programmiersprache Java zu bekommen. Weiterhin wird das Verständnis für den
Entwurf einfacher Algorithmen vertieft. Dabei sollten die Vorzüge einer
algorithmischen Beschreibung mit den Kontrollstrukturen einer
3GL-Programmiersprache wie Java gegenüber der Umsetzung in Assembler
klar werden.
Vorlesung:
- Grundstruktur eines Java-Programms - die main-Methode
- Kommentare
- Deklaration lokaler Variablen: die Basisdatentypen int,
long, float, double, boolean,
- Deklaration lokaler Variablen: Arrays von Basisdatentypen, Strings
- Ausdrücke (expressions) und Anweisungen (commands)
- Zuweisungen
- Operatoren auf Basisdatentypen
- Kontrollstrukturen:
- Sequenzoperator ;
- Bedingte Verzweigung if-else
- Verzweigung durch switch
- Schleifen: while, do-while, for
- Ausgabeanweisung System.out.println()
- Blöcke und Scope
- Statische Funktionen
- Imperative Algorithmen
- Spezifikationen, Precondition, Postcondition
- Datenabstraktion
- Semantik imperativer Algorithmen/Sprachen
Übungen - Lektüre - Praktikum:
- Vertiefung der in der Vorlesung vorgestellten Java-Konstrukte, Beispiele
in Java
- Integerzahl als Bitcode ausgeben
- Elemente im Array suchen
- Minimum/Maximum im Array suchen
- Konstanten
- Übungen zur Semantik imperativer Anweisungen
Programmierpraktikum.
- Einstieg in die Programmierung mit Java: Shell, Editor, Compiler
Material zu Session 2:
Literatur zu Session 2:
- Die unten angegebene Literatur über Java, insbesondere Java 2 , Grundlagen
und Einführung (in den Tutorien wurden bereits Sammelbestellungen
aufgenommen).
- Oberschelp und G. Vossen: Rechneraufbau und Rechnerstrukturen, Kapitel
11.4, bzgl. Linker Loader etc.
- Gunter Saake, Kai-Uwe Sattler: Algorithmen und Datenstrukturen,
Abschnitt 3.3 bzgl. imperativen Algorithmen
Session 3: Erste Algorithmen und Datenstrukturen
Vorlesung:
Übungen - Lektüre - Praktikum:
- Binäre Suche
- Bubblesort
- Mergesort
Material zu Session 3:
- Das "Quicksort"-Programm aus der Vorlesung vom 6.12.2004:
QuickSort.java
Literatur zu Session 3:
- Gunter Saake, Kai-Uwe Sattler: Algorithmen und Datenstrukturen,
Kapitel 5
Session 4: Systematische Java-Spracheinführung
Vorlesung:
- Grammatik-Beschreibung mit BNF und EBNF
- Ausdrucksmächtigkeit von BNF im Vergleich zu regulären Sprachen
- Syntaxchecker
- Objektorientierung und Java:
- Klassen und Instanzen
- Geheimnisprinzip/Kapselung
- Operationen/Methoden
- Vererbung und Polymorphismus
- Überladen und Überschreiben von Methoden
Übungen - Lektüre - Praktikum:
- Syntaxdiagramme
- Ableitungsbäume
- Java und Objektorientierung
- Dynamische Typen, dynamisches Binden von Methoden
Material zu Session 4:
- Der Syntaxchecker aus der Vorlesung vom 10.1.2005:
Simplesyncheck.java
- Der Syntaxchecker aus Kirsten's Tutorium vom 12.1.2005:
Syntaxchecker.java
- Ein kleines "Zeichenprogramm" mit Interfaces, Vererbung und was es sonst
noch so gibt (als eigenständiges Java-Programm und als Applet) aus Kirsten's
Tutorium vom 19.1.2005:
malennachzahlen.zip
- Noch ein Beispiel zu Vererbung und Javadoc aus Kirsten's Tutorium vom
26.1.2005:
funktionen.zip
- s. auch Beispiel zuege.zip aus Session 5
- Hintergrundmaterial zur Objektorientierung
Literatur zu Session 4:
Session 5: Algorithmen und Datenstrukturen: Listen und Stacks
Vorlesung:
- Listen: mathematische Definition
- Operationen auf Listen: erstellen, einfügen, löschen, traversieren, ...
- Pre- und Postconditions zur Spezifikation von Methoden
- Last-in-first-out (LIFO)- und First-in-first-out (FIFO)-Queues
Übungen - Lektüre - Praktikum:
- Doppelt verkettete Listen
- Stacks auf Basis von Listen
Material zu Session 5:
- Beispiel für die Tutorien: Zuege als Listenimplementierung mit weiteren
Aspekten der Vererbung (u.a. dynamisches Binden):
zuege.zip
- Beispiel aus der Vorlesung: Einfach
verkettete Liste
Literatur zu Session 5:
- Gunter Saake, Kai-Uwe Sattler: Algorithmen und Datenstrukturen,
Kapitel 13
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 Übunszettel werden ausgedruckt und montags zu
Beginn der Vorlesung abgegeben. Quellcode müsst außerdem 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.
In der Mitte des Semesters findet ein "kleines Fachgespräch"
statt. Dies betrifft nur Gruppen, deren erste Übungszettel nicht so
erfolgreich waren. In der zweiten Hälfte des Semesters werden Leute, die
Schwierigkeiten mit dem Stoff haben, in kleinen Gruppen speziell
gefördert.
Alle Fachgespräche werden vom jeweiligen Tutor im Beisein des
Praktikumsbetreuers durchgeführt. Wiederholungsprüfungen werden bei
Jan Peleska abgelegt.
Termine für die Fachgespräche:
Gruppe |
|
Datum |
Raum |
1 | (Paul/Matthias) |
16.2.05 | MZH 8190 |
2 | (Shi/Nikola) |
17.2.05 | MZH 8140 |
3 | (Jan Oliver/Jan Ole) |
14.2.05 | MZH 5400 |
4 | (Artur/Matthias) |
14.2.05 | MZH 7230 |
5 | (Stefan/Jan) |
14.2.05 | MZH 5140 |
6 | (Tom/Vadym) |
14.2.05 | MZH 7230 |
7 | (Shi/Zicheng) |
15.2.05 | MZH 8140 |
8 | (Elena/Torsten) |
18.2.05 | MZH 7230 |
9 | (Thomas/Alexandre) |
15.2.05 | MZH 7230 |
10 | (Elena/Vu) |
17.2.05 | MZH 7230 |
11 | (Kirsten/Stefan) |
16.2.05 | MZH 8175 |
12 | (Kirsten/Matthias) |
16.2.05 | MZH 8175 |
Jan Peleska prüft auf Wunsch am 14.2.05 im Raum MZH 8175.
Die Wiederholungsprüfungen finden am 30. und 31.3.05 ebenfalls im Raum MZH
8175 statt.
Zur Prüfung muss der ausgefüllte Schein (gibt's in der 7. Ebene oder hier
als Vordruck zum Ausdrucken) mitgebracht werden:
- Informatik: Vordruck
- Digitale Medien: Vordruck
- Systems Engineering: Scheine liegen bereits vor, nichts mehr mitbringen
- Technomathematik/Mathematik/Nebenfächler: eigene Scheine mitbringen oder
Informatik-Scheine benutzen und im eigenen Prüfungsamt anerkennen lassen
Wer im Bachelor-Studiengang ist, muss Diplom/Master durchstreichen und
Bachelor drüberschreiben. Es gibt bis jetzt keine gesonderten Scheine.
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 zur Vorlesung
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
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:
|
|