Computer science MSc curriculum structure

The online MSc Computer Science curriculum is made up of 4 compulsory 20-credit units followed by 4 10-credit units selected from a range of optional choices, and ending in a 60-credit dissertation phase, totalling to 180 credits.

The course is delivered in three phases:

  • Phase 1: Computer Science Foundations (60 credits): This phase focuses on core principles in computer science, including programming, software engineering, and the foundations of computation. It provides the essential theoretical foundation and practical knowledge required for advanced study.
  • Phase 2: Specialist Topics in Computer Science (60 credits): In this phase, students apply the principles learned in Phase 1 to study various advanced topics in computer science.
  • Phase 3: Dissertation (60 credits): Students undertake an individual research or developmental project, applying their knowledge and skills to a significant piece of work that contributes to the field of computer science.

Students have between two years and four months and five years to successfully complete all of the units, including a final research-based project. Students receiving a Student Loans Company (SLC) Postgraduate Loan must study at a pace to complete the course in three years to meet SLC funding regulations. The course is structured with units delivered sequentially in three phases. Each 10-credit unit is 8 weeks in duration and each 20- credit unit is 16 weeks long. There are some scheduled short breaks in teaching during the academic year.

The course begins with an induction to help you get to know the faculty team, your fellow students and the virtual online environment.

Occasionally we make changes to our programmes in response to, for example, feedback from students, developments in research and the field of studies, and the requirements of accrediting bodies. You will be advised of any significant changes to the advertised programme, in accordance with our Terms and Conditions.

Phase 1 compulsory units

This unit introduces the fundamentals of programming, including the generic building blocks of programs and demonstrates them using appropriate programming languages. You’ll explore how to break down complex problems so they can be solved through programming, using approaches such as procedural or object-oriented. The unit builds confidence in computational thinking that can be applied to a range of problems and programming languages.

You’ll learn to:

  • Describe the design of a computer program separately from its implementation
  • Understand and apply the concepts of different programming paradigms, such as procedural and object-oriented, and demonstrate these using an appropriate programming language
  • Explain debugging and testing methods and how they contribute to robust code
  • Design, construct, and evaluate simple data structures and algorithms

Topics covered in this unit may include (but are not limited to) the following:

  • Introduction to procedural program design, covering structures such as sequence, iteration, and recursion
  • Introduction to object-oriented program design, including inheritance and polymorphism
  • Introduction to an appropriate programming language to demonstrate taught procedural and object-oriented concepts
  • Error handling, testing, and debugging techniques
  • Introduction to an appropriate programming development environment

In this unit, students will learn the concepts and methods required for developing software systems, using contemporary software processes such as agile. Students will learn about the software lifecycle, such as learning how to gather requirements, specifying software, developing models in preparation for writing code, and evaluating software.

You’ll learn to:

  • Analyse relevant information to define and construct software requirements specification that encapsulates it
  • Use appropriate models and test cases to design software to a specification
  • Use modern software development processes and apply software quality principles when developing systems
  • Evaluate contemporary software engineering techniques for different software development problems
  • Demonstrate awareness and understanding of project and risk management, and of legal, ethical, and professional issues as system-wide considerations 

Topics covered in this unit may include (but are not limited to) the following:

  • Software engineering concepts
  • Software development paradigms such as agile
  • Requirements engineering
  • Software architectural design
  • Software quality and testing

This unit explores the fundamental models of computation such as finite automata and Turing machines, design algorithms within a given model, and provides examples of problems that cannot be addressed within a given model. You’ll learn about a variety of data structures and choose an appropriate one for a given problem. You’ll also learn to determine the computational complexity of algorithms and demonstrate their correctness.

You’ll learn to:

  • Describe fundamental models of computation and the corresponding classes of formal grammar and languages
  • Design appropriate algorithms for specific computational problems
  • Understand what can and cannot be computed using different computational models
  • Describe a variety of data structures and algorithms and choose appropriate ones for solving a given computational problem
  • Analyse the correctness and complexity of a variety of algorithms

Topics covered in this unit may include (but are not limited to) the following:

  • Regular languages; deterministic and non-deterministic finite automata; existence of non-regular languages
  • Context-free languages; context-free grammar; parsing in context-free languages
  • Turing machines; Church-Turing Thesis; Universal Turing machine and undecidability of the halting problem
  • Non-deterministic Turing machines; complexity classes P and NP; P vs NP problem
  • Data structures such as lists, stacks, queues, trees, hash tables, heaps, graphs, and self-balancing trees
  • Methods of designing efficient algorithms such as divide-and-conquer, dynamic programming, and greedy algorithms
  • Best, worst, and average case complexity; time, space and other measures; big O, big Theta, and big Omega notation
  • Analysis of algorithms such as sorting algorithms, graph algorithms, and algorithms for linear algebra
  • Basic correctness techniques including loop invariants

Phase 2 compulsory units

Students will explore core ideas and methods used in artificial intelligence and machine learning. Students will also study how intelligent systems represent problems, reasons under uncertainty, and learn from data, alongside practical activities that apply algorithms to real-world scenarios. This unit links foundational concepts with more advanced techniques, supporting understanding of how AI systems are designed and implemented.

You’ll learn to:

  • Apply foundational concepts of artificial intelligence and machine learning to analyse problems and select appropriate computational techniques
  • Design and implement algorithmic solutions in code that address AI-related tasks, demonstrating correctness and efficiency
  • Evaluate how models represent uncertainty and make predictions from data, using reasoning grounded in probability and statistical methods
  • Compare and contrast different methods, both core AI and ML, in terms of their capabilities and limitations in practical contexts
  • Reflect on ethical, societal, and legal considerations relevant to the development and deployment of intelligent systems

Topics covered in this unit may include (but are not limited to) the following:

  • Goals, definitions, and paradigms of artificial intelligence
  • Problem-solving and search methods, including heuristic and adversarial approaches
  • Constraint satisfaction and planning concepts
  • Logical reasoning, including propositional and first-order logic
  • Probabilistic reasoning and uncertainty, including Bayesian models and Markov processes
  • Core machine learning paradigms and some key representative approaches, such as nearest-neighbour methods, decision trees, and k-means clustering
  • Introductory neural network concepts
  • Relationships between artificial intelligence and real-world applications
  • Social, ethical, and societal considerations surrounding the deployment of AI systems

Phase 2 optional units

Block 1: Select 2 units from block one

Cybersecurity is often in the news these days. Either theft of personal data, or organisations closed by ransomware, or both. But how do these attacks arise, and what can people, specifically computer people, do about them? We will see that many attacks could have been prevented by very simple measures, sometimes in programming, but also in systems, such as multi-factor authentication.

You’ll learn to:

  • Describe common security models
  • Discuss what it means for a given system to be 'secure'
  • Identify security weaknesses in proposed systems
  • Understand the principles and application of cryptography

Topics covered in this unit may include (but are not limited to) the following:

  • Philosophical, legal, ethical issues. What is a person? Passwords, user ids and biometrics
  • What are authorisation and delegation? What are data? Security against theft, destruction, interception, tampering. Some thoughts on physical security. Data Protection Act, Freedom of Information Act, Regulatory and Investigatory Powers Act. Military/government requirements for security
  • Security within a computer. Hardware support for security: States and memory protection. Memory mapping, virtual memory, and security. The Unix Security model: chown, chgrp, setuid, and chroot. Strengths and weaknesses of the Unix security model: Common attacks
  • Security within networks. 'Man in the middle' attacks. What does the 's' in https signify?
  • Case studies: For example, internet worm. Power attacks and other covert channels. A chain can be weaker than its weakest link: the Crouch-Davenport attack

This unit introduces key frameworks of entrepreneurial thinking and activity, as well as key considerations and challenges for the entrepreneur and an introduction to fundamental business concepts (e.g. how to seek funding, key operational considerations etc.). Throughout this unit, there are a variety of examples of entrepreneurial activity. Some focus on technology start-ups, but others focus on other industries and sectors with examples chosen to highlight particular approaches, activities, thinking, and opportunities.

