Terms for 2017
Open DayFull list of terms
Essentials of Algorithm Design and Optimalization
The aim of the subject is to teach students to use the most well-known algorithms in solving implementary tasks. Not only data structures but also searching and sorting will be introduced. Apart from the theoretical background, stundents will practise all techniques with examples designed in Ruby programming language.
What are you going to learn
Kick Start - Time, spatial complexity, asymptotic complexity, turing machine.
Data Structures - Understand the differences between arrays and lists and between stacks and queues
Sorting I - Basic principles of sorting (stability, complexity, etc.), simple sorting methods (bubble-sort, insertionsort, heapsort etc.).
Sorting II - Advanced methods like mergesort and quicksort, lower bound for complexity based on comparing elements, counting sort.
Searching I - A simple types of search – binary search, binary search tree, AVL tree.
Searching II - Advanced Searching in trees – B-tree, seaching in text.
How the course is organized
Full time study
The course consist of 6 lectures and 12 seminars, each lasting 1,5 hours.
Part time study
The course is taught on the weekend in 3 blocks, each lasting 3 hours.
CORMEN, T., LEISERSON, Ch., RIVEST, R., STEIN, C.: Introduction To Algorithms, The MIT Press, 2009.