Data Structures and Algorithms
Full course description
As a continuation of the courses Computer Science 1 and 2, this course will treat the systematic design and application of data structures and algorithms.
Data structures such as lists, trees, graphs, and strings, the associated algorithms and their complexity will be treated. Design principles for algorithms such as recursion, divide-and-conquer and dynamic programming will be treated as well.
Desired Prior Knowledge: Discrete Mathematics, Introduction to Computer Science 1 and 2. The course is desired prior knowledge for Theoretical Computer Science.
The course itself occurs as part of the pre-requisites of both projects of year 2 and the third year course Parallel Programming.
Required Reading: Sedgewick and Wayne (2011) Algorithms Fourth Edition. Addison Wesley. ISBN: 978-0321573513
Recommended Reading: A Y Bhargava (2016). Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People. Manning. ISBN: 978-1617292231