Jump to body content. Jump to course search.
View our beta design and tell us what you think View this page on beta
Postgraduate Courses 2017/18

Advanced Computer Science (Computational Intelligence) - MSc



The Advanced Computer Science (Computational Intelligence) MSc programme combines a wide choice of advanced topics in computer science with specialist modules relating to computational intelligence, including logic-based, connectionist and evolutionary artificial intelligence, inspirations from the natural world, practical applications and the philosophy of machine reasoning.

While studying a taught Master’s programme at the School of Computing, you can gain work experience through our industrial placement scheme or with the Kent IT Consultancy (KITC), which provides a project-based consultancy service to businesses in the region. We have strong links with industry including Cisco, IBM, Microsoft and Oracle and are among the top ten in the UK for graduate employment prospects.

The programme is aimed at graduates considering a career in research and development, and would also provide an excellent foundation for PhD study.

This programme is available with an optional industrial placement.

About the School of Computing

Our world-leading researchers, in key areas such as systems security, programming languages, communications, computational intelligence and memory management, and in interdisciplinary work with biosciences and psychology, earned us an outstanding result in the most recent national research assessment.

In addition, two of our staff have been honoured as Distinguished Scientists by the ACM and we have also held Royal Society Industrial Fellowships.

The School hosts the University's GCHQ/EPSRC accredited Academic Centre of Excellence in Cyber Security Research, one of only 13 in the country.

As an internationally recognised Centre of Excellence for programming education, the School of Computing is a leader in computer science teaching. Two of our staff have received the ACM SIGCSE Award for Outstanding Contribution to Computer Science Education. We are also home to two National Teaching Fellows, to authors of widely used textbooks and to award-winning teaching systems such as BlueJ.

Think Kent video series

Computers are very good at mechanical tasks but can they be creative? In this talk, Dr Anna Jordanous from the School of Computing looks at why we would want to study computers being creative and what we can learn from this work. Anna is based at the Medway campus and teaches at both Canterbury and Medway.

National ratings

In the Research Excellence Framework (REF) 2014, research by the School of Computing was ranked 12th in the UK for research intensity.

An impressive 98% of our research was judged to be of international quality, with 81% of this judged world-leading or internationally excellent. The School’s environment was judged to be conducive to supporting the development of research of international excellence.

Course structure


The following modules are indicative of those offered on this programme. This list is based on the current curriculum and may change year to year in response to new curriculum developments and innovation.  Most programmes will require you to study a combination of compulsory and optional modules. You may also have the option to take modules from other programmes so that you may customise your programme and explore other subject areas that interest you.

CO880 - Project and Dissertation (60 credits)

Students choose their project near the end of term 1 in coordination with the Project Research module (CO885). Projects are normally selected from a list of suggestions proposed by the school, a number of which may involve external collaboration. Alternatively, students may propose a project of their own if a suitable member of academic staff is available to act as the supervisor. In all cases the particular project must be appropriate for, and relevant to, the student's programme of study.

The project consists of an extended period during which students work on a specific piece of project work and a report on this work in the form of a dissertation. The project can be carried out individually or in groups, but the dissertation will always be individual. The project examines the student's ability to research the literature and related technologies, to understand and expand on a specific technical problem commensurate with their programme of study and relate it to other work, to carry out investigations and practical work generally including programming to describe results and draw conclusions from them and to write a coherent and well organised dissertation.

Credits: 60 credits (30 ECTS credits).

Read more

CO885 - Project Research (15 credits)

The crowning piece of most Masters degrees is the Project and Dissertation in which you apply a wide range of skills learned in the taught modules to an interesting research problem or practical application of your choice. The Project Research module provides useful transferable skills for doing the project, and supports you in some preparatory tasks such as literature study and project planning.

Training in research methods is provided through a series of workshops, covering the following topics:

• Introduction to research

• Project selection

• Topic analysis

• Information gathering

• Simulation, experimentation and data analysis

• Writing about research

• Presenting research

• Intellectual property

• The publication process

• The review process

The module culminates in a mini-conference where students present their research.

Credits: 15 credits (7.5 ECTS credits).

Read more

CO881 - Object-Oriented Programming (15 credits)

This module provides an introduction to object-oriented programming using the popular Java language. It is designed for beginners who have not studied computer programming before. By the end students will be able to develop simple programmes using Java. (Note that students with substantial prior experience of programming take module CO871 Advanced Java for Programmers[1] instead.)

. Computer architecture, operating systems and application software.

•Software development tools (editors, compilers, etc)

•The wider software development process

•Programming paradigms and languages

•The concept of algorithms

•Sequences of statements and order of execution

•Classes, objects and packages (what they are and how to use them)

•Primitive data types, variables and expressions

•Methods and parameters

•Control structures (selection, repetition)

•Input and output

•Coding style and inline documentation

•Online documentation

Credits: 15 credits (7.5 ECTS credits).

Read more

CO871 - Advanced Java for Programmers (15 credits)

This module provides for well-qualified computer science students entering the MSc programme from a range of backgrounds. These students will have good programming skills but will not necessarily have used Java or another object-oriented language extensively. This module seeks to ensure that students have the Java and object-oriented design skills necessary for the rest of their programme.

