01. Vorlesung (15.10.2013)

Werbung
Lehrstuhl für Informatik I
Algorithmen und Datenstrukturen
Wintersemester 2013/14
Organisatorisches
Vorlesung:
Alexander Wolff (E29)
Übungsbetreuung:
Krzysztof Fleszar (E13)
Übungen:
Markus Ankenbrand
Thomas Prantl
Florian Wisheckel
Alexej Grigorjew
David Pfrang
Anna Seufert
Programmiertutorium:
Florian Wisheckel (E40)
Algorithmen. . .
. . . sind (wohldefinierte, endliche) Folgen von Anweisungen,
die aus einer Eingabe eine Ausgabe produzieren.
Algorithmus
Eingabe
Beispiele:
Ausgabe
Kochrezepte
Algorithmen zur Verknüpfung (+, −, ·, :)
zweier Zahlen in Dezimaldarstellung
Euklidscher Algorithmus
Dijkstras Algorithmus
Algorithmen. . .
Frage:
Ist ein ausführbares Java-Programm ein Algorithmus?
Ein Algorithmus ist eine (wohldefinierte, endliche) Folge von
”
Anweisungen, die aus einer Eingabe eine Ausgabe produziert.“
Antwort:
Dem Buchstaben der Definition nach: JA.
Dem Geiste nach: NEIN. Ich würde sagen:
Ein Algorithmus ist ein abstraktes Konzept;
ein Programm ist eine Instanz dieses Konzeptes.
Algorithmus
in natürlicher Sprache
oder
in Pseudocode fixiert
Programmierer
ausführbares Programm
– maschinenlesbar
– meist länger als Beschreibung des Algorithmus
. . . und Datenstrukturen
Datenstruktur:
Konzept, mit dem man Daten speichert und anordnet,
so dass man sie schnell finden und ändern kann.
Abstrakter Datentyp:
beschreibt die Schnittstelle“ einer Datenstruktur –
”
welche Operationen werden unterstützt?
Implementierung:
wie wird die gewünschte Funktionalität realisiert:
– wie sind die Daten gespeichert (Feld, Liste, . . .)?
– welche Algorithmen implementieren die Operationen?
Algorithmen & Datenstrukturen
Lernziele: In dieser Veranstaltung werden Sie lernen. . .
die Effizienz von Algorithmen zu messen und
miteinander zu vergleichen,
grundlegende Algorithmen und
Datenstrukturen in Java zu implementieren,
selbst Algorithmen und Datenstrukturen zu
entwerfen sowie
deren Korrektheit und Effizienz zu beweisen.
Inhalt:
Grundlagen und Analysetechniken
Sortierverfahren
Entwurfstechniken für Algorithmen
Datenstrukturen
Algorithmen für Graphen
Systematisches Probieren
Ihre Voraussetzungen
Schulmathematik, insbesondere:
logb x
= logy x
z.B.
logb y
?
– Grundrechenarten & Logarithmus
Pn
– Drei Summen: 1) i =1 i arithmetische Reihe
Pn
2) i =0 q i geometrische Reihe
Pn 1
3) i =1 i harmonische Reihe
– Linearität des Erwartungswerts
E [X + Y ] = E [X ] + E [Y ]
– Beweise mit vollständiger Induktion
– Widerspruchsbeweise
...
1
2
3
...
n n+1
Bereitschaft sich in Java hineinzudenken und -zuüben
Keine Angst vorm Fragenstellen!!!
Studienverlaufsplan BA Informatik
0
10
20
ECTS
SWS: ca. 20
30
6
5
4
3
2
1
Seminar
Hardwareprakt.
Softwareprakt.
Mathe Inf III
Bachelorarbeit
Wahl pflicht
Theo. Inf.
Progr.-Prakt.
Koll.
Sem.
Allgemeine
Schlüsselqualifikationen
Algorithmische
Graphentheorie
Seminar
Logik
Mathe Inf II
Rechenanlagen
Softwaretech.
Mathe Inf I
Algorithmen+
Datenstrukt.
Inf-Übertrag.
10 ECTS ≈ 20 h/Woche
Organisation I: Wochenplan
Montag
Dienstag
Mittwoch
Zuse-HS
10–12
Vorlesung
Zuse-HS
Programmiertutorium E40
10:00–12:00
12–14
Übung
Übung
SE I
SE II
16–18
Freitag
Vorlesung
08–10
14–16
Donnerstag
Finden diese
Woche
schon statt!
Übung
Übung
E40
SE II
Übung
Übung
SE I
SE II
Abgabe
Ausgabe
Lösungen Ü-Blatter
WueCampus
12:00
Laptop nötig!
(Außer E40 )
Organisation II: Semesterplan
15.10.
17.10.
22.10.
24.10.
29.10.
31.10.
05.11.
07.11.
12.11.
14.11.
19.11.
21.11.
26.11.
28.11.
03.12.
05.12.
10.12.
12.12.
17.12.
19.12.
24.12.
–06.01.
07.01.
09.01.
14.01.
16.01.
21.01.
23.01.
28.01.
30.01.
04.02.
06.02.
14.02.
Start: heute!
Spielregeln.
Sie kriegen Ihre ETCS, wenn Sie
1. Test
zur Klausur zugelassen werden.
Dazu brauchen Sie:
– 40% aller Testpunkte
(Einzelarbeit)
2. Test
Weihnachten
Hl. 3 Könige
3. Test
– 50% aller Übungspunkte
(Arbeit in 2er/3er-Gruppen)
– 0% Plagiate
und die Klausur bestehen:
– 1. Termin oder 2. Termin
– Sie dürfen (∞ oft) wiederholen,
solange Sie nicht bestehen.
1. Klausur
10:00–12:00 Turing+Zuse 2. Klausur: 31.03., 10:00–12:00, Zuse-HS
Literatur I
Cormen, Leiserson, Rivest, Stein:
Introduction to Algorithms
MIT Press, 3. Aufl., 2009. Ca. 52 e. oder
Algorithmen – eine Einführung
Oldenbourg, 3. Aufl., 2010. Ca. 80 e.
Ottmann & Widmayer:
Algorithmen und Datenstrukturen
Spektrum-Verlag, 5. Aufl., 2012. Ca. 50 e.
Mehlhorn & Sanders:
Algorithms and Data Structures:
The Basic Toolbox
Springer, 2008. Ca. 38 e.
Goodrich & Tamassia:
Data Structures & Algorithms in Java.
Wiley, 5. Aufl., 2010. Ca. 115 e.
Literatur II
D. Ratz, J. Scheffler, D.Seese, J.Wiesenberger:
Grundkurs Programmieren in Java (Band 1)
Hanser Verlag
http://www.grundkurs-java.de/
C. Ullenboom:
Java ist auch eine Insel
Galileo Computing
openbook.galileocomputing.de/javainsel/
TO DO
Erfüllen Sie die
Voraussetzungen?
logb x
=?
logb y
Lesen Sie Anhang A im Buch von
Corman et al.!
Lösen Sie die Übungsaufgaben dazu!
Schreiben Sie sich in die VL ein!
– Vorlesungsfolien und Übungsblätter:
wuecampus2.uni-wuerzburg.de
WueCampus“
”
– Übungseinteilung bis Do, 13:00 Uhr:
https://www-sbhome1.zv.uni-wuerzburg.de sb@home“
”
Installieren Sie vor Ihrer Übung
– das Java Development Kit (JDK 7u40 Standard Edition):
www.oracle.com/technetwork/java/javase/downloads
– die Java-Entwicklungsumgebung Eclipse (neuste Version):
www.eclipse.org/downloads
Herunterladen