SYLLABUS
University: Technical University of Košice
Faculty: Faculty of Electrical Engineering and Informatics
Department: Department of Computers and Informatics
Course Number: 2611411 Course Name: Functional programming
Type, scope and method of learning activities:
Course Type: Lecture, Laboratory exercise
Recommended scope of the course content (in hours):
Full-time study (hours per week): 2,2
Part-time study (hours per semester): 26,26
Study Method:
Number of credits: 6
Recommended semester of study: WT
Recommended semester Study programme Study grade Study Method
1.rok WT Cybersecurity (KB_Ing_D_sk)
Informatics (INF_Ing_D_sk)
Informatics (INF_Ing_D_en)
Master
Master
Master
Attendance
Attendance
Attendance
2.rok WT Cybersecurity (KB_Ing_D_sk)
Informatics (INF_Ing_D_sk)
Informatics (INF_Ing_D_en)
Master
Master
Master
Attendance
Attendance
Attendance
Level of study:
Prerequisites:
Course completion requirements:
Assessment and completion of the course: Credit test and examination
Continuous assessment: Student passes the continuous assessment and receives credits when he or she meets the requirement to obtain at least 21% out of 40%.
assignments, project
Final assessment: Student passes the final assessment and passes the examination when he or she meets the requirement to obtain at least 31% out of 60%.
final test
Overall assessment: Overall assessment is the sum of the assessments obtained by students in the assessment period. The overall result is determined in accordance with the internal regulations of the Technical University in Košice. (Study Regulations, the internal regulation principles of doctoral studies)
Learning outcomes:
The students will become familiar with the functional approach to programming. They will learn to use pure functions, higher-order functions, work effectively with immutable data structures. The subject also deals with the importance of types in the description of program properties. The students will also acquire knowledge of the lambda language. The Haskell language is mainly used in the teaching, but examples are given in other languages as well.
Brief course content:
1. Characteristics and meaning of functional programming.
2. Basics of the Haskell language.
3. Working with lists and higher-order functions.
4. Properties and evaluation of functions.
5. Methods of program design.
6. Meaning of types in the description of program properties.
7. Values and algebraic types, categorization of algebraic types.
8. Type classes and polymorphism.
9. Implementation of input/output operations in a functional language.
10. Monadic approach to defining programs.
11. Modularity in the Haskell language.
12. Lambda language and combinators.
13. Application of functional programming in the Java language.
14. Other functional programming languages.
Recommended Reference Sources:
1. Simon Thompson. Haskell: The Craft of Functional Programming. Addison-Wesley, 2011.
2. Paul Hudak, John Peterson, Joseph Fasel. Gentle Introduction To Haskell. 2000.
Recommended optional program components:
Languages required for the course completion:
Notes:
Course assessment:
Total number of students assessed: 1314
  A B C D E FX  
  25% 26% 22% 13% 9% 4%  
Teacher:
doc. Ing. Slavomír Šimoňák, PhD.
Ing. Sergej Chodarev, PhD.
Last modified: 01.09.2022
Approved by: person(s) responsible for the study program