Placeholder Image

字幕表 動画を再生する

  • Hello world.

  • Welcome to the 11th annual CS 50 Fair.

  • The CS 50 Fair is an epic display of all 800 plus CS 50 students final projects here at Harvard University at the very end of the semester.

  • While we spend much of the semester working on programming assignments or problem sets, the final project of the course is truly the Courses capstone, where students are invited to build and design and implement most anything of interest to them.

  • And then today, CS 50 Fair is all about exhibiting their final work.

  • So behind me, here are dozens of tables and dozens of balloons, and so much more students haven't yet arrived, but in just a little while will be pouring in as well.

  • Be students, faculty and staff from across campus.

  • And let's take a look at some of the locations that students will have access to today.

  • In addition to demonstrating their final project, all Tantan D's today, we also have this tradition of a CS 50 photo booth born out of our tradition of videography and photography.

  • The photo booth is an opportunity for students just to create some fun memories, for instance, here that can take a sort of instagram picture of themselves and then create a postcard out of this that will then post online.

  • There's all sorts of fun.

  • Swag.

  • You might, for instance, recall this guy that's been featured in quite a few of CS fifties muffin based films.

  • And then, of course, do we have some CS 50 shades.

  • So that is your star shines especially bright here at the CS 50 fare, you can go ahead and look all their cooler for it.

  • Let's continue our tour.

  • And, of course, there is food.

  • So much food has been a tradition here at the CS 50 Fair for years to put out bags and bags and boxes and boxes of popcorn and, of course, some some snacks.

  • We have some sweets here, such as chocolates and then, of course, for healthier options.

  • We have some fruit snacks as well.

  • Let's head upstairs next, and there's even more space upstairs.

  • Here in the balcony will be more students, final projects, some of our guests from industry, and when students check in, will they receive their very own.

  • I took CS 50 T shirt.

  • Indeed, we're here in the Smith Campus Center for the very first time.

  • This is a brand new, renovated space on campus that's open all day long two students and faculty and staff as well as to all passers by.

  • So we're looking forward to the grandest audience yet.

  • Let's now take a look how we're gonna capture all of this.

  • Behind the scenes would see his fifties production team.

  • And here we have C s Cities Amazing Production Team here today to capture all of these memories and behind me.

  • In fact, it's CS 50 Zone, Colton Ogden and Veronica Nutting here to moderate and commentate on today's entire event, tossing to some of our correspondents in the field.

  • This, then is CS 50 and this is the CS 50 fair.

  • Welcome.

  • I everyone welcome to the 11th annual CS 50 fair.

  • My name's Veronica and adding my name is Colter Noggin.

  • Thank you all so much for tuning in.

  • We're live streaming to Facebook to twist to YouTube.

  • Wow.

  • And, uh, this is a special fare because we're actually in a brand new venue.

  • This year was so cool.

  • We're at the Smith Campus Center in the heart of Cambridge.

  • And actually, I think we've just got in the queue that we've got her first project.

  • We do already?

  • Yeah.

  • Our first interview is gonna be with Amelia Cobra in the interview booth.

  • The project name is my cord.

  • And their slogan is the composer's best friends.

  • Why?

  • Don't go turn over to them.

  • Good Lord.

  • We beat a ton this year.

  • Hi, I'm Emilia Cabrera.

  • I'm a t f here in CS 50 and I'm here with Shaw Fee and in.

  • And they're gonna tell me a little bit about their project.

  • My cord, the composer's best friend.

  • I'm so can you guys kind of give me a walk through through your projects?

  • Sure.

  • You want to start our stunt?

  • Go ahead.

  • All right.

  • So my court starts with this idea.

  • You're a composer or a music theorist, or you're just in class.

  • You've got a bunch of notes, maybe a bunch of sets of notes.

  • You don't really know what chords you're dealing with, and you don't want to have to go through the circle of fifths over and over.

  • Right?

  • So that's where our website comes in.

  • Exactly what our website does is it takes in input of the number of it takes an infant notes within chords, so you can choose a number of nosy want.

  • I'm saying we want to know something.

  • We wanted three chords, and what it does is I was gonna input some notes here, Um, f c and let's do G e and C and what it's gonna do.

  • It's going.

  • It's going out.

  • Put a whole bunch of characteristics of those cords first.

  • All first off is gonna tell you the route.

  • So what?

  • What note is the basis of this court quality of the court?

  • Which is what type of cord.

  • So there are major chords.

  • I like major keys are minor chords or dominant cord's gonna be sad, bold, etcetera.

  • I'm gonna tell you the inversion of the cords, what keys the courts belongs to and what courts What keys?

  • The entire set, of course, belongs to you as well as the case is, which are sort of like progressions between court is gonna tell you all of this information based and it's all based on modular originally performed in five.

  • All right, that's incredible.

  • So it seems like both of you are very knowledgeable about music motivation.

  • Behind this project are both of musicians one something you would describe it as I have loved me theory since I was really young but actually inspired based on one of our mutual friend Michael.

  • Right, That's exactly Michael was like bashing his head against the wall, trying to figure out chords and were like, Hey, what if?

  • What if he made an app or some sort of Web site that would allow us to do this simply and saved people a lot of time and a lot of effort and a lot of stress?

  • So that's what all relate toe late night peace setting, right?

  • No, I know, and it seems like you guys have accomplished that.

  • So in terms of kind of the code, what is sort of the hardest part of this project and how do you guys think you overcame that?

  • What was the hardest part?

  • I would say the hardest part was definitely figuring out the sequence of steps we needed to perform toe identify accord like what makes accord like what makes a court accord in the sense that you can definitely perm you the notes sometimes.

  • But what does that change?

  • What happens if you have repeated notes and chords How are we gonna How are we gonna uniquely identify all those boards?

  • I'd say that was the hardest because I feel like with music theory, it's he is not all.

  • Not all substance of notes are gonna be chords.

  • And so trying to figure all that logical Hi there, trying to figure out Hey, what cases don't work?

  • What cases do work and sorting through all those different scenarios?

  • That was probably the hardest part.

  • I think the smartest part of this code is the way we realized that basically all of ah musical notation could be reduced to modular arithmetic.

  • So when we do that, we can look at the distances between notes.

  • We can look at the ordering of those distances and we can say, OK, based on this information, we know whether or not this is a chord.

  • So that's so interesting.

  • You guys connected kind of this mathematical side with this music.

  • Wow, that's incredible.

  • So just as the whole, like, how has your experience been with CS 50 and do you think you've progressed from where you started at the beginning of the semester?

  • You take that first round CS 50.

  • I think that I came in with zero background in computer science at all, and I think you guys have this way.

  • Now we have this and I think that I've learned so much from this class.

  • There were weeks where you're rougher than others, but I think many as with any class, he sighs, resize.

  • Reese was rough, but I'm really glad that it took this course.

  • And I'm really excited to be able to apply the computer science skills that I've learn from here to future projects.

  • I came in with a bit of a background of computer science.

  • I've done it for a couple of years, maybe 34 years, actually.

  • And just being in this class made me want to study CS more because the problems we did were so so relatable like, Oh, what if you've lost?

  • You know your pictures on your memory card?

  • Or what if you need to make a survey for people to fill out being able to do all these cool things from allocating memory to actually building a website?

  • Just give me a good breath of tools and I feel like I'm excited to explore more Well, thank you so much, guys, think this was in and show offy and this was their project.

  • My court on this is CS 50.

  • So that was my corn.

  • That was a really awesome project.

  • I'm actually a musician, or I used to be more of a musician on a music producer.

  • And so I think, like, sort of exploring those chord similarities and compositions.

  • It's really cool and applying math to it and making a weapon.

  • Are you a musician?

  • Do you do music and all?

  • I took many, many years of piano and guitar, but I wouldn't call myself a musician, But tell us a bit.

  • The music here is really, really cool.

  • I think we got, like, this great vibe going everyone sort of almost dancing right now.

  • But that's all you, right?

  • Uh, do a degree.

  • So we actually have an MP three.

  • That Whoa.

  • I sort of generated with some non copyrighted music.

  • Um, but it's yes, it's been use any modular arithmetic for that?

  • No vehicle algorithm, No music?

  • No, it's basically a bunch of cross faded.

  • Everything follows.

  • So that was It was a good time.

  • Um, but yeah, it's I think typically we like to have a lot of e g m in the event that we do hackathon and fair, because I really feel that Wow, that's that base is really getting.

  • It's good energy.

  • It's, um I don't know.

  • I feel like, really, especially people that are being here for several hours, and it's great to have a lot of audio energias.

  • Well, everything's very visually amazing, visually stunning.

  • But having this sort of audio acoustic aspect of it is end the basics of the building so great.

  • I think you really can hear everything was excited.

  • I think so.

  • I think having all this more space has really contributed a lot to having a more open vibe and the acoustics.

  • Isaac, to your point, I think, are a lot more expanded, I guess.

  • In the basement, I think the walls are a little bit more.

  • Dads were actually we're very obvious, you know, This has been this has been terrific.

  • Okay.

  • Have you ever played an instrument?

  • I played a bit of guitar electric both, but mostly mostly electric at the same time.

  • Yeah, uh, none of the scale time.

  • One hand.

  • Yeah.

  • No one handed each like a guitar players scientifically that it looks like we have another side.

  • You may be sure.

  • Okay.

  • Looks like we've got Tina gonna introduce a really cool project using a Iook.

  • We're gonna use a I to play checkers.

  • Oh, that's exciting.

  • Okay, awesome.

  • Okay.

  • Hi there, Nina.

  • I'm here with Phil.

  • We're gonna be talking about his project Checkers.

  • So, you know, first question here, what exactly is your project?

  • How did you go about implementing?

  • Yes.

  • Oh, um, I wrote a pretty much a checkers engine in c++, which allows the human to play against, uh, B A I computer.

  • So on the screen here, um, the human inputs, his smooth computer runs what's called a mini max.

  • And it goes through about six moves in advance.

  • It chooses the best move.

  • That game just got down.

  • That's great.

  • So I see your project is actually written in c++.

  • What made you choose c++ language?

  • So I knew I wanted to use something where I could work with it lies, types of thing.

  • So I needed to be able to use a wide operations, which that's pretty much what see is designed for And I needed things like vectors and stuff.

  • Vectors are pretty much like lists and pythons.

  • Recon opinion like pushed back things seals that have ears like this library.

  • So I needed you to see for those features, right?

  • So what would you say is maybe, like, the hardest part of implementing a project like this?

  • Uh, for this project, it was definitely choosing, like, how to generate booth.

  • So at first I was trying to do it, like, not magically on.

  • Then I decided I pretty much had to do like a lookup table which would pretty much score squares nearby.

  • Every other square ends up being like Array has, like, 32 rows in a columns.

  • So it's probably not the optimal solution, but it's pretty much like dictionary boarding squares.

  • So that was the horse?

  • Yeah.

  • No, that makes sense.

  • Would you say there was any part of CS 50 Is a class that, like, really informed how you designed your project or how you thought about it?

  • Definitely the big piece.

  • So the way I represent boards used unsigned 32 managers with fixed with editors.

  • And then basically, if a piece is on a square, put a one in that way and that digits place of the finer and zero otherwise and so peace at three pretty much we're doing the same sort of things with me.

  • So that's similar to how I represent aboard this project.

  • So it looks like you have a board up already.

  • Do you want to maybe show us a couple moves?

  • Yeah, sure.

  • So I think I can put it in a movie.

  • A three and I'll move it to before.

  • And so the pause.

  • Here's the mini Max out.

  • Running checks about 500,000 different positions.

  • Wow.

  • Yeah, yeah.

  • And this board evaluation here is the computer's score that it assigned to its food.

  • So zero means the game is tied.

  • Plus one means you're winning minus one or minus.

  • Two means that the computer thinks that's winning.

  • So zero means is tied at, decided to jump, like that's why the difference between this and that one of my pieces are going.

  • But it's expecting My best response is definitely two captured by going to Thio before just run again.

  • Yeah, what would happen if you chose the worst possible if I chose the worst possible move, it would probably show up as a negative one here, so The weird thing is, if you make a horrible movie, you'd expect the computer to capture right away.

  • It doesn't really do that kind of somehow understands that it can put off like making you pay for this.

  • Maybe 34 minutes in advance.

  • So But, like, if you make a bad bugle let you know what the board evaluation, Just the way our setup.

  • You don't always see.

  • Like, you know, I always pay the price.

  • Like what?

  • It's hard to say.

  • I'm terrible.

  • Yeah.

  • Okay.

  • Wow.

  • So why did you pick Checkers is a game to implement, as opposed to, like, chest tic tac toe.

  • So chest way.

  • In hindsight, I should have been okay.

  • Next door would have been how much easier way test out these algorithms With no complexity of checkers, nobody had to forego double jumps because I would just be It's too much added complexity and the moon generation stuff.

  • But all the power from the same, regardless of which, Have you ever eaten your computer?

  • Yeah, my friend.

  • It it's actually not too hard to be.

  • I've got advantages on it that I just probably way but like, it plays like you can see that it's clean decently.

  • But if you have a game plan, that's more than to be able to overtake it.