Part II students’ summers

Our first real Wednesday meeting of the term included a presentation from our part 2 (third year students on the undergraduate course) students on what they did over summer.

Katie’s summer involved an internship at Jagex Games Studio (developers of Runescape), where she worked on an implementation of a Naive matt
Bayesian Classifier to determine the likelihood of a support ticket being valid or from a potential hijacker. She also got to experience a variety of work socials, plus being an early beta tester for new game features. Matt’s summer involved interning for a joint venture with Boeing and the University, based on computer vision. The role also involved giving talks to Boeing engineers in America. Andi spent his time learning things in his own time and taking some time off, along with an internship with Google in Poland and with Palantir in New York.

Ben’s intership involved working on the Xen hypervisor, a system for managing many ben
different virtual machines on a server. Due to security issues involving a virtual machine being able to interfere with other virtual machines, the x86 emulator had to be moved to a lower permissions level with workers to perform higher-level tasks, which is easier said than done considering the emulator was written with assumptions it had a high level of privilege. Nevertheless, the task was completed by the end of the internship. Jamie didn’t get an internship, and definitely showed that it’s not the end of the world if you don’t. He spent the summer doing sports and making sure he was refreshed for term to start again in October, along with exploring 3rd year topics and ideas for his project, a procedural racetrack generator. Radu had an intership at Google over summer, during which he worked on a “Merchant Telephony Notifier,” the exact details of which were secret, but involved text-to-speech. Sid worked with the Undergraduate Research Opportunities Programme, travelling and researching his part II project.

Meet the supervisors: Liang Wang

One of our new supervisors this term is Liang Wang.  Liang has just started as a Postdoctoral Research Associate (PDRA) at Queens’. The PRDA position is relatively new and the idea is to give postdocs in the university a way to have a college association. Liang will be able to come and dine in college and take part in other things going on at Queens’.

Here is some information from Liang about himself:

Liang Wang is a research associate in the Computer Laboratory at the University of Cambridge. He is also a PDRA (PostDoc Research Associate) at Queens’ College, and supervises the following courses in this academic year: Principles of Communications, Information Retrieval, and Operating Systems. Liang’s research has focused on the design and optimisation of network systems. By introducing a data analytics component into the system design, he believes that future network systems are able to understand and exploit contextual information to adapt themselves in various scenarios instead of serving as naive transmission media. His broad research interests lay in big data frameworks, social network analysis, mechanism design in opportunistic networks, modeling and analysis of complex systems, ranging from P2P overlay to high-frequency financial market.

Before joining the Cambridge, he received both his MSc and PhD degrees in the Computer Science Department at the University of Helsinki, Finland in 2011 and 2015 respectively. In his spare time, Liang likes reading, coding, cycling, and jogging around the Cambridge.

Welcome back

Welcome back everyone to the new academic year.  We have 8 new computer science freshers this year which is a bit of an increase on previous years.  We also have a student visiting us from MIT to take Part 1B.  I’m looking forward to a busy year!

Visiting California

I’ve spent the last couple of weeks in California visiting research groups and giving some talks.  I was able to visit Parc, HP labs, Palantir (thanks to Craig for organising that one!), Stanford, Qualcomm. I also had a really interesting trip to Google to meet with Ciera Jaspen. She arranged all sorts of interesting people for me to talk to.

Here’s the video from my talk at Stanford:

I was talking about Device Analyzer which we’ve been working on for a good few years now.  My more recent work has been looking at programming languages and tools as part of the NAPS project.

Coding Summer School

Last week the Computer Laboratory ran its first ever Coding Summer School for Girls.  We have 40 of the participants staying at Queens’.  Robin Walker gave a tour of college – including demonstrating the principles of the Mathematical Bridge with matchsticks.

20150810_190216

I also organised punting for those who wanted it – and noone fell in!

20150812_203309

We also had a posh dinner in Old Hall – but I don’t have a picture of that.

I hope everyone had a good time.

Captain Buzz

Ramsey and Ollie (one of my PhD students) built a UAV drone from scratch and used an Android phone to control it.  They used a neat trick to modulate the motor control signals into the audio output of the phone.  Here’s a video of Ramsey on computerphile@youtube talking about it:

Queens’ visit to Google Deepmind

Yesterday I took 15 Queens’ students up to Google Deepmind for a visit.  We had a really enjoyable day out.

The purpose of the trip was to do some testing of the Deepmind interview process.  We’re going to study how the results of the Deepmind interview quiz correlate with the exam performances of our students.  Deepmind are interested in this so as to see whether they want to tune their interview process.

In order to make it worth everyone’s while the Google Deepmind team provided us with lunch, a Q&A session with Demis Hassabis, a tech talk about what’s going on in Deepmind and an all expenses paid trip to the pub!

