Latest update: February 01, 2011
Zielgruppe
Zusammenfassung
Ziele
Voraussetzungen
Organisatorischer Rahmen
Inhaltsübersicht
Literatur
Vorlesungsmaterialien
Übungen
Entsprechend der Rahmenregelung der BTU, die für alle Studierende
gilt, erfolgt die Anmeldung für einen Modul ONLINE beim
Prüfungsamt und muß von jedem Teilnehmer eigenverantwortlich
innerhalb der ersten zwei Wochen durchgeführt werden.
Von dieser Anmeldung kann
man innerhalb der ersten
sieben
Wochen schriftlich/online zurücktreten.
Für diese Veranstaltung wurde
diese
Frist um eine Woche verlängert und endet damit am 04.12.2010
(diese Sonderregelung wurde bestätigt) .
Mit der Anmeldung zu einer
Lehrveranstaltung ist man für die
zugehörige
Prüfung angemeldet.
Die Lehrveranstaltung besteht pro Woche aus einem Block Vorlesung, einem Block Laborübung und einem ergänzenden Block Hörsaalübung (4 SWS, 6 ECTS).
dienstags, 3. Block, Audimax 2; Beginn: 12.10.2010;
Gruppeneinteilung und organisatorische
Leitung:
Frau Mielcarek-Claus, claus(at)informatik(dot)tu-cottbus(dot)de
Für weitere Informationen siehe Übungsseite.
Jeder Teilnehmer muss sich zu EINER Laborübung und zu
EINER
Hörsaalübung
anmelden.
Diese Einschreibung erfolgt ONLINE über das
Einschreibsystem LEHVIS
(LEHrVeranstaltungsInformationsSystem) vom 12.10.2010 - 31.10.2010 und
ist für jeden
Teilnehmer verpflichtend. Die Teilnahme an den Laborübungen ist
verpflichtend, die Teilnahme an den Hörsaalübungen ist fakultativ.
Hörsaalübungen werden im Hörsaal durchgeführt und dienen dem interaktiven Vorrechnen von ergänzenden Übungsaufgaben, Fragen sind willkommen.
Laborübungen werden im Computerlabor durchgeführt und dienen v.a. zur Bearbeitung der Übungsblätter mit individueller Betreung durch Tutoren.
Jedes Übungsblatt enthält Pflichtaufgaben. Die Pflichtaufgaben sind von jedem Teilnehmer SELBSTÄNDIG zu lösen. Die Lösungen sind termin- und formgerecht und INDIVIDUELL beim Tutor per eMail abzugeben. Die Entscheidung hierüber liegt beim Tutor.
Die Lösungen werden mit 0 ("nicht bestanden!), 1 ("ausreichend") oder 2 ("gut") bewertet.
Während der Laborübungen werden zufällig ausgewählte Studenten gebeten, ihre Lösungen vorangegangener Übungsblätter zu erläutern. Sollten Sie dabei in "Erklärungsnot" geraten, gilt die Abgabe als "nicht bestanden".
Pro Laborübung sind ca 2/3 der Zeit für Hilfestellungen beim Lösen
neuer Übungsaufgaben vorgesehen und 1/3 für individuelle Kontrollfragen
zu eingereichten Lösungen.
Die Übungen beginnen in der zweiten Vorlesungswoche (42. KW 2010).
Informatik, Hardware/Software,
geozentrische/heliozentrische Weltbild der Informatik,
Algorithmus, Notationen, Eigenschaften; Beispiel Euklid;
Lineare Programme (Konstanten, Variablen, Wertzuweisung,
E/A-Anweisung), Typkonzept,
Verzweigte Programme (if-Anweisung, switch-Anweisung),
Programme mit Schleifen (while-Anweisung, do-while-Anweisung,
for-Anweisung);
strukturierte Sprünge (break, continue);
Syntax, Semantik, Pragmatik;
Reihungen (Arrays), Strukturen (Records) und deren
Kombination;
Umgang mit Pointern (Zeigervariablen);
Motivation, Deklarationsniveau, Deklarationsreihenfolge,
Abarbeitungsreihenfolge;
Unterprogramme mit/ohne Parameter bzw mit/ohne Ergebnis;
Prozeduren/Funktionen;
call-by-value/call-by-reference - Parameterübergabe; Pointer als
Parameter;
gleichnamige Unterprogramme; rekursive Unterprogramme;
Tolerieren einfacher Nutzungsfehler wie Overflow/Underflow
bzw. unzulässiger Eingabewerte;
Reagieren auf Standard- bzw. nutzerdefinierte Ausnahmen;
zwei Klassenbibliotheken: AWT bzw. Swing, wesentliche
Unterschiede;
Aufbau einer GUI aus Interaktionselementen (Button, Choice, Canvas,
Label, Textfield, ...) und Darstellungsflächen (Frame, Panel, ...);
drei Layout-Prinzipien: Flow, Grid, Border;
Ereignisbehandlung: Hörerklassen, Hörerobjekte
und deren geeignete "Einplanzung";
in vier Schritten vom
(1) (top-down strukturierten) monolithischen Programm über
(2) modulare Programmierung und
(3) Verwendung abstrakter Datentypen (ADT) zur
(4) objekt-orientierten Programmierung;
Darstellung der Abhängigkeiten in einem Modulgraphen =
Klassendiagramm mit drei Relationen (Kantentypen): "benutzt",
"implementiert", "beerbt";
die Schlüsselwörter: static, public, private, interface, implements,
extends, abstract;
Grundideen der Objektorientierung:
drei Merkmale: Datenkapselung (-> ADT), Polymorphie,
Vererbung;
graph. Darstellung der Vererbungshierarchie durch einen Baum (bei
Einfachvererbung) -> Klassendiagramm;
Prinzip zur Auswahl der auszuführenden Operation (aufwärts
entlang der Vererbungslinie);
sprachliche Feinheiten: super, this, abstract, cast (Zuschnitt);
Datei als externes Speichermedium zur Kommunikation
zwischen
Programmen;
Grundidee in Java: jede Art von E/A basiert auf dem Lesen/Schreiben
von
Datenströmen (sequentiellen Dateien);
ungetypte und getypte einfache Dateiarbeit; ]
einfach und doppelt verkettete lineare Listen (Zeigerstrukturen);
Grundoperationen zum Erzeugen, Einfügen, Löschen von
Listenelementen und zum Durchlauf durch eine Liste;
Anwendungsbeispiele: dynamische Integer-Zahlen,
Adjazenzlisten-Implementierung für Graphen;
Graphen in der diskreten Mathematik;
allg. Bäume: Eigenschaft, wesentliche Begriffe zur
Arbeit mit Bäumen;
binäre Bäume: Eigenschaft, zwei
Implementierungsvarianten; Durchlaufverfahren:
Preorder, Inorder, Postorder;
binäre Suchbäume: Eigenschaft, Suche im Suchbaum;
ausgeglichene Suchbäume;
ein allg. Verfahren zur Auswertung beliebiger Formeln mit Hilfe von Formelbäumen und dem ADT Keller;
3.4 Sortieralgorithmenzum Begriff der Laufzeitkomplexität - ein Ansatz zum
(groben) Vergleich von Algorithmen;
elementare Verfahren, spezielle Verfahren, höhere Verfahren - ein
Überblick;
Model-basierter Entwurf technischer Systeme, einige Grundbegriffe;
--------------- aktueller stand --------------- aktueller stand --------------- aktueller stand ---------------Hier ein alternatives EA-Paket dssz.io.zip; entpacken und das Verzeichnis in die Systemvariable "classpath" eintragen. Hier ein Testprogramm: Wuerfel_dssz_io.java. Alle weiteren Beispiele benutzen dieses Paket "dssz.io".
Achtung beim Divisionsoperator:DivDemo.java demonstriert den Unterschied zwischen ganzzahliger und reeller Division.
IfDemo1.java IfDemo2.java IfDemo3.java IfDemo4.java *)Eine einfache Implementierung für Formeln in
Postfix-Notation, die nur die vier binären Grundoperationen
zulassen, diese aber in beliebiger Kombination;
basiert auf den java.util-Klassen Stack und StringTokenizer, ausserdem
wird die Wrapper-Klasse Double für den primitiven Typ double
verwendet;
demonstriert auch sehr schön die Trennung von Funktionalität
und (textueller bzw. graphischer) Oberfläche:
Postfixrechner.java *)
PostCalcT.java
*)
PostCalcG.java *)
IntIO.class
*)
hier eine txt-Datei
mit dem
Java-Programmkode
der in der Vorlesung angesprochenen Algorithmen,
... und hier zwei Programme zur Visualisierung ausgewählter
Algorithmen
als jar-Dateien (Aufruf: java -jar <file name>.jar)
sortDemo1.jar
sortDemo2.jar
Einführung Petrinetze.pdf (8 p.)
Hier gibt es einpaar im Web-Browser animierbare Beispiele,
diese Petrinetze.zip
können mit unserem Petrinetz-Werkzeug
Snoopy ausgeführt werden.
sachdienliche Hinweise zu dieser Seite bitte an: