Teaching Responsibility
LJMU Schools involved in Delivery:
Computer Science and Mathematics
Learning Methods
Lecture
Seminar
Module Offerings
5220COMP-SEP-CTY
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: Stack, Queue, List and Tree.
Priority Queue and Heap
Algorithmic paradigms: Divide and conquer. Dynamic Programming, Greedy Method, and Backtracking.
Sorting algorithms, Stable Marriage Problem and Counting Inversion.
Graph and digraph algorithms: Minimum spanning trees, shortest paths, connected components and graph traversals.
Information Networks and WWW: The structure of the Web and Link Analysis and Web Search.
Tractable and intractable problems: P&NP problems, NP-complete problems.
Module Overview:
This module introduces you to the methods for solving computational problems. It covers the modern theory of algorithms, focusing on the themes of efficient algorithms and intractable problems. You will gain an understanding of how to select and design data structures and algorithms to solve computational problems alongside developing an understanding of key concepts of complexity theory, illustrating their relevance to practical problems of algorithm design.
This module introduces you to the methods for solving computational problems. It covers the modern theory of algorithms, focusing on the themes of efficient algorithms and intractable problems. You will gain an understanding of how to select and design data structures and algorithms to solve computational problems alongside developing an understanding of key concepts of complexity theory, illustrating their relevance to practical problems of algorithm design.
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.