00:00:00,540 --> 00:00:03,030 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.