1 00:00:00,000 --> 00:00:00,540 2 00:00:00,540 --> 00:00:03,030 DAVID MALAN: --so how do we do this? 3 00:00:03,030 --> 00:00:04,702 Where do we get a compiler? 4 00:00:04,702 --> 00:00:05,410 Well most of us-- 5 00:00:05,410 --> 00:00:10,590 What did you guys use back in your day for a compiler in a development 6 00:00:10,590 --> 00:00:12,690 environment for CS50 when you took the class? 7 00:00:12,690 --> 00:00:18,270 DOUG LLOYD: So for a compiler we are using GCC, the [INAUDIBLE] compiler. 8 00:00:18,270 --> 00:00:23,780 And in 2006 when I took CS50 we were using nice.fas.harvard.edu. 9 00:00:23,780 --> 00:00:24,920 Do you remember that? 10 00:00:24,920 --> 00:00:27,420 DAVID MALAN: I do, which was the new instructional computing 11 00:00:27,420 --> 00:00:28,378 environment at Harvard. 12 00:00:28,378 --> 00:00:31,130 DOUG LLOYD: Right, ice was still there, the non-new-- 13 00:00:31,130 --> 00:00:35,040 the old-- But yeah, it was really different. 14 00:00:35,040 --> 00:00:39,150 So We didn't learn anything about SSH-ing, 15 00:00:39,150 --> 00:00:42,170 and so most of the students in the class were reusing Macs or PCs, 16 00:00:42,170 --> 00:00:44,045 they didn't have Linux boxes, and so we would 17 00:00:44,045 --> 00:00:46,290 be going into the basement of the Science Center 18 00:00:46,290 --> 00:00:49,770 where there were 30 or so computers that have Linux environments on them 19 00:00:49,770 --> 00:00:52,241 and we would log in and use that. 20 00:00:52,241 --> 00:00:54,740 And we can only really do our work in our accounts on there. 21 00:00:54,740 --> 00:00:55,490 DAVID MALAN: It was just the terminal window, too. 22 00:00:55,490 --> 00:00:56,880 DOUG LLOYD: In the terminal window. 23 00:00:56,880 --> 00:00:58,880 DAVID MALAN: What did you use for a code editor? 24 00:00:58,880 --> 00:01:01,400 DOUG LLOYD: I was an Emacs person, Mike Smith taught Emacs. 25 00:01:01,400 --> 00:01:03,690 DAVID MALAN: I still can't figure out how to quite out of Emacs. 26 00:01:03,690 --> 00:01:05,459 DOUG LLOYD: I can't figure out how to quit out of Vim, so-- 27 00:01:05,459 --> 00:01:06,500 DAVID MALAN: [INAUDIBLE] 28 00:01:06,500 --> 00:01:07,650 DOUG LLOYD: Yeah. 29 00:01:07,650 --> 00:01:10,090 At least we know who can use [INAUDIBLE] if we need to, 30 00:01:10,090 --> 00:01:11,580 just so we know where to turn. 31 00:01:11,580 --> 00:01:15,450 I get the same flack for using Windows computer in the office now, too. 32 00:01:15,450 --> 00:01:18,990 But yeah, it was certainly not a very user friendly experience, 33 00:01:18,990 --> 00:01:21,990 particularly for somebody like me who had never taken a computer science 34 00:01:21,990 --> 00:01:25,020 class before, to be thrust into this Linux environment 35 00:01:25,020 --> 00:01:27,930 where everything is brand new. 36 00:01:27,930 --> 00:01:32,190 And I know when you took over the class we sort of this conscious decision 37 00:01:32,190 --> 00:01:35,610 to make this a little better, we suffered through nice for-- 38 00:01:35,610 --> 00:01:35,670 DAVID MALAN: We still did. 39 00:01:35,670 --> 00:01:37,890 DOUG LLOYD: Not suffered through, but we use nice for maybe two years. 40 00:01:37,890 --> 00:01:39,598 DAVID MALAN: But we consciously introduce 41 00:01:39,598 --> 00:01:43,001 Nano, which is based on Pico, which is a simpler text editor than both Vim 42 00:01:43,001 --> 00:01:43,500 and Emacs. 43 00:01:43,500 --> 00:01:44,010 DOUG LLOYD: Yes, much less heavy. 44 00:01:44,010 --> 00:01:46,051 DAVID MALAN: But it still has syntax highlighting 45 00:01:46,051 --> 00:01:47,610 which was an appealing feature. 46 00:01:47,610 --> 00:01:50,553 DOUG LLOYD: Then we had the cloud, cloud.cs50.net. 47 00:01:50,553 --> 00:01:52,927 We gave every student an account which sort of simulate-- 48 00:01:52,927 --> 00:01:53,510 DAVID MALAN: Which was our own recreation, 49 00:01:53,510 --> 00:01:57,010 but that we had root privileges on so we could install the software we wanted. 50 00:01:57,010 --> 00:01:57,750 DOUG LLOYD: Yeah, we could install necessary software 51 00:01:57,750 --> 00:01:59,150 which was really good. 52 00:01:59,150 --> 00:02:02,280 But sort of the big change I think was around 2011 or 2012 53 00:02:02,280 --> 00:02:04,530 when we had the CS50 appliance, so students could then 54 00:02:04,530 --> 00:02:09,240 download a virtual machine onto their existing Mac or PC 55 00:02:09,240 --> 00:02:13,770 and using a hypervisor have a replication of their environment 56 00:02:13,770 --> 00:02:16,350 without having to go to the computer lab or be intimately 57 00:02:16,350 --> 00:02:18,110 familiar with the Linux environment. 58 00:02:18,110 --> 00:02:18,990 DAVID MALAN: That was actually originally 59 00:02:18,990 --> 00:02:21,492 a side effect, we had developed the CS50 appliance really 60 00:02:21,492 --> 00:02:24,450 for our online students, the open course, where students were following 61 00:02:24,450 --> 00:02:27,492 along passively and who really wanted to be able to engage more actively, 62 00:02:27,492 --> 00:02:29,991 and it was only once that got pretty table that we realized, 63 00:02:29,991 --> 00:02:32,130 wow, why don't we just use this on campus as well. 64 00:02:32,130 --> 00:02:35,070 DOUG LLOYD: Right, so we did that for maybe three years or so, 65 00:02:35,070 --> 00:02:36,570 constantly updating at different-- 66 00:02:36,570 --> 00:02:38,490 I know we switched between Ubuntu and Fedora a couple times. 67 00:02:38,490 --> 00:02:39,960 DAVID MALAN: It was pretty painful keeping the thing updated though, 68 00:02:39,960 --> 00:02:40,460 honestly. 69 00:02:40,460 --> 00:02:42,690 DOUG LLOYD: I'm sure it was. 70 00:02:42,690 --> 00:02:47,355 But then it became big, it was a big file to have to keep downloading. 71 00:02:47,355 --> 00:02:48,730 DAVID MALAN: Two gigabytes, yeah. 72 00:02:48,730 --> 00:02:54,180 DOUG LLOYD: And the CS50 IDE, by our former colleague Dan Armendariz, 73 00:02:54,180 --> 00:02:57,060 among others I knew working with folks at Cloud9. 74 00:02:57,060 --> 00:02:59,100 This was game changing. 75 00:02:59,100 --> 00:03:02,850 Now students can follow along just in their browser 76 00:03:02,850 --> 00:03:04,920 and have all their work saved to the cloud 77 00:03:04,920 --> 00:03:07,270 and it doesn't require this huge download. 78 00:03:07,270 --> 00:03:10,680 It really changed the way that I think students engage with class. 79 00:03:10,680 --> 00:03:13,600 I've certainly pivoted to do a lot of my own development even in IDE, 80 00:03:13,600 --> 00:03:18,720 it's just such a great tool for students to have, and for teachers, too. 81 00:03:18,720 --> 00:03:20,975 Teachers can share work spaces with their students 82 00:03:20,975 --> 00:03:22,475 and help them follow along that way. 83 00:03:22,475 --> 00:03:23,370 DAVID MALAN: Yeah, a lot of the add-on teachers. 84 00:03:23,370 --> 00:03:25,160 DOUG LLOYD: When we used to have cloud, we 85 00:03:25,160 --> 00:03:28,230 would have the impersonate feature or something 86 00:03:28,230 --> 00:03:31,519 so could try and help a student out remotely for that way. 87 00:03:31,519 --> 00:03:33,810 DAVID MALAN: But what's nice, and what was prerequisite 88 00:03:33,810 --> 00:03:36,476 before we made this move, was to find an environment like Cloud9 89 00:03:36,476 --> 00:03:39,917 that gives terminal window, and better yet root access for the students 90 00:03:39,917 --> 00:03:42,750 so they can install anything they want for final projects, or tools, 91 00:03:42,750 --> 00:03:46,590 or what not, while still getting the niceties like a graphical code editor, 92 00:03:46,590 --> 00:03:49,710 and the file browser, which really I think don't do students a disservice. 93 00:03:49,710 --> 00:03:52,680 The reality is those are the UIs they're using on their own computers, 94 00:03:52,680 --> 00:03:55,221 but you still have the power of that command line environment 95 00:03:55,221 --> 00:03:57,420 and we're not abstracting too much away. 96 00:03:57,420 --> 00:04:00,720 DOUG LLOYD: Yeah, it's not like we've taken a GUI operating system front-end 97 00:04:00,720 --> 00:04:06,100 like Cinnamon or something and just stuck it into a web-based environment. 98 00:04:06,100 --> 00:04:07,920 You still have that file tree on the left 99 00:04:07,920 --> 00:04:11,370 that you're really mostly working in a terminal-based environment 100 00:04:11,370 --> 00:04:14,260 and getting students acclimated to it fairly quickly. 101 00:04:14,260 --> 00:04:16,290 DAVID MALAN: And especially for some of our high school students and teachers 102 00:04:16,290 --> 00:04:19,290 who don't have access to install software on their own school's computer 103 00:04:19,290 --> 00:04:21,950 labs, game changing as you say. 104 00:04:21,950 --> 00:04:22,872