Teaching Responsibility
LJMU Schools involved in Delivery:
LJMU Partner Taught
Learning Methods
Lecture
Seminar
Module Offerings
5520CSQR-SEP-PAR
Aims
Gain an understanding of how to select and design data structures and algorithms to
solve computational problems.
Develop an understanding of key concepts of complexity theory and illustrate their relevance to practical problems of algorithm design.
Understand the difference between a tractable and intractable problem and apply the implications to practical situations.
Learning Outcomes
1.
Design algorithms and employ appropriate advanced data structures for solving computing problems efficiently.
2.
Implement different algorithm paradigms in a high level programming language.
3.
Analyse the time requirements of particular algorithmic solutions.
4.
Apply appropriate algorithms to practical situations by taking into account tractable and intractable problems.
Module Content
Outline Syllabus:Time complexity: the big-O notation.
Elementary data structures: Stacks, Queues, Lists and Trees
Sorting algorithms
Algorithmic paradigms: Divide and conquer. Dynamic Programming, Greedy Method, and Backtracking.
Graph and digraph algorithms: Minimum spanning trees, shortest paths, connected components and graph traversals.
Tractable and intractable problems: P&NP problems, NP-complete problems.
Additional Information:This module introduces the methods for solving computational problems. It covers the modern theory of algorithms, focusing on the themes of efficient algorithms and intractable problems.