MSc Computer Science is a generalist programme, which aims to provide a thorough introduction to computing both for new graduates and for those with some work experience.
It is designed specifically for non-computer science graduates who wish to augment their skillset with a solid background in the field. Those with some previous industrial experience in the computer field can also broaden their horizons by achieving a sound knowledge of the theoretical basis and practical applications of computer science.
The emphasis is on practical skills highly desired by the tech industry; however the degree also introduces key theoretical elements including algorithmics, compilers and operating systems. A significant component of the programme is App Design, which is done through group work, and for real world industry clients. Some students continue the strong industry link by completing a summer dissertation project with companies such as Microsoft and IBM.
MSc Computer Science comprises 8 taught modules and an Individual Project Report. Of the taught modules, 5 are core, with either 3 option modules or 2 option modules and 1 elective module.
COMPGC01 Introductory Programming
This module introduces imperative and object-oriented programming using pure Java. The module uses Java to give a grounding in key object-oriented concepts such as class design, inheritance, dynamic binding and interfaces. Material focuses on practicing object oriented programming to be better prepared for future courses including COMPGC02 Apps Design and COMPGC05 Algorithmics. This is an intensely practical module and full student engagement outside of lectures and in lab classes is critical to successful completion of the module.
This course introduces the concepts and methods required for the design and construction of apps software systems. It aims to develop a broad understanding of the disciplines of software engineering, project management and human computer interaction (HCI). It seeks to complement this with a detailed knowledge of techniques for the analysis, design and implementation of complex software intensive systems. It aims to set these techniques in an appropriate engineering, societal and managerial context. It applies the principles of OO programming (COMPGC01) in parallel with the development of apps via learning-by-doing and problem based learning (PBL) approaches.
COMPGC03 Architecture & Hardware
The aim of this module is to 'demystify' computers, i.e. to provide a basic understanding of how computers execute programs. To show how the basic components of the computer can be built from simple electronic components such as transistors and logic gates.; and to understand why certain design decisions are made with respect to computer architectures.
COMPGC04 Systems Infrastructure
This module is an amalgam of three different aspects of systems design and construction - operating systems, compilers and databases - each having approximately equal weight. The module is a fundamental one in the programme as a whole, in the sense that it introduces material that is built on elsewhere and, consequently, much of the material will be aimed at providing a basic understanding of the role that different systems components play within real computer systems, and how they go about achieving this.
This module aims to introduce more formal aspects of algorithms and data structures than those in the first term. It covers properties of data types such as queues and search trees; techniques for analysing the complexity and decidability of algorithms; and formal models of computation.
COMPGC99 Individual Project Report
Further syllabus information will be available shortly.
Optional Modules [Group 1]
COMPGC06 Database Systems
This module builds on the introduction to relational databases found in the Systems Infrastructure module. It covers advanced data modelling and database development methodology, the techniques exploited by relational database technologies relating in particular to query processing and transaction management, and post relational database technologies including object oriented databases and web databases. The coursework is an interesting group project lasting the duration of the term and building a web facing database system using very contemporary technologies.
COMPGC16 Functional Programming
This module explores the functional programming paradigm and the implementation technology for functional programming languages. It aims to develop a broad understanding of the functional programming style and recursive programming techniques using the language Miranda, together with an understanding of implementation issues that are relevant not only to functional languages but also to other systems that require automatic dynamic memory management.
COMPGC18 Entrepeneurship: Theory and Practice
This module aims to provide students with the theory and practice necessary to launch a new business venture making maximum use of eCommerce strategies and software tools for entrepreneurs.
On the module, students will gain first hand experience of the selection and deployment of tools, techniques and theories for the identification, validation and structuring of a new business venture.
COMPGC22 Software Engineering
This module covers a range of Software Engineering material, following on from that introduced in the Architecture & Hardware module. The emphasis is on the knowledge needed to be able to model, design, implement and evaluate larger software systems effectively. The content starts with development lifecycle models, such as agile development, and then continues to cover requirements specification, the Unified Modelling Language (UML), software architecture, object-oriented analysis and design, design patterns and testing. Its is an inherently practical subject; students undertake a substantial group project, working through a number of stages of the development of a larger software application.
COMPGC25 Interaction Design
The module covers advanced topics in interaction design, focusing on the design of mobile and ubiquitous computing technologies. A central theme is how to design technologies to meet people's needs.
On successful completion of the course, students will have the knowledge and understanding of research topics in ubiquitous computing, an understanding of methods used in interaction design, the ability to conduct basic user research and the ability to design, prototype and evaluate a novel ubiquitous computing technology.
You will need to choose a minimum of 15 and a maximum of 45 credits from the Group 1 optional modules.
Optional Modules [Group 2]
COMPGC26 Artificial Intelligence & Neural Computing
Prerequisites: The GC26 module is only available to students that have done Computer Science, Mathematics or Philosophy degrees that contain an existing formal logic module covering propositional and predicate logic. This module also requires strong mathematical skills.
This module introduces artificial intelligence and neural computing as both technical subjects and as fields of intellectual activity. The overall aims are: to present basic methods of expressing knowledge in forms suitable for holding in computing systems, together with methods for deriving consequences from that knowledge by automated reasoning; to present basic methods for learning knowledge; and to introduce neural computing as an alternative knowledge acquisition/representation paradigm, to explain its basic principles and their relationship to neurobiological models, to describe a range of neural computing techniques and their application areas.
MSING001 Project Management
Taught by School of Management - see here for syllabus.
PSYCGI15 Affective Interaction
Taught by Department of Psychology and Language Studies – see here for syllabus (structure).
You can choose up to 30 credits from the Group 2 optional modules.
Students may select a maximum of 15 credits only, for term 2 only, from all UCL Postgraduate modules. This can be a 15 credit module only. In order to enroll on the elective, you must:
- meet any prerequisites for the module
- obtain the agreement of the Module Leader
- obtain the agreement of the MSc Compuer Science Programme Director
The modules that make up a programme are either core, optional or elective, which reflects whether they must be taken or can optionally be taken. The programme’s curriculum (also called a programme diet) will prescribe in what combinations modules can be taken, any restrictions on doing so, and how much credit can and must be taken.
Core/compulsory modules are fundamental to the programme’s curriculum and students must take these. You will be automatically allocated a place on any core modules for your programme and will not need to select these during the module selection process. There will be no timetable clashes between your programme’s core modules.
Optional modules are strongly related to the programme and students can choose which of these they wish to take, usually from within specific groups (for example, a student may be asked to choose two optional modules from one group and three from another, etc.) Places of optional modules are strictly limited (due to spatial, resource and timetable constraints) and will be allocated on a first come first serve basis. Some optional modules have pre-requisites which students will need to meet in order to be eligible for a place.
Elective modules are not programme specific, but allow students the opportunity to explore their interests more widely. Students are usually restricted to taking one or two elective modules. There is no guarantee of being accepted onto an elective module. These modules are core or optional on other programme diets, consequently students on these programmes will be given priority. Any remaining places will then be allocated on a first come first served basis. Some elective modules have pre-requisites which students will need to meet in order to be eligible for a place.
Please note: timetable clashes between optional and elective modules from different specialisations are inevitable and this can result in limiting the available choices. It is the student’s responsibility to select modules that do not clash in order to meet UCLs minimum attendance requirements. Please speak to your Programme Director and/or Programme Administrator if you have any queries.
Non-Computer Science students should note that priority on COMP* modules will always be given to Computer Science students in the first instance.
- Upper second-class Honours degree or higher from a UK university, or an overseas qualification of an equivalent standard, is required.
- Your degree must be in a subject that is not computer science/information technology or any other degree with a high computing content.
- If you have more than three IT/Computer Science modules in your first degree then you will be considered overqualified.
- Maths A level or equivalent, or a maths module at degree level.
- You must be able to demonstrate that you have some existing programming skills, evidenced by one of the following: minimum one module and maximum 3 modules in programming during first degree; a minimum of one year and a maximum of two years work experience in programming; or an A-Level in Computer Science that includes programming. If you do not have evidence of previous programming skills, you should include a basic computer program that you have written and submit this along with your application. The program should be one to three pages of programming code and include a short description of how it works. A program written in Java or Python would be best. Please add this under the personal statement in the online application.
English Language Requirements
If your education has not been conducted in the English language, you will be expected to demonstrate evidence of an adequate level of English proficiency. The English language level for this programme is: Good. Further information can be found on our English language requirements page.
Country-specific information, including details of when UCL representatives are visiting your part of the world, can be obtained from the International Students website.
UK/EU fees (FT): £11,800 for 2017/18
Overseas fees (FT): £24,610 for 2017/18
For a comprehensive list of the funding opportunities available at UCL, including funding relevant to your nationality, please visit the Scholarship and Funding website.
Tuition Fee Deposit
This programme requires that applicants firmly accepting their offer pay a deposit. This allows UCL to effectively plan student numbers, as students are more demonstrably committed towards commencing their studies with us.
For full details about the UCL tuition fee deposit, please see the central UCL pages.
Tuition fee deposits within the Department of Computer Science are currently listed as:
|*where part-time is an available mode of study|
Top graduate destinations include:
Top graduate roles include:
Top further study destinations:
To apply now click here.
Students are advised to apply as early as possible due to competition for places, later applications may be less successful. Those applying for scholarship funding (particularly overseas applicants) should take note of application deadlines.
Deadline 28 April 2017. (Closed now, no further applications will be accepted. Applications for September 2018 entry will open up from November 2017)