MSc Networked Computer Systems

Master of Science (MSc)
Intended for:Computer Science Graduates
Duration:1 Year
Full/Part Time: Full Time Only

UK/EU: £10,765

Overseas: £22,350

Programme Contact: Sean Taylor

Research Group: Systems and Networks Research Group

Application Deadline: 1 August 2015

Our degree

The MSc Networked Computer Systems is an internationally renowned programme, lectured by acknowledged experts, producing high quality, highly employable graduates. It is an advanced one-year full-time Master’s programme, aimed at graduates who already have a background in computer science and who wish to specialise in the area of networks and distributed systems. 

As a student on the MSc Networked Computer Systems, in addition to being taught by research-active staff, you will have the chance to attend seminars given by people on the front line of commerce and industry. Finally, you will have the opportunity to put the principles you have been taught into practice in a full-time group project, working in either an active research field or on a practical problem of topical interest, possibly with industrial involvement.

Our graduates

We strive to ensure that our graduates are amongst the best qualified individuals in this area anywhere in the world. This opens up considerable opportunities.  In Europe currently, there are thousands of job vacancies in the area of computer networking and the industry is seeking leaders with the depth of knowledge needed to help design, deploy and use Internet technologies.

Top graduate destinations include:       

  • IBM
  • Ernst & Young
  • Cisco
  • KPMG
  • Sky
  • Bloomberg

Top graduate roles include:                

  • Security Consultant
  • Secure Software Design
  • Information Protection Advisor
  • Security Analyst
  • Software Engineer

Top further study destinations:

  • University of Cambridge
  • UCL

Average starting salary £31,200 (all data from Graduate Surveys, January 2013)

Our modules

The MSc NCS Programme consists of 8 taught modules and a group project. The taught modules are delivered in term 1 and term 2, with examinations in term 3. Below are the syllabi for the modules.

COMPGA09 - Operating Systems

Code COMPGA09 (Also taught as: COMP3005)
Year MSc
Prerequisites N/A
Term 1
Taught By Steve Hailes (100%)
Aims This is a practical course whose primary goal is to develop an understanding of the operation of operating systems, building on and showing the utility of basic material covered in previous courses, including data structures and algorithms, concurrency, and networks. Since most practical operating systems are written in C-based languages, this course will use C. Although an introduction to C will be given, students will be expected to learn it through practice; developing the ability and confidence to learn new languages by oneself is a secondary aim of the module.
Learning Outcomes To be able to: (a) read and understand C well and construct intermediate-level C programs; (b) describe the functions of the major components of an operating system; (c) compare and contrast alternative possible implementations for some of these components; (d) implement a range of components for a practical UNIX-like operating system; (e) analyse the performance of components


Programming in C
C vs Java
Memory allocation
C tools: make, gcc, dbg, lint, gprof, etc.
Anatomy of an Operating System
Operating system structure: UNIX vs Windows
Threads and processes
Process creation and death
Process Control Blocks
Process scheduling
Concurrency control
Memory management
Device management
Bootstrapping an OS
Practical work
The structure of the chosen UNIX source code
Compiling and debugging this system
Implementation of modules
Performance analysis modules

Method of Instruction:

Lecture presentations, programming lab classes, exercise questions


The course has the following assessment components:

  • Written Examination ( 2.5 hours, 85%)
  • Coursework Section (2 pieces, 15%)

To pass this course, students must:

  • Obtain an overall pass mark of 50% for all sections combined


Resources can be found on Moodle.

COMPGZ01 - Networked Systems

CodeCOMPGZ01 (Also taught as: COMP3035)
Taught ByBrad Karp (50%)
Kyle Jamieson (50%)
AimsTo 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 willl 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.
Learning OutcomesUnderstanding the nuances interacitons between a network's distributed entities is a vital skill, without which one cannot truly be said to understand networking. To help students develop this skill, 3035/GZ01 incorporates significant programming courseworks in Python and Java, in which students build working implementations of network potocols.


Week 1 Introduction to Networking; Information, Error Control Coding, and Compression

Week 2 Medium Access Control: CDMA, ALOHA, and Ethernet; Link Layer Addressing and Forwarding; Spanning Trees; MPLS

Week 3 Achieving Reliability; Stop-and-Wait, Go-Back-N

Week 4 Achieving Reliability (cont); Selective Repeat; Intro to Internetworking; Network Address Translation; Inside Internet Routers

Week 5 The Domain Name System; Multi-hop Networks and end-to-end Arguments

reading week

