Module Leader

Dr Freddie Page
freddie.page@imperial.ac.uk

Dr Becky Stewart
r.stewart@imperial.ac.uk

Learning Outcomes

  • On completion of this module, students will be better able to:
  • Analyse algorithms to determine the running time, performance and scaling with problem size
  • Design algorithmic solutions for unseen problems using foundational techniques and principles
  • Devise programmes that are asymptotically efficient
  • Implement well-known, high-level algorithms and adapt them efficiently to new applications
  • Design, implement, and analyse their own algorithms and data structures

Description of Content

Running times:
  Asymptotic notation and running times
  Combinatorics
  Recurrence relations
Data structures:
  Graphs and trees
Induction and recursion:
  Foundations of algorithm design
  Induction to design algorithms
Design:
  Prune and search
  Divide and conquer
  Greedy algorithms
Algorithms:
  Graph traversals
  Minimum spanning tree and shortest paths
  Maximum flow problem