DUALE HOCHSCHULE Baden-Württemberg Studienbereich Technik Alternative Programmierkonzepte (T2INF4271) Formale Angaben zum Modul Studiengang Studienrichtung Vertiefung Informatik Angewandte Informatik - Modulbezeichnung Sprache Nummer Version Modulverantwortlicher Alternative Programmierkonzepte Deutsch T2INF4271 1 Prof. Dr. rer. nat. Martin Plümicke Verortung des Moduls im Studienverlauf Semester Voraussetzungen für die Teilnahme 3. Stj. Modulart Moduldauer Lokales Profilmodul 2 Eingesetzte Lehr- und Prüfungsformen Lehrformen Vorlesung, Übung, Labor Lehrmethoden Lehrvortrag, Diskussion Prüfungsleistung Benotung Prüfungsumfang (in min) Klausur Standardnoten 120 Workload und ECTS Workload insgesamt (in h) davon Präsenzzeit (in h) davon Selbststudium (in h) ECTS-Punkte 150,0 72,0 78,0 5 Sachkompetenz Studierende erwerben in diesem Modul Kenntnisse alternativer Programmierkonzepte. Sie bekommen Einblicke in die theoretischen Grundlagen von Programmiersprachen. Dies weitet den Horizont im grundlegenden Verständnis des Programmierens. Die alterativen Konzepte ermöglichen den Studierenden viele Probleme effizienter und oftmals mit geringerer Fehlerzahl zu implementieren. Selbstkompetenz - Qualifikationsziele und Kompetenzen Sozial-ethische Kompetenz 15.05.2017 Modulbeschreibung für Bachelor Studiengänge an der DHBW Seite 1 Lerneinheiten und Inhalte Lehr- und Lerneinheiten Präsenz Selbststudium Funktionale Programmierung 36,0 39,0 - Programmieren mit Funktionen - Rekursive Definitionen - Pattern Matching - Funktionen als Datenwerte - Funktionen höherer Ordnung - Die Funktionen map und fold - Das Konzept der Monaden Funktionale - Auswertungsstrategien: Strikte Auswertung (call-by-value), nicht strikte Auswertung (call-by-name), Lazy-Evaluation (call-by-need) - Überblick über unterschiedliche funktionale Sprache: sml, caml/ocaml, Haskell, Miranda, Lisp/Scheme, Lambda-Kalkül , Logische Programmierung 36,0 39,0 36,0 39,0 - Logik und Programmierung - Die Programmiersprache ROLOG - Unifikation - Automatische Beweisverfahren - Constrained Based Programming - Wissensrepräsentation - Expertensysteme - Planung - Natürliche Sprachverarbeitung Höhere Typkonzepte - Allgemeine Einführung - variable Typen - generalisierte Typen - existenzielle Typen - Typinferenz - Subtyping - Java Typsystem - Java Typ-System - Typterme - Subtyping-Ordnung - Soundness-Bedingung für das Java Typ-System - Wildcard-Typen - Java Programme mit generischen Typen - Parametrisierte Klassen - Vererbung mit parametrisierten Klassen - Einführung in die Typinferenz in Java (Typinferenz Regeln in Java, Typinferenz-Algorithmus, Typlose Java-Programme) Besonderheiten und Voraussetzungen Besonderheiten Voraussetzungen - Literatur - Thiemann, Peter, Grundlagen der funktionalen Programmierung, 1994 - Teubner-Pepper, Peter; Hofstedt, Petra, Funktionale Programmierung Sprachdesign und Programmiertechnik. 2006, Springer, Berlin - Smolka, Gert, Programmierung - eine Einführung in die Informatik mit Standard ML, 2008, Oldenbourg - Simon Peyton Jones [editor], Haskell 98 language and libraries, the revised report, December 2002, http://haskell.org/onlinereport - Bryan O Sullivan, Donald Bruce Stewart, and John Goerzen, Real World Haskell.O Reilly, 2009 - Clocksin, W.F. & Mellish, C.S., Programming in Prolog, Springer, 2003 - Sterling, L. & Shapiro. E, The Art of Prolog. Advanced Programming Techniques, MIT Press, 1986 - Görz, G., Rollinger, C.-R., Schneeberger, J. (Hrsg.), Handbuch der Künstlichen Intelligenz, Oldenbourg, 2004 - Gosling, James; Joy, Bill and Steele, Guy and Bracha, Gilad, The Java Language Specification, 2005, Addison-Wesley - Naftalin, Maurice; Wadler, Philip: Java Generics and Collections Speed Up the Java Development Process., 2007, O` Reilly Media - Wild FJ by Mads Torgersen, Erik Ernst and Christian Plesner Hansen, in the 12th workshop on Foundations of Object Oriented Programming (FOOL 2005) 15.05.2017 Modulbeschreibung für Bachelor Studiengänge an der DHBW Seite 2