MSc FT Computer Science

G4U1 / MSC
Duration:
1 Year

Description

This MSc programme offers a broad range of advanced study options, with modules taken from a variety of application areas. It is multidisciplinary and, in addition to computer science, you may choose options in which computer science intersects with other fields. The programme prepares you for a wide range of careers depending on your selection of modules studied. Typical jobs after graduation include advanced programmer, software development and support, software engineer, product designer/developer, systems analyst, interface/interaction designer, database developer, and other specialist employment based on your selected study areas.

Assessment

The Research Methods modules are assessed through coursework alone. All other modules are examined through a combination of coursework and written examinations taken in May/June. To obtain an MSc, students must gain passes in six of the eight modules taken with an overall average of 50 per cent.

In addition to the above, the MSc requires that a satisfactory individual project be completed. MSc students who do not pass the written examinations are only allowed to attempt the project after passing resit examinations the following May.

Modules

Year 1
XML and Structured Documents
XML and Structured Documents

XML has very rapidly become an extremely popular (and much-hyped)language. We will examine

  • The role of XML in computer science
  • XML and the semantic web
  • XSLT as a programming language

Read More
Advanced Program Design
Advanced Program Design

The core of the module is concepts and techniques of object-oriented programming in general and the use of Java in particular. It will consider issues in class and interface design such as immutability, composition versus inheritance, minimising dependency and generalisation. The module will also examine a number of Design Patterns. Exceptions, type variables, iterators and other advanced aspects of the core Java language will be covered. Java's Collections Framework will be considered in detail as an example of a coherent set of Java classes designed to work together, and for its use of generic typing

The more general aim is to consider the requirements for creating understandable, maintainable, and robust classes that can be easily reused by others in a team. There will also be some coverage of software engineering principles: analysis and specification of user requirements, object-oriented design, testing and debugging, refactoring. "Agile" software engineering techniques will be compared with top-down design using specifications.

Read More
Introduction to Computer Vision
Introduction to Computer Vision

In recent years, research in computer vision has made significant progress.This is largely driven by the recognition that effective visual perceptionis crucial in understanding intelligent behaviour - unless we understand how we perceive, we will never understand how we reason The first part of the course will introduce the relevant concepts and techniques in machine learning. In the second part we will show how these techniques can be applied to various areas in computer vision.

Read More
Information Retrieval
Information Retrieval

The field of information retrieval (IR) aims to provide techniques and tools to support effective and efficient access to large amounts of textual information (e.g. stored on the web, digital libraries, intranets). This course will describe the IR field in details, both its theoretical and empirical aspects. The following topics will be covered:
Indexing: Representing the information content of documents through the use of e.g. stop word removal, stemming, and term weight calculation.
Retrieval: Building models that select which information objects are relevant to a user's need. Models will include Boolean model, vector space model, probabilistic model, language model, inference network model, and relevance feedback model.
Evaluation: Implementing and evaluating IR models, mainly with respect to effectiveness aspects.
The course consists of 3 hours per week of lectures for 12 weeks, including labs and tutorials. Labs will make use of the HySpirit, a state-of-the-art IR experimental platform to design and implement indexing and retrieval strategies.

Read More
Techniques for Computer Vision
Techniques for Computer Vision

The course will cover the following topics:

The Discrete Fourier Transform and the frequency content of images

The design and use of Gabor filters

Principal Component Analysis for denoising and compression

Unsupervised classification via feature space clustering

Texture segmentation with Gabor filters

Image mosaicing

Read More
The Semantic Web
The Semantic Web

The idea of putting semantic information on the Web has been around for a long time: we now have the beginnings of a practical application. This has its foundations in what is called Description Logic, which strikes a good balance between tractability and usability. This has led to a Web language called OWL, which is at the centre of modern work on the Semantic Web: there are now useful implementations, and there are workable, if modest, applications of this technology.

Read More
Design for Human Interaction
Design for Human Interaction

Technology has the potential to transform human communication. It can weaken spatial and temporal constraints on who can communicate. It creates opportunities for new communities and patterns of interaction. It can also provide the resources to enable radically new kinds of human-human interaction. Our intuitions about what makes communication effective are a poor guide. Some technologies, such as videophones, that are specifically designed to enhance communication can sometimes make it worse. Currently, there is no accepted explanation of how technologies alter, and are altered by, the patterns and processes of human communication. Such an explanation is necessary for effective design of new technologies. This research led course explores these issues by introducing the social science of human communication and applying it to the analysis of technologies that support human interaction (video phones, whiteboards, facebook, twitter). We will consider small-scale face-to-face conversations and mass interaction in classrooms and live performances. In each case we will explore how people exploit the resources available to them, such as speech, gesture, touch and body orientation to enable effective, engaging interactions.

Read More
Functional Programming
Functional Programming