You’ll learn to:

  • Identify and analyse market and entrepreneurial opportunities
  • Develop business strategy to take advantage of that opportunity
  • Critically consider key operational issues
  • Investigate alternative funding and financial strategies
  • Identify and address key IPR, legal, social, ethical, and professional issues
  • Locate and use entrepreneurial resources
  • Develop a business plan
  • Reflect on the skills and behaviours of entrepreneurs
  • Evaluate the phases and challenges of the entrepreneurial process
  • Evaluate the resource challenges associated with entrepreneurship

Topics covered in this unit may include (but are not limited to) the following:

  • History of entrepreneurial thought
  • Market analysis, corporate structure, business funding, hiring, operations, marketing, risk management
  • Legal, social, ethical, and professional issues
  • Writing a business plan

In this unit, the focus is on real-world context in which AI technologies are conceived, developed, and produced, as well as the effect that the implementation of these technologies has on our society, our economy, and our politics. We will use real-world use cases of AI technologies to illuminate these themes and to see how theoretical notions play out in practice. Each case study looks at an application of AI Technologies which promises to revolutionise aspects of our society, but with the actual effects far from universally positive.

Over the course of this unit, students should develop a much richer understanding of how AI is embedded in the social fabric and be given critical tools to assess claims about AI made by tech companies, government agencies, and the media.

You’ll learn to:

  • Demonstrate in-depth understanding of the parameters of historical and contemporary debates around the development, emergence, and adoption of AI/machine learning/robot technologies
  • Demonstrate advanced critical understanding of the social, political, and economic distinctiveness of AI and related technologies
  • Demonstrate advanced critical understanding of how AI (automation, machine learning and robotics) is applied in specific empirical cases and assess the social, political, and economic implications of these applications
  • Demonstrate the use of appropriate standards of logic and argumentation, including referencing and the critical discussion of alternative views

Topics covered in this unit may include (but are not limited to) the following:

  • Machines and the social world
  • Learning machines and digital personhood
  • Political economy & power in digital environments

Students will be introduced to cloud computing and will learn how to move to a cloud platform, particularly for databases, has many advantages but also some challenges to overcome, including legal and professional considerations.

You’ll learn to: 

  • Understand the nature, formal description, and representation of data and its processing
  • Make use of emerging data exchange and database developments such as big data, data mining, metadata, and the semantic web
  • Critically review the migration towards cloud-based data storage in the context of its professional and legal implications
  • Practically demonstrate how programs and users can interact with databases through query languages

Topics covered in this unit may include (but are not limited to) the following:

  • Data modelling methodologies such as UML and the e-r model
  • Relational model, relational algebra, SQL, and normalisation
  • Metadata, the semantic web, data exchange methods, and formats such as XML
  • Data mining, big data, and pattern discovery in large datasets
  • Cloud-based, distributed data storage, and its professional, legal, and ethical implications

Block 2: Select 2 units from block two

This unit will give students an advanced level of understanding of current theoretical, methodological, and practical research issues and trends in human computer interaction. Specifically, the unit will communicate to students the importance of usability, how it can be achieved and measured, give them the relevant knowledge and skills related to usability design and evaluation, and provide them some experience of researching advanced HCI topics, summarising the current state of the art, undertaking a relevant study, and presenting the results.

You’ll learn to:

  • Understand human computer interaction theory, be aware of interaction design issues, and be able to carry out different types of evaluation
  • Challenge and recognize advances in the state of the art in human-computer interaction research
  • Develop research programmes to overcome problems in usability research, development, and evaluation
  • Summarise current theoretical, methodological, and practical research issues and trends in human-computer interaction
  • Discuss the key issues in usability, usability design, and evaluation
  • Critically evaluate the key issues in interaction design

