Computer Science modules available to students from other departments (2016/17)

A selection of our modules are offered to students from other departments. Two kinds of module are available: (1) modules which are designed specifically for students throughout UCL; (2) modules from our normal degree programmes which might be suitable for non-Computer Science students.

New for 2016/17:

COMP211P Introduction to Programming will be offered in Term 1, Autumn 2016. This module is suitable for students from any UCL department, who have no prior of computer programming but who would like to learn how to code. 

Please note:

  • We sometimes have to limit the sizes of classes, so registration cannot be guaranteed.


Information is available via the UCL Online Timetable  You should re-check your timetable regularly throughout the term in case changes have had to be made, particularly to the rooms allocated.


Your choice of Elective Modules must be approved by UCL Computer Science and your home department.  The approval by UCL Computer Science sometimes requires the approval of the External Students' Tutor, depending on the level of the module. 

For modules COMP202P, COMP209P, COMP211P, COMP6010 (see details below), please select the modules directly on PORTICO. You can log into PORTICO at If you have technical problems logging on or registering with PORTICO, please contact the UCL Information Systems helpdesk.

Please note that if you are an Affiliate Student who is at UCL only for the autumn term, you have to select the 'A' version of a module on Portico.

For all other modules (COMP3004, COMP3058, COMP3072, COMPM054) the approval of the External Students Tutor is required. The registration is handled via a dedicated MOODLE module, "Computer Science Elective Modules - Help and Guidance" <>  Only after your choice has been approved as explained in the MOODLE module, can you register the modules on PORTICO.

If you require ACADEMIC advice about the suitability of a course, please contact the computer science tutor for external students at

Where When

Malet Place Engineering Building

Room 5.06

Please email the External Students Tutor at to make an appointment.

Where to find us

The Computer Science department is in the Malet Place Engineering Building. The Departmental Office is on the 5th Floor.

How we get in touch with you

It is assumed that each student will have a UCL computer account and knows how to use email.

Each CS module has an associated Moodle page. Registration is normally automatic once you have registered for the module via Portico, however it is your responsibility to ensure that you are subscribed to all appropriate Moodle pages.

Guidance on how to use Moodle

Available modules

These modules are designed specifically for students throughout UCL. All of these are worth 15 UCL credits. Click on the links for syllabus details. These modules are sometimes over-subscribed. Prompt registration is advised - please register directly on PORTICO.

Module Term AimsPrerequisites



This is a module for students from any UCL department with an interest in learning to code with no prior experience in programming, designed to introduce students to problem-solving via object-oriented programming.  

No prior programming experience required.
COMP6010 Computer Music 2

The module will cover three key aspects of computer music, representation, creativity and analysis addressed through theory and practice. It will cover sound, music as organised sound, and specific applications (e.g. music information retrieval and musicology). Students will be strongly encouraged to explore both scientific and artistic aspects of the course through programming exercises to generate sound and music in contemporary visual/ textual music and arts programming languages (e.g. Processing, Nyquist, Pure Data). Students will compose a short algorithmic work using the computer.

A good standard of computer literacy.

Intermediate modules

Module Term AimsPrerequisites

COMP202P Logic and Database Theory

1To introduce and familiarise students with logical and mathematical inference and with database theory, the latter having an emphasis on the fundamentals of relational database systems and SQL. Students learn syntax and semantics of first-order logic, various proof methods and elementary models of computation. 102P Theory I, 104P Theory II or equivalent

COMP209P Cognitive Systems and Intelligent Technologies

2The word 'cognitive' refers to perceiving and knowing. Cognitive systems explains the natural intelligence of humans in computational terms, in other words, thought processes and the use of knowledge are explained as information processing. As well as helping us understand the human mind,  Cognitive systems contributes important models for building artificially intelligent systems, and it contribute to the design of tools we use to perform cognitive work. This module provides a general introduction to the key concepts, models and issues in cognitive science, with an emphasis on the contrasts between human and artificial intelligence. A good standard of computer literacy.

Advanced and Master's level modules

The following level 3 and Master's level modules require strong and informed commitment from the students, who will be expected to have taken enough interest in the area to convince the Tutor that they have some idea of the subject area other than just by reading the syllabus.  You must seek the approval of the External Students' Tutor by registering via the dedicated MOODLE module, "Computer Science Elective Modules - Help and Guidance - <

Do not register on PORTICO until you have gained the Tutor's approval via MOODLE.

Module Term AimsPrerequisites
Computational Complexity
1This module addresses the theoretical and practical limitations of computation. It provides a theoretical framework for modelling computation. The concepts of undecidability and intractability are introduced through a number of examples. The module will convey the proof techniques that are used to classify problems and it is intended that students learn how to apply them in order to classify unfamiliar problems for themselves.  COMP202P Logic and Database Theory (or, exceptionally, other equivalent experience). Note that this module involves considerable logic and a definite degree of "mathematical maturity"
COMP3058 Artificial Intelligence and Neural Networks2The Artificial Intelligence section of this module introduces AI as both a technical subject and a field of intellectual activity. The overall targets 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, and to survey the general aims of AI and its links with other areas of Computer Science.  The Neural Networks section of this module aims to give a general understanding of this new and rapidly-developing field, to equip students with the mathematical and conceptual tools which will give them access to the neural computing literature, to provide practical experience with neural network training and to promote a critical approach to the subject. Familiarity with logic at the level guaranteed by any module in discrete mathematics (or in logic), plus some exposure to CS culture including at least one module in the use of a serious programming language.
COMP3072 Image Processing1The first half of this module introduces the digital image, describes the main characteristics of monochrome digital images, how they are represented and how they differ from graphics objects. It covers basic algorithms for image manipulation, characterisation, segmentation and feature extraction in direct space. The second half of the module proceeds to a more formal treatment of image filtering with some indication of the role and implications of Fourier space, and more advanced characterisation and feature detection techniques such as edge and corner detection, together with multiresolution methods, treatment of colour images and template matching techniques. The course allows students to explore a range of practical techniques, by developing their own simple processing functions either in a language such as Java and/or by using library facilities and tools such as MatLab or IDL.
*Learning Outcomes:* To understand (ie be able to describe, analyse and reason about) how digital images are represented, manipulated, encoded and processed, with emphasis on algorithm design, implementation and performance evaluation.
Successful completion of years 1 and 2 of Physical Science or
Engineering programme with sufficient mathematical and programming content.

COMPM054 Machine Vision

Note: This is a Master's level module - the pass mark is 50%.

1This module addresses algorithms for automated computer vision. It focuses on building mathematical models of images and objects and using these to perform inference. Students will learn how to use these models to automatically find, segment and track objects in scenes, perform face recognition and build three-dimensional models form images. Successful completion of years 1 and 2 of Physical Sciences or Engineering programme with sufficient mathematical and programming content.