Recent approaches to systems programming frequently involve functional programming either overtly in the sense that they use modern functional programming languages for rapid prototyping, or more covertly in that they use techniques developed in the functional setting as a way of lending greater structure and clarity to code. This module gives a structured introduction to programming in modern industrial functional languages such as Haskell and F# and to techniques such as map-reduce and monadic programming.

Read More
Real-Time and Critical Systems
Real-Time and Critical Systems

Most computer systems do not sit on desks but are inside machine such as cars and medical devices. This module builds on undergraduate knowledge of operating systems and software engineering to introduce techniques for real-time system development in applications where the performance of the system is critical for safety.

Read More
Program Specifications
Program Specifications

The aim of the module is to introduce the students to some successful logic based techniques and tools used today in Software Engineering and Program Verification.

The module will focus on Hoare logic and its application to automatic program verification and on the Spin Model Checker; students will be expected to use them and to understand and compare their capabilities.

Read More
Machine Learning
Machine Learning

This course covers methods for machine learning from signals and data, including statistical pattern recognition methods, neural networks, and clustering.

Read More
Software Analysis and Verification
Software Analysis and Verification

The course will cover:

  1. Introduction to Logic for Systems and Program Verification and Analysis
  2. Introduction to modelchecking and Spin
    • Temporal logic: modelling states and operations of a system
    • Modelchecking logics in particular CTL
    • Safety and Liveness in systems
    • Using Spin for checking properties and for problem solving
    • Introduction to software model checking; cbmc
  3. Using Hoare Logic
    • The specification language - describing properties of programs
    • Proof rules in Hoare logic - verifying properties of programs
    • Basic technologies behind building automatic program verification tools based on Hoare logic
    • Using automatic verification tools based on Hoare logic.

Read More
Software Risk Assessment
Software Risk Assessment

The role of software is increasingly critical in our everyday lives and the accompanying risks of business or safety critical systems failure can be profound. This course will provide students with a framework for articulating and managing the risks inherent in the systems they will develop as practitioners. Likewise, students will learn how to build decision support tools for uncertain problems in a variety of contexts (legal, medical, safety), but with a special emphasis on software development. This course will make a distinctive offering that will enable our students to bring a principled approach to bear to analyse and solve uncertain and risky problems. Course contents: Quantification of risk and assessment: Bayesian Probability & Utility Theory, Bayes Theorem & Bayesian updating; Causal modelling using Bayesian networks with examples; Measurement for risk: Principles of measurement, Software metrics, Introduction to multi-criteria decision aids; Principles of risk management: The risk life-cycle, Fault trees, Hazard analysis; Building causal models in practice: Patterns, identification, model reuse and composition, Eliciting and building probability tables; Real world examples; Decision support environments.

Read More
Mobile Services
Mobile Services

Basic mobile services for computer and communication resource poor environments that are accessed over a wireless network and independent of specific devices and platforms are first considered before this model is extended to the realm of ubiquitous or pervasive computing to include context-aware interaction, automated sensing and capture, the disappearing computer and ambient intelligence.

Read More
Security and Authentication
Security and Authentication

The course is concerned with the principles and practice used for secure communications in the Internet.

Read More
Interactive System Design
Interactive System Design

The main areas of study are (i) interaction and design (ii) modelling of interaction (iii) the design process (iv) design principles and (v) usability evaluation. Various types of interfaces will be considered including those encountered on the web and mobile computing devices. A historical perspective is encouraged in order to provide a means of understanding current and projected developments in the discipline and profession of interactive computer system design.

The course will include seminars and group laboratory classes in which analysis, design and evaluation methods will be used in practical contexts.Students will be expected to participate fully in the seminars by presenting and discussing their own designs and evaluations.

Students will be required to construct prototype interfaces using techniques of their own choice (e.g. Java, Director).

Read More
Business Technology Strategy
Business Technology Strategy

The Business Technology Strategy module is focused on strategic management of research and development and how technology strategy drives the commercial strategy of innovative technology-based organisations. This module complements the technical areas of the degrees by focusing on the telecommunications sector. The increased exposure to and understanding of the benefits of strategic knowledge and thinking will give the graduates a better preparation for management roles within this sector.

Read More
Advanced Database Systems and Technology
Advanced Database Systems and Technology

Active Databases, database performance tuning and query optimisation, database administration and data dictionary, Databases for XML and XML query languages: DTD, model, native database, XPath, XQuery, mapping to object-relational DBMS; Data mining: the exploration of large quantities of data for the discovery of meaningful rules and knowledge; Distributed database architectures: client-server, distributed, federated; temporal-spatial and moving objects databases.

Read More

Careers

  • Support Engineer, Computer Assets
  • Analyst, Credit Suisse First Boston
  • Business Analyst, Norton Rose
  • Queen Mary, University of London
  • Tesco Plc
  • The Open University

Similar Courses