course aims in Estonian
* Anda ülevaade olulistest algoritmidest ning andmestruktuuridest
* Anda arusaamine algoritmide ja andmestruktuuri operatsioonidega kaasnevast keerukusest
* Aidata leidma loovaid lahendusi arvutuslike probleemide efektiivseks lahendamiseks
course aims in English
* Introduce the important algorithms and data structures
* Give an understanding of the complexity of the algorithms and operations on data structures
* Help to how find the creative and efficient algorithmic solutions to the computational problems
learning outcomes in the course in Est.
* Teadmine ja oskus kasutada klassikalisi algoritme ja andmestruktuure
* Ülevaade erinevatest algoritmide loomise paradigmadest
* Oskus leida arvutuslikule probleemile sobiv algoritm ja seda toetavad andmestruktuurid
* Arusaamine arutusliku keerukuse mõõtudest ja oskus algoritmi keerukust analüüsida
learning outcomes in the course in Eng.
* Have an understanding and ability to use the classical algorithms and data structures
* Have an overview of the different paradigms of creating an algorithm
* Ability to find a suitable algorithm and supporting data structures to the computational problem
* Have an understanding of the different measures of computational complexity and ability to analyze the complexity of an algorithm
brief description of the course in Estonian
Kursuses käsitletakse mitmesuguseid klassikalisi andmestruktuure nagu järjekorrad, graafid, otsingupuud, paisktabelid, kuhjad jt ning nende ehitust ning rakendusi algoritmides. Uuritakse mitmesuguseid algoritme sorteerimise, andmete-, graafi- ja tekstiotsingu teostamiseks ning keerukate kombinatoorikaülesannete lahendamiseks ning nende algoritmide loomiseks kasutatavaid paradigmasid. Käsitletakse keerukusteooria baasmõisteid nagu asümptootiline keerukus ja klass NP ning erinevaid meetodeid algoritmide keerukuse hindamiseks. Kursuse praktilises osas tuleb lahendada erinevaid ülesandeid ja programmeerida lahendus mitmele, sh ka vähemalt ühele NP-raskele probleemile. Eeldatakse programmeerimisoskust ja arusaamist elementaarstest andmetüüpidest ning -struktuuridest programmeerimise põhikursuse tasemel.
brief description of the course in English
Classical data structures: queues, graphs, search trees, hash tables, heaps, their implementation and use in the algorithms. Sorting, data, graph, and text search algorithms. Algorithm design paradigms: greedy, divide and conquer, branch and bound, dynamic programming, meta-heuristics. Introduction to the complexity theory, asymptotic complexity, O-notation, class NP, different methods of complexity analysis. Practice of the course includes programming a solution to different tasks. A programming skill and understanding of the basic data types is assumed.
type of assessment in Estonian
Kirjalik eksam
type of assessment in English
Written exam
independent study in Estonian
Grupitöö või iseseisva tööna valminud projekt.
independent study in English
A practical project given either as a group or individual assignment.
study literature
A Practical Introduction to Data Structures and Algorithm Analysis Third Edition (C++ Version)
Author : Clifford A. Shaffer, Department of Computer Science, Virginia Tech
Publication Date : January 2010
study forms and load
daytime study: weekly hours
4.0
session-based study work load (in a semester):