University of Nottingham Ningbo China
School of
Computer Science
  • Intranet
      

BSc (Hons) Computer Science with Artificial Intelligence (2+2, 4+0)

This course is designed to offer both a general understanding of computer science as well as specialist skills in artificial intelligence and, through its optional module choice, also offers you the opportunity to study computer science in the context of robotic systems. In addition to fundamental computer science classes and laboratories, the course covers topics including expert systems, intelligent agents, the history and philosophy of artificial intelligence, machine learning, computer vision, neural networks, heuristic optimisation and other intelligent systems. If you choose introductory and advanced robotic options, you will be able to experiment with mobile robots in both group and individual projects.

You will spend the first two years of your programme at The University of Nottingham Ningbo China and the following two years at The University of Nottingham, UK.

At the end of your course, you will graduate with general knowledge of computers and computer science and specialised knowledge of theoretical and practical aspects of artificial intelligence. You will have acquired the skills to develop new methodologies and novel computational techniques for the creation of human-like intelligence. You will understand a variety of approaches and have the techniques and tools needed to solve the different types of problems encountered in computer science in general, and in artificial intelligence in particular.

Course structure

The degree is offered as a three or four-year programme depending on your entry qualification.

For domestic students the course structure follows the Chinese higher education system and is based on a four-year program with the possibility of spending two years at The University of Nottingham's UK campus.

For international students, with relevant qualifications, the course structure follows the UK higher education system and is based on a three-year program with the possibility of spending two years at The University of Nottingham's UK campus.

Year one (preliminary year)

This year is not compulsory for students with appropriate qualifications for year two entry.

The first year consists of a specially-designed intensive academic English programme to prepare students for their studies.

Title

Credits

Taught

Compulsory (Students must take all modules in this group)

Foundation Algebra for Physical Sciences & Engineering

10

Autumn

The Scientific Method

10

Autumn

Foundation Science A

10

Autumn

Undergraduate Reading and Writing in Academic Contexts

20

Autumn

Undergraduate Listening & Speaking in Academic Contexts

10

Autumn

Foundation Calculus and Mathematical Techniques

15

Spring

Introduction to Programming and Algorithms

15

Spring

Undergraduate Academic Oral Presentations

10

Spring

Undergraduate English in Specific Academic Contexts b (Science & Engineering Pathways: Engineering; Computer Science; Environmental Science & Architecture)

20

Spring

 

Year two (qualifying year)

You will be introduced to the key concepts and tools underpinning modern computer science with artificial intelligence, and robotics if choosing this optional pathway. You will learn how to program in Java, study the architecture and applications of computer systems and will be introduced to the areas of artificial intelligence that you will focus on in later years. You will also select one module from a list of options including robotics, software systems and web programming and scripting.

Compulsory 

AE1PGA: Programming and Algorithms

This module introduces basic principles of programming and algorithms. It covers fundamental programming constructs, such as types and variables, expressions, control structures, and functions. You will learn how to design and analyse simple algorithms and data structures that allow efficient storage and manipulation of data. You will also become familiar with basic software development methodology. You will spend around six hours per week in lectures, computer classes and tutorials.

AE1CSF: Computer Fundamentals

You will gain a basic understanding of the fundamental architecture of computers and computer networks. You will learn how the simple building blocks of digital logic can be put together in different ways to build an entire computer. You will also learn how modern computer systems and networks are constructed of hierarchical layers of functionality that build on and abstract the layers below. You will spend five hours per week in tutorials, lectures and computer classes.

