Konzepte der Programmierung
Dozent
Prof. Dr. Marc Scholl
Termine (Vorlesung)
Di | 13:30 - 15:00 | A 701 |
Do | 13:30 - 15:00 | R 513 |
Inhalt
Das Modul Informatik 2 besteht aus der Vorlesung "Konzepte der Informatik" und dm Programmierkurs 2.
Kern des Moduls ist eine Einführung in deklarative und logische Programmierparadigmen. Im Unterschied zur imperativen Programmierung wird dabei durch den Programmierer nur vorgegeben,was berechnet werden soll, aber nicht wie genau die Berechnung durchgeführt wird.
Die erste Hälfte der Vorlesung wird sich mit Haskell beschäftigen. Haskell ist ein Beispiel für eine reine funktionale Programmiersprache, die ohne Seiteneffekte (wie etwa Variablenzuweisungen) auskommt. In der zweiten Hälfte wird Prolog als Beispiel einer logischen Programmiersprache behandelt.
Vorlesungsbegleitend gibt der "Programmierkurs 2" eine praktische Einführung in diese beiden Programmiersprachen. Da Vorlesung und Programmierkurs inhaltlich eng verzahnt sind, werden die Übungen zu beiden Veranstaltungen zusammengelegt.
Weitere Details zum Inhalt der Vorlesung im LSF und auf der Webseite zur Vorlesung.
Episoden
2014/04/22 (Di) - Einführung und Überblick, Imperativ vs. deklarativ, Erste Beobachtungen2014/04/24 (Do) - Generell zu Programmiersprachen, "Hello World" verschiedener Programmiersprachen
2014/05/01 (Do) - keine Aufzeichnung (Tag der Arbeit)
2014/05/06 (Di) - Lambda-Notation, Strikte vs. nicht-strikte Auswertung, Lambda-Kalkuel
2014/05/08 (Do) - Operationale Semantik des λ-Kalküls, Referentielle Transparenz
2014/05/13 (Di) - Referenzielle Transparenz, Interaktion komplexer Typen, Listen
2014/05/15 (Do) - Tupel, Funktionsdefinitionen, Pattern Matching, Guards
2014/05/20 (Di) - where, Listenverarbeitung, Haskell standard prelude - Zusammenfassung, fold
2014/05/22 (Do) - Fold, Effizienz, Induktion über Listen, Programm-Synthese, List Comprehensions
2014/05/29 (Do) - keine Aufzeichnung (Christi Himmelfahrt)
inf-12070-20141_2014-06-05_012014/06/05 (Do) - Rekursive algebraische Typen, Typklassen und Overloading
2014/06/10 (Di) - Typklassen, instance-Deklarationen für algebraische Datentypen, Die Typklasse Show
2014/06/12 (Do) - Typklassen und Overloading, Fallstudie: Regulaere Ausdruecke
2014/06/17 (Di) - Wortproblem, Ableitung regulärer Ausdrücke, Lazy Evaluation, Graph-Reduktion
2014/06/19 (Do) - keine Aufzeichnung (Fronleichnam)
2014/07/01 (Di) - Substituierbarkeit, Ko- vs. Kontravarianz, Funktionstypen, Monadische Berechnungen
2014/07/03 (Do) - Monadische Berechnungen: Beispiel Stack, Transformationen, Bind
2014/07/08 (Di) - Bind, Die Monad Klasse, do - Notation, Monad Laws/Was ist eine Monade?
2014/07/10 (Do) - Zustand kapseln, Purely functional I/O, Concurrency
2014/07/17 (Do) - Fragestunde (keine Aufzeichnung)
2014/07/22 (Di) - Einblick in die Logische Programmierung
2014/07/24 (Do) - Fragestunde (keine Aufzeichnung)