Functional Programming
Course: Software Engineering
Structural unit: Faculty of Computer Science and Cybernetics
Title
Functional Programming
Code
ДВС.2.06
Module type
Вибіркова дисципліна для ОП
Educational cycle
Second
Year of study when the component is delivered
2023/2024
Semester/trimester when the component is delivered
7 Semester
Number of ECTS credits allocated
6
Learning outcomes
LO27.1 Analyze, evaluate and select tools and computing tools, technologies, algorithmic and software solutions for software engineering tasks.
LO29.1 Know and be able to apply modern technologies and methods of design and programming.
Form of study
Distance form
Prerequisites and co-requisites
To know: programming paradigms, particularly procedural and object-oriented programming, theory of computation
To be able to: develop programs using procedural and object-oriented approaches.
Course content
The goal of the course is to study functional programming using the Haskell language and the fundamentals of lambda calculus.
As a result of studying the discipline, the student should:
know: the theoretical foundations of lambda calculus; the concepts and techniques of functional programming;
be able to: develop applications in the Haskell language.
Recommended or required reading and other learning resources/tools
1. M.M. Veres, O.V. Galkin, Ye.O. Demkivskyi ta in. Funktsionalne prohramuvannia: navchalnyi posibnyk [Online resource]. – Kyiv, 2022. – 178 s. – Access link:
http://tinyurl.com/56s7em5e
2. Miran Lipovaca. Learn You a Haskell for Great Good! (Ukrainian translation) [Online resource], 2017. – Access link:
https://haskell.trygub.com/
3. Will Kurt. Get Programming with Haskell, Manning Publications, 2018, 616 p.
4. C. Hankin. An Introduction to Lambda Calculi for Computer Scientists, Kings College, 2004, 164 p.
5. Henk Barendregt. The Lambda Calculus. Its Syntax and Semantics, College Publications, 2012, 656 p.
Planned learning activities and teaching methods
Lectures, laboratory classes, independent work, written assignment, defense of laboratory work.
Assessment methods and criteria
Intermediate assessment (the maximal number of points that can be obtained is 60):
written assignment 1 and 2: 9 points each;
laboratory work 1, 2 and 3: 14 points each.
Final assessment: exam. The maximum number of points that can be obtained is 40. The exam is written and oral. An applicant may not be admitted to the final assessment if during the semester they: 1) have not reached the minimum threshold level (60%) of the laboratory work points; 2) scored the number of points, which is insufficient to obtain a positive assessment, even if they achieve the maximum possible result in the final control.
For obtaining a general positive grade for the discipline, the score for the exam cannot be less than 24 points.
Language of instruction
ukrainian
Lecturers
This discipline is taught by the following teachers
Departments
The following departments are involved in teaching the above discipline