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. 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.
About the School of Computing
Our world-leading researchers, in key areas such as cyber security, programming languages, computational intelligence and data science, earned us an outstanding result in the recent Research Excellence Framework (REF). Our submission was ranked 12th in the UK for research intensity, with an impressive 98% of our research judged to be of international quality.
Strong links with industry underpin all our work, notably with Cisco Systems Inc, Microsoft, Oracle, IBM, Nvidia, Erlang Solutions, GCHQ and Google.
Our programmes are taught by leading researchers who are experts in their fields. The School of Computing at Kent is home to several authors of leading textbooks, a National Teaching Fellow, an IET (Institute of Engineering and Technology) Fellow and two Association of Computer Machinery (ACM) award-winning scientists. Kent was awarded gold, the highest rating, in the UK Government’s Teaching Excellence Framework*.
While studying with us, you can gain work experience through an industrial placement. Our dedicated placement team can help you gain a suitable paid position and provide support throughout your placement.
We have a large range of equipment providing both Linux and PC-based systems. Our resources include a multicore enterprise server and a virtual machine server that supports computer security experiments.
The School also has a makerspace, The Shed, which offers exciting teaching and collaboration opportunities. Among other equipment it contains a milling machine, 3D printers, laser cutter and extensive space for building and making digital artefacts.
Think Kent video series
Computers are good at mechanical tasks but can they be creative? In this talk, Dr Anna Jordanous looks at why we would want to study computers being creative and what we can learn from this work.
*The University of Kent's Statement of Findings can be found here
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.
Each of our taught MSc courses is available in several formats to accommodate students from different backgrounds and to provide maximum flexibility. See more about Taught Master's course formats.
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.
|Modules may include||Credits|
CO885 - Project Research
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.Read more
CO889 - C++ Programming
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;Read more
CO871 - Advanced Java for Programmers
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.Read more
CO881 - Object-Oriented Programming
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 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 documentationRead more
CO882 - Advanced Object-Oriented Programming
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).Read more
CO884 - Logic and Logic Programming
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 programmingRead more
CO874 - Networks and Network Security
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.Read more
CO876 - Computer Security
• 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.Read more
CO890 - Concurrency and Parallelism
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.Read more
CO892 - Advanced Network Security
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.Read more
CO894 - Development Frameworks
• 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 deploymentRead more
CO899 - System Security
Federated identity management: OpenID, SAML, Liberty Alliance, ...
Viruses and worms
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.Read more
PL583 - Philosophy of Cognitive Science and Artificial Intelligence
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.Read more
CO528 - Introduction to Intelligent Systems
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.Read more
CO545 - Functional and Concurrent Programming
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.Read more
CO641 - Computer Graphics and Animation
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:
Images, video and 3D
Capture and display
Enhancement and conversion
Formats and compression (e.g. GIF, JPEG, MPEG)
3D object and scene modelling with polygon meshes
Projection, clipping and visible surface determination
Illumination and shading
Ray tracing and photorealism
Warping and morphing
Kinematics, dynamics and collision detection
Particle systems and flocking
Computer-generated human characters and video-realismRead more
CO645 - IT Consultancy Practice 2
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.Read more
CO832 - Data Mining and Knowledge Discovery
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.Read more
CO834 - Trust, Security and Privacy Management
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 systemsRead more
CO836 - Cognitive Neural Networks
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.
A simple Hebbian model of learning will be outlined, pertaining to neurobiology and neural networks. Other models of unsupervised learning will be introduced.
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.Read more
CO837 - Natural Computation
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.Read more
CO838 - Internet of Things and Mobile Devices
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.Read more
CO839 - Data Science
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 scientistsRead more
CO841 - Cyber Law
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.Read more
CO846 - Cloud Computing
"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.Read more
CO880 - Project and Dissertation
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.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.
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.
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.
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.
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.
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 specialists and non-specialists
- 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.
Our graduates have gone on to work in:
- software engineering
- mobile applications development
- systems analysis
- web design and e-commerce
- finance and insurance
Recent graduates have gone on to develop successful careers at leading companies such as:
- BAE Systems
- The Walt Disney Company
Help finding a job
The University has a friendly Careers and Employability Service, which can give you advice on how to:
- apply for jobs
- write a good CV
- perform well in interviews.
The School has a dedicated Employability Coordinator who is a useful contact for all student employability queries.
You can gain practical work experience as part of your degree through our industrial placements scheme - we have a dedicated Placement Team who can give advice and guidance. All our placements are in paid roles.
In previous years, students have worked at a wide range of large and small organisations, including well-known names such as:
- Kent Police
- Morgan Stanley
- The Walt Disney Company.
You can take your work placement abroad. Previous destinations include Hong Kong and the US.
An industrial placement gives you invaluable workplace experience, which greatly enhances your employment prospects and also helps put your academic learning into a real-world context.
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.
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.
A first, 2.1 or good 2.2 honours degree (or equivalent) in computing or a related subject.
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.
Please see our International Student website for entry requirements by country and other relevant information for your country.
English language entry requirements
The University requires all non-native speakers of English to reach a minimum standard of proficiency in written and spoken English before beginning a postgraduate degree. Certain subjects require a higher level.
For detailed information see our English language requirements web pages.
Need help with English?
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.
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 modelling 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.
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 battery-operated 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
Cyber 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 cyber 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 Cyber 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 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
- Internet Of Things Security and Privacy
- 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 the 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.View Profile
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.View Profile
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.View Profile
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.View Profile
Dr Dominique Chu: Lecturer
Molecular computing (including biochemical computers), stochastic neural networks, complexity and computation, mathematical modelling of stochastic systems.View Profile
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.View Profile
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.View Profile
Professor Alex Freitas: Professor of Computational Intelligence
Data mining; the biology of ageing; evolutionary algorithms; bioinformatics.View Profile
Dr Colin Johnson: Reader
Bioinformatics; computer simulation in biology; bio-inspired computing including genetic algorithms, genetic programming and swarm intelligence methods.View Profile
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.View Profile
Dr Stefan Kahrs: Lecturer
Expressiveness of programming languages, type systems, term rewriting, infinitary rewriting.View Profile
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.View Profile
Dr Andy King: Reader in Program Analysis
Abstract interpretation, logic programming and security.View Profile
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.View Profile
Fernando Otero: Lecturer
Development of ant colony optimisation algorithms for data mining; economic applications of data mining; bioinformatics; evolutionary algorithms, mainly genetic programming.View Profile
Scott Owens: Lecturer
Semantics of shared memory concurrency; design of programming languages; formal verification for software and interactive theorem proving.View Profile
Dr Peter Rodgers: Reader
Information visualisation; graph drawing; Euler diagrams.View Profile
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.View Profile
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.View Profile
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.View Profile
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.View Profile
Dr Laura Bocchi: Lecturer
Theory and application of session types, concurrency and service-oriented computing.View Profile
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).View Profile
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.View Profile
Dr Matteo Migliavacca: Lecturer
Stream processing, database systems, parallel data processing, networked systems, cloud computing, distributed systems, big data.View Profile
Dr Mark Batty: Senior Lecturer
Empirical testing of the behaviour of hardware and compilers, building formal models of parts of the system, the development of algorithms and data-structures that use fine-grained concurrency, and the verification of those pieces of concurrent code.View Profile
Dr Carlos Perez-Delgado: Lecturer
The advantages and limitations that quantum theory conveys to communication, computation, metrology, and security.View Profile
Professor Julio Hernandez-Castro: Professor of Computing
Computer and network security, cryptography and cryptanalysis, steganography and steganalysis, data loss prevention and RFID security.View Profile
Dr Marek Grzes: Lecturer
Machine learning, artificial intelligence for games, data analysis, probabilistic reasoning, and applications thereof.View Profile
Dr Anna Jordanous: Lecturer
Computational creativity and its evaluation, music informatics, digital humanities, knowledge modelling, Semantic Web, and natural language processing.View Profile
The 2018/19 annual tuition fees for this programme are:
|Advanced Computer Science (Computational Intelligence) - MSc at Canterbury:|
|Advanced Computer Science (Computational Intelligence)with an Industrial Placement - MSc at Canterbury:|
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 email@example.com
General additional costs
Find out more about general additional costs that you may pay when studying at Kent.
Search our scholarships finder for possible funding opportunities. You may find it helpful to look at both: