Kompaktkurs Einführung in die Programmierung - Summer 11

From Sccswiki
Revision as of 15:14, 9 March 2011 by Sedlacek (talk | contribs)
Jump to navigation Jump to search
Term
Summer 11
Lecturer
Dr. rer. nat. Tobias Weinzierl
Time and Place
Montag, 7.3. bis Freitag, 25.3.2011.
Vom 7.3. bis einschließlich 22.3. gibt es Montags bis Freitags 9-12 Uhr Vorlesung im Hörsaal PH HS2.
Am 14.3.2011 findet die Vorlesung im Hörsaal CH21010 statt.
Am 25.3. findet die Klausur statt (siehe unten).
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
Matous Sedlacek
Der wesentliche Teil dieses Kurses besteht darin, die Übungsaufgaben zu bearbeiten, d.h., die dort verlangten Programme in der Regel erst mit Papier und Bleistift zu entwerfen und dann zu implementieren.
Zur Unterstützung gibt es an den Vorlesungstagen eine
  • Programmierberatung von 14:00-15:00 Uhr im Raum MI 00.13.054 für akute Probleme und Fragestellungen.
  • Vorstellung der aktuellen Lösung um 15:00 Uhr ebenfalls im Raum MI 00.13.054. Das Hören dieser Veranstaltung ersetzt keinesfalls das Selbermachen, genausowenig wie das Herunterladen der dann auch auf dieser Seite bereitgestellten Lösungen.
Exam
Klausur, am Freitag 25.3.2011, 13:30-14:45 Uhr im Hörsaal MW2001
Semesterwochenstunden / ECTS Credits
4 SWS / 6 Credits
TUMonline
{{{tumonline}}}



Anmeldung

Anmeldung zur Klausur wird vom 7.3.2011-20.3.2011 über TumOnline möglich sein.
Die Anmeldung zur Veranstaltung allgemein ist ab jetzt möglich.

Vorbereitung

Zur Vorbereitung auf den Kurs kann ein Ausdruck der Folien dienen (siehe unten). Zusätzlich ist es hilfreich sich vorab mit den technischen Dingen vertraut zu machen. Dies 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 um einen C-Übersetzer kümmern (Funktion im Moment unwichtig, 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).
  • Hinweis für Windows Benutzer: Alternative zum üblichen "Editor" unter Windows, der manchmal Zeilenumbrüche von (unter Unix/Linux erstellten) Textdateien nicht korrekt wiedergibt, ist die "WordPad-MFC-Anwendung" die damit keine Probleme haben sollte.
  • Übersetzung und Ausführung von Programmen. Als Beispielprogramm kann das Programm prog0.cpp dienen.
    • Anleitung für die Sunhalle
      Vorausgesetzt wird, dass man sich soweit auskennt, dass man einen Webbrowser offen hat 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
      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.
      • Es ist jedoch 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).
  • Speicherlecks: Tools für die Überprüfung korrekter Freigabe des Freispeichers:

Vorlesungs- und Übungsmaterial

Tag Folien u. Programme zur Vorlesung Übungen und Programmschablonen Lösungsvorschläge zu den Übungsaufgaben
Montag
07.03.11
01-introduction.pdf
prog0.cpp (Anleitung zur Ausführung s.o.)
blatt1.pdf
prog0.cpp
blatt1_lsg.pdf
teilersummeZusatz.cpp
Dienstag
08.03.11
02-variables.pdf blatt2.pdf
blatt2.cpp
drucken.cpp
blatt2_lsg.cpp
drucken_lsg.cpp
Mittwoch
09.03.11
03-control-structures.pdf blatt3.pdf
collatz.cpp
ausdruecke.cpp
collatz_lsg.cpp
foo.cpp
lsg.txt
Donnerstag
10.03.11
04-functions.pdf blatt4.pdf
max.cpp
fp_table.cpp

Für C++ Programmierer in Aufgabe 4) zur Benutzung von sqrt(): "#include <cmath>"

Für Verwendung von std::setprecision() muss der Header "#include <iomanip>" eingebunden sein.
coming soon ...
Freitag
11.03.11
05-applicative-programming.pdf blatt5.pdf coming soon ...
Montag
14.03.11
coming soon ... blatt6.pdf coming soon ...
Dienstag
15.03.11
coming soon ... blatt7.pdf coming soon ...
Mittwoch
16.03.11
coming soon ... blatt8.pdf
bzgl. Zusatzaufgabe: Freigabe des Freispeicher s.o. Vorbereitung
coming soon ...
Donnerstag
17.03.11
coming soon ... blatt9.pdf coming soon ...
Freitag
18.03.11
coming soon ... blatt10.pdf
Baeume.pdf
coming soon ...
Montag
21.03.11
coming soon ... blatt11.pdf
schnittpunkt.cpp
coming soon ...
Dienstag
22.03.11
coming soon ... blatt12.pdf coming soon ...

Klausur

  • Datum: Freitag, 25.3.2011
  • Uhrzeit: 13:30-14:45 Uhr (75 Min.)
  • Ort: Hörsaal MW2001 (Fakultät für Maschinenbau)
  • Registrierung: Über TumOnline im Zeitfenster 7.3.2011-20.3.2011.
  • Erlaubte Hilfsmittel: Es ist ALLES als Hilfsmittel erlaubt!
  • Wiederholungsklausur am t.b.a. im Hörsaal t.b.a. (Voraussichtlich Juli 2011)


Alte Klausuren

  • 2010: ohne Lösung
  • 2009: ohne Lösung
  • 2008: ohne Lösung
  • Wiederholungsklausur 2008: ohne Lösung
  • 2007: ohne Lösung
  • 2006: ohne Lösung