Modulcode: | G1.1 |
Englische Bezeichnung: | Programming |
Modulverantwortliche(r): | Prof. Dr. Michael Hanus |
Turnus: | jedes Jahr im WS (WS06/07 WS07/08 WS08/09) |
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 (Sonstige) |
Lehrsprache: | Deutsch |
Voraussetzungen: |
Dieses Modul gibt eine grundlegende Einführung in die Programmierung. Hierbei werden verschiedene Abstraktionstechniken vorgestellt, die es erlauben, die Komplexität großer Systeme unter Kontrolle zu halten.
Das Grundmodul G1.1 dient dazu, den Studierenden die Grundlagen der Programmierung und systematischen Programmentwicklung zu vermitteln. Die Studierenden erlernen verschiedene Abstraktionstechniken zur Beherrschung komplexer Systeme und wenden diese in unterschiedlichen Programmierparadigmen (funktionale, imperative und objektorientierte Programmierung) an.
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. In einem abschließenden Kapitel werden Sprachkonzepte aus der klassischen prozeduralen objekt-orientierten Programmierung anhand der Sprache Java erläutert.
Kurzübersicht:
Am Ende der Vorlesung findet eine schriftliche Klausur statt. Bei ihr können während des Semesters anhand von Hausaufgaben erworbene Punkte als Bonuspunkte eingebracht 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. 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, wobei das erste die Hauptquelle darstellt: