Please read our student and staff community guidance on COVID-19
Skip to main content Skip to navigation

CS917 Foundations of Computing

Academic Aims

The aim of the module is to equip students with a grounding in foundations of computing, to enable students from a wider background to confidently undertake a taught masters programme in advanced computing topics.

Learning Outcomes

By the end of the module the student should be able to:

  • Understand the foundational concepts of computing mathematics and statistical methods.
  • Write computer programs with an understanding of type systems and control flow in both procedural and object oriented programming paradigms and have strategies for debugging. Use data structures such as arrays, lists stack, queues, hash tables and trees effectively.
  • Understand the relationships between algorithms and complexity.


  • Computational Mathematics and Statistical Methods (logic, sets, probability and hypothesis testing)
  • Programming and Data Structures (procedural and object oriented programming, using appropriate data structures)
  • Algorithms and Complexity (analysis of algorithms, searching and sorting algorithms and calculation best, worst and average case complexities)

15 CATS (7.5 ECTS)
Term 1

Professor Feng Hao
Professor Stephen Jarvis


Online material