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