AE1SYS: Systems and Architecture
This module runs alongside 'Computer Fundamentals' (AE1CSF) and provides an expanded view by considering how real computer systems (such as ARM, x86, Linux and *BSD) and networks work. You will also cover the principles of the lower level implementation of I/O using polling and interrupts, and the use of exceptions; how memory and storage is organized as well addressing the issues arising from multicore systems. You will spend around five hours per week in tutorials, lectures and computer classes. 
AE1MCS: Mathematics for Computer Scientists
You will cover the basic concepts in mathematics that are of relevance to computer scientists. These include: logic; sets, functions and relations; graphs; induction, basic probability and statistics and matrices. You will spend around four hours per week in lectures and tutorials.
AE1DBS: Database and Interfaces
This module considers both the structure of databases, including how to make them fast, efficient and reliable, and the appropriate user interfaces which will make them easy to interact with for users. You will start by looking at how to design a database, gaining an understanding of the standard features that management systems provide and how you can best utilise them; you will then develop an interactive application to access your database. Throughout the lectures and computing sessions you will learn how to design and implement systems using a standard database management system, web technologies and GUI interfaces through practical programming/system examples.
AE1FSE: Software Engineering

You will focus on the fact that programming is only one step of the larger software engineering process. To develop good software, you must gather requirements, design it well, plan the development, do the programming, have a testing strategy, test the parts and the product as a whole, and have a maintenance strategy for after the system is delivered. You will spend around two to three hours per week discussing the stages in lectures, whilst carrying out activities in labs that help you understand the underlying issues.

AE1PGP: Programming Paradigms
In this module you will learn the basic principles of the object-oriented and functional approaches to programming, using the languages Java and Haskell. You will also see how they can be used in practice to write a range of different kinds of programs. You will spend around five hours per week in lectures and labs for this module.
AE1FAI: Fundamentals of Artificial Intelligence
You will gain a broad overview of the fundamental theories and techniques of artificial intelligence (AI). You will explore how computers can produce intelligent behaviour, and will consider topics such as the history of AI, AI search techniques, neural networks, data mining, philosophical and ethical issues, and knowledge representation and reasoning. You will spend two hours per week in lectures. 
 

 

Year three (part I)(Ningbo/Nottingham)

You will consolidate what you have learnt so far by taking part in a group project accompanied by a course of lectures. At the same time, you will study artificial intelligence and programming in greater depth and focus on other core computing topics. In addition, you will choose one optional module from a wide range of topics including robotics.

Compulsory

AE2ACE: Algorithms, Correctness and Efficiency
This module covers important aspects of algorithms, namely their correctness and efficiency. To address correctness we use a mathematically rigorous approach to formal verification using an interactive proof system. You will study topics such as: proofs in propositional logic and predicate logic; classical vs. intuitionistic reasoning; basic operations on types; verification of list based programs; and introduction to program specification and program correctness. To address the issue of efficiency we cover the use of mathematical descriptions of the computational resources needed to support algorithm design decisions. You will study topics such as: sorting algorithms, heaps, binary search trees, hashmaps, and graph algorithms. The emphasis is upon understanding data structures and algorithms so as to be able to design and select them appropriately for solving a given problem. You will spend about five hours per week in lectures, tutorials, and computer lab sessions.
AE2GRP: Software Engineering Group Project
Working in groups of around five to six people, you will be assigned a supervisor who will provide you with a short written description of a software engineering project to be completed over the course of the module. Each group will meet twice a week, once with your supervisor and once without; you will also have weekly 1-2 hour class sessions to support your team project work. 
AE2OSC: Operating Systems and Concurrency
This course covers the fundamental principles that underpin operating systems and concurrency. Topics covered include the architecture of operating systems, process and memory management, storage, I/O, and virtualisation. The principles of concurrency will be introduced from both the perspective of an operating system and user applications. Specific topics on concurrency include: hardware support for concurrency; mutual exclusion and condition synchronisation; monitors; safety and liveness properties of concurrent algorithms, and the use of threads and synchronisation.
AE2LAC: Languages and Computation
You will investigate classes of formal language and the practical uses of this theory, applying this to a series of abstract machines ultimately leading to a discussion on what computation is, what can and cannot be computed, and computational complexity. You will focus in particular on language recognition, but will study a range of topics including: finite state machines, regular expressions, context-free grammars, Turing machines, Lambda calculus. Practical applications includes parsing. This module builds on parts of AE2ACE and introduces concepts which are important to understand the analysis of algorithms in terms of their complexity. You will spend two hours per week in lectures.
AE2SWM: Software Maintenance

