Solvability and unsolvability of problems, practical solvability of problems, the
P and NP classes and their relation. Abstract data types, their representation by abstract data structures. Realization methods of abstract data structures. Realization of linear data structures, list-structures, dynamical storage management. Implementation of arrays, stacks, queues. Typical applications of stacks, processing of expressions. Trees, classification of trees, most interesting properties and operations on trees, application of trees. Sorting algorithms (bubble sort, insertion sort, tournament, heap, merge sort, radix, external sorting, sorting networks). Medians and order statistics. Advanced design and analysis techniques (divide and conquer, dynamical programming, randomization).