Programmierkurs der Fakultät SoSe 2013

Objektorientierte Programmierung, Rechnerstrukturen, Datenstrukturen und Algorithmen (Kompaktkurs VL-Zeit)

Aktuelles

  • die Folien zum letzten Tutorial sind jetzt online
  • die Folien zum siebten Tutorial sind jetzt online
  • das letzte Aufgabenblatt ist jetzt online
  • Hinweise zum aktuellen Übungszettel:

    1. für Aufgabe 17 gibt es eine Hilfestellung: laden Sie als Grundlage für ihre Implementierung die Datei intlist.hpp im Downloadbereich herunter
    2. Aufgabe 17 kann auch noch Montag eingereicht werden
    3. In Aufgabe 18 muss der Gauss-Algorithmus nicht angepasst werden
    4. Um Aufgabe 17 auf bespin kompilieren zu können, gehen Sie wie folgt vor:
    • module load gcc/64/4.6.3
    • fügen Sie beim compilieren die Option -std=c++0x hinzu, also z.B.

      g++ -std=c++0x intlist.hpp -o intlist
      
  • die Folien zum 6. Tutorial sind jetzt online

  • die Folien zum 5. Tutorial sind jetzt online
  • das dritte Aufgabenblatt ist jetzt online
  • die Folien zum vierten Tutorial sind nun online
  • die Folien zum dritten Tutorial sind nun online
  • das zweite Übungsblatt ist nun online
  • die Folien zum zweiten Tutorial sind nun online
  • das erste Aufgabenblatt ist online
  • die Folien zum ersten Tutorial sind online
  • die Kurszeiten stehen nun fest
  • die Folien zur Info-Veranstaltung sind jetzt online

Beschreibung der Veranstaltung

Die Programmiersprache C++ ist eine der am weitesten verbreiteten Hochsprachen. Um mit Programmierung anzufangen, ist Wissen über Rechnerstrukturen, Datenstrukturen und Algorithmen unerlässlich. Daher sind dies auch wesentliche Bausteine dieses Lehrangebots. Der Kurs richtet sich an Programmieranfänger, ist aber auch zur Vertiefung geeignet, da er ansonsten normalerweise autodidaktisch erarbeitete Fähigkeiten formalisiert.

Vorkenntnisse in diesem Bereich sind aber nicht zwingend erforderlich (insbesondere auch keine Kenntnisse der Sprache C). Alle notwendigen Kenntnisse werden (recht zügig) in dem Kurs aufgebaut. Allerdings werden auch vertiefende Themen angeschnitten und auch in den Übungen bearbeitet. Die Lernkurve ist - selbst gemessen an dem für Kompaktkurse aller Art geltenden Niveau - sehr steil.

Am Ende sollen die Teilnehmer die Konstrukte der Sprache und das objektorientierte Paradigma verinnerlicht haben und selbständig in der Lage sein eigene Programme zu erstellen. Der Kurs behandelt am Rande auch Themen der Software-Entwicklung und Programmiertools, der Theorie der Programmiersprachen und paralleler Programmierschemata.

Anmeldung zur Veranstaltung

Die Anmeldung zur Veranstaltung erfolgt über das Studierendenportal.

Veranstaltungsbetrieb

Die Kurssprache ist deutsch.

Kursbeginn
29.07.2013
Letzter Kurstag
23.08.2013

Der Kurs findet erstmalig als Tutorial direkt im CIP-Pool (M946) statt. Dabei ist der Ablauf in drei Teile gegliedert:

  1. Bei dem hands-on-tutorial wird der Dozent nicht nur die zu erlernenden Inhalte präsentieren, sondern auch an Beispielen direkt zusammen mit den Studierenden (die jeweils an einem Rechner sitzen) erarbeiten.
  2. In Präsenzübungen werden die erlernten Fähigkeiten dann sofort erprobt.
  3. Schließlich lösen die Studierenden in der freien Übungszeit die für den Erwerb des Leistungsnachweises nötigen Übungsaufgaben, wobei dann stets Tutoren für Fragen zur Verfügung stehen.

Kurszeiten:

  • Montags 10 - 12 Uhr: Hands-on-tutorial + Präsenzübungen, 12 - 15 Uhr: Übung
  • Mittwochs 10 - 13 Uhr: Hands-on-tutorial + Präsenzübungen 13 - 15 Uhr: Übung
  • Donnerstags 10 - 15 Uhr: Übung + Testate

Erwerb des Leistungsnachweises (Credit-Points)

Anwesenheit: Grundsätzlich sollte jeder frei entscheiden, ob er an den hands-on-tutorials teilnehmen will. Da die Übungsaufgaben ohne das entsprechende Wissen jedoch nur schwer erfolgreich absolviert werden können, wird die Teilnahme schwer empfohlen. Es ist jedoch immer möglich, sich mit seinen Teampartnern so zu organisieren, dass alle am Ende den Stoff können, ohne dass alle an jedem Termin teilnehmen müssen. Die Teilnahme an den Präsenzübungen ist verpflichtend. Die Teilnahme an der freien Übungszeit ist wiederum freiwillig, jedoch ist zumindest die Anwesenheit der ganzen Gruppe für die Abnahme der Aufgaben (siehe unten) erforderlich.

Für das Erlernen von Programmierung im Allgemeinen und einer konkreten Sprache im besonderen ist praktisches Training unerlässlich. Alle praktischen Übungsaufgaben werden nach Möglichkeit im Rechnerpool in Kleingruppen bearbeitet. Softwareentwicklung ist Team-Arbeit, daher soll eine Bearbeitung der Aufgaben ohne Partner nicht möglich sein.

Der Kurs gilt als bestanden, wenn die Lösungen der Übungsaufgaben und die Präsenzübungen in zufriedenstellendem Ausmaß (genaueres zu den Qualitätskriterien wird noch bekannt gegeben) von den Übungsleitern (bzw. vom Dozenten bei Präsenzübungen) abgenommen wurden. Bitte beachten Sie, dass es hierzu keine Ausnahmen geben wird.

Ansprechpartner

Literatur

Einführend:

  • Ira Pohl: C++ by Dissection, Addison Wesley
  • Bruce Eckel: Thinking in C++, Volume I
  • Scott Meyers: Effective C++, Addison Wesley

Begleitend:

  • Sehr gutes online Nachschlagewerk: http://www.cplusplus.com
  • Sehr gutes Nachschlagewerk in Buchform: Ray Lischner: C++ in a Nutshell, O'Reilley

Vertiefend:

  • Bruce Eckel: Thinking in C++, Volume II
  • Scott Meyers: More Effective C++, Addison Wesley
  • mit Fokus auf Effizienz: Wikibook Optimising C++