Modul Programmierung

Wintersemester 2013/14
Arbeitsgruppe Programmiersprachen und Übersetzerkonstruktion

Nr. Art Termine Raum Veranstalter
080138 V4 Mo 10:15 - 12:00 OS40 - Norbert-Gansel-Hörsaal Hanus
    Fr 8:15 - 10:00 OS40 - Norbert-Gansel-Hörsaal  
080148 Ü2 Verschiedene Termine   Tikovsky, Peemöller, Munstermann u.w.

Vorlesungsbeginn

Freitag, 25. Oktober 2013, 8:15 Uhr
In dieser Vorlesung werden wichtige organisatorische Details zur Vorlesung und den Übungen besprochen. Eine frühere Anmeldung über die StudiDB zu diesem Modul ist nicht notwendig (und auch nicht möglich).

Wichtig:
Zur Teilnahme an diesem Modul muss man bei der StudiDB registriert sein. Aus diesem Grund sollten man zuerst seinen stu-Account beim Rechenzentrum aktivieren (falls noch nicht geschehen) und sich dann mit diesem Formular bei der StudiDB registrieren! Erst danach (der genaue Zeitpunkt wird in der ersten Vorlesung mitgeteilt) kann man sich über die StudiDB für eine Übungsgruppe zu diesem Modul anmelden.

Zielgruppe

Studierende im ersten Semester der Bachelorstudiengänge in Informatik (1-Fach und 2-Fach) und Wirtschaftsinformatik oder mit Nebenfach Informatik.

Voraussetzungen

keine

Inhalt

Die Vorlesung gibt eine grundlegende Einführung in Programmiertechniken zur Beherrschung der Komplexität großer Systeme. Wichtiges Leitmotiv hierfür ist das Finden geeigneter Abstraktionen zur schrittweisen Konstruktion komplexer Systeme. Zur Programmierung wird zunächst die Programmiersprache Scheme verwendet. Die Flexibilität von Scheme zwingt keinen festgelegten Programmierstil auf, sondern unterstützt sehr einfach verschiedene Abstraktionstechniken. Dadurch wird die Programmiersprache kein Mittel, um den Computer zur Ausführung von Operationen zu veranlassen, sondern ein Medium zum Ausdruck von Strukturen über Verfahrensweisen.

Kurzübersicht

  • Grundbegriffe
  • Abstraktion mit Prozeduren
  • Abstraktion mit Daten
  • Modularität, Objekte, Zustände
  • Metalinguistische Abstraktion

Modulprüfung

Die Voraussetzung für den Erwerb eines Modulprüfungszeugnisses ist das erfolgreiche Bestehen der Abschlussklausur. Die Zulassung setzt die regelmäßige und aktive Teilnahme an einem der Kleingruppenübungstermine voraus. Dies bedeutet, dass mehrfaches unentschuldigtes Fehlen beziehungsweise unvorbereitete Teilnahme an diesen Übungen dazu führt, dass die Teilnahme an der Modulprüfung nicht möglich ist.
Bonuspunkte: Positive Studienleistungen können durch die regelmäßige Bearbeitung von Übungsaufgaben in die Bewertung der Modulprüfung in Form von Bonuspunkten eingebracht werden. Wenn mindestens 50% aller Übungspunkte bei der Durchführung dieses Moduls erreicht wurden, werden die Übungspunkte bis zu 20% zu den Klausurpunkten hinzugerechnet. Dies bedeutet, dass z.B. bei 100% erreichten Übungspunkten 20% der erreichbaren Klausurpunkte als Bonus bei der Klausur hinzugefügt werden, und z.B. bei 50% erreichten Übungspunkten 10% der erreichbaren Klausurpunkte hinzugefügt werden.

Abschlussklausur

Die erste Abschlussklausur zur Vorlesung findet am Donnerstag, 13.2.2014, von 16:00 bis 19:00 Uhr im Hörsaal CAP2 - Frederik-Paulsen-Hörsaal statt. Eine weitere Abschlussklausur findet am Dienstag, 8.4.2014, von 16:00 bis 19:00 Uhr im Hörsaal CAP2 - Frederik-Paulsen-Hörsaal statt. Eine vorherige Anmeldung in der StudiDB ist zur Teilnahme erforderlich.

Ergänzende Materialien zur Vorlesung

Folien und Programme:

25.10.2013: Einführung (PDF) Grundbegriffe (PDF)
28.10.2013: meinerstesprogramm.rkt
1.11.2013: wheels.rkt absolute.rkt
4.11.2013: waterstate.rkt sqroot.rkt
8.11.2013: factorial.rkt fib.rkt exp.rkt
11.11.2013: ggt.rkt prime.rkt
15.11.2013: cookie.rkt rat.rkt userat.rkt
18.11.2013: morecookies.rkt numlist.rkt stringlist.rkt
22.11.2013: anylist.rkt pair.rkt parametriclist.rkt listoperations.rkt
25.11.2013: numtree.rkt symbdiff-simple.rkt
29.11.2013: symbdiff.rkt set-interface.rkt set-list.rkt set-ordered-list.rkt
2.12.2013: set-tree.rkt huffman.rkt
9.12.2013: huffman.rkt sumfuns.rkt sum-letrec.rkt maplist.rkt
13.12.2013: maplist.rkt interval-method.rkt derive-comp.rkt mylist.rkt
13.1.2014: properties.rkt property_rat.rkt property_set-ordered-list.rkt property_listoperations.rkt simple_account.rkt
17.1.2014: account.rkt
24.1.2014: locale_function.rkt sqroot_local.rkt mutable-list-with-message.rkt mutable-account.rkt
27.1.2014: mlist.rkt queue.rkt
31.1.2014: halfadder.rkt circuit.rkt
3.2.2014: concurrent-account.rkt

Skript zur Vorlesung:

Es gibt ein Skript zur Vorlesung, das nur innerhalb der CAU Kiel zugreifbar ist. Dieses Skript beinhaltet den ungefähren Vorlesungsverlauf, aber neben dem Lesen des Skripts sollte auch immer die Vorlesung besucht werden, um über den aktuellen Stand informiert zu sein!

Literatur

Die Vorlesung orientiert sich hauptsächlich an folgenden Büchern:

  • H. Klaeren, M. Sperber: Die Macht der Abstraktion, Teubner, 2007. ISBN 978-3-8351-0155-5
  • M. Felleisen, R.B. Findler, M. Flatt, S. Krishnamurthi: How to design programs, MIT, 2001. ISBN 0-262-06218-6 (online: http://www.htdp.org/)
  • H. Abelson, G.J. Sussman: Struktur und Interpretation von Computerprogrammen, Springer-Verlag, 2001 (4. überarbeitete Auflage). ISBN 3-540-42342-7 (online: http://mitpress.mit.edu/sicp/)