Computer Science

No Grownups Seminar Series

No Grownups

Schedule - 2008

Michaelmas Term

2008-03-07 David Chisnall - LLVM
LLVM is a new compiler infrastructure from the University of Illinois, Urbana-Champaign released under a BSD-style license. Users include Apple and Adobe. It allows compile, link and runtime optimisations and uses a single static assignment intermediate language. In the last week, I have started working on code generation for the Objective-C language. This talk will discuss how LLVM works and look at some example uses, including a static compiler and OpenGL shader code generation in OS X.
2008-03-28 Series of short talks by the Étoilé crew -
The talks will be mainly on GNUstep and the different projects that the members of the Étoilé are working on.

Schedule - 2006-2007

Michaelmas Term

2006-09-01 Jo Gooch - Computer Crime and Digital Evidence
Two talks for the price of one; Jo will give a short talk in preparation for an interview the following Monday, followed by another talk on a similar theme covering an analysis of data found on second-hand hard disks.
2006-10-13 Ben Spencer - Rendering Smoke, Steam and Fire
A brief insight into the realistic simulation and rendering of gaseous phenomena using computational fluid dynamics. We will follow a case study, from conception to rendering, of a computer generated fluid, then briefly look at cutting edge developments and the future of the field.
2006-10-20 - Discussion
In your mind, what should be the first programming language a person should learn?
2006-10-27 Lyndsey Clarke - Elastic Facial Caricature Warping
2006-11-10 Ravi Kammaje - Developing AJAX web applications
AJAX is the current hot buzzword in the web application area. What makes AJAX so popular? Can it really replace a desktop application? The advantages and disadvantages of an AJAX application compared to a desktop application. The above issues will be discussed by demonstrating an AJAX application developed using the Dojo toolkit as a part of the Vistar Project.
2006-11-24 Gift Samuel - Model Checking Live Sequence Charts
In this talk we survey the paper "Model Checking Live Sequence Charts" by Jun Sun and Jin Song Dong. We give a brief introduction to Live Sequence Charts (LSC) and Communicating Sequential Processes (CSP). We investigate the method of converting a subset of LSCs to CSP and then to verify converted LSC charts by the model checker FDR.
2006-12-08 Dave Arter - Me + Google Summer of Code
Google's Summer of Code programme fosters links between students and Open Source organisations by awarding stipends to students who successfully propose and implement a coding project that benefits their chosen organisation, and the OSS community in general. In this talk, I'll describe my participation in the SoC 2005 programme, and what I learnt (or didn't) from taking part.

Lent Term

2007-02-02 David Chisnall - Inside Xen
The subject of this talk is the Xen Virtual Machine Monitor, created by Cambridge University and now developed by primarily by XenSource. Xen is a high performance hypervisor originally developed for x86 platforms and now ported to a few others. This talk will discuss how Xen works, and some potential applications.
2007-02-26 Workshop - Mac-based Software Development
This workshop will be a chance for postgraduates to share their experiences and advice on developing with XCode, Objective-C and OpenStep (Cocoa).
2007-03-09 Temesghen Kahsai - Category Theory for Non-Theorists
This talk will provide a basic introduction to Category Theory, some simple examples and how software engineering can benefit from category theory. We will see some concrete examples of the application of Category Theory in Haskell.

Summer Term

2007-05-04 Will Harwood - Really, Really, Really Big Numbers

$\omega$ is defined to be the least number greater than all of the counting numbers, 0, 1, 2, 3, ... It has a number of names (the first limit ordinal, the smallest infinite cardinal, the first regular cardinal) reflecting its many pleasing properties, but of particular interest is that it allows even larger infinite numbers to be expressed: $\omega + 1$, $\omega.2$, $\omega^\omega$, etc.

The standard way to reason about these numbers (and their arithmetic) is set theoretic, and owes to John von Neumann. It is both very clever, and rather hard for computer scientists to reason about, so instead I will talk about ordinals exclusively in terms of nice sensible computer scientist-friendly _trees_, and show, amongst other things, why

$\omega + 1 > 1 + \omega$

and what induction looks like when extended to the transfinite.

2007-05-11 Andy Gimblett - A pragmatic look at monads in Haskell
Monads have emerged as the canonical solution for a number of awkward problems faced by Haskell programmers (most obviously, but not only, I/O). In this talk I'll take a look at what some of those problems are, why they arise, and how monads fit into their solution. I will try to avoid too much technical detail, aiming instead for a more intuitive and broad explanation, leading towards some very pragmatic advice on how to work with monads and Get Things Done in Haskell. Category theory will not be mentioned, except in this sentence.
2007-05-18 David Chisnall - Memory Management on Modern Hardware
Most modern CPUs include a memory management unit, which allows physical memory to be split into virtual address spaces for individual processes. This talk will begin by looking at exactly how this works on two architectures, x86 and SPARC, which use widely differing approaches. It will then discuss some of the limitations of these approaches, and look at one proposed solution; Mondrian Memory Management.
2007-06-?? Temesghen Kahsai - An Introduction to Pi Calculus

Last year's Schedule