The requirement for receiving the credit is an active participation in at least 80% of lab excercises and completing the assignments, passing half-semester and semester test and implementing a project. Written examination, Analysis of the student's performance Student gains knowledge about dynamic data structures and algorithms for managing them, understands algorithms for searching and sorting, is able to implement text processing algorithms, graph algorithms and computing algorithms. Students will also get the understanding of searching, sorting, text processing and computing algorithms, as well as algorithms dealing with graphs. Students will acquire the knowledge of dynamic data structures and algorithms for managing them. This course targets fundamental algorithms and data structures necessary for efficient programming in all areas of information science. Introduction to text processing algorithms: - Finite state machines and regulard expressions - Grammars and parsers - Graphs and algorithms for graph processing - Computing algorithms Binary trees, AVL and Red-black trees - Hash tables - Stack-based algorithms: Postfix evaluation, infix2postfix, Non-recursive versions of binary tree operations - Search algorithms (binary search, search in texts.) - Sort algorithms: Bubble sort, Insert sort, Selection sort, Quick sort, Heap sort, Radix sort, Merge sort.
Complexity and computability of algorithms - Abstract data structures: List, queue, stack, set. The methods for specification of algoritms. The course is available to visiting students Recommended optional programme components