| Termine | Aktuelle Informationen | Termine und Materialien | |
| Übungen | Übungsgruppen | Belegarbeiten | Benotung |
| Durchführung der Übungen und Belegarbeiten | Durchführung der Klausur | Literatur |
| Vorlesung | Übung | |
| Zeit: | mittwochs 12:00 - 13:30 Uhr (3.E) |
dienstags 13:45 - 17:00 Uhr (4. und 5.E) im wöchentlichen Wechsel |
| Ort: | Raum HG 125 | Raum VG 218 |
| Lehrkraft: | H. Hansen |
14.7.2009
Leider werde ich am Mittwoch die Klausuren noch nicht korrigiert haben!
3.6.2009
Hier finden Sie jetzt die 2. Belegaufgabe! Viel Erfolg!
5.5.2009
Leider habe ich die Abgabetermine für die erste Belegarbeit auf dem Blatt der Aufgabenstellung falsch angegeben! Es muß aufgrund der Wochenaufteilung (gerade Woche Gruppe 1, ungerade Woche Gruppe 2) natürlich heißen: Abgabe der Belegarbeit: Gruppe 2 am 19.5. und Gruppe 1 am 26.5. Entschuldigen Sie bitte die Verwechslung.
22.4.2009
Hier finden Sie jetzt die 1. Belegaufgabe zusammen mit einigen Testdaten.
24.3.2009
Die Lehrveranstaltung beginnt am 1.4.2009 mit der Vorlesung. Die Gruppeneinteilung richtet sich nach dem LSF.
Für alle, denen das Arbeiten am Mac bisher nicht so vertraut ist, habe ich Informationen darüber zusammengestellt. Außerdem gibt es noch eine spezielle Website zum Mac-Labor.
Hier finden Sie alle Vorlesungs- und Übungstermine mit den geplanten Inhalten und den zugehörigen Materialien.
Alle Folien zur Lehrveranstaltung werden nach und nach hier
als PDF-Dateien zur Verfügung gestellt, wobei 4 Folien auf einer Druckseite
angeordnet sind, um beim eventuellen Ausdruck Papier zu sparen.
| Datum |
Art |
Gruppe |
Themen |
Version vom |
Foliensatz |
| 1.4. | V | Organisation: Festlegungen zur Benotung
und Klausur, usw. Zeigervariablen in C: Motivation, Definition von Zeigervariablen: Bezeichner, Typ und Wert; Verwendung, Beispiele. Adressoperator &: referenzieren; Operator *: dereferenzieren |
1.4.2009
|
|
|
| 7.4. | Ü | 2 | Einrichtung der Benutzungsoberfläche am Mac; Erstes Programm: HelloWorld; Programm zum Arbeiten mit Zeigervariablen; Überlegungen zur Anwendung von Zeigervariablen für dynamische Datentypen; Beginn der Implementierung eines dynamischen Datentyps Liste. | ||
| 8.4. | V | Ziele der Programmiersprache C; Einführung von Zeigervariablen; Programmbeispiele für die Verwendung von Zeigervariablen; Wertzuweisungen unter Verwendung von Zeigervariablen. | 22.4.2009 | ||
| 14.4. | Ü | 2 | siehe 7.4. | ||
| 15.4. | V | Entwicklung einer generischen dynamischen Datenstruktur "einfach verkettete Liste"; Festlegung der Anforderungen an eine Implementierung einer solchen Datenstruktur; Komplexität von Listenoperationen; Verbesserung der Komplexität durch Implementierungstricks; |
22.4.2009 | Dynamische Datenstrukturen | |
| 21.4. | Ü | 2 | Fortsetzung der Implementierung des generischen dynamischen Datentyps "Liste"; Einführung von Funktionsvariablen; Verwendung von Funktionsvariablen. | ||
| 22.4. | V | Funktionsvariablen: Motivation, Verwendung; Benutzung von Funktionsvariablen in der Implementierung des generischen dynamischen Datentyps "Liste"; Andere dynamische Datentypen: Binäre Bäume. | 22.4.2009 | Funktionsvariablen | |
| 28.4. | Ü | 1 | siehe 21.4. | ||
| 29.4. | V | Binäre Bäume (Fortsetzung); Rekursive Funktionen auf binären Bäumen; Prinzipien für die Implementierung von Bibliotheken: Das Prinzip der "Verantwortung"; Vergleich der Implementierung der einfach verketteten Liste und des binären Baumes in Hinblick auf Verantwortung für den Speicher der Inhalte der dynamischen Datenstrukturen. | |||
| 5.5. | Ü | 2 | Beispiel für die Anwendung von Funktionsvariablen; Sortierung von einfach verketteten Listen; rekursive Funktionen auf binären Bäumen; Verwendung von "make" zur Organisation von Programmierprojekten. | ||
| 6.5. | V | Projektorganisation mit make und ant. Dynamische mehrdimensionale Felder. | 11.5.2009 11.5.2009 |
||
| 12.5. | Ü | 1 | siehe 5.5. | ||
| 13.5. | V | Einführung in die Objektorientierung: Klassen als rechnerverarbeitbare Beschreibung von Konzepten aus der Umgangssprache, Objekte als "Exemplare", "Instanzen", die entsprechend dieser Beschreibung "hergestellt" werden. | 10.6.2009 | Klassen und Objekte | |
| 19.5. | Ü | 2 | Abgabe der 1. Belegarbeit | ||
| 20.5. | V | Erläuterung von Klassen und Objekten anhand des Beispiels "Komplexe Zahlen"; Erklärung von "call by reference" in C++ anhand des Beispiels der Klasse "Komplexe Zahlen" | |||
| 26.5. | Ü | 1 | Abgabe der 1. Belegarbeit | ||
| 27.5. | V | Anlegen von Objekten auf dem Stack und auf dem Heap: Betrachtung möglicher Probleme | |||
| 2.6. | Ü | 2 | Implementieren der Klasse "Complex": Headerdatei mit der Klassendeklaration "Complex.hpp", Implementierung der Methoden in "Complex.cpp"; Schreiben einer separaten Testanwendung; Verwendung von Naumensräumen. Überführung des generischen strukturierten Datentyps Liste in eine objektorientierte Implementierung. | ||
| 3.6. | V | Klasse "string" aus der Standardbibliothek von C++; Namensraum in C++: Motivation, Verwendung; Namensraum der C-Standardbibliotheken bei Verwendung in C++; Klassenmethoden und Klassenvariablen: Sie gehören nicht in objektorientierte Programme! | 10.6.2009 10.6.2009 10.6.2009 |
||
| 9.6. | Ü | 1 | siehe 2.6. | ||
| 10.6. | V | Arten der Parameterübergabe in C++; Felder; Dateiein- und Ausgabe von C++. | 10.6.2009 10.6.2009 10.6.2009 |
||
| 16.6. | Ü | 2 | Restrukturieren der Klasse Liste für C++; Notwendigkeit von get- und set-Methoden; Reimplementierung von Algorithmen in C++. | ||
| 17.6. | V | Standardbibliotheken von C++; "Klassische Normalform" von Klassen in C: Motivation, Realisierung. | 30.6.2009 30.6.2009 |
||
| 23.6. | Ü | 1 | siehe 16.6. | ||
| 24.6. | V | Verbesserung von C++-Programmen durch intensive Verwendung des Schlüsselworts "const": Bedeutung von "const" an verschiedenen Stellen in OOP; Vererbung: Motivation, Verwendung anhand von Beispielen. | 30.6.2009 30.6.2009 |
||
| 30.6. | Ü | 2 | Abgabe der 2. Belegarbeit | ||
| 1.7. | V | Vererbung (Fortsetzung): "virtuelle" Methoden. Einführung in die STL. | 30.6.2009 | STL-Einführung | |
| 7.7. | Ü | 1 | Abgabe der 2. Belegarbeit | ||
| 8.7. | V | bestätigter Klausurtermin | |||
| 14.7. | Ü | 2 | |||
| 15.7. | V | Nachbesprechung der Lehrveranstaltung |
Hier finden Sie die Übungsbeispiele für die
Übungen.
In der folgenden Tabelle finden Sie nach Beginn der Lehrveranstaltung zu
Ihrer Erinnerung die Teilnehmer der beiden Übungsgruppen. Bitte denken
Sie daran, daß diese Einteilung für die Abgabe der Belegarbeiten
verbindlich ist. Wer hier nicht aufgeführt ist, muß am ersten
Abgabetermin abgeben!
Wer nicht in der für seine Gruppe geplanten Woche abgibt, der gibt verspätet
ab - mit entsprechenden Konsequenzen für die Benotung!
| Nr | Übungsgruppe 1 Beginn am 1.10. (gerade Wochen) |
|
Übungsgruppe 2 Beginn am 8.10. (ungerade Wochen) |
| 1 | Berschneider, Marcel | Acksel, Robert | |
| 2 | Brauner, Roman | Becker, Daniel | |
| 3 | Buhrtz, Tom | Bortfeld, Laurence | |
| 4 | Hartmann, Jonas | Brandt, Sebastian | |
| 5 | Heinz, Alexander | Brysch, Maurice | |
| 6 | Horn, Peter | Busch, Alexander | |
| 7 | Kinsky, Michael | Ellmer, Daniel | |
| 8 | Kulpe, Tim | Hinrichsen, Eric | |
| 9 | Langer, Lars | Kappe, Leonard | |
| 10 | Liedle, Waldemar | Karsten, Marcel | |
| 11 | Müller, Johannes | Knutti, Dennis | |
| 12 | Podkowik, Christoph | Konitzer, Wojciech | |
| 13 | Przybilla, Stefan | Lindner, Marco | |
| 14 | Rekowski, Dario | Liu, Xuelin | |
| 15 | Rötz, Patrick | Mertinat, Mariano | |
| 16 | Schackow, Andy | Müller, Tim | |
| 17 | Schlitter, Jan | Neidt, Enrico | |
| 18 | Schröder, Pascal | Nestler, Mathias | |
| 19 | Stellbrink, Leonard | Paasch, Marcel | |
| 20 | Thomas, Martin | Rommel, Martin | |
| 21 | Warnt, Danny | Rüschenberg, Stefan | |
| 22 | Wilhelm, Alena | Schäfer, Sebastian | |
| 23 | Wilhelm, Meike | Sprick, Christian | |
| 24 | Weber, Jens | ||
| 25 | Werner, Kevin | ||
| 26 | Zgircibaba, Alexei |
3.6.2009
Hier finden Sie jetzt die 2. Belegaufgabe! Viel Erfolg!
22.4.2009
Hier finden Sie jetzt die 1. Belegaufgabe zusammen mit einigen Testdaten.
Beachten Sie bitte bei der Erstellung Ihrer Programme die Programmierrichtlinien.
Mit seiner Eintragung in die Belegliste der Lehrveranstaltung
akzeptiert jeder Student die folgenden Festlegungen:
Die in der Vorlesung und in den Übungen erworbenen Kenntnisse werden getrennt
benotet. Die Gesamtnote zur Veranstaltung ergibt sich dann als das (nach den
Stundenanteilen) gewichtete Mittel aus den beiden Noten. In dieser Veranstaltung
gehen also beide Noten mit jeweils 50 % ein.
Die Note zu den Übungen ergibt sich zu 50 % aus der Note der 1. Belegarbeit
und zu 50 % aus der Note der 2. Belegarbeit.
Zur Notengebung beachten Sie bitte die Festlegungen aus der Rahmenprüfungsordnung der FHTW:
Wenn also alle Anforderungen für die gestellte Aufgabe erfüllt sind, so wird das mit der Note 3,0 bewertet. Wenn die Durchführung der Aufgabe sehr sauber und sorgfältig erfolgt ist, führt das zur Benotung 2,0. Wenn über die Anforderungen hinaus mehr oder besonders gute Leistungen erbracht wurden, so führt auch das zu einem Notenbonus. Was derartige besondere Leistungen sein könnten, wird vom Dozenten bei Ausgabe der Belegarbeit in der Vorlesung erläutert. Wenn nicht alle Anforderungen erfüllt sind, so hat das Notenabschläge zur Folge.
Eine Aufgabe gilt als nicht gelöst, wenn das Programm falsche Ergebnisse produziert oder "abstürzt" — somit Note 5. Vom Dozenten bereitgestellte Testdaten sind Testdaten, d.h. das Programm muß natürlich nicht nur für diese Daten korrekte Ergebnisse liefern!!!
Die verspätete Abgabe einer Belegarbeit führt (je
nach Verspätung) zu einem Notenabschlag von mindestens 2 Stufen. (Eine
befriedigende Lösung (Note 3,0), die zu spät abgegeben wird, wird
also z.B. mit 3,7 bewertet.) Eine Verspätungswoche beginnt am auf die vorgesehene
Abgabe folgenden Tag! Verspätungen um mehr als einen Übungstermin
gibt es außer bei Krankheit nicht! Der Beleg ist dann nicht bestanden.
Jeder Teilnehmer der LV erhält eine Benutzerkennung und
ein Paßwort. Unter dieser Benutzerkennung kann er seine Übungsaufgaben
bearbeiten. Die Übungsräume im Verwaltungsgebäude (Räume
VG 212, VG 207, VG 218 und VG 225) stehen derzeit von 8.00 - 18.00 Uhr für
die Bearbeitung der Belegarbeiten zur Verfügung, sofern sie nicht durch
eine andere Veranstaltung belegt sind. Es stehen ein Fileserver und ein Druckservice
zur Verfügung.
Alles, was im Rahmen der LV an Texten, Programmen und Daten anfällt, kann
auf dem privaten Nutzerbereich auf dem Fileserver im jeweiligen Teilnehmerverzeichnis
abgelegt werden. Bitte beachten Sie, daß Sie für Ihre auf dem Fileserver
abgelegten Daten selbst verantwortlich sind. Die Laboringenieure des Studiengangs
"Angewandte Informatik" führen zwar regelmäßige Backups durch
- dennoch kann nicht gewährleistet werden, daß bei Hardwareproblemen
die aktuellsten Dateien wieder hergestellt werden können. Deshalb sollten
Sie selbst durch Kopien auf anderen Medien oder per Netzwerk für die Verfügbarkeit
Ihrer Daten sorgen! (Datenverlust als Ausrede für verspätete Abgabe
ist also ein denkbar ungeeignetes Argument.)
Jeder Student muß Übungsaufgaben als Belegarbeiten zur Benotung abgeben.
Die Belegarbeiten können in Gruppen von maximal zwei Studenten gemeinsam
bearbeitet und abgegeben werden. Die Belegarbeiten werden dem Dozenten persönlich
abgegeben, wobei eine Vorführung des jeweiligen Programmes an einem Laborrechner
im für die Lehrveranstaltung vorgesehenen Raum erfolgt. Wenn ein
Beleg von zwei Studenten gemeinsam fertiggestellt wurde, so müssen beide
bei der Abgabe in der Lage sein, Fragen des Dozenten zum Beleg zu beantworten
- also auch jeweils zum durch den anderen Studierenden bearbeiteten Teil!
Zum Testen der Belegarbeiten steht ein Rechner mit ssh-Zugang zur Verfügung: osx1.f4.fhtw-berlin.de . Er besitzt eine ähnliche Softwareausstattung wie die Macs im Labor.
| Autor | Titel | Bemerkung | Erscheinungsort | ISBN |
| Programmiersprache C | ||||
| House, R. | Beginning with C | Sehr zu empfehlendes Buch für Programmieranfänger. Nur englisch erschienen und wohl vergriffen ... | International Thompson Publishing, 1994 | 0-534-94122-2 |
| Kernighan, B.W., Ritchie, D.M. | Programmieren in C | Nachschlagewerk zu allen Feinheiten der Programmiersprache C von ihren Erfindern. Zum Erlernen des Programmierens und zum Erlernen von C völlig ungeeignet! | Carl Hanser Verlag, 1983 | 3-446-13878-1 |
| Programmiersprache C++ | ||||
| Breymann, U. | C++ - Eine Einführung | Eine gute, ausführliche Einführung in die Programmiersprache C++. | 3. Auflage; Carl Hanser Verlag, 1996 | 3-446-18498-8 |
| Stroustrup, B. | The C++ Programming Language | Ähnlich wie das Werk von Kernighan und Ritchie nichts zum Erlernen der Sprache ... | 2. Auflage; Addison-Wesley Publishing Company, 1991 | 0-201-53992-6 |
| Koenig, A., Moo, B.E. | Intensivkurs C++ — Schneller Einstieg über die Standardbibliothek | Eine gute Einführung in C++, aber durch die Verwendung der Standard Template Library (STL) von Beginn des Buches an anspruchvoller als das Buch von Breymann. | Pearson Studium, 2003 | 3-8273-7029-9 |
| Softwaretechnik | ||||
| Hering, Ekbert | Software-Engineering | 3. Auflage; Vieweg-Verlag, 1992 | 3-528-24284-1 | |
| Algorithmen und Datenstrukturen | ||||
| Horovitz, E., Sahni, S., Anderson-Freed, S. | Grundlagen von Datenstrukturen in C | Ein klassisches Buch über Datenstrukturen und Algorithmen, die hier in der Sprache C aufgeschrieben sind ... | International Thompson Publishing GmbH, 1994 | 3-929821-00-1 |
| Sedgewick, R. | Algorithmen in C++ | Inzwischen schon klassisches Buch zu Algorithmen und Datenstrukturen. Ausführlich und verständlich geschrieben. Hier werden die Algorithmen in C++ notiert — es gibt das Buch auch in Varianten für C und Java! | 3. überarbeitete Auflage, Pearson Studium, 2002 | 3-8273-7026-4 |