Overview

MSc Financial Systems Engineering degree programme provides an ideal foundation for graduates who wish to pursue a career as software engineers. The programme provides the opportunity to undertake a significant group software engineering project sponsored by a financial services company, allowing students to specialise in software systems engineering from a financial computing perspective.

Students will gain knowledge and experience in all aspects of software engineering needed for the development of large, complex, highly dynamic, distributed software-intensive systems; covering  software design, validation and verification, and tools for the development of software intensive systems.

The programme includes eight modules plus a group project. Students take the seven core modules and can choose one optional module.

Core Modules

Requirements Engineering & Software Architecture

Requirements Engineering & Software Architecture

This module will train students in the fundamental principles and latest techniques in systems requirements engineering and software architecture. Students will learn how to discover, model, analyse and communicate requirements for software intensive systems and how to design, evaluate and communicate software architecture that meet these requirements. The emphasis will be on developing the students' modelling skills and their ability to communicate requirements and architectures with clarity and precision to business stakeholders and software developers.

Further syllabus information can be found here.

Software Abstractions & Systems Integration

Software Abstractions & Systems Integration

This module will aim to develop students' skills and knowledge to design, implement and integrate large-scale software systems from heterogeneous components and services. Emphasis will be put on fundamental principles and practical issues of system integration projects. Students will also develop essential research skills needed to stay at the leading edge of software development throughout their career.

Further syllabus information can be found here.

Validation & Verification

Validation & Verification

This module will train students in the principles and techniques of validating and verifying software systems. The training will be intellectually demanding and will cover not only the state-of-the practice in validation and verification, but also the most significant trends, problems and results in validation and verification research. On completion, students will have good knowledge and understanding of correctness, consistency, faults and failures, static analysis and testing; and will be able to understand the use of logic as a formal language for the specification of systems, to understand the use of symbolic execution, and the main verification techniques used in symbolic model checking, and be able to verify simple systems.

Further syllabus information can be found here.

Tools & Environments

Tools & Environments

This module will teach the principles and application of software tools and environments. The module will cover the fundamental practices that we would expect from any software professional we would want to hire. The content is based on a wealth of experience of real projects, including the latest thinking on software process. For most students, it will introduce a lot of new material. On completion, students will have good knowledge and understanding of the nature and variety of software tools and environments that are available for achieving software engineering tasks, and be able to select appropriate tools and environments for the task at hand and to apply the tools and environments to achieve the task.

Further syllabus information can be found here.

Professional Practice

Professional Practice

The aim of this module is to provide an viewpoint on the commercial realities of work and practical skills in project management. This is done in two parts: the first is a series of seminars given by those with practical experience of real problems at technical, managerial, financial and ethical levels. Most such speakers are drawn from industry and is intended to stimulate a questioning and inquisitive approach to the field. We expect the material covered to be topical and either informative or presented in such a way as to encourage discussion. Second is to prepare students for effective project work and, by extension and comparison, for effective teamwork in a commercial environment.

Further syllabus information can be found here.

Optional Modules

Language Based Security

Language Based Security

This module provides students with specialist knowledge and understanding to solve software related problems associated with the security of software systems. Students discover the relationship between computer program design and security, how various security-related properties of computer programs are formulated and guaranteed, and in-depth knowledge of a variety of contexts in which understanding can be applied.

Further syllabus information can be found here.

People & Security

People & Security

This modules teaches students to specify usability criteria that a security mechanism has to meet to be workable for end-user groups and work contexts, as well as human-centred approaches to security. It is one of the very few courses on usable security in the world.

Further syllabus information can be found here.

Networked Systems

Networked Systems

The aim of this module is to offer a rigorous introduction to the problems that arise when networking computer systems, and algorithms and systems design that solve these problems. The architectural principles and protocols that underlie the internet will be explained in detail. Topics to be taught will include the physical layer, widely used link layers (wired and wireless), MAC protocols, internetworking, intra-domain routing, reliable transport, congestion control, wide-area (policy) routing, naming, network security, the end-to-end principle, and network applications.

Further syllabus information can be found here.

Distributed Systems & Security

Distributed Systems & Security

This modules explores, in a case-study fashion, the design and implementation of distributed systems, and computer system security. Among other things, the module provides students with expertise in handling correctness under concurrency by building a simple distributed system as part of coursework.

Further syllabus information can be found here.

Supervised Learning

Supervised Learning

This module covers supervised approaches to machine learning. It starts by reviewing fundamentals of statistical decision theory and probabilistic pattern recognition followed by an in-depth introduction to various supervised learning algorithms such as Perceptron, Backpropagation algorithm, Decision trees, instance-based learning, support vector machines. Algorithmic-independent principles such as inductive bias, side information, approximation and estimation errors. Assessment of algorithms by jackknife and bootstrap error estimation, improvement of algorithms by voting methods such as boosting. Introduction to statistical learning theory, hypothesis classes, PAC learning model, VC-dimension, growth functions, empirical risk minimization, structural risk minimization.

Further syllabus information can be found here.

Information Retrieval & Data Mining

Information Retrieval & Data Mining

This module is aimed at an entry level study of information retrieval and data mining techniques. It is about how to find relevant information and subsequently extract meaningful patterns out of it. While the basic theories and mathematical models of information retrieval and data mining are covered, the course is primarily focused on practical algorithms of textual document indexing, relevance ranking, web usage mining, text analytics, as well as their performance evaluations. Practical retrieval and data mining applications such as web search engines, personalisation and recommender systems, business intelligence, and fraud detection will also be covered.

Further syllabus information can be found here.

Entry Requirements

A minimum of an upper-second class UK Bachelor's degree in computer science, electrical engineering or mathematics, or an overseas qualification of an equivalent standard. Relevant work experience may also be taken into account. 

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.

International students

Country-specific information, including details of when UCL representatives are visiting your part of the world, can be obtained from the International Students website.

<