Home / Fields of study / Courses / Essentials of Algorithm Design and Optimalization

Terms for 2017

September, 5

Admission Interviews

September, 7

Open Day

September, 12

Admission Interviews

September, 14

Open Day

Full 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

  1. Kick Start - Time, spatial complexity, asymptotic complexity, turing machine.
  2. Data Structures  - Understand the differences between arrays and lists and between stacks and queues
  3. Sorting I - Basic principles of sorting (stability, complexity, etc.), simple sorting methods (bubble-sort, insertionsort, heapsort etc.).
  4. Sorting II - Advanced methods like mergesort and quicksort, lower bound for complexity based on comparing elements, counting sort.
  5. Searching I - A simple types of search – binary search, binary search tree, AVL tree.
  6. 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.