British Olympiad in Informatics Final

Last weekend I hosted the final of the British Olympiad in Informatics in the Computer Lab here at Cambridge.   14 UK sixth formers from around the country had got this far out of a thousand or so entrants from schools.  The contest lasted for 4 hours on Saturday afternoon.  Contestants had to program in C++.  A copy of the questions will go up on the main olympiad site in due course.  The four strongest contestants are now going forward to represent the UK at the international competition in Thailand – congratulations to them!  Here’s a photo of the winners with the organisers and Andrew Fitzgibbon from Microsoft who were the sponsors of the event.   One of Andrew’s papers was used in a core part of my PhD so I enjoyed talking to him!


I gave a talk beforehand about Computer Science (I’ll write a post about this another week).  Here’s a picture of the contestants with their free Raspberry Pi’s donated by the Raspberry Pi foundation.



Jacobus Challenge

The Jacobus Challenge is a business plan entrepreneur competition for students, held every year in Bremen, Germany. Hosted by Jacobs University, it is open to teams of 2-4 students, giving the top three the chance to win a prize of up to €3000.

The challenge fit perfectly with a project I’ve been working on with Jake and Jeppe, two other second year computer science students here at Queens’. Our project is called Localgag, a website which allows sharing of photos and stories with other people nearby. Visiting the site or opening our app shows you all of the content that has been posted by others nearby to your location.  We came third overall and won a prize of €1000.

Having submitted our business plan, we were soon informed that we had reached the last 10, and were invited to the final event which meant spending an all-expenses-paid weekend at Jacobs University.  After a short one-hour flight, we were met at the airport by a member of the organising team and driven to the campus, situated on an ex-military base.

The next morning, we explored and took the opportunity to post pictures on Localgag, to help demonstrate our project by having some local content for Bremen. The afternoon started with each of the ten teams showing their one minute “elevator pitch” video to the panel of four judges and rest of the audience. This was intended to be a short promotional video demonstrating the potential of the product. Jake did a great job making our video, with people telling us afterwards how impressed they were by it.

Following the elevator pitch, each team had two minutes to present their idea verbally. Jeppe succinctly described the motivation behind our idea and why we believe there is a market for it.

Once each team had finished presenting, we made our way into the foyer where a large A0 poster submitted by each team was waiting for us. Jake, Jeppe and I discussed our project with the judges, members of the university as well as the press. Along with answering questions about our idea, we also had the opportunity to take a closer look at the work of the other teams.

Jacobus Challenge

The audience watches as the teams present their ideas

Dinner was provided in the foyer, after which was the announcement of the five teams that would progress to the final stage the next day. Having found it difficult to gauge whether the judges liked our idea, we were very pleased to find out we had made it to the final round, along with a joint team from MIT and Columbia and three teams from Jacobs. Their ideas included a handbag that can charge mobile phones using a fuel cell and a pair of glasses with vibrational feedback to help blind people. We hurried back to our room to prepare, as progressing meant that we would need to deliver a 20-minute detailed presentation of our business plan the following afternoon.

Our presentation was divided between us, and I would be delivering the middle portion of slides. We waited nervously, watching two teams before it was our turn and we went up to the front in our matching shirts. Our pitch was followed by a ten minute question session, in which we were asked how we expected to generate revenue from our product, and how it differed from existing services such as using location hashtags on Twitter.

Having discussed the projects between themselves, the judges were ready to make the announcement of the winners shortly before dinner. We were delighted to hear “Team Localgag” announced as finishing in third place, being presented with a novelty-sized cheque for €1000 to spend on advancing our project.


Localgag receive their prize from one of the judges

The weekend concluded with an invitation to attend the annual talent show at Jacobs, which was great fun and featured performances from many of the students.

I thoroughly enjoyed our weekend in Bremen, and can’t thank the organising team enough for putting together such a great competition. Sadly we were far too busy to have any time to look around the city of Bremen, but I would really recommend entering next year to anyone who has a great business idea of their own.

Entrepreneur First

