The University of Sheffield
Department of Computer Science

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 2024/25
Credits 10
Assessment
  • Portfolio of in-semester worksheets 
  • Grading exam
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:

  1.  Linear program and applications 
  2.  Randomization: Hashing and sampling 
  3.  Approximation algorithms
  4.  Algorithms for large data: Streaming and online algorithms 
  5.  Advanced data structures including dynamic data structures
Restriction

Restricted to COM students.

Optional modules within the department 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.