Artificial Intelligence BSc (Hons)

Full-time undergraduate (3 years, 4 year extended, 4 years with placement)

Cambridge

September

This course is available as a 3 year degree, 4 year extended degree, or 4 years with a placement.

Overview

Ready to meet the future head-on? From self-driving cars to chess-playing computers, artificial intelligence is shaping our world. Explore the science of machine learning with our Cambridge-based course and be at the forefront of technological innovation. Designed to fill a skills gap and meet a growing need for talented graduates, our AI degree is supported by the Intel AI Academy and offers a placement year, drawing on links with Cambridge high tech hub companies such as Cambridge Spark and Amazon.

Full description

Careers

We work with employers to make sure you graduate with the knowledge, skills and abilities they need. They help us review what we teach and how we teach it – and they offer hands-on, practical opportunities to learn through work-based projects, internships or placements.

This course is designed for those who want to build the necessary skills to work in development and applications of artificial intelligence while acquiring solid grounds in those areas of computer science – programming, computer systems, databases, digital security – that are relevant for this field.

On completion of your degree you could further your studies through our MSc Computer Science, MSc Artificial Intelligence and Big Data, MSc Artificial Intelligence with Cybersecurity and MSc Intelligent Systems and Machine Learning courses.

Modules & assessment

Level 4 modules

  • Introduction to Programming
    This module provides an introduction to high level programming, requiring no prior programming experience. You will use industry-standard tools and techniques to design, implement, test and document simple programs using a current programming language such as C#, Java or C++. You will understand the principal components of a high-level program, laying the foundation for subsequent modules requiring structured programming ability. It emphasises the principles of good programming practice and introduce the techniques required to develop software which is robust, usable and efficient. By the end of the module you will have sufficient mastery of a high-level programming language to allow them to design, implement and test simple programs. The skills taught within the module are directly transferable to the workplace and provide a suitable foundation to apply programming skills in your later studies and future career.
  • Computer Systems
    With the use of computers in all walks of life it is essential for companies to have IT staff capable of specifying, installing, configuring and maintaining the company's IT resources and networks. This module ensures you will have the practical skills companies look for in an IT specialist. We will investigate the components and operation of modern computer systems and introduce you to the hardware components which enable a computer to process data and the devices which enable data to be input, output and stored. We will also introduce you to the fundamentals of computer networks as modern computer systems rarely operate in a standalone manner.
  • Computer Modelling and Simulation
    Here you will learn the principles of generating a computer model, simulation, or solution from a specification, introducing you to the use of computer tools to solve engineering problems. You will start using MATLAB software, which allows you to implement mathematical expressions and algorithms using various command functions and simple software statements as well as learn the basics of Python language. Learn the fundamental issues like variables, strings, tuples, looks, control flow, plotting, file input/output, the basic features of NumPy (Numerical Python), create data visualisations with Matplotlib and also introduce you to the Pandas library for data analysis. Using your knowledge from all areas learnt in this module you will apply it by solving problems in different scenarios.
  • Fundamentals of AI
    Develop essential skills related to the understanding of some core principles of Artificial Intelligence (AI) alongside their key real-world applications. You will cover the foundations of AI, its historical development, main applications and how it has become one of today’s most essential technologies. Explore the history of AI, its essential concepts such as supervised/unsupervised learning, neural networks, fuzzy logic, as well as the role large scale data collection and fast computing play in establishing AI as a key tool for development and automation in a growing number of industries. You will also learn the key concepts of Artificial Neural Networks (ANN) and Fuzzy Logic (FL), as core elements of Artificial Intelligence (AI). These skills highly sought after by employers as they underpin a wide range of modern industrial developments with a forecast for rapid growth.
  • Introduction to Mathematical Techniques for Artificial Intelligence
    This module is essential for the student who needs a solid background in mathematical techniques and analysis in order to pursue a degree programme in artificial intelligence. It will help you to assess your existing numerical and analytical skills, enabling you to expand these into core mathematical skills, knowledge and techniques needed in order to tackle scientific and engineering problems in the field of pattern analysis and machine intelligence. Artificial intelligence (AI) aims to discover, analyse and classify patterns in data sets, in a way that lends itself to optimised automated or even autonomous operation. It is a field that uses techniques to deal with the various numerical features of data, the relative variation of these features, as well as the variability of the data that may determine a pattern. This module will provide an introduction to linear algebra, with an emphasis on the practical use of vectors, matrices and linear systems as representations of multi-dimensional data and processes.

Level 5 modules

  • Advanced Analytical Techniques for AI
    Building on the mathematical methods acquired in Introduction to mathematical methods for artificial intelligence, you will gain further mathematical knowledge and techniques for the study of pattern analysis and machine intelligence. Substantial parts of the machine learning discipline deal with analysing large amounts of data in order to discover and label similarities between data points. These conclusions are made based on probabilistic modelling and statistical measures of reliability. You will develop the basic theory of probability, covering discrete and continuous random variables and problems like conditioning and independence, Bayesian inference and applications. It will equip you with the knowledge and skills that will allow you to design simple probability models for prediction, make basic statistical analyses of data, and to assess and interpret these. You will also expand your knowledge of linear algebra by looking at like decompositions of symmetric or arbitrary matrices, sparse computing and applications to machine learning.
  • Database Design and Implementation
    You will be guided through the fundamentals of database design. This grounding will enable you to construct small scale industrial quality databases. You will work in groups emulating real world development teams. As part of this you will learn the skills of constructing documentation, making revisions and delivering work to a deadline. Implicitly, you will learn the skill of managing a group environment. This module begins with the development of an acceptable approach to industrial clients and their problems. Working within the specification given, you will learn how to extract data from interviews and paperwork. You can then progress to designing and building a database, querying the database to provide the reports (including statistics) that a customer needs. During this process the current industrial choice database language (SQL) is learned. The assessment comprises the design, production and querying of a database and the completion of a portfolio of coursework to be submitted at the end of the course.
  • Software Engineering
    The number, size, and application domains of computer applications have grown and most people depend on the effectiveness of software development. Software products have to be efficient, good quality and to help us to be more efficient and productive. Software Engineering is a form of engineering that applies the principles of computer science and mathematics to achieving cost-effective solutions to software problems. Get real-world experience in software engineering and gain the intellectual tools to be able to design, implement and test software systems. Build on Fundamentals of Design and Introduction to Programming and journey through all the phases of the life cycle by taking case studies and building real software applications based on them. You will use CASE tools to study topics, including analysis and design in UML and managing the OO software development process. Finally, you will work in team on a specific project to create an application from a case study that showcases a whole software lifecycle.
  • Digital Security
    'Digital Security' is about giving individuals the freedom to embrace the digital lifestyle, confidently engaging in everyday interactions across all digital devices with a certainty that the accessibility and integrity of the data is ensured. Digital security affects all aspects of the digital lifestyle, which, among others, comprises computers and the internet, telecommunications, financial transactions, transportation, healthcare, and secure access. This module covers these broad topic areas: Computer Security Principles covers security objectives such as authentication, authorisation, access control, confidentiality, data integrity, and non-repudiation. This module will also introduce you to fundamental software design principles such as that of least privilege, fail-safe stance, and defence-in-depth. You will be provided with an introduction to cryptography covering both symmetric encryption and public-key cryptography, discussing how they are used to achieve security goals and build PKI (Public-Key Infrastructure) systems. You will learn about DES, 3DES, AES, RC4, RSA, ECC, MD5, SHA-1, X.509, digital signatures, and all cryptographic primitives necessary to understand PKI. Diffie-Hellman key exchange and man-in-the-middle attacks will also be discussed. You will learn about Secure Programming Techniques and threats that worms and hackers present to software and the programming techniques that developers can use to defend against software vulnerabilities such as buffer overflows, SQL injection, and off-line dictionary attacks.
  • Machine Learning
    Machine learning is a form of Artificial Intelligence that allows a system to learn from data rather than through explicit programming, making it one of the most important topics within development organisations that are looking for innovative ways to use data. Here you will learn about the most effective machine learning techniques, gain practice implementing them, and getting them to work. You will not only learn the theoretical underpinnings of learning, but also gain the practical know-how needed to quickly and powerfully apply these techniques to new problems. By the end of this module you will have a practical knowledge of supervised learning algorithms, key concepts like under- and over-fitting, regularization, and cross-validation, and how to identify the type of problem to be solved, choose the right algorithm, tune parameters, and validate a model.
  • Artificial Neural Networks
    Get an in-depth understanding of the core principles and applications of artificial neural networks (ANNs). You will explore the biological basis on which neural networks are loosely founded, evaluate the key differences between biological and artificial neural networks, and study the historical development of ANNs. You will evaluate the strengths and weaknesses of the ANN approach in comparison to other AI methods, look at example problem types for which ANNs are suitable, such as pattern recognition, classification, medical diagnosis, financial/economic data analysis and prediction, and gaming. You will construct ANNs in practical sessions to solve computational problems that would be difficult to solve using conventional computing methods, using a suitable high-level language and ANN functions from standard libraries e.g. TensorFlow, Caffe, Theano, and Keras with Python or MATLAB with the Neural Network Toolbox.

