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