The Computer Science MSc prepares graduates from any discipline for a career in computing, or a career involving the application of computing within their original professional field. No prior knowledge of computer science is required.
This conversion programme provides a broad and balanced introduction to computer science, including the key technologies and skills needed for employment. You can also explore your personal interests through a variety of optional modules.
The programme will equip you for technical roles in leading software houses, advanced technology companies and commercial sectors or for working at the interface with clients as a systems analyst or consultant. Graduates from this programme work across the globe for companies such as IBM, Cisco, Logica/CMG, Pfizer, Reuters, Shell and Zurich Financial.
This programme is available with an optional industrial placement of between eight and 50 weeks. The industrial placement provides an opportunity to work in real-world, technical and business roles, enhancing your study experience and having a dramatic impact on your choices after graduation.
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.
This conversion programme prepares graduates from any discipline for a career in computing, or a career involving the application of computing within their original professional field. Our students come from a wide variety of backgrounds including natural sciences, engineering, arts, humanities and social sciences. No prior knowledge of computer science is required.
All taught Master’s programmes at Canterbury are available with an optional industrial placement.
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|
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
CO883 - Systems Architecture
A computer system's architecture describes the underlying combination of software and hardware that needs to be provided before the system can be used; an understanding of the basic principles of computer architecture is essential if computer systems are to be used effectively.
Fundamental ideas of computer hardware:
Binary and hexadecimal numbers, two's complement, and binary arithmetic.
Data representation: bits, bytes, and words; character codes.
The von Neumann architecture: processor, memory, and peripherals; registers, RAM and ROM, data and address buses; the fetch-execute cycle.
Processor microarchitecture: CISC v RISC, superscalar, pipelined, out-of-order execution, branch prediction, multiprocessing.
Practical introduction to the use of a UNIX-like operating system:
The structure of the filing system.
Syntax of operating system commands: options, files, etc.
Input/output, redirection and pipes.
Operating system tools and their use in building pipelines.
The principles and mechanisms of operating systems:
Function and historical development of operating systems.
Processes: states, communication, mutual exclusion, synchronisation, semaphores, monitors, avoidance of deadlock, high-level scheduling, process security.
The kernel: hardware requirements, interrupt handlers, low-level scheduling.
Memory management: swapping, virtual memory, paging.
Input/output; blocking and non-blocking transfers; privileged I/O processes.
File systems: functions, storage media, layout and organisation of files, file security.
The loading process; libraries; relocation.
Resource allocation; resource management.
Local and remote file access.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
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
Simulation, experimentation and data analysis
Writing about research
The publication process
The review process
The module culminates in a mini-conference where students present their research.Read more
CO886 - Software Engineering
Creating a quality software product requires much more than skilful programming. First of all, the requirements for the product must be determined. Unfortunately, customers' perceptions of their requirements are usually vague and incomplete, and often inconsistent too, so these perceived requirements must be carefully analysed and amplified. Before software is shipped, it is important that cost-effective measures are applied to ensure, as far as possible, that it is free from errors, especially major errors: this involves procedures such as source code analysis and inspection as well as thorough testing. But some bugs will inevitably get through to the delivered product, and it is important that users can easily submit informative bug reports that allow the problem to be quickly localised and rectified.
All of the issues just described have an impact on the design of the software: it must be designed, for example, to ensure that it is amenable to thorough and systematic testing, and that if internal errors do occur, they are detected quickly before the program's data files have been irrecoverably damaged. Also, design must ensure that the software can easily be adapted and extended as the customer's requirements evolve over time.
This module takes a wider view of the software development process, with an emphasis on techniques and procedures for ensuring high product quality. A key topic is the use of the Unified Modelling Language (UML) for problem analysis and software design. Towards the end of the module students have an opportunity to put theory into practice by undertaking a group project, with another group as their customer.
- Quality standards, including ISO9001 and CMM.
- Alternative models of a software project's lifecycle, and the role of the object-oriented development paradigm in modern lifecycle concepts.
- Object-oriented modelling notations, in particular UML, and the use of these notations throughout the project lifecycle.
- Mapping of designs expressed in UML into Java code.
- Techniques for verifying models, and the conformance of one model to another.
- Approaches to software testing and inspection.
- Approaches to software configuration managementRead more
CO887 - Web-Based Information Systems Development
Web-based information systems form the heart of e-commerce. They are also increasingly the way businesses handle all their information needs. Building such systems requires an understanding of up-to-date tools and technologies such as XML, UML, Java and databases; it also calls for an understanding of how to design systems that genuinely meet user and business needs.
This module starts by examining the business context of web-based information systems. It introduces design methodologies and techniques, using UML in recording requirements. Systems implementation involves database management systems and these are studied in some depth. By the end of the module, each student will have developed a complete information system which uses XML and Java to link dynamic web pages to a database back-end.
Role of information systems in e-business.
IS development methodologies
Systems thinking and its relationship to IS development
Information analysis using UML
Relational and Object-Relational Database Management Systems
Database design and implementation
Database query languages
Security and reliability
Mark-up languages (XML, HTML, etc)
Web interfaces to databases (JDBC, servlets, etc)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
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
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
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
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
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 KITCs 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 KITCs 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
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
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 specialist and nonspecialist audiences
- 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.
While studying on a taught Master’s, 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 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 any 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.
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
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.
Security Research Group
Security - of information, systems, and communications - has become a central issue in our society. Interaction between people's personal devices (far beyond just phones and computers) and the rest of the connected world is nearly continuous; and with the advent of the Internet Of Things its scope will only grow.
In that context, so much can go wrong - every communication can potentially be intercepted, modified, or spoofed, and surreptitiously obtained data can be commercially exploited or used for privacy invasions. In fact, data flows in society are such that many people already feel they have lost control over where (their) data goes.
The security research group operates within that context. All members bring a particular technological emphasis - the analysis of particular classes of security problems or their solutions - but are fully aware that it all fits within a wider context of people using systems and communicating data in secure and insecure ways, and how external pressures beyond the mere technology impact on that. The topic of computer security then naturally widens to include topics like privacy, cyber crime, and ethics and law relating to computing, as well as bringing in aspects of psychology, sociology and economics.
From that perspective, the Security research group played a key role in setting up, and continues to be a core contributor to, the University's Interdisciplinary Cyber Security Research Centre, see www.cybersecurity.kent.ac.uk.
The 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
- Authorisation Infrastructures
- Internet Of Things Security and Privacy
- Quantum Computation and Information, with Security Applications
- Formal Methods for Cryptography
- Steganography and Steganalysis
- Trust Management and Metrics and Reputation Systems
- Tools for Vulnerability Analysis
- Self-Adaptation applied to Security and Privacy
- Cloud Security
- Human Aspects of Security
- Blockchain and Distributed Ledger Technology
- Identity Management
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
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 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
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 Marek Grzes: Lecturer
Machine learning, artificial intelligence for games, data analysis, probabilistic reasoning, and applications thereof.View Profile
Dr Julio Hernandez-Castro: Senior Lecturer
Computer and network security, cryptography and cryptanalysis, steganography and steganalysis, data loss prevention and RFID security.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
Dr Carlos Perez-Delgado: Lecturer
The advantages and limitations that quantum theory conveys to communication, computation, metrology, and security.View Profile
The 2018/19 annual tuition fees for this programme are:
|Computer Science - Taught MSc at Canterbury:|
|Computer Science 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 firstname.lastname@example.org
General additional costs
Search our scholarships finder for possible funding opportunities. You may find it helpful to look at both: