In addition to core modules in professional ethics and computer security, you will select the remainder of your modules from an extensive list of options.
This includes at least four modules from a list of specialist artificial intelligence topics including computer vision, machine learning, knowledge representation and designing intelligent agents.
Take part in a large individual dissertation project, with a major artificial intelligence focus.
In discussion with your supervisor, you may select a topic from a list proposed by a member of staff or propose an idea of your own.
The University of Nottingham carries out world-leading research in artificial intelligence and there will be a wide range of exciting projects available.
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
Professional Ethics in Computing
The module covers a range of professional, ethical, social and legal issues in order to study the impact that computer systems have in society and the implications of this from the perspective of the computing profession.
In particular, the module covers topics such as introduction to ethics, critical thinking, professionalism, privacy, intellectual and intangible property, cyber-behaviour, safety, reliability accountability, all these within the context of computer systems development.
Individual Dissertation – Artificial Intelligence
You’ll perform an individual project on a topic in computer science with emphasis in artificial intelligence. You’ll produce a 15-25,000 word project report under the guidance of your supervisor, who you will meet with for an hour each week.
The topic can be any area of the subject which is of mutual interest to both the student and supervisor, but should involve a substantial software development component.
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.
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
Designing Intelligent Agents
You’ll be given a basic introduction to the analysis and design of intelligent agents, software systems which perceive their environment and act in that environment in pursuit of their goals.
You’ll cover topics including:
- task environments
- reactive, deliberative and hybrid architectures for individual agents
- architectures and coordination mechanisms for multi-agent systems
You will spend around four hours each week in lectures and tutorials for this module.
As part of the assessment of this module you will produce a research paper-style report, and deliver a conference-style presentation.
Computer Vision
You’ll examine current techniques for the extraction of useful information about a physical situation from individual and sets of images.
You’ll cover a range of methods and applications, with particular emphasis being placed on the identification of objects, recovery of three-dimensional shape and motion, and the recognition of events.
You’ll learn how to implement some of these methods in the industry-standard programming environment MATLAB.
You’ll spend around three hours a week in lectures and laboratory sessions.
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 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.
Compilers
You’ll examine aspects of language and compiler design by looking at the techniques and tools that are used to construct compilers for high level programming languages. Topics covered include: parsing; types and type systems; run-time organisation; memory management; code generation; and optimisation. You’ll spend around four hours each week in lectures and computer classes.
Software Quality Assurance
Students will be introduced to concepts and techniques that are widely used in industry to develop high quality software.
Through a two hour lecture each week, you will be introduced to concepts and techniques that are widely used in industry to develop high quality software. These include the following:
- What makes high quality software? Including procedures and approaches to quality management and quality assurance for software projects. Also, a brief history of software metrics
- Software testing. Including unit testing, integration testing, and acceptance testing, with a particular emphasis upon testing strategy and the automation of testing
- Software deployment. Including techniques used to minimise risk, and also continuous integration
These will all be put into the context of recent industry trends. Training will also be provided in common tools and techniques that are used in professional software development including:
- Version control and the use of code repositories
- Release/configuration Build management tools
- Automated testing frameworks
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.
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
Collaboration and Communication Technologies Development Project
You are given the opportunity to combine your developing CCT knowledge with your programming abilities. You have the whole semester to build a working collaborative project either individually, or you can opt to work in a team, and produce a report on how it supports collaboration according to CCT theory. The primary focus is on building a working application, and so existing strong programming ability is required.