Week 6 Reliable Transport and TCP introduction

Week 7 TCP and Congestion Control; Intra-Domain Routing: Introduction and Distance-Vector

Week 8 Intra-Domain Routing: Link-State; Intra-Domain Routing: BGP

Week 9 Intra-Domain Routing: BGP (cont); Wireless Networks: 802.11 MAC

Week 10 Security: Firewalls, Worms and IDSes; Content Delivery HTTP, Web Caching, and Content Distribution Networks

Method of Instruction:

Lecture presentations, self-learning modules and tutorials


The course has the following assessment components:

  • Coursework Section (4 pieces, 40%)
  • Written Examination (2.5 hours, 60%)

To pass this course, students must:

  • Obtain an overall pass mark of 50% for all sections combined


Required Text: Larry L. Peterson and Bruce S. Davie, Computer Networks: A Systems Approach, Morgan Kaufmann; 5th ed. (20 April 2011, ISBN 978-0123850591) or 4th ed. (16 April 2007, ISBN 978-0123705488).

in UK by Pearson Education, ISBN 978-0-13-136548-7

Optional Text: Jerome Saltzer and M. Frans Kaashoek, 'Principles of Computer Systems Design: An Introduction', Part I (Chapters

1-6), paperback, published in UK by Elsevier, ISBN 978-0-12-374957-4.

Required Text: Jerome Saltzer and M. Frans Kaashoek, 'Principles of Computer Systems Design: An Introduction', Part II (Chapters

7-11), Version 5.0, PDF available free online.

Research Paper: Metcalfe, R., Boggs, D., 'Ethernet: Distributed Packet Switching for Local Computer Networks', Communications

of the ACM 19(7), July 1976.

Research Paper: Degemark, M., Brodnick, A., Carlsson, S., and Pink, S., 'Small Forwarding Tables for Fast Routing Lookups',

in SIGCOMM 1997.

Research Paper: Saltzer, J., Reed, D., and Clark, D.,' End-toEnd Arguments in System Design', in ACM TOCS, 2(4), November


Research Paper: Jacobson, V. and Karels, M., Congestion Avoidance and Control, revised version of original paper in SIGCOMM


Module web page (currently points at the Fall 2012 page)

COMPGZ03 - Distributed Systems and Security

CodeCOMPGZ03 (Also taught as: COMPM030)
Prerequisitesgood understanding of object-oriented programming and design and networking protocols
Taught ByBrad Karp (100%)
AimsThe first half of the class explores the design and implementation of distributed systems in case-study fashion: students read classic and recent research papers describing ambitious distributed systems. In lecture, students critically discuss the principles that cause these systems to function correctly, the exten to which these systems solve the problem articulated by the authors and the extent to which the problem and solution chosen by the quthors are relevant in practice. The second half of the class explores computer system security, again, largely in case-study fashion.
Learning OutcomesCorrectness under concurrency is a central challenge in distributed systems and one that can only fully be understood through experience of building such systems (and encountering subtle bugs n them). To give students experience of this sort, the module includes one significant programming coursework in C, in which the students implement a simple distributed system that must provide an ordering guarantee. Further written coursework helps students solidify their understanding of the security material in the class.


Course introduction; OS concepts

Design: Worse is Better; Concurrent IO; RPC & Transparency

Ivy: Distributed Shared Memory

Bayou: Weak Connectivity and Update Conflicts; GFS: The Google File System

RouteBricks: Cluster-Based IP Router; Introduction to Security; User Authentification

Cryptographic Primitives I; Cryptographic Primitives II;

Secure Sockets Layer (SSL); Reasoning Formally about Authentification : TAOS

Software Vulnerabilities and Expoits; Preventing Exploits

Containing Buggy Code: Software-based Fault Isolation; OKWS: Approximating Least Privilege in a Real-World Web Server

Method of Instruction:

Lectures, case-studies


The course has the following assessment components:

  • Written Examination (2.5 hours, 70%)
  • Coursework Section (30%)

To pass this course, students must:

  • Obtain an overall pass mark of 50% for all sections combined

COMPGZ04 - Network and Applications Programming

Year MSc
Prerequisites Students should have an understanding of the basic principles of networked systems including naming, addressing, routing, protocol operation, design and implementation of network/transport and application-level protocols and middleware.
Term 2
Taught By Licia Capra (50%)
Stephen Hailes (50%)
Aims To provide a broad coverage of the main principles of building network-, transport-, and application-level communication protocols and APIs, including middleware. The module is very practical, with a large number of examples in C and Java, and is assessed completely on the basis of coursework that involves a substantial amount of programming.
Learning Outcomes Students will be able to build communications software (protocols, applications and middleware) with standard APIs from C and Java. Students will also gain the knowledge and understanding required to design, build, analyse and test such software.