Credits: 15 credits (7.5 ECTS credits).

Read more

CO832 - Data Mining and Knowledge Discovery (15 credits)

This module explores a range of different data mining and knowledge discovery techniques and algorithms. You learn about the strengths and weaknesses of different techniques and how to choose the most appropriate for any particular task. You use a state-of-the-art data-mining tool, and learn to evaluate the quality of discovered knowledge.

Credits: 15 credits (7.5 ECTS credits).

Read more

CO882 - Advanced Object-Oriented Programming (15 credits)

Building upon CO881 Introduction to Object-Oriented Programming, this module covers the design and implementation of high-quality software using OO techniques. Systems are modelled as configurations of objects communicating with one another. Techniques (e.g. inheritance) are introduced which allow objects to play different roles within a system. These two concepts are key to the support for adaptation and reuse that OOP provides. Much emphasis will be placed on gaining a deep understanding of these concepts and applying them in practice by developing programs in Java. The remainder of the module will explore software component frameworks, specifically those that come packaged with Java, placing most emphasis on the frameworks to support the structuring and manipulation of data (data structures and algorithms).

Credits: 15 credits (7.5 ECTS credits).

Read more

CO884 - Logic and Logic Programming (15 credits)

This module contains four main components, several of which are at the forefront of the academic discipline and are informed by research:

1) Propositional and predicate logic, and resolution.

• the formal languages of propositional logic and predicate logic

• the role of resolution in theorem proving and logic programming

2) Prolog programming

• a thorough introduction to the Prolog programming language and the concept of declarative coding

3) Search Techniques

• generic search algorithms that are widely applied in solving computationally hard problems

4) Constraint Logic Programming

• how constraint satisfaction is useful in search and how this emerging paradigm fits with logic programming

Credits: 15 credits (7.5 ECTS credits).

Read more

CO836 - Cognitive Neural Networks (15 credits)

Introduction to cognitive neural networks.

Neural networks will be placed into a historical perspective related to symbolic approaches and in the context of the artificial intelligence hypothesis. Students will familiarise themselves with the Leabra environment.

The individual neuron.

The idea of the components of a neuron as a 'detector' will be developed. Neural networks will be explained in terms of the biology of the brain at a cellular electro-transmission level. The neurobiology will be abstracted into an initial neural network framework, i.e. a set of mathematical equations. Single neuron simulations.

Networks of Neurons.

A general framework will be provided for neural network architectures both at an abstract level and in terms of networks in the cortex. Unidirectional (feedforward) and bi-directional (recurrent) interactions will be explained together with inhibitory mechanisms.

Model Learning.

A simple Hebbian model of learning will be outlined, pertaining to neurobiology and neural networks. Other models of unsupervised learning will be introduced.

Task Learning.

Error-driven task learning will be outlined; the delta rule and back propagation will be presented. A discussion of the biological implausibility of back propagation networks will follow. Motivated by this implausibility, the generalised recirculation algorithm will be introduced and its mathematical formulation and properties discussed.

Credits: 15 credits (7.5 ECTS credits).

Read more

CO837 - Natural Computation (15 credits)

There is an increasing use of nature-inspired computational techniques in computer science. These include the use of biology as a source of inspiration for solving computational problems, such as developments in evolutionary algorithms and swarm intelligence. It is therefore proposed to allow students the opportunity to become exposed to these types of methods for use in their late careers.

Credits: 15 credits (7.5 ECTS credits).

Read more

CO838 - Internet of Things and Mobile Devices (15 credits)

The module will cover a mixture of theoretical and practical topics in the area of mobile devices and the Internet of Things (IoT), that is, the use of Internet technologies to access and interact with objects in the physical world. This will include coverage of the range of sensor and actuator devices available, ways in which they communicate and compute, methods for getting information to and from IoT-enabled devices, ways of visualising and processing data gained from the IoT, and associated privacy and security issues. A practical component will consist of building the hardware and software for a sensor network and a system to visualise data from that network. Application development for mobile devices such as smartphones will also be introduced using a popular mobile platform.

Credits: 15 credits (7.5 ECTS credits).

Read more

Show more...

CO839 - Data Science (15 credits)

The amount of data generated worldwide is more than doubling every year. Traditional data analysis techniques are inadequate for dealing with the vast ocean of data. This module introduces modern techniques, platforms and tools for analysing large data sets efficiently, along with key applications, to equip students to join the new generation of data scientists sought after by industry and academia.

• Information theory and information entropy

• More: it's all data rather than samples

• Messy: it’s disorder/uncertainty rather than accuracy (Chua’s local activity)

• Correlation: it’s correlation rather than causation

• Open Data

• Data ethics: algorithmic transparency, bias, and discrimination.

• Big personal data and data protection

• Linear programming

• Data civilisation: creating tools for pervasive understanding of publicly available data

• Deep learning

• Predictive analytics of sensor/mobile/social networks

• Digital/personal healthcare systems

• Next generation data scientists

Credits: 15 credits (7.5 ECTS credits).

Read more

CO841 - Computing Law, Contracts and Professional Responsibility (15 credits)

Synopsis of curriculum.

• Professional issues and professional organisations.

• Data privacy legislation, and other UK laws relating to the professional use of computer systems.Criminal law relating to networked computer use, including new Anti-Terrorism legislation;and their application.

• Intellectual Property Rights, including Copyright, Patent and explicit IPR Legislation.• Contract Law, with a specific focus on vendor-client contracts, and related issues.

• Health & Safety issues.

• Computer-based Projects, including the vendor-client relationship and professional responsibilities, and examples of real-life contracts that have exposed vendor or supplier to unacceptable commercial risks.

However, as this is a rapidly evolving field, specific topics will change from year to year, as both computer law and professional responsibilities continue to evolve.

Credits: 15 credits (7.5 ECTS credits).

Read more

CO846 - Cloud Computing (15 credits)

From Wikipedia

"Cloud computing is Internet-based computing, whereby shared servers provide resources, software, and data to computers and other devices on demand, as with the electricity grid. Cloud computing is a natural evolution of the widespread adoption of virtualization, service-oriented architecture and utility computing. Details are abstracted from consumers, who no longer have need for expertise in, or control over, the technology infrastructure "in the cloud" that supports them.

Cloud computing describes a new supplement, consumption, and delivery model for IT services based on the Internet, and it typically involves over-the-Internet provision of dynamically scalable and often virtualized resources. It is a byproduct and consequence of the ease-of-access to remote computing sites provided by the Internet. This frequently takes the form of web-based tools or applications that users can access and use through a web browser as if it were a program installed locally on their own computer."

The curriculum will include:

• Overview of web services and their use in grid/cloud computing;

• Review grid computing technologies and the relations and differences between grid computing and cloud computing;

• Virtualisation technologies, tools for cloud computing (Xen or KVM);

• Open source cloud infrastructures and applications, including Hadoop,Eucalyptus etc;

• Cutting edge commercial cloud infrastructure and applications.

Credits: 15 credits (7.5 ECTS credits).

Read more

CO528 - Introduction to Intelligent Systems (15 credits)

This module covers the basic principles of machine learning and the kinds of problems that can be solved by such techniques. You learn about the philosophy of AI, how knowledge is represented and algorithms to search state spaces. The module also provides an introduction to both machine learning and biologically inspired computation.

Credits: 15 credits (7.5 ECTS credits).

Read more

CO545 - Functional and Concurrent Programming (15 credits)

This module will introduce students to fundamental concepts of functional and concurrent programming, using a suitable language (e.g. Erlang) as a vehicle to put these concepts into practice. The first part of the module will cover basic ideas in functional programming, such as expressions, types, values, lists, pattern-matching and recursion, together with the specific language concurrency model, including process creation, message sending and receiving. Good concurrent design practices will be considered, based on networks of communicating processes (e.g. Actor and CSP models), and avoiding problems such as deadlock, livelock and starvation.

The later part of the module will cover more advanced topics (higher-order functions) and look at alternative concurrency models (e.g. synchronous, channel-based, join-based and shared-memory) and their relationship to the model described in the first part of the module. Alongside this, consideration will be given to the relevance and applicability of functional and concurrent programming for use in real applications.

Credits: 15 credits (7.5 ECTS credits).

Read more

CO641 - Computer Graphics and Animation (15 credits)

Computer graphics and animation are important for a variety of technical and artistic applications including web design, HCI and GUI development, games and simulations, digital photography and cinema, medical and scientific visualization, etc.

This module introduces the subject from the perspective of computing. You will learn about technologies and techniques for modeling, manipulating, capturing, displaying and storing 2D and 3D scenes, digital images, animations and video. You will also gain practical experience of 3D modelling and animation tools.

Digital Imaging and Video:

Human vision

Colour models

Images, video and 3D

Capture and display

Enhancement and conversion

Formats and compression (e.g. GIF, JPEG, MPEG)

Computer Graphics:

Graphics pipeline

3D object and scene modelling with polygon meshes


Projection, clipping and visible surface determination

Illumination and shading

Ray tracing and photorealism

Computer Animation:

Key-frame animation

Warping and morphing

Articulated figures

Kinematics, dynamics and collision detection

Particle systems and flocking

Computer-generated human characters and video-realism

Credits: 15 credits (7.5 ECTS credits).

Read more

CO645 - IT Consultancy Practice 2 (15 credits)

Students taking this module will undertake one or (typically) more assignments for the Kent IT Clinic (KITC). Each assignment will be of one of three types:

Work on one of KITC’s contracts with an external client. To the extent that client-funded work allows, every student will be given at least one assignment of this type. Wherever practical, a student will be encouraged to participate in the negotiation and pricing of contracts, under the ultimate supervision of KITC management. For each assignment, the student may work on the assignment individually or as part of a group, as directed by KITC. A contribution to the infrastructure of KITC itself.

A contribution to the infrastructure of KITC itself. These assignments work in a similar way to external assignments, but with KITC as the client.

Formulating a costed proposal for the future development of KITC, and presenting reasoned argument in support of the proposal to KITC management, as a candidate for inclusion in KITC’s strategic plan for the following academic year.

Credits: 15 credits (7.5 ECTS credits).

Read more

CO834 - Trust, Security and Privacy Management (15 credits)

This module investigates the whole process of security management. A holistic view of security management is taken, starting with risk management and the formulation of security policies. Technical subjects include a description of the various security models, and showing how authorisation policies can be automatically enforced. The legal and privacy issues associated with information management are also addressed, as are the usability issues of security technologies. Finally, the module concludes by investigating how security has already been inbuilt into some existing applications, and how security issues will effect the uptake of ubiquitous computing systems

Credits: 15 credits (7.5 ECTS credits).

Read more

CO874 - Networks and Network Security (15 credits)

A synopsis of the curriculumIntroduction, including a review of network techniques, switching and multiple access.High speed local area networks.Network protocols, including data link, network, transport and application layers.Real time data transmission and quality of service.Naming and addressing, including material on the domain name system, dynamic IP address allocation and address translation systems.Routing in data networksNetwork services.Firewalls and layer 3 network security.Recent developments. Topic will change from year to year and will be addressed prinicipally by research seminars and student centred research.

Credits: 15 credits (7.5 ECTS credits).

Read more

CO876 - Computer Security (15 credits)

• A study of cryptographic algorithms including symmetric and asymmetric techniques and the distinction between encryption and signatures.

• Security mechanisms used with operating systems, including: access control lists and capabilities. Trusted operating systems and common criteria for evaluation.

• Problems of network security including wiretap, replay, masquerade and denial of service. Mechanisms to provide security such as firewalls and VPNs.

• Viruses and worms.

• Distributed Mechanisms, including client authentication (Needham-Schroeder, Kerberos and others); public key infrastructures and certification, with treatment of chains and authority, and the problem of revocation.

• Digital rights management systems: CSS, OMA DRM. Using digital watermarking techniques for digital rights management.

• Security of IEEE 802.11 networks (aka Wi-Fi), presentation and discussion of their security protocols: WEP, WPA, WPA2, IEEE 802.11i and RSN.

Credits: 15 credits (7.5 ECTS credits).

Read more

CO889 - C++ Programming (15 credits)

This module builds on CO871 Advanced Java for Programmers and extends your knowledge to cover the language C++ which is widely used by professional programmers.


Introduction to the C and C++ languages, relating to their previous knowledge of Java, including interfaces, classes, abstract classes, inheritance, interfaces, overloading and templates;

Review of command-line based development, including compiling, debugging and makefiles;

C++ specific items, including multiple inheritance, namespaces, friend classes, virtual methods, pointers, casting operators and explicit memory management;

Low-level programming in C++, covering considerations for inline assembly, linkage with other languages and mobile platform development;

High-level programming in C++, covering large scale applications, efficient programming (e.g. games) and design patterns;

Coverage of standard libraries, where to look for these, and how to use them;

Credits: 15 credits (7.5 ECTS credits).

Read more

CO890 - Concurrency and Parallelism (15 credits)

Concurrent design and programming skills are of growing importance as multi-core processor technology advances. A sound understanding of fundamental concurrency concepts and obstacles is essential. This module introduces fundamental theories of concurrency. It discusses how designs can be made parallel and identifies the common faults in concurrent programs and how to avoid them. It introduces a range of widely used programming paradigms and techniques for writing concurrent programmes.


Concurrency and parallelism, and their applications to software design.

Identifying parallelisable problems and parallelisation techniques.

Parallel algorithms and how to design them.

Common faults in concurrent and parallel programs.

Complexity, performance measurement and scheduling techniques.

Multi-core and emerging architectures.

Multi-core programming paradigms:

Data-parallel techniques: SIMD, MIMD, vector processing and GPGPUs.

Shared-memory techniques: conventional threads-and-locks, structured parallelism, transactional memory.

Message-passing techniques: process-oriented programming, mailboxes, tuplespaces.

Credits: 15 credits (7.5 ECTS credits).

Read more

CO892 - Advanced Network Security (15 credits)

Email security. Spam: why? ; spam 'click through' rates; targeted spam; spam filtering systems. Phishing attacks; blocking fake sites; browser based defences. Email based malware and defences against this.

Intrusion detection and prevention systems; honey pots.

Denial of service; distributed denial of service; bot-nets; methods to detect complex denial of service attacks and defences against them.

Problems of eavesdropping; security in wireless networks.

Use of router based firewalls as a method to protect intranets: de-militarized zones, bastion hosts; internal intranet firewalls; personal firewalls.

Proxy based firewall systems: control over which parts of the Internet are accessible; black-lists and white-lists; key-word based filtering; time based controls.

Credits: 15 credits (7.5 ECTS credits).

Read more

CO894 - Development Frameworks (15 credits)

• Introduction to software development environments and the facilities they provide.

• Development of simple applications in these environments, using a broad range of the facilities provided.

• Software libraries and frameworks, and their use in developing and testing software systems.

• Use of development frameworks' facilities for project and source-code management, automated testing, refactoring and profiling.

• Deploying applications across multiple platforms using installers and build-systems; continuous integration and deployment

