Algorithms and Data Structures. The notions of time and space complexity of an algorithm. Dynamic data structures: Stacks, Queues, Lists, Trees (2-3 trees, AVL trees). Fundamental operations on data structures. Basic algorithms for the sorting problem: Mergesort, Heapsort, Quicksort. The UNION-FIND problem and its application in finding a minimal spanning tree of a graph.