Level 5 optional modules

  • Object Oriented C++
    C++ (and its language precursor, C) is arguably the most common programming language in industry, and graduates who are good C/C++ programmers are often much sought after in the IT sector (systems programming, embedded software, graphics and games programming). The reason for the popularity of C++ is partly historical, partly because the programmer can produce fast, memory-efficient programs, and partly because of its flexibility to support different programming styles. This module provides an introduction to C++ for those already with some programming experience in another language such as Java or C#. Following procedural introduction you will be using an object oriented style of programming including the necessary design considerations. Code will be written using an appropriate development environment (such as Visual C++, Dev C++, or C++ Builder) and be mainly confined to ANSI/ISO C++ and use of the standard library so as to promote source code portability to other platforms. You will learn how explicit types of memory allocation can be used to manipulate data and how this can influence computer resources, gaining an understanding of the underlying architecture behind how other high level programming languages manage their data.
  • Microprocessor Systems Design
    You'll develop an in-depth understanding of microprocessor system and its relation to the design of modern digital systems. Hands-on programming and simulation of the operation of a commercial microprocessor are an important part of this module. You'll cover different microprocessor architectures, and core elements like ALU, CU, BIU, memories, caches, pipelines, superscalar architectures, RISC and CISC.

Level 6 modules

  • Final Project
    You will engage in a substantial piece of individual research and/or product development work, focused on a topic relevant to your specific discipline. The topic may be drawn from a variety of sources including: Anglia Ruskin research groups, previous/current work experience, the company in which you are currently employed, an Anglia Ruskin lecturer suggested topic or a professional subject of their specific interest (if suitable supervision is available).
  • AI Techniques (Fuzzy Logic and Genetic Algorithms)
    In Artificial Intelligence, an 'expert system' is a computer system that imitates the decision-making ability of a human expert, here you will be introduced to the classic software architecture of an expert system as first developed in the 1980s, consisting of a knowledge base and an inference engine. You will explore the theoretical basis for rule-based systems by covering some basic principles of propositional and predicate logic. Central to all of this will be an appreciation of how new knowledge is derived from conditional facts and adjustments to the ‘crisp’ rule-based approach are explored, including the principles of fuzzification and de-fuzzification and how this produces a more accurate and customised output. The use of genetic algorithms in expert systems follow a recent trend to combine different methods of machine learning to optimise a solution. You will learn the principles of genetic algorithms, including how the biology of genes, chromosomes and reproduction can be represented in a computational context, the issues of problem representation through binary expression. Throughout this module you will use your good working knowledge of a high level programming language such as C#, Java, C++ or Python, you will edit and configure small scale source code examples of rule-based systems, used in high-level general purpose computer language and will also be introduced to a specialist logic computer programming language like Prolog or Lisp.
  • Professional Issues: Computing and Society
    Understand the issues, opportunities and problems linked with computerisation of wide areas of human activity and the technical development and social effects of computer technology. You will focus on advanced computer reflective thinking in both computer science specialists and others, and development skills in professional values and approaches in the IT and computing fields. You will cover relevant and current topics in Computer Law (e.g. Data Protection; Intellectual Property Law; Computer Misuse) and other social, ethical and legal topics such as considering the causes and effects of systems failures (including but not limited to computer systems failure). You will also look at other aspects such as the ethical and professional responsibilities of graduates - particularly those from IT and computing disciplines.
  • Deep Learning
    Using a blend of theoretical discussion, laboratory sessions and remote access to class servers, this module will cover the necessary skills you need to understand and evaluate, and to appropriately build and train models in various deep learning applications to achieve best results. You will gain a detailed understanding of the core principles and applications of Deep Learning, as well as reviewing the neural network principles upon which deep learning the basic architecture of a feed-forward neural network and activation functions and weights. You will be introduced to fundamental neural network architectures like feed-forward networks, Boltzmann machines, convolutional neural networks (CNN), and recurrent neural networks (RNN) will be introduced. You will cover the concept of how a neural network computes the output when given an input in a single forward pass, how to use this network to train a model and learn how to calculate the loss and adjust weights using a technique called backpropagation. Different types of activation functions will also be explored, as well as techniques used to improve training speed, accuracy, and prevent overfitting (regularization). You will also cover the method of how to build a CNN as well as techniques, terminology, mathematics of deep learning and how to appropriately build and train neural network models.
  • Distributed-Systems Programming
    Distributed Programming is the development of software applications that utilise the distributed functionality of an intranet or the internet. These applications are vital to the banking sector, commercial organisations and governmental institutions as they involve the fundamental technologies underpinning Cloud Computing and On-Line Multi-Player Gaming environments. The module covers the key principles of low-level distributed programming to manage the communication of data between computers. The language of implementation will be one whose libraries support Socket programming, such as Java, C# or C++. Students will learn how to develop applications that share out, or 'farm' large computing operations to smaller interconnected nodes thus implementing a kind of virtual parallel processing. A variety of practical exercises will illustrate these programming techniques and components in an Intranet environment. Examples of programming language support for some of the more common application and communication network protocols will be covered. Threads and multi-threading is introduced as a technique to manage concurrency and the marshalling of data between processes. The assessment comprises coursework requiring the design and development of a multi-threaded client-server application.

