COM113 Practical Algorithms and Data Structures
| Summary |
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 2026/27 |
| Credits |
20 |
| Assessment |
- Programming Assignment
- Final examination
|
| Lecturer(s) |
Dr James Mapp & Ms Varvara Papazoglou |
| 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. |
|