COM3105 Advanced Algorithms
Summary |
Algorithms and algorithmic problem solving are at the heart of computer science. This module, Advanced Algorithms, focuses on teaching efficient
algorithm design and analysis for solving complex computational problems. It covers optimisation tools, various algorithmic techniques, and a number of modern computational models that deals with massive datasets - these are crucial for students who are aspiring researchers or industry professionals. The module integrates research-led teaching to introduce students to cutting-edge topics in algorithm design and optimisation theory. The students gain theoretical as well as practical skills relevant to research and industry demands, making them well-prepared for any career requiring a deep understanding of algorithms and their efficient implementation. |
Session |
Autumn 2025/26 |
Credits |
10 |
Assessment |
- Formal exam [60%]
- Portfolio of in-semester worksheets [40%]
|
Lecturer(s) |
Dr Navid Talebanfard |
Resources |
|
Aims |
This unit aims to:
- Develop students' algorithmic thinking and their ability to analyse the efficiency of algorithms;
- Enable students to find different approaches for dealing with challenging computational problems that one faces in real-life;
- Provide insight into cutting-edge research-led teaching in modern subfields of algorithms theory, including modern computational models that deals with massive datasets.
|
Learning Outcomes |
By the end of the module the student will be able to:
- Demonstrate what constitutes an efficient and an inefficient solution to a computational problem;
- Analyse the efficiency of advanced algorithms;
- Evaluate and choose appropriate ways of dealing with challenging computational problems;
- Identify and apply design principles for the design of advanced efficient algorithms;
- Describe efficient algorithms for a range of computational problems, along with their computational complexity.
|
Content |
The main topics of this course are:
- Linear program and applications
- Randomization: Hashing and sampling
- Approximation algorithms
- Algorithms for large data: Streaming and online algorithms
- Advanced data structures including dynamic data structures
|
Restriction |
Restricted to COM students.
Optional modules within the school have limited capacity. We will always try to accommodate all students but cannot guarantee a place. |
Teaching Method |
- The theoretical background and techniques will be presented in a series of formal lectures. Students will reinforce the material through
self-study, and through biweekly problems classes where students will apply analytical skills obtained in class. Both lectures and problem
classes are designed to achieve the intended learning objectives 1-5.
|
Feedback |
Assignments marked using published criteria, submission
commented and returned by Blackboard within 3 weeks. |
|