Computer Science BSc
Department of Computer Science
You are viewing this course for 2021-2022 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.
Our BSc courses are 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.
The modules listed below are examples from the last academic year. There may be some changes before you start your course. For the very latest module information, check with the department directly.
Choose a year to see modules for a level of study:
UCAS code: G402
- 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
- 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
- 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 subareas 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 which 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
- 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 shortest paths in networks.10 credits
- Web and Internet Technology
- Global Engineering Challenge Week
The Faculty-wide Global Engineering Challenge Week is a compulsory part of the first-year programme, and 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 six, for a full week, all students in the Faculty choose from a number of projects arranged under a range of themes including Water, ICT, Waste Management and Energy with scenarios set in a developing country. Some projects are based on the Engineers Without Borders Challenge* and other projects have been suggested by an academic at the University of Makerere in Uganda (who is involved in developing solutions using IT systems for health, agriculture and resource problems in developing countries). Students are assessed on a number of aspects of being a professional engineer both by Faculty alumni and a number of local industrial engineers.*The EWB Challenge is a design program coordinated internationally by Engineers Without Borders Australia and delivered in Australian, New Zealand, British and Irish universities. It provides students with the opportunity to learn about design, teamwork and communication through real, inspiring, sustainable and cross-cultural development projects. By participating in the EWB Challenge students are presented with a fantastic opportunity to design creative solutions to problems identified by real EWB projects. Each year, the EWB Challenge design brief is based on a set of sustainable development projects identified by EWB with its community-based partner organisations. http://www.ewb-uk.org/ewbchallenge
- 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
- 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
- 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
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
- 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 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
- Systems Design and Security
This module is concerned with the software systems design process, including security issues. It covers the appropriate choice of software lifecycle model, the interactions between developer and customer, the conceptual management of information from requirements through to detailed design, the development of an efficient and secure database, the design of robust user interfaces, the validation and protection of stored data, and associated techniques to counter common security threats.The two assessments will be: an integrating group project, connecting user interfaces, business processing and data storage; and an individual MOLE examination. These will be weighted equally.Developing further the Software Engineering theme at level 1 (particularly COM1001 and COM1003, but also COM1008), this 20-credit unit prepares students to participate in the Software Hut (COM3420) in the Spring.20 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
- 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
- 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 some of the key financial and legal issues that engineers are likely to encounter 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¿ 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, data protection and intellectual property rights. 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
- 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 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
- 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
- Advanced Algorithms
Algorithms and algorithmic problem solving are at the heart of computer science. This module teaches the design and analysis of advanced efficient algorithms for solving computational problems. Students learn about general algorithmic tools for solving a variety of optimisation problems efficiently, and how to design algorithms for challenging problems. A major focus of this module will be on research-led teaching, introducing students to cutting-edge research topics in the theory of algorithms.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
- Cognitive and Biomimetic Robotics
Cognitive robotics is the field of creating robots that think, perceive, learn, remember, reason and interact. 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.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.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). The lab sessions require a basic command of Linux in general and the command line (shell) in particular.Students should be aware that there are limited places available on this course.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 todays cyber security threats and presents the necessary steps to take, when a breach occurs. 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.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. 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.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 use MATLAB to simulate and explore the dynamics of computational models, using a variety of examples drawn from both natural systems. Students should be aware that there are limited places available on this course.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
- 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
- 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
- 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
- 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 will cover 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 will give practical hands-on experience of common IoT devices (sensors, actuators, microcontrollers), and look at a range of commercial platforms. Each student will be given an ESP32 wifi microcontroller and we will program live IoT applications using that device. Students will have the opportunity to use the Daimond electronics lab and the iForge project space to complete their own IoT device with a range of hardware and capabilities. 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 pi-calculus 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
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 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 inc A in Maths; ABB inc A in Maths and B in Computer Science
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 Maths + B in a relevant EPQ; ABB, including Maths and Computer Science + B in a relevant EPQ; AAB, including Maths + A in AS or B in A Level Further Maths; ABB in Maths and Computer Science + A in AS or B in A Level Further Maths
International Baccalaureate | 36 with 6 in Higher Level Maths; IB 34 overall with 6 in Higher Level Maths and Computer Science 34 with 6 in Higher Level Maths; 33 with 6 in Higher Level Maths and 5 in Higher Level Computer Science
BTEC | DDD in Engineering, IT or Computing + A in A Level Maths DDD in Engineering, 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, including Maths and Computer Science B+AA including Maths; B+AB including A in Maths and B in Computer Science
Access to HE Diploma | 60 credits overall in a relevant subject with 45 at level 3 including 39 at Distinctions (including 18 credits in Mathematics) and 6 at Merit. Applicants are considered individually. 60 credits overall in a relevant subject with 45 at level 3 including 36 at Distinctions (including 18 credits in Mathematics) 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 customers 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 will all be 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. An investment of £81m for the building and £20m for lab equipment highlights our commitment to developing innovative learning and teaching.
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 2021
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 2019, 2018, 2017
No 1 in the north for graduate employment
The Times and Sunday Times Good University Guide 2020
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.