IB016 Seminar on Functional Programming
Faculty of InformaticsSpring 2025
- Extent and Intensity
- 1/1/0. 2 credit(s) (plus extra credits for completion). Type of Completion: z (credit).
In-person direct teaching - Teacher(s)
- RNDr. Martin Jonáš, Ph.D. (lecturer)
Bc. Jakub Šárník (assistant) - Guaranteed by
- RNDr. Martin Jonáš, Ph.D.
Department of Computer Science – Faculty of Informatics
Supplier department: Department of Computer Science – Faculty of Informatics - Prerequisites
- IB015 Non-Imperative Programming
Pre-requisities for enrolling in the course are to be familiar with Haskell in the scope of the IB015 Non-Imperative Programming course and to have a positive attitude towards functional programming. - Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
The capacity limit for the course is 45 student(s).
Current registration and enrolment status: enrolled: 0/45, only registered: 0/45, only registered with preference (fields directly associated with the programme): 0/45 - fields of study / plans the course is directly associated with
- there are 40 fields of study the course is directly associated with, display
- Course objectives
- Students will significantly extend their knowledge of functional programming. At the end of the course, they should be able to solve non-trivial programming problems using Haskell and be familiar with practical use of this functional language.
- Learning outcomes
- After finishing the course, the student will be able to:
— write a Haskell program with approximatelly 100 to 200 lines;
— perform analysis and functional decompisition of given problem;
— use supportive tools for Haskell developers such as the Cabal package manager, the Hackage package repository, the HLint linter, and the QuickCheck testing framework;
— describe theoretical functional concepts;
— have an idea about some more advanced functional techniques used in practice. - Syllabus
- Advanced syntax, modules, custom type classes, advanced data structures.
- Package system (Hackage/Stackage), support tools (Cabal, HLint, Haddock).
- Functors, applicative functors, monads.
- Automatic generation of tests according to program specification (QuickCheck).
- Input and output in Haskell, processing errors and exceptions (Maybe, Either, exceptions, error states).
- Semigroups, monoids, the Foldable and Traversable classes.
- Evaluation strategies (laziness vs. strictness).
- Monadic parsing (Parsec).
- Monads for shared writing, shared reading and keeping the state (Writer, Reader, State).
- Monad transformers (MaybeT, ErrorT).
- Processing strings and other useful GHC extensions.
- Haskell in real world projects.
- Literature
- LIPOVAČA, Miran. Learn You a Haskell for Great Good!: A Beginner's Guide. First Edition. San Francisco, CA, USA: No Starch Press, 2011, 400 pp. ISBN 978-1-59327-283-8. URL info
- O'SULLIVAN, Bryan, John GOERZEN and Don STEWART. Real World Haskell. First Edition. O'Reilly Media, Inc., 2009, 670 pp. ISBN 978-0-596-51498-3. URL info
- Bookmarks
- https://is.muni.cz/ln/tag/FI:IB016!
- Teaching methods
- Seminars combining lecture and individual programming work; homework.
- Assessment methods
- In order to successful completion of the course, it is necessary to obtain enough points from homework assignments. The attendance of seminars is not compulsory, but highly recommended.
- Language of instruction
- Czech
- Follow-Up Courses
- Further Comments
- The course is taught annually.
The course is taught: every week. - Teacher's information
- https://is.muni.cz/auth/el/1433/jaro2023/IB016/index.qwarp
IB016 Seminar on Functional Programming
Faculty of InformaticsSpring 2024
- Extent and Intensity
- 1/1/0. 2 credit(s) (plus extra credits for completion). Type of Completion: z (credit).
- Teacher(s)
- RNDr. Martin Jonáš, Ph.D. (lecturer)
Bc. Jakub Šárník (assistant) - Guaranteed by
- RNDr. Martin Jonáš, Ph.D.
Department of Computer Science – Faculty of Informatics
Supplier department: Department of Computer Science – Faculty of Informatics - Timetable
- Wed 10:00–11:50 B130
- Prerequisites
- IB015 Non-Imperative Programming
Pre-requisities for enrolling in the course are to be familiar with Haskell in the scope of the IB015 Non-Imperative Programming course and to have a positive attitude towards functional programming. - Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
The capacity limit for the course is 45 student(s).
Current registration and enrolment status: enrolled: 33/45, only registered: 0/45, only registered with preference (fields directly associated with the programme): 0/45 - fields of study / plans the course is directly associated with
- there are 71 fields of study the course is directly associated with, display
- Course objectives
- Students will significantly extend their knowledge of functional programming. At the end of the course, they should be able to solve non-trivial programming problems using Haskell and be familiar with practical use of this functional language.
- Learning outcomes
- After finishing the course, the student will be able to:
— write a Haskell program with approximatelly 100 to 200 lines;
— perform analysis and functional decompisition of given problem;
— use supportive tools for Haskell developers such as the Cabal package manager, the Hackage package repository, the HLint linter, and the QuickCheck testing framework;
— describe theoretical functional concepts;
— have an idea about some more advanced functional techniques used in practice. - Syllabus
- Advanced syntax, modules, custom type classes, advanced data structures.
- Package system (Hackage/Stackage), support tools (Cabal, HLint, Haddock).
- Functors, applicative functors, monads.
- Automatic generation of tests according to program specification (QuickCheck).
- Input and output in Haskell, processing errors and exceptions (Maybe, Either, exceptions, error states).
- Semigroups, monoids, the Foldable and Traversable classes.
- Evaluation strategies (laziness vs. strictness).
- Monadic parsing (Parsec).
- Monads for shared writing, shared reading and keeping the state (Writer, Reader, State).
- Monad transformers (MaybeT, ErrorT).
- Processing strings and other useful GHC extensions.
- Haskell in real world projects.
- Literature
- LIPOVAČA, Miran. Learn You a Haskell for Great Good!: A Beginner's Guide. First Edition. San Francisco, CA, USA: No Starch Press, 2011, 400 pp. ISBN 978-1-59327-283-8. URL info
- O'SULLIVAN, Bryan, John GOERZEN and Don STEWART. Real World Haskell. First Edition. O'Reilly Media, Inc., 2009, 670 pp. ISBN 978-0-596-51498-3. URL info
- Bookmarks
- https://is.muni.cz/ln/tag/FI:IB016!
- Teaching methods
- Seminars combining lecture and individual programming work; homework.
- Assessment methods
- In order to successful completion of the course, it is necessary to obtain enough points from homework assignments. The attendance of seminars is not compulsory, but highly recommended.
- Language of instruction
- Czech
- Follow-Up Courses
- Further Comments
- Study Materials
The course is taught annually. - Teacher's information
- https://is.muni.cz/auth/el/1433/jaro2023/IB016/index.qwarp
IB016 Seminar on Functional Programming
Faculty of InformaticsSpring 2023
- Extent and Intensity
- 1/1/0. 2 credit(s) (plus extra credits for completion). Type of Completion: z (credit).
- Teacher(s)
- RNDr. Martin Jonáš, Ph.D. (lecturer)
Bc. Jakub Šárník (assistant) - Guaranteed by
- RNDr. Martin Jonáš, Ph.D.
Department of Computer Science – Faculty of Informatics
Supplier department: Department of Computer Science – Faculty of Informatics - Timetable
- Tue 14. 2. to Tue 9. 5. Tue 18:00–19:50 B130
- Prerequisites
- IB015 Non-Imperative Programming
Pre-requisities for enrolling in the course are to be familiar with Haskell in the scope of the IB015 Non-Imperative Programming course and to have a positive attitude towards functional programming. - Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
The capacity limit for the course is 45 student(s).
Current registration and enrolment status: enrolled: 25/45, only registered: 0/45, only registered with preference (fields directly associated with the programme): 0/45 - fields of study / plans the course is directly associated with
- there are 71 fields of study the course is directly associated with, display
- Course objectives
- Students will significantly extend their knowledge of functional programming. At the end of the course, they should be able to solve non-trivial programming problems using Haskell and be familiar with practical use of this functional language.
- Learning outcomes
- After finishing the course, the student will be able to:
— write a Haskell program with approximatelly 100 to 200 lines;
— perform analysis and functional decompisition of given problem;
— use supportive tools for Haskell developers such as the Cabal package manager, the Hackage package repository, the HLint linter, and the QuickCheck testing framework;
— describe theoretical functional concepts;
— have an idea about some more advanced functional techniques used in practice. - Syllabus
- Advanced syntax, modules, custom type classes, advanced data structures.
- Package system (Hackage/Stackage), support tools (Cabal, HLint, Haddock).
- Functors, applicative functors, monads.
- Automatic generation of tests according to program specification (QuickCheck).
- Input and output in Haskell, processing errors and exceptions (Maybe, Either, exceptions, error states).
- Semigroups, monoids, the Foldable and Traversable classes.
- Evaluation strategies (laziness vs. strictness).
- Monadic parsing (Parsec).
- Monads for shared writing, shared reading and keeping the state (Writer, Reader, State).
- Monad transformers (MaybeT, ErrorT).
- Processing strings and other useful GHC extensions.
- Haskell in real world projects.
- Literature
- LIPOVAČA, Miran. Learn You a Haskell for Great Good!: A Beginner's Guide. First Edition. San Francisco, CA, USA: No Starch Press, 2011, 400 pp. ISBN 978-1-59327-283-8. URL info
- O'SULLIVAN, Bryan, John GOERZEN and Don STEWART. Real World Haskell. First Edition. O'Reilly Media, Inc., 2009, 670 pp. ISBN 978-0-596-51498-3. URL info
- Bookmarks
- https://is.muni.cz/ln/tag/FI:IB016!
- Teaching methods
- Seminars combining lecture and individual programming work; homework.
- Assessment methods
- In order to successful completion of the course, it is necessary to obtain enough points from homework assignments. The attendance of seminars is not compulsory, but highly recommended.
- Language of instruction
- Czech
- Follow-Up Courses
- Further Comments
- Study Materials
The course is taught annually. - Teacher's information
- https://is.muni.cz/auth/el/1433/jaro2023/IB016/index.qwarp
IB016 Seminar on Functional Programming
Faculty of InformaticsSpring 2022
- Extent and Intensity
- 1/1/0. 2 credit(s) (plus extra credits for completion). Type of Completion: z (credit).
- Teacher(s)
- Mgr. et Mgr. Vladimír Chlup (lecturer)
Mgr. Adam Matoušek (lecturer)
RNDr. Vladimír Štill, Ph.D. (lecturer)
Mgr. František Bráblík (assistant)
Mgr. Henrieta Micheľová (assistant) - Guaranteed by
- RNDr. Vladimír Štill, Ph.D.
Department of Computer Science – Faculty of Informatics
Supplier department: Department of Computer Science – Faculty of Informatics - Timetable
- Wed 16. 2. to Wed 11. 5. Wed 12:00–13:50 B130
- Prerequisites
- IB015 Non-Imperative Programming
Pre-requisities for enrolling in the course are to be familiar with Haskell in the scope of the IB015 Non-Imperative Programming course and to have a positive attitude towards functional programming. - Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
The capacity limit for the course is 36 student(s).
Current registration and enrolment status: enrolled: 14/36, only registered: 0/36, only registered with preference (fields directly associated with the programme): 0/36 - fields of study / plans the course is directly associated with
- there are 68 fields of study the course is directly associated with, display
- Course objectives
- Students will significantly extend their knowledge of functional programming. At the end of the course, they should be able to solve non-trivial programming problems using Haskell and be familiar with practical use of this functional language.
- Learning outcomes
- After finishing the course, the student will be able to:
— write a Haskell program with approximatelly 100 to 200 lines;
— perform analysis and functional decompisition of given problem;
— use supportive tools for Haskell developers such as the Cabal package manager, the Hackage package repository, the HLint linter, and the QuickCheck testing framework;
— describe theoretical functional concepts;
— have an idea about some more advanced functional techniques used in practice. - Syllabus
- Advanced syntax, modules, custom type classes, advanced data structures.
- Package system (Hackage/Stackage), support tools (Cabal, HLint, Haddock).
- Functors, applicative functors, monads.
- Automatic generation of tests according to program specification (QuickCheck).
- Input and output in Haskell, processing errors and exceptions (Maybe, Either, exceptions, error states).
- Semigroups, monoids, the Foldable and Traversable classes.
- Evaluation strategies (laziness vs. strictness).
- Context-aware traversal of data structures (Zippers, Lens).
- Monadic parsing (Parsec).
- Monads for shared writing, shared reading and keeping the state (Writer, Reader, State).
- Monad transformers (MaybeT, ErrorT).
- Processing strings and other useful GHC extensions.
- Haskell in real world projects.
- Literature
- LIPOVAČA, Miran. Learn You a Haskell for Great Good!: A Beginner's Guide. First Edition. San Francisco, CA, USA: No Starch Press, 2011, 400 pp. ISBN 978-1-59327-283-8. URL info
- O'SULLIVAN, Bryan, John GOERZEN and Don STEWART. Real World Haskell. First Edition. O'Reilly Media, Inc., 2009, 670 pp. ISBN 978-0-596-51498-3. URL info
- Bookmarks
- https://is.muni.cz/ln/tag/FI:IB016!
- Teaching methods
- Seminars combining lecture and individual programming work; homework.
- Assessment methods
- In order to successful completion of the course, it is necessary to obtain enough points from homework assignments. The attendance of seminars is not compulsory, but highly recommended.
- Language of instruction
- Czech
- Follow-Up Courses
- Further Comments
- Study Materials
The course is taught annually. - Teacher's information
- https://is.muni.cz/auth/el/1433/jaro2020/IB016/index.qwarp
IB016 Seminar on Functional Programming
Faculty of InformaticsSpring 2021
- Extent and Intensity
- 0/2/0. 2 credit(s) (plus extra credits for completion). Type of Completion: z (credit).
- Teacher(s)
- Mgr. et Mgr. Vladimír Chlup (lecturer)
Mgr. Adam Matoušek (lecturer)
RNDr. Vladimír Štill, Ph.D. (lecturer)
Mgr. Martin Kurečka (assistant) - Guaranteed by
- RNDr. Vladimír Štill, Ph.D.
Department of Computer Science – Faculty of Informatics
Supplier department: Department of Computer Science – Faculty of Informatics - Timetable
- Wed 8:00–9:50 Virtuální místnost
- Timetable of Seminar Groups:
- Prerequisites
- IB015 Non-Imperative Programming
Pre-requisities for enrolling in the course are to be familiar with Haskell in the scope of the IB015 Non-Imperative Programming course and to have a positive attitude towards functional programming. - Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
The capacity limit for the course is 36 student(s).
Current registration and enrolment status: enrolled: 2/36, only registered: 0/36, only registered with preference (fields directly associated with the programme): 0/36 - fields of study / plans the course is directly associated with
- there are 68 fields of study the course is directly associated with, display
- Course objectives
- Students will significantly extend their knowledge of functional programming. At the end of the course, they should be able to solve non-trivial programming problems using Haskell and be familiar with practical use of this functional language.
- Learning outcomes
- After finishing the course, the student will be able to:
— write a Haskell program with approximatelly 100 to 200 lines;
— perform analysis and functional decompisition of given problem;
— use supportive tools for Haskell developers such as the Cabal package manager, the Hackage package repository, the HLint linter, and the QuickCheck testing framework;
— describe theoretical functional concepts;
— have an idea about some more advanced functional techniques used in practice. - Syllabus
- Advanced syntax, modules, custom type classes, advanced data structures.
- Package system (Hackage/Stackage), support tools (Cabal, HLint, Haddock).
- Functors, applicative functors, monads.
- Automatic generation of tests according to program specification (QuickCheck).
- Input and output in Haskell, processing errors and exceptions (Maybe, Either, exceptions, error states).
- Semigroups, monoids, the Foldable and Traversable classes.
- Evaluation strategies (laziness vs. strictness).
- Context-aware traversal of data structures (Zippers, Lens).
- Monadic parsing (Parsec).
- Monads for shared writing, shared reading and keeping the state (Writer, Reader, State).
- Monad transformers (MaybeT, ErrorT).
- Processing strings and other useful GHC extensions.
- Haskell in real world projects.
- Literature
- LIPOVAČA, Miran. Learn You a Haskell for Great Good!: A Beginner's Guide. First Edition. San Francisco, CA, USA: No Starch Press, 2011, 400 pp. ISBN 978-1-59327-283-8. URL info
- O'SULLIVAN, Bryan, John GOERZEN and Don STEWART. Real World Haskell. First Edition. O'Reilly Media, Inc., 2009, 670 pp. ISBN 978-0-596-51498-3. URL info
- Bookmarks
- https://is.muni.cz/ln/tag/FI:IB016!
- Teaching methods
- Seminars combining lecture and individual programming work; homework.
- Assessment methods
- In order to successful completion of the course, it is necessary to obtain enough points from homework assignments. The attendance of seminars is not compulsory, but highly recommended.
- Language of instruction
- Czech
- Follow-Up Courses
- Further Comments
- Study Materials
The course is taught annually. - Teacher's information
- https://is.muni.cz/auth/el/1433/jaro2020/IB016/index.qwarp
IB016 Seminar on Functional Programming
Faculty of InformaticsSpring 2020
- Extent and Intensity
- 1/1/0. 2 credit(s) (plus extra credits for completion). Type of Completion: z (credit).
- Teacher(s)
- Mgr. et Mgr. Vladimír Chlup (lecturer)
Mgr. Martin Kurečka (lecturer)
Mgr. Adam Matoušek (lecturer)
RNDr. Vladimír Štill, Ph.D. (lecturer)
Mgr. Henrieta Micheľová (assistant) - Guaranteed by
- RNDr. Vladimír Štill, Ph.D.
Department of Computer Science – Faculty of Informatics
Supplier department: Department of Computer Science – Faculty of Informatics - Timetable of Seminar Groups
- IB016/01: Mon 17. 2. to Fri 15. 5. Wed 10:00–11:50 B130, V. Chlup, M. Kurečka, A. Matoušek, V. Štill
IB016/02: Mon 17. 2. to Fri 15. 5. Thu 18:00–19:50 B130, V. Chlup, M. Kurečka, A. Matoušek, V. Štill - Prerequisites
- IB015 Non-Imperative Programming
Pre-requisities for enrolling in the course are to be familiar with Haskell in the scope of the IB015 Non-Imperative Programming course and to have a positive attitude towards functional programming. - Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
The capacity limit for the course is 36 student(s).
Current registration and enrolment status: enrolled: 2/36, only registered: 0/36, only registered with preference (fields directly associated with the programme): 0/36 - fields of study / plans the course is directly associated with
- there are 68 fields of study the course is directly associated with, display
- Course objectives
- Students will significantly extend their knowledge of functional programming. At the end of the course, they should be able to solve non-trivial programming problems using Haskell and be familiar with practical use of this functional language.
- Learning outcomes
- After finishing the course, the student will be able to:
— write a Haskell program with approximatelly 100 to 200 lines;
— perform analysis and functional decompisition of given problem;
— use supportive tools for Haskell developers such as the Cabal package manager, the Hackage package repository, the HLint linter, and the QuickCheck testing framework;
— describe theoretical functional concepts;
— have an idea about some more advanced functional techniques used in practice. - Syllabus
- Advanced syntax, modules, custom type classes, advanced data structures.
- Package system (Hackage/Stackage), support tools (Cabal, HLint, Haddock).
- Functors, applicative functors, monads.
- Automatic generation of tests according to program specification (QuickCheck).
- Input and output in Haskell, processing errors and exceptions (Maybe, Either, exceptions, error states).
- Semigroups, monoids, the Foldable and Traversable classes.
- Evaluation strategies (laziness vs. strictness).
- Context-aware traversal of data structures (Zippers, Lens).
- Monadic parsing (Parsec).
- Monads for shared writing, shared reading and keeping the state (Writer, Reader, State).
- Monad transformers (MaybeT, ErrorT).
- Processing strings and other useful GHC extensions.
- Haskell in real world projects.
- Literature
- LIPOVAČA, Miran. Learn You a Haskell for Great Good!: A Beginner's Guide. First Edition. San Francisco, CA, USA: No Starch Press, 2011, 400 pp. ISBN 978-1-59327-283-8. URL info
- O'SULLIVAN, Bryan, John GOERZEN and Don STEWART. Real World Haskell. First Edition. O'Reilly Media, Inc., 2009, 670 pp. ISBN 978-0-596-51498-3. URL info
- Bookmarks
- https://is.muni.cz/ln/tag/FI:IB016!
- Teaching methods
- Seminars combining lecture and individual programming work; homework.
- Assessment methods
- In order to successful completion of the course, it is necessary to obtain enough points from homework assignments. The attendance of seminars is not compulsory, but highly recommended.
- Language of instruction
- Czech
- Follow-Up Courses
- Further Comments
- Study Materials
The course is taught annually. - Teacher's information
- https://is.muni.cz/auth/el/1433/jaro2020/IB016/index.qwarp
IB016 Seminar on Functional Programming
Faculty of InformaticsSpring 2019
- Extent and Intensity
- 0/2. 2 credit(s) (plus extra credits for completion). Type of Completion: z (credit).
- Teacher(s)
- Mgr. Adam Matoušek (lecturer)
Mgr. Henrieta Micheľová (lecturer)
RNDr. Vladimír Štill, Ph.D. (lecturer)
RNDr. Martin Ukrop, Ph.D. (lecturer)
Bc. et Bc. Martin Zahradníček, MSc (assistant) - Guaranteed by
- prof. RNDr. Mojmír Křetínský, CSc.
Department of Computer Science – Faculty of Informatics
Supplier department: Department of Computer Science – Faculty of Informatics - Timetable
- Thu 21. 2. to Thu 16. 5. Thu 18:00–19:50 B130
- Prerequisites
- IB015 Non-Imperative Programming
Pre-requisities for enrolling in the course are to be familiar with Haskell in the scope of the IB015 Non-Imperative Programming course and to have a positive attitude towards functional programming. - Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
The capacity limit for the course is 18 student(s).
Current registration and enrolment status: enrolled: 0/18, only registered: 0/18, only registered with preference (fields directly associated with the programme): 0/18 - fields of study / plans the course is directly associated with
- there are 17 fields of study the course is directly associated with, display
- Course objectives
- Students will significantly extend their knowledge of functional programming. At the end of the course, they should be able to solve non-trivial programming problems using Haskell and to be familiar with practical use of this functional language.
- Learning outcomes
- The student who finshes this course will be able to:
- write a Haskell program with approximatelly 100 to 200 lines;
- perform analysis and functional decompisition of given problem;
- use supportive tools for Haskell developers such as the Cabal package manager, the Hackage package repository, the HLint linter, and the QuickCheck testing framework;
- describe theoretical functional concepts;
- have an idea about some more advanced functional techniques used in practice. - Syllabus
- Advanced syntax, modules, custom type classes, advanced data structures.
- Package system (Hackage/Stackage), support tools (cabal, HLint, Haddock).
- Functors, applicative functors, monads.
- Automatic generation of tests according to program specification (QuickCheck).
- Input and output in Haskell, processing errors and exceptions (Maybe, Either, exceptions, error states).
- Monoids, processing of command line options.
- Evaluation strategies (laziness vs. strictness).
- Context-aware traversal of data structures (Zippers, Lens).
- Monadic parsing (Parsec).
- Monads for shared writing, shared reading and keeping the state (Writer, Reader, State).
- Monad transformers (MaybeT, ErrorT).
- Processing strings and other useful GHC extensions.
- Haskell in real world projects.
- Literature
- LIPOVAČA, Miran. Learn You a Haskell for Great Good!: A Beginner's Guide. First Edition. San Francisco, CA, USA: No Starch Press, 2011, 400 pp. ISBN 978-1-59327-283-8. URL info
- O'SULLIVAN, Bryan, John GOERZEN and Don STEWART. Real World Haskell. First Edition. O'Reilly Media, Inc., 2009, 670 pp. ISBN 978-0-596-51498-3. URL info
- Bookmarks
- https://is.muni.cz/ln/tag/FI:IB016!
- Teaching methods
- The course is organized as a series of two-hour seminars wherein topics of application functional programming in practice are presented to students. Apart from that, it is requested to solve five homework assignments regarding the discussed subjects (implementation + peer-review).
- Assessment methods
- In order to successful completion of the course, it is necessary to obtain enough points from homework assignments. The attendance of seminars is not compulsory, but highly recommended.
- Language of instruction
- Czech
- Follow-Up Courses
- Further Comments
- Study Materials
The course is taught annually. - Teacher's information
- https://is.muni.cz/auth/el/1433/jaro2019/IB016/index.qwarp
IB016 Seminar on Functional Programming
Faculty of InformaticsSpring 2018
- Extent and Intensity
- 0/2. 2 credit(s) (plus extra credits for completion). Type of Completion: z (credit).
- Teacher(s)
- RNDr. Vladimír Štill, Ph.D. (lecturer)
RNDr. Martin Ukrop, Ph.D. (lecturer)
Mgr. Adam Matoušek (assistant) - Guaranteed by
- prof. RNDr. Mojmír Křetínský, CSc.
Department of Computer Science – Faculty of Informatics
Supplier department: Department of Computer Science – Faculty of Informatics - Timetable
- Thu 10:00–11:50 B130
- Prerequisites
- IB015 Non-Imperative Programming
Pre-requisities for enrolling in the course are to be familiar with Haskell in the scope of the IB015 Non-Imperative Programming course and to have a positive attitude towards functional programming. - Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
The capacity limit for the course is 30 student(s).
Current registration and enrolment status: enrolled: 0/30, only registered: 0/30, only registered with preference (fields directly associated with the programme): 0/30 - fields of study / plans the course is directly associated with
- there are 17 fields of study the course is directly associated with, display
- Course objectives
- Students will significantly extend their knowledge of functional programming. At the end of the course, they should be able to solve non-trivial programming problems using Haskell and to be familiar with practical use of this functional language.
- Learning outcomes
- The student who finshes this course will be able to:
- write a Haskell program with approximatelly 100 to 200 lines;
- perform analysis and functional decompisition of given problem;
- use supportive tools for Haskell developers such as the Cabal package manager, the Hackage package repository, the HLint linter, and the QuickCheck testing framework;
- describe theoretical functional concepts;
- have an idea about some more advanced functional techniques used in practice. - Syllabus
- Advanced syntax, modules, custom type classes, advanced data structures.
- Package system (Hackage/Stackage), support tools (cabal, HLint, Haddock).
- Functors, applicative functors, monads.
- Automatic generation of tests according to program specification (QuickCheck).
- Input and output in Haskell, processing errors and exceptions (Maybe, Either, exceptions, error states).
- Monoids, processing of command line options.
- Evaluation strategies (laziness vs. strictness).
- Context-aware traversal of data structures (Zippers, Lens).
- Monadic parsing (Parsec).
- Monads for shared writing, shared reading and keeping the state (Writer, Reader, State).
- Monad transformers (MaybeT, ErrorT).
- Processing strings and other useful GHC extensions.
- Haskell in real world projects.
- Literature
- LIPOVAČA, Miran. Learn You a Haskell for Great Good!: A Beginner's Guide. First Edition. San Francisco, CA, USA: No Starch Press, 2011, 400 pp. ISBN 978-1-59327-283-8. URL info
- O'SULLIVAN, Bryan, John GOERZEN and Don STEWART. Real World Haskell. First Edition. O'Reilly Media, Inc., 2009, 670 pp. ISBN 978-0-596-51498-3. URL info
- Bookmarks
- https://is.muni.cz/ln/tag/FI:IB016!
- Teaching methods
- The course is organized as a series of two-hour seminars wherein topics of application functional programming in practice are presented to students. Apart from that, it is requested to solve four homework assignments regarding the discussed subjects (implementation + peer-review).
- Assessment methods
- In order to successful completion of the course, it is necessary to obtain enough points from homework assignments. The attendance of seminars is not compulsory, but highly recommended.
- Language of instruction
- Czech
- Follow-Up Courses
- Further Comments
- Study Materials
The course is taught annually. - Teacher's information
- https://is.muni.cz/auth/el/1433/jaro2018/IB016/index.qwarp
IB016 Seminar on Functional Programming
Faculty of InformaticsSpring 2017
- Extent and Intensity
- 0/2. 2 credit(s) (plus extra credits for completion). Type of Completion: z (credit).
- Teacher(s)
- RNDr. Vladimír Štill, Ph.D. (lecturer)
RNDr. Martin Ukrop, Ph.D. (lecturer) - Guaranteed by
- prof. RNDr. Mojmír Křetínský, CSc.
Department of Computer Science – Faculty of Informatics
Supplier department: Department of Computer Science – Faculty of Informatics - Timetable
- Wed 14:00–15:50 B130
- Prerequisites
- IB015 Non-Imperative Programming
Pre-requisities for enrolling in the course are to be familiar with Haskell in the scope of the IB015 Non-Imperative Programming course and to have a positive attitude towards functional programming. - Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
The capacity limit for the course is 30 student(s).
Current registration and enrolment status: enrolled: 0/30, only registered: 0/30, only registered with preference (fields directly associated with the programme): 0/30 - fields of study / plans the course is directly associated with
- there are 17 fields of study the course is directly associated with, display
- Course objectives
- Students will significantly extend their knowledge of functional programming. At the end of the course, they should be able to solve non-trivial programming problems using Haskell and to be familiar with practical use of this functional language.
- Syllabus
- GHC(i), interpreter commands, compilation of Haskell programs
- Control-flow statements, recursion, anonymous functions, higher-order functions, operators for function composition and application.
- Modules: Important modules in Haskell 2010, import of modules, writing your own modules.
- Support tools, packages, cabal, Haskage.
- Typeclasses: Show, Read, numerical typeclasses. Defining new typeclasses.
- Data structures: associative lists, records, arrays, implementation of new data structures.
- Input and output: file IO, system programming, IO in Haskell in general.
- Functors, applicative, monads.
- Error handling and exceptions: Maybe, Either, catching and setting of exceptions, proper exception handling.
- Testing, optimization, documentation: QuickCheck, tail-recursion, strictness annotations. Documenting code and documentation generation.
- Parsing: regular expressions, Parsec parser generator.
- Interesting syntanctical extensions in GHC.
- Literature
- LIPOVAČA, Miran. Learn You a Haskell for Great Good!: A Beginner's Guide. First Edition. San Francisco, CA, USA: No Starch Press, 2011, 400 pp. ISBN 978-1-59327-283-8. URL info
- O'SULLIVAN, Bryan, John GOERZEN and Don STEWART. Real World Haskell. First Edition. O'Reilly Media, Inc., 2009, 670 pp. ISBN 978-0-596-51498-3. URL info
- Bookmarks
- https://is.muni.cz/ln/tag/FI:IB016!
- Teaching methods
- The course is organized as a series of two-hour seminars wherein topics of application functional programming in practice are presented to students. Apart from that, it is requested to solve five homework assignments regarding the discussed subjects.
- Assessment methods
- In order to successful completion of the course, it is necessary to obtain at least 50 % points from homework assignments. The attendance of seminars is not compulsory, but highly recommended.
- Language of instruction
- Czech
- Follow-Up Courses
- Further Comments
- Study Materials
The course is taught annually. - Teacher's information
- https://is.muni.cz/auth/el/1433/jaro2017/IB016/index.qwarp
IB016 Seminar on Functional Programming
Faculty of InformaticsSpring 2016
- Extent and Intensity
- 0/2. 2 credit(s) (plus extra credits for completion). Type of Completion: z (credit).
- Teacher(s)
- RNDr. Vladimír Štill, Ph.D. (seminar tutor)
RNDr. Martin Ukrop, Ph.D. (seminar tutor) - Guaranteed by
- prof. RNDr. Mojmír Křetínský, CSc.
Department of Computer Science – Faculty of Informatics
Supplier department: Department of Computer Science – Faculty of Informatics - Timetable of Seminar Groups
- IB016/01: Mon 16:00–17:50 A219, V. Štill, M. Ukrop
IB016/02: Thu 14:00–15:50 A219, V. Štill, M. Ukrop - Prerequisites
- IB015 Non-Imperative Programming
Pre-requisities for enrolling in the course are to be familiar with Haskell in the scope of the IB015 Non-Imperative Programming course and to have a positive attitude towards functional programming. - Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
The capacity limit for the course is 40 student(s).
Current registration and enrolment status: enrolled: 0/40, only registered: 0/40, only registered with preference (fields directly associated with the programme): 0/40 - fields of study / plans the course is directly associated with
- there are 17 fields of study the course is directly associated with, display
- Course objectives
- Students will significantly extend their knowledge of functional programming. At the end of the course, they should be able to solve non-trivial programming problems using Haskell and to be familiar with practical use of this functional language.
- Syllabus
- GHC(i), interpreter commands, compilation of Haskell programs
- Control-flow statements, recursion, anonymous functions, higher-order functions, operators for function composition and application.
- Modules: Important modules in Haskell 2010, import of modules, writing your own modules.
- Support tools, packages, cabal, Haskage.
- Typeclasses: Show, Read, numerical typeclasses. Defining new typeclasses.
- Data structures: associative lists, records, arrays, implementation of new data structures.
- Input and output: file IO, system programming, IO in Haskell in general.
- Functors, applicative, monads.
- Error handling and exceptions: Maybe, Either, catching and setting of exceptions, proper exception handling.
- Testing, optimization, documentation: QuickCheck, tail-recursion, strictness annotations. Documenting code and documentation generation.
- Parsing: regular expressions, Parsec parser generator.
- Interesting syntanctical extensions in GHC.
- Literature
- LIPOVAČA, Miran. Learn You a Haskell for Great Good!: A Beginner's Guide. First Edition. San Francisco, CA, USA: No Starch Press, 2011, 400 pp. ISBN 978-1-59327-283-8. URL info
- O'SULLIVAN, Bryan, John GOERZEN and Don STEWART. Real World Haskell. First Edition. O'Reilly Media, Inc., 2009, 670 pp. ISBN 978-0-596-51498-3. URL info
- Bookmarks
- https://is.muni.cz/ln/tag/FI:IB016!
- Teaching methods
- The course is organized as a series of two-hour seminars wherein topics of application functional programming in practice are presented to students. Apart from that, it is requested to solve five homework assignments regarding the discussed subjects.
- Assessment methods
- In order to successful completion of the course, it is necessary to obtain at least 50 % points from homework assignments. The attendance of seminars is not compulsory, but highly recommended.
- Language of instruction
- Czech
- Follow-Up Courses
- Further Comments
- Study Materials
The course is taught annually. - Teacher's information
- https://is.muni.cz/auth/el/1433/jaro2016/IB016/index.qwarp
IB016 Seminar on Functional Programming
Faculty of InformaticsSpring 2015
- Extent and Intensity
- 0/2. 2 credit(s) (plus extra credits for completion). Type of Completion: z (credit).
- Teacher(s)
- RNDr. Vladimír Štill, Ph.D. (seminar tutor)
RNDr. Martin Ukrop, Ph.D. (seminar tutor) - Guaranteed by
- prof. RNDr. Mojmír Křetínský, CSc.
Department of Computer Science – Faculty of Informatics
Supplier department: Department of Computer Science – Faculty of Informatics - Timetable of Seminar Groups
- IB016/01: Wed 14:00–15:50 A219, V. Štill, M. Ukrop
IB016/02: Tue 14:00–15:50 B130, V. Štill, M. Ukrop - Prerequisites
- IB015 Non-Imperative Programming
Pre-requisities for enrolling in the course are to be familiar with content of the IB015 Non-Imperative Programming course and to have a positive attitude towards functional programming. - Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
The capacity limit for the course is 40 student(s).
Current registration and enrolment status: enrolled: 0/40, only registered: 0/40, only registered with preference (fields directly associated with the programme): 0/40 - fields of study / plans the course is directly associated with
- there are 17 fields of study the course is directly associated with, display
- Course objectives
- Students will significantly extend their knowledge of functional programming. At the end of the course, they should be able to solve non-trivial programming problems using Haskell and to be familiar with practical use of this functional language.
- Syllabus
- GHC(i), interpreter commands, compilation of Haskell programs
- Control-flow statements, recursion, anonymous functions, higher-order functions, operators for function composition and application.
- Modules: Important modules in Haskell 2010, import of modules, writing your own modules.
- Support tools, packages, cabal, Haskage.
- Typeclasses: Show, Read, numerical typeclasses. Defining new typeclasses.
- Data structures: associative lists, records, arrays, implementation of new data structures.
- Input and output: file IO, system programming, IO in Haskell in general.
- Functors, applicative, monads.
- Error handling and exceptions: Maybe, Either, catching and setting of exceptions, proper exception handling.
- Testing, optimization, documentation: QuickCheck, tail-recursion, strictness annotations. Documenting code and documentation generation.
- Parsing: regular expressions, Parsec parser generator.
- Parallel programming: threads, parallel programming strategies.
- Interesting syntanctical extensions in GHC and more.
- Literature
- Bookmarks
- https://is.muni.cz/ln/tag/FI:IB016!
- Teaching methods
- The course is organized as a series of two-hour seminars wherein topics of application functional programming in practice are presented to students. Apart from that, it is requested to solve five homework assignments regarding the discussed subjects.
- Assessment methods
- In order to successful completion of the course, it is necessary to obtain at least 50 % points from homework assignments. The attendance of seminars is not compulsory, but highly recommended.
- Language of instruction
- Czech
- Follow-Up Courses
- Further Comments
- Study Materials
The course is taught annually. - Teacher's information
- https://is.muni.cz/auth/el/1433/jaro2015/IB016/index.qwarp
IB016 Seminar on Functional Programming
Faculty of InformaticsSpring 2013
- Extent and Intensity
- 0/2. 2 credit(s) (plus extra credits for completion). Type of Completion: z (credit).
- Teacher(s)
- RNDr. Libor Škarvada (seminar tutor)
Mgr. Matej Kollár (seminar tutor)
Mgr. Petr Pilař (seminar tutor) - Guaranteed by
- prof. RNDr. Mojmír Křetínský, CSc.
Department of Computer Science – Faculty of Informatics
Contact Person: RNDr. Libor Škarvada
Supplier department: Department of Computer Science – Faculty of Informatics - Timetable
- Thu 18:00–19:50 B130
- Prerequisites
- IB015 Intro to Func.Programming
Pre-requisities for enrolling in the course are to be familiar with content of the IB015 Non-Imperative Programming course and to have a positive attitude towards functional programming. - 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 / plans the course is directly associated with
- there are 17 fields of study the course is directly associated with, display
- Course objectives
- Students will significantly extend their knowledge of functional programming. At the end of the course, they should be able to solve non-trivial programming problems using Haskell and to be familiar with practical use of this functional language.
- Syllabus
- GHC(i), interpreter commands, compilation of Haskell programs.
- Code branching, recursion, anonymous functions, high-ordered functions, operators for function composition and application.
- Modules and typeclasses: the important modules in Haskell 98, how to import them, writing own modules. Typeclasses Show, Read, numeric types, and others.
- Data structures: maps, records, arrays, custom data structures implementation.
- Input and output: dealing with files, system programming, limitations of the IO in Haskell.
- Monads: functors, programming with monads.
- Processing errors and exceptions: Maybe, Either, catching and raising exceptions, correction of error states.
- Testing, optimization, documentation: QuickCheck, code coverage, profiling, tail recursion, adding strictness, literate programming, and generating documentation.
- Parsing: regular expressions, Parsec.
- Database: HDBC interface, SQL.
- Web and network services: web application programming with frameworks, using network protocols.
- GUI/multimedia: gtk2hs/image processing.
- Paralel programming: threads, paralel programming and strategies.
- Literature
- Bookmarks
- https://is.muni.cz/ln/tag/FI:IB016!
- Teaching methods
- The course is organized as a series of two-hour seminars wherein topics of application functional programming in practice are presented to students. Apart from that, it is requested to solve five homework assignments regarding the discussed subjects.
- Assessment methods
- In order to successful completion of the course, it is necessary to obtain at least 50 % points from homework assignments. The attendance of seminars is compulsory and a large number of absences can negatively affect the overall result.
- Language of instruction
- Czech
- Follow-Up Courses
- Further Comments
- Study Materials
The course is taught annually.
IB016 Seminar on Functional Programming
Faculty of InformaticsSpring 2012
- Extent and Intensity
- 0/2. 2 credit(s) (plus extra credits for completion). Type of Completion: z (credit).
- Teacher(s)
- RNDr. Libor Škarvada (seminar tutor)
Mgr. Matej Kollár (seminar tutor)
Mgr. Petr Pilař (seminar tutor) - Guaranteed by
- prof. RNDr. Mojmír Křetínský, CSc.
Department of Computer Science – Faculty of Informatics
Contact Person: RNDr. Libor Škarvada
Supplier department: Department of Computer Science – Faculty of Informatics - Timetable of Seminar Groups
- IB016/01: Tue 18:00–19:50 B130, M. Kollár
IB016/02: Tue 14:00–15:50 B130, P. Pilař - Prerequisites
- IB015 Intro to Functional Prog
Pre-requisities for enrolling in the course are to be familiar with content of the IB015 Non-Imperative Programming course and to have a positive attitude towards functional programming. - 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 / plans the course is directly associated with
- there are 17 fields of study the course is directly associated with, display
- Course objectives
- Students will significantly extend their knowledge of functional programming. At the end of the course, they should be able to solve non-trivial programming problems using Haskell and to be familiar with practical use of this functional language.
- Syllabus
- GHC(i), interpreter commands, compilation of Haskell programs.
- Code branching, recursion, anonymous functions, high-ordered functions, operators for function composition and application.
- Modules and typeclasses: the important modules in Haskell 98, how to import them, writing own modules. Typeclasses Show, Read, numeric types, and others.
- Data structures: maps, records, arrays, custom data structures implementation.
- Input and output: dealing with files, system programming, limitations of the IO in Haskell.
- Monads: functors, programming with monads.
- Processing errors and exceptions: Maybe, Either, catching and raising exceptions, correction of error states.
- Testing, optimization, documentation: QuickCheck, code coverage, profiling, tail recursion, adding strictness, literate programming, and generating documentation.
- Parsing: regular expressions, Parsec.
- Database: HDBC interface, SQL.
- Web and network services: web application programming with frameworks, using network protocols.
- GUI/multimedia: gtk2hs/image processing.
- Paralel programming: threads, paralel programming and strategies.
- Literature
- Bookmarks
- https://is.muni.cz/ln/tag/FI:IB016!
- Teaching methods
- The course is organized as a series of two-hour seminars wherein topics of application functional programming in practice are presented to students. Apart from that, it is requested to solve five homework assignments regarding the discussed subjects.
- Assessment methods
- In order to successful completion of the course, it is necessary to obtain at least 50 % points from homework assignments. The attendance of seminars is compulsory and a large number of absences can negatively affect the overall result.
- Language of instruction
- Czech
- Follow-Up Courses
- Further Comments
- Study Materials
The course is taught annually.
IB016 Seminar on Functional Programming
Faculty of InformaticsSpring 2011
- Extent and Intensity
- 0/2. 2 credit(s) (plus extra credits for completion). Type of Completion: z (credit).
- Teacher(s)
- RNDr. Libor Škarvada (seminar tutor)
Ing. Mgr. Pavel Mises (seminar tutor) - Guaranteed by
- prof. RNDr. Mojmír Křetínský, CSc.
Department of Computer Science – Faculty of Informatics
Contact Person: RNDr. Libor Škarvada - Timetable of Seminar Groups
- IB016/01: Tue 16:00–17:50 B130, P. Mises
IB016/02: Fri 10:00–11:50 B130, P. Mises - Prerequisites
- IB015 Intro to Functional Prog
Pre-requisities for enrolling in the course are to be familiar with content of the IB015 Non-Imperative Programming course and to have a positive attitude towards functional programming. - 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 / plans the course is directly associated with
- there are 20 fields of study the course is directly associated with, display
- Course objectives
- Students will significantly extend their knowledge of functional programming. At the end of the course, they should be able to solve non-trivial programming problems using Haskell and to be familiar with practical use of this functional language.
- Syllabus
- GHC(i), interpreter commands, compilation of Haskell programs.
- Code branching, recursion, anonymous functions, high-ordered functions, operators for function composition and application.
- Modules and typeclasses: the important modules in Haskell 98, how to import them, writing own modules. Typeclasses Show, Read, numeric types, and others.
- Data structures: maps, records, arrays, custom data structures implementation.
- Input and output: dealing with files, system programming, limitations of the IO in Haskell.
- Monads: functors, programming with monads.
- Processing errors and exceptions: Maybe, Either, catching and raising exceptions, correction of error states.
- Testing, optimization, documentation: QuickCheck, code coverage, profiling, tail recursion, adding strictness, literate programming, and generating documentation.
- Parsing: regular expressions, Parsec.
- Database: HDBC interface, SQL.
- Web and network services: web application programming with frameworks, using network protocols.
- GUI/multimedia: gtk2hs/image processing.
- Paralel programming: threads, paralel programming and strategies.
- Literature
- Bookmarks
- https://is.muni.cz/ln/tag/FI:IB016!
- Teaching methods
- The course is organized as a series of two-hour seminars wherein topics of application functional programming in practice are presented to students. Apart from that, it is requested to solve five homework assignments regarding the discussed subjects.
- Assessment methods
- In order to successful completion of the course, it is necessary to obtain at least 50 % points from homework assignments. The attendance of seminars is compulsory and a large number of absences can negatively affect the overall result.
- Language of instruction
- Czech
- Follow-Up Courses
- Further Comments
- Study Materials
The course is taught annually. - Teacher's information
- http://vyuka.haskell.cz/
IB016 Seminar on Functional Programming
Faculty of InformaticsSpring 2010
- Extent and Intensity
- 0/2. 2 credit(s) (plus extra credits for completion). Type of Completion: z (credit).
- Teacher(s)
- RNDr. Libor Škarvada (seminar tutor)
Ing. Mgr. Pavel Mises (seminar tutor)
Peter Molnár (seminar tutor) - Guaranteed by
- prof. RNDr. Mojmír Křetínský, CSc.
Department of Computer Science – Faculty of Informatics
Contact Person: RNDr. Libor Škarvada - Timetable
- Tue 16:00–17:50 B130
- Prerequisites
- IB015 Intro to Func.Programming && SOUHLAS
Pre-requisities for being allowed to enroll in the course are to be familiar with content of the IB015 Non-Imperative Programming course and to have a positive attitude towards functional programming. On the application for approval, write a brief summary of your experience with Haskell or, alternatively, with other functional languages. - 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 / plans the course is directly associated with
- there are 20 fields of study the course is directly associated with, display
- Course objectives
- Students will significantly extend their knowledge of functional programming. At the end of the course, they should be able to solve non-trivial programming problems using Haskell and to be familiar with practical use of this functional language.
- Syllabus
- GHC(i), other interesting Haskell tools and projects (lambdabot, hackage, darcs, cabal...). Interpreter commands, compilation of Haskell programs.
- Code branching (pattern matching, guards, if, case), recursion, anonymous functions, high-ordered functions (maps, filters, folds), operators for function composition and application.
- Modules and typeclasses: presentation of the important modules in Haskell 98, how to write own modules, code structure. Show, read, numeric types, comparing.
- Data structures: maps, records, arrays, custom data structures implementation (e.g. trees).
- Input and output: dealing with files, system programming, lazy and strict IO, safe IO.
- Monads: Maybe/Either, state monads, programming with monads.
- Processing errors and exceptions: catching and raising exceptions, correction of error states.
- Testing, optimization, documentation: QuickCheck, code coverage, profiling, simple recursion, adding strictness, literate programming, and generating documentation.
- Parsing: regular expressions, ParSec.
- Database: HDBC interface, SQL.
- Web and network services: web application programming with frameworks, using network protocols.
- GUI (or working with multimedia): gtk2hs/image processing.
- Paralel programming: threads, paralel programming and strategies.
- Literature
- Bookmarks
- https://is.muni.cz/ln/tag/FI:IB016!
- Teaching methods
- The course is organized as a series of two-hour seminars wherein topics of application functional programming in practice are presented to students. Apart from that, it is requested to solve five homework assignments regarding the discussed subjects.
- Assessment methods
- In order to successful completion of the course, it is necessary to obtain at least 50 % points from homework assignments. The attendance of seminars is compulsory and a large number of absences can negatively affect the overall result.
- Language of instruction
- Czech
- Follow-Up Courses
- Further Comments
- Study Materials
The course is taught annually. - Teacher's information
- http://vyuka.haskell.cz/
IB016 Seminar on Functional Programming
Faculty of InformaticsSpring 2014
The course is not taught in Spring 2014
- Extent and Intensity
- 0/2. 2 credit(s) (plus extra credits for completion). Type of Completion: z (credit).
- Teacher(s)
- RNDr. Libor Škarvada (seminar tutor)
Mgr. Matej Kollár (seminar tutor)
Mgr. Petr Pilař (seminar tutor) - Guaranteed by
- prof. RNDr. Mojmír Křetínský, CSc.
Department of Computer Science – Faculty of Informatics
Contact Person: RNDr. Libor Škarvada
Supplier department: Department of Computer Science – Faculty of Informatics - Prerequisites
- IB015 Non-Imperative Programming
Pre-requisities for enrolling in the course are to be familiar with content of the IB015 Non-Imperative Programming course and to have a positive attitude towards functional programming. - 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 / plans the course is directly associated with
- there are 17 fields of study the course is directly associated with, display
- Course objectives
- Students will significantly extend their knowledge of functional programming. At the end of the course, they should be able to solve non-trivial programming problems using Haskell and to be familiar with practical use of this functional language.
- Syllabus
- GHC(i), interpreter commands, compilation of Haskell programs.
- Code branching, recursion, anonymous functions, high-ordered functions, operators for function composition and application.
- Modules and typeclasses: the important modules in Haskell 98, how to import them, writing own modules. Typeclasses Show, Read, numeric types, and others.
- Data structures: maps, records, arrays, custom data structures implementation.
- Input and output: dealing with files, system programming, limitations of the IO in Haskell.
- Monads: functors, programming with monads.
- Processing errors and exceptions: Maybe, Either, catching and raising exceptions, correction of error states.
- Testing, optimization, documentation: QuickCheck, code coverage, profiling, tail recursion, adding strictness, literate programming, and generating documentation.
- Parsing: regular expressions, Parsec.
- Database: HDBC interface, SQL.
- Web and network services: web application programming with frameworks, using network protocols.
- GUI/multimedia: gtk2hs/image processing.
- Paralel programming: threads, paralel programming and strategies.
- Literature
- Bookmarks
- https://is.muni.cz/ln/tag/FI:IB016!
- Teaching methods
- The course is organized as a series of two-hour seminars wherein topics of application functional programming in practice are presented to students. Apart from that, it is requested to solve five homework assignments regarding the discussed subjects.
- Assessment methods
- In order to successful completion of the course, it is necessary to obtain at least 50 % points from homework assignments. The attendance of seminars is compulsory and a large number of absences can negatively affect the overall result.
- Language of instruction
- Czech
- Follow-Up Courses
- Further Comments
- The course is taught annually.
The course is taught: every week.
- Enrolment Statistics (Spring 2025, recent)