Introduction and Overview.
An outline of the module, including scope, depth and breadth of material to be covered.
Network Programming
Introduction to Tools - make, ant, cvs, doxygen
Socket Programming
Networking Example Programs

Application Programming
Wireless Sensor Network Applications
Wireless Sensor Network Reference Architecture
Middleware (Coordination) Abstractions
Active Messages
Logical Neigborhood
TinyLime and TeenyLime

Method of Instruction:

Lecture presentations and lab-sessions.


The course has the following assessment components:

  • Coursework Section (2 pieces, 100%)

To pass this course, students must:

  • Pass the coursework section
  • Pass the Coursework (50% or more)

COMPGZ06 - Mobile and Cloud Computing

CodeCOMPGZ06 (Also taught as COMPM038)
PrerequisitesStudents should have taken Networked Systems (COMP3035/GZ01) or have prior equivalent experience.
Taught ByKyle Jamieson (100%)
AimsTo explore recent research advances in wireless networked systems that combine wireless networking, mobile devices, and data-center-based services to provide new classes of applications. 
Learning OutcomesStudents will gain an introduction to research literature in wireless networking, mobile devices, and data-center-based services.  In the process, they will develop an understanding of what constitutes a good research problem, and what constitutes convincing scientific evidence that a design robustly solves a problem.


Week 1 Class introduction.  Wireless introduction and wireless mesh networks.

Week 2 Wireless basics: Adapting to the wireless channel.  Partial packet recovery and error control coding.

Week 3 Advanced wireless topics: Wireless diversity.  Rateless error control codes.

Week 4 Wireless meets mobile: Indoor WiFi localization.  Mobile sensor hints for wireless networking.

Week 5 Cloud I: Peer-to-peer systems, consistent hashing, and DHTs.Cloud storage.

Week 6 Cloud II: Hybrid mobile-cloud applications.  Parallelism in the cloud.

Week 7 Cloud meets the Web: Photo caching on Facebook.  Building web applications atop encrypted data.

Weeks 8 to 10 Student paper presentations.

Method of Instruction:

There are usually two class meetings per week.

The class is organised in case-study fashion: student read about 20 recent research papers in the above areas, and critically discuss the systems described in these papers during class meetings.


Students are evaluated three ways:

1. 15%: To help gauge whether students are grasping the technical material in the assigned readings, at the start of lecture students turn in a one-page answer to a short question on the reading of the day.

2. 10%: Students make oral presentations in the final two-three weeks of term, in which they critically evaluate a research paper of their choosing.

3. 75%: There are three one-hour exams during the term, each focusing on papers discussed during the previous third of the term, though all prior material in the class is examinable.

To pass this course, students must:

 Obtain an overall pass mark of 50% for all sections combined.


Reading and further information for this module will be updated annually at the following web page:

COMPGZ05 - Multimedia Systems

Code COMPGZ05 (Also taught as: COMP4034 Multimedia)
Year MSc
Term 2
Taught By Mark Handley (100%)
Aims The aims of this course are to describe the ways in which multimedia information is captured, processed, and rendered, to introduce multimedia quality of service (QoS) and to compare subjective and objective methods of assessing user satisfaction, to analyse the ways in which multimedia data is transmitted across networks, and to discuss privacy and copyright issues in the context of multimedia.
Learning Outcomes The ability to: describe different realisations of multimedia tools and the way in which they are used; analyse the structure of the tools in the light of low-level constraints imposed by the adoption of various QoS schemes (ie bottom up approach); analyse the effects of scale and use on both presentation and lower-level requirements (ie top down approach); state the properties of different media streams; compare and contrast different network protocols and to describe mechanisms for providing QoS guarantees in the network.


