Programming paradigms

Course: Informatics

Structural unit: Faculty of Computer Science and Cybernetics

Title
Programming paradigms
Code
ВК.3.01
Module type
Вибіркова дисципліна для ОП
Educational cycle
First
Year of study when the component is delivered
2022/2023
Semester/trimester when the component is delivered
5 Semester
Number of ECTS credits allocated
3
Learning outcomes
PLO 18.3. Know the mathematical apparatus and principles of programming and be able to apply them in the creation of software systems. PLO 19.3. Know the phases and iterations of the life cycle of software systems.
Form of study
Prerequisites and co-requisites
1. To know discrete mathematics, mathematical logic, theory of algorithms and basics of programming in the scope of standard university courses. 2. To be able to apply knowledge from the above disciplines to solving problems. 3. To have elementary skills of using logico-mathematical symbols and basics of programming.
Course content
The discipline considers programming paradigms. The greatest attention is paid to functional programming and its elements available in imperative programming languages ​​and multi-threaded programming. The theoretical foundations of functional programming obtained during the study will allow a better understanding of the elements of functional programming implemented in modern imperative programming languages. The acquired knowledge of multi-threaded programming will allow building more efficient programs and libraries designed for execution on modern processors and/or in several threads. While mastering the discipline, students should deepen their knowledge and practical skills in using modern tools of the C++ language: elements of functional programming, libraries for building multi-threaded programs. It is taught in the 5th semester of the 3rd year in the amount of 90 hours. (3 ECTS credits), in particular: lectures – 28 hours, consultations – 2 hours, independent work – 60 hours.
Recommended or required reading and other learning resources/tools
Basic: 1. Field A. Functional programming / A. Field, P. Harrison. – Addison-Wesley, 1988. 2. Grimm R. Concurrency with modern C++ / R. Grimm – URL:http://www.freepdfbook.com/concurrency-with-modern-c-by-rainer-grimm 3. Williams A. C++ concurrency in action. – Manning Publications Co, 2019. URL:https://www.manning.com/books/c-plus-plus-concurrency-in-action-second-edition 4. Simpson K. You don't know JS: Async & Performance. – O`Reilly, 2015. 5. Practical Common Lisp. – URL:https://gigamonkeys.com/book/ 6. Murray D.W. Introduction to programming in Lisp – Hilary, 1991. 7. Domkin V. Programming algorithms in Lisp: Writing Efficient Programs with Examples in ANSI Common Lisp. – Apress Media, 2021. ..
Planned learning activities and teaching methods
Lectures, consultations, independent work
Assessment methods and criteria
semester evaluation: 1. Program project 1: PH1.1, PH2.1 – 20 points/10 points. 2. Program project 2: PH1.1, PH2.1 – 20 points/10 points. 3. Program project 3: PH1.2, PH2.2 – 20 points/10 points. 4. Program project 4: PH1.2, PH2.2 – 20 points/10 points. 5. Control work: PH1.1, PH1.2, PH2.1, PH2.2 - 20 points/10 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