Algorithms and Complexity I


The course treats a number of fundamental algorithms such as sequential and binary search algorithms, sorting algorithms and Dijkstra and Floyd's algorithms, and fundamental data structures such as linked lists, stacks, queues, and trees, as well as more advanced data structures. These structures can be used for implementation strategies for stacks, queues, hash tables, graphs and hash tables. The course treats also basic analysis for algorithms and their strategies.


The student should be able to implement algorithms and data structures for storing data, searching and sorting, choose appropriate algorithms and data structures for those algorithmic, and should be able to use and implement basic graph algorithms.

The student should be able to analyse the runtime performance of simple algorithms and programs in terms of the size of thier inputs and their average, worst and best cases.

The course website can be seen by clicking here.