Introduction and overview.
Discrete Cosine Transform
Coefficient Coding
Audio Coding
Analogue and digital form:
- Sample rate, bits/sample, nyquist rate, CD audio
Compression techniques:
TV Standards:
- Interlacing vs progressive scan, PAL, NTSC, SECAM
Video digitisation
Raw Image Representation:
- RGB, YUV411, YUV422, Indexed color vs true colour
Image Compression:
- GIF, JPEG, Motion JPEG:
Video Compression:
- Motion estimation
- Motion compensation
Video Compression Schemes:
- H.261, H.263
- MPEG 1, MPEG 2, MPEG 4
Video Adaptation:
- Sender-side adaptation, buffering, VBR->CBR conversion
System Streams
MPEG program and transport streams
H.221 framing (for ISDN)
IP-based transport:
- packet loss
- TCP vs UDP
- Application-level framing
- H.261 as example of payload format
Audio/Video synchronization
- MPEG system stream
OS Issues
Describing Network Traffic
Traffic patterns
Application requirements
QoS parameters and descritions
Congestion control and Resource Management
TCP congestion control
Real-time traffic congestion control
Queue management:
- Random Early Detection + other AQM
- Explicit Congection Notification (ECN)
- Scheduling mechanisms (FQ, WFQ)
Enhanced Quality of Service
Resource reSerVation Protocol (RSVP)
IP Multicast
Service Model
Layered transmission
Multicast congestion control
Digital rights management
Legal issues

Method of Instruction:

Lecture presentations


The course has the following assessment components:

  • Written Examination (2.5 hours, 85%)
  • Coursework Section (1 piece, 15%)

To pass this course, students must:

  • Obtain an overall pass mark of 50% for all sections combined

The examination rubric is:
Answer THREE questions out of FIVE. All questions carry equal marks


COMPGZ07 - Professional practice

Year MSc
Prerequisites N/A
Term 2
Taught By Graham Collins, Department of Management Science and Innovation (MS&I)
Nicolas Gold, Department of Computer Science (CS)
Aims The aim of this course is to provide an viewpoint on the commercial realities of work within the area covered by the MSc NCS, MSc FSE and MSc SSE 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 this part of the course 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. The aim of the project management part of the course is to prepare students for effective project work and, by extension and comparison, for effective teamwork in a commercial environment. The course will cover all aspects of project management lifecycle and will highlight which of the techniques are most appropriate for use for course GZ99/GS99.
Learning Outcomes The ability to: assess the effectiveness of solutions presented and to question them in an intelligent way; synthesise solutions to general open-ended problems drawing on various sources of knowledge and tempered by information on commercial realities from this module; adopt reasoned ethical standpoints; apply good project management techniques in practice; appraise the utility of individual project management techniques within a given environment and originate new techniques within a sound framework; project the difference between use of project management techniques in small-scale activities such as the group project and those in industrial scale activities


The topics for the seminars are determined by speakers and are dependent on their areas of expertise and current market conditions.
What are projects and how do we measure their success?
The role of the project manager in influencing the outcome of a project
Basing the project on pure need
The project plan
Quanitiative criteria
Risk management
Creating project teams
Leading and motivating the team
Budgets, schedules and resource allocation
Systems engineering
Monitoring and control
Time management

Method of Instruction:

Lecture presentations, seminars and workshops


The course has the following assessment components:

  • Orally Assessed Coursework (50%)
  • Written Examination (2.5 hours, 50%)

The oral coursework takes the form of a presentation on the students'  preparation for their upcoming summer projects and how the techniques and issues from GZ07 will be applied or managed therein. 

The examination consists of two sections each containing two questions (thus four in total).  In each section there will be one software engineering and one networking focused question.  Students must answer one question from each section but need not follow the topic of their degree programme I.e. networking students are free to answer software engineering questions and vice versa. The examination is not based on the specific seminar topics of the course but will expect students to draw on these, and their general knowledge and wider reading to address unseen questions related to contemporary issues in software engineering and networked systems.

To pass this course, students must:

  • Obtain an overall pass mark of 50% for all sections combined


COMPGZ99 - Project for MSc NCS

Year MSc
Prerequisites All taught courses within the stream
Term 3
Taught By Various academic staff supervisors (Co-ordinator = Mark Handley) (100%)
Aims To give students experience of undertaking and completing a large piece of work, applying techniques learned throughout the programme, including the technical skills of analysis, design and implementation.
Learning Outcomes To be able to: work in a team developing a major project, plan and coordinate development activities, make realistic work commitments, present the work done effectively to a deadline.


There is no set syllabus: groups of students identify their chosen project area in conjunction with a supervisor who is a member of academic staff. The supervisor provides support and guidance. The project runs full-time from Easter onwards with the students responsible for organising themselves and their work, with advice from their supervisor. Student are expected to meet with their supervisor on a regular basis, as agreed with the supervisor.

Method of Instruction:

Teamworking with support from the project supervisor.


The course has the following assessment components:

  • Reports (100 project report hours, 100%)