Level 6 optional modules

  • Image Processing
    This module exposes you to the theory and implementation of digital image processing algorithms. Image processing is one of the fastest growing areas in computer science; with increased computational power, it is now possible to achieve tasks that were previously accomplished with analogue technologies through digital means. Topics covered include image acquisition and representation, human perception and understanding, image statistics and histogram operations, enhancement, transformations, filter design, compression, segmentation, morphological operations, and pattern recognition. The module introduces image processing techniques that enable you to build computer systems that analyse images automatically, illustrated using applications such as face detection/recognition, medical image processing, natural image statistics, compression/encoding, and computer vision. As a vehicle to demonstrate the techniques explored in this module, you’ll use purpose-written programming tools and environments such as the Image Processing Toolbox within Matlab (Mathworks Inc), and GNU ImageMagick, in addition to programming from first principles using modern high-level programming languages (such as C/C++) to deepen understanding. The module will treat concisely some fundamental problems in image processing, focusing on a core set of problems where efficient and robust algorithms can be applied. You'll be required to implement a range of algorithms using real datasets. In addition to presenting practical programming techniques and algorithms, our module will introduce you to emerging research to provide sufficient understanding to undertake novel undergraduate research projects.
  • Digital Signal Processing
    Fundamental to the understanding of digital signal processing is a sound working knowledge of the mathematical principles which underpin the subject. Also a good understanding of the algorithms which are available for implementing digital signal processing techniques which include digital filtering and spectral analysis methods. You’ll therefore be provided with a working maths framework to enable you to understand how digital signal processing techniques can be implemented in commercial digital systems.
  • Internet Services, Data Analytics and the Cloud
    The Internet and the emerging cloud-computing paradigm provide an opportunity to design and implement a wide range of effective analytical and distributed applications that can be accessed via various types of devices. The success of such applications involve skilful use of data science and several programming techniques, requiring professionals in the field to confidently deliver solutions in a fast-paced and time-constrained environment. An in-depth knowledge of prototyping, through coding, testing and deployment, is the key to delivering such applications. This module is specifically designed to provide the knowledge and skills to enable students to confidently implement effective analytics applications using technologies that underpin the Internet and the Cloud. Cloud Computing security is also discussed and explored. A significant proportion of the module will involve writing and testing code using current industry standard programming and scripting languages. Prior coding and programming experience will be assumed: students taking this module are expected to quickly pick up the programming languages introduced. An important part of developing effective cloud/web-based distributed analytics applications is the understanding of current database management systems. Prior knowledge of and experience with simple database design and implementation is therefore a pre-requisite for this module and will be assumed. Using a blend of theoretical discussion, laboratory sessions and remote access to class servers, this module will cover the necessary skills to understand, evaluate, implement and apply good practice in prototyping effective cloud/web based distributed applications. The module is assessed by coursework, which will test the student’s understanding of the technological framework. The application of knowledge and skills through the students’ ability to design, implement, test and deploy an effective solution - comprising both development and production environments, will also be assessed. Formative exercises will be carried out throughout the module, so that students receive early and regular feedback on their progress.
  • Ethical Hacking and Countermeasures
    The aim of this module is to give students a rounded introduction to the principles of ethical hacking from theoretical and technical perspectives and to provide a contextual setting for ethical hacking by an examination of the issues associated with systems security, computer crime and the criminal justice system i.e. Computer Misuse Act. Students will be introduced to the basic principles of ethical hacking and the role ethical hacking plays in providing more secure and robust information to support computer systems and networks (including wireless networks). Students will be exposed to, and use, the basic tools and techniques of ethical hacking, particularly in regard to penetration testing and systems security. Students will be provided with opportunities to develop academic skills in report writing and reflective practice presentations. Formative assessment activities and formative feedback (oral and written) for students will be enabled through the work they do in the maintenance of logbooks, seminars, practical and laboratory sessions. By research and application students will develop the skills to manage the particular legal, ethical and professional challenges, facing the Information Security practitioner with particular reference to the criminal justice system in England and Wales and the Computer Misuse Act.

