Analysis and Design of Algorithms

Entry requirements: Basic algorithmic and programming skills.

Credits: 3

Course: Core


  • Study the complexity classes of computational problems and efficiency classes of algorithms, the basic methods of algorithm design
  • Get the skills of asymptotic analysis of algorithms
  • Learn how to choose and implement data structures and algorithms suitable for solving the problem
  • To master the basic approaches to solving NP-hard problems


The course covers basic principles of algorithms’ analysis and design, efficient data structures, algorithms for NP-hard problems and algorithms for complex networks. As a result of the successful completion of the course the student will improve of asymptotic analysis of algorithms and estimation of computational efficiency of algorithms and operations on data structures.


Lectures and practical classes


Attendance is mandatory. Students cannot miss more than one class. To pass the course student need to speak at a seminar on a given topic and to complete the practical task of analysis and design of an algorithm.