To pass this course, students must:

  • Pass the Coursework (50% or more)


Books, papers, manuals etc. relevant to the project.

Detailed project guidelines can be found on Moodle.

Plus one Elective module from the following:

COMPGA01 - Computer Security 1

CodeCOMPGA01 (Also taught as COMPM062)
Taught ByGeorge Danezis (100%)
AimsThis module provides an introduction to computer security concepts and techniques. It covers core security principles to engineer systems that provide certain properties, like confidentiality, integrity or availability, despite the efforts of malicious entities to subvert them. We will study military and commercial security design patterns, but also topics around privacy, censorship, or pervasive surveillance. All topics are approached from a security engineer perspective, but also from the perspective of someone who aims to bypass security protections.
Learning OutcomesStudents will learn how to recognise security properties of systems, as well as formulate security policies, and model the threats they may face. Through exposure to a number of established industry and government security mechanisms and design patterns, they will be able to select appropriate controls to guarantee that the security policies are robustly implemented and may sustain efforts to subvert them. Conversely, students will gain skills in analysing computer systems, and developing strategies to bypass security controls. 


The course is organized in 10 topics. The first half of the course covers basic principles; access control; UNIX, Windows and Android security; high-confidentiality government systems; high-integrity commercial systems, including banking and medical informatics. The second half dives goes into the details of technical protection mechanisms and computer attacks including hardware mechanisms; network defences and attacks; authentication & identification; and applied cryptography.

Method of Instruction:

Lecture presentations with associated class coursework.


The course has the following assessment components:

  • Written Examination (2.5 hours, 85%)
  • Coursework Section (1 piece, 15%) due in week 10.

To pass this course, students must:

  • Obtain an overall pass mark of 50% for all sections combined


Dieter Gollmann "Computer Security" (3rd edition, but 2nd is also fine) - available in the UCL library

Ross Anderson "Security Engineering"

