course aims in Estonian
1. Peamisteks eesmärkideks on:
1. Teha üliõpilastele selgeks põhilised ideed, millede järgi andmekirjed on organiseeritud erineva ülesehitusega struktuuridesse ja salvestatud arvuti mällu.
2. Kirjeldada ja selgitada põhilisi algoritme, mida kasutatakse erinevates andmestruktuurides paiknevate andmetega teostatavates tüüpoperatsioonides (kirjete lisamine ja eemaldamine, soovitud kirje otsimine, sortimine jne.).
3. Tutvustada andmetöötlusega seotud teoreetilisi probleeme (abstraktsed tüübid, algoritmide keerukus jne.).
4. Parandada üliõpilaste praktilise programmeerimise oskust keeles C.
course aims in English
The primary goals are:
1. Give the students a basic understanding of ideas following which data records are organized into different data structures and stored into computer memory.
2. Describe and explain the basic algorithms used on different data structures for main data processing operations like inserting and removing of records, searching a specific record, sorting, etc.
3. Give an overview about theoretical concepts like abstract types, complexity, etc.
4. Improve the students’ practical programming skills in C.
learning outcomes in the course in Est.
Eksami edukalt läbinud üliõpilased peaksid:
1. Tundma kõiki põhilisi andmetöötluses kasutatavaid andmestruktuure.
2. Tundma nende andmestrukuuridega töötamisel kasutatavaid põhilisi andmetöötlusalgoritme.
3. Teadma põhjusi, mis mõjutavad andmetöötluse kiirust.
4. Suutma valida mingi konkreetse probleemi lahendamiseks kõige sobivamad andmestruktuurid.
5. Suutma valida mingi konkreetse probleemi lahendamiseks kõige sobivamad andmetöötlusalgoritmid.
6. Suutma kirjutada C-keelseid programme, mis opereerivad keerukate andmestruktuuridega.
learning outcomes in the course in Eng.
After successfully completing this course, the student should:
1. Be acquainted with the most used data structures applied to store data in computer memory.
2. Be acquainted with the fundamental data processing algorithms on those structures.
3. Know the reasons affecting the data processing speed.
4. Be able to select data structures best suited for solution of a concrete data processing problem.
5. Be able to select algorithms best suited for solution of a concrete data processing problem.
6. Be able to implement C-programs operating with complicated data structures.
brief description of the course in Estonian
1. Täiendavat materjali C-keelest.
2. Andmestruktuurid ja andmetöötluse põhilised operatsioonid. Massiiv. Lingitud struktuurid.
3. Mõningad spetsiifilised andmestruktuurid: hõre maatriks, ringpuhver jne.
4. Abstraktsed andmetüübid: loend, magasin, järjekord, sõnastik.
5. Algoritmide efektiivsuse hindamine.
6. Rekursioon ja rekursiivsed algoritmid.
7. Järjestikotsimine ja kahendotsimine.
8. Kahendpuud. Puu tasakaalustatuse probleem. AVL-puud.
9. Iseorganiseeruvad puud.
10. B-puud ja puna-must puud. B*-puud.
11. Välismälus olevate andmetega seotud probleemid. B+ puud.
12. Digitaalne puu ja trie-puu. Eksistentsitabelid ja kolmikpuu.
13. Prioriteetidega järjekord ja kuhi. Vasakule kaldus puu. Binoompuu ja binomiaalne kuhi.
14. Paiskepaigutus. Paigustusfunktsioonide koostamise meetodid. Aheldamine ja avatud adresseerimine. Laiendatav paiskepaigutus.
15. Lihtsamad sortimise algoritmid. Shelli meetod. Sortimine mestimisega. Kiirsortimine. Sortimine kuhja abil. Jaotamisega sortimine.
16. Tekstist otsimise probleem. Boyer-Moore’i ja Rabin-Karpi meetodid.
17. Andmete pakkimine. Huffmani kood. Lempel-Zivi meetodi alused.
18. Algoritmide tüübid. "Jaga-ja-valitse" algoritmid. Dünaamilise programmeerimise põhimõtted. Ahned algoritmid. Randomiseeritud algoritmid.
brief description of the course in English
1. Refreshing skills in C-programming.
2. Data structures and their building principles: arrays and linked structures. Operations on data structures.
3. Some specific data structures: sparse matrixes, circular buffers, etc.
4. Abstract data structures. List, stack, queue, dictionary.
5. Algorithm complexity analyses.
6. Recursion and recursive algorithms.
7. Sequental search and binary search.
8. Trees. Tree balancing problem. AVL-trees.
9. Self-organizing trees.
10. B-trees and red-black trees. B*-trees.
11. Structures for data stored in external memory. B+ trees.
12. Digital search trees and tries. Existence tables. Trinary trees.
13. Priority queue and heap. Leftist heaps. Binomial queues.
14. Hashing. Hash functions. Separate chaining and open addressing. Extendible hashing.
15. Simple sorting algorithms. Shell sort. Quick sort. Merge sort. Radix sort. Heap sort.
16. Pattern matching problem. Boyer-Moore method. Rabin-Karp method.
17. Data compression. Huffman coding. Lempel-Zivi method principles.
18. Types of algorithms. Divide and conquer algorithms. Greedy algorithms. Dynamic programming principles. Randomized algorithms.
type of assessment in Estonian
Kirjalik eksam. Eksamil esitatakse 10 suhteliselt lühikest vastust nõudvat küsimust. Hinde panemisel võetakse arvesse ka laboritööde eest saadud punkte.
type of assessment in English
Written examination. On the examination 10 questions are asked, answers to them are relatively short. The mark depends on the points got for answers as well as on the points got for lab works.
independent study in Estonian
Praktikumideks ettevalmistumine.
independent study in English
Preparation for practical works.
study literature
Vt. http://www.tud.ttu.ee/im/Viktor.Leppikson/
study forms and load
daytime study: weekly hours
4.0
session-based study work load (in a semester):