The course aims to provide an in-depth study of modern methodologies and tools, as well as of hardware and software computing environments, for the development and analysis of algorithms. Laboratory work is an integral part of the course.
Syllabus
Dynamic data structures and recursive algorithms: lists, stacks, queues and trees. Algorithms for managing dynamic data structures. Recursive algorithms. Examples of recursive algorithms for searching and for managing lists and trees.
Structure and functionality of operating systems. Evolution of operating systems. Process and thread management. Process and thread synchronisation: classic process synchronisation problems. Memory management. Virtual memory and hierarchical memory.
Multithreaded programming and introduction to high-performance computing. The role of cache memory and its influence on algorithm performance. Introduction to high-performance computing: the matrix product.
Expected learning
outcomes
On completion of the course, students must demonstrate that they
know and understand how advanced tools for the design, development and analysis of algorithms work, as well as the structure and operation of the main subsystems of modern operating systems;
can apply this knowledge to the independent development of algorithms and programs of increasing difficulty, including on modern multicore architectures;
can communicate ideas and solutions clearly, rigorously and effectively to both specialist and non-specialist audiences;
can identify the most appropriate methods to analyse and solve a problem relating to the course topics and interpret the results correctly.
Learning outcomes
to be assessed
Ability to develop algorithms and programs of varying difficulty; clarity, correctness and completeness in the written and/or oral presentation of the course topics.
Cookies are used to ensure the website works properly. By continuing to browse without changing your browser settings, you agree to receive all cookies. AcceptMore information
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.