Additional Sections of Fundamental Algorithms



The course is intended for
  • Junior programmers and students studying information technology.

  • Required knowledge:
  • Knowledge of simple data structures: (linked list, stack, queue, binary heap, search tree) .
  • Experience of programming in an object-oriented language (C++, C#).

  • Program
    1. 1. Introduction (1 hour)
    2. 2. Red-Black Trees. Searching, Inserting and Deleting operations.
    3. 3. B-Trees. Searching, Inserting and Deleting operations. Complexity analysis.
    4. 4. Recurrences. Substitution method, recursion-tree method and master method for solving recurrences.
    5. 5. The divide-and-conquer approach.
    6. 6. Dynamic programming. Examples: "Rod cutting" and "Longest common subsequence" problems.
    7. 7. Disjoint sets. Implementation based on forest.
    8. 8. Minimum Spanning Trees. The algorithms of Kruskal and Prim.
    9. 9. Single-Source Shortest Paths definition. Dijkstra's algorithm.
    10. 10. Amortized Analysis. Work with Dynamic tables.
    11. 11. Binomial Heaps.
    12. 12. Fibonacci Heaps.

    Start


    June


    Duration


    8 weeks, 16 lessons, 2 hours


    Level


    1-st level



    Lecturers
    Armen Kostanyan

    Ph.D., Associate Professor,
    IT Educational and Research
    Center (IT ERC) of Yerevan State University

    Kristine Vasilyan

    Software Engineer at Armsoft


    Prerequisite for attending the course: interview.