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.
I spent a year working as a Software Engineering intern for Cisco in San Jose, California.
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, professional qualifications and relevant experience may also be taken into account when considering applications.
Please see our International website for entry requirements by country and other relevant information. Due to visa restrictions, international fee-paying students cannot study part-time unless undertaking a distance or blended-learning programme with no on-campus provision.
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.
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.
Duration: 1 year full-time
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.
The crowning piece of most Masters degrees is the Masters Project 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.
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.
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.
Building upon 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).
This module contains four main components, several of which are at the forefront of the academic discipline and are informed by research: Propositional and predicate logic, and resolution; Prolog programming; Search Techniques; Constraint Logic Programming.
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 data mining tool, and learn to evaluate the quality of discovered knowledge.
Neural networks will be placed into a historical perspective related to neuro-biology and in the context of the artificial intelligence hypothesis. Students will familiarise themselves with the Leabra/Emergent environment.
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.
Students undertake several projects for the Kent IT Consultancy (KITC). Each of these will be either a commercial project for an external client, or an internal development project, e.g. developing a future service offering for the KITC.
In addition to project work, students will be expected to engage in ongoing tasks related to the operation of the consultancy, including marketing, sales and mentoring/buddying colleagues.
Each assignment will be carried out under the supervision of KITC management and in accordance with client requirements, with deliverables de?ned by negotiation with the client.
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. Project work, particularly with a development focus, may be undertaken in groups. However, the dissertations are produced individually. The project examines the student's ability to research the literature, to understand and expand on a specific problem commensurate with their programme of study and relate it to other work, to carry out investigations and development, as appropriate, and describe results and draw conclusions from them and to write a coherent and well organised dissertation demonstrating the student's individual reflection and achieved learning.
Introduction, 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 and their security issues. Problems of network security and mechanisms used to provide security such as firewalls. Real time data transmission and quality of service. Naming and addressing. Security of IEEE 802.11 networks. Recent developments: topics will change from year to year
• A general introduction to networks and networking protocols, especially TCP/IP.
• Overview of important Internet application protocols: HTTP, SMTP, DNS, LDAP.
• A study of cryptographic algorithms including symmetric and asymmetric techniques and the distinction between encryption and signatures.
• Security mechanisms used with operating systems, including: usernames/passwords, access control lists and capabilities.
• 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.
• Securing email systems: PGP and S/MIME
• Identity management systems: e.g. Shibboleth, Passport, CardSpace, OpenID.
• Basic introduction to information risk management and information security 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.
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. Application development for mobile devices such as smartphones will also be introduced using a popular mobile platform.
The module will explore existing and emerging legal issues in cyber security, cybercrime, privacy and data protection, including the domestic and cross-boundary legal regulatory frames and their associated ethical dimensions. Topics covered include cybercrime, privacy and data protection, Internet and cyber surveillance, cross-border information flows, and legal structures. Students will be challenged to critically examine the ethics and management of cyber data. It will require students to assess emerging legal, regulatory, privacy and data protection issues raised by access to personal information.
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 affect the uptake of ubiquitous computing 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.
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.
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 modelling, manipulating, capturing, displaying and storing visual scenes, digital images, animations and video. You will also gain practical experience of 3D modelling tools.
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.
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.
Email security issues: spam and phishing attacks; spam filtering systems. Spyware: system vulnerabilities; stealth techniques; detection and removal. Web based user tracking and adware. Network security and cybercrime. Data breaches and data loss prevention. Network forensics, network monitoring and packet analysis. Security of WiFi networks.
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.
The module looks at federated identity management, privacy protection, viruses and worms, hacking, secure architectures, formal verification methods, e-mail security, secure software development methods and tools.
The focus of the module is on the development of the advanced English language competence necessary for post graduate study in scientific disciplines. This includes the ability to interpret and evaluate authentic scientific texts; analyse, discuss and summarise written and visual information both in writing and orally; organise written texts effectively and submit them in grammatically accurate English, and present the results of research orally in a coherent and stimulating way.
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.
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:
You gain knowledge and understanding of:
You develop intellectual skills in:
You gain subject-specific skills in:
You gain the following transferable skills:
The 2020/21 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 details of when and how to pay fees and charges, please see our Student Finance Guide.
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 firstname.lastname@example.org
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:
In The Complete University Guide 2020, the University of Kent was ranked in the top 10 for research intensity. This is a measure of the proportion of staff involved in high-quality research in the university.
Please see the University League Tables 2020 for more information.
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.
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:
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:
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.
Members are engaged in the following areas of research (research areas in more detail) .
Data Ethics and Privacy
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:
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:
Full details of staff research interests can be found on the School's website.
Simulation and modelling for biosciences, the teaching of introductory programming, chess cheating and legacy software.View Profile
Human attention, emotions, reasoning; connectionist modelling; symbolic modelling; EEG recording and analysis methods; formal methods and concurrency theory.View Profile
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
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
Molecular computing (including biochemical computers), stochastic neural networks, complexity and computation, mathematical modelling of stochastic systems.View Profile
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
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
Data mining; the biology of ageing; evolutionary algorithms; bioinformatics.View Profile
Bioinformatics; computer simulation in biology; bio-inspired computing including genetic algorithms, genetic programming and swarm intelligence methods.View Profile
Implementation of programming languages; memory management; garbage collection, distributed garbage collection; object demographics; program analysis for improved memory management; program visualisation.View Profile
Expressiveness of programming languages, type systems, term rewriting, infinitary rewriting.View Profile
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
Abstract interpretation, logic programming and security.View Profile
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
Development of ant colony optimisation algorithms for data mining; economic applications of data mining; bioinformatics; evolutionary algorithms, mainly genetic programming.View Profile
Semantics of shared memory concurrency; design of programming languages; formal verification for software and interactive theorem proving.View Profile
Information visualisation; graph drawing; Euler diagrams.View Profile
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
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
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
Future computing; unconventional computing; non-Turing architecture; cloud computing; big data; deep learning; memristor; neural networks; nature-inspired computing; green computing.View Profile
Theory and application of session types, concurrency and service-oriented computing.View Profile
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
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
Stream processing, database systems, parallel data processing, networked systems, cloud computing, distributed systems, big data.View Profile
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
The advantages and limitations that quantum theory conveys to communication, computation, metrology, and security.View Profile
Computer and network security, cryptography and cryptanalysis, steganography and steganalysis, data loss prevention and RFID security.View Profile
Machine learning, artificial intelligence for games, data analysis, probabilistic reasoning, and applications thereof.View Profile
Computational creativity and its evaluation, music informatics, digital humanities, knowledge modelling, Semantic Web, and natural language processing.View Profile
Our graduates have gone on to work in:
Recent graduates have gone on to develop successful careers at leading companies such as:
The University has a friendly Careers and Employability Service, which can give you advice on how to:
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:
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.
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.
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 (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.
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.
Learn more about the applications process or begin your application by clicking on a link below.
Once started, you can save and return to your application at any time.