Artificial Intelligence BSc modules
First year | Second year | Third year
Introduction to C++ Programming
This module provides an introduction to the basic aspects of writing computer programs in the C++ language. The module covers three areas: input/output through console and files, storage of data in computer memory through primitive variables, arrays, pointers and vectors and algorithm design strategies and implementation of algorithms.
Introduction to Object Oriented Programming in C++
This module provides an introduction to the core concepts of Object Oriented Programming (OOP) through the C++ language. These core concepts include the class, the object, inheritance and association. The module then explores a contemporary OOP library which provides the functionality required for building games and simulations such as windowing, graphics, event handling and audio. An overview of good software development and testing practice is also given.
The module introduces you to the ethical theories affecting cyber security, software engineering, computer science and digital forensics. You will develop critical analytical skills in applying ethical theories to technological outcomes regarding cyber security, software engineering, computer science and digital forensics.
Computer Law & Cyber Security
The module explores the legal and professional context of cyber security, software engineering, computer science and digital forensics. It addresses the legal framework, legal and professional responsibilities of the software engineer, systems manager, computer forensic and security practitioner. You will study computer ethics, data protection law, UK and international law affecting cyber security,digital engineering, systems management and digital forensics.
This module provides a foundation in computer architecture and operating systems, with a specific emphasis on their security. You will learn about computer hardware, software, operating systems, and demonstrate practical knowledge of these during lab sessions. You will be able to relate the abstract concepts of logic and number systems to their concrete representation on real machines and identify the security risks in common configurations of computer operating systems and suggest appropriate mitigations. In the practical lab sessions, you will also learn to develop shell scripts.
This module provides a foundation in modern computer networks with a specific emphasis on their security. You will be able to explain how modern computer networks functions and be able to demonstrate a practical knowledge of computer networking. You will also be able to identify security risks in common configurations of computer networks and suggest appropriate mitigations.
Mathematics for Computing
This module introduces you to mathematical structures that provide the basis for computer science, i.e. logic, set theory, probability and statistics. You will study topics including logic, sets, tuples, relations, functions, probability, hypothesis generation and testing.
Database Design & Implementation
This module covers the fundamentals of how to design the structure of data within a relational database, how to interact with data within the database, and how to protect the data within the database. Topics include: the relational model, top down modelling of business requirements, ER model, keys, relationships, traps, normalisation, SQL mapping schema to implementation via DDL, querying data using DML, integrity, transactions, access control and security.
This module focuses on three areas concerned with rigid bodies: the simulation of motion, the detection of collisions and the resolution of collisions. You will be able to model the motion of rigid bodies under constant and variable acceleration. You will be able to detect collisions between pairs of convex rigid bodies using the SAT algorithm and use simplified approaches for circles, axis-aligned bounding boxes and oriented bounding boxes. You will also explore collision resolution through the conservation of linear and rotational momentum with simple coefficient simulations of elasticity and friction.
Artificial Intelligence for Simulation
This module outlines the major techniques of Artificial Intelligence and focuses on applications in computer games programming and simulation which use these techniques. The general methods of AI include knowledge based reasoning, graph-based search algorithms, probabilistic reasoning, finite state machines, flocking and behavioural trees. You will be required to explore the implications of their knowledge and use of these intelligent technologies with reference to ethical codes of relevant professional bodies and legal responsibilities.
Object-Oriented Programming in C++
This module furthers your knowledge of the C++ programming language in a professional software development context. The module involves significant development in softer skills critical to successful software development and the creation of high quality code.
Advanced Object-Oriented Programming in C++
This module expands your technical knowledge of the C++ programming language. The module looks at basic memory management and performance profiling, unit testing, polymorphism, design patterns, integration of existing libraries with a constant view of the quality of the code being produced.
This module provides you with an introduction to the principles, practice and context of interactive 3D modelling, rendering and animation. This will be done via presentation of the theoretical basis and through practical work using an industry-standard graphics library, such as OpenGL, and a modelling tool, such as Maya.
Introduction to Computational Intelligence and Control Systems
This module introduces the principles of Computational Intelligence and the main techniques applicable to control, as well as a variety of real world problems. You will gain an understanding of the principles and applicability of the most widely used CI tools appropriate for control, e.g. autonomous mobile robots. The module gives you an overview of the basic and historical streams of computational intelligence and provides explicit context of these tools (mainly Fuzzy Logic) in the area of control with a particular focus on robotics.
This module looks at the use of microprocessor-based systems to control home appliances or industrial equipment. The module covers a description of embedded systems, basic aspects of C programming for embedded systems, interrupts, shared-data problem, the use of sub-routines/co-routines/semaphores and real-time operating systems (RTOS). You will also look at the main types of electrical motors, their associated power converters, control strategies and the role of electrical motors in typical equipment and appliances.
Agile Methods and Development
This module develops the skills of producing an application(s) that delivers required features in the context of on-going negotiation between business clients and the development team. Working both individually and in groups, you will build applications using an object-oriented framework for data-driven web development.
Fuzzy logic and Knowledge Based Systems
This module deals with, arguably, the two most successful techniques in artificial intelligence. Fuzzy logic is a technique for modelling uncertainty and imprecision, and appears in many applications. You will gain an understanding of fuzzy sets and how these are used in systems that contain fuzzy if-then rules for decision making. You will then have the skillset to create a fully functioning fuzzy inference system based on your subjective understanding of a problem domain.
This module explains the functioning of autonomous mobile robotics. You will learn how to remotely control a robot.
This project provides you with the opportunity to carry out a significant piece of work involving critical analysis and reflection to provide an effective solution to a given technical and/or research-based problem. You will be expected to demonstrate appropriate and proactive project management, and written/verbal presentation skills throughout the project.
Secure Web Application Development
This module considers how a web application may be designed and implemented in such a way as to reduce the likelihood of unauthorised access to information. You will gain an understanding of the more common forms of browser-based attacks and the coding techniques that can be used to defend against these.
This module provides an understanding of how distributed telematic systems are designed and implemented. This will include a detailed study of a range of telematic standards and protocols. You will gain the skills to develop telemetry software for use in the automotive sector, and as part of a wider pervasive network of intelligent distributed computers that are linked by wireless technology.
Multi-service Networks 1
This module provides a comprehensive analysis of problems and solutions found in modern networks and covers the communication stack (Physical, Data-link and Network layers). The module concentrates on the TCP/IP networks, while the subnet covers emerging developments in LANs, MANs and WANs, for both fixed and wireless network technologies. The module has a strong software and algorithms orientation. You will use Cisco technologies (Cisco Routers and Switches and Cisco Packet Tracer) within the labs and tutorials.
Multi-service Networks 2
This module provides analysis of problems and solutions found in networks and focuses on the communication stack (Transport and Application layers). The module focuses exclusively on very high speed networks, which carry integrated multi-service traffic such as voice, video and data. A recurring theme is how the network can provide the necessary Quality of Service requirements for the various types of traffic. You will consider recent developments in local and wide area networks, for both fixed and wireless network technologies, and discuss the role each of these can play in providing a suitable broadband intra/internet infrastructure. You will use Cisco Routers and Switches and Cisco Packet Tracer) within the labs and tutorials.The module has a strong software and algorithms orientation, and Multi-service Networks 1 is a prerequisite.
Front-end Web Development
This module introduces the role of formal systems in rigorous software development and develops base-level skills using a contemporary formal method. The module covers the essential theoretical material (rationale, syntax, semantics) and provides practical experience using an appropriate software development tool. The module is based on the formal specification language ITL.
IT Services Foundations
This module explores IT service practices, including ITIL4 and Cobit, and standards, including security standards and the environment, particularly cloud computing. You will develop consultancy skills through tackling the concerns of a real client, and advising on issues such as problem management, IT security management and data centre reorganisation.
IT Services Practice
This module explores technologies including machine learning, blockchain, cloud computing, big data and internet of things in terms of their practical application and consequences for IT services. The module is driven by an ongoing exercise to develop digital transformation advice for a public sector client concerning leading edge and transformative systems and services.
This module is fast becoming essential to the modern competitive business world. In this module, you will review the methods available for uncovering important information and patterns from large data sets in order to discuss the techniques and when and how to use them effectively. The module uses the data mining tool SAS Enterprise Miner.
Popular Technology Ethics
This module engages you critically with the ethical issues and emerging concerns which arise from the popular portrayal of technologies in the media. These issues include the expansion of artificial intelligence, data science, algorithmics, social computing and digital transport.
This module introduces you to the process of collecting, storing and accessing large volumes of unstructured heterogeneous data in order to uncover useful patterns, trends and correlation. You will also consider some of the challenges of processing this data.
This module provides you with an insight into the approach and philosophy of mechatronics. The module demonstrates the essential features of mechatronics and its application in realising innovative modern engineering design. The role of mechatronics and its relevance to modern engineering will feature in terms of product design, machine design, and process design.
Systems Building: Methods and Management
This module covers two important aspects of Information Systems Development; the selection and evaluation of methodologies and the management of the Systems Development process. You will consider a variety of ISD paradigms and methodologies, including 'hard' approaches, both Object-Oriented and Structured, 'soft' and participative approaches, and 'heavyweight' and 'agile' methodologies.