We took 15 students along: 3 computer science, 7 maths, 5 natural sciences.  And I’m pleased to say that it was a Computer Scientist who came top in the quiz (yes, I’m very biased).  Well done Sid! He won a Nexus 9 tablet for his trouble.

IMG_20150609_122706IMG_20150609_122710

Here you can see some of the pre-quiz ‘warmup’ activities.  The Deepmind office has the requisite pool, table football and table tennis tables.

IMG_20150609_124919

This is the quiz room.  There were 15 googlers who gave up their afternoon to do the interviewing.

IMG_20150609_151212

And we had a really great Q&A session with Demis where he answered all questions about the future of Deepmind, the future of AI, and anything else we came up with.

IMG_20150609_154232

Computer Science Dinner

Last night was the annual Queens’ Computer Science dinner and we completely sold out of tickets for the second year in a row.

Ben and Matt did an excellent job as this year’s organisers – everything ran smoothly, and they had even arranged for some live music as we moved from the main dining hall to Old Hall after dinner (for more food).

I’d like to thank the individual alumni who sponsored the dinner and also the corporate sponsors: Palantir, Jane Street, Ocado, Coherent Graphics, and Encore.  Your generous support is what makes the dinner possible.

We were lucky this year to have Siraj Khaliq as our guest of honour.  Siraj studied Computer Science at Queens’ in 1997.  He was one of the first 300 employees at Google and then went on to do his own startup The Climate Company which was acquired by Monsanto for $1.1 billion.   Siraj gave a great talk about his experiences and had advice for those of us thinking about startups today.

One of his pieces of advice was to not try to build the ‘best’ thing when ‘good enough’ is good enough.  I think this is worth remembering – I can think of numerous occasions in research where we’ve had an idea, let it get shot down by some corner case and then seen papers from people who’ve done the same thing, not worried about these cases, but still found something interesting.

I was really pleased to see so many graduates who came back and joined us. It was interesting to hear how everyone is getting on.

Here’s a shot of a few of us at the drinks reception:

Drinks reception in the Old Senior Combination Room

Drinks reception in the Old Senior Combination Room

And here’s a picture of me with Professor Alan Mycroft and Dr Anil Madhavapeddy. Alan and Anil were chosen by the Queens’ undergrads as their favourite lecturers this year.

IMG_20150517_224022

Thanks everyone for coming, thanks to Ben and Matt for their hard work organising, see you all next year.

Probabilisitic datastructures

Advait (our AI supervisor) gave a good talk last week on probabilistic datastructures. He showed how you could save orders of magnitude of space if you were prepared to have an almost right answer (with probability bounds).

He motivated the talk using the example of MildyInnappropriateCatAppreciationSociety.com which is trying to store unique pictures of cats. You can use a bloom filter to do the same job as a hash table here.   If you had 40Mb of raw cat pictures then you could use a 0.6Mb bloom filter an an efficient way of looking up whether you already had a certain picture with 4% error. If you wanted an exact answer with (e.g.) a hash table it would take you 4Mb. Obviously in reality you would have petabytes of cat pictures – then the savings start to add up.

We then looked at cardinality estimation – this is the problem of estimating how many unique cat pictures we have.  For our 40Mb example above you can do this in 125kb using a linear counter, or in 2kb using a loglog counter.

The next question was counting the frequency of each cat picture.

One might say we are trying to graph the long tail of cats.

One might say we are trying to graph the long tail of cats.

A count-min sketch can do this in just 48kb of space (with 4% error).

We went in to each of the above in detail to understand how they worked and Advait had a quiz on each one to see how they would store some example data.

Advait is using probabilistic algorithms in his research on visualising large datasets and so to close he showed us a sneak preview of his upcoming publication on this.

The talk was presented really clearly and confidently with lots of audience interaction.  All the talk of cat databases gave us a real world (!) scenario for the algorithms.  And it was nice to hear a bit about his research too.

Robot battle

On Wednesday last week we played Robocode.

For those of you who’ve not seen it before its basically a simulator for battles between robot tanks.  You play the game by writing Java code to control your tank and try to destroy everyone else.

We had three teams, each of which was tasked with writing two robots.  Then, after 2 hours, we had a tournament to see which robot was best.

Here’s a video of Sid2 fighting Larry.  Sid2 (you can guess who wrote that) was built by copying and pasting example code off the web (this turned out to be a very good strategy for building a good robot in 2 hours).  Larry was a more customised effort featuring a colour changing technique (for no particular benefit in battle):

After beating Sid2 we thought Larry was going to emerge the winner but then ProbablyTerribleRobot came on the scene:

Here’s a video of all of our robots in melee.  Special mention to Robotina and FirstRobot for their very novel movement patterns…