Learning Outcomes:
On completion of this module, students will be able to:
1) Program competently using Java.
2) Understand the inner workings of core data structures from linked structures to non-linear structures.
3) Analyse the performance characteristics of data structures (space complexity and time complexity)
4) Know how to use the most appropriate data structures for a particular algorithm.
Indicative Module Content:
1. Java Collections, Generics, Iterators
2. Linked Lists (singly, doubly, circularly)
3. Algorithm Analysis
4. Recursion
5. Stacks, Queues, Deques
6. Trees
7. Priority Queues
8. Maps, Hashtables, Skip Lists
9. Binary Search Trees, AVLTrees, Splay Trees
10. Red-Black Trees