>> Victor Bahl: Okay, how are we doing? Come... told all the folks in Microsoft that when you guys...

advertisement
>> 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.
Download