KIT205 Data Structures and Algorithms

KIT205 Data Structures and Algorithms

This unit teaches students how to create an abstract representation of a computational problem and how to implement the resulting abstraction using common data structures. Students learn that, having transformed the problem into a standard representation, they may then reason about the problem using standard algorithms. They learn how to analyse the time and space complexity of these algorithms and hence how to select the appropriate algorithm for a particular problem. Students also learn strategies for designing new algorithms when faced with novel problems for which there are no existing solutions.

The unit starts with a review of data structures covered in previous units (arrays, linked lists, trees) before moving on to new data structures (heaps, hash tables, graphs) and a selection of common algorithms for operation on these structures. The unit then moves onto algorithm design techniques and how to deal with problems for which there are no known efficient algorithms. Students will learn by applying algorithms diagrammatically as well as through the implementation of data structures and algorithms in a common programming language.