Algorithmen und Datenstrukturen CS1017 - Benutzer

Werbung
Algorithmen und
Datenstrukturen CS1017
Th. Letschert
TH Mittelhessen Gießen
University of Applied Sciences
Organisatorisches und
Einführung
Administratives
Lehrpersonal
Dozent
Dr. Letschert
Tutoren
Alissia Sauer
Jonas Dickel
Nina Isensee
Seite 2
Administratives
Unterlagen


Folien, Aufgaben, siehe Moodle-Kurs
Literatur
Unser Stoff ist
elementarer als der in
der üblichen Literatur
zum Thema.
Levitin: Introduction to the Design and Analysis of Algorithms (3te Auflage, 2012)
Cormen, Leiserson, Rivest, Stein: Algorithmen - Eine Einführung
Saake, Sattler: Algorithmen und Datenstrukturen: Eine Einführung mit Java
Sedgewick: Algorithmen in Java
Veranstaltungsform



6 SWS: 4V + 2Ü
Bitte bringen Sie Ihr Notebook mit einer funktionieren Java-Installation (Eclipse,
o.a.) zu jeder Veranstaltung mit!
Bitte kommen Sie pünktlich und nur wenn Sie sich an der Veranstaltung aktiv oder
passiv beteiligen wollen!
Seite 3
Administratives
Bewertung


Für Teilnehmer die bereits jetzt Klausurzulassung haben: Eine Klausur
Bitte melden Sie sich bis spätestens zu 1. 6. wenn Sie bereits über eine Zulassung
verfügen!
Alle Teilnehmer, die eine Klausurzulassung noch erreichen müssen, benötigen zwei
Hausübungen als Klausurzulassung. Die Bewertung der Hausübungen kann in die
Endnote einfließen.
Seite 4
Administratives
Hausübungen
Die Klausurzulassung wird mit zwei bestandenen Hausübungen erreicht.
Hausübung 1
Hausübung 1 gilt als erledigt wenn 5 sogenannte HÜ-1–Übungen (auch SternchenAufgaben) erfolgreich präsentiert wurden. Diese Übungen werden auf den
Übungsblättern besonders gekennzeichnet.
Jede weitere erfolgreich präsentierte HÜ-1-Übung wird mit einem Bonuspunkt
honoriert.
Die Präsentation erfolgt individuell bei und in Absprache mit den Tutoren. Dabei
muss auch demonstriert werden, dass die Lösung selbständig erarbeitet wurde.
Bei der Präsentation der ersten HÜ-1–Übung muss der Nachweis erbracht werden,
dass die Veranstaltung OOP erfolgreich absolviert wurde. (Bitte einen Notenauszug
mitbringen.)
Seite 5
Administratives
Hausübungen
Hausübung 2
In dieser Hausübung wird ein Programmierprojekt bearbeitet.
Hausübung 2 wird in Gruppen von 1 – 4 Mitgliedern bearbeitet.
Die Anmeldung zu Hausübung 2 muss bis zum 1. 6. 2016 erfolgen. Alle
Gruppenmitglieder müssen dazu 4 der notwendigen 5 HÜ-1–Übungen erreicht
haben.
Hausübung 2 wird in einem seminaristischen Vortrag präsentiert und verteidigt.
Die gelöste Aufgabe (als Jar-Datei) sowie die Folien der Präsentation (als PDF-Datei)
müssen vor der Präsentation eingereicht und akzeptiert werden.
Bei der Präsentation müssen alle Gruppenmitglieder anwesend sein und ihren
Beitrag zur Lösung der Aufgabenstellung überzeugend darstellen.
Seite 6
Administratives
Übungsbetrieb
Von den Teilnehmern wird eine aktive Beteiligung am Übungsbetrieb erwartet.
– Mehrere Übungstermine
stehen dabei am Freitag zur Auswahl: 1-ter, 2-ter und 3-ter Block
– Zur Präsentation der Hausübungen
können andere oder zusätzliche Termine vergeben werden.
Seite 7
Administratives
Vorausgesetzte Kenntnisse
Kenntnisse und Fertigkeiten, die nach einem erfolgreichen Abschluss folgender
Veranstaltungen erwartet werden:
– Grundlagen der Informatik
– OOP
– Diskrete Strukturen
Vorausgesetzte Leistungen
Die Teilnahme an der Veranstaltung setzt laut Modulhandbuch voraus:
– Grundlagen der Informatik
– OOP
Formal geprüft wird davon nur OOP:
Ohne eine vorliegende Leistung in OOP
ist eine Teilnahme an der Veranstaltung
nicht möglich!
Seite 8
Inhalt
Inhalt
–
–
–
–
–
bekannte Algorithmen und Datenstrukturen anwenden
Entwicklung von Algorithmen
Bewertung von Algorithmen
Datentypen und Datenstrukturen
Vertiefung und Erweiterung der Programmierfertigkeiten (in Java)
Seite 9
Inhalt
Algorithmen
– Wohl-definiertes schrittweise Verfahren zum Lösen von Problemen
– Programm
implementierter (realisierter) Algorithmus
An einen Computer gerichteter Vortrag über ein Verfahren zur Problemlösung
Algorithmisches Problemlösen
–
–
–
–
–
–
–
–
Problem verstehen (Beispiele betrachten!)
Welche Mittel werden eingesetzt (Prozeduren, Prozesse, …) ?
Exakte oder ungefähre Lösung gesucht ?
Ist das Problem bereits gelöst (auf einer anderen Abstraktionsstufe) ?
Welche algorithmische Technik kann eingesetzt werden ?
Welche Datenstrukturen werden eingesetzt ?
Spezifikation der Lösung
Analyse des Algorithmus :
 Korrektheit
 Effizienz
