Additional Sections of Fundamental Algorithms



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

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

    Start



    Duration


    8 weeks
    2 lessons per week


    Level


    1-st level



    Lecturers
    Armen Kostanyan

    YSU Information Technology Educational and Research Center, Ph.D., docent


    Lilit Antonyan

    Software engineer at Armsoft


    Prerequisite for attending the course: interview.