A computer science degree is the basis for a wide range of computer-based industry careers including roles as IT specialists, software developers and systems architects. Our course provides you with an understanding of the key principles of computer science, including computer systems design, implementation and usage, alongside the practical skills to develop programmed systems.
Our BSc in Computer Science will provide you with a thorough understanding of the key principles of computer science and provide you with highly sought after skills such as programming, system engineering, and project experience, which you will gain when working on both individual and group projects. We recognise the skills that employers are looking for and ensure you are equipped with the knowledge and experience to embark on a successful computer-based career.
You will develop a thorough grounding in the foundations of computer science through the use of project-led laboratory-based activities. Each project is carefully designed to allow you to learn at your own pace and to build important skills in a carefully-designed and progressive way. Your foundation skills will be complemented with knowledge and practical skills in systems engineering techniques typically used in industry.
After your second year you will have the opportunity to take an optional placement year in a computer-based industry. To support you financially while you benefit from industry experience, we will cover your tuition fees for the year.
In the final year of your degree, you'll be able to choose from a wide range of specialist topics in computer science, in addition to completing an individual project with a project supervisor who is a leader in their field.
In the first year of Computer Science, there are no modules or courses and all the activities run across various sessions during the week. The idea is that by employing a problem-driven approach you will gain the confidence needed to study independently.
You will work on three projects in your first year; the first one involves building a mixed software/hardware system using Arduino; the second project involves building a video game with a graphical interface; and the third project involves controlling a robot over the network to perform several tasks, such as line following and maze exploration. Optionally, you can choose to work on an independent project, such as building an autonomous robot for the Eurobot competition.
Each week consists of the following structured sessions: lecture, design workshop, programming workshop, physical computing workshop, synoptic workshop.
The module provides a firm basis for planning, programming and running distributed systems: how to design communicating processes using simple specification and graphical animation, and how to program concurrent programs. You will gain knowledge of the main concepts of distributed systems like processes, communication, and synchronization and their central properties like fault tolerance and security. You will understand typical problems with distributed applications like deadlocks and mutual exclusion and will know the principles of networks and how distributed systems run on them.
There are now a wide range of programming technologies associated with the web, creating a more interactive experience with cross platform capabilities. These applications allow access to backend resources from databases to media content. As the internet has increased in speed and accessibility, the software technologies have been developed to enable dynamic applications to be deployed. This module provides experience in the development of such software artifacts and an understanding of the technologies and model behind the web.
This module provides the core notions required to develop, with confidence, software for real applications that you are likely to meet in your placement year. The module covers the whole software development process from requirements elicitation, to analysis and design, development as testing, documentation, maintenance, and quality assurance. In addition, through group work, this module offers the opportunity to develop a range of professional skills needed to work successfully as a member of a project team. You will learn to appreciate the importance of ethical, legal, organisational and environmental issues and business principles. Upon completion of this module, you will have practical knowledge of a number of tools to support all the steps involved in software development, project planning and project management. You will be able to assess the suitability of a range of solutions to contribute effectively to the planning, development, and evaluation of software systems.
This module provides you with the opportunity to demonstrate the theoretical knowledge and practical skills you have developed whilst studying this degree by undertaking a substantial piece of individual project work. The project will involve the production of a system that is expected to be of considerably greater scope than any of the coursework encountered in the taught part of the programme and demonstrates a significant level of scholarship.
The aim of this module is to introduce a range of AI theories and techniques, including the most commonly used. This will extend to the ability to implement these techniques, and you will extend your own development skills.
The aim of this module is to examine the concepts and techniques needed in the construction of interactive graphics and visualisation systems covering advanced graphics programming techniques. It will cover theory and mathematics as required and it aims to provide you with practical experience via significant individual project work developing 2D and 3D programs using an industry standard environment.
This module aims to give you an understanding of underpinning concepts and practical techniques relevant when considering humans, both in the organisation of design and design processes, and as a way of incorporating a user perspective in the design of products and services.
Interactive technologies are continually developing, and new devices that offer novel ways of interacting with computer-based systems are constantly finding their way into our homes, workplaces and lives. On this module, you will encounter and study a range of innovative and emerging interaction technologies. The module affords an opportunity to become familiar with the technologies and devices themselves as well as ways of analysing their applicability for particular uses and situations, and approaches evaluating their use.
By understanding how computing devices and products are used and studying the ways that usage changes over time, you will gain a critical awareness of the processes by which interactive products gain in popularity and become successful. After completing the module, you will be better equipped to anticipate and select the successful interaction technologies of the future, analyse situations of use and potential users, design using the latest interaction technology, and evaluate novel and innovative designs.
The aim of this module is to develop an appreciation and understanding of system modelling and analysis techniques in three different, yet related areas in computer science. This topic provides you with an opportunity to study some of these techniques, evaluate their effectiveness and make the comparison between classical and quantum information processing. You will have an opportunity to apply model checking techniques in a practical setting, evaluate their effectiveness and prepare them for industry or further study. You will also study the application of quantum information processing to security by introducing quantum key distribution as well as the application of model checking to quantum security protocols.
The aim of this module is to learn the underlying theories for Social Network Analysis (SNA) and Visual Analytics (VA). You will then apply this theory to produce analysis on Social Media, such as Consumer Generated Websites, Information in Organisations, e.g. email, and information related to criminal and digital investigations.
The aim of this module is to understand and appreciate the ethical implications and social impact of current technologies, to have a working knowledge of the legislation that applies in this area, and to apply expertise in a professional way. This module will encourage you to develop an awareness of your role in the implementation of new technologies, and the knowledge and skills necessary for a professional approach. The module will take an ethical perspective to computer technology, focusing on UK legislation and standards as they relate to IS practice and will include considerations for design and the responsibilities and requirements of the IT profession.
This module aims to introduce the Open Source software ecosystem. A range of issues involving Open Source will be discussed, both technical (the Open Source development model) and non-technical (legal, ethical and political issues). In order to gain hands-on experience, you will also participate in an existing Open Source project.
This module will examine the different notions of correctness relevant to computer systems, and how these are applied to the different parts of a computer system. Automatic and user-guided methods that attempt to find possible problems within systems will be covered and demonstrated on practical examples. Also, methods for ensuring that no problems can possibly exist within a system design will be examined and applied.
This module aims to teach the fundamentals of computing combined with analytical (logical) skills applied to conceptual issues originating in theoretical and applied computer science. By locating computing devices in their structural and historical evolution and by learning the epistemic and ontological principles that define Computer Science, you will gain critical awareness of the processes by which computing has become an essential aspect of our lives and will understand how this subject is located with respect to other sciences.
This module aims to introduce software of MATLAB to perform basic tasks of image processing, including enhancement, segmentation, and measurement. In addition, this module will have a focus on image search, classification and retrieval as well as on applications to a number of medical imaging modalities, including x-ray, computerised tomography (CT), magnetic resonance (MR), echocardiography (ultrasound video images) and retinal imaging.
The central theme of this module is to equip students with the skills necessary to design and implement network infrastructures to support industrial communication, and to integrate Industry 4.0 enabled machines to facilitate a Cyber-Physical Factory. In doing so, students will embrace the practice of setting up TCP/IP communication between modules, IP-address design and allocation, secure wireless LAN communication, switching and routing services to support communication, deploy VPN for remote services, and to explore the integration of the CP Factory with the Internet of Things.
This module aims to provide an overview of the fundamental principles used in the emerging area of Ubiquitous Computing. These fundamental concepts will be illustrated with examples and small projects. You will be requested to write essays and develop small projects proposals to show your understanding of the module.
This module aims to teach you software design of the sub-systems of robots and how to integrate them into a reliable and efficient robotic system, via a series of closely connected projects. You will develop the practical capability to design a robot system for real application. Within the lab sessions, you will gain experiential understanding of the effects the sub-system design could have on the whole system.
You can find more information about this course in the programme specification. Module and programme information is indicative and may be subject to change.
Our BSc Computer Science degree prepares you for a wide range of IT-based careers. Career prospects and the range of potential employers will be vast across the private, public and not-for-profit sectors. The average full-time salary for graduates from this group was £24,000. Based on data from the respondents of the 2009-10 Destination of Leavers in Higher Education survey, six months after graduating 75% Computing and Multimedia Technology graduates were in employment or further study.
We are seeking BCS (British Computer Society) accreditation for this course and you will be eligible for BCS membership retrospectively when it is awarded.
Start: January 2018 for Year 3 entry only, October 2018 for full degree, EU/International induction: September 2018
Duration: 3 years full-time, 4 years with placement, Usually 5 years part-time
Code: G522
Start: Autumn 2018
Duration: BSc: 3 years full-time, 4 years with placement, 6 years part-time, MSci: 4 years part-time, 5 years with placement, 8 years part-time
Code: BSc: G111, MSci: G11A
Start: October 2018, EU/International induction: September 2018
Duration: 3 years full-time, 4 years with placement, Usually 5 years part-time
Code: I900