COM113 Practical Algorithms and Data Structures
Summary |
This module will introduce students to algorithms and data structures. This module will reinforce the programming concepts that were taught in the autumn semester's programming module while exploring essential data structures and algorithms. This includes a particular focus on algorithms used in traditional AI. Students will also learn to analyse the efficiency of algorithms and data structures, and make informed choices about these for practical problems.
|
Session |
Spring 2025/26 |
Credits |
20 |
Assessment |
- Programming Assignment
- Final examination
|
Lecturer(s) |
Dr James Mapp, Dr Jose Miguel Rojas, Dr Yoshi Gotoh & Mr Tahsin Khan |
Resources |
|
Aims |
The aims of this module are:
- To reinforce existing programming knowledge through implementation of common algorithms.
- To demonstrate the implementation and analysis of algorithms commonly seen in the computing sciences.
|
Learning Outcomes |
By the end of the module, the student will be able to:
- Describe data structures and algorithms that are commonly used in computational solutions.
- Implement these data structures and algorithms to provide computational solutions to problems.
- Analyse the efficiency of algorithms.
- Select appropriate data structures and algorithms to be used in the solutions for specific scenarios.
|
Content |
Typical topics (subject to variation) include:
- Algorithms as a technology
- Efficiency of algorithms
- Design and Analysis of Algorithms for Sorting
- Insertion sort
- Heap sort
- Mergesort
- Quicksort
- Linear time sorting
- Data Structures
- Stacks and Queues
- Linked lists
- Binary search trees
- Balanced trees
- Graphs
- Design and Analysis of Graph Algorithms
- Searching in graphs
- Finding shortest paths in graphs
- Combinatorial graph problems
- Algorithmic Design Paradigms
- Greedy algorithms
- Divide and conquer
- Dynamic programming
|
Teaching Method |
Lectures and labs |
Feedback |
Students will receive feedback on work carried out in the lab sessions. Additionally, demonstration sessions will give generic feedback on lab tasks. A number of automated quizzes will help students self assess their understanding and help guide their self study. |
|