Credits: 15 credits (7.5 ECTS credits).

Read more

CO899 - System Security (15 credits)


Federated identity management: OpenID, SAML, Liberty Alliance, ...

Privacy protection

Viruses and worms


Secure architectures

Formal verification methods

E-mail security: SMTP-MIME, S/MIME

Secure software development methods and tools, common criteria, code inspections, code coverage tools, code evaluation tools etc.

Credits: 15 credits (7.5 ECTS credits).

Read more

PL583 - Philosophy of Cognitive Science and Artificial Intelligence (30 credits)

The module will study some of the major works in the history of modern philosophy of cognitive science and artificial intelligence. An indicative list of topics is: The Turing test; the Chinese Room argument; the frame problem; connectionism; extended and embodied cognition; artificial consciousness. The approach will be philosophical and critical, and will involve the close reading of texts. Students will be expected to engage critically with the works being studied and to formulate and argue for their own views on the issues covered.

Credits: 30 credits (15 ECTS credits).

Read more

Teaching and Assessment

Assessment is through a mixture of written examinations and coursework, the relative weights of which vary according to the nature of the module. The final project is assessed by a dissertation, except for the MSc in IT Consultancy for which the practical consultancy work is assessed through a series of reports covering each of the projects undertaken.

Programme aims

This programme aims to:

  • enhance the career prospects of graduates seeking employment in the computing/IT sector
  • prepare you for research and/or professional practice at the forefront of the discipline
  • develop an integrated and critically aware understanding of one or more areas of computing/IT and their applications (according to your degree title)
  • develop a variety of advanced intellectual and transferable skills
  • equip you with the lifelong learning skills necessary to keep abreast of future developments in the field.

Learning outcomes

Knowledge and understanding

You gain knowledge and understanding of:

  • how to engineer software systems that satisfy the needs of customers, using a state-of-the art methodology and an industrially-relevant programming language
  • a broad variety of advanced topics relating to computing/IT (the specific topics will depend on the optional modules you chose and may vary from year to year in response to developments in the field, staff changes etc)
  • the specification, design and implementation of software systems for a variety of platforms and across a range of application domains
  • the theoretical foundations of computer science
  • the architecture of computer systems including hardware components and operating systems in terms of their functionality, performance and interactions
  • the specification, design and implementation of information systems using the latest database and web technologies
  • professional, legal, social, cultural and ethical issues related to your chosen field of computing.

Intellectual skills

You develop intellectual skills in:

  • the ability to identify, analyse and formulate criteria and specifications appropriate to a given problem
  • the ability to model problems and their solutions with an awareness of any tradeoffs involved
  • the ability to evaluate systems, processes or methodologies in terms of general quality attributes and possible tradeoffs
  • the ability to deal with complex issues both systematically and creatively
  • the ability to work with self-direction and originality in tackling and solving problems
  • the ability to make sound judgements in the absence of complete data
  • the ability to review a research paper or technical report critically and to present your findings to a group of peers
  • the ability to plan and execute a substantial research or development-based project and to report the work in the form of a dissertation.

Subject-specific skills

You gain subject-specific skills in:

  • the ability to specify, design, implement and test computer-based systems
  • the ability to deploy effectively the tools used for the construction and documentation of software
  • the ability to undertake practical work that explores techniques covered in the programme and to analyse and comment on the findings.

Transferable skills

You gain the following transferable skills:

  • the ability to plan, work and study independently and to use relevant resources in a manner that reflects good practice
  • the ability to make effective use of general IT facilities, including information retrieval skills
  • time management and organisational skills, including the ability to manage your own learning and development
  • an appreciation of the importance of continued professional development as part of lifelong learning
  • the ability to work effectively as a member of a team
  • the ability to communicate technical issues clearly to specialist and nonspecialist
  • the ability to present ideas, arguments and results in the form of a well-structured written report
  • the ability to act autonomously in planning and implementing tasks at professional or equivalent level.


Students can gain practical work experience as part of their degree through our industrial placements scheme and Kent IT Consultancy. Both of these opportunities consolidate academic skills with real world experience, giving our graduates a significant advantage in the jobs market.

Our graduates go on to work for leading companies including Cisco, GlaxoSmithKline, IBM, Intel, Lilly, Microsoft, Morgan Stanley, Thomson Reuters and T-Mobile. Many have gone on to develop their careers as project leaders and managers.


Study support

We provide an extensive support framework for our research students and encourage involvement in the international research community.

Postgraduate resources

The School of Computing has a large range of equipment providing both UNIX (TM) and PC-based systems and a cluster facility consisting of 30 Linux-based PCs for parallel computation. New resources include a multi-core enterprise server with 128 hardware threads and a virtual machine server that supports computer security experiments.

All students benefit from a well-stocked library, giving access to e-books and online journals as well as books, and a high bandwidth internet gateway. The School and its research groups hold a series of regular seminars presented by staff as well as by visiting speakers and our students are welcome to attend.

The School of Computing has recently built a makerspace on the Canterbury campus, which offers exciting new teaching and collaboration opportunities. Among other equipment, it contains milling machines, a 3D printer, laser cutter and extensive space for building and making digital artefacts.

