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: |
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.
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.
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:
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.
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.
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.
Die Vorlesung orientiert sich hauptsächlich an folgenden Büchern:
Dieses Modul entspricht dem Modul G1.1 der alten BSc-PO.