Computer Science (Software Engineering) MEng
2025-26 entryOur four year degrees are a one year extension to our BSc degrees which allows further specialisation. You will gain industrial experience and engage with real customers when you join Genesys, our student led software development organisation. In your fourth year you will learn about agile software engineering practices and make use of tools used in industry.
Key details
- A Levels A*AA; AAA
Other entry requirements - UCAS code G650
- 4 years / Full-time
- September start
- Accredited
- Find out the course fee
- Optional placement year
- Study abroad
Explore this course:
Course description
Why study this course?
Get hands-on practical experience by choosing our Genesys module. Support real customers to solve genuine problems, using agile software engineering and lean startup practice – preparing you for an exciting and varied career.
Professional, communication and presentation skills help to create more employable computer scientists and software engineers.
You'll have access to the latest hardware, software and operating systems, plus high-spec graphics computers and a robotics arena in our dedicated computer labs in The Diamond.
Our dedicated student welfare advisor is available to provide support, for example, if you are feeling down, overwhelmed or struggling to adjust to student life.
Learn the art of engineering complex software systems, and how to apply that knowledge to this ever-expanding industry.
Sheffield’s software engineering MEng gives you a solid grounding in the fundamentals of software engineering, as well as computer science and the opportunity to explore aspects of artificial intelligence.
The course not only teaches you state-of-the-art software design and programming technologies, but also lets you practise skills that employers want in every candidate – project management, teamwork and working with customers.
In your third year, you'll take a specialist module on software testing and analysis, giving you the skills to create robust software systems. Optional modules which cover topics such as software re-engineering, cybersecurity, and software for mobile devices, give you the scope to tailor your degree to your interests.
In your final year, you'll continue with advanced software engineering modules in Verification and Testing, Computer Security and Forensics, and you'll participate in Genesys – our student-led software development organisation – solving customers’ problems, using agile software engineering and lean startup practice.
This course is accredited by the British Computer Society. The courses fully meet the requirements for Chartered Information Technology Professional and Chartered Engineer.
Modules
UCAS code: G650
Years: 2022, 2023
Core modules:
- Introduction to Software Engineering
-
This module introduces the Software Engineering concepts that are needed to develop software systems that can meet basic functional requirements within a given problem domain. It covers the main steps in the process of developing such systems, from requirements analysis through to their implementation and testing. A major part of the module involves students working in teams to develop a web-based software system, which gives practical experience in teamwork and managing software projects and their products.
20 credits - Foundations of Computer Science
-
The course consists of (around) 10 blocks of 2-3 weeks work each. Each block develops mathematical concepts and techniques that are of foundational importance to computing. Lectures and problem classes will be used. The intention is to enthuse about these topics, to demonstrate why they are important to us, to lay the foundations of their knowledge and prepare students for future computing courses. It is not expected that the course will cover ALL of the maths that is needed later either in terms of depth or scope.
20 credits - Java Programming
-
This module introduces programming concepts through the Java programming language. Program design and the use of testing to drive program creation are also covered. Initial focus is placed on the structured aspects typical of many programming languages: the ideas of a sequence, selection and repetition. The object-oriented approach to building large software systems from components is then presented. Throughout the module, emphasis is placed on the practice of writing well-structured and readable programs to solve problems.
20 credits - Machines and Intelligence
-
This module provides an introduction to Artificial Intelligence, and to key concepts and problems in the field, such as whether a computer is capable of understanding, and whether humans should themselves be viewed as machines. It also provides a brief historical overview of the subject and reviews the state-of-the-art and open questions in some of the major sub-areas of AI, pointing out connections to research work in the Department. As well as providing a first encounter with the main issues that underlie attempts to create Artificial Intelligence, the module also has a more practical component that introduces algorithms and data structures for AI problem solving through practical programming examples, as well as hands-on experience with simple programming of robots. The emphasis here is on identifying the abstract nature of the problem that is to be solved, matching this to an appropriate algorithm or technique and implementing a solution. It also serves as an introduction to programming for research rather than for software engineering.
20 credits - Devices and Networks
-
This module runs throughout the academic year, starting in Autumn and ending in Spring. The module consists of two parts. In the first, important elements of computer architecture are covered including digital logic, computer arithmetic and instruction set architecture. The approach in the module is to show how the basic elements of a computer are constructed and combined to give sophisticated architectures that support accelerated performance via cache memory and pipelining. The second half of the module shows how computing devices can be connected into networks, and covers the principles of layered protocols, error detection/correction and reliable transmission over networks.
20 credits - Web and Internet Technology
-
This module is for students studying Computer Science as a main subject. The Web and the Internet are now pervasive in modern life, providing an information resource, and promoting novel, interactive solutions to computing-related activities. The main focus of the module is on practical use of HTML, CSS and JavaScript in front-end development of interactive websites. As part of this, the module covers responsive web design, accessibility and legal issues when creating websites and an introduction to information security.
10 credits - Introduction to Algorithms and Data Structures
-
Algorithms and algorithmic problem solving are at the heart of computer science. This module introduces students to the design and analysis of efficient algorithms and data structures. Students learn how to quantify the efficiency of an algorithm and what algorithmic solutions are efficient. Techniques for designing efficient algorithms are taught, including efficient data structures for storing and retrieving data. This is done using illustrative and fundamental problems: searching, sorting, graph algorithms, and combinatorial problems such as finding the shortest paths in networks.
10 credits - Global Engineering Challenge Week
-
The Faculty-wide Global Engineering Challenge Week is a compulsory part of the first-year programme. The project has been designed to develop student academic, transferable and employability skills as well as widen their horizons as global citizens. Working in multi-disciplinary groups of 5-6, for a full week, all students in the Faculty choose from a number of projects arranged under a range of themes including Water, Waste Management, Energy and Digital with scenarios set in an overseas location facing economic challenge. Some projects are based on the Engineers Without Borders Engineering for people design challenge*.
*The EWB challenge provides students with the opportunity to learn about design, teamwork and communication through real, inspiring, sustainable and cross-cultural development projects identified by EWB with its community-based partner organisations.
Core modules:
- Data Driven Computing
-
This module is intended to serve as an introduction to machine learning and pattern processing, but with a clear emphasis on applications. The module is themed around the notion of data as a resource; how it is acquired, prepared for analysis and finally how we can learn from it. The module will employ a practical Python-based approach to try and help students develop an intuitive grasp of the sophisticated mathematical ideas that underpin this challenging but fascinating subject.
20 credits - Systems Design and Security
-
This module provides a grounding in software systems design, highlighting security issues. Topics include: choice of software lifecycle, customer-developer interaction, requirements capture, information management, database design, functional design, design patterns, software architectures, user interfaces, data validation, software verification and testing. Security topics include: threats, countermeasures, policies and technologies. The lectures are complemented by an integrating team-project. This 20-credit unit prepares students to participate in the Software Hut (COM3420) in the Spring.
20 credits - Robotics
-
This module is concerned with the design and implementation of the technology underpinning contemporary robotics. The course has a multidisciplinary content spanning psychology, computer science and robotics.
20 credits - Logic in Computer Science
-
This module introduces the foundations of logic in computer science. The first part introduces the syntax and semantics of propositional and predicate logics, natural deduction, and notions such as soundness, completeness and (un)decidability. The second part covers applications in computer science and beyond, such as automated reasoning and decision procedures, modal and temporal logics for the verification of computing systems, and type systems for programming languages.
10 credits - Functional Programming
-
This module introduces the principles of functional programming, using the Haskell programming language. It introduces types and classes, function definitions, list comprehension, recursive and higher order functions, eager and lazy evaluation, and basic data types.
10 credits - Automata, Computation and Complexity
-
This module introduces the theoretical foundations for computing systems: finite state machines, pushdown automata, and Turing machines, along with the formal languages that can be recognised by these machine models.
20 credits
It also deals with the question 'What is computable?' and 'What is efficiently computable?' by showing when problems are computationally hard, and how to find algorithmic solutions to computationally hard problems. - Software Hut
-
The Software Hut (a microcosm of a real Software House) gives students an opportunity to experience the processes of engineering a real software system for a real client in a competitive environment. The taught element covers the tools and technologies needed to manage software development projects successfully and to deliver software products that meet both client expectations and quality standards. Topics that are put into practice include: the requirements engineering process; software modelling and testing; using specific software development framework(s); group project management; quality assurance; testing. Tutorials take the form of project meetings, and so are concerned with team management, conduct of meetings and action minutes.
20 credits - Engineering - You're Hired
-
The Faculty-wide Engineering - You're Hired Week is a compulsory part of the second year programme, and the week has been designed to develop student academic, transferable and employability skills. Working in multi-disciplinary groups of about six, students will work in interdisciplinary teams on a real world problem over an intensive week-long project. The projects are based on problems provided by industrial partners, and students will come up with ideas to solve them and proposals for a project to develop these ideas further.
Core modules:
- Dissertation Project
-
In the individual research project, you will complete a major original piece of software design, or an experimental investigation. This work will be reported formally in a research dissertation and also presented at a project presentation session, to which industrial representatives, students and academics are invited. The work will include an Interim report that consists of an initial survey and literature review. You will be engaged in a major piece of software development, or the design and execution of an empirical experiment. You will have regular meetings with your supervisor, who will advise on any problems you encounter. You will prepare an 7,000-14,000 word dissertation, which includes the material from the interim report, but also contains a complete design, implementation and evaluation of the results of your project. This may be assessed by oral examination.
40 credits - Accounting and Law for Engineers
-
The module is designed to introduce engineering students to key areas of accounting and legal risk that engineers should be aware of in their working environment. The module will draw directly on practical issues of budgeting, assessing financial risks and making financial decisions in the context of engineering projects and/or product development. At the same time, the module will develop students' understanding of the legal aspects of entering into contracts for the development and delivery of engineering projects and products, and enhance their awareness of environmental regulation, liability for negligence, intellectual property rights and the importance of data protection. Through a series of parallel running lectures in the two disciplines, the module will provide a working knowledge of the two areas and how they impinge on engineering practice.
10 credits - Software Testing and Analysis
-
This module introduces the problems and techniques of analysing and testing software systems. The module covers how to statically analyse software and how to dynamically test it. The module will teach different techniques and tools to thoroughly test software systems, and will teach how to automate testing tasks, including test generation. Finally, the module will cover techniques to measure and assess aspects of source code and software tests.
10 credits
Students should be aware that there are limited places available on this module.
Optional modules:
- 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.
10 credits - Computer Vision
-
This module provides a comprehensive introduction to computer vision. Major topics include image processing, detection and recognition, semantic understanding, photometric geometry, image registration, place recognition, and vision and video analysis. Students will learn the basic theories and fundamental topics of computer vision, the mainstream methods for core computer vision applications. Importantly, the students will also gain hands-on experience to solve real-life vision problems.
10 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 course focuses on modern quantitative techniques for text analysis and explores important models for representing and acquiring information from texts. Students should be aware that there are limited places available on this course
10 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. Students should be aware that there are limited places available on this course.
10 credits - Reinforcement Learning
-
This module aims to teach students the theory and implementation of reinforcement learning. Topics include: Supervised learning: the backpropagation algorithm (as prerequisite for Deep reinforcement learning). Reinforcement Learning: Temporal Difference Learning (Q learning, SARSA), Deep Reinforcement Learning, Advanced Topics. As well as the material taught in class, students are expected to self-study relevant books and research articles and produce reports in research article styles.
10 credits - Computer Security and Forensics
-
This module provides an introduction into computer security and forensics focussing on approaches and techniques for building secure systems and for the secure operation of systems. It aims to develop knowledge and understanding of fundamental principles of information security, develop familiarity with compromise of computer systems and what countermeasures can be adopted and provide practical experience of implementing secure systems. The module requires a solid understanding of mathematical concepts (e.g., modulo-arithmetic, complex numbers, group theory) and logic (set theory, predicate logic, natural deduction) a solid understanding of a programming language (e.g., Java, Ruby, or C), basic software engineering knowledge and an understanding of database and Web systems. Students should be aware that there are limited places available on this course.
10 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). Students should be aware that there are limited places available on this course.
10 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. Students should be aware that there are limited places available on this course.
10 credits - The Intelligent Web
-
This module is concerned with gaining knowledge and understanding of the opportunities and challenges of the intelligent Web. We will introduce, study and apply contemporary technologies such as: 1) The basic tools of the advanced Web and their implementation; 2) Offline and multimodal interaction; 3) Client server architectures; 4) Web 3.0 and the Web of Data. Students should be aware that there are limited places available on this course.
10 credits - The Internet of Things
-
Low cost networked computers add eyes and ears (or sensors) and arms, legs and voices (or actuators) to the Internet. These devices are then connected to on-line 'brains' (using big data, machine learning and analytics in the cloud). This field is called the Internet of Things (IoT). Will the result be a 'world robot'?! No matter, in a world of many more devices than people, engineers who know how the new tech works and how to secure it will be in high demand. The COM3505 module covers the context and history of the IoT, the hardware, communications protocols and security systems it relies on, and the cloud-side analytics that make sense of the data produced. It gives practical hands-on experience of common IoT devices (sensors, actuators, microcontrollers), and look at a range of commercial platforms. Each student is given an ESP32 wifi microcontroller to keep and we program live IoT applications using that device. Students will have the opportunity to use the Diamond electronics lab and the iForge project space to complete their own IoT device with a range of hardware and capabilities. [Students should be competent programmers to take this course, be ok using Git and the command-line, and be aware that there are limited places available.]
10 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 students 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.
10 credits - Bioinspired Computing
-
This module focuses on modern artificial intelligence (AI) techniques and their inspiration from biological systems. Examples include evolution, multicellular tissues, neural systems, the immune system and swarms, inspiring abstractions such as evolutionary or swarm-based optimization algorithms, neural computing, as well computational approaches to simulate real world systems, (e.g. cellular automata and agent-based models). Lectures introduce a range of AI and related approaches in the context of their relevant biological inspiration and also their potential application to real word problems. A selection of optimisation and simulation techniques are explored in more depth using Python via active learning in computer laboratories. There is an emphasis on applying the scientific approach to practical work within this module.
10 credits - Cyber Security Team Project
-
Cyber Security Team Project is a module that equips students with the knowledge needed to keep an organisation secure from today's cyber security threats and presents the necessary steps to take when a breach occurs.
10 credits
Using a combination of learning methods and teaching techniques such as project based learning, active learning and case studies, this module teaches cyber security management principles that are needed to secure the digital assets of an organisation. A major part of this module involves students working in teams to evaluate and develop secure policies and strategies to solve real-world cyber security issues for organisations.
Students should be aware that there are limited places available on this module. - Cognitive and Biomimetic Robotics
-
Cognitive robotics is the field of creating robots that think, perceive, learn, remember, reason and interact.
10 credits
Biomimetic robotics is the approach of designing robots using principles discovered in nature, including what we can learn from the evolution and development of natural intelligence in animals including humans.
This module will explore progress in developing cognitive and biomimetic robots, relating wider progress in artificial intelligence, machine learning, and cognitive science to the development of next generation robotic systems.
The practical component of the course will focus on programming biomimetic cognitive architectures for robots.
Students should be aware that there are limited places available on this module. - Managing Engineering Projects and Teams
-
This module provides you with an understanding of the significance of projects as an instrument of business success in engineering organisations. You will learn a range of project management tools, techniques and methodologies throughout the project life cycle. You will develop skills in defining, planning, delivering, and controlling engineering projects. You will also learn the roles and responsibilities of people within engineering projects and understand how to manage teams in engineering projects.
10 credits - 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.
10 credits - Advanced Algorithms
-
Algorithms and algorithmic problem solving are at the heart of computer science. This module, Advanced Algorithms, focuses on teaching efficient algorithm design and analysis for solving complex computational problems. It covers optimisation tools, various algorithmic techniques, and a number of modern computational models that deals with massive datasets - these are crucial for students who are aspiring researchers or industry professionals. The module integrates research-led teaching to introduce students to cutting-edge topics in algorithm design and optimisation theory. The students gain theoretical as well as practical skills relevant to research and industry demands, making them well-prepared for any career requiring a deep understanding of algorithms and their efficient implementation.
10 credits - Undergraduate Ambassadors Scheme in Computer Science
-
This module provides an opportunity for students to gain first-hand experience of computer science secondary education through a mentoring scheme with a teacher in a local school. Typically, each student will work with one class for half a day every week, for 10 weeks. The classes will vary from key stage 3 to sixth form. Students will be given a range of responsibilities from classroom assistant to the organisation and teaching of self-originated special projects. Only a limited number of places are available and students will be selected on the basis of their commitment and suitability for working in schools.
20 credits
Core modules:
- Genesys
-
This module involves students working with real customers and solving genuine problems, using agile software engineering and lean startup practices. Students work in teams to develop web applications as part of Genesys, supported by staff from epiGenesys.
45 credits
Optional modules:
- 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 course focuses on modern quantitative techniques for text analysis and explores important models for representing and acquiring information from texts. Students should be aware that there are limited places available on this course.
15 credits - Computer Security and Forensics
-
This module provides an introduction into computer security and forensics focussing on approaches and techniques for building secure systems and for the secure operation of systems. It aims to develop knowledge and understanding of fundamental principles of information security, develop familiarity with compromise of computer systems and what countermeasures can be adopted and provide practical experience of implementing secure systems. The module requires a solid understanding of mathematical concepts (e.g., modulo-arithmetic, complex numbers, group theory) and logic (set theory, predicate logic, natural deduction) a solid understanding of a programming language (e.g., Java, Ruby, or C), basic software engineering knowledge and an understanding of database and Web systems. Students should be aware that there are limited places available 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). Students 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. Students 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
1. Safety includes software and systems safety, methods of performing hazard analysis, human factors and the IEC 61508 standard.
2. Specification languages such as Statecharts.
3. Software engineering concepts focus on the software lifecycle, safe language subsets, software testing and maintenance.
4. The software testing part is concerned with advanced approaches to generating software tests.Students 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 nowadays 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. Students should be aware that there are limited places available on this course.
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. Students 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. Students should be aware that there are limited places available on this course.
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 the students with the course material. Students should be aware that there are limited places available on this course.
15 credits - Darwin Project
-
The Darwin research project provides the opportunity for students to engage in a substantial piece of research work. It is undertaken in groups. Unlike the individual project, it is not primarily concerned with software development, although software development may be involved as part of the process of carrying out the research, for instance to construct the 'experimental apparatus' required for it. Projects are suggested and supervised by School of Computer Sciences staff. Students form groups and choose a project which interests them (subject to numbers of students registered), then refine the scope of the research by conducting a thorough analysis of the topic area and formulating a solution also with the help of their supervisor. The project is developed under strong supervision and appropriate interim reports are produced and presented. The project culminates with the production of a publication of the research finding and a full report of the work carried out, as well as a final conference style presentation.
30 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
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.
Learning and assessment
Learning
Learning will be delivered through a combination of lectures, practical sessions, tutorials and seminars. You will also learn important group work skills and will have the opportunity to work with clients to solve real-world problems.
As well as formal teaching you will be expected to undertake independent study.
At the end of your third year you will submit a written dissertation and present your findings during a poster session. Your dissertation project could be supervised by one of our research staff or an external supervisor from industry.
Our courses are designed to challenge you and prepare you for a career in industry, research, or teaching.
Our inspirational staff are experts in their fields of research. 99% of our research is rated in the highest two categories in the Research Excellence Framework (REF 2021), meaning it is classed as world-leading or internationally excellent.
Assessment
You will be assessed using a mixture of exams/tests, coursework and practical sessions.
Programme specification
This tells you the aims and learning outcomes of this course and how these will be achieved and assessed.
Entry requirements
With Access Sheffield, you could qualify for additional consideration or an alternative offer - find out if you're eligible.
The A Level entry requirements for this course are:
A*AA; AAA
A*AA including Maths; AAA including Maths and Computer Science
- A Levels + a fourth Level 3 qualification
- AAA including Maths + A in a relevant EPQ; AAB including A in Maths and B in Computer Science + A in a relevant EPQ; AAA including Maths + A in AS or B in A Level Further Maths; AAB including A in Maths and B in Computer Science + A in AS or B in A Level Further Maths
- International Baccalaureate
- 38 with 6 in Higher Level Maths
- BTEC Extended Diploma
- D*DD in Engineering, Applied Science, IT or Computing + A in A Level Maths
- BTEC Diploma
- D*D in Engineering, Applied Science, IT or Computing + A in A Level Maths
- T Level
- Distinction in the Digital Production, Design and Development T Level, including grade A in the core component + A in A Level Maths
- Scottish Highers + 1 Advanced Higher
- AAAAA + A in Maths
- Welsh Baccalaureate + 2 A Levels
- A + A*A including Maths; A + AA in Maths and Computer Science
- Access to HE Diploma
- Award of Access to HE Diploma in a relevant subject, with 45 credits at Level 3, including 42 at Distinction (to include 18 credits in Maths), and 3 at Merit
The A Level entry requirements for this course are:
AAB; ABB
AAB including A in Maths; ABB including A in Maths and B in Computer Science
- A Levels + a fourth Level 3 qualification
- AAA including Maths + A in a relevant EPQ; AAB including A in Maths and B in Computer Science + A in a relevant EPQ; AAA including Maths + A in AS or B in A Level Further Maths; AAB including A in Maths and B in Computer Science + A in AS or B in A Level Further Maths
- International Baccalaureate
- 34 with 6 in Higher Level Maths
- BTEC Extended Diploma
- DDD in Engineering, Applied Science, IT or Computing + B in A Level Maths
- BTEC Diploma
- DD in Engineering, Applied Science, IT or Computing + B in A Level Maths
- T Level
- Distinction in the Digital Production, Design and Development T Level, including grade A in the core component + A in A Level Maths
- Scottish Highers + 1 Advanced Higher
- AAABB + A in Maths
- Welsh Baccalaureate + 2 A Levels
- B + AA including A in Maths; B + AB including A in Maths and B in Computer Science
- Access to HE Diploma
- Award of Access to HE Diploma in a relevant subject, with 45 credits at Level 3, including 39 at Distinction (to include 18 credits in Maths), and 6 at Merit
You must demonstrate that your English is good enough for you to successfully complete your course. For this course we require: GCSE English Language at grade 4/C; IELTS grade of 6.5 with a minimum of 6.0 in each component; or an alternative acceptable English language qualification
Equivalent English language qualifications
Visa and immigration requirements
Other qualifications | UK and EU/international
If you have any questions about entry requirements, please contact the school/department.
Graduate careers
School of Computer Science
Some of our graduates have gone on to become IT consultants, software engineers, software developers, project managers, and data scientists in companies such as Amazon, ARM, BT, Bank of America & BofA Securities, Goldman Sachs, Google, IBM, Microsoft, and Plusnet. Others have begun their research careers by starting a PhD.
School of Computer Science
National Student Survey 2023
Research Excellence Framework 2021
The Times and Sunday Times Good University Guide 2024
Here in Sheffield our world-class research is advancing our understanding of computer science, and leading to practical applications that are enhancing people’s lives. From cutting-edge artificial intelligence that could transform dementia treatment, to text engineering methods that fight the spread of disinformation online, our research is delivering tremendous impact.
Many of our lecturers are leading computer scientists with international reputations, and their research shapes and inspires what you will be taught. This means that what we teach you at Sheffield is right up to date. Also, through a research-led education we hope to inspire a sense of creativity and curiosity that will set you on a life-long path of learning and discovery.
As well as our first-class teaching, the hands-on practical skills and industry experience you’ll gain in Sheffield will pave the way for an exciting career. Every year our students go on to work for some of the biggest and most innovative companies in the world.
We teach using industry-standard tools so that you can hit the ground running, and we also help you to develop the problem solving and communication skills that employers really value. We also prepare you for making decisions that will affect others: it’s crucial that as a computer science professional you understand the ethical implications of your work and are mindful of its environmental impact.
Our department is a vibrant, diverse and supportive community of like-minded people. If you decide to join us at Sheffield, you’ll be welcomed as part of that community and presented with a multitude of opportunities for extracurricular activities. That is why studying in our department is an excellent investment in your future, whatever path you choose.
Your lectures, practical classes, tutorials and seminars are usually held on the University campus. The Diamond is a world-class building, home to all engineering undergraduates and where most of your practical sessions will take place. Our investment of £81m in the building and £20m for lab equipment is helping us to develop innovative teaching and learning experiences.
Dedicated teaching staff will support you and assist your development into a computer scientist of the future. We regularly host guest lectures from industry, with recent guests including Microsoft, Google, GitHub, IBM and ARM.
Facilities
We use a multitude of cutting edge hardware in our teaching. We have MiRo robots and Robotis turtlebots which are used to teach robotics and programming. These are also used in third year dissertation projects.
We have facilities and equipment exclusively for software development on mobile devices including phones and tablets.
As a computer science student within the Faculty of Engineering, you will have access to specialist facilities in our state-of-the-art hub, The Diamond. Here you will have access to the latest hardware, software and operating systems in our dedicated computer labs. Virtual Reality facilities, high-spec graphics PCs, a robot arena, media editing suites and video and podcast recording studios are all available.
Take one of our MComp or MEng degrees and you will have the opportunity to work in Genesys Solutions, the first student-run software development organisation in the UK, where you will pitch, develop and market ideas for a startup company.
School of Computer ScienceUniversity rankings
Number one in the Russell Group
National Student Survey 2024 (based on aggregate responses)
92 per cent of our research is rated as world-leading or internationally excellent
Research Excellence Framework 2021
University of the Year and best for Student Life
Whatuni Student Choice Awards 2024
Number one Students' Union in the UK
Whatuni Student Choice Awards 2024, 2023, 2022, 2020, 2019, 2018, 2017
Number one for Students' Union
StudentCrowd 2024 University Awards
A top 20 university targeted by employers
The Graduate Market in 2023, High Fliers report
A top-100 university: 12th in the UK and 98th in the world
Times Higher Education World University Rankings 2025
Student profiles
Fees and funding
Fees
Additional costs
The annual fee for your course includes a number of items in addition to your tuition. If an item or activity is classed as a compulsory element for your course, it will normally be included in your tuition fee. There are also other costs which you may need to consider.
Funding your study
Depending on your circumstances, you may qualify for a bursary, scholarship or loan to help fund your study and enhance your learning experience.
Use our Student Funding Calculator to work out what you’re eligible for.
Placements and study abroad
Placement
Study abroad
Visit
University open days
We host five open days each year, usually in June, July, September, October and November. You can talk to staff and students, tour the campus and see inside the accommodation.
Subject tasters
If you’re considering your post-16 options, our interactive subject tasters are for you. There are a wide range of subjects to choose from and you can attend sessions online or on campus.
Offer holder days
If you've received an offer to study with us, we'll invite you to one of our offer holder days, which take place between February and April. These open days have a strong department focus and give you the chance to really explore student life here, even if you've visited us before.
Campus tours
Our weekly guided tours show you what Sheffield has to offer - both on campus and beyond. You can extend your visit with tours of our city, accommodation or sport facilities.
Apply
The awarding body for this course is the University of Sheffield.
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.
Any supervisors and research areas listed are indicative and may change before the start of the course.