– Implementierung / Codierung
– Analyse der Implementierung :
 Test
Seite 10
Inhalt
Allgemein bekannte und eigene Algorithmen
– Sehr viele algorithmische Probleme sind gelöst
– Die Problemlösungen
 sind bekannt und
 i.d.R. besser gelöst als durch eigene Anstrengungen
– Bekannte Algorithmen
 stehen in sprachspezifischer Form zur Verfügung
(Bibliotheken, Frameworks)
muss jeder Entwickler kennen und verwenden!
 stehen in abstrakter Form zur Verfügung
(Bücher, Skripte, Wikipedia)
sollte jeder Informatiker (muss jeder Bachelor) kennen und verwenden können
– Problemlösung in der Praxis
1. Ist das Problem in einer sprachspezifischen Form bereits gelöst? (API)
Wenn ja: Verwende diese Lösung!
2. Ist das Problem generell gelöst?
Wenn ja: Passe die (i.A. abstrakte) Lösung an dein Problem an!
3. Werde kreativ!
Welche algorithmische Strategie ist angemessen?
Wende sie an!
Seite 11
Inhalt
Lernziel
– Algorithmen
 in Form einer Java-Implementierung verwenden können
 die in abstrakter Form gegeben sind, umsetzen können in konkrete Form
 Algorithmen neu entwickeln und bewerten können
– Datenstrukturen
 in Form von Kolletionstypen in Java verwenden können
 gängige Datenstrukturen kennen
 Datenstrukturen in (Java-) API-konformer Art implementieren können
Man kann nie sicher sein, dass man
bestimmte Dinge nicht gefragt wird.
http://www.youtube.com/watch?v=k4RRi_ntQc8&feature=related
Seite 12
Inhalt
Unterrichtssprachen
– Deutsch
– Java 8
 In diesem Kurs wird Java 8 verwendet.
 Mit Java-8 neu eingeführte Sprachkonstrukte werden in beschränkten Umfang
genutzt.
Seite 13
Herunterladen