Course details

Functional and Logic Programming

FLP Acad. year 2004/2005 Winter semester 6 credits

Current academic year

Practical applications and broader introduction into lambda calculus and predicate logic within the context of functional and logic programming languages. It will be discussed abstract data types, use of recursion and induction, manipulation of lists and infinite data structures. Experience in programming is gained in programming languages Haskell, Prolog, and Goedel. Moreover, principles of their implementation are mentioned too.

Guarantor

Language of instruction

Czech

Completion

Examination

Time span

  • 39 hrs lectures
  • 12 hrs pc labs
  • 14 hrs projects

Department

Subject specific learning outcomes and competences

Students will get basic knowledge and practical experience in functional and logic programming (two important representatives of declarative programming). Moreover, they will get basic information about theoretical basis of both paradigms and implementation techniques.

Learning objectives

Obtaining of basic knowledge and experience in functional and logic programming. Introduction into formal concepts used as a theoretical basis for both paradigms.

Prerequisite knowledge and skills

There are no prerequisites

Syllabus of lectures

  • Introduction to functional programming, lambda calculus
  • Programming language Haskell, introduction, lists
  • User-defined data types, type classes, arrays
  • Input/Ouput
  • Simple applications/programs
  • Proofs in functional programming
  • Denotational semantics, implementation of functional languages
  • Introduction to logic programming, Prolog
  • Lists, cut operator, sorting
  • Data structures, text strings, operators
  • Searching state space, clause management, parsing
  • Goedel
  • Implementation of logic languages, CLP, conclusion

Syllabus of computer exercises

  • Introduction to Haskell environment (Hugs), simple functions, recursion, lists
  • Infinite data structures
  • User defined data types, input/output
  • Practical problem
  • Introduction to Prolog environment (Hugs), lists
  • Practical problem

Progress assessment

Study evaluation is based on marks obtained for specified items. Minimimum number of marks to pass is 50.

Not designated.

Controlled instruction

  • Mid-term exam - written form, questions and exersises to be answered and solved (there are even questions with selection of one from several predefined answers) - 20 points.
  • Projects realization - 2 projects, implementation of a simple program according to the given specification - one in a functional programming language the other in a logic programming language - 20 points all together.
  • Final exam - written form, questions and exersises to be answered and solved (there are even questions with selection of one from several predefined answers) - 60 points.
Back to top