Algorithms and Data Structures

Course code

IFI6083.DT

old course code

IFI6083

Course title in Estonian

Algoritmid ja andmestruktuurid

Course title in English

Algorithms and Data Structures

ECTS credits

4.0

approximate amount of contact lessons

56

Teaching semester

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 C 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.

Three homeworks must be done: solving a problem and presenting solution in a program.

Independent work

As an independent work it is necessary to finish practical tasks and read course materials, learn the main concepts of the field before corresponding lecture.

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.

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 an examination is a written test. With this test will be checked students programming skills and knowledge of programming languages and the work is passed with at least 50% of the points.

Teacher

Inga Petuhhov

Prerequisite course 1

The course is a prerequisite

Study literature

Õppematerjalid kursuse veebilehel: http://www.cs.tlu.ee/~inga/alg_andm/;

V. Leppikson, Programmeerimine C keeles. 1997

Algoritmid ja andmestruktuurid. Kiho, J. 2003.

V. Leppikson, Programmeerimine C keeles. 1997

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.

Ain Isotamm, Programmeerimine C-keeles ("Algoritmide ja andmestruktuuride" näiteil), TÜ, 2009.