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.
