Module |
Credits |
Compulsory/optional |
Programming Paradigms
|
30 Credits |
Compulsory |
This module explores the extent to which different programming paradigms can be applied to the implementation of elegant solutions to a given programming problem. To this end, this module will evaluate different programming paradigms, such as imperative, functional, concurrent and object-oriented programming.
A more detailed description of the module content is provided in the module delivery information for students. |
Advanced Computer Science Masters Project
|
60 Credits |
Compulsory |
The project is a showpiece opportunity for students to demonstrate what they know about current research and practices in computer science and show off their skills in applying their skills in a range of computer science topics in order to conduct a practical investigation of a particular computer science problem.
The project is a self-directed piece of work, conducted with minimum supervision that demonstrates the student's ability to plan and manage a substantial piece of work, and steer their own efforts.
Students are expected to be thorough in their work, and, particularly, identify and tackle any difficult or challenging aspects of the problems they are trying to solve. It is not just the quantity, or even the quality of work that is considered when grading the project, but the level of difficulty and the scope of the problem being addressed. |
Preparation for Placement
|
0 Credits |
Compulsory |
The module will explain the benefits of the Supervised Work Placement and encourage students to apply. It will support students in their application by informing them about the types of employer and job role available, helping them select the most appropriate for their strengths and weaknesses, and how employers conduct the recruitment process.
The module will assist students to make an application, throughout the entire process, via a series of lectures, seminars, individual guidance and online communication. This includes writing of CVs and letters of application, preparation for psychometric and other forms of assessment, and development of interview technique.
For those who are successful in securing a placement there will be further help in preparing for employment. |
Professional Work Placement for MSc Computer Science
|
0 Credits |
Compulsory |
Supervised work experience provides students with the opportunity to set their academic studies in a broader context, to gain practical experience in specific technical areas and to strengthen their communication and time-management skills. It greatly assists them in developing as independent learners, so that they will be able to gain maximum benefit from the learning opportunities afforded by their future study programme. It gives them opportunities, according to the nature of the placement experience, to acquire the basis of technical expertise in specialist areas, which they may be able to enhance through study after completion of the placement, especially in the final project. |
Computational Algorithms and Paradigms
|
30 Credits |
Compulsory |
This module explores the extent to which different computational paradigms may be applied to problems in order to create appropriate solutions. To this end, this module will evaluate a range of different paradigms, such as the imperative, functional, concurrent and object-oriented paradigms and related computational algorithms.
A more detailed description of the module content is provided in the module delivery information for students. |
Team Research and Development Project
|
15 Credits |
Compulsory |
Students working at, and beyond, Master's level are expected to understand both generic and domain-specific investigative methods, and to be able to apply them in their work. This module explores a range of such methods and helps students to enhance their proficiency in the skills that are expected of those working at postgraduate level.
Furthermore, this module involves working actively as part of a team of fellow students on a complex, multi-domain computing problem. Typically, the project can be a research project to answer a research question, a thorough empirical investigation of a specific topic, or a development idea from student themselves, or a virtual or real client. Each team would be expected to manage the project, to report regularly to their supervisor(s) on the progress of the project, and to collectively deliver a set of appropriate outputs from the project. The output(s) of the team project will typically be a computing product or system and its presentation together with appropriate documentation. |
Legal and Ethical Practice Exercise
|
15 Credits |
Compulsory |
The module will involve a broad case study involving the provisioning of a system which adheres to ethical and professional guidelines and standards. This will be a team project.
One such case study might take the form of a large online platform where teams would have to create policies both for developers and users. The likely topics of those policies would be: issues involving sharing of user content, licensing of third party codes, moderation of content, consents from users relating to the tracking of user activity). The team would have to edit the platform such that all forms and submissions of user data are compliant with regulations particularly operative in the UK and the European Union. |
Data Mining
|
15 Credits |
Optional |
Data Mining deals with the discovery of hidden knowledge, unexpected patterns and new rules from large databases. It is currently regarded as the key element of a much more elaborate process called Knowledge Discovery in Databases (KDD), which is closely linked to another important development - data warehousing.
The combination of data warehousing, decision support, and data mining indicates an innovative and totally new approach to information management. Until now, information systems have been built and operated mainly to support the operational processes of an organisation. KDD views the information in an organisation in an entirely new way - as a strategic source of opportunity (Adriaans 1996). |
Measures and Models for Software Engineering
|
30 Credits |
Optional |
In this module advanced issues of software engineering theory and practice are examined. The range of software engineering products and processes making up a software project are measured and modelled.
Typical software engineering products explored in the module may include: user requirements, design documents, code etc. Typical software engineering processes explored in the module may include: testing, debugging etc. The aim of the module is to use the modelling and measuring of such products and processes to allow quantified decision-making during software development. The module offers students the opportunity to explore both the state-of-the-art and the-state-of-the-practice in software engineering. The module will examine the most up to date research findings about software engineering as well as investigate the current practices of many software engineering companies.
A more detailed description of the module content is provided in the module delivery information for students. |
Programming for Software Engineers
|
30 Credits |
Optional |
Software engineering places great emphasis upon the use, and re-use, of components that are tightly specified and thoroughly tested. This approach is supported by the provision of software frameworks within which programs can be developed. A software framework typically provides an Application Programming Interface (API) implemented as a set of libraries, and supported by a set of tools that may be used during development. But where do APIs, ABIs and software libraries come from? How do we decide what components are required? How are they designed and implemented? Who builds them? How do they go about it? How are they tested? How can we be sure that they work? What effect does the design and implementation of APIs and software libraries have upon the performance of systems that employ them? This module attempts to address these and other issues associated with the design, construction and use of software frameworks. |
Software Engineering Practice and Experience
|
30 Credits |
Optional |
This module gives students the opportunity to extend their understanding and experience of software engineering practice. It offers students exposure to the development and evolution of software. The module is very practical and is based around a substantial piece of software. The aim of the module is to enable students to develop software engineering knowledge and skills that are transferable to software companies.
The module covers each element of the software engineering process. It explores the use of overarching development approaches such as eXtreme Programing and Component Based Software Engineering. Leading edge practices are introduced such as using program slicing to find code faults.
Specialised software development approaches are investigated such as those required for application areas such as safety critical systems. Process models popular with industry, such as one of the SEI models, are also used and evaluated during this module.
A more detailed description of the module content is provided in the module delivery information for students. |
Distributed Systems Security
|
30 Credits |
Optional |
A range of topics will be covered in this module. The detailed content will vary according to current research directions. Case studies will be used throughout. Issues will be considered in relation to each topic as appropriate. These pervasive issues are: models, design, standards, protocols, and performance.
A more detailed description of the module content is provided in the module delivery information for students. |
Secure Systems Programming
|
15 Credits |
Optional |
The variety and proliferation of passive and active malicious attacks made against users of networks and distributed systems has led to a need for pro-active defence mechanisms against such attackers. For an individual, the inconvenience of being attacked can range from being extremely frustrating to downright expensive with slow to no service at all on their computer. For a company it too can be frustrating and costly both financially and to their reputation. This module will be both theoretical and practical, exploring concepts and applications from the fields of computer systems and their security weaknesses. Content will vary according to current research directions.
A more detailed description of the module content is provided in the module delivery information for students. |
Network System Administration
|
15 Credits |
Optional |
This module is designed for those with an existing knowledge and understanding of fundamental computer networking concepts, protocols and architectures and aims to extend that knowledge in practice. Students will be able to gain a deeper understanding and appreciation in computer networks and the Internet by having hands-on experience with real networks and will learn how to configure and maintain network systems.
A more detailed description of the module content is provided in the module delivery information for students. |
Multicast and Multimedia Networking
|
15 Credits |
Optional |
How do we deal efficiently with applications that have to send the same data to many different destinations? How can a network mix applications with very different quality of service requirements?
This module addresses these and other problems that must be solved if we are to integrate the gamut of diverse network applications onto a single network infrastructure. It exposes students to some of the most important developments in computer networking. By the end of the module, you will be familiar with most of the important issues and ideas in applying high-speed network technology to applications with diverse quality of service requirements.
A more detailed description of the module content is provided in the module delivery information for students. |
Wireless, Mobile and Ad-hoc Networking
|
15 Credits |
Optional |
How can we cope with users and computers that move from place to place, and yet wish to remain in contact with the net? This module looks at a range of wireless communications technologies, and addresses some of the problems of mobile ad-hoc and wireless networks. It exposes students to some of the most important developments in computer networking. A more detailed description of the module content is provided in the module delivery information for students. |
Artificial Life with Robotics
|
30 Credits |
Optional |
The overall aim of this module is to provide an in-depth study of a range of advanced ideas, theory, and techniques used in the construction of artificial life systems. The module will be oriented towards (1) the modelling of real-life biological systems and (2) the application of ideas and principles from biology and evolution to computer science in the areas of optimisation, intelligent agents, and engineering, and feedback back to the biological sciences. There is a large practical element to the module with the students gaining experience in developing artificial life models.
A more detailed description of the module content is provided in the module delivery information for students. |
Neural Networks and Machine Learning
|
30 Credits |
Optional |
A study of a selection of research topics centered around neural network theory and design, machine learning including supervised and unsupervised learning and some interesting applications, for example, data mining, biocomputation, evolutionary algorithms, neural networks as models of brain function in health, disease and development, and data visualization. Actual topics taught may vary from year to year. |
Theory and Practice of Artificial Intelligence
|
30 Credits |
Optional |
The overall aim of this module is to provide an in-depth study of a range of ideas, theories and techniques used in the construction of artificial intelligence systems. The module will be oriented towards the creation of AI systems for tasks in the areas of intelligent modelling, problem-solving, learning, decision-making, reasoning, robot control and others. There is a large practical element to the module with the students gaining experience in developing artificial intelligence models.
A more detailed description of the module content is provided in the module delivery information for students. |
Information Security, Management and Compliance
|
15 Credits |
Optional |
Today, Information Environments have become large, diverse and heterogeneous. System boundaries and jurisdictions have blurred and system assets can be located in different geographical locations. Stakeholders span across an integrated supply chain, new vulnerabilities are being constantly discovered and threat agents can expand their operations at an international level with little effort. The first and last line of defence to any information environment is a thorough, explicitly defined and well implemented risk and threat
assessment process.
The module will discuss procedures and controls for ensuring and assuring the information assets of an organisation. It will touch upon threat, risk, vulnerability and the different methods for managing them. It will look at security models, security standards and compliance issues for training students to conduct and manage risk and threat assessments. |
Digital Forensics
|
15 Credits |
Optional |
Digital forensics is the discipline that deals with the collection, examination, analysis and reporting of digital evidence. Nowadays digital forensics techniques are employed in various types of investigations from cybercrimes to corporate investigations. When a security incident is reported, digital forensics techniques are applied in order to retrieve related evidence in an evidentially sound manner. The constant development of a range of technologies is contributing to the establishment of formal methods and procedures for the digital forensic investigators.
In this module the students should expect to familiarise themselves with the current research in the field and study the digital forensic practices. They will study the formal methodologies and policies involved in the investigation. A highly practical element should also be anticipated in this module as the students will work with various tools in order to practically analyse digital devices and extract digital evidence. |
Penetration Testing
|
15 Credits |
Optional |
In today's knowledge-centred virtual-computing era, the Cyber Domain is the Information Environment of choice for committing and facilitating crime. Criminals exploit system vulnerabilities in order to manifest threats for furthering their objectives. To secure a system, it is essential for computer security professionals to understand the structure, configuration, tools and techniques computer criminals rely upon, in order to successfully commit to their act. It is equally important to perform regular penetration tests for discovering vulnerabilities. The module will discuss the mind-set, culture and ethics of the professional Pen-Tester, the current practice for conducting a 'PenTest' and of course, research the technologies and tools involved. The module will train scholars to hack infrastructures, mine search-engine results, extract and analyse document metadata, identify and exploit vulnerabilities, enumerate users and services. |
Cyber Operations
|
15 Credits |
Optional |
1. Information as a weapon.
2. Information environment.
3. Cyber battlespaces and domains of conflict:
- network warfare;
- command & control warfare;
- defensive operations;
- threat intelligence, indicators & warnings;
- protection measures;
- attack response & restoration.
4. Offensive operations:
- perception management;
- intelligence for targeting & damage assessment;
- attack operations.
5. Disciplines of cyber operations (information operations):
- PSYOPS;
- deception;
- NETOPS;
- intelligence & counterintelligence (situational awareness);
- INFOSEC;
- OPSEC. |
Investigative Methods for Computer Science
|
15 Credits |
Optional |
Students working at, and beyond, Master's level are expected to understand both generic and domain-specific investigative methods, and to be able to apply them in their work. This module explores a range of such methods and the uses to which they may be put, and helps students to enhance their proficiency in the skills that are expected of those working at postgraduate level.
Furthermore, this module involves working actively as part of a team of fellow students on a complex, multi-domain computing problem. Typically, the project can be a research project to answer a research question, a thorough empirical investigation of a specific topic, or a development idea from student themselves, or a virtual or real client. Each team would be expected to manage the project, to report regularly to their supervisor(s) on the progress of the project, and to collectively deliver a set of appropriate outputs from the project. The output(s) of the team project will typically be a computing product or system together with appropriate documentation etc. |
Professional Issues
|
15 Credits |
Optional |
This module covers the relationship between technological change, society and the law, emphasising the powerful role that computers and computer professionals play in a technological society. It also covers the professional codes and UK laws which are relevant to the disciplines of computer science and information systems, and provides students with an understanding of important ethical concepts and dilemmas of relevance to computer professionals. |
Foundations of Data Science
|
30 Credits |
Optional |
- A study of a selection of topics centred around basic mathematical concepts and skills. For example: basic linear algebra, calculus, basic statistics, probability and fundamentals of Bayesian inference, basic set theory and information theory. Actual topics taught may vary from year to year.
- Instantiating some of the mathematical foundation as computational techniques. |
Applied Data Science and Analytics
|
15 Credits |
Optional |
This module provides a hands-on experience in all aspects of typical data science tasks. This module focuses on the practical aspects of Data Science, such as data retrieval and pre-processing, data analysis and modelling, and visualisation of the results. We will study typical data science workflows with the help of concrete use cases. Along the way, essential tools for data science are introduced. |
Wireless Mobile and Multimedia Networking
|
30 Credits |
Optional |
How can we cope with users and computers that move from place to place, and yet wish to remain in contact with the network? How can a network mix application with very different quality of service requirements?
This module looks at a range of wireless communications technologies, and addresses some of the problems of wireless mobile ad-hoc and wireless networks and addresses the problems that must be solved if we are to integrate the gamut of diverse network applications onto a single network infrastructure. This module exposes students to some of the most important developments in computer networking. A more detailed description of the module content is provided in the module delivery information for students. |