DAVID J. MALAN: [SPEAKING SPANISH]
I'd like to speak more English here on out.
Those of you who have taken CS50 online or watched some of the videos
know that I typically speak very fast like this in English, which is what
Spanish currently sounds like to me.
So I will do my best to speak more slowly, so that those
of you with headsets can follow along.
So this is a talk and a story about CS50 at scale and [SPANISH]..
And what I mean by this is that this map here represents
where this course CS50 now exists.
In red are dots where we have high schools taking or teaching
CS50 in some form.
And in blue are dots where we have universities as well as
of last year alone.
And so CS50 at scale for us means a big question.
How do we go about bringing computer science to students beyond Cambridge?
And how do we go about supporting students as well as teachers here
in Nicaragua, elsewhere in the United States, and really around the world?
But before we do that, I thought I would give
those of you who are unfamiliar with CS50 a glimpse of what it is.
At the end of the day, CS50 is Harvard's introduction
to the intellectual enterprises of computer science
and the art of programming.
It's an introduction to computer science.
And the syllabus, the material we teach, I daresay, is fairly common
and is fairly traditional.
But what is very untraditional about CS50
is how we approach the course's culture, how we approach the course's community,
and where we emphasize students' experience beyond the material alone.
And so this means in addition to teaching students
computer science and, in turn, how to program, there is this whole experience
that students have in Cambridge, in New Haven,
here now in Managua, and beyond that involves puzzle days and CS50
hackathons and CS50 fairs, as well as the office hours and sections
and lectures wherein they learn that material.
And if you've not yet taken CS50 or are considering
doing so here with our friends Carlos and Sylvio
and all of the teaching fellows already here,
I thought I'd give you a glimpse at what this experience can
be like through the lens of Harvard University.
[VIDEO PLAYBACK]
[MUSIC PLAYING]
- All right, this is CS50!
- [SINGING] [INAUDIBLE]
[INAUDIBLE]
- [SINGING] [INAUDIBLE]
- This is, boom, CS50!
[END PLAYBACK]
DAVID J. MALAN: If you don't recognize him, that's--
sure.
[APPLAUSE]
That video is thanks to CS50's production
team, who's expert in video back home.
And if you don't recognize him, that man was Steve Ballmer,
the former CEO of Microsoft, who joined us two years ago for a guest lecture.
So I've been teaching CS50 for 10 years now.
And I've been alive for 40, apparently, now.
And over those 10 years when I inherited the course, one
of the most important things to do, for me,
was to ensure that the course was accessible.
The course itself and CS50 computer science more generally,
I daresay, had a reputation of being a field to beware.
Let's see if this.
Well, that didn't fix it.
There we go.
A field to beware.
And what I didn't want to do when taking over this course was simply
make it easier or remove material from it,
but rather to maintain the course's historical rigor and the course's
historical workload, but to nonetheless make it more fun, more applicable,
and to take what had previously been an on ramp that might look like this,
where we assume this much material at the beginning,
and to lower the entry point for students without experience,
those students less comfortable, but still
ensuring that the end of just as successful and just as
learned as students who had even studied the class before.
And since then have we applied this same idea really all around the world.
In 2007 is, again, when I took over CS50 in Cambridge, Massachusetts.
In 2012 did the course become freely available on edX.
If unfamiliar, this is a free platform online
that you can take courses on for free and engage
with students around the world.
And the course even since 2007 had been freely available as what
MIT has called open courseware.
All of the handouts, all of the videos, all of the problem
sets, everything was freely available.
But via edX now did we have an even larger community of students
who were discovering computer science by way of our course
and other courses from MIT and UC Berkeley and elsewhere.
And then in 2015 we introduced another version of the class.
It's very common after university for some students
to go to graduate school, for instance, in business studies
and receive an MBA, a degree in business.
And we adapted CS50 to that particular audience.
So there's a shorter version, a different version of CS50
that focuses on how you use technology to solve problems in business
and how you go about thinking about cloud computing
and security and the cost thereof.
So whereas CS50 itself here in Managua and in Cambridge and Yale is very much
bottom-up-- you learn by doing and you build things and you struggle through
the building of those things--
the MBA class is more of a top-down discussion-oriented class where
you don't get your hands as dirty with programming, but you talk about topics
and you better understand who the engineers you will work with,
how they tend to operate.
In 2015 we also transitioned the class to Yale, another big university
in the United States.
And then in 2015 did we also roll out what we call CS50 AP.
AP means advanced placement, which is a common program in some schools.
And it's an opportunity for us to adapt the course to a high school audience.
Similarly, not changing expectations, not making it easier,
not making it lighter, but with that demographic,
allowing students more time.
Whereas at Harvard and Yale, we might typically have a 12-week semester,
so you have only 12 weeks to do all of the work, at the high school level,
they typically have as many as 36 weeks.
But it's the same work.
It's the same tools.
It's the same experience.
But it ensures that students, even without experience,
can be successful in the end.
And in terms of some numbers, if curious, at Harvard
we happen to be the largest course these days.
With undergraduates and graduate students about 700 students
each semester in the fall.
We have about 150 students at Yale and then 300 students
through Harvard's Extension School, which
is continuing education, a program for adults
or for students who aren't in university themselves.
At the MBA program we have 100 students or so each semester.
And with CS50x it's a lot of people.
Not all of them engage actively.
They might sign up and come and go.
But it's over 1 million registrants these days have
found the course via edX.
And we now have, most excitingly, not just students all around the world,
but support structures.
Much what like Sylvio and Carlos are doing here
do we have in Bolivia and Miami and Rhode Island and St. Louis in the US--
Bolivia not being in the US--
Kansas City in the US, Burma, Chile, Netherlands, Nicaragua now,
of course, the UK, and Ukraine, and beyond.
And so these are just some of the folks that you saw depicted graphically
with the map just a little bit ago.
And then in CS50 AP this coming year will we
likely have as many as 300 teachers, 300 high schools or [SPANISH]
teaching CS50 in some form with over 6,000 students as well.
So what is CS50, particularly if you've not yet experienced it
through the opportunity here or online?
So this is what Sanders Theater looks like at Harvard.
We're fortunate to have such a beautiful space to fit all of these students.
And it's here that Scully and Ramon and our production team
back home actually captures the course's material.
We don't just shoot the lectures once.
Every year we refresh the course and bring in new topics
and bring in new news that might have happened in industry
and ultimately create an ongoing opportunity for students
to learn conceptually what computer science is and how to program.
But there's a whole support structure too.
This is a glimpse of a space that looks a little like Hogwarts,
but is really a dining hall where a lot of the first years eat.
But also at night do we use spaces like this to bring students together.
And this, too, is a remarkable thing.
As opposed to just having study halls or fairly traditional classrooms,
we actually bring students to non-conventional places on campus,
like the dining hall here, or other places on campus
where there might be food and there might be friends.
But the goal, really, is to have students rubbing shoulders
with each other from different fields, working on their computer science
homework or some other topic all together.
And here is, if curious, our friends at Yale down the road.
But then in terms of the communities, and this is really
what's made CS50x scale so special, these are some of our friends
here in Miami Dade, one of whom actually on the left here, Arturo Real,
is from Venezuela and was studying in Miami Dade
College, a large school in Florida in the US,
and actually now works with us full-time in Cambridge as a result of having
finished his studies there and taken CS50 in Miami.
These are some of our friends here in Chile.
And if you're familiar, you can see students, maybe
like some of your own classmates, implementing bubble sort
there up front.
These are some of our friends in London.
Here we have Burma.
Here we have friends in Bolivia.
And then, of course, some of our own friends here.
So you might see yourself up on the slide now as well.
And in addition to these folks do we have a whole community of teachers.
This was one of our first group of high school teachers
that adopted or adapted CS50 for their own classroom.
And this was our first ever CS50 hackathon
for high school students in New York.
Eight schools-- four public schools, four private schools--
came together for a Saturday afternoon to work on their problem sets,
to work on their final projects, but ultimately working together
and experiencing together a field that had otherwise
been very unfamiliar to them.
So what does it mean beyond all of the photographs?
And what is it-- especially if you're considering computer science here
or beyond, what is it you actually learn?
And what is it we actually do?
So the syllabus itself is fairly conventionally structured,
but we cover quite a bit of material.
Indeed, CS50 is what most schools would call CS1 plus CS2 all combined together
in just one semester.
And so we begin the semester introducing students first to programming
and really computational thinking by way of a problem set called Scratch
and by way of ultimately a language called C, which is more cryptic,
which is more traditional, but is a more powerful language still.
And in that world do we explore topics like arrays and algorithms
and data structures and memory management.
And indeed, those of you taking CS50x right now are roughly at this point,
I believe, in the semester.
And what then comes next?
Well, we transition from that to, really, web programming.
More modern incarnations of computer science and programming.
Looking at HTTP and the web and web programming, more generally,
and also at topics like machine learning.
All the rage these days with Uber and other companies
is the idea of self-driving cars and the implications
of that and the technology behind that.
And so did we introduce this topic, thanks to our friends at Yale,
for the very first time.
And then at the end of the semester do we move away from C altogether
and introduce students to a bit of Python and SQL and JavaScript.
These are just different programming languages, if not familiar.
But the goal is so that when students take a class like CS50 and exit it,
they don't say, I learned C, one specific programming language, rather,
they say, I learned computer science, but more specifically in programming,
I learned how to program with procedural or imperative languages,
for those familiar.
But what is the structure of the class then?
In Cambridge and at Harvard and Yale it's
12 weeks, though this is different based on the various geographies
and where students take the class.
At Harvard there's eight homeworks or nine homeworks, one exam, one quiz,
and one final project, the last of which is the most impactful.
It's an opportunity for students, without being told by us what to do,
it's an opportunity for them to design and implement
a project of their very own.
But it's really in terms of the course's problem sets
that students have the most challenges and learn the most.
It's one thing to just listen to someone like me speak
or even attend section or office hours.
Most of students' time is spent on these problem sets, [SPANISH]..
And they cover very domain inspired or specific problems.
In Scratch, for instance, this is a graphical programming language
where you can drag and drop puzzle pieces on the screen that lock together
and then make characters on the screen animate.
In C then do we implement--
if you're familiar with Super Mario Brothers,
a little something like Super Mario Brothers
Pyramid using a very simple language with which most students are not yet
familiar.
But then we very quickly transition to topics like cryptography.
And those who might know, what is cryptography?
AUDIENCE: Hiding information?
DAVID J. MALAN: Hiding information.
So if you want to send a secret message to a friend in class,
you could just write it in English or Spanish.
But if the teacher intercepts it, he or she, of course,
will know what you're talking about.
So maybe instead of doing that, you change all of your letters.
A becomes B, B becomes C, or something more sophisticated than that.
That might be encryption.
Encoding the information in some way.
So we have students for this homework assignment
actually implement a program that encrypts and decrypts information.
And for the more [INAUDIBLE].
[VIDEO PLAYBACK]
[MUSIC PLAYING]
- [SINGING] [INAUDIBLE]
- This is, boom, CS50!
[END PLAYBACK]
DAVID J. MALAN: If you don't recognize him, that's--
sure.
[APPLAUSE]
That video is thanks to CS50's production
team, who's experts in video back home.
And if you don't recognize him, that man was Steve Ballmer,
the former CEO of Microsoft, who joined us two years ago for a guest lecture.
So I've been teaching CS50 for 10 years now.
And I've been alive for 40, apparently, now.
And over those 10 years when I inherited the course, one
of the most important things to do, for me,
was to ensure that the course was accessible.
The course itself and CS computer science more generally,
I daresay, had a reputation of being a field to beware.
Let's see if this.
Well, that didn't fix it.
There we go.
A field to beware.
And what I didn't want to do when taking over this course was simply
make it easier or remove material from it,
but rather to maintain the course's historical rigor and the course's
historical workload, but to nonetheless make it more fun, more applicable,
and to take what had previously been an on ramp that might look like this,
where we assume this much material at the beginning,
and to lower the entry point for students without experience,
those students less comfortable, but still
ensuring that they end up just as successful and just as learned
as students who had even studied the class before.
And since then have we applied this same idea really all around the world.
In 2007 is, again, when I took over CS50 in Cambridge, Massachusetts.
In 2012 did the course become freely available on edX.
If unfamiliar, this is a free platform online
that you can take courses on for free and engage
with students around the world.
And the course even since 2007 had been freely available as what
MIT has called open courseware.
All of the handouts, all of the videos, all of the problem
sets, everything was freely available.
But via edX now did we have an even larger community of students
who were discovering computer science by way of our course
and other courses from MIT and UC Berkeley and elsewhere.
And then in 2015 we introduced another version of the class.
It's very common after university for some students
to go to graduate school, for instance, in business studies
and receive an MBA, a degree in business.
And we adapted CS50 to that particular audience.
So there's a shorter version, a different version of CS50
that focuses on how you use technology to solve problems in business
and how you go about thinking about cloud computing
and security and the cost thereof.
So whereas CS50 itself here in Managua and in Cambridge and Yale is very much
bottom-up-- you learn by doing and you build things and you struggle through
the building of those things--
the MBA class is more of a top-down discussion-oriented class where
you don't get your hands dirty with programming, but you talk about topics
and you better understand who the engineers you will work with,
how they tend to operate.
In 2015 we also transitioned the class to Yale, another big university
in the United States.
And then in 2015 did we also roll out what we call CS50 AP.
AP means advanced placement, which is a common program in some schools.
And it's an opportunity for us to adapt the course to a high school audience.
Similarly, not changing expectations, not making it easier,
not making it lighter, but with that demographic,
allowing students more time.
Whereas at Harvard and Yale, we might typically have a 12-week semester.
So you have only 12 weeks to do all of the work.
At the high school level, they typically have as many as 36 weeks.
But it's the same work.
It's the same tools.
It's the same experience.
But it ensures that students even without experience
can be successful in the end.
And in terms of some numbers, if curious, at Harvard
we happen to be the largest course these days.
With undergraduates and graduate students about 700 students
each semester in the fall.
We have about 150 students at Yale and then 300 students
through Harvard's Extension School, which
is continuing education, a program for adults
or for students who aren't in university themselves.
At the MBA program we have 100 students or so each semester.
And with CS50x it's a lot of people.
Not all of them engage actively.
They might sign up and come and go.
But it's over 1 million registrants these days have
found the course via edX.
And we now have, most excitingly, not just students all around the world,
but support structures.
Much what like Sylvio and Carlos are doing here
do we have in Bolivia and Miami and Rhode Island and St. Louis in the US--
Bolivia not being in the US--
Kansas City in the US, Burma, Chile, Netherlands, Nicaragua now,
of course, the UK, and Ukraine, and beyond.
And so these are just some of the folks that you saw depicted graphically
with the map just a little bit ago.
And then in CS50 AP this coming year will we
likely have as many as 300 teachers, 300 high schools or [SPANISH]
teaching CS50 in some form with over 6,000 students as well.
So what is CS50, particularly if you've not yet experienced it
through the opportunity here or online?
So this is what Sanders Theater looks like at Harvard.
We're fortunate to have such a beautiful space to fit all of these students.
And it's here that Scully and Ramon and our production team
back home actually captures the course's material.
We don't just shoot the lectures once.
Every year we refresh the course and bring in new topics
and bring in new news that might have happened in industry
and ultimately creates an ongoing opportunity for students
to learn conceptually what computer science is and how to program.
But there's a whole support structure too.
This is a glimpse of a space that looks a little like Hogwarts,
but is really a dining hall where a lot of the first years eat.
But also at nights do we use spaces like this to bring students together.
And this, too, is a remarkable thing.
As opposed to just having study halls or fairly traditional classrooms,
we actually bring students to non-conventional places on campus,
like the dining hall here, or other places on campus
where there might be food and there might be friends.
But the goal, really, is to have students rubbing shoulders
with each other from different fields, working on their computer science
homework or some other topic altogether.
And here is, if curious, our friends at Yale down the road.
But then in terms of the communities, and this is really
what's made CS50x scale so special, these are some of our friends
here in Miami Dade, one of whom actually on the left here, Arturo Real,
is from Venezuela and was studying in Miami Dade
College, a large school in Florida in the US,
and actually now works with us full-time in Cambridge as a result of having
finished his studies there and taken CS50 in Miami.
These are some of our friends here in Chile.
And if you're familiar, you can see students, maybe
like some of your own classmates, implementing bubble sort
there up front.
These are some of our friends in London.
Here we have Burma.
Here we have friends in Bolivia.
And then, of course, some of our own friends here.
So you might see yourself up on the slide now as well.
And in addition to these folks do we have a whole community of teachers.
This was one of our first group of high school teachers
that adopted or adapted CS50 for their own classroom.
And this was our first ever CS50 hackathon
for high school students in New York.
Eight schools-- four public schools, four private schools--
came together for a Saturday afternoon to work on their problem sets,
to work on their final projects, but ultimately working together
and experiencing together a field that had otherwise
been very unfamiliar to them.
So what does it mean beyond all of the photographs?
And what is it-- especially if you're considering computer science here
or beyond, what is it you actually learn?
And what is that we actually do?
So the syllabus itself is fairly conventionally structured,
but we cover quite a bit of material.
Indeed, CS50 is what most schools would call CS1 plus CS2 all combined together
in just one semester.
And so we begin the semester introducing students first to programming
and really computational thinking by way of a problem set called Scratch
and by way of ultimately a language called C, which is more cryptic,
which is more traditional, but is a more powerful language still.
And in that world do we explore topics like arrays and algorithms
and data structures and memory management.
And indeed, those of you taking CS50x right now are roughly at this point,
I believe, in the semester.
And what comes next?
Well, we transition from that to, really, web programming.
More modern incarnations of computer science and programming.
Looking at HTTP and the web and web programming, more generally,
and also at topics like machine learning.
All the rage these days with Uber and other companies
is the idea of self-driving cars and the implications
of that and the technology behind that.
And so did we introduce this topic, thanks to our friends at Yale,
for the very first time.
And then at the end of the semester do we move away from C altogether
and introduce students to a bit of Python and SQL and JavaScript.
These are just different programming languages, if not familiar.
But the goal is so that when students take a class like CS50 and exit it,
they don't say, I learned C, one specific programming language, rather,
they say, I learned computer science, but more specifically in programming,
I learned how to program with procedural or imperative languages,
for those familiar.
But what is the structure of the class then?
In Cambridge and at Harvard and Yale it's
12 weeks, though this is different based on the various geographies
and where students take the class.
At Harvard there's eight homeworks or nine homeworks, one exam, one quiz,
and one final project, the last of which is the most impactful.
It's an opportunity for students, without being told by us what to do,
it's an opportunity for them to design and implement
a project of their very own.
But it's really in terms of the course's problem sets
that students have the most challenges and learn the most.
It's one thing to just listen to someone like me speak
or even attend section or office hours.
Most of students' time is spent on these problem sets, [SPANISH],,
and they cover very domain inspired or specific problems.
In Scratch, for instance, this is a graphical programming language
where you can drag and drop puzzle pieces on the screen that lock together
and then make characters on the screen animate.
In C then do we implement--
if you're familiar with Super Mario Brothers,
a little something like Super Mario Brothers
Pyramid using a very simple language with which most students are not yet
familiar.
But then we very quickly transition to topics like cryptography.
And those who might know, what is cryptography?
AUDIENCE: Hiding information?
DAVID J. MALAN: Hiding information.
So if you want to send a secret message to a friend in class,
you could just write it in English or Spanish.
But if the teacher intercepts it, he or she, of course,
will know what you're talking about.
So maybe instead of doing that, you change all of your letters.
A becomes B, B becomes C, or something more sophisticated than that.
That might be encryption, encoding the information in some way.
So we have students for this homework assignment
actually implement a program that encrypts and decrypts information.
And for the more comfortable students in the class, and this is a key detail,
too, we traditionally have different tracks within the class.
A track for students less comfortable, and students more comfortable,
and then students somewhere in between, each
of whom can decide whether to do the less comfortable or the more
comfortable homework assignments that are equally weighted, just as important
as each other.
But in this case, too, we might give students
a bunch of passwords from an actual computer system that are encrypted
or technically hashed in some way.
And they have to write software that cracks those passwords,
figures out what they are by writing software that kind of guesses
intelligently.
Well, maybe it's a word in a dictionary.
Maybe it's a birthdate.
Maybe it's something that's very common.
And the goal is to crack those passwords as quickly as possible.
Game of 15.
We give students code for the very first time, 100 or more lines of code,
that they have to first read and understand and then add to.
So you're not only starting with an empty window.
Forensics.
One of my favorite.
Typically, we'll walk around campus taking digital photos
of people, places, or things.
And then every year I accidentally delete the photos from my phone
or from my camera.
And so we make what's called a forensic image of the data.
Just copy all of the 0's and 1's off of the device and into a file,
give students that file, and then they have
to write software to recover all of the photographs from that file,
hopefully recovering all of the photographs that I, myself, lost.
Thereafter do we implement misspellings.
So here we challenge students not just to write correct code,
but to write good code, efficient code that isn't necessarily
theoretically good, but actually good in terms of performance.
We give students a big file of 150,000 words--
so a really big file-- and they have to implement a spell checker but data
structures underneath the hood that implement a spell
checker as quickly as possible.
And we measure how much time they use on the CPU, the brains of the computer,
and we measure how much RAM or memory they use to actually run their code.
And then we have a leaderboard a ranking,
if students opt in, where you can see how
you're doing compared to your friends in terms
of minimizing just how much memory and CPU time you might be using.
And then lastly do we transition to web programming and Python in particular.
We introduced for the first time this past year something called sentiment
analysis in the area of artificial intelligence where, at the time--
it was funny at the time--
we wrote code or we had students write code
to analyze the sentiment of tweets.
So we wanted students to determine if you read a tweet with your program,
is it a positive, like a happy tweet, or is it
negative or a mean or angry tweet?
So green or red, for instance.
And we encouraged students at the time to, for instance,
analyze maybe a certain Donald Trump's tweets to see just how red
or read they might be and Hillary Clinton and some
of the other candidates at the time.
And this we gave them a really big file of positive words and a really big file
of negative words that humans generally think of as positive versus negative--
beautiful versus ugly, hot versus cold, or something like that--
they're opposite-type words-- so that they could then analyze the data.
And then CS50 finance.
We have students write code and build a web application
using Python and using SQL, a database language,
via which they implement the notion of buying and selling stocks.
They write code that gives all of their users an imaginary $10,000
US, for instance.
And they can then invest that money by buying or selling stocks and talking
to Yahoo Finance, which provides, for instance, nearly real time stock
quotes.
And so you have your own website that simulates what it is to work in finance
or be an investor yourself.
And then lastly, mashup, for instance.
A website that uses JavaScript, yet another language,
has students implement a map using Google Maps and their API, so to speak,
their free software so that you can click and drag and navigate
news articles based on different cities or countries around the world.
So what is the course itself structured as?
And where might you see yourselves in this picture?
So in Cambridge over the past 10-plus years has enrollment looked like this.
Computer science is there, say, very popular right now.
When I inherited the course back then, we
started the year prior with maybe 100 students give or take.
And we're now up to 700 or so students every semester.
So there's been this big influx of students and interest,
but simultaneously has there been a big investment and a big influx
on our part of support.
For the 700 students we have at Harvard, for instance,
we have nearly 80 teaching fellows or course assistants, 80,
who themselves are almost entirely students.
And this, too, is one of the unusual aspects of CS50.
It's not just 40-year-olds like me teaching CS50.
It's undergraduates.
It's students who took the class just one year ago who,
therefore, are more comfortable than they used to be with the material.
And they lead the sections.
And they lead the office hours.
And they ultimately teach their own classmates.
What's been interesting, too, to see is this.
This is a lot of numbers and colors.
But in blue are students less comfortable.
In orange are students more comfortable.
In red are somewhere in between.
And so what this means is that in 2008 about 34% of the class
described themselves as less comfortable.
Now they're a majority of the class composing 62%.
Twice as many students essentially.
And so this, too, has required that we adjust the course's support structure
so that those students with less experience and less comfort
aren't dropping the class, aren't struggling more than they need to.
And it's absolutely the case that for those less comfortable,
less experienced students, the course will absolutely take a lot of time.
And it might take them more time, even twice as much time.
But the key ingredient and design principle underlying CS50
is that all students, irrespective of their background,
should be able to succeed given the right resources
and given the right amount of time.
And here's just a glimpse then, for instance,
of the teaching team we have at Harvard teaching CS50 last fall.
And almost all of the faces pictured here
were themselves students who took the class one or two or three years prior.
What does the course itself look like?
It has lectures once a week in a place like Sanders Theater or on video
for students to watch, sections, which are smaller classes with 10, 20,
30 students and one teaching fellow reviewing material, answering
questions, and doing what we couldn't really do in a space
as large as this together.
And then office hours.
And this, too, is a key detail.
We have a space on campus, much like the space you have here
with all the photographs on the wall, where students can
go for help really throughout the week.
At almost any hour at Harvard can students drop in on a space,
meet some of their classmates and meet some of the teaching fellows
and ultimately get their questions answered on some homework assignments.
And if you're curious and if you're in CS50 now and you've been struggling
or maybe you were in CS50 and struggled and thought,
wow, this isn't for me, because look at how much time it's taking,
I mean, here at Harvard these lines represent
the average number of hours students tend
to take on each of the problem sets.
The horizontal line here means it was about six hours for problem
set zero for Scratch.
And that's about right if you get into it and you might have some struggles.
But then certainly later in the semester the average
is closer to 12 or 15 hours.
And that's important to note.
Because it's very normal and it's very usual for students
to take a lot of time.
And indeed, even myself, I don't consider myself a fast programmer.
I don't know if I consider myself a great programmer.
I just know that if I do put in the time,
and I sort of take things step by step and methodically, I
will always find the solution.
And that, honestly, has been very empowering if not challenging
in computer science and in programming specifically at least at this level
when you're just learning material and you're learning what others before you
have discovered already.
And that's, of course, the even harder part.
There's always an answer.
There's always a way to get your code correct.
You just need to find it.
You just need to see it.
And it's very gratifying when you finally do.
But of course, it's not just all this kind of work.
As some of you have experienced, CS50 is characterized
by these cultural aspects, these experiences that, frankly, most classes
don't really have.
CS50 Puzzle Day is an opportunity at the start
of the year for students to get together and not work on code,
not even use computers necessarily, but to solve problems, puzzles, riddles,
and word problems really to send the message that computer science is
about problem-solving.
It is not programming.
Even though one of the things you'll spend most of your time
on in an introductory class is programming,
it's just a tool that you use to solve problems and think about problems.
Here is CS50 Puzzle Day in Cambridge.
Here is CS50 Puzzle Day in Nicaragua.
Here is a recent lunch in CS50 back home.
This is purely social.
Like once a week do we get together with 50 or so students just to chat
and just to talk about maybe the course, but probably more likely
what else they do at school or what you can do after class,
what you can do in industry.
And we invite alumni and friends from local companies
to join us for lunch just to chat with students
about why they're taking a class like this in the first place
and how it applies to the real world.
The CS50 Hackathon we started some years ago.
We borrowed the idea from our friends at Facebook.
And the hackathon, in our case, is a 12-hour opportunity
from 7:00 PM at night to 7:00 AM In the morning
to just work on your final projects.
But more than that, have this shared experience
with friends and with classmates, all of whom
might be struggling with similar things and going through it together.
To be fair, staying up all night is a challenge unto itself.
But in our case, we serve pizza at 9:00 PM, usually Chinese food at 1:00 AM.
And then as you may have seen from the video,
there's this place in the US called the International
House of Pancakes or IHOP, which is not really international in any sense.
But we go there.
We drive there at 5:00 AM with anyone who's still awake at that hour.
But of course, not everyone makes it.
This was 4:00 AM one year, for instance.
But by far, one of the most exciting things
and one of the exciting goals of the class
is something like this, our CS50 Fair.
And it didn't start this big.
It was certainly much smaller in its first year.
But it's grown to be an event every year with 2000
or more people coming to see students' final projects
and to see what you can do with computer science.
And indeed, most of the students who take CS50 at Harvard,
they're not computer science students.
They're not going to major in computer science.
90% of them are studying some other field, economics, social sciences,
natural sciences, medicine, the arts.
And for instance, I grabbed a few photos and names from this past year.
Two students named [? Lira ?] and Sarah implemented an app called Audio Chrome.
And this was an app--
I mentioned this to some of the TFs yesterday--
where if you're color-blind, you can't see colors properly with your eyes,
but you do have a phone, you can point your phone at something
and decide just what color these flowers are.
Or more compellingly when getting dressed in the morning,
do these pants match this shirt or this tie?
Because the phone can answer questions that you,
yourself, might not be able to.
And they implemented software for iPhone that did exactly that.
Nick, for instance, is a musician.
And he can read sheet music on paper or on the screen.
And he wrote software that converted musical notes on scales
like this to actual computer readable data
so that it could then be synthesized by the computer,
even though it had started in this form, using something
called optical character recognition, letting the computer and machine
vision, so to speak, figure out what those notes represent.
Lucas here was using Amazon Alexa, I believe, here.
He's talking into it on the right-hand side there.
And it was connected to his computer.
Because Alexa, like a Google Home and a lot of these new devices
that are voice-activated, have APIs, application programming interfaces,
via which you can teach them to do new things
and do projects that are of interest to you, not just what
Amazon or Google or other companies decide you should have in your home.
Jeanette, Ken, and Mary here implemented something called Drop the Ramen.
At least in the US it's very common for college students
to eat a lot of ramen or dried noodles late at night, for instance.
And they wrote an app that makes it a lot easier for students
to figure out healthier meals to make using the limited ingredients they
might actually have.
And then this one too.
I didn't even know before meeting Luke at Yale a year ago
that this data was collected.
But it turns out in the NBA, the basketball association,
and in a lot of sports, they collect a huge amount of data now.
For instance, if you shoot a shot in a basketball court,
they very often use computers to record where
that shot was taken physically on the floor, who took it,
did it actually go into the net or not.
And so Luke used this data and actually made a visualization here,
for instance, of LeBron James actually depicting where in green he made shots,
where in red he missed shots, thereby merging the ideas of visualization
and programming to actually do something that could help you,
the athlete, perhaps make better sense of where you're good.
Apparently, layups are pretty easy.
So there's a lot of green over here.
And it's not necessarily clear if there is a pattern elsewhere.
But perhaps there is and you can get better
at what it is you do as a result.
And you see ultimately at the CS50 Fair faces like these
and faces of your own classmates hopefully
delighting in the kind of projects that have been implemented.
And that, too, is ultimately one of the goals.
To actually be proud of something you do.
And not just do homework week after week,
but to build something that's ultimately your own.
Now in CS50x, from which CS50x Nicaragua is derivative, of course,
it is exactly the same curriculum.
It is exactly the same tools.
And ideally, it's exactly the same experience.
We don't have the luxury of being in the same physical place,
but do we have opportunities for our students online
to have Puzzle Day experiences and fairs online
and to meet locally with students much like is happening here.
We typically stretch that version of the class--
freely available through edX--
over 52 weeks, a full year.
And the workload is ultimately almost the same.
The nine homework assignments and the final project, but not,
for instance, the exams, simply because most students taking
the course through edX are really doing it just
for their own interest and edification and there's not
that same need for rigor.
But for those students do we have huge communities online.
You might recognize some of these websites here,
certainly Facebook and Twitter, but also Reddit and Stack Exchange
and, oh, there's still Slack nowadays, too,
where right now if I went into CS50's Facebook group,
and you guys have your own here for CS50x Nicaragua, within minutes,
typically, if I post a question in that community
with some 100,000 Facebook users, you get an answer.
And you might actually be able to connect with them
and see students around the world.
And this has been one of the most impactful things
by far how students across the world, who wouldn't otherwise necessarily have
need or opportunity to meet each other or talk about something,
coming together to share in some experience
and ultimately learn some topic.
At Yale, meanwhile, this has been one of our most tight-knit relationships.
Historically, Harvard and Yale are kind of competitors.
And we are single-handedly trying to solve 300 years of strife.
But in this case do we have students taking the same course at both Harvard
and Yale.
And most importantly do we have undergraduate teaching fellows
teaching the class on both campuses.
And this was the proverbial chicken and the egg problem at first.
If CS50 is mostly taught not just by me, but by our undergraduate teaching
fellows or course assistants as we call them,
well, it's kind of hard to do that at Yale if no one at Yale
has ever taken CS50.
And so we spent quite a bit of time the previous year
training students, having them do the course's problem sets on their own,
and ultimately bootstrapping, so to speak, a support structure,
so that now they are on their way to functioning exactly
as we have in Cambridge.
And indeed, this was one of the event where we first recruited students
to teach.
And indeed, one of the most remarkable things
here is, too, the idea of undergraduate students-- students in university--
teaching other students in university is sometimes controversial.
Even at Harvard, most departments do not allow this.
And the reality was that Yale as the result of CS50 being taught there, Yale
University, after 200 years, now allows undergraduates
to teach other undergraduates in roles like this.
And this is now something they're rolling out to other computer science
courses at Yale as well.
And so this was our first cohort of Yale students just over a year ago.
And this was their CS50 Fair.
They, too, have a very Hogwarts-like space as well.
Now, if curious, CS50 for MBAs is different.
It focuses not so much on that same broad community
and focuses not so much on that hands-on building of software,
but it focuses on ideas, cloud computing, programming languages
in general database design, computational thinking,
a lot of the ingredients that a computer scientist and engineer ultimately
learns in courses about computer science,
but that's because he or she in a course like CS50
itself is going to use those skills themselves.
But it's incredibly and increasingly important in business or in politics
or in any number of fields just to understand what is the cloud, right?
Odds are everyone in this room has heard of the cloud.
But if I may, what is the cloud?
What is the cloud?
Yes.
AUDIENCE: It's a virtual space in many servers spread across the world, where
people store information.
You can access it from anywhere.
DAVID J. MALAN: Yeah, absolutely.
Virtual space.
Anywhere in the world.
Servers that you can use anywhere in the world.
But at the end of the day, frankly, this and so many terms
really are just marketing phrases to describe more interesting technologies.
In this case, the cloud is really just about using someone else's servers.
And this has been possible for decades.
But once you put a nice little icon on it
and you call it iCloud and the like do you have what
seems to be a whole new technology that you're not necessarily keeping up with.
But the reality is, the underlying technologies are largely invariant.
And so with our MBA and our business students
do we help them try to sift through what is meaningful,
what are just buzzwords or expressions so that they
can make better decisions, ultimately, and actually
know what the cloud, so to speak, offers in terms of actually solving business
problems or costs that they might have.
And then lastly, the last flavor of CS50 at scale
now is this, CS50 AP or advanced placement,
which is just an adaptation of the course for high schools using
the same curriculum, the same technologies,
but spread over, typically, 36 weeks, give or take,
with what are required by the AP College Board.
The College Board is a group that essentially
decrees how you standardize tests.
And so in CS50 AP there's not just the problem sets.
There's performance tasks and an exam that's required for AP credit.
But this is really just an implementation detail.
What's important with CS50 AP that in 2015 it represented
a significant change on our part.
For many years had we focused almost entirely on students--
providing students with freely available resources
and homework assignments and tools and sample solutions and the like--
but we didn't really focus at all on teachers and sort of uplifting teachers
to be more comfortable themselves so that we could achieve ultimately
more of a network effect, more of an exponentiation.
We've never thought it's interesting, frankly, in CS50
that we had, like, 1 million students who've registered for CS50x.
I don't think we can do an especially good job teaching, on our own,
100,000 or 200,000 people at that kind of scale.
Far more important is to have people locally
supporting students and answering questions
and creating those local communities.
And this is exactly by way of these resources
what we now provide to our teachers, both at the university level,
but also and initially at the high school level
so that they have absolutely as much as they need
and so that they don't, as in the US, need
to just adopt curriculum that come from textbook companies,
for instance, who have traditionally decreed what a class would be like.
But teachers can now use this as a menu of options.
We also provide our teachers with CS50 Puzzle Day in a box
and the hackathon in the box in the fair in the box.
So boxes of just swag and fun things and the puzzles
themselves so that teachers can run these events at their own places.
So ultimately, and we were chatting a few of us about this just a little
bit ago, there's really three characteristics that characterize
CS50 at Harvard and also CS50 at scale.
It's that first and foremost accessibility.
Trying to create an educational experience at which any student can
succeed irrespective of his or her prior experience in CS or not,
changing that slope, so to speak, that on ramp, but maintaining,
ultimately, the rigor that the course in the field itself has long had.
It's very easy, I daresay, to make a popular very large class
by just lowering your expectations and making it easier and making it fun,
but really watering it down.
But what's so, I think, impactful about a more rigorous introduction
is that of all the classes that you might have had
and, frankly, of all the classes I might have had, it's
those where I put in the most time, and struggle the most,
and yet somehow still like the most that I feel in retrospect,
wow, like, that was worthwhile.
I might not want to take four of those classes a semester
or more classes a semester, but among those defining educational experiences
you have, whether it's in CS or any other field, the ones
that you're really proud of what you achieve at the end.
And indeed, I thought I would end with just this visual, one of the aspects
of which we are ourselves so proud.
You'll recognize some familiar faces here.
It's been such an honor to be here today and yesterday and tomorrow.
And so thank you all, to Carlos and Sylvio and all of our hosts here today.
I'm happy to take any questions.
But this then was CS50.
[APPLAUSE]
AUDIENCE: I was wondering how you managed
to overcome that initial hesitation from a school
to allow undergraduates to teach.
DAVID J. MALAN: How did we overcome the initial hesitation of the school
to allow undergraduates?
Thankfully at Harvard someone else did this 40 years ago.
So Harvard has, thankfully, had this tradition for a long time.
At Yale it was, I think, more challenging.
Their entire faculty at the college had to vote on this opportunity.
And honestly, strategically, I think it was well-positioned as an experiment.
And indeed, we framed this whole collaboration with Yale
as an experiment.
Three years.
Being scientists, we like to collect data and analyze.
And I think creating those kinds of safe spaces
where you're not proposing to change 100 years of history at Harvard or Yale
or here or elsewhere.
You're really just trying to try something new.
You're scoping it, in a way, that if it fails, it's not a huge failure
and it's not all that impactful, but you also
don't create this sort of knee-jerk reaction
that some folks have by saying no to something just because it's new.
So I think framing it as an experiment and defining for yourself,
like, what will it mean for this to be successful or not,
I think is something that academics can hopefully
get comfortable with much more readily.
AUDIENCE: Thank you.
DAVID J. MALAN: Any other questions?
Please.
AUDIENCE: When will you take it to grade school?
DAVID J. MALAN: Grade school!
We're not sure how quickly that would happen.
We do already have--
beyond high school we've estimated that age 13 or 14 or 15
is reasonable to begin.
We have counterexamples.
To this.
Just yesterday on CS50's the Facebook group
I posted a video of a young lady who's 11 years old,
Presley, who has actually been taking CS50 for some time.
But we're now only beginning to think about how we might create not CS50,
per se, but entry points to computer science for younger kids.
AUDIENCE: [INAUDIBLE]
DAVID J. MALAN: It depends on the community thus far.
The team here has done an extraordinary job
at translating the most important materials, for instance,
the problem sets or subtitles on the English lectures.
This is something we in Cambridge now we're
going to start focusing more on now that we've identified some very-- we have
critical mass among certain cultures or certain languages
so that we can start helping with this as well.
With that said, in the world of programming at least,
which CS50 has a lot of, the reality is the languages
and the communities online are so largely English driven.
It's not a bad thing necessarily.
But certainly for students for whom the world is so new,
I think it's best that I'm not speaking entirely in English.
But they can be more comfortable with that
and then focus on the more technical stuff in English.
Yes.
In back.
AUDIENCE: Can someone be part of the course without [INAUDIBLE] like,
my peers [INAUDIBLE] people, just like, yourself
and your school wherever you are?
DAVID J. MALAN: Absolutely.
Can you be part of the class?
Can you take it independent of a formal structure
here or some other university?
Absolutely.
The easiest way is just to sign up for free
on cs50.edx.org to identify the friends or classmates here or elsewhere
in the world that you want to do it with and just come up
with your own schedule.
We propose that students take a few weeks per problem set through edX.
But you can certainly do whatever you want.
So absolutely.
And if you go to cs50.org, you'll see more information
about how to stand up your own local community.
And indeed, for instance, at University College London
in the UK we have a student group, the group of students
who are interested in technology, they're just doing it on their own
for fun and for their classmates.
It's not a class, per se.
It's not for credit.
But they're doing that at an even larger scale.
Please.
AUDIENCE: Have you had any experiments with corporations taking this
on [INAUDIBLE]?
DAVID J. MALAN: Not on scale yet.
We've been chatting with some friends about doing this.
And it has certainly happened organically with a few folks
here and there.
But we've just begun chatting with some of our larger friends
in industry to do this.
Particularly because we have so many alumni in some of the larger tech
companies in the world that we have that built-in support structure potentially
among the volunteers there.
So we'll likely see that happen soon.
AUDIENCE: [INAUDIBLE]
DAVID J. MALAN: Indeed.
AUDIENCE: [INAUDIBLE]
DAVID J. MALAN: Oh, please.
AUDIENCE: Do you define comfort zone as something that is easy
or something that is quickly executed?
And is there a further zone which is [INAUDIBLE] people who
execute what you expect them to execute, but propose something new?
DAVID J. MALAN: Definitely the latter.
When we talk about comfort zones, less comfortable, more comfortable,
and somewhere in between, we actually don't define this very precisely.
The rule of thumb we offer to students is
that if you're a little unsure why you're sitting in this room,
if you've never really had an interest in computer science, you are, odds are,
among those less comfortable.
Doesn't mean you don't do as well in school.
It doesn't mean that you can't do the class.
You're just a little out of your comfort zone, as so many students in CS50 are.
The more comfortable students may very well
be those kids who have been programming since they were six years old
and for which it might be a lot of review.
And so what we try to do is treat those demographics a little differently.
They still get the same overarching experience.
But we encourage the teaching fellows, for instance,
in the more comfortable sections, talk about whatever you want.
Ask the students where it is, what direction they want to go.
But with the less comfortable students, most important is not even the material
being covered, but the fact that the rest of the students in that room
are on the same page as them and they're all sort of equally in that same boat.
And that's the extent to which we characterize those comfort zones.
AUDIENCE: And getting out of the comfort zone altogether, I mean,
is that a different level?
DAVID J. MALAN: Well, the sort of endgame and the reassurance
we offer-- at the end of the semester my email is almost always, all of you
are now more comfortable than you were previously.
And the reality is it doesn't mean we equalize everyone and put everyone
on the same footing just after three months or six months or the like,
but that there's this delta.
And hopefully the delta is somewhat invariant across those demographics.
They're just going from one level to a next.
Any final questions?
Here.
AUDIENCE: [INAUDIBLE] what's your recommendation for teachers
to improve their skills [INAUDIBLE]?
We've seen how in other countries [INAUDIBLE]
DAVID J. MALAN: Yeah.
How do you get better at teaching?
So I would say at least three things.
Practice, first and foremost.
But that's an easy one to say.
Two is to observe.
Literally everything I did wrong today, remember, and don't do that again,
whatever that was in your mind.
And I'm actually quite serious.
Because at least in college and high school,
I certainly remember a few teachers who I thought were amazing.
But I also remember a lot of teachers who were not very good.
And that stuck with me, because it gave me
kind of a roadmap of things not to do.
Like don't teach like this, talking at the board constantly
while students are sort of zoning out.
And it's somewhat easy things.
But unless you keep those in mind, you, yourself,
as a new teacher might fall into those same kinds of habits.
So keep an eye out both for the good and for the bad.
And then lastly, and thanks to technology
this is just getting easier and easier, record yourself.
It can be a friend standing in the back of the room.
You can get a little tripod or sort of a spider thing
and just prop up your phone so that you can watch yourself after.
The first year I taught formally, some 20 or so years ago,
every class was recorded.
And I painfully watched back, like, two hours after class.
It was on VHS tape at the time, so I could literally take the tape with me
and give it to no one else.
But I could watch the tape painfully afterward.
And I eliminated lots of bad habits.
I found myself saying the word et cetera a lot.
Or any time you say um or something like that, you
start to hear it and notice it.
And nowadays I can't watch myself.
It's just too painful.
But initially that really helps, because you see yourself through others' eyes.
And all three of those techniques, I think,
really improve the odds of success in being in front of the class too.
Please.
AUDIENCE: Do you have a way for companies to get involved [INAUDIBLE]??
DAVID J. MALAN: We do.
Do we have ways of getting companies involved too?
Many of the non-academic experiences we have in CS50,
so to speak, like the hackathon and the CS50 Fair and Puzzle
Day, which aren't sort of core material that's created,
we often reach out to friends in industry.
Sometimes new companies that we don't know anyone at,
we just do a cold call or send an email to someone
to see if they'd like to get involved, either with sponsorship--
could you supply the pizza for this event?
Or could you give us free copies of some piece of software for students
to use for their final project?
Or hardware.
Could you send us a Microsoft HoloLens for students to experiment with?
And so absolutely.
We have any number of ways to get companies involved
so that we can do things that we couldn't otherwise do
and we can provide students with tools and hardware
that they might not otherwise have access to, perhaps not even for years.
Here.
[INAUDIBLE]
AUDIENCE: How do you compare your role that [INAUDIBLE] here as opposed
to other organizations around the world that you're
working with to promote CS50?
DAVID J. MALAN: Can you say it again?
What
AUDIENCE: Yeah, like, do you compare your role
that this institution is playing to promote CS50 here
with other institutions?
DAVID J. MALAN: I think the consensus among our team
both over the past few months and even this week has been the [SPANISH]
and the school are so much more involved,
I think, than a lot of our collaborators,
which is a wonderful, wonderful thing.
For instance, at UCL, University College London, it's completely unofficial.
The students there haven't really gotten the traction with the administration
to give students credit, for instance, or to secure the beautiful spaces
that you have around the corner here.
Whereas here it seems like there's a much more cohesive collaboration
among these various entities, students and faculty and foundation alike.
So I think that's huge to enabling the requisite support structure.
But some of these opportunities are just starting.
And frankly, it's like the young lady's question in back.
This is how exactly things begin in a nutshell.
And I think you're already on your way to having
one of the most robust opportunities for students today.
It's very comparable, for instance, to Miami Dade College
where we had an extraordinary friend stand something up himself
there as well.
Yeah.
AUDIENCE: The millennials are now fully fluent [INAUDIBLE]
work their way up the curve less so.
Is there a difference in that in terms of the ability [INAUDIBLE]??
DAVID J. MALAN: So millennials are very comfortable with technology,
with the latest technologies and apps.
And perhaps as your older, less so.
I think it's been important for us to stay abreast of this.
And I say this somewhat hypocritically.
Because I'm told that Rick Rolls are not in vogue anymore,
but you'll see throughout CS50 such things as that, if you're familiar.
But yes, we have been very conscious of technology
students are using, not just so that we have a presence there.
I mean, we do have a CS50 Snapchat.
We have Snapchat filters when we hold events,
for instance, just for students to use for fun.
But we also use these new trends and apps
as opportunities for teaching teachable moments.
Like, we'll email our friends at Snapchat or some other company
to come talk about how it is their app works.
And when a message gets deleted, what does that mean, for instance.
That would be an opportunity there.
So I would say we tend to use the latest technologies
and tools as an opportunity to really weave them
into the fabric of the course.
And I mentioned a HoloLens just a moment ago.
That was a piece of hardware that a couple of our students
actually used for their final projects after just three months of taking CS50.
And we had similar explorations with VR, with Samsung Gear, and with HTC Vive,
and other such technologies.
So we've stayed abreast of these, particularly
to equip students with them, not as a senior capstone project,
but really as a first year introduction.
We have time for a couple more questions.
Yeah.
AUDIENCE: [SPEAKING SPANISH]
DAVID J. MALAN: [SPEAKING SPANISH]
AUDIENCE: [SPEAKING SPANISH]
DAVID J. MALAN: [SPEAKING SPANISH]
AUDIENCE: [SPEAKING SPANISH]
DAVID J. MALAN: Let's hope Christian has good memory.
CHRISTIAN: So in today's world with technology being so present everywhere,
do you see technology as the main tool for improving education?
And are there any differences in the US and here?
But how is technology the right tool?
DAVID J. MALAN: [SPEAKING SPANISH]
So I think it's enabling.
I certainly don't think technology is the solution to educational problems.
And I remember back when I was a younger student in middle school
where they were giving every student in the school a laptop just because.
And it was as though the mere introduction of technology,
in that case, laptops back in the day, was somehow
going to improve their experience.
But what they failed to do, and even years later when I taught high school--
I taught high school math-- and every classroom in my school had a computer.
They didn't teach any of the teachers what to do with it.
They didn't provide them with the training.
They didn't provide them with useful, compelling pieces of software.
And I think that's what's key.
What's far more important is the human factor.
And you're seeing it again these days.
Schools having iPads for everyone, for instance, especially at younger levels.
But unless you have the right software and you
have the right use cases in mind, I don't think
that technology alone is the solution.
It's simply enabling humans to do a better job in, for instance,
the classroom.
Maybe two questions more.
Over here.
AUDIENCE: First of all, thank you so much for being here.
[INAUDIBLE]
DAVID J. MALAN: De nada.
AUDIENCE: [INAUDIBLE] what would be the next step?
What would be [INAUDIBLE]?
DAVID J. MALAN: A really good question.
After taking CS50, what would be the next class to take?
And We were just having this conversation, some of us, earlier.
CS50 itself is in the process of beginning
to create follow-on materials that are more technical,
are more technology specific.
We're not there yet.
But there soon will be those opportunities
that you'll see within edX and elsewhere online.
But for now it is a wonderful thing that Coursera and edX and Udacity
and not to mention YouTube and iTunes University,
there are so many places to get high quality educational content.
I'll often point students to a algorithms and data structures class
from Princeton, which is freely available on Coursera
from some colleagues there.
And beyond that, I would encourage you to find
courses that are of interest to you.
If you like software engineering and maybe iPhone programming or Android,
Stanford, for instance, is how I learned iPhone programming.
Years ago they had a freely available course that was very popular.
And so I just reached out to that course for free.
So I would decide based on what you see in the menu on these various websites
what might interest you.
And to your classmate's suggestion earlier,
find a friend or a set of friends to perhaps do it with you.
Because I think that only improves the probability
if you sort of put some pressure on each other
and help answer questions for each other, succeeding in the end.
AUDIENCE: [INAUDIBLE]
DAVID J. MALAN: Oh, sure.
AUDIENCE: Have you identified any special talents
through courses like those on edX?
DAVID J. MALAN: Have we identified any?
AUDIENCE: Prodigies.
DAVID J. MALAN: Oh, prodigies.
Presley, the 11-year-old, has a very good start on some of the students
thus far.
So we have to some extent.
We Have a fellow whose name is Kareem who
lives in Cairo, Egypt, who kind of came on our radar thanks
to Facebook and Stack Exchange, both of where he was very active.
And actually he has a visa appointment in just a few days with the embassy
there.
And then hopefully next week he'll be moving to Cambridge, Massachusetts
to join us full-time.
Arturo Real, who I mentioned earlier from Venezuela and Miami,
he joined us about a year ago.
Christian here, who's been helping out, came from Guatemala
and wanted to actually stand up his own local opportunity for students
and we kind of stole him away for a year to come to Cambridge as well.
AUDIENCE: [INAUDIBLE] about vertically integrated with all the systems
you have to deliver it in?
DAVID J. MALAN: We are.
We are.
And to that same point of integration, nowadays when we
have a CS50 Fair at Harvard or at Yale, we
invite hundreds of our CS50 AP high school students
to come to those events, so that hopefully it's
an opportunity for a bit of inspiration.
And hopefully it's all the more opportunities for our university
students to talk with those younger students who
are genuinely interested in what it is they have done.
Well, allow me to officially adjourn here.
But I'm happy to stick around with the whole team for additional questions.
But it's been such an honor.
[SPEAKING SPANISH]
[APPLAUSE]