DAVID MALAN: I teach computer science.
So thank you.
So I indeed teach CS50, and I took this class myself as a freshman.
It was the fall of 1996, but I almost did it.
In fact, I got to campus and I didn't really
know what I wanted to do to be honest.
I kind of gravitated toward, I think, things I knew.
Like, I thought back on high school, and I kind of liked history, really liked
constitutional law, and sort of liked English.
And so I very naturally, my freshman year 1995,
gravitated toward things with which I was familiar.
And I swear to God, I was one of these students where
I went into one of my first meetings with my freshman proctor
or RA who lives in the dorms with you, and I can't believe she humored this,
I went in with a 32-course proposal with what I wanted to do
in that first week or two of college.
Most of which, I ended up not actually taking and thank God.
It wasn't until sophomore year that, honestly, I finally got up the nerve
and got the confidence to sort of veer off
of that path that just felt most comfortable,
and I put my toes in unfamiliar waters and finally
got up the nerve to take a class called CS50 or Introduction to Computer
Science for concentrators and non concentrators.
And that was only because at the time, the professor
let me sign up for pass/fail because I indeed had this fear of failure.
It was something unfamiliar to me.
I thought back on high school, and it was one of those areas,
one of those kinds of classes to beware.
Frankly, it didn't even seem all that enthralling.
I still remember looking through the glass window of the computer
lab in my high school just seeing all of my friends
kind of hunkered over computer terminals, like, typing away.
It just didn't seem interesting, didn't seem social, didn't seem germane,
and so when I finally got to campus and put my toes
in these waters in shop CS50, did I realize
that this whole field CS was actually more familiar to me than I thought.
And the reality is that it opens your eyes to intuitions and ideas
that you yourself might already be familiar with,
you just kind of need to learn how to harness it and think about it.
And indeed, most all of us have these kinds of devices in our pockets,
or laptops, or desktops in our homes, and for the most part,
we only do what people let us do with them, right?
We download an app or some piece of software,
and we use that because someone else has made it for us.
And yet, with this same machine and with this same device can
I actually build things, and create, and solve problems of my own.
And they don't even need to be all that unfamiliar,
so this is an old school problem like looking someone up in a phone book.
If we imagine this is a really big whitepages with like 1,000 pages,
and I'm looking for someone like Mike Smith,
this isn't all that different from what happens nowadays
on our iPhones and Android devices where if you pull up your contacts app,
you probably see all of your friends and family alphabetically
by first name or last name.
And that's essentially what we have in this technology here,
and now if I wanted to find Mike Smith, I
could sort of start at the beginning of this problem, look down at the page,
and if he's not there, which indeed he's not in the A section,
I might turn a page, turn a page, turn a page and not see Mike Smith.
And so I continue proceeding one more page at a time.
This is incredibly tedious, it's incredibly slow,
but it is correct because if Mike Smith is in this phone book,
I'll eventually reach him.
Now, of course, I could optimize this.
I could think a little harder about it, how
to solve this problem not just correctly but well, efficiently,
and I could start to do something like 2, 4, 6, 8, 10, 12, and so forth.
That's going to get me through the problem twice as fast
and find like twice as fast, but it's potentially flawed.
There's a flaw, right?
If Mike accidentally ends up sandwiched between two pages.
So I might at least have to double back.
If maybe I hit the T section in the book,
I might have to double back one page just
to double check that I didn't blow past him,
but that too is not something any of us are going to do in this room.
All of us already have the intuition for sort
of opening this problem to the middle, looking down, realizing, oh, I'm
in the M section, so Mike must clearly be
in the right half of this phone book.
And so we can tear the problem in half, throw, if I may, half of it away.
And now what's interesting about this problem
is that it's fundamentally the same, but it's gone from 1,000 pages to 500.
But the algorithm, the step by step instructions
that I can now apply myself are the same-- go roughly to the middle,
look down, and I say, oh, I'm now in the T section,
so I've gone a little too far.
And so I can again tear the problem in half, throw that half of the problem
away, and now I've got 250 pages.
And if I repeat down to 125 and again and again and again ultimately
theoretically we end up with just one page on which Mike either is or is not.
And what I realized early on is that that
is what computer science actually is.
It's about problem solving.
And we might bring to bear computers and programming on those problems,
but those computers are really just tools that we use and means to an end.
Computer science is not itself about programming but about problem solving,
and yet it took me years until graduate school when I was back here again
and this time focusing not just in computer science
but dabbling in an elective.
I enrolled as an auditor in Anthropology 1010 Introduction to Archeology.
I admittedly had this sort of mid-grad school crisis where I wondered,
why am I becoming a computer scientist?
Archeology is a lot more interesting, a lot more
fun or so I thought sort of halfway through my thesis work or aspirations.
But what archeology opened my eyes to was the interconnections
of computer science with other fields.
In fact, it's such a simple thing to imagine
going on Google Maps or Google Earth these days.
For instance, to pull up something like the place
we're currently in, searching for something like Sanders Theatre and then
thanks to technology, being flown down to where we are right now.
But in anthro 1010, I had the opportunity
to see my professors actually leverage this technology in a much more
compelling academic way whereby we might have searched
for the great pyramids zooming halfway across the world,
zooming down pretty low thanks to satellite imagery,
and actually be able to see not just well-known artifacts like this
but archaeological digs from which my professor that semester had just
come back.
And he was able to give us this aerial view
and really open our eyes thanks to software and thanks to computer science
and its outgrowths to actually exploring yet other problems still.
And so it's not just CS plus archeology.
I also realize quickly that I could apply CS to frosh IM, so rewind
a few years.
Freshman intramural sports for some time didn't even have a website.
Back in the day, we signed up for sports and walked across the yard,
slid them under the doors of the proctors, and registered.
Well, I instead discovered that I could actually apply my newfound skills
and savvy from CS50, CS51, and follow on courses
and actually solve that problem with software,
but more generally did we have this sort of opportunity
to combine CS with other things--
CS plus X, if you will, where X, a variable,
might be the arts, or business, or engineering, humanities, law, medicine,
sciences, applied sciences, social sciences,
or any number of other fields.
In fact, at the end of this particular course, this introductory course CS50,
do we end the semester with a campus-wide celebration of what
the students in that class achieve over the course of just one semester--
students who were just like you sitting here some year ago.
In fact, in CS50, 53% of the students this past year were first-year,
62% of those are among those they describe as less
comfortable with the idea of even being in a CS class,
not unlike myself some years ago, 68% had never even taken a CS course,
and yet at the end of the semester at this so-called CS50
fair are expressions like this all around the room
where all several hundred students in the class
come together with a few thousand students
and faculty and staff across campus to celebrate in exactly what students have
accomplished by a bit of new exposure to a field that they might not remain.
And indeed, the majority of students in CS50 and in Introductory Computer
Science don't stay within the CS but take these ideas and new skills back
to problems of their own domain in a number of those other fields.
In fact, just to give you a glimpse of some of this past year where
CS plus X was in fact personified in some of our very students,
Lyra and Sarah here implemented an iPhone app
that actually enabled people who are color blind to effectively see colors
by taking a photograph of something and then telling them
what the actual color is thanks to the camera on the phone.
Nick here implemented software that used image recognition
to take printed old school music like this, run it through software that
figured out what those notes were so that he could then change
it to be targeted at one instrument instead of the other
for which it was designed.
Allison and Rita actually implemented a site
for Harvard student agencies on campus here
to facilitate the pairing of Harvard students
with high school students for tutoring opportunities.
Angela and Isabel, virtual postering an event board website
so that students could publicize and bring themselves
together across campus.
Stephen and Stuti here, a stock simulator iPhone
app so that you could actually simulate buys and sells of stocks.
Chris and Enxhi here, an app that actually
allows you to compose a reading list for yourself
by scanning ISBNs and other such decodes in the back of a book.
And then lastly, folks like Lucas here, who actually you
can see him talking into an Amazon Alexa at top right commanding
his computer to do something, so it's a car simulating
the sorts of things that are very much in trend in industry today.
And then Billy, and Sam, and Victor here, they
wrote a website that allows you to mimic text.
So you read in and scan in text from well-known dignitaries, or politicians,
or authors, and you can generate text that's
very much reminiscent of and statistically
equivalent to the kind of language those humans might have written themselves.
Jeanette, and Ken, and Mary here implementing
a website that allowed students to actually improve their bill of health
by actually dropping the Raman and getting recommendations for food.
Alice and Ian, anonymous chat servers for peer counselors.
Luke, one of our students at Yale, visualizations
of NBA player's missed or hit shots.
From the court, Mai-linh and Maria, a website
that allowed them to actually stop themselves from using
websites like Facebook and other such distractions
so that they could actually focus on their own studies.
And some of our students even did something
like this using virtual reality--
the ability to put on headsets like this these days and be able to look up,
down, left, right and actually see a virtual space
that isn't physically here but is recorded effectively or created
in software so that you can explore other areas beyond your present tense.
And indeed, this is what we ourselves in CS50 focused on exploring this year,
CS plus X where X is education considering
how we might bring to bear this technology to bring high school
students, adult learners from around the world to a place like this
that we're all fortunate to enjoy and experience and have
as a place of learning and yet bring it to others virtually around the world.
In fact, this is a clip from our first lecture this past year,
and if you can see, at the top there is a special camera
that we put right in the middle of Sanders Theatre here.
And it's got eight lenses that look up, down, left, right, forward, back,
and via these eight lenses do we end up getting essentially eight
videos that thanks to CS50's team behind the scenes, we stitched together.
So all of these individual circles you see
become just part of a sphere to create this virtual world around,
and so long as you have a headset like this
or another headset like this Google Cardboard can
you actually achieve this and experience this yourself.
In fact, we ourselves in CS50 and our team of TFs, and CAs,
and producers decided to go beyond our own comfort zone this past year
and define X in this case to be an opportunity where X is dance
and X is music, and thanks to CS50's own, Lauren Scully and our production
team, thanks to some of our friends on campus,
the Harvard Veritones, one of the acapella groups on campus,
did we head up to the Harvard dance studio just a few weeks ago,
build a 360 degree set like this, plant that special camera
right in the middle, and capture the experience of song and dance
in this virtual space.
In fact, I think we have just a minute.
This is perhaps best explained through experience and not through retelling.
Do we have a moment for one volunteer from the audience?
OK, come on up.
What's your name?
JESSICA: Jessica.
DAVID MALAN: Jessica?
Jessica, come on up, and as you see, this young man here also
jumped up on stage.
This is Connor who was where you sat two years ago at Visitas.
This was him in that same first lecture and he's joined CS50's team
since to help us bring this together.
Jessica, nice to meet you.
So Connor's going to get you set up here,
and the one disclaimer is that you have to be--
and I should have said this before--
you have to, one, be comfortable appearing here on camera, and two,
do you like surprises, too?
JESSICA: I guess so.
DAVID MALAN: I guess so.
OK, we'll take that, and so what you're about to see
is just a minute clip from what we think is the first ever collegiate
virtual reality recording of an acapella performance by the same group on campus
featuring the Veritones of Niya Avery.
And in three dimensions here, as I switch our screen over, will Jessica,
our brave volunteer, be able to look up, down, left, or right.
And if we could dim the lights at this point, will you see on the overhead,
thanks to the wire she's connected to, what she's experiencing.
And we can increase the volume, too.
And there's Niya.
So you'll notice that she looks up and down.
You're seeing exactly what she's saying in this dance studio.
[MUSIC PLAYING]
JESSICA: Oh, woah.
[SINGING] I tried hard to make you want me, but we're not supposed to be.
And the truth will always haunt me even though it set me free.
You haunted me, taunted me all in my brain.
Turn off the light and now all that remains fills me with doubt,
and I'm shouting your name out loud.
Why do you want to put me through the pain?
I get the feeling I'll never escape.
I can't hide away from the shame of you.
Tears on the ground, tears on my pillow, you won't bring me down.
I'll get over you.
This is to get me through, and I'll get over you.
I'll get over you.
When did you lose your emotion?
When did you become so cruel?
And if you want to cut me open, it says a thousand words about you.
In time, I know you'll leave me like a distant memory.
I know love can be so easy if I start by loving me.
You haunted me, taunted me all in my brain.
Turn out the light and all that remains fills me with doubt,
and I'm shouting your name out loud.
Why do you want to put me through the pain?
I get the feeling I'll never escape.
I can't hide away from the shame of you.
Tears on the ground, tears on my pillow.
You won't bring me down, and I'll get over you.
I'll get over you.
Tears on the ground, rain at my window.
The pain washes out, and I'll get over you.
These tears will get me through, and I'll get over you.
I'll get over you.
I'll get over.
I don't need you to call me tonight.
I don't need you to see if I'm all right.
You left me, so leave me, I'm fine.
I'll be here getting on with my life.
Tears on the ground, tears on my pillow, you won't bring me down.
I'll get over you.
The rain on my window, the pain washes off.
I'll get over you.
[APPLAUSE]