Der heute industriell weit verbreitete Ansatz der objektorientierten (OO) Programmierung sowie des OO-Programmierstils ist zwar durchaus wirtschaftlich erfolgreich, jedoch lassen sich damit einige praktisch sehr relevante Problemstellungen bzw. Algorithmen nicht besonders "natürlich" darauf abbilden. Darüberhinaus haben sich die gängigen Rechnerarchitekturen seit dem Design der populären OO-Sprachen vielfältig weiterentwickelt (Multicore-Prozessoren, Speicherzugriffslatenzen, Cloud-Computing, usw.) und stellen nun andere Anforderungen und Randbedingungen an die Abstraktionen der Implementationssprache. Aus diesen Gründen haben in den letzten Jahren Funktionale Programmiersprachen (FP) wie Haskell viel Aufwind bekommen, da diese u.a. auch dafür entworfen wurden, auf die Programmierung moderner Rechnerarchitekturen besser zugeschnitten zu sein. Gerade in kritischen, großen Systemlösungen kommen hier inzwischen diese Ansätze vermehrt zur Anwendung.
Diese LVA soll Studierenden sowohl die nötigen Konzepte vermitteln, um große, praxisrelevante Softwareprojekte mit einer FP-Sprache wie Haskell umsetzen zu können, als auch mit den Stärken (und Schwächen) von FP-Sprachen gegenüber traditionellen OO-Sprachen vertraut machen, um bei konkreten, größeren Softwareprojekten von Fall zu Fall abwägen zu können, welches Modellierungsparadigma besser zur Umsetzung geeignet ist.
Bei Fragen wenden Sie sich bitte an teaching@inso.tuwien.ac.at.
Aufwandsschätzung (ECTS-Breakdown):
- Vorbesprechung: 1,5 h
- Vorlesungen (5 Einheiten à 2 Stunden): 7,5 h
- Eigenrecherchen: 11 h
- Übungsbeispiele: 45 h
- Abschlußpräsentation (inkl. Vorbereitung): 10 h
---------------------------------------------------
Summe: 75 Stunden (3 ECTS)
Die Beurteilung erfolgt aufgrund von in Kleingruppen umzusetzender, selbstwählbarer Softwareprojekte, die die Möglichkeit geben sollen, die vermittelten Konzepte praktisch anzuwenden, und schliesslich am Ende des Semesters mittels kurzer Präsentation vorzustellen sind.
Um dieser LVA leichter folgen zu können, werden Grundkenntnisse der Haskell Programmiersprache dringend empfohlen, die beispielsweise durch Besuch der VU "Funktionale Programmierung" oder alternativ durch Selbststudium der Literaturempfehlungen erlangt werden können.