Topics covered in this unit may include (but are not limited to) the following:

  • What is usability?
  • What aspects of humans need to be considered in user centred design?
  • What is effective, useful and engaging interaction design?
  • Participatory design and the role of the end user
  • Different approaches to evaluation - analytical, discount, formal, etc

Deep learning, a subfield of machine learning, has recently been revolutionising many fields, driving the recent artificial intelligent explosion. This unit is designed to provide a fundamental understanding of deep learning techniques and their various applications in many areas. You will explore a variety of deep learning models, including Multi-Layer Perceptron (MLP), Convolutional Neural Networks (CNNs) and Recurrent Neural Networks (RNNs).

Through a hands-on approach, you will gain practical experience in implementing the above deep learning algorithms, including how to build, train, evaluate and fine-tune deep learning algorithms to solve practical problems. You will also explore many of the real-world applications of deep learning that can be found across various industries and research areas.

You’ll learn to:

  • Demonstrate a basic understanding of the important theoretical concepts and algorithms in modern machine learning
  • Demonstrate familiarity with state-of-the-art applications of machine learning and open research questions
  • Appraise the suitability of various machine learning methods for a given application and write code in a relevant programming language to solve problems
  • Demonstrate an understanding of a range of deep learning techniques, including MLP, CNN and RNN
  • Demonstrate an understanding of how deep learning algorithms work, how to build them and how to train them
  • Apply deep learning techniques to solve real-life problems using deep learning libraries

The Robotics unit is a general introduction to this application domain, designed to give a broad conceptual understanding of the components of a robotic application and the taxonomies of techniques involved in accomplishing the tasks of those components.

Perception systems in robotics will feature prominently in the unit with a good coverage of sensors and a particular emphasis on the intensity camera image grid as a data structure. It will also cover visual data interpretation and basic manipulation to give a sense of the role of machine vision in robotics. Further, the unit zooms in on the hardware aspects involved in locomotion as well as algorithmic aspects of the robot planning and control task discussing the different approaches to environment search. Robotics as an area of research will be given context, in terms of history of its development against the backdrop of general AI evolution as well as in terms of ethical practices, safety, and accountability.

The unit includes state-of-the-art robotics application examples where the theory can be seen applied in the real world. Technical challenges in the design of various systems are discussed throughout the unit, but particularly in the last two weeks that are devoted to practical application with essential supporting theoretical background to facilitate understanding.

You’ll learn to:

  • List the key components of a robotics application
  • Explain the operating principles of various robot sensors, in particular of the intensity camera as well as the associated challenges in raw data acquisition
  • Understand image as a data structure and apply basic processing and manipulation algorithms to it to achieve specified goals
  • Describe and classify hardware options in data acquisition and locomotion tasks

Phase 3 compulsory unit

Undertake an individual research or developmental project that applies your knowledge and skills to a significant piece of work contributing to the field of computer science. You will develop an agreed project proposal, critically evaluate relevant academic literature, select appropriate research and technical methods, and carry out your project independently with guidance from an academic supervisor.  

Depending on the nature of your project, your work may combine analytical, experimental, theoretical and software-based approaches. You will implement and evaluate your chosen approach, reflect critically on the outcomes and consider future directions, culminating in a comprehensive, professionally written dissertation.  

The dissertation can be completed over 4, 8 or 12 months, giving you flexibility to choose a pathway that suits your circumstances. Students choosing a shorter pathway should expect a higher weekly workload. 

You’ll learn to:  

  • Plan and complete an independent research project to a professional standard
  • Find, critically evaluate and synthesise relevant computer science research
  • Conduct independent research in line with appropriate ethical principles and processes
  • Apply appropriate analytical, design, development and investigative methods to a technical computer science problem
  • Communicate your research, methods and findings clearly in a well-structured dissertation
  • Critically evaluate your project and its outcomes, identifying limitations and opportunities for future work

This degree will give me the foundations I need in multiple areas to be able to build upon when new technology comes out. Should I wish to move from web development into security or artificial intelligence then I will already have a background in those areas to get me started and give me a jumpstart into that part of the technology industry.

Jess Crees