1 00:00:00,000 --> 00:00:03,120 DAVID MALAN: So my name is David Malan and I 2 00:00:03,120 --> 00:00:05,080 do teach this course called CS50 at Harvard, 3 00:00:05,080 --> 00:00:07,705 which is our introductory course in computer science for majors 4 00:00:07,705 --> 00:00:08,520 and non-majors. 5 00:00:08,520 --> 00:00:10,950 All of the slides and photos and visuals that I'm about to show 6 00:00:10,950 --> 00:00:12,242 will be at this URL right here. 7 00:00:12,242 --> 00:00:17,730 If you'd like to play along at home cs50.ly/illinois21. 8 00:00:17,730 --> 00:00:20,610 So in the call for participation for the workshop 9 00:00:20,610 --> 00:00:23,975 there is this wonderful list of directions that each of us could go in 10 00:00:23,975 --> 00:00:26,100 and I feel like I could touch on most any of these, 11 00:00:26,100 --> 00:00:28,440 but I thought I should try to focus on just one of them, 12 00:00:28,440 --> 00:00:31,470 ultimately, and let me propose that, ultimately, my case here 13 00:00:31,470 --> 00:00:35,940 be for advocating for new approaches in a way that I'll soon define. 14 00:00:35,940 --> 00:00:39,000 And I should note too, a disclaimer of sorts. 15 00:00:39,000 --> 00:00:42,390 So not only was everyone in our orbit here in Cambridge fortunate enough 16 00:00:42,390 --> 00:00:45,330 to stay healthy this past year, this was also, for us, 17 00:00:45,330 --> 00:00:49,740 sort of the evolution of some 15 years worth of experimentation and teaching 18 00:00:49,740 --> 00:00:50,355 online. 19 00:00:50,355 --> 00:00:52,230 So what you're about to see is not the result 20 00:00:52,230 --> 00:00:54,900 of our having woken up some year plus ago and decided 21 00:00:54,900 --> 00:00:56,290 we'll do things this way. 22 00:00:56,290 --> 00:00:59,460 But really was an evolution of the things we've been trying out, 23 00:00:59,460 --> 00:01:01,720 some successes and failures along the way. 24 00:01:01,720 --> 00:01:04,140 And so ultimately, even though what you're about to see 25 00:01:04,140 --> 00:01:07,650 does involve quite a few people, quite a few resources, 26 00:01:07,650 --> 00:01:09,960 ultimately, the germ of the idea that I'd ultimately 27 00:01:09,960 --> 00:01:12,180 like to leave us all with is just rethinking 28 00:01:12,180 --> 00:01:15,180 what it is we do with our more traditional on-campus courses. 29 00:01:15,180 --> 00:01:17,730 And as we infuse them with these online aspects, not 30 00:01:17,730 --> 00:01:21,420 to think of it as being an either or between on-campus or online, 31 00:01:21,420 --> 00:01:24,540 but really to design these online courses in a way 32 00:01:24,540 --> 00:01:28,590 that they're fully woven into the fabric of our on-campus courses. 33 00:01:28,590 --> 00:01:31,120 So that very on-campus course here is called CS50. 34 00:01:31,120 --> 00:01:33,120 It is indeed freely available as OpenCourseWare, 35 00:01:33,120 --> 00:01:35,870 if you'd like to take a look at the curriculum at any point there, 36 00:01:35,870 --> 00:01:39,120 and it is also one of these MOOCs, or massive open online courses 37 00:01:39,120 --> 00:01:41,440 on edX as well. 38 00:01:41,440 --> 00:01:46,013 So back in the day this is what things used to look like in 2019 and prior, 39 00:01:46,013 --> 00:01:48,180 when we would all convene for the course's lectures. 40 00:01:48,180 --> 00:01:51,458 Here in Cambridge, we would have some 800 students on campus 41 00:01:51,458 --> 00:01:53,250 through Harvard College as well as a couple 42 00:01:53,250 --> 00:01:57,327 of more through Harvard Extension School and other variations of the class. 43 00:01:57,327 --> 00:01:59,160 And beyond just gathering more traditionally 44 00:01:59,160 --> 00:02:01,950 for the academics of lecture have we have long 45 00:02:01,950 --> 00:02:04,450 had a tradition of more community oriented events. 46 00:02:04,450 --> 00:02:07,320 These are our office hours and a big library on campus. 47 00:02:07,320 --> 00:02:09,720 This is a photo from one of our hackathons, 48 00:02:09,720 --> 00:02:13,020 sort of a capstone toward the end of the course where students 49 00:02:13,020 --> 00:02:15,450 spend quite a bit of time in close proximity to each other 50 00:02:15,450 --> 00:02:17,100 as well working on final projects. 51 00:02:17,100 --> 00:02:19,230 And then a so-called CS50 fair at semester's end, 52 00:02:19,230 --> 00:02:22,030 which is a presentation of all students' final projects. 53 00:02:22,030 --> 00:02:24,450 So among the first questions we had this past year 54 00:02:24,450 --> 00:02:29,010 when deciding how to go into Fall 2020 was which, if any of these, 55 00:02:29,010 --> 00:02:30,450 traditions we could preserve. 56 00:02:30,450 --> 00:02:33,090 And right off the bat it looked like none of them, really. 57 00:02:33,090 --> 00:02:35,250 And so, really, our interactions with students 58 00:02:35,250 --> 00:02:37,870 were going to be limited, of course, to Zoom in some form. 59 00:02:37,870 --> 00:02:39,840 And so we began to focus as heavily as we 60 00:02:39,840 --> 00:02:43,500 could really on trying to bring the course as much to life 61 00:02:43,500 --> 00:02:46,740 as we could even in that strictly online format. 62 00:02:46,740 --> 00:02:49,410 Even for our otherwise on campus students. 63 00:02:49,410 --> 00:02:51,840 Now for many years we had indeed had this tradition 64 00:02:51,840 --> 00:02:56,010 of having the fortune of being able to film the class, even prior 65 00:02:56,010 --> 00:02:59,562 to COVID, and with nice 4K resolution, widescreen 66 00:02:59,562 --> 00:03:02,520 cinematography in a beautiful space like this here, one of the theaters 67 00:03:02,520 --> 00:03:03,400 on campus. 68 00:03:03,400 --> 00:03:05,340 And so frankly one of our first considerations 69 00:03:05,340 --> 00:03:08,520 early on was: well, maybe we should just rerun 70 00:03:08,520 --> 00:03:10,110 the previous version of the course. 71 00:03:10,110 --> 00:03:13,290 2019's version was very highly produced, it 72 00:03:13,290 --> 00:03:16,080 seemed to go quite well curricular and otherwise. 73 00:03:16,080 --> 00:03:18,660 We could just reuse all of those same assets. 74 00:03:18,660 --> 00:03:21,720 And in fact, this was something we had in sort of the back of our pocket, 75 00:03:21,720 --> 00:03:24,270 just in case we weren't able to do justice to what it 76 00:03:24,270 --> 00:03:27,270 was we had as a vision for Fall 2020. 77 00:03:27,270 --> 00:03:28,240 As well. 78 00:03:28,240 --> 00:03:31,860 Now, of course, this was also an image from a previous lecture in Fall 2019 79 00:03:31,860 --> 00:03:33,330 and all of this had to go. 80 00:03:33,330 --> 00:03:35,820 And as much as we've endeavored over the years to bring 81 00:03:35,820 --> 00:03:39,420 lectures, in particular, to life once more or more per week 82 00:03:39,420 --> 00:03:42,120 by involving students on stage and demonstrations, the creation 83 00:03:42,120 --> 00:03:44,010 of these so-called memorable moments. 84 00:03:44,010 --> 00:03:45,990 That too was something we feared that if we 85 00:03:45,990 --> 00:03:50,850 redid the class live Fall 2020 online only in some form where we're 86 00:03:50,850 --> 00:03:54,240 going to have to start sacrificing some of those very visuals, some 87 00:03:54,240 --> 00:03:58,650 of those very memorable moments that we could reuse in some form in 2020. 88 00:03:58,650 --> 00:04:00,930 So that too was on the forefront of our mind. 89 00:04:00,930 --> 00:04:04,980 But kind of ridiculously, I think, the first fix or change 90 00:04:04,980 --> 00:04:07,500 that occurred to multiple members of our team 91 00:04:07,500 --> 00:04:10,500 here was that for like 5, 10 years have I 92 00:04:10,500 --> 00:04:14,010 been using at the very start of CS50, which is ostensibly taught in C 93 00:04:14,010 --> 00:04:16,740 and in Python primarily as an introduction to programming 94 00:04:16,740 --> 00:04:20,279 for students, we also spend a week on Scratch, this graphical programming 95 00:04:20,279 --> 00:04:22,230 language from MIT's Media Lab. 96 00:04:22,230 --> 00:04:24,510 And for some reason or other, for years, I 97 00:04:24,510 --> 00:04:27,480 had been introducing students to the notion of loops and iteration 98 00:04:27,480 --> 00:04:32,010 by making a cat like this on the screen cough not once, 99 00:04:32,010 --> 00:04:34,890 not twice, but three times iteratively just 100 00:04:34,890 --> 00:04:36,600 to paint a picture of what loops are for. 101 00:04:36,600 --> 00:04:39,540 So we got, sort of, multiple realizations off the bat 102 00:04:39,540 --> 00:04:41,643 that this is the first thing that had to go. 103 00:04:41,643 --> 00:04:43,560 Now in retrospect, I don't know why we weren't 104 00:04:43,560 --> 00:04:46,110 using what we went with in Fall 2020, which 105 00:04:46,110 --> 00:04:48,990 was just have the cat say meow instead of cough, 106 00:04:48,990 --> 00:04:53,820 but that was at least among the earliest and easiest challenges to then tackle. 107 00:04:53,820 --> 00:04:57,600 So at this point now back in March, April, May of 2020 108 00:04:57,600 --> 00:04:59,700 did we start thinking about how we were going 109 00:04:59,700 --> 00:05:01,810 to approach presenting this course to students 110 00:05:01,810 --> 00:05:04,690 presumably, if they themselves were entirely online. 111 00:05:04,690 --> 00:05:07,240 And we again have experimented over many years, 112 00:05:07,240 --> 00:05:10,270 now, with different demographics of students both at the college, 113 00:05:10,270 --> 00:05:13,310 through executive education, graduate schools here at Harvard. 114 00:05:13,310 --> 00:05:16,430 So we had a number of different formats and evolutions over time. 115 00:05:16,430 --> 00:05:21,340 So for instance, this year is a picture of what perhaps the most homegrown 116 00:05:21,340 --> 00:05:22,550 solution might have been. 117 00:05:22,550 --> 00:05:26,540 You can also use phone books if you have a stack of those as well. 118 00:05:26,540 --> 00:05:29,650 But this is perhaps the sort of most makeshift approach that we took, 119 00:05:29,650 --> 00:05:32,830 myself took when teaching Zoom in some form in the past. 120 00:05:32,830 --> 00:05:35,590 Now we started experimenting shortly thereafter, though, 121 00:05:35,590 --> 00:05:42,490 with something a little more conducive to a teacher moving around a little bit 122 00:05:42,490 --> 00:05:45,110 and standing and feeling like they're in sort of a classroom. 123 00:05:45,110 --> 00:05:48,280 And so we essentially, through experimentation and a bit of hardware 124 00:05:48,280 --> 00:05:51,010 here and there, turned my kitchen, an artist's rendition of it 125 00:05:51,010 --> 00:05:53,590 appears here, into essentially a mini video 126 00:05:53,590 --> 00:05:56,530 Studio a big white backdrop from Amazon and back, a couple 127 00:05:56,530 --> 00:05:58,660 of LED lights in the front and the back, and then 128 00:05:58,660 --> 00:06:02,290 just my laptop at standing height on the kitchen counter on one of those 129 00:06:02,290 --> 00:06:05,890 stand to sit desks that would allow me ultimately to stand. 130 00:06:05,890 --> 00:06:08,990 And so indeed, this for me was sort of one of the primary goals, 131 00:06:08,990 --> 00:06:10,990 was not to have to teach a whole course sitting. 132 00:06:10,990 --> 00:06:13,270 As you can see, my sort of extremities sort of 133 00:06:13,270 --> 00:06:15,170 start to exude energy on their own. 134 00:06:15,170 --> 00:06:17,860 And so having a setup like this actually lent itself 135 00:06:17,860 --> 00:06:21,707 to a bit more dynamism in the kinds of feel of the class 136 00:06:21,707 --> 00:06:23,290 that we wanted to present to students. 137 00:06:23,290 --> 00:06:26,570 Picture here is just a closer up of that same sort of setup. 138 00:06:26,570 --> 00:06:29,890 So early on too, last summer, we started experimenting with software. 139 00:06:29,890 --> 00:06:32,110 And of course, we're all here on Zoom and most of us 140 00:06:32,110 --> 00:06:35,410 are familiar with sharing a screen on Zoom, which in the traditional way 141 00:06:35,410 --> 00:06:38,290 looks a little something like this screenshot here, where one of us 142 00:06:38,290 --> 00:06:41,050 is relegated to a pretty small tile, maybe in gallery mode 143 00:06:41,050 --> 00:06:42,880 with a few other teachers or students. 144 00:06:42,880 --> 00:06:46,510 And then the screen takes up most of the space, which makes sense for visuals 145 00:06:46,510 --> 00:06:51,280 but very easily starts to decouple the presentation from the presenter. 146 00:06:51,280 --> 00:06:55,120 And it starts to feel more like just a sort of old school slide show 147 00:06:55,120 --> 00:06:57,822 as opposed to a live and living and breathing class. 148 00:06:57,822 --> 00:07:00,280 And so we experimented with one tool with which some of you 149 00:07:00,280 --> 00:07:03,490 might be familiar, OBS, which is an open source project which 150 00:07:03,490 --> 00:07:08,080 allows you to create your own layouts in software on your own Mac or PC 151 00:07:08,080 --> 00:07:10,700 and then present it to Zoom as a virtual camera. 152 00:07:10,700 --> 00:07:13,130 So we started experimenting with formats like this. 153 00:07:13,130 --> 00:07:17,350 So same code same slides, but a bigger version of me, which I don't think 154 00:07:17,350 --> 00:07:19,630 was motivated by, fundamentally, a desire for just 155 00:07:19,630 --> 00:07:22,180 me to be what students see primarily, but just 156 00:07:22,180 --> 00:07:24,710 to try to keep them all the more visually engaged, 157 00:07:24,710 --> 00:07:28,210 especially if the slides or the code are up there, the entirety of class. 158 00:07:28,210 --> 00:07:30,910 It feels a little more closely like you're actually 159 00:07:30,910 --> 00:07:35,540 continuing to have a one on one or one on few chat with each other. 160 00:07:35,540 --> 00:07:39,460 So besides using a tool like OBS, we began to experiment, too, 161 00:07:39,460 --> 00:07:42,950 with some topologies that we had used in here on campus. 162 00:07:42,950 --> 00:07:45,430 So in fact Margaret Seltzer, one of yesterday's presenters, 163 00:07:45,430 --> 00:07:47,263 and I used to co-teach a class together here 164 00:07:47,263 --> 00:07:50,770 on campus, for which we started experimenting with a Zoom based set up 165 00:07:50,770 --> 00:07:54,370 like this, pre COVID, for an executive Ed class at Harvard's Business School, 166 00:07:54,370 --> 00:07:57,490 where we just had a big screen TV at the end of a table. 167 00:07:57,490 --> 00:08:01,220 We even had a teleprompter, at one point, with a camera hidden behind it. 168 00:08:01,220 --> 00:08:04,432 So that when Margo or I were sort of talking to or looking at the students, 169 00:08:04,432 --> 00:08:06,640 it actually looked like we were looking right at them 170 00:08:06,640 --> 00:08:09,940 with none of this odd eye line looking at the middle of the screen and not 171 00:08:09,940 --> 00:08:10,690 the camera. 172 00:08:10,690 --> 00:08:14,680 It was just a way to focus on whoever it was was speaking, was asking, 173 00:08:14,680 --> 00:08:16,030 or answering a question. 174 00:08:16,030 --> 00:08:19,475 And I would say that this kind of felt 50% of the way there. 175 00:08:19,475 --> 00:08:21,850 There were no students physically in the room, certainly, 176 00:08:21,850 --> 00:08:23,590 they were all tiles on the screen. 177 00:08:23,590 --> 00:08:25,870 But the tiles were pretty small but it was certainly 178 00:08:25,870 --> 00:08:29,440 better than just sitting, for instance, at a laptop and a much smaller screen, 179 00:08:29,440 --> 00:08:32,720 interacting with the same sort of discussion based audience. 180 00:08:32,720 --> 00:08:35,919 So we started thinking about how we could bring it a bit more to life 181 00:08:35,919 --> 00:08:39,850 and try to create on-campus, COVID permitting and protocol permitting. 182 00:08:39,850 --> 00:08:42,130 Just something that felt more for the faculty member 183 00:08:42,130 --> 00:08:46,840 like it was indeed a classroom, even if they're the only one in the room. 184 00:08:46,840 --> 00:08:50,095 And so we started experimenting with a few other TVs. 185 00:08:50,095 --> 00:08:51,970 We put three of them, for instance, in a row. 186 00:08:51,970 --> 00:08:55,390 And instead of using the traditional Zoom meeting software, which most of us 187 00:08:55,390 --> 00:08:58,810 are using right now, we downloaded the Zoom room software, 188 00:08:58,810 --> 00:09:02,110 which is typically used in like conference room corporate environments 189 00:09:02,110 --> 00:09:03,630 for multiple TVs on the wall. 190 00:09:03,630 --> 00:09:06,130 And we just laid out the TVs like this sort of in an ellipse 191 00:09:06,130 --> 00:09:07,870 around a few other monitors. 192 00:09:07,870 --> 00:09:10,210 So if I sort of Zoom in on this setup, what 193 00:09:10,210 --> 00:09:15,820 you'll see is not just three screens of students, potentially, as many as 75 194 00:09:15,820 --> 00:09:18,880 at a time given the current restrictions of Zoom rooms, 195 00:09:18,880 --> 00:09:21,220 there's a camera up there at the top middle, 196 00:09:21,220 --> 00:09:24,910 there's a confidence monitor just so I know that I'm in or out of frame, 197 00:09:24,910 --> 00:09:27,520 and then there's a couple of more monitors behind the table 198 00:09:27,520 --> 00:09:30,040 here that has one, the participants window. 199 00:09:30,040 --> 00:09:33,070 So I or a colleague of mine could see any of the students' hands 200 00:09:33,070 --> 00:09:34,190 going up virtually. 201 00:09:34,190 --> 00:09:36,160 And then also a tall monitor with just the chat 202 00:09:36,160 --> 00:09:39,230 window to see any questions or comments coming in along the way. 203 00:09:39,230 --> 00:09:43,280 And I would say that this set up here, especially once we added a green screen 204 00:09:43,280 --> 00:09:45,460 so that we could project our content behind us, 205 00:09:45,460 --> 00:09:49,270 did it really start to feel 80% like being in a class. 206 00:09:49,270 --> 00:09:52,100 Right now I'm literally the only one in this room. 207 00:09:52,100 --> 00:09:55,100 And to be fair, most of us, during the workshop, have had our tiles off. 208 00:09:55,100 --> 00:09:57,280 But once these tiles all come to life and you can actually 209 00:09:57,280 --> 00:09:59,620 move around in this space and look at different cameras 210 00:09:59,620 --> 00:10:05,520 and different screens, I genuinely mean that it felt more like 80% of the way 211 00:10:05,520 --> 00:10:08,712 to being in a classroom with students otherwise being seated there in seats. 212 00:10:08,712 --> 00:10:11,170 I didn't mean to guilt anyone into turning your cameras on. 213 00:10:11,170 --> 00:10:14,400 I see some faces starting to shine, that that's certainly OK. 214 00:10:14,400 --> 00:10:17,130 And if you're curious just to break the fourth wall here, 215 00:10:17,130 --> 00:10:20,580 Patrick would you mind killing our virtual background for a minute? 216 00:10:20,580 --> 00:10:22,620 Sort of depressing that it's indeed just me 217 00:10:22,620 --> 00:10:25,680 now in this room with colleagues of mine listening in on microphones, 218 00:10:25,680 --> 00:10:27,330 but this is just what we have. 219 00:10:27,330 --> 00:10:30,420 Some lights above, some lights below, a green screen behind us, 220 00:10:30,420 --> 00:10:33,130 and granted, some fancy hardware controlling it all. 221 00:10:33,130 --> 00:10:36,840 But it's just a room that we then try ultimately to bring to life. 222 00:10:36,840 --> 00:10:40,210 All right, Patrick, we can go back to virtual reality here. 223 00:10:40,210 --> 00:10:43,110 So this was our default plan so this would 224 00:10:43,110 --> 00:10:45,120 have been early midsummer last year. 225 00:10:45,120 --> 00:10:47,580 Harvard, like many universities, wasn't really sure 226 00:10:47,580 --> 00:10:50,040 what the fall semester was going to be like. 227 00:10:50,040 --> 00:10:51,870 So at least we had a plan in place. 228 00:10:51,870 --> 00:10:54,090 And we started practicing with it endlessly. 229 00:10:54,090 --> 00:10:56,670 We would, not so much with our undergraduates, 230 00:10:56,670 --> 00:10:58,980 who were very much focused on fall or spring semesters, 231 00:10:58,980 --> 00:11:01,780 but some of our online students through edX for instance, 232 00:11:01,780 --> 00:11:03,660 we would just invite them to optional one 233 00:11:03,660 --> 00:11:07,020 off classes or tech talks or office hours, if you will, 234 00:11:07,020 --> 00:11:10,650 just so that we could play with and try out this set up again and again just 235 00:11:10,650 --> 00:11:13,350 to get me comfortable with it and our whole team just familiar 236 00:11:13,350 --> 00:11:16,290 a bit more with the mechanics of it. 237 00:11:16,290 --> 00:11:20,550 But at the same time we realized that maybe there's some silver lining here. 238 00:11:20,550 --> 00:11:24,060 If we fortunately can stay healthy through all of this 239 00:11:24,060 --> 00:11:27,090 and we can access Harvard per its current protocols could 240 00:11:27,090 --> 00:11:30,030 we may be leverage some of the otherwise dormant resources 241 00:11:30,030 --> 00:11:34,080 on campus because pretty much every building now was indeed offline. 242 00:11:34,080 --> 00:11:35,743 And it turns out that there were-- 243 00:11:35,743 --> 00:11:38,910 Harvard has a bunch of buildings beyond the traditional classroom buildings. 244 00:11:38,910 --> 00:11:42,473 One of which happens to be a sort of dinner theater down the road. 245 00:11:42,473 --> 00:11:45,390 Those of you who've been to Cambridge, it's called the Oberon theater. 246 00:11:45,390 --> 00:11:48,280 They too couldn't hold any shows or dinner events or the like. 247 00:11:48,280 --> 00:11:50,340 And here's a photo of it, complete with a disco 248 00:11:50,340 --> 00:11:53,685 ball in the middle of the ceiling, and it had a little stage, pictured here. 249 00:11:53,685 --> 00:11:55,560 It's just me and some of my colleagues on it. 250 00:11:55,560 --> 00:11:59,310 And we started to spec this out because it turned out we could maybe, 251 00:11:59,310 --> 00:12:01,140 if we wanted, filmed the course's lectures 252 00:12:01,140 --> 00:12:05,100 and try to bring them to life on an actual stage in an actual theater 253 00:12:05,100 --> 00:12:06,780 with no audience, admittedly. 254 00:12:06,780 --> 00:12:09,210 But even though the pictures don't quite tell that story 255 00:12:09,210 --> 00:12:11,220 it was actually pretty space-constrained. 256 00:12:11,220 --> 00:12:14,580 And at the time, Harvard was prescribing at least 25 feet 257 00:12:14,580 --> 00:12:18,720 of distance between someone like me, if teaching and unmasked in a space, 258 00:12:18,720 --> 00:12:21,420 with all of my colleagues masked with face shields and the like, 259 00:12:21,420 --> 00:12:23,430 would have to be at least 25 feet away. 260 00:12:23,430 --> 00:12:25,860 And so the space could have been used but 261 00:12:25,860 --> 00:12:28,980 wasn't necessarily the best option since it actually 262 00:12:28,980 --> 00:12:30,990 would have been quite confining. 263 00:12:30,990 --> 00:12:35,850 And so just kind of on a whimsy did we ask the same folks who 264 00:12:35,850 --> 00:12:39,240 manage the real estate here in Cambridge, what about that slightly 265 00:12:39,240 --> 00:12:40,920 larger theater down the road? 266 00:12:40,920 --> 00:12:44,310 Otherwise known as the low main stage or American Repertory 267 00:12:44,310 --> 00:12:45,570 Theater, where they're based. 268 00:12:45,570 --> 00:12:49,080 Which is actually this beautiful space across campus that in healthy times 269 00:12:49,080 --> 00:12:53,130 would host plays and shows in the traditional sense. 270 00:12:53,130 --> 00:12:58,380 But that space and, in turn, its team of very artistic lighting experts 271 00:12:58,380 --> 00:13:01,410 and stage experts and audio experts and prop masters 272 00:13:01,410 --> 00:13:05,040 complete with their own prop shop were essentially offline, potentially 273 00:13:05,040 --> 00:13:08,100 for the whole year unless that space were somehow utilized. 274 00:13:08,100 --> 00:13:10,740 And somehow or other we got back a yes. 275 00:13:10,740 --> 00:13:13,020 And we had access to this multiple hundreds seat 276 00:13:13,020 --> 00:13:16,830 theater that normally would be used for these more theatrical shows, 277 00:13:16,830 --> 00:13:18,555 a blank slate of sorts. 278 00:13:18,555 --> 00:13:20,430 If we flip the camera around and look at what 279 00:13:20,430 --> 00:13:24,250 was a sort of black box stage with plenty of lights up and above it. 280 00:13:24,250 --> 00:13:27,540 And so we started to think now in probably July, 281 00:13:27,540 --> 00:13:30,330 August starting to cut it close to September 2020, 282 00:13:30,330 --> 00:13:34,570 how we could bring this stage to life even without an audience in there. 283 00:13:34,570 --> 00:13:37,080 And so one of the first things we did, for instance, 284 00:13:37,080 --> 00:13:39,270 was started trolling through Harvard's archives. 285 00:13:39,270 --> 00:13:42,060 Where they have documents and paintings and everything 286 00:13:42,060 --> 00:13:43,480 from hundreds of years ago. 287 00:13:43,480 --> 00:13:47,100 And we actually found this, a watercolor painting from 1794. 288 00:13:47,100 --> 00:13:49,980 A graduate student by the name of Jonathan Fisher at the time, 289 00:13:49,980 --> 00:13:52,320 happened to be standing, sitting in Harvard Square, 290 00:13:52,320 --> 00:13:55,620 painting some of Harvard's earliest buildings here right there 291 00:13:55,620 --> 00:13:56,820 in Harvard Yard. 292 00:13:56,820 --> 00:13:59,730 And so this was only a painting about yay big, 293 00:13:59,730 --> 00:14:01,830 I believe they did have a digital image of it. 294 00:14:01,830 --> 00:14:05,340 And we decided with the help of the library system 295 00:14:05,340 --> 00:14:06,930 here to bring this thing to life. 296 00:14:06,930 --> 00:14:10,650 And thus was born a 30 foot tapestry, version thereof. 297 00:14:10,650 --> 00:14:14,580 Even here did we already have a chance to weave in some computer science. 298 00:14:14,580 --> 00:14:19,080 This was even though shot at pretty high resolution with a nice glass lens. 299 00:14:19,080 --> 00:14:22,080 It's one thing to take it from this size to 30 feet so we ran it 300 00:14:22,080 --> 00:14:25,170 through some of this machine learning type software that's 301 00:14:25,170 --> 00:14:28,170 now built into Photoshop and other open source tools that would actually 302 00:14:28,170 --> 00:14:31,378 allow us to interpolate among the pixels and actually blow it up to something 303 00:14:31,378 --> 00:14:34,120 that looks nice as well as it did here. 304 00:14:34,120 --> 00:14:38,850 And so thus began a collaboration with this American Repertory Theater. 305 00:14:38,850 --> 00:14:41,220 These amazingly talented artists that would otherwise 306 00:14:41,220 --> 00:14:44,830 be working on amazing shows and plays and performances and the like. 307 00:14:44,830 --> 00:14:48,630 And thanks to not only those talents and also this prop shop in back 308 00:14:48,630 --> 00:14:50,820 did we, as the teaching staff have an opportunity 309 00:14:50,820 --> 00:14:54,090 to rethink how we were presenting CS50's lectures. 310 00:14:54,090 --> 00:14:58,890 And any sort of prop or demonstrations that I might fancifully in the past, 311 00:14:58,890 --> 00:15:01,880 at home in my apartment have wished "Oh that be fun to do." 312 00:15:01,880 --> 00:15:06,150 Not having the resources did those resources suddenly come into play. 313 00:15:06,150 --> 00:15:08,900 And so ultimately, we not only put up this big backdrop. 314 00:15:08,900 --> 00:15:11,990 They kindly helped us set up the sort of traditional red curtains 315 00:15:11,990 --> 00:15:14,150 and black curtains and all of the requisite lights. 316 00:15:14,150 --> 00:15:16,490 We brought in some of our technology, like a big touch 317 00:15:16,490 --> 00:15:20,330 screen display to actually display code and slides on as well as the lectern. 318 00:15:20,330 --> 00:15:22,910 And we tried to bring this space to life. 319 00:15:22,910 --> 00:15:24,740 And indeed thanks to these talented artists 320 00:15:24,740 --> 00:15:27,980 did over the course of the semester, we try to infuse a bit of fun, 321 00:15:27,980 --> 00:15:31,070 even interest to the visuals of the class to help students 322 00:15:31,070 --> 00:15:33,940 feel like something was indeed coming to life here. 323 00:15:33,940 --> 00:15:39,710 So pictured here is the default photo around October 324 00:15:39,710 --> 00:15:43,160 did the artisans decorate it with a little more of a fall motif, 325 00:15:43,160 --> 00:15:46,653 it eventually evolved into something with Halloween in mind, 326 00:15:46,653 --> 00:15:49,070 and then ultimately wintertime did the whole stage evolve. 327 00:15:49,070 --> 00:15:50,820 So just little touches, separate certainly 328 00:15:50,820 --> 00:15:55,190 from the curriculum of the class, just to try to make a little bit different 329 00:15:55,190 --> 00:16:00,350 what it is students were logging in for these multiple hours per week. 330 00:16:00,350 --> 00:16:03,238 And as for my view, if we flip the camera back around, 331 00:16:03,238 --> 00:16:05,030 there were no one in those seats, but there 332 00:16:05,030 --> 00:16:10,310 were some 6 large TV displays on which were at least 25 faces on each. 333 00:16:10,310 --> 00:16:14,900 So this gave us 15, 75, 150 students could actually 334 00:16:14,900 --> 00:16:16,730 be virtual members of the audience. 335 00:16:16,730 --> 00:16:21,070 And, for my sake, actual members of the audience with whom to interact. 336 00:16:21,070 --> 00:16:24,260 To not only have the sort of psychology of those eyes looming down 337 00:16:24,260 --> 00:16:29,180 on me feeling like I do have to rise to those interpersonal expectations, 338 00:16:29,180 --> 00:16:31,193 but it was also possible for us, pictured here 339 00:16:31,193 --> 00:16:33,860 is me interacting with one student to blow the student's face up 340 00:16:33,860 --> 00:16:34,650 onto the screen. 341 00:16:34,650 --> 00:16:37,880 So that I could see them in perfect fidelity, see their name on the screen. 342 00:16:37,880 --> 00:16:39,690 And we had a camera right atop the screen. 343 00:16:39,690 --> 00:16:43,040 So that when a student did ask a question virtually or physically 344 00:16:43,040 --> 00:16:46,490 and I interacted with them, to answer or ask some question of them, 345 00:16:46,490 --> 00:16:50,030 did it actually feel a bit closer to what 346 00:16:50,030 --> 00:16:53,710 it might have been if they were in a similarly large space here on campus. 347 00:16:53,710 --> 00:16:56,700 So here are some of our undergrads over on the right here. 348 00:16:56,700 --> 00:16:58,695 And in fact, if we Zoom out from the 6 screens, 349 00:16:58,695 --> 00:17:01,820 we also have this tradition in Cambridge of inviting members of the public, 350 00:17:01,820 --> 00:17:04,250 in healthier times, to actually come to that theater 351 00:17:04,250 --> 00:17:07,550 on campus to sit in on a computer science lecture 352 00:17:07,550 --> 00:17:09,260 if that is of genuine interest to them. 353 00:17:09,260 --> 00:17:11,010 And we actually did the same here too. 354 00:17:11,010 --> 00:17:14,442 We had a separate Zoom room as part of our OpenCourseWare initiative, 355 00:17:14,442 --> 00:17:17,359 into which we invited anyone on the internet if they wanted to partake 356 00:17:17,359 --> 00:17:19,940 and so those spaces to the left were known 357 00:17:19,940 --> 00:17:24,780 to me to be that demographic of students and learners as well. 358 00:17:24,780 --> 00:17:28,790 So in terms of the logistics, we were very fortunate, certainly, 359 00:17:28,790 --> 00:17:31,387 that we were able to craft the requisite protocols. 360 00:17:31,387 --> 00:17:34,220 And Harvard thankfully had a whole machinery in place to figure out, 361 00:17:34,220 --> 00:17:37,468 at the time, what the data suggested was safest and most healthy. 362 00:17:37,468 --> 00:17:40,760 And what you see here is, for instance, one of our first mock ups of the space. 363 00:17:40,760 --> 00:17:43,940 The little blue dot there over in the middle is me by the lectern. 364 00:17:43,940 --> 00:17:48,140 And there is maybe four or so green dots that represented colleagues of mine. 365 00:17:48,140 --> 00:17:50,630 There were at least these 25 feet away. 366 00:17:50,630 --> 00:17:53,600 Wonderfully, they were willing to be there not just in face mask 367 00:17:53,600 --> 00:17:54,590 but face shields. 368 00:17:54,590 --> 00:17:57,120 All of us were getting tested regularly as well. 369 00:17:57,120 --> 00:17:59,390 But this is why we needed, at the time, at least, 370 00:17:59,390 --> 00:18:01,730 such a large space to do any of this. 371 00:18:01,730 --> 00:18:05,450 And there was also a space backstage that a colleague of mine 372 00:18:05,450 --> 00:18:09,260 was able to then use himself, him too, without his mask on, 373 00:18:09,260 --> 00:18:10,882 in a separate video feed there. 374 00:18:10,882 --> 00:18:12,590 Because what we did want to preserve were 375 00:18:12,590 --> 00:18:15,530 some of those earliest visuals of the students coming up on the stage. 376 00:18:15,530 --> 00:18:17,870 And we couldn't really do that anymore this year. 377 00:18:17,870 --> 00:18:21,870 And so Brian, my colleague, became my proxy of sorts. 378 00:18:21,870 --> 00:18:23,840 He is here as our-- 379 00:18:23,840 --> 00:18:26,780 leading the class alongside me albeit in a separate space 380 00:18:26,780 --> 00:18:29,480 and answering some of the rhetorical questions 381 00:18:29,480 --> 00:18:31,670 that I might normally ask of students. 382 00:18:31,670 --> 00:18:35,480 But having access now to this stage and to this amazing team 383 00:18:35,480 --> 00:18:38,030 of talented artists and carpenters and the like, 384 00:18:38,030 --> 00:18:40,817 were we able to reach for all of the various props 385 00:18:40,817 --> 00:18:42,650 that they would otherwise be using in shows. 386 00:18:42,650 --> 00:18:44,400 There's a warehouse down the road where we 387 00:18:44,400 --> 00:18:48,410 were able to go, literally, aisle by aisle looking at past shows' props 388 00:18:48,410 --> 00:18:51,740 to see what could we use to bring the subject to light. 389 00:18:51,740 --> 00:18:54,357 Here, for instance, is the ghost light from the theater. 390 00:18:54,357 --> 00:18:57,440 If unfamiliar, a ghost light is this old school tradition in many theaters 391 00:18:57,440 --> 00:19:00,480 where they leave a single light on at night for the ghosts. 392 00:19:00,480 --> 00:19:03,230 And also so that you don't trip and fall off the edge of the stage 393 00:19:03,230 --> 00:19:04,605 if the theatre is otherwise dark. 394 00:19:04,605 --> 00:19:08,150 And so this became our first binary ball, talking about ones and zeros 395 00:19:08,150 --> 00:19:11,960 by literally plugging and unplugging that particular light bulb. 396 00:19:11,960 --> 00:19:14,060 We also brought to life to the edge of the stage 397 00:19:14,060 --> 00:19:15,860 in a very traditional theatrical way where 398 00:19:15,860 --> 00:19:19,488 we had 64 light bulbs or binary bulbs, if you will. 399 00:19:19,488 --> 00:19:22,280 And it was on this stage that we then introduced students, not just 400 00:19:22,280 --> 00:19:23,190 a single bit. 401 00:19:23,190 --> 00:19:26,510 But maybe a bytes worth at a time, turning the light bulbs on and off 402 00:19:26,510 --> 00:19:29,150 in some pattern to represent integers and later 403 00:19:29,150 --> 00:19:31,260 ASCII characters and the like. 404 00:19:31,260 --> 00:19:34,340 And so it actually became kind of a running gag too, just for fun, 405 00:19:34,340 --> 00:19:36,950 that every lecture every week did we sort of encode 406 00:19:36,950 --> 00:19:40,550 a different English message in ASCII sort of as a little brownie 407 00:19:40,550 --> 00:19:44,690 point exercise to see who could actually decode the pattern of 8 bytes 408 00:19:44,690 --> 00:19:46,790 here along the way. 409 00:19:46,790 --> 00:19:50,660 Besides this, one of my, sort of, pedagogical dreams for years 410 00:19:50,660 --> 00:19:53,180 has always been to somehow introduce students 411 00:19:53,180 --> 00:19:58,130 to the notion of a raise in a language like C and to topics like binary search 412 00:19:58,130 --> 00:20:01,445 or linear search, even, using actual doors so you 413 00:20:01,445 --> 00:20:04,070 can walk through the motions of literally having to open a door 414 00:20:04,070 --> 00:20:08,870 to make clear that a computer can only look at, presumably, one memory 415 00:20:08,870 --> 00:20:10,153 location at a time. 416 00:20:10,153 --> 00:20:12,320 And so whereas the traditional audience, if you just 417 00:20:12,320 --> 00:20:16,010 put a whole bunch of numbers on stage and ask the students to find 418 00:20:16,010 --> 00:20:18,740 a number for you, of course we, with this bird's eye view, 419 00:20:18,740 --> 00:20:21,050 see everything at once but not so with doors. 420 00:20:21,050 --> 00:20:25,520 And so what you see here is a mix of multiple doors from multiple past shows 421 00:20:25,520 --> 00:20:28,670 behind which the prop shop amazingly brought to life 422 00:20:28,670 --> 00:20:31,520 even the numbers, sort of Sesame Street or Muppet style. 423 00:20:31,520 --> 00:20:35,180 So here was me discovering the number 6 behind one of these doors. 424 00:20:35,180 --> 00:20:38,180 And each of the other numbers during our linear search and binary search 425 00:20:38,180 --> 00:20:40,468 examples looked a little something like this. 426 00:20:40,468 --> 00:20:43,010 Not something we could have done in our typical lecture hall, 427 00:20:43,010 --> 00:20:44,630 beautiful as that other theater was. 428 00:20:44,630 --> 00:20:47,780 When there's a class before us a class after us no prop shop 429 00:20:47,780 --> 00:20:51,590 and back and no one except the teaching staff alone. 430 00:20:51,590 --> 00:20:55,018 Now in back my colleague Brian was able to have his own visuals so 431 00:20:55,018 --> 00:20:56,810 that we could sort of interact and he could 432 00:20:56,810 --> 00:20:58,820 play the role of a proxy for students. 433 00:20:58,820 --> 00:21:02,060 And here was us playing around with sorting algorithms. 434 00:21:02,060 --> 00:21:04,250 A whole bunch of numbers, an array at the top, 435 00:21:04,250 --> 00:21:08,550 and just deliberately this metal shelf that we found around backstage so as 436 00:21:08,550 --> 00:21:10,550 to paint a picture of something like merge sort, 437 00:21:10,550 --> 00:21:12,770 requiring a bit of extra storage. 438 00:21:12,770 --> 00:21:16,140 One or more shelves, depending on how you decide to implement it. 439 00:21:16,140 --> 00:21:19,070 So here for instance, is Brian beginning to sort and ultimately 440 00:21:19,070 --> 00:21:22,580 merge those numbers into what ultimately was sorted order. 441 00:21:22,580 --> 00:21:24,320 With him, again, playing the role of what 442 00:21:24,320 --> 00:21:26,600 would have been a student in healthier times. 443 00:21:26,600 --> 00:21:30,230 When we talk about memory and memory management in this language C, 444 00:21:30,230 --> 00:21:32,690 we often of course, talk about things like garbage values 445 00:21:32,690 --> 00:21:35,510 and, amazingly, was that team able to bring garbage values 446 00:21:35,510 --> 00:21:38,390 to life in the form of these little wooden tiles 447 00:21:38,390 --> 00:21:41,270 that they put with some input from us. 448 00:21:41,270 --> 00:21:42,320 Oscar the grouch on. 449 00:21:42,320 --> 00:21:46,220 And this is a close up now of using a Canvas of memory, 450 00:21:46,220 --> 00:21:48,680 where each of the Oscars, or each of those squares 451 00:21:48,680 --> 00:21:51,020 represents a byte of memory. 452 00:21:51,020 --> 00:21:54,860 This depicts us implementing a main function, a function called swap, 453 00:21:54,860 --> 00:21:57,830 and using some of those stack frames of memory 454 00:21:57,830 --> 00:22:01,500 to sort bring that to life for students as well. 455 00:22:01,500 --> 00:22:05,360 We found a few mailboxes and put those both in front stage and back stage 456 00:22:05,360 --> 00:22:08,750 so that Brian and I could talk about pointers and indirection. 457 00:22:08,750 --> 00:22:13,550 This is me opening a variable called p, finding inside of it 458 00:22:13,550 --> 00:22:15,710 in an address 0x123. 459 00:22:15,710 --> 00:22:18,860 Now we cut backstage and there's Brian with a variable that 460 00:22:18,860 --> 00:22:22,190 lives at exactly that address 0x123 voila, 461 00:22:22,190 --> 00:22:26,900 it was Brian finding the number that we had stored at that location. 462 00:22:26,900 --> 00:22:30,230 Here's Brian again, interacting with me with a sort of split screen here. 463 00:22:30,230 --> 00:22:33,090 We're in very distinct spaces, separate from one another, 464 00:22:33,090 --> 00:22:37,040 talking about variables and how you might swap two variables' values. 465 00:22:37,040 --> 00:22:39,590 Of course, if you have two glasses with color liquid 466 00:22:39,590 --> 00:22:44,030 you can't really pour one into the other and do a switcheroo. 467 00:22:44,030 --> 00:22:47,120 But if you rip out a temporary variable, as Brian did here, 468 00:22:47,120 --> 00:22:51,470 could we now bring to life this idea of swapping two variables properly? 469 00:22:51,470 --> 00:22:53,720 Much like a student at that point in the semester 470 00:22:53,720 --> 00:22:56,630 might have needed a third variable to actually exchange 471 00:22:56,630 --> 00:23:00,470 two values when talking about swap and stack frames and the like. 472 00:23:00,470 --> 00:23:02,040 Brought in some old buckets. 473 00:23:02,040 --> 00:23:02,540 Buckets. 474 00:23:02,540 --> 00:23:06,230 And we labeled them with suits of a deck like spades and diamonds 475 00:23:06,230 --> 00:23:08,210 and hearts and clubs. 476 00:23:08,210 --> 00:23:09,980 And we introduced students to hashing. 477 00:23:09,980 --> 00:23:12,740 So this is me holding up an oversized playing card, 478 00:23:12,740 --> 00:23:15,650 just talking about how we might bucketize each of those cards 479 00:23:15,650 --> 00:23:19,460 based on their suit, and then do one of our earlier sorting algorithms 480 00:23:19,460 --> 00:23:24,260 to actually get them from 1 through 13 or Ace through King. 481 00:23:24,260 --> 00:23:27,650 Slightly in the back there too, albeit we didn't need a whole prop shop for, 482 00:23:27,650 --> 00:23:31,250 this is us talking about stacks that particular week as well. 483 00:23:31,250 --> 00:23:32,960 And why I seem to only ever wear black. 484 00:23:32,960 --> 00:23:35,090 Well it turns out, according to the story told 485 00:23:35,090 --> 00:23:38,030 in class, that's because I store all of my sweaters in a stack 486 00:23:38,030 --> 00:23:40,610 and the most colorful ones happen to be at the bottom 487 00:23:40,610 --> 00:23:43,880 but of course all the black ones are pictured there at top. 488 00:23:43,880 --> 00:23:47,570 And then this one was perhaps one of the biggest ones that we'd long fancied. 489 00:23:47,570 --> 00:23:51,140 Bringing to life linked lists in C, where one node somehow 490 00:23:51,140 --> 00:23:52,650 points to another. 491 00:23:52,650 --> 00:23:56,180 And so the prop shop in back wonderfully built us some wooden boxes. 492 00:23:56,180 --> 00:23:59,360 This representing a pointer called list that would eventually point 493 00:23:59,360 --> 00:24:02,060 to some malloced or allocated nodes. 494 00:24:02,060 --> 00:24:07,490 This is me realizing, sort of too late how big a three foot wooden node 495 00:24:07,490 --> 00:24:09,560 actually is and how much it weighs. 496 00:24:09,560 --> 00:24:13,730 But this is me mallocing a node containing space for both a number, 497 00:24:13,730 --> 00:24:17,120 like one two three, or next a pointer to the next node. 498 00:24:17,120 --> 00:24:20,720 This is me grabbing the extension cord that we used from Home Depot, 499 00:24:20,720 --> 00:24:24,800 with a big orange arrow, so as to point that variable at the head of 500 00:24:24,800 --> 00:24:26,900 or the beginning of that list. 501 00:24:26,900 --> 00:24:30,060 This is me regretting mallocing a second node on stage. 502 00:24:30,060 --> 00:24:31,610 This is me realizing, "oh my God. 503 00:24:31,610 --> 00:24:34,220 Sometimes our memory is not contiguous and the next node 504 00:24:34,220 --> 00:24:35,900 is all the way over there." 505 00:24:35,900 --> 00:24:39,560 Fortunately, we can just bring a really long extension cord 506 00:24:39,560 --> 00:24:42,770 to bear on that problem as well in order to give ourselves 507 00:24:42,770 --> 00:24:44,270 a linked list there too. 508 00:24:44,270 --> 00:24:46,490 And then, perhaps most appropriate, given 509 00:24:46,490 --> 00:24:49,580 that my former professor, my former advisor, my former mentor 510 00:24:49,580 --> 00:24:52,820 is here today, one of the things I took away from an operating systems 511 00:24:52,820 --> 00:24:56,570 class some 20 years ago was a discussion of database logs 512 00:24:56,570 --> 00:25:00,320 and how you can handle issues of concurrency and potentially raise 513 00:25:00,320 --> 00:25:00,860 conditions. 514 00:25:00,860 --> 00:25:02,750 And the way Margot always described it was 515 00:25:02,750 --> 00:25:05,990 imagine that you and maybe a roommate each lived together 516 00:25:05,990 --> 00:25:07,310 and you have a refrigerator. 517 00:25:07,310 --> 00:25:10,130 And one of you opens the fridge, realizes you're out of milk. 518 00:25:10,130 --> 00:25:12,980 And so you leave the dorm room and go off into the Harvard Square 519 00:25:12,980 --> 00:25:14,510 to get a new jug of milk. 520 00:25:14,510 --> 00:25:17,510 Meanwhile your other roommate comes in, realizes "Oh we're out of milk" 521 00:25:17,510 --> 00:25:18,650 and they do the same. 522 00:25:18,650 --> 00:25:21,660 Of course dot, dot, dot, you end up with two jugs of milk, 523 00:25:21,660 --> 00:25:23,790 which is probably twice as much milk as you want. 524 00:25:23,790 --> 00:25:27,900 But not if you lock the refrigerator as we did here. 525 00:25:27,900 --> 00:25:31,760 So wonderfully a previous show had needed an old school refrigerator 526 00:25:31,760 --> 00:25:32,940 that was still lying around. 527 00:25:32,940 --> 00:25:36,710 We brought in a padlock and a chain and we acted this whole thing out. 528 00:25:36,710 --> 00:25:39,020 And then, lastly, toward the very end of the semester 529 00:25:39,020 --> 00:25:42,320 did we talk about things like callback functions, using some old school 530 00:25:42,320 --> 00:25:44,820 phones that happened to be in the prop shop as well. 531 00:25:44,820 --> 00:25:48,470 We talked about sessions and state management in the context of HTTP 532 00:25:48,470 --> 00:25:51,890 with carts or shopping carts and cookies, if you will. 533 00:25:51,890 --> 00:25:54,890 Mostly just an excuse to have a little something for ourselves after. 534 00:25:54,890 --> 00:25:59,030 And this was all thanks truly to this, this truly silver lining this past year 535 00:25:59,030 --> 00:26:03,230 of having, not only access to, but the bandwidth among all of these talented 536 00:26:03,230 --> 00:26:05,750 folks on campus, only a few of whom are pictured 537 00:26:05,750 --> 00:26:10,520 here backstage who helped us as a class bring so many of these topics to life. 538 00:26:10,520 --> 00:26:13,250 And indeed, if I just flip through some of the ending credits 539 00:26:13,250 --> 00:26:16,310 that we put together it really was this whole team 540 00:26:16,310 --> 00:26:19,940 for which there was no precedent even for an online class like ours, 541 00:26:19,940 --> 00:26:24,955 working with each other and this academic and artistic way in parallel. 542 00:26:24,955 --> 00:26:27,830 So in closing I thought I'd offer just a few takeaways, some of which 543 00:26:27,830 --> 00:26:31,520 are a little CS50 specific so I'll wave my hands at some of the visuals, 544 00:26:31,520 --> 00:26:33,440 but certainly they're all in the slides here. 545 00:26:33,440 --> 00:26:36,597 We ask students after each week or at the end of the course what 546 00:26:36,597 --> 00:26:38,180 they thought of each of these visuals. 547 00:26:38,180 --> 00:26:40,827 We asked them questions about to what extent they helped 548 00:26:40,827 --> 00:26:42,410 or hurt their understanding of topics. 549 00:26:42,410 --> 00:26:46,130 Here's sort of a ranked listing of all of those demonstrations 550 00:26:46,130 --> 00:26:47,960 that I just alluded to there. 551 00:26:47,960 --> 00:26:50,710 Margot, I can officially say, 20 years later, 552 00:26:50,710 --> 00:26:54,380 yours remains the number 1 favorite demonstration of students. 553 00:26:54,380 --> 00:26:56,810 The refrigerator and milk to explain race conditions. 554 00:26:56,810 --> 00:26:59,660 Blue means very helpful, that was the best received 555 00:26:59,660 --> 00:27:00,880 demonstration of all of them. 556 00:27:00,880 --> 00:27:02,630 And this is just the kind of feedback that 557 00:27:02,630 --> 00:27:05,960 will now use this coming fall, even with less theatricality 558 00:27:05,960 --> 00:27:08,900 to inform exactly how we're bringing some of these things to life. 559 00:27:08,900 --> 00:27:11,660 And it's not that we didn't ever do these kinds of demonstrations. 560 00:27:11,660 --> 00:27:15,770 It's not that we didn't talk about refrigerators and locks in the past, 561 00:27:15,770 --> 00:27:19,220 but we were able to bring them to life on a scale that was not only so much 562 00:27:19,220 --> 00:27:21,320 fun but so much more visually engaging. 563 00:27:21,320 --> 00:27:23,870 We hoped for students otherwise plopped in their seat 564 00:27:23,870 --> 00:27:26,430 all day long that had traditionally been possible. 565 00:27:26,430 --> 00:27:28,730 And you might expect the obvious kinds of feedback 566 00:27:28,730 --> 00:27:31,640 they were fun from some students, they helped students understand, 567 00:27:31,640 --> 00:27:33,590 some students cautioned they were unnecessary, 568 00:27:33,590 --> 00:27:37,430 suffice it to say these theatrics took more time than you or I might normally 569 00:27:37,430 --> 00:27:39,890 spend or choose to spend on some topic. 570 00:27:39,890 --> 00:27:43,880 But the visuals, and then 600 plus other comments 571 00:27:43,880 --> 00:27:45,830 were sort of themed around this. 572 00:27:45,830 --> 00:27:48,860 And so my own takeaways from this one year in particular 573 00:27:48,860 --> 00:27:51,650 was truly this first: practice, practice, practice, 574 00:27:51,650 --> 00:27:54,142 not a luxury most of us had at the time. 575 00:27:54,142 --> 00:27:55,850 But the fact that I and Margot and others 576 00:27:55,850 --> 00:27:57,230 had already been teaching for Exec. 577 00:27:57,230 --> 00:27:57,730 Ed. 578 00:27:57,730 --> 00:28:00,920 and had been using Zoom and other forms was so enabling, certainly. 579 00:28:00,920 --> 00:28:03,770 And that too was a privilege to have had going into this 580 00:28:03,770 --> 00:28:05,690 when so much else was going on too. 581 00:28:05,690 --> 00:28:09,140 As a sort of small tip on Zoom, just standing up, do I find at least, 582 00:28:09,140 --> 00:28:12,380 this helps me feel like and bring to bear sort of the energy 583 00:28:12,380 --> 00:28:14,790 that I might have had in a more traditional class. 584 00:28:14,790 --> 00:28:17,540 The interfaces that we're all using now, including this tool here, 585 00:28:17,540 --> 00:28:18,230 they're clunky. 586 00:28:18,230 --> 00:28:20,720 And some of our own frustrations early on with stupid 587 00:28:20,720 --> 00:28:24,110 Windows disappearing and having to click on buttons over here and the like. 588 00:28:24,110 --> 00:28:27,530 The tools aren't really optimized for us teachers, I dare say yet, 589 00:28:27,530 --> 00:28:30,110 but thanks to APIs and the like is that changing. 590 00:28:30,110 --> 00:28:32,600 The chat window, funny enough, was game changing. 591 00:28:32,600 --> 00:28:34,010 It's simplistic as it is. 592 00:28:34,010 --> 00:28:36,800 The fact that it was always right there next to the video feed 593 00:28:36,800 --> 00:28:40,790 was an exponential increase for us in the amount of Q&A and student 594 00:28:40,790 --> 00:28:44,150 asynchronous or really synchronous participation electronically 595 00:28:44,150 --> 00:28:46,970 even though for many years have we tried slack and other tools 596 00:28:46,970 --> 00:28:48,420 during live lecture. 597 00:28:48,420 --> 00:28:51,560 We tried bringing to life virtual meals to bring back 598 00:28:51,560 --> 00:28:53,180 some of that community and intimacy. 599 00:28:53,180 --> 00:28:54,290 For us, that didn't work. 600 00:28:54,290 --> 00:28:56,990 Students sort of phased out of those pretty quickly. 601 00:28:56,990 --> 00:28:59,630 And much like, I think, all of us have experienced 602 00:28:59,630 --> 00:29:01,280 just enough cameras were on. 603 00:29:01,280 --> 00:29:03,200 And so it was actually kind of a struggle 604 00:29:03,200 --> 00:29:05,630 to make sure we were balancing the Q&A and audience 605 00:29:05,630 --> 00:29:09,200 participation among as many students as we could 606 00:29:09,200 --> 00:29:10,820 who were comfortable participating. 607 00:29:10,820 --> 00:29:14,180 And then more playfully, don't make the same mistake I did here, 608 00:29:14,180 --> 00:29:15,890 building linked lists out of wood. 609 00:29:15,890 --> 00:29:19,727 And the last remark I'd make is again, this evolution of what 610 00:29:19,727 --> 00:29:21,560 we've done for the past several years, we've 611 00:29:21,560 --> 00:29:24,060 had this longstanding collaboration too with Yale University 612 00:29:24,060 --> 00:29:28,220 where we have a few hundred students in New Haven taking this same class, CS50. 613 00:29:28,220 --> 00:29:30,960 Where they have their own sections and office hours of the like. 614 00:29:30,960 --> 00:29:34,830 But all of the content is created and streamed from one place. 615 00:29:34,830 --> 00:29:37,027 And I think that too has really gotten us here 616 00:29:37,027 --> 00:29:39,110 and our colleagues in New Haven thinking about how 617 00:29:39,110 --> 00:29:42,988 we can all lean on each other all the more, especially in healthy times. 618 00:29:42,988 --> 00:29:45,530 So that if we are investing this much time, this much talent, 619 00:29:45,530 --> 00:29:48,050 this much resources in classes, perhaps we 620 00:29:48,050 --> 00:29:51,260 can sort of amortize that cost over multiple universities, 621 00:29:51,260 --> 00:29:53,540 multiple demographics, as opposed to reinventing 622 00:29:53,540 --> 00:29:58,300 the wheel each and every term as we too here long have. 623 00:29:58,300 --> 00:29:59,000