Our taught postgraduate students enjoy a high level of access to academic staff and have their own dedicated laboratory and study room. Students whose course includes an industrial placement are supported by a dedicated team which helps them gain a suitable position and provides support throughout the placement.

Our full-time research students are offered funds for academic conference travel, to assist in publishing papers and getting involved in the international community. You have your own desk and PC/laptop in a research office, which is shared by other research students. We also provide substantial support, principally via one-to-one supervision of research students and well-integrated, active research groups, where you have the opportunity to test and discuss your ideas in a friendly environment. You also go on an activity weekend at an outward-bound centre in the Kent countryside, where you will take part in team-building exercises designed to help you learn how to communicate effectively and work together to solve work-based problems.

Dynamic publishing culture

Staff and research students publish regularly and widely in journals, conference proceedings and books. Among others, they have recently contributed to: Journal of Artificial Evolution and Applications; International Journal of Computer and Telecommunications Networking; Journal of Visual Languages and Computing; Journal in Computer Virology.

Links with industry

Strong links with industry underpin all our work, notably with Cisco, Microsoft, Oracle, IBM, Agilent Technologies, Erlang Solutions, Hewlett Packard Laboratories, Ericsson and Nexor.

The Kent IT Consultancy

The Kent IT Consultancy (KITC) provides School of Computing students with consultancy experience while studying. KITC provides a project-based consulting service to small businesses in Kent. Its wide variety of services range from e-commerce solutions and network support contracts to substantial software development projects.

Global Skills Award

All students registered for a taught Master's programme are eligible to apply for a place on our Global Skills Award Programme. The programme is designed to broaden your understanding of global issues and current affairs as well as to develop personal skills which will enhance your employability.  

Entry requirements

A first, 2.1 or good 2.2 honours degree (or equivalent) in computing or a related subject.

General entry requirements

All applicants are considered on an individual basis and additional qualifications, and professional qualifications and experience will also be taken into account when considering applications. 

International students

Please see our International Student website for entry requirements by country and other relevant information for your country. 

English language entry requirements

For detailed information see our English language requirements web pages. 

Please note that if you are required to meet an English language condition, we offer a number of pre-sessional courses in English for Academic Purposes through Kent International Pathways.

Research areas

Programming Languages and Systems Group

Our research involves all aspects of programming languages and systems, from fundamental theory to practical implementation. The Group has interests across a wide range of programming paradigms: object-oriented, concurrent, functional and logic. We research the links between logic and programming languages, the verification of the correctness of programs, and develop tools for refactoring, tracing and testing. We are interested in incorporating safe concurrent programming practices into language design.

The Group is also interested in practical implementation of programming languages, from massively concurrent parallel processing to batteryoperated mobile systems. Particular research topics include lightweight multi-threading kernels, highly concurrent operating systems, memory managers and garbage collectors.

Research areas include:

  • theoretical and architectural questions concerning designs for both hardware and software
  • abstractions and implementations of concurrency in programming languages
  • formal specification of systems and their architecture
  • design patterns and tools for enabling the safe and scalable exploitation of concurrency
  • compilers, memory managers and garbage collectors
  • lightweight multi-threading kernels and highly concurrent operating systems • refactoring of functional and concurrent languages
  • applications of formal methods to provably correct, secure systems
  • model checking and abstract interpretation, including applications to discovering security vulnerabilities
  • program verification and theorem proving

Computational Intelligence Group

This Group brings together interdisciplinary researchers investigating the interface between computer science and the domains of bioscience and cognition. In terms of applying computation to other domains, we have experts in investigating the modelling of gene expression and modeling of human attention, emotions and reasoning. From the perspective of applying biological metaphors to computation, we research new computational methods such as genetic algorithms and swarm intelligence.

The Group also develops novel techniques for data mining, visualisation and simulation. These use the results of interdisciplinary research for finding solutions to computationally expensive problems.

The Group has strong links with other schools at the University of Kent, as well as with universities, hospitals and scientific research institutes throughout the country and internationally.

Areas of research activity within the group include:

  • bio-inspired computing including neural networks, evolutionary
  • computing and swarm intelligence
  • application of computational simulations in biology and medicine
  • systems biology including gene expression modelling
  • theory and application of diagrammatic visualisation methods
  • data mining and knowledge discovery
  • construction of computational models of the human cognitive and neural system.

Security Research Group

Security - of information, systems, and communications - has become a central issue in our society. Interaction between people's personal devices (far beyond just phones and computers) and the rest of the connected world is nearly continuous; and with the advent of the Internet Of Things its scope will only grow.

In that context, so much can go wrong - every communication can potentially be intercepted, modified, or spoofed, and surreptitiously obtained data can be commercially exploited or used for privacy invasions. In fact, data flows in society are such that many people already feel they have lost control over where (their) data goes.

The security research group operates within that context. All members bring a particular technological emphasis - the analysis of particular classes of security problems or their solutions - but are fully aware that it all fits within a wider context of people using systems and communicating data in secure and insecure ways, and how external pressures beyond the mere technology impact on that. The topic of computer security then naturally widens to include topics like privacy, cyber crime, and ethics and law relating to computing, as well as bringing in aspects of psychology, sociology and economics.

