5024.10 - Algorithms and Data Structures
Course number
5024.10
Title
Algorithms and Data Structures
ECTS
7.5
Purpose
• To introduce the notation, terminology, and techniques underpinning the study of algorithms.
• To introduce the standard algorithmic design paradigms employed in the development of efficient algorithmic solutions.
• To introduce the mathematical tools needed for the analysis of algorithms in terms of the use of formal models of Time and Space.
Content
• describe standard algorithms such as sorting algorithms, search algorithms, string matching algorithms, graph traversal algorithms;
• apply these algorithms or a given pseudo code algorithm in order to solve a given problem;
• carry out simple asymptotic analyses of algorithms involving sequence, selection, and iteration, and identify and compare simple properties of these algorithms;
• describe the algorithm design principles of divide-and-conquer, greedy method, and dynamic programming and distinguish the differences between these principles;
• apply the studied algorithms that illustrate these design principles;
• apply the studied design principles to produce algorithmic solutions to a given problem;
• explain and illustrate the distinction between different classes of problems, in particular, polynomial time and exponential time solvable problems.
Learning and teaching approaches
Lectures and problem solving.
Assessment method
4-hour written examination on 14th May, 2012
NOT allowed to take any materials related to the course
100% contribution to the final marks
Contact
Qin Xin