2002 by Ute Schmid
Funktionale Programmierung
Functional Programming
Fachgebiet
Informatik, FB Mathematik-Informatik, Universität Osnabrück
|
 |
Vorlesung im Wintersemester 2002/2003
(Lecture in winter term 02/03)
Kategorie: Informatik / Category: Computer Science
Course Language: English
Themen: Einführung in Konzepte der funktionalen Programmierung am
Beispiel der Programmiersprache ML. Funktionen, Rekursion, Currying,
Funktionen höherer Ordnung, Bindung, Evaluation, Lambda-Kalkül,
Typ-Inferenz und Typ-Checking, Optimierung und Programmtransformation,
Fixpunktsemantik, Theorembeweis und Verifikation. Vertiefung im Bereich
KI-Programmierung mit Common-Lisp.
Empf. Semester: 3. Sem. und höher (Voraussetzung Info A, hilfreich
Info B und D)
Topics: Introduction to concepts of functional programming based on
the programming language ML. Functions, recursion, currying, higher order
functions (functionals), binding, evaluation, lambda calculus, type inferece
and type checking, optimization and program transformation, fixpoint
semantics, theorem proving and verification. Special aspects of AI
programming with Common Lisp.
Proposed for students in 3rd or higher semester (prerequisite Info A, helpful
Info B and D)
Hours and Contact
Online Information
Credits
- "Übungsschein": assignments and programming project (including an
oral presentation).
- "Modul-Prüfung" (exam): Precondition is to get the
"Übungsschein"; examination about the topics of the lecture (oral or
written examination depending on the number of students)
- For cognitive science students this course is classified as
"optional course in computer science" (12 credit points).
Schedule and Syllabus
[Slides/Scriptum (pdf)] [Slides/Scriptum (ps)]
- 15.10.02: Introduction - Functional vs. "von-Neumann" Programming
- 17.10.02: FP Systems; evaluation and correctness of FP functions
- 22.10.02: Mathematical Foundations, Value Declarations in ML
- 24.10.02: Tuples, Records, and Datatype List
- 29.10.02: Evaluation, Recursion
- 31.10.02: Local Declarations and Modules
- 05.11.02: Polymorphic Type Checking and Type Inference
- 07.11.02: Unification of Type Expressions
- 12.11.02: Datatypes and Patterns
- 14.11.02: Datatype Exception, Recursive Datatypes, Tautology Checking
- 19.11.02: Anonymous Functions, Currying, Functionals
- 21.11.02: no class: Symposium of IKW
- 26.11.02: General Purpose Functionals
- 28.11.02: Infinite (Lazy) Lists
- 03.12.02: Reasoning about Functional Programs
- 05.12.02: no class
- 10.12.02: Domain Theory and Fixpoint Semantics, Excursus: Program
Synthesis
- 12.12.02: Abstract Types and Functors, Modules
- 17.12.02: Imperative Programming in ML
- 19.12.02: Lambda-Calculus (Talk by Kyoung-Ho Park) [Slides as doc]
- 07.01.03: Introduction to Lisp (Martin Beckmann) [Slides as pdf]
- --------- Start of Common Lisp programming project ------
- 09.01.03: Solving inductive reasoning tasks with E-Anti-Unification
- 14.01.03: Intelligence Tests (student presentation); KIEL evaluation
- 16.01.03: Intelligence Tests cont. and Representation of Inductive
Reasoning Tasks
- 21.01.03: Formal approach to E-Anti-Unification (student presentation)
- 23.01.03: An algorithm for intersection of regular tree grammars
(student presentation) [pdf]
- 28.01.03: RSG-Algorithm, Solving IST-70 tasks with auto-regression [C++ program]
- 30.01.03: Generation of Grammars, discussion about KIEL results
- 04.02.03: Example questions for the exam [ps, pdf]
- 06.02.03: no class
- 10.02.03: written exam (120 minutes) from 14:00 to 16:00,
in 31/449a [Exam, pdf] [Example Solution, pdf]
- 19.03.03: presentation of project results (15:00-18:00, room 31/322)
[Lisp Programs]
[Stephan Weller's Programs]
Assignments
see [Assignement-Page
(in German)]