These are the full notes for the Data Structures, Algorithms and Mathematics module.
When developing software, it is necessary to use data structures to handle collections of data, and it is also necessary to select the most appropriate data structure for a particular problem. Programming also involves the need to solve real-world problems, and to design algorithms to solve these problems. An algorithm is a well-defined, clearly-specified approach to solve a problem. This module will cover a range of common data structures, such as linked lists, hash tables, trees, stacks and queues, and explain in detail how they work. You will get the chance to appreciate these data structures by coding them yourself from first principles in the lab sessions. The module will also cover a selection of existing algorithms, including how to efficiently search for, and sort, data. Via examination of these existing algorithms, you will gain appreciation of how to solve computing problems by designing your own algorithms.