This flexible course offers a largely free choice of modules from our range of Advanced Master's programmes.
This degree is likely to appeal to you as a computing graduate whose interests span more than one specialism or if you want the freedom to explore a variety of advanced topics. Depending on the options chosen, this course can serve as a springboard for employment or research.
This programme is available with an optional industrial placement of between eight and 50 weeks. The course duration varies depending on the options taken. You can apply for these options by clicking on the 'Apply' tab.
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 computer science textbooks. 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,, 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.
In this lecture, Dr Mark Batty from the School of Computing explores how mathematics can be used to better specify and design computer systems. He makes the case that computer systems should not be built above prose specifications and that a solid basis for computer-system engineering does not exist.
*The University of Kent's Statement of Findings can be found here
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 Student website for entry requirements by country and other relevant information. Due to visa restrictions, students who require a student visa to study 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.
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.
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.
This module introduces students to the functional programming paradigm, using at least one modern functional programming language to put the core concepts into practice. The module will develop both the foundation and theory of this paradigm, as well as the practice and application of the paradigm to solve problems and build systems. The module will core topics, including:
• Functions as first-class language constructs and as a central organising principle;
• Higher-order functions and compositional programming;
• Basic semantics of functional languages;
• The role of types in programming;
• Algebraic data types and pattern matching;
• Recursion and recursive data types;
• Differences with imperative and object-oriented programming paradigms;
• Properties of programs, (e.g., purity, side-effect freedom, totality, and partiality).
• The lambda-calculus as a programming model and foundation.
• BNF grammars for representing context-free syntax, and its relation to ADTs and language manipulation.
• Testing and issues of building correct software.
The module will develop practical skills in programming and problem solving using functional programming. There will also be a chance to apply functional programming to help understand better concepts in logic and mathematics.
Later parts of the module will then consider concurrent programming in the context of functional programming, including concurrent programming models and primitives (e.g., message-passing concurrency), parallelism, synchronisation and communication, and properties of deadlock, communication-safety, and starvation.
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.
This module investigates the whole process of security management and associated activities such as privacy and trust management. A holistic view of security management is taken, including risk management, the formulation of security policies, business continuity and resilience.
Technical subjects include a description of the various security models, and showing how authorisation policies can be automatically enforced. There is also an emphasis on trust and reputation in systems. The legal and privacy issues associated with information management are also addressed, as are the usability issues of security technologies.
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.
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.
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.
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 2021/22 annual tuition fees for this programme are:
Advanced Computer Science - MSc at Canterbury
Advanced Computer Science 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 email@example.com.
The University will assess your fee status as part of the application process. If you are uncertain about your fee status you may wish to seek advice from UKCISA before applying.
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 2021, 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 2021 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.
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:
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:
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 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.
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:
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.
While studying, you can gain work experience through our industrial placement. We have strong links with industry including IBM, Microsoft and Oracle.
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 a makerspace, which offers exciting 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.
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.