You will select the majority of your modules from an extensive list of options, alongside core modules in professional ethics and computer security. Options may include machine learning, mobile app development, intelligent agents, and computer graphics.
You can also take part in a large individual dissertation project, agreed in discussion with a supervisor. This will allow you to further specialise in an area of interest related to the school’s world-leading research activities such as computer vision, artificial intelligence, robotics, virtual/mixed reality, and interaction design.
Individual Dissertation Single Honours
Through a one hour lecture and a tutorial with your supervisor each week, you’ll develop your own independent research project and written report. Topics can range from purely theoretical studies to practical work building a system for a third party.
Computers in the World
The module looks broadly into the impact that computer systems have in society and the implications of this from the perspective of a computer scientist, while considering a range of legal, ethical, professional and social issues. The module covers topics such as ethics, critical thinking, professionalism, privacy, intellectual and intangible property, cyber-behaviour, accountability, safety, dependability and reliability, all within the context of computer systems development. You will spend one hour per week in lectures and one hour per week in group-based workshops for this module.
Computability
You’ll begin by considering the attempts to characterise the problems that can theoretically be solved by physically-possible computational processes.
You’ll then consider the area of complexity theory, looking at whether or not problems can be solved under limitations on resources such as time or space. A key topic is an examination of the classes P and NP and the definition of the term NP-complete.
Computer Security
Spending four hours a week in lectures and computer classes, you’ll cover the following topics:
- security of the computer
- security of networks
- security and the internet
- software and hardware security
- mobile security
- basic cryptography
Software Quality Management
Through a two hour lecture each week, you’ll be introduced to concepts and techniques for software testing and will be given an insight into the use of artificial and computational intelligence for automated software testing. You’ll also review recent industry trends on software quality assurance and testing.
Symbolic Artificial Intelligence
This module examines how knowledge can be represented symbolically and how it can be manipulated in an automated way by reasoning programs.
Some of the topics you’ll cover include:
- first order logic
- resolution
- description logic
- default reasoning
- rule-based systems
- belief networks
Machine Learning
Providing an introduction to machine learning, pattern recognition, and data mining techniques, this module will enable you to consider both systems which are able to develop their own rules from trial-and-error experience to solve problems as well as systems that find patterns in data without any supervision.
You’ll cover a range of topics including:
- machine learning foundations
- pattern recognition foundations
- artificial neural networks
- deep learning
- applications of machine learning
- data mining techniques
- evaluating hypotheses
You’ll spend around six hours each week in lectures and computer classes for this module.
Collaboration and Communication Technologies
In this module you’ll consider the design of collaboration and communication technologies used in a variety of different contexts including workplace, domestic and leisure environments.
You’ll consider the basic principles of such technologies, explore the technologies from a social perspective, consider their impact on human behaviour and critically reflect on their design from a human-centred perspective.
You’ll spend around two hours per week in lectures for this module.
Computer Graphics
You’ll examine the principles of 3D computer graphics, focusing on modelling the 3D world on the computer, projecting onto 2D display and rendering 2D display to give it realism.
Through weekly lectures and laboratory sessions, you’ll explore various methods and requirements in 3D computer graphics, balancing efficiency and realism.
Autonomous Robotic Systems
This module introduces the main concepts of autonomous mobile robotics, providing an understanding of the hardware and software principles appropriate for control, spatial localisation and navigation. The module consists of theoretical concepts around robotic sensing and control in the lectures, together with a strong practical element for robot programming in the laboratory sessions
Fuzzy Sets and Fuzzy Logic Systems
You’ll review classical Boolean logic and set theory, including the common operations of union, intersection and complement.
Fuzzy Logic Systems (FLSs) will be introduced and illustrated in conjunction with examples of real-world applications in industrial control and other areas.
You’ll spend around four hours each week in lectures and workshops, and will be given the opportunity to design, programme and deploy a fuzzy logic system, providing a tangible real-world example of some underlying concepts of FLSs.
Development Experience
Students taking part in activities relating to programming experience such as developing apps in their spare time, contributing to open source projects, or building things in hackathons may receive academic credit for showing they have experience and excellent development skills. The emphasis of this module is that you provide evidence of your significant extra-curricular software development experience. Students will only be able to register for this module with the approval of the convenor/school, once the material for assessment has been checked.
Industrial Experience
Students taking part in activities relating to industrial experience in a computer science or software engineering enterprise may obtain academic credit for them. A full list of approved activities is available from the School Office. Activities will be related to demonstration of involvement in development of complex software in a team situation, subject to quality control procedures of an industrial or business practice. Evidence of working to and completing tasks relating to targets set by an employer and directly related to software development/programming will be required. Students will have undertaken an agreed number of hours on the activities, identified personal goals and targets in relation to these activities and maintained a reflective portfolio as a record of evidence of their competence and achievements. The nature of the activities undertaken will be subject to the approval of the module convenor before acceptance on the module.
Schools Experience
Students taking part in approved activities, such as running code clubs in schools, organising school computing activity days, or becoming active STEM ambassadors, may receive academic credit for demonstrating they have actively contributed to the development of younger students. Students will have undertaken an agreed number of hours on the activities, identified personal goals and targets in relation to these activities and maintained a reflective portfolio as a record of evidence of their competence and achievements. Students will only be able to register for this module with the approval of the convenor/school, once the material for assessment has been discussed.