DAVID MALAN: --so how do we do this?
Where do we get a compiler?
Well most of us--
What did you guys use back in your
day for a compiler in a development
environment for CS50
when you took the class?
DOUG LLOYD: So for a compiler we are
using GCC, the [INAUDIBLE] compiler.
And in 2006 when I took CS50 we
were using nice.fas.harvard.edu.
Do you remember that?
DAVID MALAN: I do, which was
the new instructional computing
environment at Harvard.
DOUG LLOYD: Right, ice was
still there, the non-new--
the old-- But yeah, it
was really different.
So We didn't learn
anything about SSH-ing,
and so most of the students in the
class were reusing Macs or PCs,
they didn't have Linux
boxes, and so we would
be going into the basement
of the Science Center
where there were 30 or so computers
that have Linux environments on them
and we would log in and use that.
And we can only really do our
work in our accounts on there.
DAVID MALAN: It was just
the terminal window, too.
DOUG LLOYD: In the terminal window.
DAVID MALAN: What did you
use for a code editor?
DOUG LLOYD: I was an Emacs
person, Mike Smith taught Emacs.
DAVID MALAN: I still can't figure
out how to quite out of Emacs.
DOUG LLOYD: I can't figure out
how to quit out of Vim, so--
DAVID MALAN: [INAUDIBLE]
DOUG LLOYD: Yeah.
At least we know who can use
[INAUDIBLE] if we need to,
just so we know where to turn.
I get the same flack for using Windows
computer in the office now, too.
But yeah, it was certainly not
a very user friendly experience,
particularly for somebody like me who
had never taken a computer science
class before, to be thrust
into this Linux environment
where everything is brand new.
And I know when you took over the class
we sort of this conscious decision
to make this a little better,
we suffered through nice for--
DAVID MALAN: We still did.
DOUG LLOYD: Not suffered through,
but we use nice for maybe two years.
DAVID MALAN: But we
consciously introduce
Nano, which is based on Pico, which
is a simpler text editor than both Vim
and Emacs.
DOUG LLOYD: Yes, much less heavy.
DAVID MALAN: But it still
has syntax highlighting
which was an appealing feature.
DOUG LLOYD: Then we had
the cloud, cloud.cs50.net.
We gave every student an
account which sort of simulate--
DAVID MALAN: Which was
our own recreation,
but that we had root privileges on so
we could install the software we wanted.
DOUG LLOYD: Yeah, we could
install necessary software
which was really good.
But sort of the big change I
think was around 2011 or 2012
when we had the CS50 appliance,
so students could then
download a virtual machine
onto their existing Mac or PC
and using a hypervisor have a
replication of their environment
without having to go to the
computer lab or be intimately
familiar with the Linux environment.
DAVID MALAN: That was
actually originally
a side effect, we had developed
the CS50 appliance really
for our online students, the open
course, where students were following
along passively and who really wanted
to be able to engage more actively,
and it was only once that got
pretty table that we realized,
wow, why don't we just use
this on campus as well.
DOUG LLOYD: Right, so we did
that for maybe three years or so,
constantly updating at different--
I know we switched between
Ubuntu and Fedora a couple times.
DAVID MALAN: It was pretty painful
keeping the thing updated though,
honestly.
DOUG LLOYD: I'm sure it was.
But then it became big, it was a big
file to have to keep downloading.
DAVID MALAN: Two gigabytes, yeah.
DOUG LLOYD: And the CS50 IDE, by
our former colleague Dan Armendariz,
among others I knew working
with folks at Cloud9.
This was game changing.
Now students can follow
along just in their browser
and have all their
work saved to the cloud
and it doesn't require
this huge download.
It really changed the way that I
think students engage with class.
I've certainly pivoted to do a lot
of my own development even in IDE,
it's just such a great tool for
students to have, and for teachers, too.
Teachers can share work
spaces with their students
and help them follow along that way.
DAVID MALAN: Yeah, a lot
of the add-on teachers.
DOUG LLOYD: When we
used to have cloud, we
would have the impersonate
feature or something
so could try and help a student
out remotely for that way.
DAVID MALAN: But what's nice,
and what was prerequisite
before we made this move, was to
find an environment like Cloud9
that gives terminal window, and better
yet root access for the students
so they can install anything they
want for final projects, or tools,
or what not, while still getting the
niceties like a graphical code editor,
and the file browser, which really I
think don't do students a disservice.
The reality is those are the UIs
they're using on their own computers,
but you still have the power of
that command line environment
and we're not abstracting too much away.
DOUG LLOYD: Yeah, it's not like we've
taken a GUI operating system front-end
like Cinnamon or something and just
stuck it into a web-based environment.
You still have that
file tree on the left
that you're really mostly working
in a terminal-based environment
and getting students acclimated
to it fairly quickly.
DAVID MALAN: And especially for some of
our high school students and teachers
who don't have access to install
software on their own school's computer
labs, game changing as you say.
