Course 1: Synthesis and analysis of algorithms (BG)

About Course

Students will learn to solve problems that require the compilation of more complex algorithms. It is studied all from setting the task to analysing the solutions - data analysis, review of existing algorithms for its solution, selection of an appropriate algorithm, modification of an existing or construction of a new algorithm, selection of data structures, programming, program testing, analysis of the efficiency of the algorithm and the program.

What Will I Learn?

  • Create algorithms for solving problems and evaluate their efficiency.
  • Apply the basic sorting methods (direct selection, direct swap, direct insertion, distribution sort, pyramidal sorting, fast sorting).
  • Be able to create and use recursive functions.
  • Be able to create and use recursive data structures.


  • Basic programming
Course Duration: 15 weeks

Topics for this course

51 Lessons

Module 1 – Concept of an algorithm (1 week)

Goal & Outcomes
Theory Slides: Synthesis and analysis of algorithms

Module 2 – Complexity of algorithm (2 weeks)

Module 3 – Array, stack, queue, list data structures (2 weeks)

Module 4 – Graphs data structures (1 week)

Module 5 – Tree data structures (1 week)

Module 6 – Sequential and binary search algorithms (1 week)

Module 7 – Search algorithms Hashing (1 week)

Module 8 – Sorting algorithms. Digital sorting, lexicographic sorting (1 week)

Module 9 – Sorting algorithms. Sort by insert and by swap. Library function qsort. (1 week)

Module 10 – Sorting algorithms. Sorting by the selection, merging, distribution and parallel sorting. External sorting. (1 week)

Module 11 – Heuristic, probabilistic and genetic algorithms (1 week)

Module 12 – Methods for compiling algorithms. Recursion, top-down method, “Divide and conquer”, dynamic programming. (1 week)