Programmieren und Algorithmen und Datenstrukturen 2 -Überblick und Organisation Reiner Nitsch reiner.nitsch@h-da.de
Vorlesung - Organisation Termine Mi3 Fr2 Bedarfsweise (Synchronisierung mit Praktikum, Termine und Raum per E-Mail) Skript: nicht zum Selbststudium gedacht sondern als "roter Faden" für Vorlesung Download von Homepage (ggf. auch kurzfristig am Abend vor Vorlesung eingestellt!) Sprechstunde Mittwoch 13:30 Uhr bis 14:15 Uhr in D 14/207 Bei Bedarf: auf Freitag nach der Vorlesung oder nach Vereinbarung. 05.10.2005 PG2 Einführung 2
Vorlesung vorausgesetzte Kenntnisse Standarddatentypen - Operatoren - Typumwandlung Funktionen Einfache Ein- und Ausgabe Strukturen (struct), Klassen (class) Gültigkeit und Sichtbarkeit von Variablen Klassenschnittstelle (statische Attribute, statische Memberfunktionen, Methodenüberladung, Objekte als Parameter, optionale Parameter, copy-konstruktor, Konversionskonstruktoren, Typkonvertierungsmethoden, friend-funktionen, Klassen string und vector, read-only Methoden, read-only Membervariable, Optionale Methodenparameter) Fehlerbehandlung Operatorenüberladung Pass by reference/value Materialien dazu finden Sie auf meiner Homepage Kontrollstrukturen (Skripte, Praktikumsaufgaben vom SS2012) Arrays - Abstrakter Datentyp Rekursion - Iteration - Backtracking Such- und Sortieralgorithmen - STL Funktions-Templates Pointer Dynamische Speicherverwaltung Praktikum 6: "Dynamisches Array" 05.10.2005 PG2 Einführung 3
Vorlesung - Themen Dokumentation, dynamische Speicherverwaltung (Wdhlg) Templates - Funktionstemplates (Wdhlg) und Klassen-Templates Fallstudien "Dynamisches Array als Klassentemplate" Assoziation - Aggregation - Komposition Vererbung und Polymorphie - virtuelle Methoden, Abstrakte Klassen, Typidentifizierung zur Laufzeit (Fallstudie "Personal- und Lohnbuchhaltung") Dateien und Ströme - Lesen und Schreiben von Text- und Binärsequenzen, Stream-Status- Management Dateien mit wahlfreiem Zugriff - Positionieren in Dateien - Fallstudie "Kontenverwaltung" Datenstrukturen - Rekursive Datenstruktur, lineare/nichtlineare Datenstruktur, Datenstruktur "Liste" - eingeschachtelte Klassen, Cursor/Iterator, Adapterklassen, sortierte Listen, Spezielle Container (Adapter: Queue, Stack), Funktionsobjekte STL - Grundlagen Container, Iteratoren, Sequenzcontainer, sortierte Assoziative Container Fallstudien "Wortliste", "Telefonbuch" STL - Algorithmen - Grundlagen, Anwendung, Beispiele Fallstudie "Personal- und Lohnbuchhaltung mit STL" Graphen - Darstellung - Algorithmen - Wegesuche Nichtlineare Datenstrukturen - Grundlagen, Sortierte und ausgeglichene binäre Schlüsselbäume 05.10.2005 PG2 Einführung 4
Vorlesung - Literaturempfehlungen Ulrich Breymann: Der C++ Programmierer. C++ lernen - Professionell anwenden - Lösungen nutzen. Mit CD. Taschenbuch: 963 Seiten Verlag: Carl Hanser Verlag GmbH & CO. KG (4. Juni 2009) Sprache: Deutsch ISBN-10: 3446416447 ISBN-13: 978-3446416444 Bjarne Stroustrup, Petra Alm und Dirk Louis: Einführung in die Programmierung mit C++. Verlag: Pearson Studium; Auflage: 1., Auflage (8. März 2010) Sprache: Deutsch ISBN-10: 3868940057 ISBN-13: 978-3868940053 WS 2011/2012 PAD2 Einführung 5
Praktikum - Überblick 6-teiliges Projekt FutureCar bestehend aus Mehrere Autopiloten zur Steuerung eines autonomen (fahrerlosen) Fahrzeugs. Eine Testanwendung zum Nachweis der Funktionsfähigkeit der Autopiloten. Navigationsassistenzsysteme mit manueller und automatischer Routenauswahl Aufgabenstellung Download von meiner Homepage Durchführung Aufgaben 1...3: Einzelarbeit und -testierung Aufgaben 4...6: Arbeitsteilige 2er Teams, ABER: Jeder integriert die gemeinsam entwickelte Komponente in seine eigene FutureCar-Anwendung. Beginnen Sie rechtzeitig mit der Vorbereitung und stellen Sie sicher, dass Sie Ihre Lösung spätestens 30 Minuten vor Schluss des Praktikumtermins zur Testierung vorlegen können. Bewertung Mit Erfolg teilgenommen, wenn alle 6 Übungen testiert sind. Bonuspunkte für LN Bei Erfüllung des Pflichtteils werden Bonuspunkte für den LN am Ende des WS 2012 angerechnet! PG2 Einführung 6
Praktikum - Organisation Wer hat noch keinen Praktikumsplatz? Anmeldung bei mir Bei Bedarf werden zusätzliche Praktikumsgruppen eingerichtet Ort und Termine: Mi45 in Raum D 15/003 Aufgabenstellungen und Materialien: Auf meiner Homepage Gruppeneinteilung: siehe OBS Änderungswünsche direkt an mich WS 2011/2012 PAD2 Einführung 7
Leistungsnachweis am Semesterende Zulassungsvoraussetzung 6 von 6 Testaten des PAD2-Labors Durchführung Als Prüfungsleistung in der Form einer Praktische Prüfung am PC (max. 2 Wiederholungen, keine MEP) Bearbeitungszeit 3 Zeitstunden Termin und Ort In den beiden Prüfungswochen am Semesterende Der genaue Termin und Ort werden nach Anmeldeschluss per E-Mail bekannt gegeben. Unterschied zum LN PAD1 Aufgabenstellung ohne detaillierte Design-Vorgaben Designentscheidungen treffen Sie selbst. 05.10.2005 PG2 Einführung 9
Leistungsnachweis - Hilfsmittel Erlaubte Hilfsmittel: Bücher, Ausdrucke, Notizen (geheftet oder in einem Ordner). Lose Blätter werden von der Aufsicht konfisziert. Zur Verfügung gestellte Hilsmittel Das Vorlesungsskript (auf dem Klausurrechner) Das Lehrbuch "Breymann: Der C++ Programmierer" (auf dem Klausurrechner) Ein lokales Abbild der Webseite cplusplus.com ohne Suchfunktion (auf dem Klausurrechner) Verboten ist: Die Benutzung eigener Datenträger (Diskette, USB-Stick etc.); insbesondere dürfen keine Programme oder sonstige Daten auf Datenträgern mitgebracht werden. Die Benutzung eines anderen Rechners (Taschenrechner, PDA, Notebook,... ) als des zur Verfügung gestellten. Jegliche Kommunikation (mündlich, schriftlich, elektronisch, per Handy, übers Netz, wie auch immer...) mit anderen Personen, ausgenommen der Aufsicht. Login unter einem anderen Account, als dem für die Klausur angegebenen. Zugriff auf andere Verzeichnisse eines Servers, als die ausdrücklich zugelassenen. WS 2011/2012 PAD2 Einführung 10
Stellung von PAD im Studium Legende: TP(PG1): PG1-Prakt. bestanden (PG2): Am LN PG2 mindestens einmal teilgenommen. 05.10.2005 PG2 Einführung 11