Data Structures and Algorithms
Full course description
As a continuation of the courses Procedural Programming (formerly known as Introduction to Computer Science 1) and Objects in Programming (formerly known as Introduction to Computer Science 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.
Prerequisites
Desired Prior Knowledge: Discrete Mathematics, Procedural Programming (formerly known as Introduction to Computer Science 1) and Objects in Programming (formerly known as Introduction to Computer Science 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.
Recommended reading
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
- F. Barile
- T.H.J. Pepels