## COMP2721 Algorithms and Data Structures II

### 10 creditsClass Size: 500

Module manager: Dr Haiko Muller
Email: h.muller@leeds.ac.uk

Taught: Semester 2 (Jan to Jun) View Timetable

Year running 2024/25

### Pre-requisites

 COMP1421 Fundamental Mathematical Concepts COMP1511 Introduction to Discrete Mathematics

Module replaces

COMP2541

This module is not approved as a discovery module

### Module summary

This module focuses on key algorithms and data structures, that form the toolkit of a modern computer specialist. There may exist several algorithms for solving the same problem, and it is important to produce the one which is efficient in terms of the computation time and space requirements. Our primary goal is to identify the most efficient solutions among those available and to provide a formal justification of that choice. Practising with advanced algorithms and data structures students will learn how to combine them in order to produce an efficient solution approach. The algorithm design methods (Greedy algorithms, dynamic programming, divide and conquer) will be illustrated by various examples. Advanced Data Structures (priority queues, dictionaries) and their implementations will be considered.

### Objectives

On completion of this module, students should be able to:
- Understand the fundamental techniques for the design of efficient algorithms (greedy algorithms, dynamic programming, divide and conquer);
- Demonstrate how these algorithms are analysed;
- Understand advanced data structures (priority queues, dictionaries), their efficient implementation and applications;
- Understand how these algorithms and data structures relate to the central practical problems of modern computer science.

Learning outcomes
On completion of the year/programme students should have provided evidence of being able to:
-demonstrate a broad understanding of the concepts, information, practical competencies and techniques which are standard features in a range of aspects of the discipline;
-apply generic and subject specific intellectual qualities to standard situations outside the context in which they were originally studied;
-appreciate and employ the main methods of enquiry in the subject and critically evaluate the appropriateness of different methods of enquiry;
-use a range of techniques to initiate and undertake the analysis of data and information;

### Syllabus

Principles of algorithm design:
Representations of graphs: adjacency list, adjacency matrix. Depth- and breadth-first search traversals, shortest-paths algorithms (Dijkstra's and Floyd/Warshall algorithm), minimum spanning tree (Prim's and Kruskal's algorithms). Algorithmic strategies: greedy algorithm, dynamic programming (CYK algorithm), divide-and-conquer. Recurrence equations, Master theorem. Strassen's algorithm for matrix multiplication.
Abstract data types:
priority queues and their implementations (binary heaps, binomial heaps)
dictionaries and their implementations (hash tables and balanced search trees)

### Teaching methods

 Delivery type Number Length hours Student hours Lecture 22 1.00 22.00 Tutorial 10 1.00 10.00 Private study hours 68.00 Total Contact hours 32.00 Total hours (100hr per 10 credits) 100.00

### Opportunities for Formative Feedback

Students will receive feedback on tutorial worksheets.

### Methods of assessment

Coursework
 Assessment type Notes % of formal assessment In-course Assessment MCQ & Problem-Solving Exercises 20.00 Total percentage (Assessment Coursework) 20.00

Normally resits will be assessed by the same methodology as the first attempt, unless otherwise stated

Exams
 Exam type Exam duration % of formal assessment Standard exam (closed essays, MCQs etc) (S1) 2 hr 00 mins 80.00 Total percentage (Assessment Exams) 80.00

Resits will be assessed by exam.