Paradigms and programming technologies
Course: Informatics
Structural unit: Faculty of Computer Science and Cybernetics
            Title
        
        
            Paradigms and programming technologies
        
    
            Code
        
        
            Module type 
        
        
            Вибіркова дисципліна для ОП
        
    
            Educational cycle
        
        
            First
        
    
            Year of study when the component is delivered
        
        
            2021/2022
        
    
            Semester/trimester when the component is delivered
        
        
            7 Semester
        
    
            Number of ECTS credits allocated
        
        
            4
        
    
            Learning outcomes
        
        
            PLO16. Perform parallel and distributed calculations, apply numerical methods and algorithms for parallel structures, parallel programming languages in the development and operation of parallel and distributed software.
PLO18.2. Analyze, evaluate and select tools and computing tools, paradigms, technologies, algorithmic and software solutions in the design and development of software systems.
        
    
            Form of study
        
        
            Distance form
        
    
            Prerequisites and co-requisites
        
        
            1. Know: general concepts of programming languages (syntax, program semantics, object-oriented programming style), basics of algorithm theory (recursive functions and recursive calculations), basic concepts of mathematical logic, in particular, the concept of resolvent, resolute inference.
2. Be able to: use a variety of environments for developing, editing and executing programs.
3. Have basic skills: specifications and programming of recursive calculations.
        
    
            Course content
        
        
            The purpose of the discipline is to master the skills of designing and developing software systems using various programming paradigms with appropriate data structures, management mechanisms and technologies.
As a result of studying the discipline the student must
know: the essence and basis of the paradigm of logical programming and the paradigm of functional programming, the basic constructions of programming languages Prolog and Haskell, the essence of declarative tools for object-oriented paradigm;
be able to: apply logical and functional programming styles when solving programming problems; use known and create their own declarative programming tools for object-oriented paradigms, in particular for Java and .Net platforms.
        
    
            Recommended or required reading and other learning resources/tools
        
        
            1.	Lipovača M. Learn You a Haskell for Great Good! Miran Lipovača. : No Starch Press», 2011, 383p. 
2.	Bratko I., Prolog Programming for Artificial Intelligence (4th Edition), 2011, 442p. 
3.	Marcellus D. Expert Systems Programming in Turbo Prolog, 1989, 227p. 
4.	Snell J.,  Tidwell D., Kulchenko P., Programming Web Services With SOAP, 2002, 237p.
5.	O'Sullivan B.,  Goerzen J., Stewart D. Real World Haskell 1st Edition, 2008, 671p. 
        
    
            Planned learning activities and teaching methods
        
        
            Lectures, laboratory classes, independent work, tests, defense of laboratory work, exam.
        
    
            Assessment methods and criteria
        
        
            - Semester assessment:
1. Tests: LO 1.1., LO 1.2, LO 1.3 —   18(6+6+6)/10,8 points.
2. Protection of laboratory works: LO 2.1 –– 14/8,4 points.
3. Protection of laboratory works: LO 2.2 –– 18/10,8 points.
4. Protection of laboratory works:  LO 2.3 –– 10/6 points.
        
    
            Language of instruction
        
        
            Ukrainian
        
    Lecturers
This discipline is taught by the following teachers
                    Volodymyr
                    F.
                    Kuzenko
                
                
                    Theory and Technology of Programming 
Faculty of Computer Science and Cybernetics
            Faculty of Computer Science and Cybernetics
Departments
The following departments are involved in teaching the above discipline
                        Theory and Technology of Programming
                    
                    
                        Faculty of Computer Science and Cybernetics