Explore this course:
Apply now for 2025 entry or register your interest to hear about postgraduate study and events at the University of Sheffield.
Advanced Computer Science
School of Computer Science,
Faculty of Engineering
Course description
Turn your fascination with how things work into a successful career in business or industry. We’ll give you an advanced education in the most up-to-date aspects of computer science and software engineering, informed by our wide-ranging research interests. Innovative project work will teach you how to apply your knowledge in the real world.
Accreditation
This course is accredited by the British Computer Society (BCS). The course partially meets the requirements for Chartered Information Technology Professional (CITP) and partially meets the requirements for Chartered Engineer (CEng).
Modules
Core modules:
- Team Software Project
-
This team project aims to provide insights and wider context for the more practical aspects of the taught modules, and to provide students with experience of working in teams to develop a substantial piece of software.
15 credits - Object Oriented Programming and Software Design
-
This module presents the object-oriented approach to building large software systems from components in the Java Programming Language. It assumes prior knowledge of imperative programming. Large scale program design and implementation issues are covered, using the Java Application Programmer's Interface, including the AWT, Swing and the Java Collections Framework. Topics include: data and procedural abstraction, collection interfaces and implementations, the event-driven model of computation, user interface components, streams and files, documentation styles with the Unified Modelling Language (UML).
15 credits - Professional Issues
-
This module aims to enable students to recognise the legal, social, ethical and professional issues involved in the exploitation of computer technology and be guided by the adoption of appropriate professional, ethical and legal practices. It describes the relationship between technological change, society and the law, including the powerful role that computers and computer professionals play in a technological society. It introduces key legal areas which are specific and relevant to the discipline of computing (e.g., intellectual property, liability for defective software, computer misuse, etc) and aims to provide an understanding of ethical and societal concepts that are important to computer professionals, and experience of considering ethical dilemmas.
15 credits - Dissertation Project
-
For your individual project, you can choose from a wide range of possibilities in many different environments both within and outside the University. The project is completed during the summer, and you will have a personal academic supervisor to guide you during this period.
60 credits
Optional modules - examples include:
- Modelling and Simulation of Natural Systems
-
This module will provide a practical introduction to techniques used for modelling and simulating dynamic natural systems. Many natural systems can be modelled appropriately using differential equations, or individual based methods. In this module, you will explore and understand both modelling approaches. You will gain knowledge of the assumptions underlying these models, their limitations, and how they are derived. You will learn how to simulate and explore the dynamics of computational models, using a variety of examples mostly drawn from natural systems. At the end of the module, we will introduce basic recurrent neural networks as examples of dynamical systems with multiple timescales. You should be aware that there are limited places available on this course.
15 credits - Text Processing
-
This module introduces fundamental concepts and ideas in natural language text processing, covers techniques for handling text corpora, and examines representative systems that require the automated processing of large volumes of text. The module focuses on modern quantitative techniques for text analysis and explores important models for representing and acquiring information from texts. You should be aware that there are limited places available on this course.
15 credits - Theory of Distributed Systems
-
The aim of this module is to set out a strong theoretical basis for the analysis and design of concurrent, distributed and mobile systems. We will use the process calculi to model and reason about complex systems, studying both its formal semantics and its many uses, via a number of examples. You should be aware there are limited places on this course.
15 credits - Speech Processing
-
This module aims to demonstrate why computer speech processing is an important and difficult problem, to investigate the representation of speech in the articulatory, acoustic and auditory domains, and to illustrate computational approaches to speech parameter extraction. It examines both the production and perception of speech, taking a multi-disciplinary approach (drawing on linguistics, phonetics, psychoacoustics, etc.). It introduces sufficient digital signal processing (linear systems theory, Fourier transforms) to motivate speech parameter extraction techniques (e.g. pitch and formant tracking). You should be aware that there are limited places available on this course.
15 credits - 3D Computer Graphics
-
This module is an introduction to the techniques used in modern 3D computer graphics. It deals with fundamental techniques that are the basis of work in a range of industries, e.g. entertainment and computer-aided design. Both basic and advanced topics concerned with the production of images of abstract 3D objects are covered, including: 3D representations and manipulations in graphics, light reflection models, realism techniques such as shadows and textures, ray tracing and 3D animation. You should be aware that there are limited places available on this course.
15 credits - Testing and Verification in Safety-Critical Systems
-
This module provides an introduction to the processes and problems of building complex software such as for use in aerospace applications. Topics covered can be split into four major groups: safety, specification languages, concepts of software engineering, different methods of software testing. A substantial amount of time will be spent on the ideas of software testing and specific testing techniques.
15 credits
a. Safety includes software and systems safety, methods of performing hazard analysis, human factors and the IEC 61508 standard.
b. Specification languages such as Statecharts.
c. Software engineering concepts focus on the software lifecycle, safe language subsets, software testing and maintenance.
d. The software testing part is concerned with advanced approaches to generating software tests. You should be aware that there are limited places available on this course. - Software and Hardware Verification
-
This module introduces state-of-the-art software and hardware verification techniques which are widely used in industry. They are particularly important in safety-critical applications, where system failures can not be tolerated. Designing high quality dependable computing systems is widely believed to be the main challenge in Computer Science. Particular focus is on protocol verification and hardware design verification by model checking and program verification by formalisms such as Hoare logics. These techniques presume formal system specifications and use automated tools for analysing whether a system satisfies the properties required or imposed. You should be aware that there are limited places available on this module.
15 credits - Machine Learning and Adaptive Intelligence
-
The module is about core technologies underpinning modern artificial intelligence. The module will introduce statistical machine learning and probabilistic modelling and their application to describing real-world phenomena. The module will give students a grounding in modern state-of-the-art algorithms that allow modern computer systems to learn from data. It has a considerable focus on the mathematical underpinnings of key ML approaches, requiring some knowledge of linear algebra, differentiation and probability.
15 credits
Students should be aware that there are limited places available on this module. - Software development for mobile devices
-
This module aims to provide a thorough grounding in the principles of software development for mobile devices. The Android platform will be used as an example, although the module emphasises general principles that are common across all mobile platforms. An important aim of the module is to demonstrate the real-world application of object-oriented programming principles and design patterns in software for mobile devices. Students undertake a substantial software implementation project, working in teams.
15 credits - Speech Technology
-
This module introduces the principles of the emergent field of speech technology, studies typical applications of these principles and assesses the state of the art in this area. You will learn the prevailing techniques of automatic speech recognition (based on statistical modelling); will see how speech synthesis and text-to-speech methods are deployed in spoken language systems; and will discuss the current limitations of such devices. The module will include project work involving the implementation and assessment of a speech technology device. You should be aware that there are limited places available on this module.
15 credits - Natural Language Processing
-
This module provides an introduction to the field of computer processing of written natural language, known as Natural Language Processing (NLP). We will cover standard theories, models and algorithms, discuss competing solutions to problems, describe example systems and applications, and highlight areas of open research. You should be aware that there are limited places available on this module.
15 credits - Network Performance Analysis
-
This module considers the performance of computer networks from a statistical aspect, using queuing theory. It is shown that the performance of a computer network depends heavily on the traffic flow in the network, and different models of traffic and queues are used. These include single-server queues, multiple server queues, and the concept of blocking is discussed. Although the analysis is entirely statistical, all the relevant background is provided in the lectures, such that the course is entirely self-contained. Problem sheets are provided in order to assist you with the course material. You should be aware that there are limited places available on this module.
15 credits - Parallel Computing with Graphical Processing Units (GPUs)
-
Accelerator architectures are discrete processing units which supplement a base processor with the objective of providing advanced performance at lower energy cost. Performance is gained by a design which favours a high number of parallel compute cores at the expense of imposing significant software challenges. This module looks at accelerated computing from multi-core central processing units (CPUs) to graphics processing unit (GPU) accelerators with many TFlops of theoretical performance. The module will give insight into how to write high performance code with specific emphasis on GPU programming with NVIDIA CUDA GPUs. A key aspect of the module will be understanding what the implications of program code are on the underlying hardware so that it can be optimised. Students should be aware that there are limited places available on this course.
15 credits - Software Reengineering
-
Software development often involves the improvement and adaptation of “legacy systems” – well-established, business-critical software systems that might have become difficult to maintain over time. This module introduces the skill-set that is required to get to grips with such systems. It teaches you how to reverse-engineer and appraise complex, unwieldy systems by implementing source code and execution analysis techniques. It also presents a range of strategies that can be used to adapt and reengineer such systems to improve their quality and viability.
15 credits
The content of our courses is reviewed annually to make sure it's up-to-date and relevant. Individual modules are occasionally updated or withdrawn. This is in response to discoveries through our world-leading research; funding changes; professional accreditation requirements; student or employer feedback; outcomes of reviews; and variations in staff or student numbers. In the event of any change we'll consult and inform students in good time and take reasonable steps to minimise disruption.
Open days
An open day gives you the best opportunity to hear first-hand from our current students and staff about our courses.
Open days and campus tours
Duration
1 year full-time
Teaching
We use lectures, tutorials and group work.
Assessment
Assessment is by formal examinations, coursework assignments and a dissertation.
School
School of Computer Science
Our masters courses at the University of Sheffield cover both the strong theoretical foundations and the practical issues involved in developing software systems in a business or industrial context.
Our graduates are highly prized by industry, and provide the opportunity for you to gain an advantage in the job market, whether in the UK or overseas.
Although it is possible to discuss many of the practical issues involved in industrial applications in lectures and seminars, there is no substitute for first-hand experience.
We have a unique track record in developing innovative project-based courses that provide real experience for computing students, and this experience is embodied in our MSc courses.
Our MSc programmes last 12 months, and begin in late September. You will study taught modules during two 15-week semesters. Your work is assessed either by coursework or by formal examination. During the summer you complete an individual dissertation project, which may be based within the University or at the premises of an industrial client.
Entry requirements
Minimum 2:1 undergraduate honours degree in a relevant subject.
Subject requirements
We accept degrees in the following subject areas:
- Computer Engineering
- Computer Science
- Computer Technology
- Computing
- Information Technology
- Software Engineering
English language requirements
IELTS 6.5 (with 6 in each component) or University equivalent.
If you have any questions about entry requirements, please contact the school/department.
Fees and funding
Apply
You can apply now using our Postgraduate Online Application Form. It's a quick and easy process.
Contact
msc-compsci@sheffield.ac.uk
+44 114 222 1800
Any supervisors and research areas listed are indicative and may change before the start of the course.
Recognition of professional qualifications: from 1 January 2021, in order to have any UK professional qualifications recognised for work in an EU country across a number of regulated and other professions you need to apply to the host country for recognition. Read information from the UK government and the EU Regulated Professions Database.