| Module Code | CSU22012 |
| Module Name | Algorithms and Data Structures II |
| ECTS Weighting [1] | 5 ECTS |
| Semester Taught | Semester 2 |
| Module Coordinator/s | Dr. Anthony Ventresque |
| Academic Year | 2026-2027 |
Module Learning Outcomes
On successful completion of this module, students will be able to:
- Analyse the time and space complexity of algorithms using appropriate performance models and asymptotic notation;
- Explain and compare fundamental algorithm-design approaches, including iteration and recursion, brute force, divide and conquer, greedy algorithms, dynamic programming and heuristic search;
- Select appropriate algorithms and data structures for a given computational problem, taking account of correctness, efficiency, input characteristics and resource constraints;
- Explain, apply and evaluate algorithms for sorting, searching and processing graphs;
- Design and implement algorithms and data structures in Java, using appropriate software-development and testing practices;
- Communicate and justify algorithmic solutions through programs, written explanations, pseudocode, diagrams and analysis.
Module Content
This module develops students’ knowledge of algorithm design, analysis and implementation, building on the material introduced in Algorithms and Data Structures I last semester. The module covers:
- Analysis of algorithm correctness, running time and memory requirements;
- Asymptotic notation and best-, average- and worst-case analysis;
- Iteration, recursion and major algorithm-design approaches;
- Comparison based sorting algorithms, including insertion sort, selection sort, merge sort and quicksort;
- Non comparison based sorting, including least significant digit and most significant digit radix sort;
- Graph representations using adjacency lists and adjacency matrices;
- Graph traversal using breadth first search and depth first search;
- Directed acyclic graphs and topological ordering;
- Shortest-path algorithms, including Dijkstra’s, Bellman–Ford and Floyd–Warshall;
- Minimum spanning trees and the Prim and Kruskal algorithms;
- Heuristic graph search, including greedy best-first search and A*;
- String search data structures, including tries and ternary search tries;
- Practical implementation and evaluation of algorithms and data structures in Java.
Students will learn not only how these algorithms operate, but also the assumptions under which they are correct, their computational costs, and the circumstances in which one approach should be preferred over another.
Teaching and Learning Methods
- 2 hours of lectures, 1 hour of lab per week.
- Individual coursework assignments.
- Quizzes and e-tests.
Assessment Details
| Assessment Component | Brief Description | Learning Outcomes Addressed | % of Total | Week Set | Week Due |
| Weekly Quizzes | Short quizzes assessing understanding of material covered in the module | LO1-LO4 | 10% | 1-12 | 1-12 |
| Mid-term Test | An in-class test assessing material covered during the first part of the module | LO1-LO4, LO6 | 25% | 8 | 8 |
| Programming Assessment | An individual programming assignment requiring students to design, implement, test and evaluate solutions using appropriate algorithms and data structures. | LO3-LO6 | 25% | TBC | TBC |
| Final Examination | A 2H written examination covering all material taught in the module | LO1-LO6 | 40% | Examination period | Examination period |
Reassessment Details
Reassessment will consist of an in-person two-hour written examination worth 100% of the module mark. The reassessment examination may assess all learning outcomes and all material covered in the module.
Contact Hours and Indicative Student Workload
| Contact Hours (scheduled hours per student over full module), broken down by: | 36 hours |
| Lecture | 24 hours |
| Laboratory | 12 hours |
| Tutorial or seminar | 0 hours |
| Other | 0 hours |
| Independent Study (outside scheduled contact hours), broken down by: | 64 hours |
| Preparation for classes and review of material (including preparation for examination, if applicable) | 32 hours |
| Completion of assessments (including examination, if applicable) | 32 hours |
| Total Hours | 100 hours |
Recommended Reading List
Main textbook:
- Algorithms (4th Edition), Robert Sedgewick and Kevin Wayne, Pearson Education, 2011. http://algs4.cs.princeton.edu/home/
Module Pre-requisites
Prerequisite modules: CSU22011: Algorithms and Data Structures I
Other/alternative non-module prerequisites: N/A
Module Co-requisites
N/A