This module builds on your basic Java programming and software engineering skills developed in Year 1, extending it to working with larger third party software systems, and the challenges associated with this. Topic examples include: design diagrams and modelling; GUI programming; testing software engineering methodologies (including agile development and tools), all in the context of understanding and refactoring third-party code. You will spend around two hours per week in lectures, three hours per week in computer classes, and one hour per week in workshops studying for this module.

AE2AIM: Artificial Intelligence Methods
This module builds on the first year Introduction to AI, which covers the ACM learning outcomes, and introduces new areas. The emphasis is on building on the AI research strengths in the School. As a Launchpad it gives brief introductions to topics including AI techniques, fuzzy logic and intelligent agents, and modern search techniques such as Genetic Algorithms, Tabu Search, Simulated Annealing, and Genetic Programming, etc. Students will also explore the implementation of some AI techniques. You will spend four hours a week in lectures and computer labs.

 

Optional

In the second semester of Part I, students may choose modules from a list such as the following. (The actual list of optional modules may vary each year. The following is only indicative.)

AE2HCI: Human Computer Interaction
Through two hours of lectures each week, you will be given an overview of the field of human computer interaction, which aims to understand people's interaction with technology and to apply this knowledge in the design of usable interactive computer systems. You will also learn the concept of usability and examine different design approaches and evaluation methods. 
AE2CPP: C++ Programming
You will cover the programming material and concepts necessary to obtain an understanding of the C++ programming language. You will spend around four hours per week in lectures and computer classes, and will be expected to take additional time to practice and to produce your coursework. 
AE2IIP: Introduction to Image Processing
This module introduces the field of digital image processing, a fundamental component of digital photography, television, computer graphics and computer vision. You will cover topics including: image processing and its applications; fundamentals of digital images; digital image processing theory and practice; and applications of image processing. You will spend around three hours in lectures and computer classes each week.
 

 

Year four (part II)(Ningbo/Nottingham)

In your final year, whilst selecting the majority of your modules from an extensive list of options, you will undertake modules in designing intelligent agents, knowledge representation and reasoning, and systems and real-time programming. The other compulsory module this year is the individual project, which has a major artificial intelligence focus. If a chosen option is robotics, you will learn how to create autonomous mobile robots that exhibit useful and interesting behaviours. You agree a project in discussion with your supervisor and may select a topic from a list proposed by a member of staff or propose an idea of your own.

Compulsory 

AE3PEC: Professional Ethics
The module looks broadly into professional ethics within the scope of the computing discipline. It 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. You will spend about two and half hours per week in classes and workshops.
AE3SEC: Computer Security

Spending four hours a week in lectures and computer classes, you will cover the following topics: security of the computer; security of networks; security and the internet; software and hardware security; mobile security; and basic cryptography.

 

Required Options

In Part II, students may need to choose some AI-related modules from a list such as the following. Typically this may mean choosing a minimum of one or two modules from a list of two or four. (The actual list of optional modules may vary each year. The following is only indicative.)

AE3MLE: Machine Learning

Providing you with 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. This is now fashionably termed 'big data' science. You will cover a range of topics including: machine learning foundations; pattern recognition foundations; artificial neural networks; deep learning; applications of machine learning; data mining techniques and evaluating hypotheses. You will spend around six hours each week in lectures and computer classes for this module.

AE3DIA: Designing Intelligent Agents

You will 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. Spending around four hours each week in lectures and tutorials, you will cover topics including task environments, reactive, deliberative and hybrid architectures for individual agents, and architectures and coordination mechanisms for multi-agent systems. You will spend about four hours per week in lectures and tutorials.

AE3VIS: Computer Vision

You will examine current techniques for the extraction of useful information about a physical situation from individual and sets of images. You will cover a range of methods and applications, with particular emphasis being placed on the detection and identification of objects, recovery of three-dimensional shape and analysis of motion. You will learn how to implement some of these methods in the industry-standard programming environment MATLAB. You will spend around four hours a week in lectures, tutorial and laboratory sessions.  You will spend about four hours per week in lectures, tutorials, and computer labs.

 

Optional

In Part II, students may choose modules from a list such as the following. (The actual list of optional modules may vary each year. The following is only indicative.)

AE3IDS: 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 about 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. 

AE3COM: Computability

You will begin by considering the attempts to characterise the problems that can theoretically be solved by physically-possible computational processes. You will 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. You will spend around two hours per week in lectures.

AE3SQM: Software Quality Assurance

Through two to three hours of classes each week, you will 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 will also review recent industry trends on software quality assurance and testing. 

AE3GRA: Computer Graphics

You will 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 two hours per week of lectures and laboratory sessions, you will explore various methods and requirements in 3D computer graphics, balancing efficiency and realism.

AE3MDP: Mobile Device Programming

You will look at the development of software applications for mobile devices, with a practical focus on the Android operating system. You will consider and use the software development environments for currently available platforms and the typical hardware architecture of mobile devices. You will spend around three hours per week in lectures and computer classes for this module. You will spend about three hours per week in lectures and computer labs.

AE3PDC: Parallel Computing

A simple sequential computer program effectively executes one instruction at a time on individual data items. Various strategies are used in CPU design to increase the speed of this basic model, but at the cost of CPU complexity and power-consumption. To further increase performance the task must be re-organised to explicitly execute on multiple processors and/or on multiple data items simultaneously This module charts the broad spectrum of approaches that are used to increase the performance of computing tasks by exploiting parallelism and/or distributed computation. It then considers in more detail a number of contrasting examples. The course deals mainly with the principles involved, but there is the chance to experiment with some of these approaches in the supporting labs. Topics covered include: common applications of parallel computing; parallel machine architectures including Single Instruction Multiple Data (SIMD) or short-vector processing; multi-core and multi-processor shared memory; custom co-processors including DSPs and GPUs, and cluster and grid computing; programming approaches including parallelising compilers; explicit message-passing (such as MPI); and specialised co-processor programming (such as for GPUs). You will spend about three hours per week in lectures and computer labs.

AE3CMP: Compilers

You will 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 will spend around four hours each week in lectures and computer classes for this module. You will spend about four hours per week in lectures and computer labs.

AE3FIV: Fundamentals of Information Visualisation
Information Visualisation is the process of extracting knowledge from complex data, and presenting it to a user in a manner that this appropriate to their needs. This module provides a foundational understanding of some important issues in information visualisation design. You will learn about the differences between scientific and creative approaches to constructing visualisations, and consider some important challenges such as the representation of ambiguous or time-based data. You will also learn about psychological theories that help explain how humans process information, and consider their relevance to the design of effective visualisations. You will spend about two hours per week in lectures.
AE3DEV: 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.
AE3IND: 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.

AE3SCE: 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.

 

Careers and further study

Of the 22 undergraduates who graduated from the department in 2014 and continued onto postgraduate studies, 91% were admitted by world top 100 universities according to the 2013-14 QS World University Rankings. Our graduates have gone on to work at major technology companies, such as Adobe, IBM and Microsoft, and are involved in creating the latest hardware and software products.

Contact us

For further information please contact our Recruitment and Admission Office admissions@nottingham.edu.cn.

How to apply

International applications can be made by email, direct to the University. Download our application form.

Tuition fee

Fees are 90,000 CNY for domestic and international applicants.

Scholarships

A number of partial scholarships are on offer for academically talented international students. Take a look at our scholarships schemes.

Entry requirements

International students can view our country information for specific entry requirements. If your country is not listed, please feel free to contact us.

Chinese students can review our domestic admissions pages.

Quick Links

Module Catalogue

Programme Specifications