Algorithms and Data Structures
Course code
IFI6012.DT
old course code
IFI6012
Course title in Estonian
Algoritmid ja andmestruktuurid
Course title in English
Algorithms and Data Structures
ECTS credits
3.0
approximate amount of contact lessons
42
Teaching semester
autumn - spring
Assessment form
Examination
lecturer of 2019/2020  Autumn semester
õppejõud on määramata
lecturer of 2019/2020  Spring semester
lecturer not assigned
Course aims
Contribute to developing knowledge of linear and nonlinear data structures and their practical implementation skills. Support the development of problem analysis and solving based on the various data structures, using appropriate algorithms. Support the development of practical programming experience in simple language with pointers.
Brief description of the course
Lists. Linear data structures - stack, sequence, deque, properties, implementation. Tree. Binary tree: implementation, basic algorithms. Graph: implementation, basic algorithms depth- and breadth-first traversals, the shortest path, topological sort). Basic algorithmic analysis: Asymptotic analysis of upper and average complexity, identifying bounds, differences between best, average, and worst case behaviours, big O notation. Algorithmic strategies. O (N ^ 2) and O (N * log N) sorting algorithms. Searching. Binary seach tree. Hashing.
Three homeworks must be done: solving a problem and presenting solution in a program.
Independent work
Reading teh course materials, learning the main concepts of the field. Composing 3 programs, specific requirements will be available during the workshops.
Learning outcomes in the course
After the course, the student:
Knows concepts about analysis and evaluation of algorithms and complexity. Describes dynamic and static data structures, and algorithms for them. Is able to analyze algorithms and evaluate their effectiveness. Can in case of more typical problems choose appropriate data structures and algorithms, depending on the problem to be solved. Creates a computer program, witch uses learnd algorithms to solve the problems.
Assessment methods
Exam. The final Grade is based on written examwork. The prerequisite for exam is homework.

Teacher
õp Inga Petuhhov
Study literature
Õppematerjalid kursuse veebilehel: http://www.cs.tlu.ee/~inga/alg_andm/;
Algoritmid ja andmestruktuurid. Kiho, J. 2003.
Replacement literature
R. Sedgewick, Algorithms in C (Parts 1-5). 2002;
Ain Isotamm, Programmeerimine C-keeles ("Algoritmide ja andmestruktuuride" näiteil), TÜ, 2009.