I've always been interested in mathematics and applications of mathematics like physics and chemistry and so on. So as a school child I hadn't really programmed at all until I reached the end of my high school but that was quite normal in those days because computers were just being introduced in the, in the late 80s and 90s. But then my first exposure was to learn Basic and pretty quickly I got hooked. Then I went to learn C, I learnt you know different kinds of operating systems and what fascinated me was that I could encode everything that I wanted things to do in a nice logical language and write it down and see it happen somewhere so I could see things move around the screen just because I said that it should happen that way. And then at some point in college they introduced me to how to program on microprocessor and connected haptic motors and that's when I really got hooked and that's in many ways my introduction to robotics, because that's the first time I wrote a program that made something in the physical well move and in many many ways it's then I'll always been doing something like that. Robotics is an interesting area because it's incredibly hard for us to pin down what is and is not a robot. At one level you can say that, you know anything that has sensors and actuators and goes through a closed loop program is a robot, but I think most people have something slightly more specific in mind, you know most people think about humanoid robots that look like me and have hands and legs, at least they think about machines that can move around the world and do things a little bit like insects or animals. So, I think that's a reasonable definition of what a robot is. The field is becoming sort of grown in a spectacular way, especially in the past 10 years but even if we think about it all the past few decades, one of the reasons is that sensors have become ubiquitous, everything has a sensor, your phone has a sensor, your TV has a sensor, your car has a sensor. And increasingly we are finding actuators which are things that can move something in the physical world, they are also becoming ubiquitous. So, and then if you can just write the right kind of programs and if you can put these things together suddenly you have this opportunity to make anything happen in the physical world. And to the extent of that can be done, robotics is just becoming you know part of the fabric of how the world works. And, so I like that, I like the fact that there are so many different kinds of systems that are out there and the kinds of programs that we are creating, one that they can even learn and act autonomously and so on are going to make the entire ecosystem, you know the world we live in, smart. The robots can do a number of different things, one of the most fun things that I've ever gotten a robot to do is to play football. Why do we do this? Because it's an interesting grand challenge for artificial intelligence. One of the goals of this field is to try to understand what are all the different things that people do in the way that they operate in the day to day world. So, this includes reasoning and the kinds of things that you are programming right now, but it also includes the connection to physical sensing and physical acting. So, there was a challenge, you know a few decades back in which a computer program managed to beat the world champion in chess and that was taken quite seriously by computer scientists and by general public who are just fascinated by the idea that you know, machines could take that well. But then that machine was only thinking inside a box and the next challenge especially for people interested in robotics is can you get machines to think outside the box? Can you get them to think in the physical world? And in shopping around for what would be a good problem people said, hey let's make them play football and the current challenge for a community of researchers who participate in this project called Robocop is to get a team of humanoid robots who compete with the FIFA world champions of the day and hopefully beat them by the year 2050 but we are still a few decades away. But every year this group of researchers meet somewhere there's an international competition, we bring a team of football playing robots, sometimes they look like this. There are many different leagues so in one of the leagues they look like this and the idea is that we are having a programming competition, team versus team, program versus program where they are deploying our programs through these robots and the fighting is how exactly like a football match under the rules of a, you know there's a referee who says when it's a foul, when somebody is penalized, who won, who lost. But one of the hardest things about getting robots to play football is to have them work autonomously for a long period of time, so there's a lot that's done in robotics in which there's a very small snippet of a task that's done repeatedly and done very well. But in football the conditions keep changing. So, you deploy the robot, it kicks the ball, it goes somewhere, somebody else comes and takes it, it has to look around find it, maybe it doesn't find it, maybe it falls down, maybe something else happens and so the amount of uncertainty in this environment is spectacular and to be able to program a machine that can deal with that level of incompleteness is quite hard and it's quite challenging. But then once we manage to get anything at all to happen, once we see a few minutes of robots playing something, you know even just a one instance of you know this robot passing so somebody, them intercepting it and hitting it to the goal, it's quite rewarding because you know, you see something that until then you only saw people do and now you're seeing a machine all by itself with no human interaction do and that's quite fascinating. Testing is probably the most important thing we have to do at the moment, so if you want a robot to act in many different circumstances, for instance we might program a robot in the pitch that we have here and we take it halfway across the world to China in a pitch that we have never seen before with lights we haven't really talked about and they still have to work. So, we have to test them in many different conditions, we have to think about ways in which they can go wrong, simulate it, make it happen and then see if our program still works and one of the most difficult things about testing robots is that we have to make these conditions happen in the physical world, so it's not just a matter of us trying out different inputs that we type through a keyboard, but we have to run this robot for a long period of time and see if something goes wrong. So, we then have to sit down and think about what we call scenarios, so we think about ways in which the robot might play, we make it happen in the real world, then we see if it happens, see if it works. If it doesn't work we have to go back and find out which module didn't work right at the program breakdown, so testing takes, you know many weeks and months and without it there's going to be no match. I think programming is becoming increasingly more important to the extent that everything in the world is becoming electronic in one form or the other, I mean everybody has a mobile phone, everybody has a TV that is intelligent in some form. Everything is now becoming programmable, you can literally reprogram how your house behaves. So, if you know how to program you have this freedom to make things happen. So, I think everybody should learn programming, even if that's not going to be their job, they should learn how it works because if you don't learn it you don't really understand how the world works and that's not a good position to be in. In terms of advice for others, I find that programming is most fun if you are doing it towards some end in mind. So, if you have Scratch and you want to make it do something then it's a lot more fun writing that program than if we just sat down and try to solve exercises from a book. And that's one of the nice things about robots, is that almost everything that we do through robots begins with oh, can we make it do this? You know, can we make it pick up something? Can we make it kick a ball? Can we make it do that? So, I would say that whenever you try to learn programming think about what you would like your program to do and make it fun so that you are inspired to sit down for those long hours of debugging and testing.