Distributed computing

Course: Software Engineering

Structural unit: Faculty of Computer Science and Cybernetics

Title
Distributed computing
Code
ДВС.2.01
Module type
Вибіркова дисципліна для ОП
Educational cycle
Second
Year of study when the component is delivered
2022/2023
Semester/trimester when the component is delivered
5 Semester
Number of ECTS credits allocated
4
Learning outcomes
LO01. Analyze, purposefully search for and select the necessary information and reference resources and knowledge to solve professional problems, taking into account modern advances in science and technology. LO05. Know and apply relevant mathematical concepts, methods of domain, system and object-oriented analysis and mathematical modeling for software development. LO06. Ability to select and use the software development methodology that is appropriate for a given task. LO07. Know and apply in practice the fundamental concepts, paradigms and basic principles of operation of languages, tools and computing facilities of software engineering. LO10. Conduct a pre-project survey of the subject area, systematic analysis of the design object. LO13. Know and apply methods of algorithm development, software design and data and knowledge structures design.
Form of study
Distance form
Prerequisites and co-requisites
1.Know: basic programming concepts and principles of program development; fundamental classical algorithms and various types of data structures. 2.Be able to: design, develop, and test programs at a basic level. 3.Have OOP skills: programming in languages such as C, C++, Java.
Course content
The goal of the discipline is to master the concepts of modern programming within the paradigms of parallel and distributed programming, including handling shared and distributed variables, as well as efficiently parallelizing sequential algorithm programs. The foundation of the study consists of approaches to programming in multi-threaded systems, distributed systems, and synchronous parallel computations. Issues related to the collaborative operation of processes in parallel programs and their synchronization are examined.
Recommended or required reading and other learning resources/tools
1. Foundations of Multithreaded, Parallel, and Distributed Programming. - Gregory R. Andrews Addison-Wesley, 2000. ISBN: 0201357526, 9780201357523. 2. Distributed Systems. Maarten van Steen, Andrew S. Tanenbaum, 2017. ISBN:9781543057386, 1543057381 3. Distributed Systems. Principles and Paradigms. Andrew S. Tanenbaum, Maarten van Stehen, 2016. ISBN:9781530281756, 153028175X 4.Java: The Complete Reference, Eleventh Edition By Herbert Schildt, 2018. ISBN:9781260440249, 1260440249 5.Java Concurrency in Practice. - Addison-Wesley Professional, 2006. ISBN:9780321349606, 0321349601 6. Programming in Go. Mark Summerfield, 2012. ISBN:9780132764094, 0132764091. 7.Distributed Computing with Go. V.N. Nikhil Anurag, 2018. ISBN:9781787127708, 1787127702 8.Modern Java in Action: Lambdas, streams, functional and reactive programming. - Manning Publications, 2018.
Planned learning activities and teaching methods
Lectures, laboratory classes, independent work, tests, homework, defense of laboratory work, exam.
Assessment methods and criteria
Intermediate assessment: -The maximal number of available points is 60: 1. Test work no. 1: LO 1.1, LO 1.2, LO 4.2 – 10/6 points. 2. Test work no. 2: LO 1.2, LO 1.3, LO 4.2 – 10/6 points. 3. Laboratory work no. 1: LO 1.2, LO 1.3, LO 2.1, LO 3.1, LO 4.2– 8/4 points. 4. Laboratory work no. 2: LO 1.2, LO 1.3, LO 2.1, LO 3.1, LO 4.2– 6/4 points. 5. Laboratory work no. 3: LO 1.2, LO 1.3, LO 2.1, LO 3.1, LO 4.2– 6/4 points. 6. Laboratory work no. 4: LO 1.2, LO 1.3, LO 2.1, LO 3.1, LO 4.2– 6/4 points. 7. Laboratory work no. 5: LO 1.2, LO 1.3, LO 2.1, LO 3.1, LO 4.2– 6/4 points. 8. Laboratory work no. 5: LO 1.2, LO 1.3, LO 2.1, LO 3.1, LO 4.2– 8/4 points.
Language of instruction
Ukrainian

Lecturers

This discipline is taught by the following teachers

Maksym M. Veres
Department of Intelligent Software Systems
Faculty of Computer Science and Cybernetics

Departments

The following departments are involved in teaching the above discipline

Department of Intelligent Software Systems
Faculty of Computer Science and Cybernetics