Have you ever thought about what a fun challenge it might be to start your own company, but not known where to begin? Are you waiting to dream up the next Facebook, but have a growing sense that your eureka moment will never come? Or just eager to use your technical skills to really make a difference, rather than being absorbed into the machine of some large financial company in the city?

As a final-year compsci at Queens’ I was very much in this position – not quite confident enough with any idea to commit to it full time, but equally unsure about what I might move onto next year.

So, let me introduce Entrepreneur First, a unique graduate programme which takes top tech talent and helps them build exciting new companies. To quote directly from their website (

“Entrepreneur First is the only seed investment programme in the world that selects purely on the basis of talent. We take only the best technical students and recent graduates, often pre-team and pre-idea, and support them to build world changing startups in London.”

In just its second year running, Entrepreneur First (EF) proudly boasts that its first cohort have now created 11 companies with a combined value of over $50m. The second cohort recently pitched for their first round of investment, and they are expected to do extremely well. I’m very pleased to say I recently received an offer to join the third cohort and be one of the 50 or so members who will start building companies in September 2014. Stay posted for news of our dramatic success/failure…!

You can read more about EF in Fortune, on their news page, in the Telegraph and on the BBC.

So how does the programme work, and how do you go about applying?

The first thing, if you’re in Cambridge (or several other universities – see their web page), is to look out for dates when the EF team are visiting. The talks given by Matt and Alice (the EF cofounders) are extremely interesting and give a clear picture of the realities of building a startup. I can also highly recommend “The Lean Startup” by Eric Ries, which is an invaluable read for anyone looking to build innovative products in a startup or not. It sets out many of the principles used at EF and in many new startup companies around the world.

If you decide this could be an option for you after leaving university, just head over to the EF website and fill in the application form by the end of the December before the year you’d want to join. The application procedure varies year by year, so I’ll just give you an idea of the process I went through when I applied:

  1. First off, you have the application form. You probably won’t need a CV to upload, but there are a number of questions requiring considered answers, and it’s very handy if you can give them links to your profiles on sites like LinkedIn and GitHub. There is no time pressure or “test questions”, but you may find it helpful to have read around about the process of creating startups, and the experiences of well known founders (e.g. the Dropbox story).
  2. If you’re successful after round 1, you’ll be invited to a brief (10 minute) phone or Skype interview with one of the main EF team. This isn’t as scary as it sounds, but some of the questions will challenge how you think about the qualities required in a startup founder, and what you’ve done in the past which was unique and impressive.
  3. After this, you may be invited for an in-person interview in London. These are held at their central London Bridge offices (a shared office space called “Club Workspace”), and last a couple of hours. There is an interview with one of the team (similar to the phone interview), and another interview where you can show off a project you’ve worked on in the past. There is also an infamous 1 hour online coding test – but the results are only used to help inform their decisions, and everyone comes out having found it equally tough. See my previous post on this blog for a taster of some of the questions we faced.
  4. Finally, once most of the selection decisions have been made, the potential cohort are invited to a weekend in London to meet the other applicants and take part in a short hackathon event. The weekend involves lots of introductions, lots of pizza and beer, and lots of frantic coding – great fun all-round. There is also an unconference which is a good opportunity to discuss anything you find interesting in the tech scene with like-minded people. In fact, meeting so many like-minded people with so many complementary skills was probably the highlight of the whole process for me.

This might sound like a tough and drawn-out process, but it only lasts around a month or two, and trust me: just go for it! You receive plenty of help and information along the way, and the EF team are an extremely friendly bunch.

If you make it through the whole process and receive an offer, EF kicks off in style with a reception at 10 Downing Street. High publicity seems to be a theme in EF, but it’s what allows the organisation (which is a non-profit) to get high profile funding to allow them to support the startup teams before they have any investment of their own.

EF starts over the summer (don’t worry – it won’t interfere with your final term at uni) with a series of hackathon weekends, somewhat similar to the final selection weekend. These events help to test and build teams and allow people to bounce ideas around, the motive being that you shouldn’t dive into a startup unless you’ve actually worked on a real project with your cofounders in the past.

The weekend events continue until early September, when it’s time to go all-in with a startup and move to work in the London offices full-time. EF is structured to give basic funding to everyone who starts a company at this stage to help them with living costs until March, when the companies pitch to investors in a big “Demo Day”. For this EF takes an 8% cut in each company – a very small price to pay for the extensive help and support provided by the organisation (including the free office space, of course).

After demo day, the companies are mostly on their own, but the benefits of EF don’t stop there. The network of investors and EF alumni continues to be available, with help, advice and a group of incredible people never far away.

So what are you waiting for? I look forward to seeing all your successful new companies in the near future!

Entrepreneur First

Preparing for the Easter Vacation

With the Easter vacation fast approaching and exams following closely behind, it’s time to start thinking about revision. The breadth of material in the courses can often be daunting so a clear revision plan is an important tool to get the most out of the vacation. Without a strategy, the time is easily wasted.

In this week’s Wednesday meeting, we all had a chance to talk to the students from other year groups so that we could share our knowledge and learn from the experience of everyone else. The Part 1A students are of course new to Cambridge exams so they had plenty of questions that could be answered by everyone else. We also had James, the only Part III CompSci at Queens’, who could share his wisdom with everybody.

Since every year group is in a different stage of the Tripos, we all had different questions. Below is a summary of the best advice heard from the point of view of each year group.

Part 1A

The Part IBs and James (Part III) talked to the first years about their up and coming exams. Seeing as this will be the first time we sit any Cambridge examinations, the discussion was particularly useful and gave us a good insight in to what to expect and how to prepare for them. Finding a balance between revising all of the modules in both computer science and our bench subject will be extremely important over Easter vacation, but it was nice to be told we’ll also have some time after the vacation to finish off revising if we need the time. We also learned that practising using past Tripos questions is just as important as making lots of notes, and so we should ensure we leave time to do that too.

Part 1B

The third years talked to the Part 1Bs about importance and relevance of some courses over others. They told us that Mathematical Methods, one of the Part 1B courses, is very useful for Part II, so even if it isn’t one of our favourite courses, we shouldn’t give up. Each year builds on the foundations and the knowledge laid down the year before so it’s always important to understand concepts fully and not merely memorise for the sake of exams. They also talked to us about choosing Part II projects. It’s important to start thinking about we’d like to do now and eventually choose something that we’re interested in because we’ll be investing a lot of time into it next year.

Part II

James (part III) discussed with the part IIs about the importance of balancing our revision and dissertation workload correctly. Although tempting to focus on perfecting the dissertation, as it is only worth 25% of our final grade, it makes more sense to focus on revising for the exams. Similar advice likely also applies to the part IAs who need to balance their revision for their bench-subjects, as well as Computer Science revision.

Group project presentations

Today was the day for all second year students in the Computer Lab to present their group projects. First we had a demonstration session to give everyone a chance to break the software, then we had 5 minute presentations from each group about what they’d done.

Sam and Eduards in front of their group project (which I failed to break)

Sam and Eduard in front of their group project (which I failed to break)

Mistral pitching the finer points of 'abandonment prediction' to Daniel (also known as Ticker A)

Mistral pitching the finer points of ‘abandonment prediction’ to Daniel (also known as Ticker A)

Holly with the occulus rift which her group used for visualising trading data

Holly with the occulus rift which her group used for visualising trading data

Jake was presenter of his group’s Sound Garden project.  He orchestrated (pun) a live demonstration: this involved the rest of the group strategically walking round the lecture theatre. Jake was also one of the few presenters who opened with a good attention grabbing opening line about turning people into musical instruments. Another notable mention goes to Eduard who proudly presented Prof. Ian Leslie with a Kit Kat as a reward for audience participation.

Also, there was some stuff done by students at other colleges too…

The Art of Pitching

Did you know that it takes no more than 7 seconds before people makes up their mind about someone after meeting them?

A pitch can be a crucial tool in convincing people that you’re worth talking to. A good pitch can make the difference between getting funding for your project or not. A fantastic pitch can give you the job you’ve always been dreaming about.

What would you do if you had a minute to tell Bill Gates about your idea?

The Art of Pitching

At this week’s Wednesday talk Ramsey spoke about how to give a pitch.

A pitch consists of three elements; the hook, the power of three and wrap up. If conveyed correctly, they will together draw the attention of the listener, make the listener interested and ideally change the listeners opinion about something.

The hook

The hook is the most important part of your talk. Remember, you only have 7 seconds to grab someones attention, so it’s crucial that your first two sentences are clear and concise. Further, you want the listener to be amazed or interested straight away. The hook can be one of the following:

  • Surprising statistic – a large number can often have an impressive effect. Did you know  that 100 hours of video are uploaded to YouTube every minute?
  • Fact – According to recent surveys, Facebook is the most engaging website on the Internet.
  • Bold statement – My social network will change the way we communicate with each other.

The power of three

After you’ve got the attention of the listener it’s time to convey your ideas. The trick here is to do it in exactly three strong statements (1-2 is often not convincing enough and 4-5 bores the listener).

Steve Jobs applying the rule of three during the presentation of the iPhone

Steve Jobs applying the rule of three during the presentation of the iPhone

When Steve Jobs introduced the iPhone he explained how:

  1. The iPhone had all the entertaining features of the iPod
  2. The iPhone was a “smart” phone
  3. The iPhone was great a internet communication tool

People can only remember three arguments in their head, so using more than that will not make your pitch more convincing.

Wrap up

At this point you should have got the listener really interested and it’s time to finish your pitch. There are three common ways to do this:

  • Call to action – you want the user to do something, e.g. “Sign up today!”
  • Link to hook – remind the listener why what you just said is important
  • Leading question – make the user even more interested, e.g. “What do you do to protect your website from hackers?”

Trying it out

After Ramsey’s talk we got the opportunity to try to make a pitch. We were split into three groups and got 15 minutes to prepare and plan it. A person from each group was then chosen to perform the pitch in front of everyone.

Katie was first to perform a pitch for (a social network started by Jake, Jeppe and Sam). She started the hook by asking the audience “How many in here have joined Facebook groups such as ‘Overheard in Cambridge’?” – (most of the audience raises their hands) – “The reason why you and 13.000 other students have, is that nearby content is often the funniest and most relevant”. She then gave three reasons why Localgag can do a better job than Facebook and finished by encouraging everyone to join the site.

Why Queens’ college is the best

Did you know that Queens’ graduates have made over £400 million within the last year? Radu started his group’s pitch with this impressive fact and then continued to explain why Queens’ is a great place to be in three short statements. He then wrapped up by telling everyone to follow the Queens’ Computer Science blog.

Why you should do a part III (Master’s degree)

Sid was doing the last pitch of the evening trying to convince the audience to do part III of the Computer Science degree. His three convincing points were:

  1. The Master degree is easier because you have less lectures
  2. The Master degree is more fun because you study more interesting topics
  3. The Master degree is exciting because you get closer to the real researchers (including exciting descriptions about one of the lecture’s sword collections!)

After the pitches we went to the Buttery for a Computer Science formal dinner.

Part 1B Group Projects

Amidst the heap (no pun intended?) of theoretical courses and pedantic worksets, there is no thought more pleasing to a Cambridge CompSci than that of being let loose into the real world to develop games and applications, all the while getting actual class credit for it. Such is the purpose of the second year (1B) group projects. However, as we were informed this week – group projects are also roller-coaster rides of happiness and debugging – often lessons in team-work, crisis management and effective leadership.

Every second year student at Cambridge is assigned to a group (of five or six students) with an industrial mentor. Each group must then spend the term developing a functional application based on their specific project brief (and consequently present it with all the fanfare of PowerPoint and WordArt).

Presented below are short summaries of the various projects Queens’ students undertook this year. Each description is followed by their learnings over the course of the term and a quick piece of advice for future CompScis.

1. Jake

Jake’s team was handed project “Sound Garden”. Their task was to automatically generate “pleasant” music based on the movement of people inside a botanical garden. This music was to follow certain rules decided by the path people followed and be implemented using “regular grammars”. If you find yourself asking the question “What do regular languages have to do with music?” – congratulations, you share at least one thing in common with Jake.


Eventually, the “regular grammar” part of the project was removed so as to allow a greater focus on user-experience. They’re now trying to use low energy Bluetooth sensors and a swanky Android app to calculate proximity to various points in the garden (thus tracking the path a user takes) and generating funky music.


- Focus on pitching to the client – tell a story

- User experience is the key to a successful application

2. Sam and Eduard

This team was to implement the “Transport Game”. In a city like Cambridge, we’re increasingly faced with problems of traffic and pollution, calling for the implementation of a “congestion” charge/tax to motivate citizens to use public transport more and their cars less.

However, what is the actual cost of such a move on my daily journey from Queens’ to the Computer Lab (if I could drive anything more than a bicycle, that is)?

Screen Shot 2014-02-24 at 12.02.56 am

We thus have the idea of a transport game/application. A user can simply open an interactive map and plot his or her daily route. You can then save/edit/delete routes and estimate a total running cost for the journey – fuel, congestion charges, time etc. One can then compare this to the cost of using public transport and voila, you can find the most cost effective way home.

All of this, of course, requires a great front-end (think Google Maps plus displaying custom information on traffic, routes etc) and a very efficient back-end (calculating optimal routes, costs, dealing with loads of requests).

We thus have:


- Split the team so that the back-end and front-end implementations can carry on (almost) in parallel while each solve their own technical/logistical problems.

- If you have expensive computations (routes), break your problem down; for example, they decided to store common travel routes by diving Cambridge into zones.

3. Andi

Some projects seem straightforward at first glance but soon present a whole load of difficulties – Andi’s is one of these.

His project involved a “Recipe Curator” – simply put, as a user, I can upload, download, find, read or edit recipes. “Ha, Easy!”, you say? Well, Andi decided to do all of this along with a “Suggested Recipes” feature. Essentially, the user could type out things like “I want a dish with eggs that cooks in 30 minutes” and the website should immediately pop up the hundred best omelets recipes it finds.

This uses a large amount of NLP (natural language processing) – a really cool branch of Computer Science.

What else did Andi Learn?

Many, Many Lessons

- Andi warns that every member of a team has different sets of skills – learn to use each member effectively. That may include changing your language of choice to include all teammates, or allowing some to do more of the presentation work (very important, mind you) and others to code more.

- Be prepared for the worst; sometimes people have to stop work because of personal emergencies – learn to stay calm and deal with it.

- In the words of Andi “A person who doesn’t work is not one who doesn’t want to work”.

4. Mistral and Jeppe

We now have our final team – dealing with “Abandonment Prediction”. Jeppe and Mistral were faced with the uber-cool task of analysing users on an e-commerce site and determining the probability of a particular user actually buying something. If they were want to exit, this algorithm should be able to predict it, allowing the site to display all sorts of discounts and offers.

But how do you write this kind of oracle?

Well, Jeppe and Mistral decided to build probabilities using historic site data – i.e. given the current path of the user (eg. homepage -> Justin Bieber CD -> Advertisement), find the most similar (“closest”) path from all your data and use that result as the predicted result in this case.

But that again leads us to the question of measuring distances between paths. Their idea was to represent each path in their data by a string of characters (eg. I for index page, P for product) and then compare that to the string of the current path. They further improved this by using weighted averages, caching results etc.

What does all this mean?

Loads of Lessons

- “Good architecture saves you time” – Mistral (who nonetheless doesn’t seem to believe in this himself, using Ruby for everything) soon realized that an SQL database is not fast enough and decided to load the files directly into the Java Servlet.

- Generating a probability makes for great Math but horrible user-experience; you need to pull this math into great JQuery styled windows for the demos/presentations.

- Further Java practicals are useful!

- Sockets are hugely problematic to work with

- Make sure your algorithm works well for on different data sets

Jeppe ended his presentation by boldly claiming that his algorithm predicted correctly in 98 percent of all cases (what he failed to mention, of course, is that 97% of users abandon shopping in the first place).