Page 1 of 1

# Module Code - Title:

CS4115 - DATA STRUCTURES AND ALGORITHMS

2023/4

2

1

1

0

6

6

N

# Rationale and Purpose of the Module:

To provide a uniform theoretical treatment of the data structures and algorithms used in systems and applications programming. This module includes a practical component to reinforce learning and to encourage students in the practical use of theoretical material.

# Syllabus:

- Mathematics Review; - Review of the ADTs, internals and usage of simple data structures and associated algorithms, in particular recursive algorithms; - Linked Lists and Networks; - Recursion, and the elimination of recursion from algorithms; - Study of sorting algorithms: quicksort, heapsort, mergesort and bucket and radix sorting; - Analysis of general divide-and-conquer algorithms; - Searching: tree searching, AVL trees, splay trees; - Graph algorithms: graph traversal and spanning forests, depth and breadth first search of graphs; connectivity; minimal spanning trees for weighted graphs; shortest path algorithms; networks.

# Learning Outcomes:

## Cognitive (Knowledge, Understanding, Application, Analysis, Evaluation, Synthesis)

Upon successful completion of the module the student will be able to: 1. Given a function or functions in pseudo-code, analyse their asymptotic running time; 2. Given an executable program in black-box form, determine its asymptotic running-time behaviour; 3. Given a fictitious customers requirements for data storage and their data retrieval patterns, propose appropriate data structures; 4. Identify appropriate sorting and searching algorithms for contrasting scenarios; 5. Understand the trade-offs of various graph representation schemes; 6. Formulate data access and optimisation problems as graph algorithms.

N/A

N/A

# Prime Texts:

Jeffrey J. McConnell (2007) Analysis of Algorithms (2nd edition) , Jones and Bartlett
Anany V. Levitin (2006) Introduction to the Design and Analysis of Algorithms (2nd edition) , Addison Wesley
T. H. Cormen et. al. (2001) Introduction to Algorithms (2nd edition) , MIT Press
N. Wirth (1976) Algorithms + Data Structures = Programs , Prentice-Hall

Spring - 08/09