Computer Science BSc
Department of Computer Science
You are viewing this course for 2022-23 entry.
Through the study of computer science, you'll learn how to understand the theoretical issues underlying a problem and how to engineer a solution.
You can experiment with speech recognition, voice synthesis, text summarisation, machine translation, robot learning and control, computational biology or virtual reality.
As well as learning to program and think analytically, you'll be encouraged to work in teams and develop your communication skills.
In the third year, you'll complete a dissertation project, giving you scope for creative and intellectual input.
This course is accredited by the British Computer Society. The courses fully meet the requirements for Chartered Information Technology Professional and partially meet the requirements for Chartered Engineer.
There may be some changes before you start your course. For the very latest module information, check with the department directly.
UCAS code: G402
Years: 2021, 2022
- 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
- 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.
- 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
This module is concerned with the design and implementation of effective human-machine interaction and the technology underpinning contemporary robotics. These areas intersect in the field of human-robot interaction. The course has a multidisciplinary content spanning psychology, human factors, 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 mathematical and logical foundations and tools for modelling and analysing computing systems, including state machines, formal languages, logics, proof systems, and proof search procedures.20 credits
- 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 etc. 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.
- 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
- Finance and Law for Engineers
The module is designed to introduce engineering students to key areas of financial and legal risk that engineers should be aware of in their working environment. The module will draw directly on practical issues of budgeting, raising finance, 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's understanding of the legal aspects of entering into contracts for the development and delivery of engineering projects and products and an 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. There will be a heavy emphasis on group working, report writing and presentation as part of the assessment supplemented by online exercises and an individual portfolio.10 credits
- Modelling and Simulation of Natural Systems
This unit 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 unit, students will explore and understand both modelling approaches. They will gain knowledge of the assumptions underlying these models, their limitations, and how they are derived. Students will learn how to simulate and explore the dynamics of computational models, using a variety of examples mostly drawn from natural systems. Students should be aware that there are limited places available on this course.10 credits
- Computer Vision
This module provides a comprehensive introduction to computer vision10 credits
and practical skills for solving real-world applications.
- 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 course10 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
- Adaptive Intelligence
This course will examine the theme of bio-inspired Machine Learning and in particular of Unsupervised and Reinforcement Learning in Neural Networks. The first half of the course covers Unsupervised algorithms (Clustering, Principal Component Analysis) that could potentially have biological counterparts in the human or animal brain. The second half of the course introduces the theory of Reinforcement Learning in a simple and intuitive way, and more specifically Temporal Difference learning and the SARSA algorithm. It also discusses state-of-the-art methods (Deep Reinforcement Learning).10 credits
- Computer Security and Forensics
This module provides, in general, an introduction into computer security and forensics. In particular, this module focuses on approaches and techniques for building secure systems and for the secure operation of systems.10 credits
The module complements the mathematics module MAS345 and requires a solid understanding of mathematical concepts (e.g., modulo-arithmetic, complex numbers, group theory) and logic (set theory, predicate logic, natural deduction) as, e.g., taught in the modules COM365, COM1001, and COM2003). Moreover, the module requires 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, as, e.g., taught in the modules COM1003, COM1008, COM1009, COM2001, COM6471, and COM6102).
Students should be aware that there are limited places available on this course.
- 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 course is concerned with getting acquainted with the present and future of the intelligent Web. We will read and discuss both introductory descriptions and cutting-edge research papers. Topics will include: 1) Basic technologies for searching and mining the WWW2) Large scale methodologies for the Web (e.g. Mapreduce) 3) Client server architectures4) Advanced mobile Web apps5) Web 2.0 and Web 3.0 concepts, including mining social media (e.g. Twitter and Facebook) 5) The Web of Data and the Semantic Web.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.
- 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
- Managing Engineering Projects and Teams
The module is designed to introduce you to one of the key skills needed in your study and work. You will learn why projects are a key feature of engineering environments. You will also be introduced to the fundamentals of project management concepts and its terminologies. In addition, you will learn how to plan a project and deliver it for its successful completion.10 credits
It will introduce project management topics such as planning, scoping, scheduling, resources, cost and constraints. Additionally, you will develop an awareness of the importance of people for successful project delivery in practice, including stakeholders and team dynamics.
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. We are no longer offering unrestricted module choice. If your course included unrestricted modules, your department will provide a list of modules from their own and other subject areas that you can choose from.
Learning and assessment
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 the project 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.
You will be assessed using a mixture of exams/tests, coursework and practical sessions.
This tells you the aims and learning outcomes of this course and how these will be achieved and assessed.
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:
AAA, including Maths; AAB, including Computer Science and A in Maths
The A Level entry requirements for this course are:
AAB, including A in Maths; ABB, including Computer Science and A in Maths
A Levels + additional qualifications | AAB, including A in Maths + B in a relevant EPQ; ABB, including Computer Science and A in Maths + B in a relevant EPQ; AAB, including A in Maths + A in AS or B in A Level Further Maths; ABB, including Computer Science and A in Maths + A in AS or B in A Level Further Maths AAB, including A in Maths + B in a relevant EPQ; ABB, including Computer Science and A in Maths + B in a relevant EPQ; AAB, including A in Maths + A in AS or B in A Level Further Maths; ABB, including Computer Science and A in Maths + A in AS or B in A Level Further Maths
International Baccalaureate | 36, with 6 in Higher Level Maths; 34, with 6 in Higher Level Maths and 5 in Computer Science 34, with 6 in Higher Level Maths; 33, with 6 in Higher Level Maths and 5 in Computer Science
BTEC | DDD in Engineering, Applied Science, IT or Computing + A in A Level Maths DDD in Engineering, Applied Science, IT or Computing + B in A Level Maths
Scottish Highers + 1 Advanced Higher | AAAAB + A in Maths AAABB + A in Maths
Welsh Baccalaureate + 2 A Levels | A + AA, including Maths; B + AA in Maths and Computer Science B + AA, including Maths; B + A in Maths and B in Computer Science
Access to HE Diploma | 60 credits overall in a relevant subject, with 45 credits at Level 3, including 39 at Distinction (to include 18 credits in Maths), and 6 at Merit. Applicants are considered individually 60 credits overall in a relevant subject, with 45 credits at Level 3, including 36 at Distinction (to include 18 credits in Maths), and 9 at Merit. Applicants are considered individually
Mature students - explore other routes for mature students
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
If you have any questions about entry requirements, please contact the department.
Department of Computer Science
We're the first computer science department in the UK to launch its own student-run software company, Genesys. Choose Sheffield and you'll develop skills in programming, teamwork, communication, systems design, problem solving, and learn about current software engineerng industry practices.
Our courses are designed to challenge you and prepare you for a career in industry, commerce, research, teaching or management. Our inspirational staff are experts in their fields of research and we are ranked 5th out of 89 computer science departments in the UK for research excellence. What we teach you is relevant today and tomorrow.
During your degree you'll work on real projects for real clients as part of core and optional modules.
As well as lots of practical experience, we'll give you the first-rate scientific grounding you'd expect from a leading Russell Group research university. You can specialise in areas including computer security, web development and mobile apps, robotics and machine learning, speech and language technology, or 3D graphics and virtual reality.
Take one of our four-year MComp degrees and you can participate in Genesys as part of your course. Genesys was the first student-led software development organisation in the UK and will give you the opportunity to gain real industrial experience with a great deal of personal responsibility.
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 have guest lecturers from industry including Microsoft, Google, GitHub, IBM and ARM.
You will have access to cutting edge facilities in The Diamond including virtual reality facilities, high-spec graphics PCs and a robot arena. Our computer suites are equipped with the latest hardware, software and operating systems.
Why choose Sheffield?
The University of Sheffield
A top 100 university 2022
QS World University Rankings
Top 10% of all UK universities
Research Excellence Framework 2014
No 1 Students' Union in the UK
Whatuni Student Choice Awards 2020, 2019, 2018, 2017
Department of Computer Science
National Student Survey 2019
Research Excellence Framework 2014
Department 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 Merrill Lynch, Goldman Sachs, Google, IBM, Microsoft, and Plusnet. Others have begun their research careers by starting a PhD.
Fees and funding
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.
University open days
There are four open days every year, usually in June, July, September and October. You can talk to staff and students, tour the campus and see inside the accommodation.
At various times in the year we run online taster sessions to help Year 12 students experience what it is like to study at the University of Sheffield.
If you've made an application to study with us, we'll invite you to one of our applicant days, which take place between November and April. These applicant 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 run regularly throughout the year, at 1pm every Monday, Wednesday and Friday.
Apply for this course
Make sure you've done everything you need to do before you 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.