Daniel Lawrence - Advanced Computer Science MSc
Open Days are a fantastic way to meet our staff and students to find out why you belong at Kent. Book now to visit either in person or take part online.
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.
While studying with us, you can gain work experience through an industrial placement. This optional placement is available between eight and 50 weeks. The course duration varies depending on the options taken. For students on a student visa, the placement is available for a year only. Our dedicated placement team can help you gain a suitable paid position and provide support throughout your placement.
You can apply for these options on the Apply panel.
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.
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.
You are more than your grades
For 2022, in response to the challenges caused by Covid-19 we will consider applicants either holding or projected a 2:2. This response is part of our flexible approach to admissions whereby we consider each student and their personal circumstances. If you have any questions, please get in touch.
A first or second class 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 project consists primarily of an extended period during which students undertake a substantial piece of work and a report on this in the form of a dissertation. It is usually preceded by an exploratory stage in which students review and summarise relevant literature or other technical background, and gain specific skills relevant to their project via a series of taught workshops. It may be permitted to undertake the work in groups, particularly for projects with a development focus. However, the dissertations are produced individually. The project examines the student's ability to research technical background, 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), to 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.
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.
The module aim is to give students an overview and understanding of key theoretical, practical and philosophical research and issues around computational creativity, and to give them practical experience in writing and evaluating creative software.
The following is an indicative list of topics that may be covered:
• Introduction to computational creativity
• Examples of computational creativity software e.g. musical systems, artistic systems, linguistic systems, proof generator systems, systems for 2D and 3D design.
• Evaluation of computational creativity systems (both of the quality and the creativity of systems)
• Philosophical issues concerning creativity in computers
• Comparison of computer creativity to human creativity
• Collaborative creativity between humans and computers
• Overview of recent research directions/results in computational creativity
• Practical experience in writing creative software.
An overview of basic concepts related to eHealth and a perspective on current HIT (Health Information Technology) and innovation. Review of current healthcare related IT systems. The use of information technology for handling clinical data, health systems. Data representation and knowledge management. Security and privacy. Ethics and legal requirements of eHealth systems. Clinical decision support systems. TeleHealth tools for remote diagnosis, monitoring, and disease management. Delivery and monitoring platforms for both hospitals and home environment. Innovation in eHealth systems leading to start-up companies.
This module will give students an overarching introduction to quantum information processing (QIP). At the end of the course the students will have a basic understanding of quantum computation, quantum communication, and quantum cryptography; as well as the implications to other fields such as computation, physics, and cybersecurity.
We will take a multi-disciplinary approach that will encourage and require students to engage in topics outside of their core discipline. The module will cover the most essential mathematical background required to understand QIP. This includes: linear algebra, basic elements of quantum theory (quantum states, evolution of closed quantum systems, Born's rule), and basic theory of computing. The module will introduce students to the following theoretical topics: quantum algorithms, quantum cryptography, quantum communication & information. The module will also address experimental quantum computation & cryptography.
This module aims to familiarise students with general concepts about privacy, privacy issues in selected application contexts of privacy enhancing technologies (e.g., Internet and web, mobile computing, online social networks, IoT), selected privacy enhancing technologies including data anonymisation (e.g., k-anonymity and differential privacy), anonymous communication (e.g., Tor), web and mobile privacy tools, and socio-technical related topics aspects of privacy (e.g., privacy behaviours, privacy policies, usability, and relevant legal issues).
This module covers the basic principles of machine learning and the kinds of problems that can be solved by such techniques. Students will 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.
Students are presented during lectures with advanced Artificial Intelligence/Machine Learning techniques (such as genetic algorithms, support vector machines (SVMs), deep learning, neural networks, stochastic gradient decent, Q-Learning/Deep Q-learning, ensembles, neuroevolution), including aspects of implementation, hyper parameter tuning, scalability and parallelism.
This module covers the design and implementation of high-quality software, and provides an introduction to software development for Artificial Intelligence (AI). In this module, students will gain an understanding of data analysis and statistics techniques, including effective graphical representations.
Throughout the module, students will learn to embed data analysis and statistics concepts into a programming language which offers good support for AI (e.g., Python). Students will learn to use important AI-purposed libraries and tools, and apply these techniques to data loading, processing, manipulation and visualisation.
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 information security management and associated activities including the concepts used and practices prescribed by relevant standards, such as those defined by ISO/IEC. A holistic view of information security management is taken, including risk management, the formulation of security policies, business continuity and resilience. Selected socio-technical topics that are important for information security management will also be covered. These shall include AAA (authentication, authorisation and accountability), important legal aspects especially data protection and privacy laws, data protection impact assessment, usability analysis and management, wider human factors in cyber security such as social engineering attacks and the importance of a positive cyber security culture for encouraging secure behaviours of employees and users.
In this module you learn what is meant by neural networks and how to explain the mathematical equations that underlie them. You also familiarise yourself with cognitive neural networks using state of the art simulation technology and apply these networks to the solution of problems. In addition, the module discusses examples of computation applied to neurobiology and cognitive psychology. The module also introduces artificial neural networks from the machine learning perspective. You will study the existing machine learning implementations of neural networks, and you will also engage in implementation of algorithms and procedures relevant to neural networks.
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. Similarly, there is now also an increasing interest in understanding how biological, chemical and other natural systems compute, and how this could be exploited for practical applications. It is therefore proposed to allow students the opportunity to become exposed to these types of methods for use in their later careers.
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.
Data types: nominal, numerical, ordinal, text, audio, visual, temporal and non-temporal. Basic descriptive statistics: measures of average and spread, different ways of graphing data. Choosing appropriate and valid methods for the analysis and presentation of data, and understanding the limitations of methods. Data at different scales, including big data, and the computational challenges of processing data at scale. The process of discovering useful knowledge from data: including understanding the need for preprocessing and cleaning data, the challenges of gathering relevant data, and the need to present results in a comprehensible and actionable way. Data mining: classification/regression and clustering, and the idea of predictive analytics. Elements of information retrieval from text. Vector representations of text documents. Fairness and ethical issues concerning data.
This module looks into the training of modern deep neural networks: backpropagation, regularisation, automatic differentiation, computational graphs. Introduces different types of deep neural networks, such as, LSTM, convolutional networks, and autoencoders. Presents the theoretical underpinnings of deep learning and its mechanisms. Delves into selected recent advanced topics in deep learning. Examines applications of deep learning.
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.
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 and network security protocols. Real time data transmission and quality of service. Naming and addressing and related security concerns. Security of IEEE 802.11 networks.
This module starts with the fundamental mathematical concepts to build cryptographic primitives. A key objective is to learn to implement the primitives without using programming libraries, learn the formal security notions and models for the primitives, and the use of the primitives in practical applications like blockchains.
The second part of the module covers the key application areas of authentication, authorisation and accountability (AAA). Included here are foundational topics of user and non-user authentication (including issues with password and biometric authentications), as well as access control and authorisation, along with matters related to accountability.
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).
A synopsis of the curriculum
• Network security and cybercrime.
• Analysis of real world network security incident (IoT botnet).
• Email security issues (spam and phishing attacks; spam filtering systems).
• Spyware (system vulnerabilities; stealth techniques; detection and removal).
• Network-related data security (data breaches; data loss prevention; remote sniffer detection).
• Security of WiFi networks.
• IoT network security
• Network forensics and incident response.
• Emerging network protocols
• IPv6 security.
• Honeypots and honeynets.
• Software-defined networking.
The module looks at a number of advanced topics in cyber security that are important for understanding, finding, researching and assessing security solutions. Example topics include:
? Digital steganography and watermarking, and its increasing role in modern malware;
? CAPTCHAs and other mechanisms to distinguish bots from humans remotely;
? AI in security, for example, the role of deep learning and adversarial examples in cyber security;
? Security in AI, for example, the protection of machine learning techniques against cyber threats;
? Random number generators and their relevance in password and nonce generation;
? Advanced malware threats such as ransomware, covering their evolution and providing some insights into likely future trends, including economic aspects.
? Advanced topics in research related to human factors and usable security, e.g., user behaviour and their relationship to cybercrime, positive security, user profiling and
? Quantum cyber security and the development of quantum-resistant cyber security systems based on quantum mechanics;
? Advanced topics in IoT security, covering new developments and trends, threats and mitigations.
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.
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 2022/23 UK fees for this course 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 firstname.lastname@example.org.
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.
The School of Computing is pleased to recognise the achievements of its overseas Master’s students who achieve the highest grades in their undergraduate degrees by awarding a £3,000 fee discount. Find full details, deadlines and criteria.
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, postgraduate programmes in other schools and 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.