>> Victor Bahl: Okay, how are we doing? Come on, come on. Some more noise. Come on. I told all the folks in Microsoft that when you guys show up here, there will be so much noise that they better run somewhere else, because they can't handle it. You can't even make a little noise, so let's hear it from everybody. There you go. All right, good. So I want to say, first, congratulations for being the participants in this first tournament or competition. I think if I have to tell you this, I was in the grading room with all the graders and volunteers, and I am shocked, so here's what happened. So last night, I took this test myself, right? And I scored myself, and then I came here very depressed, and I thought, oh man, I can't score. What are these guys going to do? They're seeing it for the first time. But you know what? Most of you scored more than me, so obviously something is amazing. So we are still tallying up all the scores, but it was phenomenal. It was just really, really cool. The amount of work, I didn't actually look at the team, but I did look at the individual tests, but it was great. You guys are just phenomenal. Also, remember, this is the first time we are doing this, so if this all works out well and we are able to somehow pull it off, you can -- as you grow older, you can sort of look back and say, you know, we were the first. We were the pioneers. We made it all happen, right? Because with you, we will end up thinking, yeah, maybe this can be pulled off. Okay, so I won't say more. What I want to do is this is how it's going to play out. So I'm going to introduce to you our guest speakers in a little bit, and they're going to talk to you a little bit about their passion, and then I'll hand it over to -- I don't know, maybe we're going to show some videos or something like that, some fun stuff that they have been doing. And then I will hand it over to Sana and Jain, who are then going to give the awards out, and we have some beautiful awards here for you, which were done with lots of pain and love and something that you probably will keep. And also, we have certificates for each one of you. They're also very, very beautiful. So what I want you to do is when you go out, we'll figure out a way, but you should pick up your certificate as you go out, and this is I think also sort of a keeper for you as you grow old and look at this stuff. All right, with that, let me introduce the two speakers we have. We have Lenin here, and then Aakanksha. So let me say a few words about Lenin. So Lenin got his doctorate, or PhD, from MIT recently, but before he even was doing his PhD, he was also working. He is sort of an entrepreneur. He has worked in companies. He has written a phenomenal amount of code. He actually did an internship in Microsoft Research, and we didn't want to leave him, so we actually gave him an offer right away and kept him for a year, and eventually he said, no, no, no, I want leave. I want to get my doctorate and do PhD. So he's going to talk to you -- I was discussing with him what he would like to speak to a you about, and he said that when he was young and he was exposed to all kinds of software, the thrill he got from that, that's the thrill that he wants to share with you, and so he's going to say a few more words about that. But it's great to have him. So let's applaud. Welcome, here. And the second speaker we have is Aakanksha Chowdhery, who's standing right there. Aakanksha also has a phenomenal pedigree, where she came to Us from India. There, she topped her school, which is a very prestigious school. Then, she went to Stanford, got a PhD there, and then she became the only female to have won the Marconi Award, which is a pretty phenomenal deal to have won. And then she's now -- she's an electrical engineer by training, as opposed to Lenin, who is a computer scientist, so she likes to hack into things, and you will see some of that in action when she talks to you a little bit about and shows you some stuff she's done in the electrical engineering domain. So let's applaud Aakanksha, as well. Okay, with that, I'm going to hand it over to Lenin, and enjoy his talk. >> Lenin Ravindranath Sivalingam: Thanks, Victor. Okay, so today, I'm going to talk about what does it mean to think like a programmer. Are you guys programmers? >>: Yes. >> Lenin Ravindranath Sivalingam: What does it mean to think like a programmer? >>: So things like what to do? >> Lenin Ravindranath Sivalingam: What to do, good. Yes. >>: To break problems down into smaller pieces? >> Lenin Ravindranath Sivalingam: Great. >>: Think what the code is thinking. >> Lenin Ravindranath Sivalingam: Sure. I'll tell you at a high level in my mind what does thinking like a programmer mean. It's making the computer do the work for you, right? If you have an idea, you want the computer to work for you. I'll show you a very fun example of what does it mean to make the computer do the work for you. Okay, do you guys know this game? >>: Yes. >> Lenin Ravindranath Sivalingam: What is it? It's Wordament, right? So for people who doesn't know this game, this is how it is, right? You have 16 letters in a 4-cross-4 block, and you should form as many English words as possible, right? And this is me playing, and you can see how slow I am playing. I'm sure you guys are faster than me. Can somebody say what your highest square in Wordament is? What is it? >>: Thousand. >> Lenin Ravindranath Sivalingam: Thousand, wow. I'm not going to hit 1,000 here. Okay. So at the end of the game, so let me forward here -- at the end of the game, when the game gets over, you'll have a ranking like this, where okay, so my rank is 492. Look at the first player, 1,300. It's amazing. So this is how the scoreboard always looked like. I'll be in the hundreds, and there are people playing in the thousands. I thought, okay, these people must be superhumans, right? How can they play so fast. And I looked at this video on YouTube of a girl from UK playing Wordament. Look at the speed at which she's playing. I didn't speed up this video. It's amazing, right? She is fast. She knows a lot of words in English, and she can do it really, really fast, right? Okay, I'm never going to work like her, right? I don't have the ability to do things like her. So I accepted defeat, okay? I am never going to do well in Wordament ever, right? But I always was curious, what does it take to get to number one and see my name number one there? Okay? But I don't have the ability. I can't do English that fast as she could, but I had another ability. I can think like a programmer. That is my superpower, right? If playing that game was her superpower, my superpower was to think like a programmer. So one day, before returning from Wordament, I just wanted to see myself at number one first. So I sat and wrote a program. I called this the Wordament Bot, and this was the result. Look at here. You have only 30 seconds left. My score is zero right now, and my bot starts playing. Did you hit 1,000? Look at my score. Right, so it's going to show the rank, and you're going to see that, oh, I topped the score. After this, I never played Wordament, but it was a lot of fun. Right, so this was super-fun. So this is what to think like a programmer means. That girl had the ability to think fast, and she knew a lot of words. Who is good at it? The computer is good at it. It can think really fast, and if I show it a dictionary, it knows all the words, right? And I spent a couple of hours winning the game, so this is what it means to think like a programmer. You make the computer do the work for you. So then, when I was asked to give this talk, I initially thought, okay, I'll show you a bunch of cool demos, but I realized, okay, when I was young, what was I inspired by? I was very inspired by people telling me, you know what, this is the first program I wrote. And I'll go back home and try to replicate the same program, and see, okay, can I write it better than them? So today, I just wanted to give you some of my past history highlights, right? When I was your age, maybe in middle school, high school, very early into college, what programs did I write? How did I become a programmer? So I want to talk to you about three programs I wrote when I was very young and all the lessons I learned from these programs, right? Okay, so this is the computer I had, though, when I was young. It had no mouse. It's text based. Everything was text. It has a very small monitor. I think this was a 286 machine. It used to be called a 286 machine. And the program I used to write and the language I used to program was called Basic. It was written by Microsoft when this machine was released. And this is the first program I wrote, tic-tac-toe. Everybody knows tic-tac-toe, right? Do you guys play tic-tactoe? >>: Yes. >> Lenin Ravindranath Sivalingam: Are you unbeatable in tic-tac-toe. Okay, good. Do you know what it takes to be unbeatable in tic-tac-toe? Yes, good, okay. So tic-tac-toe is basically you have three rows and three columns, and each player alternates and they play a game, right? The first program I wrote was a program where you have a player, he plays against the computer, so the computer has to think and play back. And you know, I was very proud that my program was unbeatable. My dad used to play, everybody used to play against this computer, and it was totally unbeatable. So how did I make it unbeatable, when I was young like you? This is what I did. I'll go, take a paper, draw out every possible game. Look at the game here. So the X is what the player plays, and the 0 is what the computer plays, so this is a game which I have written out in a paper, and I used to waste papers after papers, drawing this game out. And you know what, I translated this into a program. This is how it looked like. It says, if move is one and the player plays here, then the computer should play here. Okay, so it's a long list of if conditions. Do you know why the computer has to play in the middle when the player plays on the left? >>: So you have more chances of winning for your -- if you put your circle right in the middle. >> Lenin Ravindranath Sivalingam: Middle, exactly. That's exactly correct. What I figured out when I wrote papers after papers was that you have to play in the middle if you don't want to lose. If you don't play in the middle, you're going to lose, for sure, if the other player is great. Okay, so this is move one. Let's look at move two. Look at the number of if conditions. It says, you know what, if the player's first move is here and his second move is here, then go play here so that you don't lose. Okay. And another set of if conditions for a third one. Okay, so I wrote hundreds and hundreds of if conditions, and still I was very proud, right? You can't beat my computer, my program here. So this is what happened. My dad told me -- my dad was a programmer, and he told me, maybe this is not the right way to do it. I'll give you a challenge. Instead of doing a 3-cross-3 tic-tac-toe, here is four rows and four columns. Can you write a program for it? Okay? I quickly realized it's going to look like that if I did what I wanted to do, right? And this was wrong. It shouldn't do this. Okay, so then my dad sat me down and asked me, what did you do on the paper? And I told him, this is what I did in the paper. I enumerated all possible positions in the board and I picked the best move and I coded it with if conditions, right? And he told me, why don't you make the computer do this work for you? Why do you have to do this in the paper, right? And he organized my papers, and he showed me, okay, so now you have a position like this and you have to play. So you have six possible places that you can play. You can play in each one of these boxes here. Why don't you put a for loop and say, okay, I'm going to analyze each one of these positions, and you should let the computer do that, right? And you do this iteratively. Basically, you take a move and you analyze the next possible positions of what the player would play, and you will quickly realize that if the player plays the best move, you are going to lose no matter what and this is a very bad mode to play. So you just put loops, that loops is the key to make the computer work. This is what he taught me, and this was kind of really amazing. So you will quickly realize that this is okay to play, this is bad to play, that is bad to play, these things are okay to play, and the computer will make the decision for you. You don't have to make that decision. This is exactly why you have to play in the middle, because the computer will tell you, if you play any other move, you're going to lose. Right. So this is amazing. Has anybody written tic-tac-toe in Scratch, tried? You tried? How did you write it? >>: It was hard. >> Lenin Ravindranath Sivalingam: It was hard, good? It was hard. >>: Yes, it was pretty hard. >> Lenin Ravindranath Sivalingam: It was pretty hard, right? So I'll tell you a story, okay? I'm not going to actually lie here saying like, oh, I wrote tic-tac-toe write after my dad explained this to me. I went, started writing a bunch of loops, never worked. I was writing I think nine for loops for nine moves. Never worked. And then I tried after a year, after I took a computer science class, failed again, and then it took me until high school or even like early college to figure out how to write that program, but it was amazing. Once I had wrote the program, I realized, you know what? I'm a programmer. I made the computer do this job for me, and the tic-tac-toe was only 25 lines of code instead of hundreds and hundreds of line. And can anybody guess how many lines of code was the 4-cross-4 tic-tac-toe? >>: About like 36? >> Lenin Ravindranath Sivalingam: Thirty-six. Any other guesses. >>: Still 25. >> Lenin Ravindranath Sivalingam: Exactly. It's the same 25 lines of code. Right? You don't need to do anything extra. You just change a number from three to four and the computer will do the job for you, and you change the number from four to five, you can actually make the computer play a 5-cross-5 tic-tac-toe. So this was my first program. So this is the valuable lesson I learned from tic-tac-toe. I wrote it over multiple years, as I told you, right? I would do this. After a year, I'll come and take a stab at this problem again, and I would try again. But it made me learn a very important lesson. That is, you can make the computer do the job for you. That's the important lesson that I learned. So when you guys start thinking like a programmer, this is what is going to happen to you. Any technology that you see, you will see your phone, you will see a Kinect, you will see like a TV at your house, even the refrigerator. You're going to ask this question -- oh, how does this technology work? And when you think like a programmer, you're going to think, oh, how can I program it? So when I first saw Wordament, that's what I thought. Okay, how does this game work? And my next question was, it's not how can I play it? It's like how can I program it? So that's the mentality you guys are going to have. Okay. So this was my second program. My second program was called PhotoWiz, so this is the program I wrote. So this was the point where, in our house, we replaced this dummy computer into a reasonable machine which was running Windows. Okay, so we replaced it from a textbased computer to a nicer computer, which can display pictures and videos and awesome things, right? But at this point, I was already a programmer. I was thinking, okay, how does everything work? I was very curious about it. One thing I was very curious about was, this was the first time I was seeing photos from a computer, right? So I thought, okay, how does a computer store a photo? I know how a computer stores the text. How does it store a photo? So if you have a photo like this, how does the computer store it? Can anybody tell me? >>: It stores it by pictures, and each color is assigned a name and it keeps the names stored and then it remakes the picture every time you open it. >> Lenin Ravindranath Sivalingam: Sure. That's correct. Anybody else want to take a stab? >>: In the bitmap mode, it records every pixel, and in each number will be only for one color. >> Lenin Ravindranath Sivalingam: Exactly. That's exactly right. So let's look at this picture, right? Let's zoom into this picture. Look at what is happening. What are these things. They're just squares, right? They're just squares which is storing a color, right? And if you put a lot of squares together in row and column, you get a beautiful picture. Can you see that? >>: Yes. >> Lenin Ravindranath Sivalingam: So this was kind of amazing to me when I thought about it, right? Oh, you can actually make a nice picture out of just a bunch of squares, right. If the squares are small enough, you'll never see them. You'll see like a beautiful picture. It's just rows and columns of squares. My next question was, of course, can I program it? And the answer was, yes, I can program it, and there was this nice four lines of code in the language I chose. I think I wrote Java code at that point in time, and you can actually read every square. You can just say, look through the entire square, go through all the width and height, and you can get every color in the square. This was great. And with an extra line of code, I could even modify the color in that square. That was even more amazing. Then I thought, okay, I should be creative at this point, and I took a block of colors, and I would just switch the color components. Wherever is blue, I will switch it to green or red or something like that, right? And when you go back, look at this picture after you do that, it will look like that. Right? That's kind of amazing. And you can make it look like black and white, if you just make them gray, right? And you can completely make it look like black and white, right? So I called this program PhotoWiz, which I had, and I kept adding more features to it whenever I had some time. So I would basically make it look like this, so this looks nicely like a painting, and I would make it look like a sketch, and I would distribute this app to friends of mine, right, who would do all this, take printouts and put it in the world, right? It looks amazing, when pictures are changed this way, right? And I added more features. You can add a ghost to the picture. You can add more ghosts to the picture, and I started doing even more sophisticated things. It will find all the faces in the picture and replace it with a cartoon. So I call this feature like FaceToon or something like that, right? So this was great. So each one of these features were just five to 10 lines of code. That was amazing, actually. So when you think like a programmer, right, in five to 10 lines of code, you can be very creative. You can be very creative. Whatever you think you can build code, you can program pictures. You can program your Kinect. You can program your phone. It's really amazing, right? Okay, so the last program I want to talk to you about, this was much later, probably the end of high school, when I was starting college. So I wrote this program, which was called Welcome Home. So this was the time when I was really fascinated with pictures, but I went a little further, where we got a web camera at the home, and I was fascinated by cameras, right? So my first question was of course, how does the thing work? So how does a camera work? Can somebody tell me, how is it related to pictures? >>: Well, so you have a camera, and then ->> Lenin Ravindranath Sivalingam: Specifically a web camera, right? >>: And then you press something, and then it just saves that. >> Lenin Ravindranath Sivalingam: Okay, okay. Do you want to take a shot? >>: Well, I think the camera captures the light. >> Lenin Ravindranath Sivalingam: Okay, sure. So that's how you take pictures, right? And that camera specifically, it will give you a stream of pictures like that, which is changing. So when you look at it, a stream of pictures is a video. Right, that's what a webcam is all about. Then I got really fascinated about it. Okay, now instead of one picture, I can work with a lot of pictures, right? My next question was, yeah, can I program it? And the answer, again, was yes. Again, in Java or whatever language I was doing at that point, in three lines of code, I can say, you know what, capture and in a forever while loop, I can say give me all the frames that has been currently caught. So this was also amazing. So I wanted to do something very creative with it. When I get a stream of pictures from a camera, what can I do, right? So I wrote this application. So this application was called Welcome Home, where I would set up a camera in my room which is always running. So it will always look at my room, and whenever something changes from the pictures, especially when I walk into the room, it would say, you know what? Something changed in the room. Somebody walked into the room. And it would turn on the lights. It would start playing music. It would welcome me into the home, so this is the app I wrote, which was a lot of fun. I tried to recreate the app for you. Let's see if it works, right? So let's see. So this, I tried to recreate this, which I called it Welcome Home, so this is the app. Here is the camera. It is looking at the wall right now, unfortunately. It's not my room, but here is the deal. As soon as I kind of go enter my room, the lights go on and the music starts playing. I didn't do anything. Right? This was really amazing, but until it got really annoying to my parents. So whenever they walked into the house -- let's turn on the lights first. And whenever they walk in and the maid used to come, this used to go on. Okay, then I made it a little sophisticated. Only when I go sit before a computer, it would actually recognize, okay, there is a human there or a face there who is actually looking at me, and it would turn on the music. This was kind of a lot of fun, right? The thing is, I kept this program all through my years, and I used it for many, many, many different things, the same program. I haven't modified the program even a little bit, but I've used it for many things. Do you guys know what this is? How many people have a birdfeeder at home? Great. Okay, so I love birds, and I love birdfeeders. In my home, everybody loves birds. So we actually set up a birdfeeder. So you know when you set up a birdfeeder, it takes birds actually up to a month to actually discover it, and you set up a birdfeeder because you want to see these birds, right? So here is what we did something that is innovative. We didn't know keep checking whether the birds came or not. All we do is we took our program, and we set up a camera near that birdfeeder and kind of ran the same program. And when a bird would show up, it would detect, oh, a bird is there. And I did one thing extra. It would send an alert to my phone, and this worked one day. At 6:00 in the morning, I got an alert saying, you know what? There is some activity in the birdfeeder. I went, looked at it, and there was a bird. This was amazing. I was very proud of it. It was a very simple program I wrote when I was young, but I could still make it work, and make it work for very useful things. >>: So I'm thinking, if you can make this camera program for the birds, there can also be a way to -- can it recognize other animals and not just human faces? >> Lenin Ravindranath Sivalingam: Sure, so all I was doing here, right, is the image changing a lot? Is somebody blocking the camera, right? It's like whether the change in image is a lot, so it will work for anything, any animals, right? >>: That would mean it can also block out squirrels. >> Lenin Ravindranath Sivalingam: Exactly, it could find. When something happens in the birdfeeder, it will say, oh, there's something going on, and you can see. But you can write a squirrel detector. That will be great. It can tell you when there is a squirrel. But here is the thing -- oh, yeah, sure. >>: How do you make it so that it doesn't detect or alert your phone if the cloud moves? >> Lenin Ravindranath Sivalingam: That's a really amazing question. That's a really very good question. Okay, so there's this program. It's kind of robust to all those changes. So what it does is, when there's a very slow change in the camera, it would say, okay, there's no big change that happened right away, so the clouds would move slow, and then we not generate an alert to the phone. Also, a fly would just fly here. A bird could just fly here, and you could get an alert. To do that, what we did was, oh, some change happened, and the change has been staying there for a while. So we wrote code like that. You can always make this work. This is the amazing part about programming, right? So you can always -- when you face a problem, there is always a solution to it. So here is what happened, so the birdfeeder alert came, this is great. But the next day, we had to take it down, because the birds figured it out, and I would get alerts after alerts on my phone. Then it started getting really, really annoying to us, right? So this is the lesson I learned from this project I did, which is if you think like a programmer, you can quickly put things together to solve problems, real-world problems. I put the camera, the computer, the lights, the music, even the phone together, to solve these problems. So today, I write a lot of big programs. Like Victor said, I work for companies. I've worked for companies which were startups, which are used by millions of people today. Some of my code is in Microsoft products. I write research papers. I do a lot of programming. On a daily basis, I would have probably written millions of code, but the thing is, still, when I go back home, I think about these things, which is how can I do some simple hacking, which is simply program my home in a way I can enjoy programming, as well, just that it's not my daily job, but it's my hobby as well, right? So I want to tell you one thing. Today, I still have the Welcome Home app set up in my home, now that it's a little bit actually sophisticated now. So what I do is, I keep a camera, but I also use my phone. So smartphones came like six or seven years back. I was, again, very curious about it, how does it work, can I program it, and I've done a lot. All my work is on smartphones these days. So today, when I go into my home, all I do is I shake my phone and the lights would come on. Right, so did you see that? I can show it to you again. I shake my phone and the lights would come on. I would do that. I would in fact do this. I'll just like move my phone like this and the brightness would increase. I move my phone down, the brightness would decrease. The brightness went down, and it will increase, so I used to do things like that. So when you go back home today, I want you guys to think about programmers. Think like a programmer, right? Think about what you can program around you, what fun things you can do, what problems you can solve. Actually, that's my talk. It's like, if you want any of these things set up, you want to look at my program, just send me an email, right? I'll send you the program. So at this point, I'll give it to Aakanksha, who is going to show you really cool things, what she has been doing with the robot and the Kinect and things like that. Yes? >>: Okay, so you said you created an app, right? >> Lenin Ravindranath Sivalingam: Yes. >>: How many screens does it averagely take to create an app? >> Lenin Ravindranath Sivalingam: That app is just one. >>: No, I'm saying like average app? >> Lenin Ravindranath Sivalingam: For average app. It depends on what average means, like amount of money you make? The average you want? >>: No, it means like how many different -- when you go on an app, like take Instagram, there's like a homepage, and then there's ->> Lenin Ravindranath Sivalingam: That's right, that's right. It depends on the complexity of the app and depends on what you want to do with it, right? We have written apps where it's just one screen, but it's doing very intelligent things in the back end, and it will detect driving. It will tell people whether they are driving properly and things like that, so it's going to depend on the problem that you're solving. >>: So you take all of these [indiscernible]. Would it still detect that or would you have to change some code around? >> Lenin Ravindranath Sivalingam: You have to change some code around. Unfortunately, programming for the iPhone, Android and Windows Phone are all different, but still, you'll end up writing only 10 optimized lines of code. >>: My second question was how many coding languages do you know now? >> Lenin Ravindranath Sivalingam: How many coding languages do I know now? So I don't keep count. I just look at something I want to program. When you think like a programmer, all you think about is loops, if conditions and recursion, only things like that. So you can learn a programming language quickly. So it doesn't matter. >>: How is it different? >> Lenin Ravindranath Sivalingam: They are not very different. They're all typically similar. They'll all have loops. They'll have if conditions. So if you know one language, it's like you know all the languages. >>: I have a question, so you know like in some coding languages there are like you can get some syntax errors and stuff? How does it detect the syntax errors? Some don't even know there's a syntax error and some actually ->> Lenin Ravindranath Sivalingam: Right, so the languages I use, I typically use what is called an IDE, which is a development environment. So the development environment, if it is actually nice and powerful, it would tell you that there is a syntax error. >>: Okay. >> Lenin Ravindranath Sivalingam: Okay. I'll let Aakanksha take over. >> Aakanksha Chowdhery: How is everyone doing? What programs are you planning to hack when you go back? Cameras? What else? >>: NSA. >> Aakanksha Chowdhery: NSA! >>: Video games. >> Aakanksha Chowdhery: Everything. [Indiscernible]. I didn't hear that. Okay, so has anyone been excited about robots when they are young? >>: Yes. >> Aakanksha Chowdhery: Wow, that's a big crowd. Well, this guy really excited me when I came to Microsoft, and I wanted to see what we can do with it, so I want to talk to you about if you think like a programmer, you can make the computer do things and manipulate the world. Can you make the robot do things? Yes. Do you think it's hard to make the robot do things? Yes? >>: No. >> Aakanksha Chowdhery: How many people think yes? Okay, so I want to change that notion that it's hard to program a robot. In fact, what we will see is that you can program a robot by using your body. Has anyone used a Kinect before? Wow. What do you do with the Kinect? >>: So you could even [indiscernible] you're the controller instead of pulling a controller. >> Aakanksha Chowdhery: You are the controller. She's right. >>: We use it as a decoration where we just leave it on the coffee table. >> Aakanksha Chowdhery: Okay, it's a decoration piece. Great. Anybody else? >>: Well, there is a sensor in the Kinect that detects your movement. It has a camera, too, so the sensor detects the movement in the background, and then if you're -- for example, you're playing Just Dance. If you move like this, it will tell the Xbox and the game to say that he did this, so I'll get like 75 points or something. >> Aakanksha Chowdhery: So what's your name again? >>: Pranav. >> Aakanksha Chowdhery: What you have just told us was that if I moved my hand like this and the game likes that move, then it will give me points. Is that correct? >>: Yes. >> Aakanksha Chowdhery: So it can see more than a camera in some sense. Is that correct? >>: Yes. >> Aakanksha Chowdhery: So it's not just a camera, it seems. It can see my body. It can see my body almost to the point where, if you are playing a game, then you can actually control things. You can actually kick a ball. Sorry. Throw a ball or kick a football or play tennis. Has anyone used Kinect Sports? Okay, so to understand how Kinect works, it's actually seeing this image. We will just see this in a second, where it's actually telling which joint of my body is where. Does anyone understand what this is? This is your skeleton. Go ahead. >>: Well, if you look at it when there is two players playing and each player is doing a different thing and each player has a different movement, and you can see there's small gaps between their arms, and then their legs and stuff, and I'm pretty sure that's their joints and the connectors and stuff. >> Aakanksha Chowdhery: So these dots, as Pranav tells us, are the things which are the joints. So can I detect my arm here? >>: Yes. >> Aakanksha Chowdhery: Can I detect my shoulder here? >>: Yes. >> Aakanksha Chowdhery: So let's see if we can make the program run. Okay, I keep dropping this mic. So I'm going to show you the program where I can make the Kinect run. Okay, so this is back right now. My Kinect is here, and let's see. It's seeing me. >>: [Indiscernible], can you see that sometimes Kinect isn't always the smartest, and it makes your body go spastic? I put my arm like this, it goes into my body, down into my foot. >> Aakanksha Chowdhery: You better let the Kinect programmer know there's a bug. >>: It's doing it. It's doing it. [Indiscernible]. >> Aakanksha Chowdhery: So Kinect is seeing from this angle. If the hand is behind, then it's not able to see it. Do you see what I mean? >>: Yes, I know. >> Aakanksha Chowdhery: Okay, so moving on. How the Kinect works is that Kinect camera sensor, we saw cameras in Lenin's talk, but it also has an infrared sensor. What infrared does, it sort of gives me where my joints are relative to the camera, so I have initial information which lets me schedule the entire skeleton of my body. Isn't that exciting? What can we do with this? Now, so let's see what we can do with this. >>: So I have an idea. So there are some people developing apps and stuff, just like Lenin said, except that you don't have to shake or do something with the Kinect. Can you connect the camera on your roof or something and then detect if the person is the owner of the house? You can set it to have a picture view, and whenever it detects you, the door just automatically opens, you can just come in and all the lights turn on. >> Aakanksha Chowdhery: That's correct. So that's the Welcome Home app that Lenin wrote, but the fun part of Kinect is that I'm going to use my body to program this robot. Would that be exciting? >>: Yes. >> Aakanksha Chowdhery: Okay, so let's see how this robot works. So robots, they're exciting because they can help us manipulate the world. They can go, instead of us going somewhere. Don't you wish that all the tasks that your mom gave you, you had a robot to take care of them? >>: Yes. >> Aakanksha Chowdhery: What? >>: I have a question about your body. If you ->> Aakanksha Chowdhery: How it learns [indiscernible]. So if we wanted to program the robot, we can't give it Kinect, right? The Kinect will tell, this is my arm, this is my head, this is my torso. This robot here, it has an arm here, as you can see in this picture. It has an arm here. Similarly for the rest, right? So what I want you to tell me is that can you use the Kinect to program this guy? I want hands so that I can hear. >>: Yes, because you will have the -- you can program it so that it has the same joints where your joints are, so that when the Kinect sees you move one of your joints, it moves the robot's joints. >> Aakanksha Chowdhery: Okay, so any others? That's correct. >>: So it seems like it would work, because it has a joint layout similar to the joints in the Kinect skeletal model. >> Aakanksha Chowdhery: Right, right. So does that sound complicated? No? Yes. >>: So you know how the Kinect picks up your body movements and it kind of translates them into code and then you can see your character moving in the thing? >> Aakanksha Chowdhery: So what he's telling us is that Kinect can pick up my body movements, my arms, both arms, my torso, so I can make the robot dance, if I dance, right? I can make him punch if I punch, and then my friend cannot fight with me, because I will not punch him, right? You want us to try this? >>: Yes. >>: Yes. >> Aakanksha Chowdhery: Do we have a volunteer for getting punched? Okay, let's try you. You have to go down because he is down. Give me one second. I'll set up the program. Okay, so let's see. Where are we? The robot is looking to me. Okay, so I raise my arms, the robot raises his arms. Okay? Now, I go down, it goes down. Now I want to kick -- what's your name again? >>: Arvi. >> Aakanksha Chowdhery: Arvi, okay. Here we go. You are not close enough, Arvi. There we go. >>: Without falling down. >> Aakanksha Chowdhery: He can kick, but I haven't programmed, because he might fall. Okay. Does anyone else want to try? Okay, we have another volunteer. >>: I want to break the Kinect. >> Aakanksha Chowdhery: You want to break the Kinect. Let's do that afterwards. Let's do it afterwards. Okay, so that's exciting, right? Now, do you want to see the robot dance? >>: Yes. >> Aakanksha Chowdhery: Yes, okay, so that will be the last thing. Okay, so who thinks they can program robots now? I want everyone in the audience to feel they can program robots now. Do we have everyone? Okay, great. >> Victor Bahl: Okay, get (inaudible) for Aakanksha. >>: 011, and it goes from top to bottom, and in computer science, that's always tricky, does it go left to right or right to left. So here's a one and a two, so it makes three, and the second ->>: How do you generate a random number in Scratch? >>: I don't know that. >>: How many bits are in a byte? >>: 1,000, right? >>: What's 3 in binary? >>: 0101, something like that? >>: Do you know who invented programming? >>: I don't know. >>: Let's see. Do you want to say one of these words, see if we can get one of these words [indiscernible]. >>: Optica [indiscernible]. >> Aakanksha Chowdhery: Awesome. [Indiscernible]. Now, I'm going to ask you for questions, like, for example, can you read this word? >>: [Indiscernible]. >>: Daily double. What is the most important part of a computer? Printer, power supply, monitor, hard drive? Yes? >>: What is hard drive? >>: That is incorrect, unfortunately. >>: What is monitors? >>: No, that is incorrect. Yes? No, girl behind you. >>: Power supply? >>: Yes, power supply is correct. Come on up. >>: All right, we have a couple of things to do before we start giving out prizes, which will be super-exciting. First of all, have everyone get really quiet for a second. If you are below a fifth grader and you still came today and competed, I want you to stand up. All right, we have to give them a round of applause, because that's amazing. All right, you guys are super impressive, so thank you so much for coming. Second of all, we're going to do a quick little activity. On the count of three, I want you all to scream, I love computer science. >>: Including parents. >>: Including parents, all right? Are you ready. This has to be super, super loud, okay? One, two, three. >>: I love computer science! >>: Very nice, very nice. All right, who's ready to get some prizes? Yeah. Okay. So once you guys get quiet, this is what's going to happen. So we're going to announce the top three for fifth and sixth and the top three for seventh and eighth in both the team competitions and the individual competitions and then the top two for the original project design. All right? And parents, if your child wins a prize, feel free to come up and take a picture. It'll be a little graduation, diploma moment. It'll be really cute. All right, we're going to start with the team competition. >>: Okay, so in our team, sixth grade and under, our third-place team was Kokoni. Come on up, get prizes. Team Kokoni, where are you? >>: Team Kokoni, come accept your reward. >>: Come on, get a plaque. >>: One, two, three. >>: [Indiscernible]. >>: Okay, our second place in sixth grade and under was actually a team that was formed today, that didn't even practice together before, and it's Christopher, Ethan and Justin. >>: We picked the stupidest one and we won [indiscernible]. >>: Good job. >>: And our first place team in sixth grade and under is the Coding Wizards. Are they here? Coding Wizards? First place? No? All right. >>: I'll take it. >>: I'll take it. >>: We'll find them after. Okay, so seventh and eighth grade, third place, Just Scratching the Surface. >>: The best name award, probably. >>: There were a lot. In second place in seventh and eighth grade, we have team FR71. And in first place for seventh and eighth grade is Team Beefalo. All right, great. >>: All right, so now it's time for the individual competition awards. For sixth grade and under, in third place, with a score of 84, which is fantastic, is Brandon Kyong. All right, in second place, just above him with an 85, is Belle Pan. And in first place, with a score of 87, is Nicholas Sarui. Sorry, guys. My name's pretty hard, too. For seventh and eighth grade, in third place -so they were scored out of a higher number, so the scores were pretty much equivalent, which is amazing. So in third place, with a score of 82, is Daniel Wang. In second place, with a score of 92, is Karthik Lata. And in first place, with a score of 93, is Ben Lees. All right, last up, France is going to announce the original design project. >>: Hi, guys, so before, we're going to have a second place and a first place. Before I get to that, I'd like to mention some honorable mentions we had. Ian Hutchinson, with his artificially intelligent tic-tac-toe game, the Conquistadors, with their very complex scrolling platformer that had original sound and art, and they demonstrated some good teamwork, splitting up their work. And then Youssef Harity, who wrote a game to bring attention to global warming. It's really cool. Oh yeah, stand up. >>: Are they here? Good. >>: Stand up if you were one of those people. >>: Okay, so before we announce the winners, I just wanted to say that this was our first year of doing this, so we had no idea what to expect when we were judging these original projects, but we were all floored by what you guys came up with, so choosing the winners was very difficult. And, like I said, it ranged from really, really creative projects to incredibly technically difficult, and you guys all put in so much work, so you should all be really proud of yourselves, regardless. So, thank you. It was so much fun to do this. >>: Okay, in second place, we have the Technos and Pixels with Into the Clouds. So their project utilized some hardware where they actually made some physical controls for their game. They made physical arrow keys that they pressed, that completed circuits and sent signals to their computer, and then they made a maze game that was actually very, very well done and very complete. Good job. >>: All right, and in first place, we have Jack Mandlecorn with Spectrum. So Jack's project, it looks like this, and it renders 3D shapes that you can manipulate and turn and stretch, and he explained all the math to me. It was very complicated, and we were very impressed. >>: A couple of quick announcements. Number one, there was a phone found, so if anyone is missing a phone, please come phone me. >>: And it's a bag. >>: And a bag. And we're going to have -- we're going to have Victor come say a few final words in closing, so thank you, everyone, for coming. It was amazing. We had a great day. >> Victor Bahl: Okay, so I know you want to go. I just have a couple things to say. One is to the parents. So I think -- I don't know if you guys know, but computer science enrollments are going up massively in almost every university that I know of, and because the potential to do amazing things has become much more than it ever was in this field. So I think your kids are all in the right place, right track, and just know that computer science does not mean just that you sit in front of a computer and you program all day long, and you come back, and you become a nerd where you think like that. It actually means, like we say, it's a way of thinking. It's a way of breaking down complex problems into logical entities and then trying to go after them, and that skill can be applied anywhere, in any field. Some of the greatest advances that are happening are in the medical sciences, for example, in biomedicine, in biocomputing, where you're actually looking at societal problems that are going to be solved because you're going to be able to bring computers and the horsepower of many, many servers in the cloud to solve these problems. And you kids, you guys, are going to do that. You guys are going to solve the problems that our generation could not solve, and that's because you think. You think like that. You think about big data. You think about lots and lots of amazing amounts of data that comes from different places, and you correlate that data, and you find some inference out of that, and that inference will now solve these problems. So this is a first step. I hope you had a good time. What I want to actually do is get all the volunteers up here who have worked pretty hard to make this all happen. So if you're a volunteer, just come up here. So there isn't enough I can say about these guys. They have been up late at night. They have prepared their questions. They have tested them again and again. They were much more passionate than I could have ever imagined. Couldn't have worked with a better group of people. We really appreciate them, so just a loud applause to all these guys.