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
        
        
            2024/2025
        
    
            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