From that perspective, the Security research group played a key role in setting up, and continues to be a core contributor to, the University's Interdisciplinary Cyber Security Research Centre, see www.cybersecurity.kent.ac.uk. The centre achieved EPSRC/GCHQ accreditation as an Academic Centre of Excellence in 2015, one of only 13 in the country.

The group has a strong involvement with postgraduate teaching in this area. It teaches most of the core modules in MSc programmes in Computer Security, and Networks and Security. A new (from September 2017) MSc Course in Cyber Security has been provisionally certified by GCHQ. The group is also involved in undergraduate modules in this area, as well as postgraduate programmes in other schools such as the MSc Information Security and Biometrics, and in UK activities to define curricula in Cyber Security.

Areas of Research Activity

Members are engaged in the following areas of research (research areas in more detail) .

Data Ethics and Privacy
  • Identity Management
  • Blockchain and Distributed Ledger Technology
  • Human Aspects of Security
  • Cloud Security
  • Self-Adaptation applied to Security and Privacy
  • Tools for Vulnerability Analysis
  • Trust Management and Metrics and Reputation Systems
  • Steganography and Steganalysis
  • Formal Methods for Cryptography
  • Quantum Computation and Information, with Security Applications 
  • Authentication
  • Internet Of Things Security and Privacy
  • Cybercrime
  • Authorisation Infrastructures

Computing Education Group

We focus on disciplinary-specific pedagogy, especially the teaching and learning of computer science and programming.

Our research interests focus on understanding the aspects of learning that are specific to computing education, and which range from examining general theories of learning, through thematically focused investigations (such as gender), to tool construction. We examine education from multiple aspects, including supporting computing education research infrastructure, working with teachers, or focusing on student learning.

Areas of interest include:

  • building an evidence base of research on early programming education
  • tool support for learning and teaching of programming, including custom-made development tools, such as educational programming languages, or development environments, which can adapt to changes in programming paradigms and technology and pedagogical advances
  • analysis of data generated as a part of the learning process, which could be text-based, naturally occurring in the classroom (eg, assessments), generated as a reflective process on learning (eg, diaries), or generated from interaction with programming environments.

Data Science Research Group

Data Science is about developing new techniques to better understand data and draws on many areas within and outside of computer science. Our research group develops and applies methods to interpret rich information sources.Our research comes under three themes:


  • Dr Caroline Li gathers and analyses EEG data for to study of seasonal affective disorder.
  • Dr Srivas Chennu works on neurodynamics of consciousness, developing new tools to study brain networks, including improved diagnostics and prognostics during emergence from coma. He also uses neural network modelling for predictive coding in cognition.
  • Professor Ian McLoughlin studies speech signal processing, human hearing, automatic speech recognition as well as deep neural network acoustic models.
  • Dr Palani Ramaswamy has worked on biological signal analysis, brain-computer interfaces and biometrics. He has applied machine learning techniques to these and other fields.


  • Dr Fernando Otero, Professor Alex Frietas and  Dr Matteo Migliavacca, have developed new search-based approaches to computation, such as ant colony optimisation methods for predicting protein function.
  • Professor Frank Wang has shown that memristors can provide a radically new way to construct neural networks. In addition he has developed models of cloud computing for big data.


  • Dr Michael Kampouridis and Dr Fernando Otero research in the areas of algorithmic trading and financial forecasting. They have worked with different types of data, such as foreign exchange ultra-high frequency data. Algorithms they've used include genetic programming and ant colony optimisation.
  • Dr Kampouridis works on the pricing of weather derivatives by using machine learning algorithms.

Staff research interests

Full details of staff research interests can be found on the School's website.

David Barnes: Senior Lecturer

Simulation and modelling for biosciences, the teaching of introductory programming, chess cheating and legacy software.


Dr Eerke Boiten: Senior Lecturer

Cyber security, including the use of formal methods, cryptography, privacy and data ethics. Refinement.


Professor Howard Bowman: Professor of Cognition and Logic

Human attention, emotions, reasoning; connectionist modelling; symbolic modelling; EEG recording and analysis methods; formal methods and concurrency theory.


Professor David Chadwick: Professor of Information Systems Security

Public key infrastructures; privilege management infrastructures; trust management; identity management; privacy management; policy based authorisation; cloud security; autonomic access controls and internet security research.


Dr Olaf Chitil: Lecturer

Semantics and theoretical foundations of programming languages; type theory; program transformation; compiler construction; message-passing- based concurrency; programming tools; how to write programs.


Dr Dominique Chu: Lecturer

Molecular computing (including biochemical computers), stochastic neural networks, complexity and computation, mathematical modelling of stochastic systems.


Dr Rogerio de Lemos: Senior Lecturer

Software engineering for self-adaptive systems: dynamic generation of management processes, abstractions for supporting self-adaptability and self-organisation, resilience evaluation; self-adaptive dependable and secure systems; architecting dependable systems: abstractions for fault tolerance, and verification and validation of dependable software architectures; software development for safety-critical systems; dependability and bio-inspired computing.


