Kompaktkurs Einführung in die Programmierung - Summer 10
- Term
- Summer 10
- Lecturer
- Dr. rer. nat. Stefan Zimmer
- Time and Place
- Montag, 1.3. bis Freitag, 19.3.2010
- Vom 1.3. bis einschließlich 16.3. gibt es montags bis freitags 9-12 Uhr Vorlesung im Hörsaal PH HS2
- Am 19.3. ist dann die Klausur (s.u.)
- Audience
- Für die Mathematik-Studiengänge ist das das "Praktikum Einführung in eine Programmiersprache" MA8001, vgl. Abschnitt A1.6 im Studienplan (bzw. für Studierende nach der alten Studienordnung die Veranstaltung "Einführung in die Programmierung").
- Hörer anderer Fachrichtungen, die C lernen wollen, sind ebenfalls willkommen!
- Tutorials
- kommt noch
- Exam
- Klausur, am Freitag, 19.3.2010, 15:15-16:30 Uhr im Hörsaal MW 2001
- Anmeldung bis zum 5.3. über TUMonline
- Semesterwochenstunden / ECTS Credits
- 4 SWS / 6 Credits
- TUMonline
- {{{tumonline}}}
Anmeldung
Zu der Veranstaltung muss man sich bis zum 5.3. in TUMonline anmelden.
Diese Anmeldung ist für alle verpflichtend, die die Klausur mitschreiben wollen, also egal, ob man die Übungen besuchen will oder nicht. (Körperliche Anwesenheit ist nur bei der Klausur verlangt - wer also lieber daheim aus den Folien lernt, die Aufgaben am eigenen Rechner löst und nur zur Klausur erscheint, kann das gerne tun. Aber das Anmelden nicht vergessen!)
Vorbereitung
Zur Vorbereitung auf den Kurs kann man sich mit einem Ausdruck der Folien versehen (weiter unten findet man alle Folien des Kurses zusammen in kompakter Form); zusätzlich ist es hilfreich, wenn man sich schon vorab mit den technischen Dingen vertraut macht. Was man dazu macht, hängt davon ab, wo man die Programmieraufgaben lösen möchte:
- Wenn man in der SUN-Halle arbeitet, sollte man dort mit den Grundfunktionen vertraut sein (Textdateien bearbeiten, WWW-Browser)
- Wenn man auf seinem eigenen Rechner arbeiten will, kann man sich schonmal um einen C-Übersetzer kümmern (was der tut, ist im Moment nicht so wichtig, installieren kann man ihn auch so...). Für Windows-Systeme sind drei (von vielen) kostenlosen Möglichkeiten Dev-C++ (mit schöner bunter Benutzeroberfläche) und Cygwin bzw. MinGW (enthalten beide einen kommandozeilenbasierten C-Übersetzer)
Themen
Montag, 1.3.10: Einführung
- Die Folien "Einführung"
- Das Beispielprogramm prog0.cpp
- Das Programm prog0.cpp soll übersetzt und ausgeführt werden. Hier die Anleitung für die Sunhalle, auf dem heimischen Rechner sieht's natürlich ggf. etwas anders aus.
Vorausgesetzt wird, dass man sich soweit auskennt, dass man einen Webbrowser offen hat (und diese Seite liest :-) sowie ein Terminalfenster, um gleich die folgenden Kommandos eingeben zu können (am Anfang befinden wir uns dazu am besten in unserem Homeverzeichnis)- Ein neues Verzeichnis anlegen: mkdir EiPro
- in dieses Verzeichnis wechseln: cd EiPro
- Mittels des Browsers das Programm prog0.cpp in das neue Verzeichnis speichern
- Wieder im Terminalfenster: Inhalt des Verzeichnisses anzeigen lassen: ls
(sollte "prog0.cpp" ausgeben) - Übersetzen: g++ prog0.cpp
- Inhalt des Verzeichnisses anzeigen lassen: ls
(sollte "a.out" und "prog0.cpp" ausgeben) - Programm ausführen: ./a.out
(sollte a: 37, b: 41, c: -4, d : 6, e: 156 ausgeben) - Programm bearbeiten: nedit prog0.cpp &
Z.B. aus 37 eine andere Zahl machen, abspeichern, übersetzen, ausführen,...
- Auf dem heimischen Rechner wird sich ein wenig Experimentieren nicht vermeiden lassen (oder jemand fragen, der sich mit sowas auskennt :-)
Hier nur ein paar kurze Hinweise für die Benutzer von Windows & Dev-C++:- Das Programm kann man mit Dev-C++ öffnen (File -> Open Project or File), bearbeiten und übersetzen (Execute -> Compile), das ausführbare Programm heißt hier in der Voreinstellung nicht a.out, sondern so wie der Quelltext, in unserm Fall also prog0.exe
- Zum Ausführen ist ein Terminalfenster (Windows-Sprechweise: Eingabeaufforderung) hilfreich (wenn man das Programm innerhalb von Dev-C++ ausführt, verschwindet die Ausgabe, bevor man sie lesen kann...)
Das Navigieren in's richtige Verzeichnis mittels cd kann hier etwas komplizierter sein, je nachdem, in welchem Verzeichnis man am Anfang landet. Den Inhalt eines Verzeichnisses sehen wir hier mit dir; wenn wir im richtigen Verzeichnis sind, wird das Programm einfach mittels prog0 ausgeführt. - Naja, vielleicht ist es dann doch einfacher, im Programm vor der schließenden geschweiften Klammer noch eine Zeile
std::cin.get();
einzufügen, dann wartet das Programm an dieser Stelle, bis man die Enter-Taste drückt und man kann das Programm auch innerhalb von Dev-C++ ausführen (Execute -> Run).
Dienstag, 2.3.10: Schnelldurchgang durch C
- Die Folien "Schnelldurchgang durch C"
Mittwoch, 3.3.10: Fundamentale Datentypen, Ausdrücke
- Die Folien "Fundamentale Datentypen, Ausdrücke"
- Das Programm bits.cpp aus der Vorlesung
Donnerstag, 4.3.10: Kontrollstrukturen
- Die Folien "Kontrollstrukturen"
- Das Programm donnerstag.cpp aus der Vorlesung
Freitag, 5.3.10: Funktionen
- Die Folien "Funktionen"
- Die beiden rekursiven Programme aus der Vorlesung: freitag.cpp (einfach) und hanoi.cpp (komplizierter)
Montag, 8.3.10: Zeiger
- Die Folien "Zeiger"
Dienstag, 9.3.10: Felder
- Die Folien "Felder"
- Das Programm string.cpp (Zeichenketten ausdrucken) aus der Vorlesung
Mittwoch, 10.3.10: Felder, Teil 2; Strukturtypen
- Die Folien "Felder, Teil 2; Strukturtypen"
- Das Programm mittwoch.cpp aus der Vorlesung
Donnerstag, 11.3.10: Dynamische Datenstrukturen - Listen
- Die Folien "Dynamische Datenstrukturen: Listen"
- Das Programm zeigerlos.cpp aus der Vorlesung
Freitag, 12.3.10: Binärbäume
- Die Folien "Binärbäume"
- Das Binärbaumprogramm binbaum_folie.cpp
Montag, 15.3.10: Ein- und Ausgabe
- Die Folien "Ein- und Ausgabe"
Dienstag, 16.3.10: Vermischtes
- Die Folien "Vermischtes"
Freitag, 19.3.2010: Klausur
- 15:15-16:30 Uhr im Hörsaal MW 2001
- (Anmeldung notwendig, s.o.)
- Erlaubte Hilfsmittel: ein Ausdruck der Vorlesungsfolien (handschriftliche Anmerkungen darin sind OK).
Foliensammlung
- Druckversion der gesammelten Folien (9 auf einer Seite)
Alte Klausuren
Klausuren voriger Jahre:
- 2009: mit und ohne Lösung
- 2008: mit und ohne Lösung
- Wiederholungsklausur 2008: mit und ohne Lösung
- 2007: mit und ohne Lösung
- 2006: mit und ohne Lösung
Vorlesungs- und Übungsmaterial
Tag | Folien u. Programme zur Vorlesung | Übungen und Programmschablonen | Lösungsvorschläge zu den Übungsaufgaben |
Montag 01.03.10 | "Einführung" Das Programm: prog0.cpp (Anleitung zur Ausführung s.o.) |
coming | coming |
Dienstag 02.03.10 | "Schnelldurchgang durch C" | coming | coming |
Mittwoch 03.03.10 | "Fundamentale Datentypen, Ausdrücke" Das Programm: bits.cpp |
coming | coming |
Donnerstag 04.03.10 | "Kontrollstrukturen" Das Programm: donnerstag.cpp |
coming | coming |
Freitag 05.03.10 | "Funktionen" Rekursive Programme: freitag.cpp (einfach) hanoi.cpp (komplizierter) |
coming | coming |