Programming paradigms and data structures

Goal: The aim of the course is to introduce the basic data structures, their implementation and basic use cases. In addition, students will be introduced to the basic strategies and programming paradigms used in general problem solving and optimization.

Course description: The course introduces the basic operations of data structures (list, queue, stack, set, dictionary) and their use cases. It then discusses the commonly used possible implementations (arrays, sorted arrays, linked
lists, binary search trees, hash tables). It then introduces special-purpose data structures (graphs, B-trees, heaps)
and additional graph algorithms (shortest path search, spanning tree search, topological ordering). Students will be
introduced to the basic strategies that can be used to solve general and optimization problems (brute force method,
divide and conquer, memoization method, dynamic programming, greedy algorithms, backtracking, branch and
bound). Finally, they gain insights into the world of functional and logic programming.

Programming paradigms and data structures