Computer Laboratory

Course pages 2015–16

Research Students Lectures

Principal lecturer: Dr Andrew Rice
Taken by: MPhil ACS, Part III
Code: RSL
Hours: 6
Prerequisites: Sandwiches


To give Computer Laboratory research students the opportunity to design and give a lecture on a topic of particular interest to them to a friendly audience. Bring your sandwiches.

Lecture 1: Heidi Howard Reaching reliable agreement in an unreliable world

13 October 2015, Room SW01, 13:00

In this lecture, we explore how to construct resilient distributed systems on top of unreliable components. Starting, almost two decades ago, with Leslie Lamport’s work on organising parliament for a Greek island. We will take a journey to today’s datacenter and the systems powering companies like Google, Amazon and Microsoft. Along the way, we will face interesting impossibility results, machines acting maliciously and the complexity to today’s networks. We will discover how to reach agreement between many parties and from this, how we construct the fault-tolerance systems that we depend upon everyday.

Lecture 2: Michael B. Gale Programming in Haskell

20 October 2015, Room SW01, 13:00

Haskell is a non-strict, purely functional programming language. That means programs may never be evaluated and can't have “side-effects” (e.g. displaying text on screen or receiving user input). Does that mean Haskell is useless? On the contrary! In this lecture, we will learn everything needed to support the following claim: every programmer should learn Haskell! It is both fun and challenging as it requires us to rethink our approach to writing programs and results in a deeper understanding of programming in general. No prior knowledge of the language is required.

Lecture 3: Daniel Thomas Using public-key cryptography in practice

27 October 2015, Room SW01, 13:00

Public-key cryptography is vital to the security of computer systems we use every day. How does it work? How can we use it to ensure our personal security – integrity, confidentiality and privacy? In this lecture I will give an overview of how it works and what we can and do use it for. You should learn what technologies are available to you, what they might achieve and why they work. We will cover concepts including trapdoor functions, identity, trust and perfect forward secrecy. We will cover applications including GPG /PGP, DNSSEC , and monkeysphere.

Lecture 4: Advait Sarkar Title to be confirmed

3 November 2015, Room SW01, 13:00

Lecture 5: Guy Emerson Introduction to social choice theory

10 November 2015, Room SW01, 13:00

In a recent referendum, the British public was asked to choose between Alternative Vote and Plurality Voting (also inaccurately named “First Past The Post”). However, these are not the only voting systems. What other options are there, and how can we choose between them? In this lecture, I will introduce certain mathematical properties which we might want a voting system to satisfy (such as the Condorcet Criterion and the Participation Criterion), as well as some impossibility theorems which show that not all such criteria can be satisfied at the same time. I will also describe two voting systems which display many desirable properties: Ranked Pairs and Approval Voting.

Lecture 6: Thomas Brouwer Introduction to Bayesian inference

17 November 2015, Room SW01, 13:00

Probabilistic models allow us to make flexible and robust systems that handle uncertainty in our data gracefully. In a Bayesian approach we express prior beliefs over our model’s parameters, and update our beliefs by finding the posterior distribution over the parameters. In this lecture, we will consider how these models can be described graphically, and how efficient Bayesian inference can be used for training.



Practical work



There may be a fun test set at the end of Michaelmas for which prizes will be awarded to the students providing the best answers.