Assessment

Where you'll study

Your faculty

The Faculty of Science & Engineering is one of the largest of the four faculties at Anglia Ruskin University. Whether you choose to study with us full-time or part-time, on campus or at a distance, there’s an option whatever your level – from a foundation degree, BSc, MSc, PhD or professional doctorate.

Whichever course you pick, you’ll gain the theory and practical skills needed to progress with confidence. Join us and you could find yourself learning in the very latest laboratories or on field trips or work placements with well-known and respected companies. You may even have the opportunity to study abroad.

Everything we do in the faculty has a singular purpose: to provide a world-class environment to create, share and advance knowledge in science, technology and engineering fields. This is key to all of our futures.

Where can I study?

Cambridge
Lord Ashcroft Building on our Cambridge campus

Our campus is close to the centre of Cambridge, often described as the perfect student city.

Explore our Cambridge campus

Fees & funding

Course fees

UK & EU students starting 2019/20 or 2020/21 (per year)

£9,250

International students starting 2020/21 (per year)

£14,100

How do I pay my fees?

Tuition fee loan

You can take out a tuition fee loan, which you won’t need to start repaying until after your graduate. Or alternatively, there's the option to pay your fees upfront.

Loans and fee payments

Scholarships

We offer a fantastic range of ARU scholarships, which provide extra financial support while you’re at university. Some of these cover all or part of your tuition fees.

Explore ARU scholarships

International students

You must pay your fees upfront, in full or in instalments. We will also ask you for a deposit or sponsorship letter. Details will be in your offer letter.

Paying your fees

Funding for UK & EU students

Most new undergraduate students can apply for government funding to support their studies and university life. This includes Tuition Fee Loans and Maintenance Loans. There are additional grants available for specific groups of students, such as those with disabilities or dependants.

We also offer a fantastic range of ARU scholarships, which provide extra financial support while you’re at university. Find out more about eligibility and how to apply.

Funding for international students

We offer a number of scholarships, as well as an early payment discount. Explore your options:

Entry requirements

Loading... Entry requirements are not currently available, please try again later.

Important additional notes

Our published entry requirements are a guide only and our decision will be based on your overall suitability for the course as well as whether you meet the minimum entry requirements. Other equivalent qualifications may be accepted for entry to this course, please email answers@anglia.ac.uk for further information.

All tariff points must come from A levels. Points from AS levels cannot be counted towards the total tariff points required for entry to this course.

International students

We welcome applications from international and EU students, and accept a range of international qualifications.

English language requirements

If English is not your first language, you'll need to make sure you meet our English language requirements for postgraduate courses.

Improving your English language skills

If you don't meet our English language requirements, we offer a range of courses which could help you achieve the level required for entry onto a degree course.

We also provide our own English Language Proficiency Test (ELPT) in the UK and overseas. To find out if we are planning to hold an ELPT in your country, contact our country managers.

Similar courses that may interest you

Computer Science

Full-time, full-time with placement undergraduate (3 years, 4 year extended, 4 years with placement)

Cambridge

January, September

Computer Networks

Full-time, full-time with placement undergraduate (3 years, 4 year extended, 4 years with placement)

Cambridge

September

Software Development

Full-time, full-time with placement undergraduate (3 years, 4 year extended, 4 years with placement)

Cambridge

September

Apply now

UK and EU students

Apply through UCAS

UCAScode: I400, I401

Apply via UCAS

International students

Applicants from outside the UK and EU, apply to ARU

Apply direct