FI:IB015 Intro to Functional Prog - 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. Marek Klučár (seminar tutor)
Mgr. Tomáš Szaniszlo (seminar tutor)
RNDr. Vladimír Štill (seminar tutor)
Mgr. Andrej Tokarčík (seminar tutor)
RNDr. Martin Ukrop (seminar tutor)
- 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.
Supplier department: Department of Computer Science - Faculty of Informatics
- Thu 10:00–11:50 D1
- Timetable of Seminar Groups:
IB015/02: each odd Monday 14:00–15:50 B130, M. Ukrop
IB015/03: each even Tuesday 12:00–13:50 B130, M. Klučár
IB015/04: each odd Tuesday 12:00–13:50 B130, M. Klučár
IB015/05: each even Thursday 18:00–19:50 B130, A. Tokarčík
IB015/06: each odd Thursday 18:00–19:50 B130, A. Tokarčík
IB015/07: each even Thursday 16:00–17:50 B130, T. Szaniszlo
IB015/08: each odd Thursday 16:00–17:50 B130, T. Szaniszlo
IB015/09: each even Friday 12:00–13:50 B130, V. Štill
IB015/10: each odd Friday 12:00–13:50 B130, V. Štill
- 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 22 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 (24%) and a final written exam (76%). 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