(Also available on-line at:

COMPGC06 - Database Systems

Code COMPGC06 (Also taught as: COMP3013 Database and Information Management Systems)
Year MSc
Prerequisites GC04
Term 2
Taught By John Dowell (50%)
Graham Roberts (50%)
Aims This module builds on the introduction to relational databases course in COMP2008/GC04. 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.
Learning Outcomes Understanding of the theory, methods and technologies of relational databases and their development. Competence with SQL and in building web facing database systems. Understanding of application issues and current trends in database technologies.


Database development: framework and techniques
SQL and query processing
Transaction management
Architecture of relational database management systems
Post-relational databases and their applications
Web and database management systems
Business intelligence

Method of Instruction:

Each week students will attend a 'theory' seminar (1-2 hours, led by JD), a 'lab' lecture (1 hour, given by GR), and a group session in the lab (1 hour). The 'theory' lectures are provided by online video only which students must watch in advance of the weekly seminar. The 'lab' lectures will teach students how to use the technologies needed for the coursework. Visiting speakers from industry will give some of the seminar sessions.


The course has the following assessment components:

  • Written Examination (2.5 hours, 70%)
  • Coursework Section (1 piece, 30%)

To pass this course, students must:

  • Obtain an overall pass mark of 50% for all sections combined

The examination rubric is:
Answer any 3 Questions out of 5. All questions carry equal marks.


Database systems: A practical guide to design, implementation and management, 3rd edition, Connolly/Begg, Addion Wesley, ISBN:


A comprehensive set of learning materials for the module are provided through moodle (UCL's e-learning environment)

Link to Moodle

COMPGI15 - Information Retrieval & Data Mining

CodeCOMPGI15 (Also taught as: COMPM052)
Taught ByJun Wang (50%), Emine Yilmaz (50%)
AimsThe course 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.
Learning OutcomesStudents are expected to master both the theoretical and practical aspects of information retrieval and data mining. At the end of the course student are expected to understand 1. The common algorithms and techniques for information retrieval (document indexing and retrieval, query processing, etc). 2. The quantitative evaluation methods for the IR systems and data mining techniques. 3. The popular probabilistic retrieval methods and ranking principles. 4. The techniques and algorithms existing in practical retrieval and data mining systems such as those in web search engines and recommender systems. 5. The challenges and existing techniques for the emerging topics of MapReduce, portfolio retrieval and online advertising.


Overview of the fields

Study some basic concepts of information retrieval and data mining, such as the concept of relevance, association rules, and knowledge discovery. Understand the conceptual models of an information retrieval and knowledge discovery system.


Introduce various indexing techniques for textual information items, such as inverted indices, tokenization, stemming and stop words.

Retrieval Methods

Study popular retrieval models: 1 Boolean, 2. Vector space, 3 Binary independence, 4 Language modelling. Probability ranking principle. Other commonly-used techniques include relevance feedback, pseudo relevance feedback, and query expansion.

Evaluation of Retrieval Performance

Measurements: Average precision, NDCG, etc. "Cranfield paradigm" and TREC conferences.

Personalisation and Usage Mining

Study basic techniques for collaborative filtering and recommender systems, such as the memory-based approaches, probabilistic latent semantic analysis (PLSA), personalized web search through click-through data.

Data Mining

Study basic techniques, algorithms, and systems of data mining and analytics, including frequent pattern and correlation and association analysis, anomaly detection, and click-through modelling.

Emerging Areas

Peer-to-peer information retrieval and MapReduce; Online (web) Advertising; Learning to Rank; Portfolio retrieval and Risk Management.

Method of Instruction:

Lecture presentations, Practical exercises


The course has the following assessment components:

• Written Examination (2.5 hours, 60%)

• Coursework (40%)

To pass this course, students must:

• Obtain an overall pass mark of 50% for all sections combined


Introduction to Information Retrieval, Christopher D. Manning, Prabhakar Raghavan and Hinrich Schütze, Cambridge University

Press. 2008. 

Introduction to Data Mining, Pang-Ning Tan, Michael Steinbach and Vipin Kumar, Addison-Wesley, 2006

Gigabytes (2nd Ed.) Ian H. Witten, Alistair Moffat and Timothy C. Bell. (1999), Morgan Kaufmann, San Francisco,


Pattern Recognition and Machine Learning, Christopher M. Bishop, Springer (2006).

course website

COMPGS10 - Language Based Security

CodeCOMPGS10 (Also taught as: COMPM028)
PrerequisitesAn understanding of the basics of programming and software engineering.
Taught ByDavid Clark (50%), Jens Krinke(50%)
AimsThe aim of this module is to provide students with specialist knowledge and understanding to solve software related problems associated with the security of software systems.
Learning OutcomesSuccessful completion of this module will provide students with an understanding of the relationship between computer program design and security, how variousl 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.


The course covers in depth major issues in computer security related to computer programming, in particular it provides a detailed treatment of theory and practice for:

  1. vulnerabilities and faults
  2. secure information flow
  3. semantics based malware detection

Students will be introduced to removal of vulnerabilities of code via fault detection. Topics covered will include Data Flow Analysis, Buffer OVerruns and Fuzz Testing.

The bulk of the course will be devoted to theory and practice of secure inforamtion flow. First sutdents will learn how to use dependence analysis extracted via a slicing tool to do practical information flow control. Subsequently they will be taught some underlying theory and then examine more advanced topics such as flow sensitive type systems, information erasure, declassification and measuring information flow. This will be supported by tools such as JIF, PARAGON, a bounded model checker and the QIF Analyser.

The final part of the course will look at issues in semantics based malware detection, particularly at the limitations of such an approach with respect to semantic decidability and encryption/ packing techniques.

Method of Instruction

Delivery will be via a combination of lectures, problem solving sessions and traning on laboratory tools. Students will be given weekly exercises to explore and practice new techniques and tools. 


The course has the folowing assessment components:

  • Unseen written examination (2.5 hours, 70%)
  • 2 courseworks (15% each)

To pass the module students must:

  • Obtain an overall pass mark of 50%


Provided on Moodle

COMPGW02 - Web Economics

CodeCOMPGW02 (Also taught as: COMPM041)
PrerequisitesNormally offered only to students in computer science related programmes because basic programming skills are required.
Taught ByEmine Yilmaz (50%) Jun Wang (50%)
AimsThe course is intended to provide an introduction of the computing systems and their economics for the production, distribution, and consumption of (digital) goods and services over the Internet and web. While the basic economic principles are covered to understand the business aspects of web-based services, the course is primarily focused on the computational and statistical methods for implementing, improving and optimizing the internet-based businesses, including algorithmic mechanism design, online auctions, user behavior targeting, yield management, dynamic pricing, cloud-sourcing, social media mining and attention economics. Practical applications such as Google’s online advertising, Ebay’s online auction, and Amazon’s cloud computing will also be covered and discussed.
Learning OutcomesThe students are expected to master both the theoretical and practical aspects of web economics. More specifically, the student will:
  1. understand basic economic principles and computational methods for the production, distribution, and consumptions of digital goods and services online.
  2. understand the computational methods/models to manage and optimize the Internet-based businesses.
  3. understand the challenges and techniques for the emerging topics such as computing as service and attention economics.
  4. be able to formulate research questions that are relevant to internet-based businesses and use the tools of economics and computational techniques to provide answers to them, and,
  5. be familiar with important work in the field.


System design 

  1. Web basics: HTTP, HTML5 referrer, Link and Click-through analysis, etc 
  2. Basic Economic Principles and Economic analysis: 
    1. Micro vs. Macro economics 
    2. Basic elements of Supply and Demand 
    3. Equilibrium 
  3. Incentives: Game theory, and Auction theory 
  4. Business Models in the Internet:
    1. auction and bidding (the Ebay Model, swoopo, and b2c and b2b auctions (alibaba)
    2. Subscription (Compulsory license, dropbox premier model, spotify, apple icloud, pay per use).
    3. Online retailing (Amazon, Apple Apps).
    4. digital goods & bundling 
  5. Computational advertising 
    1. Vickrey auction and the second price auction 
    2. Search-based advertising, Contextual advertising and Behaviour targeting, Demand-side platform and Real-time bidding, Ad exchange and futures and options 
  6. Digital Right Management, Spam/fraud control and Internet radio 
  7. Computing as a service/utility 
  8. Social media mining 

Management and optimization  

  1. Dynamical pricing models (air-tickets) and Yield management and scheduling (online advertising) 
  2. Search engine optimization 


  1. Attention economics and Personalization and Long tail 
  2. Prediction market and its accuracy 
  3. Human computing and Social computing systems 
    1. Crowdsourcing and Amazon Mechanical Turk (MTurk) and Collective intelligence 
    2. System design (ESP game, reCAPTCHA etc) 
    3. Bittorrent and Peer-to-peer file sharing

Method of Delivery


A website or/and moodle webpage will be created for the course and the course materials such as lecture notes, sample codes, will be shared. By using moodle, students will also be able to discuss relevant ideas and have questions answered by the lecturer.


Written examination 2.5 hours (70%) 

Coursework (30%) 

To pass the module students must achieve a mark of 50% when all sections are combined


[1]   Noam Nisan (Editor), Tim Roughgarden (Editor), Eva Tardos (Editor), Vijay V. Vazirani (Editor),  Algorithmic Game Theory, Cambridge University, 2007. 

[2]     David Easley and Jon Kleinberg, Networks, Crowds, and Markets: Reasoning About a Highly Connected World, Cambridge University Press, 2010 

[3]   R. Preston McAfee, Introduction to Economic Analysis 

[4]   Nir Vulkan, The Economics of e-Commerce, Princeton University Press, 2003 

[5]   Carl Shapiro, Hal R. Varian, Information rules: a strategic guide to the network economy, 1999 

More details about our modules can be found here

Our staff

Prof Stephen Hailes

Prof Stephen Hailes

Steve is the Director of Studies and Deputy Head of the Computer Science Department.  He was an undergraduate at Trinity College Cambridge and then a PhD student in the Cambridge University Computer Lab, working in the field of distributed object-based programming languages.  Following this, Steve joined the Department of Computer Science at UCL as a Research Fellow, undertaking the first public demonstration of video conferencing over UK academic networks.  Shortly afterwards he was made a lecturer, and then, in 2000, a senior lecturer. Steve has been Director of Studies since 1st Jan 2003.

Steve is interested in all aspects of mobile systems and security. But particularly in the hard bits; ad hoc systems, pervasive/ambient computing environments, and how to secure these things.

He is currently the PI of the MARS project, which is a collaborative project in conjunction with BT looking at building middleware components for trust management in pervasive environments, and the CoI on SEINIT, an EC Framework 6 Integrated Project looking at securing ambient networks.

Prof Mark Handley

Prof Mark Handley

Mark Handley joined the Computer Science department at UCL as Professor of Networked Systems in 2003, receiving a Royal Society-Wolfson Research Merit Award. From 2003-2010 he led the Networks Research Group, which has a long history dating back to 1973 when UCL became the first site outside the United States to join the ARPAnet, which was the precursor to today's Internet. Prior to joining UCL, Professor Handley was based at the International Computer Science Institute in Berkeley, California, where he co-founded the AT&T Center for Internet Research at ICSI (ACIRI). Professor Handley has been very active in the area of Internet Standards, and has served on the Internet Architecture Board, which oversees much of the Internet standardisation process. He is the author of 33 Internet standards documents (RFCs), including the Session Initiation Protocol (SIP), which is the principal way telephony signalling is performed in Internet-based telephone networks. Recently he has been standardizing multipath extensions to TCP.

Professor Handley's research interests include the Internet architecture (how the components fit together to produce a coherent whole), congestion control (how to match the load offered to a network to the changing available capacity of the network), Internet routing (how to satisfy competing network providers' requirements, while ensuring that traffic takes a good path through the network), and defending networks against denial-of-service attacks. He also founded the XORP project to build a complete open-source Internet routing software stack.

Prof Brad Karp

Prof Brad Karp

Brad Karp earned a B.S. at Yale University in 1992, an S.M. at Harvard University in 1995, and a Ph.D. at Harvard University in 2000, all in Computer Science. In his dissertation, he designed robust and scalable geographic routing algorithms and protocols for wireless networks with large numbers of nodes and highly dynamic topologies.

He was a staff scientist at ICIR, the ICSI Center for Internet Research (previously named ACIRI) at the International Computer Science Institute (ICSI) at Berkeley between the fall of 2000 and fall of 2002. While at ICIR, he worked on topics including scalable distributed storage for sensor networks, reordering-robust window-based congestion control, and traffic engineering for multi-hop wireless networks.

He then spent three years as a Senior Staff Researcher at Intel Research Pittsburgh, and as an Adjunct Assistant Professor in Carnegie Mellon University's Computer Science Department. At Intel Research/CMU, he continued his long-standing research thrust on geographic routing (CLDP), and started new projects in distributed system architecture (Open DHT) and Internet worm defense (Autograph and Polygraph).

Brad joined UCL in October 2005 as a recipient of a Royal Society-Wolfson Research Merit Award, where he is now a Professor of Computer Systems and Networks.

Dr Shi Zhou

Dr Shi Zhou

Shi received his BSc and MSc in Electronic Engineering at Zhejiang University, China and his PhD in Telecommunications at Queen Mary, University of London in 2004. Since then he has been a Lecturer (Assistant Professor) at UCL. He was awarded a prestigious Royal Academy of Engineering/EPSRC Research Fellowship from 2007 – 2012.

Shi is a member of the Media Futures research group and the Networks research group of the Department of Computer Science. He supervises PhD students at the UCL Centre for Security and Crime Science (SECReT) and the UCL Doctoral Training Centre in Financial Computing. He is also a founding member of the UCL Academic Centre of Excellence in Cyber Security Research (ACE-CSR).

Shi is a Senior Member of IEEE and a committee member of the Internet Specialist (IS) group of the British Computer Society (BCS). 

Our 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 minimum requirements

  • International English Language Testing System: An overall grade of 7.0 with a minimum of 6.0 in each of the subtests
  • Other English Language Qualifications: Please click here for the full list of accepted English Language qualifications. Please note that our courses require a level of English equivalent to the "UCL Good Level".

Entry requirements by country

Please click here for more information. Applicants are required to meet both the entry requirements and the English Language requirements separately. Each applicant will be considered on an individual basis. The grades and qualifications listed are intended to give an approximate level of achievement we believe you will need to succeed on the programme.

Excellence scholarships

We are offering 4 MSc Scholarships worth £4,000 to UK/EU offer holders with a record of excellent academic achievement. These will be awarded at the discretion of the department's Postgraduate Tutor. The closing date for applying is 30 June 2015.

Successful nominees will be notified by the end of July 2015. Nominees have 1 week to respond to this notification. If the nominee has not responded within 1 week, or if they decline the funding, a reserve candidate will be contacted. If you haven't been contacted by the end of August 2015, please assume that your application was unsuccessful. 

The scholarships may be held alongside other scholarships, studentships, awards or bursaries. However, nominees must declare whether they are in receipt of other sources of funding. Recipients of the scholarship will receive the award in the form of a £4,000 discount from their tuition fees.


  • This scholarship is open to UK/EU domiciled students, defined as country of ordinary residence.
  • All applicants of this scholarship are required to hold a valid offer for entry onto one of our MSc degree programmes for the September 2015 intake and have accepted their offer.
  • All applications for the scholarship must be received before the end of 30 June 2015.

Successful candidates will be asked to write a short piece at the end of their degree reflecting on their experiences at UCL and how the scholarship assisted them. To apply click here.

You can find out more about our fees and funding here.

More information

Our Frequently Asked Questions are here.

UCL's Prospective Student webpages which contain more information on fees and funding, accommodation and international students can be found here.

Back to our Degrees Page here.