Modulinformationssystem Informatik

 

Programmierung URL PDF XML

Modulcode: Inf-Prog
Englische Bezeichnung: Programming
Modulverantwortliche(r): Prof. Dr. Michael Hanus
Turnus: jedes Jahr im WS (WS09/10 WS10/11 WS11/12 WS12/13 WS13/14 WS14/15)
Präsenzzeiten: 4V 2Ü
ECTS: 8
Workload: 60 Std. Vorlesung, 30 Std. Präsenzübung, 60 Std. Rechnerübungen, 90 Std. Selbststudium
Dauer: ein Semester
Modulkategorien: G (BSc Inf) G (BSc Inf (2-Fach)) G (BSc WInf) INF-Math (Inf. als NF)
Lehrsprache: Deutsch
Voraussetzungen: Info

Kurzfassung:

Dieses Modul gibt eine grundlegende Einführung in die Programmierung. Hierbei werden verschiedene Programmentwicklungs- und Abstraktionstechniken vorgestellt, die es erlauben, die Komplexität großer Systeme unter Kontrolle zu halten.

Lernziele:

Die Studierenden erlernen die systematische Entwicklung von Programmen zur Lösung bestimmter Aufgaben. Sie kennen problemadäquate Strukturierungen und einfache Algorithmen und Datenstrukturen und können deren Effizienz einschätzen. Sie beherrschen wichtige Methoden zum Programmentwurf (Spezifikation, Tests, schrittweise Verfeinerung) und verschiedene Abstraktionstechniken zur systematischen Entwicklung komplexer Systeme und sind in der Lage, diese in unterschiedlichen Programmierparadigmen (funktionale, imperative und objektorientierte Programmierung) anzuwenden.

Lehrinhalte:

Dieses Modul 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

Weitere Voraussetzungen:

Prüfungsleistung:

Am Ende der Vorlesung findet eine schriftliche Klausur statt. Die Zulassung setzt die regelmäßige und aktive Teilnahme an den Übungen voraus.

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 des Moduls erreicht und die Übungen regelmäßig und aktiv besucht 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.

Lehr- und Lernmethoden:

Neben der Vorlesung werden in den Präsenzübungen die wöchentlich zu bearbeitenden Aufgaben besprochen und weitere Präsenzaufgaben in Kleingruppen bearbeitet. Zur Funktionskontrolle der abzugebenden Programmieraufgaben steht ein Web-basiertes automatisches Testsystem zur Verfügung, über das auch alle zu bearbeitenden Übungsaufgaben abgegeben werden müssen. Die Aufgaben werden von Tutoren kontrolliert und es werden individuelle Hinweise zur Verbesserung gegeben. Darüberhinaus stehen den Studierenden für praktische Fragen in den Rechnerarbeitsräumen studentische Hilfskräfte zur Verfügung.

Verwendbarkeit:

Die erlernten Kenntnisse zur Programmierung sind grundlegend für alle Studiengänge der Informatik und daher Voraussetzung für weitere Module, wie z.B. "Algorithmen und Datenstrukturen"', "Softwaretechnik"', "`Programmierpraktikum"' etc.

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
  • H. Abelson, G.J. Sussman: Struktur und Interpretation von Computerprogrammen, Springer-Verlag, 2001 (4. überarbeitete Auflage). ISBN 3-540-42342-7

Verweise:

Kommentar:

Dieses Modul entspricht dem Modul G1.1 der alten BSc-PO.