F28JB - Introduction to Data Structures and Algorithms
Course leader(s):
Aims
To develop further skills and techniques in programming in a high-level language. The ability to construct data structures in a high level language, and implementation algorithms over these data structures.
Syllabus
1. static structures – arrays
2. linear techniques e.g. search, delete, update
3. dynamic structures - stacks & queues
4. recursive techniques – linear recursion, accumulation recursion
5. sorting & searching e.g. binary search, linear sorting, divide and conquer sorting
6. linked structures – lists and trees: construction, traversal, delete, update
7. introductory complexity & “big O” notation
8. introduction to parallelism and concurrency
Learning outcomes
By the end of the course, students should be able to do the following:
- implement fundamental static, dynamic, and linked data structures from scratch using programming languages without use of libraries.
- identify how the update operations affect non-empty data structures.
- implement linear and recursive search algorithms to solve various programming tasks.
- implement simple and efficient divide and conquer sorting algorithms.
- compare the worst-case time complexity analysis of sorting, searching and the various data structure operations.
- use test driven development to mechanize the validation of data structure implementations, searching and sorting algorithms.
- identify the correspondence between different data structures and algorithms.
Further details
Curriculum explorer: Click here
SCQF Level: 8
Credits: 15