hello world this is the third annual
cs50 fair at Yale University I'm here
with my colleague and college friend
Benedict hi there
so welcome again to the third cs50 fair
at Yale and we are at the Peabody Museum
of Natural History here at Yale because
we actually in cs50 have a long and
storied history and as you'll see from
some of the exhibits in the museum it in
fact goes all the way back to the time
of the dinosaurs and we've brought it
forward over many years so successfully
that now we're up to the present day
with some awesome projects from our
students we have about a hundred 20
presenting and so we're really excited
to have you all here and come see what
they've produced
[Music]
hey guys this is cs50 I'm interest and
the welcome to the seats would be fair
at Yale I am glad to introduce Joe and
Max they're kind of us to show us or
their project today
so guys could you guys just walk it
through your project yeah so I'll meet
you guys through a little demo here so
here you can see the coordinate axes so
what we did is a three function wrapper
and here you can enter in the function
of x and y so for example here's a plane
and we'll just we can go ahead and graph
that and while it renders you can choose
the x and y ranges as well as a number
of divisions so we choose a relatively
small amount of divisions here so the
graph looks little grainy and basically
a small amount of divisions means we
created our services
a cloud of coins basically so basically
it just drops this in one point you can
zoom in or out here
and drag around on the screen to change
perspective
yeah
and what if you guys do this so we did
this in a library called through Jas we
use family JavaScript we also use a
little bit of Python to get a flask app
running but it was mainly JavaScript we
also implemented the math J's library in
order to parse the x and y functions so
that our grammar could have some utility
for a math functionality I think getting
the graphs to render in a way that made
them look like smooth services was a
really hard challenge
we initially wanted to make the graphs
sort of tiles between points but that
proved too challenging and too long it
took too long to render so we just tried
to simplify it by utilizing the point
cloud feature and through Jas and it
worked out really well sure I think we
have preset we have a cone and a half
sphere
and then you can use the camera
functions too and we really envision
this project to have some meaning
especially for like math 120 students
which we're currently in because there
isn't really that reliable of software
out there to graph function so that was
the rationale our project you know
something you learned in this project
that wasn't covered in the main course
or something that you built upon oh I do
so like something that wasn't like
wasn't covered yeah I think the sheer
amount of helper libraries when you did
Jim Krieg I think we didn't realize how
much we were helped along by the source
code that we were given in the p-sets
so we felt like we kind of do how to do
everything on our own it's like are you
guys proud yeah oh man that's great
could I could I put in a function of
something new to just test it out so for
example
I put in like
eggs
so these are like the the base functions
already problems okay okay so the
functionality of that is once you grab a
function it appears on the left function
menu and you can click or unclick to
have it appear again okay so by now put
this oh that's oh man and then I could
just drag the dress oh wow
scrolled as you in there to finger in
and out of it oh oh then this is just
visually so cool oh wow okay so any any
final takeaways from this project we
were talking to some people earlier and
they were saying like Hollins could have
some sort of statistical functionality
so maybe we can extend out in the future
you never know
uh-huh we were really happy with what we
made
I'm really proud huh very good okay so
this was cs50 let's check out some more
projects my name is Xu Chen and I'm a
sophomore in Pearson college and I'm a
course assistant for cs50 I actually
took cs50 last year so this was such an
amazing opportunity
I'm here with three awesome girls and
they made an amazing project so if you
want to go ahead and introduce yourself
I'm Emily and I'm also fresh Syrian
styles and I'm Catherine and I'm also
first year in stones Sophie tell us more
about your project and maybe give us
like demo yeah so basically we made a
Yale themed emoji or the iMessage
extension and we use this we code this
in Swift which we had to learn from
scratch by like watching tutorials
online and we use Xcode as our ID so I'm
gonna give it like a short demo of it
sorta like so this is the app itself
that you would like download from the
App Store which has a text field in it
but doesn't really contain the meat of
the apps functionality for that we go to
messages
let's if you wanna text save a
jamie-lynn you can pull up the keyboard
and then use the globe icon to toggle
and here we are at our keyboard that we
designed
so let's if you want to send David J
mail and I don't know what is it oh yeah
you wanna send Peter Solomon with a
mustache we got a nice little message
saying emojis been copied and now we can
paste it into the text field and send it
and to use this app to receive the
messages you don't have to have knocked
down
send it to anyone you want and basically
we use like copy and paste functionality
just like bitmoji awesome what were some
challenges that you encounter when you
were making your ass it was kind of
difficult because none of us had
experience with Swift before and in this
path we went over like C and Java but
after watching tutorials it was much
easier cool and how did you decide on
swift versus an Android app which uses
Java all of us have Apple products like
so I think you probably miss draw into
it yeah yeah how did you make the
artwork it looks really nice yeah on
Photoshop we mostly just made them in
Photoshop we con pictures then we just
cut them out yeah another question I had
was how was how did learning the things
that cs50 help you with getting used to
a new language and working with the
whole product it was really nice and
cs50 that we like every week we kind of
did like a new language so it was like
really easy to like adapt to new
languages and like relearn the syntax so
just watching some tutorials we were
able to like learn the new whole course
and as a final takeaway what was the
most enjoyable part of your experience
with the cs50 final project
my god we made like a lot of progress on
our project at the cs50 hackathon that
was really fun I thought it was just
like great so I'd be in the community
with all the high variety of coders all
working also um there were lots of TAS
there are people who are mentoring
you're like new Swift he's really
helpful yeah because we were kind of
like branching off into uncharted
territory
Wow after that's amazing yeah so it was
fun yeah thank you so much for showing
us a demo it's really like yeah let's go
check out the other projects downstairs
hi this is Varsha from cs50 and I'm here
with Eric a student so Eric do you want
to walk us through your project I
decided to do machine learning for my
project I wanted to be very ambitious at
first and make something that can
recognize cancer images but that proved
to be very difficult because council
images are written in 3d images and so
it's a little hard to teach my machine
to do that as a beginner especially and
so I want to move to something simpler
and have it recognized hi I'm writing
specifically I trained it to recognize
the MN ist database which is a database
of handwritten images here is some
examples like like this and so basically
what my machine can do now is if I input
any sample images that is handwriting
for example this one's a 5 you can input
something like this and just to show you
how it works I just have to run Python
predicts
sample what number would you like to see
Thanks six okay so six this is the image
for six and then I tapped the run sample
six pm G and it should well the 97%
accuracy told me that my number is six
so how long did this project take you
you said machine learning yeah so I was
very intimidated by machine learning I
spent the entire Thanksgiving break
taking online courses on Coursera and
just going on YouTube and watching a lot
of videos so I would say I spent over
maybe like 70 hours on this yeah like 50
hours of research 15 hours of debugging
and five hours of Astrid writing the
code and you're happy with then I am
actually very happy with my project well
Eric any final takeaways um you know
since a--they has been a big challenge
for me as someone who's never had any CS
background but I think with challenges
it kind of pushes you to always improve
and I don't I just really loved
yesterday and what I've learned
I'm improved throughout the semester
thank you so much that was a great
project Eric and this just be as busy
hello my name's Carter Paige and we're
live here from the cs50 fair
I'm here with Jonah Skye Velasquez and
today we're gonna be talking about his
app Odyssey Jonas tell us about your app
yeah Thank You Gregory
so ah to say would ideally be an app
that connects freelance local tour
guides to travelers everywhere and being
an international I found that the best
traveling experience that I had by far
were when I would be somebody randomly
on the street or navarre and they would
take me to see the real authentic part
of the city the city they loved and know
so maybe they'd be really into night
clubbing and we would go do that or
maybe we would go and see the
restaurants that no tourists ever visits
and they're like really nice parts that
the locals get to experience not so much
the travelers and that is often left to
chance unfortunately and me and a couple
of friends figured well why does it have
to be that way why not create a platform
that actually makes a net worth board
this sounds like a great idea let's take
a look at it yeah absolutely so this is
meant to be just a simple user interface
that I coded using angularjs one
integrated what ionic framework and this
is meant to be a user face that we're
going to be using in business pitches
and we're gonna be using in applications
for accelerators and so on so it's
lacking in a lot of the HTML and CSS
work but if we go and see there's some
functionality this is very sick to me
yeah let's take a look so first it has
this over SQL and this mostly relies on
the fact that there's other businesses
trying to do something like that but the
12:13 business is trying to do that like
majorly in many regards and they like if
you want to book a guide there it's
gonna take you to three weeks whereas a
lot of the traveling in Europe takes
place very last-minute it's not well
organized in a sense that people take on
the offers of cheap airfare providers
that's going to cost you 19 euros
to fly to complete opposite ends of
Europe and they have nothing organized
and they don't really have the
pre-organized option available for them
so what you would do is you would tackle
this button on and this is the travelers
perspective and you would have guys
appear around you alternatively you can
do it as a list and see the guides if
you go to my profile here you're gonna
have my name's the basic information
about me some pictures you know just to
make sure that the person is like a
serial killer or something and then
you're gonna have some basic metrics by
which the tour guide is rated so the
number of Tours given a star rating that
has been given to the guide and then
you're gonna have some tickers or
criteria by which you can find people
with common interests so this is all
made up but yeah and then you're gonna
have a little profile saying I'm an
amateur filmmaker which means I can help
you immortalize your experience in Paris
with my camera and I would love to be
your guide to Paris and then you want to
have the options to message the guide
ask to meet up or to see their
suggestions and itinerary and what they
would love to show you while visiting
the city Wow
so this is on iOS do you have any plans
for Android yeah so this is on ionic
framework originally oh so you can
easily transfer from iOS and a droid
Android unfortunately ionic doesn't have
that crazy that comment implementation
and I sort of building this lacked
resources online so hopefully we're
gonna find something better suited for
also teamwork so what are your plans
going for yeah so we have all these
calculations in the business sign allows
you to ready MPVs we launched a little
MPB and had people use this service and
they really enjoyed it we launched a
survey that question hundreds of
university students back in europe and
we got overwhelming respond
that this is something that the market
meets so now we have two more
experienced coders join them and really
crazy experienced coders I mean wow
he'll start a pity we're hopefully
making it to a person of about five
people and we're gonna be working all
over next semester to launch over the
summer and actually I'm going to use the
opportunity while I'm here to advertise
position of this if you are experienced
in app building if you are interested in
the business side if you just want to
join in and believe in this idea do hit
me up on it's still a long name but as
Jonah's Daka Velasquez at Yale edu I
would love to hear from you I would love
to hear any sort of feedback that you
can offer yeah and sorry I was planning
to show this as well you can see that on
the phone as well
yeah it's Jonas thank you for being with
us thank you so much cs50 has been
amazing thank you thank you all
there with David and today me and
they're gonna take us through their
project so everyone you know so we
worked on an app that would provide
students the opportunity to look at a
publication the watt the Yale Daily News
on their phones yeah yeah so starting
here on the computer we're looking at
the ydn website and we find that it's
kind of difficult to pull the
information straight from this website
and so what we use instead is if you
type backslash feed you get this RSS
feed which provides us with a lot more
useful information and so when we we
take this information and we pass it
into an XML parser that's built into iOS
swift and it just takes all this data
recognizes it and sorts it into an
object that is like readily usable for
us and then we input the data that we
just parsed from the website into our
app right here running on a simulator on
my computer and so you see that for
instance this article about new staffers
in the ydn we see the title we get the
author we get the date that is published
we get a little description when we
click on it we get the article itself
because Amy do you want to talk about
some difficulties in like parsing images
or something yeah so from the from the
data that they provided us on the RSS
feed it actually doesn't give us any
tags associated with images and so what
we had to do is actually go to the
website and run like an HTML parser I'm
just like that straight HTML and what we
found like we had these regular
expressions to parse through all a lot
of gunk basically to get images or to
get to get videos for like YTV videos so
I'm just gonna pull up this one article
to show he's talking about actually we
actually we can look at this thing
jelly's bust-a-move yeah this is a YTV
article and we see
right here we have it on our app takes a
little for the video to load itself and
our app basically finds this by using a
type of search called regular
expressions and we see here that it's
searching for something called a YTV
article iframe item if we look in the
actual HTML of this site we see YTV
article iframe and we get this link and
then we plug it into our view yeah so
those are some of the difficult things
of the back end in terms of the front
end which is what I was working with
basically what you're like seeing on the
app itself the hard parts are just
figuring out how the different views
like the different screens interacted
with each other because there's a
different set of code that is
controlling it's called a view
controller that's controlling each
different screen that we're seeing and
so just figuring out how to like pass
information between the screens or be I
use something called a notification oh
it's yeah it's somewhere in there
basically you use notifications to pass
information from one view controller to
another view controller by basically
like sending a message and you basically
set up a little like program that's like
listening for that message and then when
it gets it it executes so certain
actually use a certain program so for
instance when I press this button it
sends a little message and then it moves
so the main goal for us at the very
beginning was just learning how to use
Swift because I was that wasn't covered
in during regular cs50 lectures but we
the tips and tricks we've learned
throughout the course really helped us
because it's just like a really spiced
up version of see basically and so from
the beginning it was just learning how
do we use this and also one of the big
things we knew we would have to tackle
is like parsing that RSS to be the
initial thing we showed you and that we
kind of got within the first couple of
days and we were really happy with it
but then we discovered further
challenges that came in the form of the
images and the image credit in the
videos because it wasn't providing us
that in the RSS feed so instead we had
to do kind of Messier HTML feed parser
but it ends up giving us much more power
over what we could share so what you
guys say is like the biggest lesson you
learn
I mean one of the biggest lessons is you
can learn a new language and make an app
in two weeks like it's you have the
ability to it especially coming off
seats with you where they teach you how
to learn code and learn new languages I
mean that's the biggest thing I can pull
about is that you can learn a new thing
and you can do it if you sense a little
time stackoverflow every day all day
any final takeaway look for our app on
the App Store's yeah 18 you know give us
a little points thank you so much thank
you guys and this was cs50
hello we're back here at the cs50 fair
at Yale
my name's Carter Paige and I'm here with
Cecily Gow and we're gonna hear about
her project be 6,000 mega trainer 6000
first tell us about a bit about yourself
um yeah so sure my name is Cecily gall
I'm currently a first year at Yale
University and I'm a I plan on being a
CS major that's exciting
so tell us about what is the mega
trainer 6000 yeah sure so this um this
project came to us when the athletic
department at Yale has an issue with
training reaction times of their
athletes and so what they want to be
able to do is be able to identify I feel
to quantify and train me after time and
so that's what this board does and they
wanted something more sophisticated than
simply a whack-a-mole game so we have a
very unique very novel like way of being
able to train and record accuracy out of
reaction time Wow so it's all about
reaction time yes you see uses outside
of the Athletics I've heard of this
reaction to percent yeah actually um we
see this being used as in like drunk
driving simulations for halves or like
anything like psychological studies
maybe like after you suffer a concussion
or injury and seeing how you action hype
slows down stuff like that so you can
like be on the train be able to receive
quantify that kind of number wow this is
one of the most popular projects at the
fair so can you show me how this works
sure so so we have several different
game modes depending on what kind of
athlete you are or what are you're
trying to train for this current mode
it's called the Newman drill and so it's
named after the strength coach at Yale
athletics and so this is a reset button
and what it does after you reset the
program it will do a countdown from like
three two one and it'll be the correct
color you have to hit every one second
all the colors scramble so by the time
you get to the correct button it might
be a different color so you just have to
go really fast that's really all you
have to do so if you whatever you're
ready okay here oh my Mike yeah
though
[Music]
so your score 50 point 82 that's at the
bub average for today oh there we go
fantastic and so first off tell me how
did you guys actually make this because
this is pretty cool yeah so they're like
separate components that went into this
nope three team three person team um so
I participated in the coding which is on
our Drina which is a c-plus class-based
language and the wiring part of the
wiring on the frame was laser-cut at the
C which is the Center for engineering
innovation in design at Yale and yeah
the framing was also also like was like
PVC pipe and talked about the buttons
the buttons so for the buttons we
actually had to convert them ourselves
from simple like a one-color button to
like RGB so to create like something
that's more sophisticated in
whack-a-mole you have to be able to have
more colors and none but it's like these
don't exist on the market so we had to
make them ourselves so we mass-produced
a bunch of buttons I converted
everything to RGB LEDs wow that is
impressive especially thank you so much
for being with us thank you
my name is Shu and I'm a software in
Pearson college I'm one of the course
assistants for cs50 I'm here with the
head TTA for cs50 named Stelios and tell
us a little bit about your experience
with cs50 in the past sure hi everyone
my name is Telus I am the one of the two
since 50 head teaching assistants for
this year I got involved with cs50 at
Yale during the first year this was a
thing back in 2015 I would became a
teaching assistant as a sophomore I
didn't really know what 6:50 was about
David came over so they did a
infestation session we got hired and
started training but we really couldn't
imagine what an impact cs50 would have
on a LCS and on of course on us as staff
members behind me we have more than 150
students who started out without knowing
anything about programming and now
they're showing off their projects
they've made cool apps and hardware
projects an alarm clock
I saw I've seen so many awesome things
actually the cs50 fair is one of the
coolest experiences as a staff member in
cs50 because you just walk around and
see all these students that were
stressing and emailing you throughout
the semester having achieved something
they're excited about and proud of what
else well this is my last year with cs50
so this is kind of sentimental for me
because this is my last fair I'm really
excited that is happening at the Yale
Peabody Museum because the space is just
amazing what else do you want to know
did you counter any challenges while
you're ahead
tá well being on staff teaches you a lot
about yourself among these things are
well you have to master the material
right you also have to master your
communication skills and just develop
how you're going to interact the
students has a head teaching assistant
I guess that's especially important just
because you're the face
the course you want to make everyone
feel welcome you also want to help staff
because this is this experience is as
important for staff members as it is for
students as a learning experience and as
a yeah self exploration so yeah there
has been there have been many challenges
but we have an amazing team we have
worked really hard throughout the year
and we're really proud of what's
happening today which is basically the
conclusion of cs50 2017 at Yale so we
are super excited thank you for being
one of the hosts today give it up for
Shu shus amazing
and thank you for tuning in everybody
see you around
thank you
welcome back to the cs50 fair we have
Leah with us
Leah could you walk us through your
projects so what I'm a because I made a
playlist generator the box at the top
you can type in any song name that
exists on Spotify um and below that you
have a bunch of parameters that you can
choose from like if you want your
clothes to be more acoustic if you
wanted to be more instrumental anything
like that
you can adapt your playlists to sort of
match those parameters but there's also
a box right here that you can check mark
to filter out any songs that have the
explicit label so you can type in any
song that you want right here like is
there a song you like heaven sure
something
born to die by Lana Del Rey and let's
filter explicit songs do you hit make my
playlists you get all the information
for ten songs that are similar to the
song which I put in I'm just going to
die I'm just like you can see like
there's like another Lana Del Rey's down
here and there's Halsey so you get ten
songs they're similar your input plus
the addition of whatever primers you you
put in so originally I wanted to just
have you put in parameters for like if
you want to be like happy or music or
come on genetic dance music I figure
it's it's better to have a song it's to
have a face off of a song because then
you know it's like we have a more
specific idea of what you want your
playlists to kind of sound like what do
you think it was the biggest challenge
because it seems like you've done a lot
worse the biggest challenge is sorting
out how to use the API um is like a lot
of different functions a lot of
different complications in retrieving
data for specific things and so sort of
like figuring out the ropes of how to
use the API was is probably biggest
challenge
do you have any final takeaways biggest
lessons that you learned just in general
cs50 has been a really fun course I
highly recommend it to anyone who's
considering it it's really great they're
amazing people think of a lot yeah just
I love the Assisting thanks so much Lia
that was a great project and this was
cs50
hi we're back here at the cs50 fair at
Yale
my name's Carter page and I'm here with
Johann toady of fresh car Yohan tell us
a bit about yourself I'm a freshman here
at Yale I'm actually from Canada and I
think I'm gonna be a computer science
major
wow sounds exciting so tell us about
fresh power I'd love to so I had an idea
a while back where what if we can
provide a service the people who live in
condos where we go into their garages at
night and wash all their cars I thought
this would be pretty valuable because
we'd be able to scale it and make it
pretty cost-effective because there's so
many cars centralized in one garage
so I tried to build a site that would
allow the users to sign up for this Wow
so let's take a look all right I'll go
through it so this is a homepage says
wake up to fresh car it gives you a
little bit of a description of what
fresh car is and the three different
plans that we offer you could select
whichever plan you want it depends on
how many times you want your car washed
this is a membership info and three
facts about it its eco friendly
affordable and convenient so say you
want it to register for an account all
right sign me up
all right name is Johan okay
an email address we're gonna need to
gather a little bit more info
is your unit number parking spot number
and your address these would be the list
of condos that we partnered with once
you submit this so let's sign the pro
plan
all right pro plan you have poor car
washes per month this should take you to
a checkout page where you can pay with
your credit card and it'll automatically
I linked at the paypal yeah
PayPal had a very generous API that
allow me to do this sure we could just
skip this step so we're not actually
gonna go through with paying for it but
here's your account these are all the
details you provided and you can update
these whenever you want so you get a new
car or you move you can update this info
and submit it you can also update the
plan we don't yet have a plan selected
because we didn't pay for one so it just
says none but this tab over here shows
you your calendar and this will tell you
exactly when your car is gonna be washed
so this depends on your plan if you have
a basic one it's only about three times
a month Pro Plan and then premium plan
and you can export all this to your
Google Calendar so you know exactly when
your car is gonna be washed perfect what
are the plans going forward now going
forward I'm gonna try and propose this
to a few condominiums see if they're
interested they would probably pull
their the people to live in their spaces
and see if they might be interested in
the sort of a service and if that
happens I'll put together a team of
people who are interested in washing the
cars and what make it happen
Wow sounds great Yas thank you so much
for being with thank you
hey welcome back to the cs50 Fair at
Yale we're here with our last
interviewee Sarah so Sarah could you
walk me through your project absolutely
so my project is an interactive online
tour of the Yale farm where you can pick
a month so June for example click Submit
and then click on any of these green
fields right here to see what's growing
so if we want to know what's growing in
this one you just click on it and you
see that in June strawberry is spicy
salad mix and garlic are growing in that
field the other functionality of my
project is a volunteer signup page so if
you wanted to come volunteer with us
class on Friday you could click there
click Submit and find out all of the
other people who would be volunteering
there with you
so could you tell us more about your
goals and kind of what even inspired you
to do this project yeah so I work at the
Yale farm and I really love it there and
I talked with the academic programs
director about what they might want to
have as a website and he mentioned this
as an option
so I got really excited about it and my
goal is to be able to implement the map
for all the seasons as well as the
volunteer page so I was really excited
about it
what do you think was the biggest
challenge the map is very hard to work
with I think not a lot of people work
with images like this and so it was a
little hard to find code to have more
advanced functionality and almost like
your biggest lesson I think at the
beginning of the project there are
definitely moments where I thought like
oh I should pick the new idea this
doesn't look like it's gonna work out
but by the end of it just by sticking
with it and it's an amazing project
thank you final takeaway final takeaways
or your project oh yeah just there's a
lot of things you can do even actually
just one semester of Coda's well thank
you so much
this is our last interview thanks for
joining us and this was cs50
well that is it for the third annual
cs50 fair here at Yale University we're
joined this time by our friend Natalie
mellow and now back to Benedict so thank
you all for watching if you're watching
later and you are visiting thank you all
for coming and to our students for
showing off their projects we hope you
enjoyed seeing a whole history of
computing from the original debugging
ducks back in the dinosaur days all the
way up through our projects today in
JavaScript and C and all sorts of modern
modern hardware and programming
languages now I'd like to pass it off to
Natalie just wanted to say we're so so
proud of our students every single
student just really like blew us away
congratulations to everyone and thank
you everyone for coming really from all
the projects today we of course love
them all equally this was cs50