Professor Sally Fincher: Professor of Computing Education

The construction and boundaries of CS education; the teacher perspective, especially teacher decision-making; patterns and pattern languages, their use in knowledge-transfer, and their application to CS pedagogy.


Professor Alex Freitas: Professor of Computational Intelligence

Data mining; the biology of ageing; evolutionary algorithms; bioinformatics.


Dr Colin Johnson: Reader

Bioinformatics; computer simulation in biology; bio-inspired computing including genetic algorithms, genetic programming and swarm intelligence methods.


Professor Richard Jones: Professor of Computer Systems

Implementation of programming languages; memory management; garbage collection, distributed garbage collection; object demographics; program analysis for improved memory management; program visualisation. 


Dr Stefan Kahrs: Lecturer

Expressiveness of programming languages, type systems, term rewriting, infinitary rewriting.


Michael Kampouridis: Lecturer

Computational finance; application of computational intelligence (CI) techniques to business-related problems, such as economics and finance; use of evolutionary techniques (eg, genetic algorithms, genetic programming); financial forecasting; intelligent decision support systems for business.


Dr Andy King: Reader in Program Analysis

Abstract interpretation, logic programming and security.


Dr Caroline Li: Lecturer

Tools for controlling computer/robot using brain signal; body sensor data fusion for healthcare and sports; methods for diagnosing, classifying and monitoring states of brain health/ illness; signal processing and machine learning methods.


Fernando Otero: Lecturer

Development of ant colony optimisation algorithms for data mining; economic applications of data mining; bioinformatics; evolutionary algorithms, mainly genetic programming.


Scott Owens: Lecturer

Semantics of shared memory concurrency; design of programming languages; formal verification for software and interactive theorem proving.


Dr Peter Rodgers: Reader

Information visualisation; graph drawing; Euler diagrams.


Professor Simon Thompson: Professor of Logic and Computation

Functional programming in Haskell, OCaml and Erlang; refactoring functional programs: tool building, theory and practice; dependently-typed functional programming; testing of complex and concurrent systems using properties; property extraction from test suites. 


Gerald Tripp: Lecturer

Techniques for the analysis and control of high-speed packet networks, including system monitoring and network intrusion detection; use of special-purpose hardware and firmware designs to perform high-speed string and regular expression matching.


Ian Utting: Senior Lecturer

Tool support for teaching and learning in CS, especially programming, and especially small and mobile devices; large scale data-driven studies of initial programming education, especially using Black Box.


Professor Frank Wang: Professor of Future Computing; Head of School

Future computing; unconventional computing; non-Turing architecture; cloud computing; big data; deep learning; memristor; neural networks; nature-inspired computing; green computing.


Dr Laura Bocchi: Lecturer

Theory and application of session types, concurrency and service-oriented computing.


Dr Palaniappan Ramaswamy: Reader, Admissions Officer (Medway)

Analysis of biomedical signals (such as EEG, PCG and ECG) for various applications: brain-computer interface, biometrics, electrophysiological analysis, cardiovascular disease diagnosis and stress management. Also, analysis of speech and image data for various engineering and computer science applications. Tools utilised: advanced signal processing and machine learning (such as neural networks and genetic algorithms).


Professor Ian McLoughlin: Head of School (Medway)

Speech is the primary communications mechanism for humans, and is increasingly the way we interact with computers and mobile devices. In my research I deal with all aspects of speech, language and hearing, and ally this with powerful machine learning techniques that mimic how human brains acquire language and recognise sounds (machine hearing). My research team also works with speech-impaired patients to develop techniques that enable them to regain the power of speech in their daily lives.


Dr Matteo Migliavacca: Lecturer

Stream processing, database systems, parallel data processing, networked systems, cloud computing, distributed systems, big data.


Enquire or order a prospectus


Read our student profile


Admissions enquiries

T: +44 (0)1227 827272


Subject enquiries

T: +44 (0)1227 764000

E: computing@kent.ac.uk

School website


The 2017/18 annual tuition fees for this programme are:

Advanced Computer Science (Computational Intelligence) - MSc at Canterbury:
UK/EU Overseas
Full-time £6500 £16720
Part-time £3250 £8360
Advanced Computer Science (Computational Intelligence)with an Industrial Placement - MSc at Canterbury:
UK/EU Overseas
Full-time £6500 £16720
Part-time £3250 £8360

For students continuing on this programme fees will increase year on year by no more than RPI + 3% in each academic year of study except where regulated.* If you are uncertain about your fee status please contact information@kent.ac.uk

The University of Kent makes every effort to ensure that the information contained in its publicity materials is fair and accurate and to provide educational services as described. However, the courses, services and other matters may be subject to change. Full details of our terms and conditions can be found at: www.kent.ac.uk/termsandconditions.

*Where fees are regulated (such as by the Department of Business Innovation and Skills or Research Council UK) they will be increased up to the allowable level.

Publishing Office - © University of Kent

The University of Kent, Canterbury, Kent, CT2 7NZ, T: +44 (0)1227 764000

View our beta design and tell us what you think View this page on beta