4CCS1DST Data Structures
Credit value: 15
Lecturers: Dr Grigorios Loukides and Dr Vladmir Aleksic (office hours)
Teaching pattern: weekly 2-hour lecture and 1-hour large-group tutorial, bi-weekly 2-hour practical session and three 1-hour small-group tutorials during the semester.
Formative assessment: coursework
Learning aims & outcomes
To introduce a number of data structures and algorithms in order to provide a toolkit for solving computational problems. To present analysis and implementations in Java of introduced algorithms and data structures. To develop further understanding and skills of programming in Java.
As a result of this module, you should be able to select and use the most appropriate data structures and algorithms to solve programming problems. You should also develop advanced programming skills by implementing such data structures and algorithms in Java. You should be able to estimate the computational performance of your chosen solution.
Suggested Reading and Resources
- Concepts of Abstract Data Types (ADTs), Data Structures and Algorithms.
- Object orientated implementation of ADTs.
- Examples of ADTs (stack, queue, array list, node list, tree, priority queue, map, dictionary, hash table) and their implementations (arrays, linked lists, general trees, binary trees, heaps, hash tables, binary search trees).
- Introduction to the performance analysis of algorithms.
- Searching algorithms (linear, binary) and their efficiency.
- Sorting algorithms (selection sort, insertion sort, merge-sort, quick-sort, heap-sort, bucket-sort) and their efficiency.
(Link to MyReadingLists)