CS243 Data Structures and Algorithms
Academic Aims
Data Structures and Algorithms are fundamental to programming and to understanding computation. The purpose of this module is to provide students with a coherent introduction to techniques for using data structures and some basic algorithms, and with the tools for applying these techniques to computational problems. Teaching and learning methods include lectures and reading material which describe techniques for analysing algorithms and applications of data structures, and a problem sheet which gives students an opportunity to practice problem solving.
Learning Outcomes
On completion of the module the student should be able to:
- Understand a variety of techniques for designing algorithms.
- Understand a wide variety of data structures and should be able to use them appropriately to solve problems
- Understand some fundamental algorithms.
Content
- Analysis of running time of algorithms: asymptotic notation, analysis of recursive algorithms.
- Efficient algorithms for sorting and selection: selection sort, merge sort, insertion sort, quick sort, binary search.
- Efficient data structures: sets, lists, queues and stacks.
- Dictionary data structures: hash tables, binary search trees.
- Elementary tree and graph algorithms: depth first and breadth first search.
