Advanced programming techniques based on the programming language C: Recursion, Structures, Pointers, File and Memory management. Data types and abstract data types. Algorithm complexity analysis: worst-case and average-case analysis. Linear data structures: List, Stack and Queue, using static and dynamic memory allocation methods. Applications of linear data structures. Sorting algorithms: SelectionSort, InsertionSort, MergeSort, QuickSort and BucketSort. Tree data structures: Binary Trees, Binary Search Trees, Balanced Trees, B-trees. Priority Queues and Heaps. Graphs: definitions, data structures, topological sorting algorithms, graph traversal algorithms. Hashing techniques, hash functions and collision resolution techniques.
Syllabus (in greek) »