Monthly Archives: November 2015

The art of the Elevator Pitch

How well could you pitch something in the time it takes to get to the bottom floor?

This week Ramsey taught us the facts about first impressions: the first is that when you walk into a room you have 7 seconds to make an impression and the second that you then have just 100 seconds to keep the audience involved. This is a technique used not just in pitches but also in interviews where the main aim it to pitch yourself.

There are 3 key components to an elevated pitch: the hook, a power of 3 and the wrap-up.

The hook is your 7 seconds to truly impress whether that be with a stat, fact or bold statement. The more extreme the numbers the better.

The power of 3 is a psychological  tool used by both Martin Luther King and Tony Blair. It allows you to provide 3 key facts about the topic – it also apparently works very well for online dating.

The wrap up is the concluding statement of the pitch and should be altered to fit the purpose. It may be a call to action giving you the chance to demonstrate a project; a link back to the hook if you have finished your presentation or else a leading question can be used to engage the audience into further discussion. This, we were reliably informed by Ramsey, can also be used to put competitors on the spot.

During the presentation we learnt about the empowering body language we should employ. The most empowering is standing with your hands up in the air , like a gorilla, but this is ill advised in public places. Before presentations the wonder woman pose should be used to exert that display of confidence over the room as demonstrated by Ramsey.

One a aspect of body language many think is irrelevant but which is actually one of the most important are the hand gestures. Hands should either be steepled – like Tony Blair – or fisted like many politicians. We should never point as it reminds people of being told off or count on our fingertips as it is reminder of when we were children.

Before we got to attempt our own elevator pitches Ramsey pitched NAVSOP to us demonstrating all the techniques we should you use.

Splitting into 4 groups we all attempted to pitch very different things to the group. Henry Aspegren pitched “The jellyfish case” because who hasn’t dropped their phone. Rob pitched Andy reminding us how useful he is for lack of procrastination. Dhruv shared with us his dislike for the Cambridge Gown whilst Henry Thompson pitched… what was it again?? Oh yes Refresh.

Advertisements

I Thought I’m Studying Computer Science. Why All the Maths?

Last year my friend from another UK university has told me his algorithms exam question which went along the lines of this:

Your friend from Cambridge has implemented a binary search tree. Unfortunately, due to lack of practical skills, he has made some mistakes. Help him fix it.

I found it hilarious solely because there’s a grain of truth in every joke – Computer Science degree in Cambridge is indeed pretty theoretical, with courses like Logic and Proof, Computation Theory, Complexity Theory, Semantics widespread. At some point in your degree you feel like yelling into the abyss about why are you suffering through all this stuff.

That’s where Sid comes in with his talk this week. Breaking the holy tradition of speaking about his Part II project, he spoke about the mathematical history of the foundations of Computer Science instead to convince us all that these theoretical courses are all in fact integrated in the core foundation of CS.

It all began with Russell’s Paradox of a set of all sets that don’t contain themselves. This resulted in Russell’s and Whitehead’s conclusion that the Maths is broken. To be fair, they didn’t simply break Maths and ran away giggling, but instead tried to fix it in a book called Principia Mathematica by introducing some really simple axioms and some rules which we apply to prove things. And all was good with the world until Gödel broke it again.

sid_slide1

Sid’s translation of Gödel’s theorems to English

That made David Hilbert come up with Entscheidungsproblem (judging from the name, I guess he was angry at the time) – given a logical statement with a bunch of axioms deciding whether it’s valid. Then Alan Turing came along and thought that we can find if something is valid with what we currently think of as an algorithm. He then built an imaginary machine, Turing machine, that solved this problem and discovered that a general solution to this problem is impossible. In the meantime, Alonso Church approached this problem with lambda calculus and came to the same conclusion.

They later collaborated and came up with Church-Turing Thesis, stating that a function on the natural numbers is computable if and only if it is computable by a Turing machine, where computable means that one can compute it in his head. Furthermore, everything that can be computed mathematically can be computed by lambda calculus, while everything that can be computed by lambda calculus can be computed by a Turing machine. Great! Now we have defined our goal to make a system be able to compute computable things – we want a system to be Turing complete.

But what do we actually need to create a Turing complete system? Sid then shows that 6 things: constant function, successor, projection, function composition, primitive recursion and minimization are enough. Not satisfied, he then shows that actually 3 things are enough with SKI combinators. Not satisfied, he then shows that actually 2 things are enough since we can express one combinator through other two. Still not satisfied, he then shows that actually 1 thing is enough and introduces us to iota combinator. Since no one in the audience would’ve believed that 0 things are enough, Sid finally gets satisfied and stops.

sid_slide3

UUUUUUUUUUUUUUUUUUUU

But all of this history comes with some powerful takeaways. Computer Science essentially came about from a bunch of people thinking very hard about what it was possible for the brain, Maths or a machine to do. So in essence, Computer Science is not about programming. It’s about proving theorems, which programming is basically like. Sure, one can abstract himself from such an analogy and never go below the code level, but being exposed to theoretical foundations of CS can be proven valuable to understand the nature of this subject and as such Sid’s closing message was for everyone to try and take the most out of these courses now that they are aware of why Cambridge is teaching them.

In my opinion, it was a great talk and I really enjoyed this packed history lesson. But the most memorable part of the evening was Sid’s delivery packed with jokes at every corner including bashing PHP, using a grumpy cat, legitimately proving that P = NP, showing an XKCD comic on fetishes, deriving Andy’s banterousness, asking the audience a question where all answers were wrong, repeatedly breaking Maths, referencing popular songs by Hozier, Daft Punk and Mark Ronson, using the word “bae” and pretending that people won’t ask him questions if he asks for it.

sid_slide2

Disclaimer: the author of this post does not claim knowledge of the post’s topic. All contents are interpreted from Sid’s talk. If something in this post is wrong, blame Sid.

Object Tracking for Image Annotations

This week we had Matt present his Part II project to the group.

A big part of machine learning research at the moment has been creating and training algorithms to recognise objects. To feed these algorithms training data, traditionally you have had to go out and take thousands of pictures of your desired objects, say a human, and then ‘annotate’ the image, letting the trainer know where in the picture the human actually is. As you can imagine, annotating all of these images is a long and very tedious task that is difficult to automate. This is where Matt’s project comes in.

His idea is to take a video of the target object in various positions, say a human walking down a road, instead of separate photographs. What Matt’s project would then do is track the object through the video automatically, finding it’s position in each frame. This position data then gives the training set hundreds of annotated photos, each a frame of the video that it can then use to train.

To teach everyone about how an algorithm may go about tracking an object, Matt first took us through some of the basic techniques currently used, such as finding the gradients of an image by applying different kernels. For example, the image below shows the calculated gradients of an image, which can be seen to be a face. These gradients then give us a higher level look at the image, which is much better to work with then just raw pixel data.

face

However there are better methods that can be used, such as cross correlation, the method Matt is using in his project. Here, the algorithm gives us a ‘mask’ that we can apply to an image, and this mask will produce a sharp, centred white spot if the applied image matches the object, and a faded white image if not. This is an accurate algorithm, but is extremely expensive to use, as it has an O(p*p) complexity, where p is the pixel count. To improve this time complexity, Matt then showed us a mathematical method you can use to find the result of the cross correlation algorithm much quicker using the Fourier transform. We then had a demo where Matt showed the result of his work on this algorithm, which successfully recognised a face in various positions.