| Title: | Functional and Logic Programming |
|---|
| Code: | FLP |
|---|
| Ac.Year: | ukončen 2003/2004 |
|---|
| Term: | Winter |
|---|
| Study plans: | |
|---|
| Language: | Czech |
|---|
| Public info: | http://www.fit.vutbr.cz/study/courses/FLP/public/ |
|---|
| Private info: | http://www.fit.vutbr.cz/study/courses/FLP/private/ |
|---|
| Credits: | 6 |
|---|
| Completion: | examination (written) |
|---|
Type of instruction: | | Hour/sem | Lectures | Sem. Exercises | Lab. exercises | Comp. exercises | Other |
|---|
| Hours: | 39 | 0 | 0 | 12 | 14 |
|---|
| | Examination | Tests | Exercises | Laboratories | Other |
|---|
| Points: | 60 | 20 | 0 | 0 | 20 |
|---|
|
|---|
| Guarantee: | Kolář Dušan, doc. Dr. Ing., DIFS |
|---|
| Lecturer: | Kolář Dušan, doc. Dr. Ing., DIFS |
| Instructor: | Kolář Dušan, doc. Dr. Ing., DIFS |
|---|
| Faculty: | Faculty of Information Technology BUT |
|---|
| Department: | Department of Information Systems FIT BUT |
|---|
| Prerequisites: | |
|---|
| |
| 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. |
| Description: |
|---|
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. |
| 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. |
| 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
|
| Syllabus - others, projects and individual work of students: |
|---|
- A simple program in Haskell (Hugs)
- A simple program in Prolog
|
| Fundamental literature: |
|---|
- Thompson, S.: Haskell, Tha Craft of Functional Programming, ADDISON-WESLEY, 1999, ISBN 0-201-34275-8
- Hill, P., Lloyd, J.: The Gödel Programming Language, MIT Press, 1994, ISBN 0-262-08229-2
|
| Study literature: |
|---|
- Lecture notes in electronic format
- Haskell (Hugs) language tutorial, <A HREF=http://www.haskell.org>http://www.haskell.org
- SWI-Prolog language tutorial, <A HREF=http://www.swi-prolog.org>http://www.swi-prolog.org
|
| Controlled instruction: |
|---|
Mid-term exam, projects realization. |
| Progress assessment: |
|---|
Mid-term exam, submission of 2 projects within give time schedule. |
| Exam prerequisites: |
|---|
Not designated. |
| |