DAVID MALAN: --it on problem set zero, so we'll be back in five minutes.
All right, so we are back and in our--
DOUG LLOYD: Prepare quickly now, we're nearing the end of the first lecture
and we're going to start introducing programming,
but we're not going to be doing it with a text based programming language,
we're going to do it with Scratch.
What's interesting about Scratch is that if you go to the website,
it's sort of advertised as being for kids six and up,
so it has this childish look to it maybe or a--
DAVID MALAN: Childlike.
DOUG LLOYD: --childlike look to it, but it's actually quite a powerful language
underneath the hood.
DAVID MALAN: It is, it has a pretty high ceiling so to speak and wide walls,
to borrow Professor Mitchel Resnick's terminology around the language.
This is an environment that was initially
targeted at students and after school programs, quite young ones,
but we actually adopted it some years ago for higher education
and for CS50 specifically so as to introduce some basic programming
constructs like loops, and conditions, and functions more recently.
We also look at threads and events, so it
has this high ceiling in that you can actually
cover some pretty sophisticated topics that would actually
take weeks in a more traditional language like C or Java to get to,
but it's all pretty--
I think within students grasp early on, because we give them examples
by way of this portion of the lecture via which
you can apply those constructs to very reasonable problems
in a graphical environment no less.
And my god, I mean look at the most canonical program
you might write in C just to say, hello world,
there's so much syntactic overhead
DOUG LLOYD: Yeah, it's a little heavy the first time you see.
DAVID MALAN: They include the ints, the parentheses, the semicolons.
I mean, none of which are intellectually interesting.
You really want to get to the heart of the program, which really is just
printing a message like hello world.
And we can do that with Scratch.
DOUG LLOYD: Now we've been using Scratch since 2007,
but since then there's been a number of other drag and drop programming
languages like Snap or App Inventor.
How come we haven't switched to using one of those
or perhaps allowing for mobile development or something like?
DAVID MALAN: So, it's definitely unfortunate
that the current version of Scratch remains
based in Flash, which limits the number of devices
increasingly that it can be used on.
DOUG LLOYD: Although that seems to be soon changing.
DAVID MALAN: Indeed, indeed.
They are making strides with Scratch 3.0 toward being HTML5 and JavaScript
based, which will be great.
Snap is already there, out of US Berkeley.
This is a adaptation of Scratch that is implemented for web browsers in HTML5
and JavaScript which works.
I've just had certainly a personal preference for Scratch,
I mean it's kind of part of our origin story over the past 10 years.
So there's that sort of loyalty there, and we only
spend just one problem set in one week on it,
but it's definitely suboptimal now that some of our students
who might want to use a tablet device or might otherwise not want
to install Flash on their computer these days--
It's not great.
But I think in terms of capabilities it's wonderful,
and I think even more compelling is the galleries and the shareability online.
What MIT really focused on in Mitchel's group focused on in their Lifelong
Kindergarten group is on creating shareability and reusability,
remixing so to speak.
And the fact that our students by just logging into Scratch's website
can share their works, not just with each other, but the whole world,
add a nice, I think proud opportunity very early on in the class.
DOUG LLOYD: No, it does, and I think that that focus on the community
aspect, which ties in really nicely to CS50s own focus on community
is a really nice touch, and it's a great way to start the term, I think.
DAVID MALAN: I think so.
It's a nice way of bookending it too, because we end of course with the CS50
Fair where students are exhibiting all of these works
that they created in other more modern languages, or more
traditional languages, but right from the get go to can
you experience a little taste of that.
And I think that's compelling.
And you can also learn so readily as a result from other student's programs
that are already out there.
You can delight in friends programs or kind of share them around.
So as such, that feature alone is pretty compelling, so we've stuck with it.
Notice the Easter egg, repeat 50 times.