Functional programming
Course: Applied Programming
Structural unit: Faculty of information Technology
            Title
        
        
            Functional programming
        
    
            Code
        
        
            ВБ 2.6
        
    
            Module type 
        
        
            Вибіркова дисципліна для ОП
        
    
            Educational cycle
        
        
            First
        
    
            Year of study when the component is delivered
        
        
            2021/2022
        
    
            Semester/trimester when the component is delivered
        
        
            8 Semester
        
    
            Number of ECTS credits allocated
        
        
            3
        
    
            Learning outcomes
        
        
            Ability to demonstrate knowledge and understanding of functional programming principles, the use of functional data structures. Ability to design and develop efficient and scalable programs using functional approaches, utilize functional programming to solve complex logic-mathematical tasks. Ability to effectively apply knowledge and skills in the field of functional programming to develop high-quality, scalable, and reliable software.
        
    
            Form of study
        
        
            Full-time form
        
    
            Prerequisites and co-requisites
        
        
            Having a bachelor's degree. Have elementary skills in in higher mathematics and programming.
        
    
            Course content
        
        
            The study the course “Functional Programming” aims to study of the functional programming paradigm based on lambda calculus; fundamental theoretical constructs, concepts, and definitions of functional programming languages; major classes of problems suitable for solving using functional programming; comparison of functional, imperative, and object-oriented paradigms for solving specific tasks. Practical application of theoretical knowledge and acquisition of functional programming skills are achieved through the use of the Haskell programming language.
The goal of this discipline is to teaching the academic discipline is to provide students with an understanding of existing programming paradigms, particularly functional programming, and to familiarize them with the Haskell programming language for solving practical scientific and technical problems.
        
    
            Recommended or required reading and other learning resources/tools
        
        
            1.Whitington, Jh. Haskell from the Very Beginning. Coherent Press. 2019. 214p. 
2.Mena, A.S. Practical Haskell: A Real World Guide to Programming. 2nd Ed. Apress. 2019. 617p.
3.Kurt, W. Get Programming with Haskell. 1st Ed. Manning Publications. 2018. 616p.
4.Документація Haskell https://www.haskell.org/documentation/
5.Parallel and Concurrent Programming in Haskell, https://simonmar.github.io/pages/pcph.html
        
    
            Planned learning activities and teaching methods
        
        
            Lectures, practical activities, individual work
        
    
            Assessment methods and criteria
        
        
            The level of achievement of all planned learning outcomes is determined based on the results of the defense of practical work and individual work. The overall grade is formed (maximum of 100 points) as the sum of points for systematic work throughout the semester, taking into account the control work. The credit is given based on the results of the student's work throughout the semester. Students who have accumulated a total of fewer points than the recommended minimum of 48 points must work on the missed material and pass the credit to obtain it.
At the student's request and if they have credit points, they can improve their result by taking an additional credit test, which is evaluated at 20/12 points, but the total number of points cannot exceed 100 points. Thus, the final evaluation for the discipline (minimum of 60, maximum of 100 points) is determined by the sum of the points for the semester work.
        
    
            Language of instruction
        
        
            Ukrainian
        
    Lecturers
This discipline is taught by the following teachers
                    DEPARTMENT OF APPLIED INFORMATION SYSTEMS 
Faculty of information Technology
            Faculty of information Technology
Departments
The following departments are involved in teaching the above discipline
                        DEPARTMENT OF APPLIED INFORMATION SYSTEMS
                    
                    
                        Faculty of information Technology