FI:IB015 Intro to Func.Programming - Course Information
IB015 Introduction to Functional ProgrammingFaculty of Informatics
- Extent and Intensity
- 2/1. 3 credit(s) (plus extra credits for completion). Type of Completion: zk (examination).
- prof. RNDr. Jiří Barnat, Ph.D. (lecturer)
Mgr. Matej Kollár (seminar tutor)
Peter Molnár (seminar tutor)
Mgr. Adam Šiška (seminar tutor)
Mgr. Tomáš Zábojník (seminar tutor)
Mgr. Bc. Martin Frodl (assistant)
- Guaranteed by
- prof. RNDr. Mojmír Křetínský, CSc.
Department of Computer Science - Faculty of Informatics
Contact Person: prof. RNDr. Jiří Barnat, Ph.D.
- Thu 10:00–11:50 D1
- Timetable of Seminar Groups:
IB015/02: each odd Thursday 14:00–15:50 B130, T. Zábojník
IB015/03: each even Tuesday 18:00–19:50 B130, M. Kollár
IB015/04: each odd Tuesday 18:00–19:50 B130, M. Kollár
IB015/05: each even Tuesday 14:00–15:50 B130, P. Molnár
IB015/06: each odd Tuesday 14:00–15:50 B130, P. Molnár
IB015/07: each even Thursday 10:00–11:50 B130, A. Šiška
IB015/08: each odd Thursday 10:00–11:50 B130, A. Šiška
IB015/09: each even Friday 9:00–10:50 B130, A. Šiška
IB015/10: each odd Friday 9:00–10:50 B130, A. Šiška
- There are no special prerequisities apart from the basic math skills (on the secondary-school level), and certain aptitude for abstract reasoning.
- Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
- Fields of study the course is directly associated with
- there are 21 fields of study the course is directly associated with, display
- Course objectives
- The students get acquainted with functional programming paradigm. Haskell enforces purely functional programming style without side effects, which brings on programming habits, useful also in imperative languages.
- Basic notions: term, value, evaluation step.
- Lambda abstraction.
- Higher-order functions, partial application, currying.
- Simple types: ground types and type constructors, product types.
- Polymorfic types, typing.
- User defined type constructors, sum types, recursive types; definitions by patterns.
- List constructors, list enumeration and list comprehension.
- Evaluation order, strict vs. lazy reduction.
- Infinite data structures.
- Recursive functions, operations on lists and trees, time complexity.
- THOMPSON, Simon. Haskell :the craft of functional programming. Harlow: Addison-Wesley, 1996. xx, 500 s. ISBN 0-201-40357-9. info
- Teaching methods
- The course is organized as a series of lectures, plus a set of exercises, where the students get practice with solving various problems.
- Assessment methods
- The evaluation consists of one obligatory midterm written test (32%) and a final written exam (68%). The final grade can be further improved by additional "bonus points" which can be acquired for solving selected exercises.
- Language of instruction
- Follow-Up Courses
- Further Comments
- Study Materials
The course is taught each semester.
- Listed among pre-requisites of other courses
- Teacher's information