1 00:00:00,000 --> 00:00:00,932 2 00:00:00,932 --> 00:00:02,720 DAVID MALAN: Why, hello, world. 3 00:00:02,720 --> 00:00:05,632 And hello to Vladimir, who's kindly holding our cameras today. 4 00:00:05,632 --> 00:00:06,590 My name is David Malan. 5 00:00:06,590 --> 00:00:10,010 I teach CS50, which is taught, traditionally, in Sanders Theatre, 6 00:00:10,010 --> 00:00:13,350 in a building called Memorial Hall, on Harvard's campus, here in Cambridge, 7 00:00:13,350 --> 00:00:14,120 Massachusetts . 8 00:00:14,120 --> 00:00:16,940 Wonderfully, today, our friends who run Memorial Hall 9 00:00:16,940 --> 00:00:19,340 have led us into the attic, so we can explore 10 00:00:19,340 --> 00:00:22,392 the upper boundaries of the building and even step out onto the roof. 11 00:00:22,392 --> 00:00:25,100 So we thought we'd give you a little bit of a tour along the way. 12 00:00:25,100 --> 00:00:26,060 Come on in. 13 00:00:26,060 --> 00:00:30,110 14 00:00:30,110 --> 00:00:34,130 And watch your head, as we go into one of the inner attics of the building 15 00:00:34,130 --> 00:00:35,360 here. 16 00:00:35,360 --> 00:00:40,670 Memorial Hall was built in the 1870s, so quite a bit of time ago. 17 00:00:40,670 --> 00:00:42,560 And what you'll see in here is not only a lot 18 00:00:42,560 --> 00:00:46,160 of the original brickwork, but also woodwork and then, more modernly, 19 00:00:46,160 --> 00:00:49,220 a lot of the HVAC or air conditioning and heat 20 00:00:49,220 --> 00:00:52,370 that now keeps folks toasty and cool in Sanders Theatre 21 00:00:52,370 --> 00:00:54,870 and in the other spaces downstairs. 22 00:00:54,870 --> 00:00:58,550 If you've ever watched the movie National Treasure with Nicolas Cage, 23 00:00:58,550 --> 00:01:01,010 it feels a little bit like that right now. 24 00:01:01,010 --> 00:01:06,810 25 00:01:06,810 --> 00:01:09,110 So you'll notice here an angled roof. 26 00:01:09,110 --> 00:01:12,770 We're roughly over Sanders Theatre, itself, which is downstairs. 27 00:01:12,770 --> 00:01:14,390 If we take a look at-- 28 00:01:14,390 --> 00:01:16,370 over the edge of the railing here, you'll 29 00:01:16,370 --> 00:01:20,330 see some of the top roofing of Sanders Theatre, itself, which you probably 30 00:01:20,330 --> 00:01:22,010 haven't had occasion to look up at. 31 00:01:22,010 --> 00:01:27,300 But here we are in the bowels of this building, almost 150-plus years later. 32 00:01:27,300 --> 00:01:31,610 Besides Sanders Theatre, inside of this same building, Memorial Hall, 33 00:01:31,610 --> 00:01:33,770 is a much larger space, if you can believe it, 34 00:01:33,770 --> 00:01:36,020 known nowadays as Annenberg Hall. 35 00:01:36,020 --> 00:01:38,240 Years ago, it was called Alumni Hall. 36 00:01:38,240 --> 00:01:41,810 And it was used, for some time, for examinations 37 00:01:41,810 --> 00:01:43,520 and for other large gatherings. 38 00:01:43,520 --> 00:01:47,540 But most recently, as of the late 1990s, it actually 39 00:01:47,540 --> 00:01:49,760 became home to the first-year dining hall, 40 00:01:49,760 --> 00:01:52,400 where freshmen eat breakfast, lunch, and dinner. 41 00:01:52,400 --> 00:01:55,580 In fact, I was class of 1999. 42 00:01:55,580 --> 00:01:59,000 And my class had the distinction of being the very first class 43 00:01:59,000 --> 00:02:02,510 to eat in the modernized version of Annenberg Hall with our meals. 44 00:02:02,510 --> 00:02:07,530 It was in the spring of 1996, that that part of the building opened. 45 00:02:07,530 --> 00:02:08,504 Come on down this way. 46 00:02:08,504 --> 00:02:15,030 47 00:02:15,030 --> 00:02:17,730 Now, in here, you'll see quite a bit of mechanical work. 48 00:02:17,730 --> 00:02:20,670 And if Vlad points the camera up, you'll see the sheer height 49 00:02:20,670 --> 00:02:22,350 of this part of the building. 50 00:02:22,350 --> 00:02:25,950 Much of what's in here is not only the original bricks and the original wood, 51 00:02:25,950 --> 00:02:28,920 but also, as you can see, a lot of noise and a lot of metal 52 00:02:28,920 --> 00:02:32,220 that keeps the building cooled and heated nowadays. 53 00:02:32,220 --> 00:02:35,940 Back in the day, though, there was actually a very large clock tower 54 00:02:35,940 --> 00:02:37,290 in the tower of the building. 55 00:02:37,290 --> 00:02:38,940 And this is before my time. 56 00:02:38,940 --> 00:02:43,620 But supposedly, at one point, the clapper that hits the side of a bell 57 00:02:43,620 --> 00:02:45,510 disappeared at one point. 58 00:02:45,510 --> 00:02:47,700 And it was suspected that students from Yale 59 00:02:47,700 --> 00:02:50,640 University, our rivals in New Haven, Connecticut, 60 00:02:50,640 --> 00:02:52,350 might have absconded with it. 61 00:02:52,350 --> 00:02:54,060 It was never actually found. 62 00:02:54,060 --> 00:02:56,400 But to this day, it's suspected, apparently, 63 00:02:56,400 --> 00:02:59,340 that it was in retaliation for Harvard students, back in the day, 64 00:02:59,340 --> 00:03:03,190 having stolen Handsome Dan or Yale's mascot at the time. 65 00:03:03,190 --> 00:03:04,230 Let's go up further. 66 00:03:04,230 --> 00:03:13,380 67 00:03:13,380 --> 00:03:16,440 Now, this is the stairwell that's going to feel even more like National 68 00:03:16,440 --> 00:03:19,650 Treasure, particularly that part of the movie where the stairs all 69 00:03:19,650 --> 00:03:21,130 fall apart, frankly. 70 00:03:21,130 --> 00:03:23,940 So we're going to hold onto the railing here and watch our heads. 71 00:03:23,940 --> 00:03:27,960 But we're going to go up even higher and see if we can't get up onto the roof. 72 00:03:27,960 --> 00:03:35,270 73 00:03:35,270 --> 00:03:38,135 Notice the very large archway here that I'm going to duck under. 74 00:03:38,135 --> 00:03:43,620 75 00:03:43,620 --> 00:03:45,720 You'll notice, along the right hand wall here, 76 00:03:45,720 --> 00:03:49,870 some metal supports that are keeping everything tucked in place, 77 00:03:49,870 --> 00:03:52,770 as well as some more recent, more modern lighting. 78 00:03:52,770 --> 00:03:56,460 But then, to my left, is all of the HVAC, all of the heating, 79 00:03:56,460 --> 00:03:59,970 all of the cooling that they crammed in here years ago, 80 00:03:59,970 --> 00:04:02,970 when the building was modernized somewhat. 81 00:04:02,970 --> 00:04:05,640 The building, itself, was actually built as a memorial 82 00:04:05,640 --> 00:04:09,242 to those who died in the Civil War in the United States. 83 00:04:09,242 --> 00:04:10,950 And you can actually see in what's called 84 00:04:10,950 --> 00:04:13,800 the "transept" in the building a proper memorial 85 00:04:13,800 --> 00:04:17,160 whereby there are names of past soldiers and Harvard students, and faculty, 86 00:04:17,160 --> 00:04:20,100 and staff who were in the Civil War. 87 00:04:20,100 --> 00:04:22,680 Let's go ahead and step outside now, if we can. 88 00:04:22,680 --> 00:04:28,200 89 00:04:28,200 --> 00:04:32,220 And here we have Cambridge, Massachusetts' and our old friend, 90 00:04:32,220 --> 00:04:33,660 CS50'S own Carter Zenke. 91 00:04:33,660 --> 00:04:34,410 CARTER ZENKE: Hey. 92 00:04:34,410 --> 00:04:36,960 DAVID MALAN: Many thanks to the team of Memorial Hall, who 93 00:04:36,960 --> 00:04:39,600 kindly let us pop up here today. 94 00:04:39,600 --> 00:04:41,850 And what you'll see now is a whole bunch of buildings, 95 00:04:41,850 --> 00:04:43,080 some Harvard, some Cambridge. 96 00:04:43,080 --> 00:04:45,780 This tall building over there is William James Hall, which 97 00:04:45,780 --> 00:04:47,550 is essentially the psychology building. 98 00:04:47,550 --> 00:04:49,470 Back in my day, in fact, I would volunteer 99 00:04:49,470 --> 00:04:52,170 for a bunch of psychology experiments, for better or for worse. 100 00:04:52,170 --> 00:04:55,830 They would pay you 20 US dollars to participate for an hour or two. 101 00:04:55,830 --> 00:04:58,020 And you would eventually, if at all, find out 102 00:04:58,020 --> 00:05:00,780 what it had just participated in. 103 00:05:00,780 --> 00:05:04,320 Over there, to the right, is more of Cambridge and, off to the distance, 104 00:05:04,320 --> 00:05:06,940 Boston, some of the taller buildings there. 105 00:05:06,940 --> 00:05:12,090 Boston's the larger city that Cambridge is adjacent to. 106 00:05:12,090 --> 00:05:14,700 Carter, pardon us, as we finished the tour up here. 107 00:05:14,700 --> 00:05:17,140 And to the right is even more of Harvard. 108 00:05:17,140 --> 00:05:21,750 So down here is the edge of Harvard Yard, where a lot of dormitories are, 109 00:05:21,750 --> 00:05:24,900 where the students live, where the large library called 110 00:05:24,900 --> 00:05:28,200 Widener Library is, Memorial Church is. 111 00:05:28,200 --> 00:05:30,480 And you'll see now just one of the towers here 112 00:05:30,480 --> 00:05:33,540 that was recently renovated of Memorial Hall 113 00:05:33,540 --> 00:05:36,940 and then Memorial Church is slightly there, off into the distance. 114 00:05:36,940 --> 00:05:41,190 But if we pan all the way up to the very top of Memorial Hall, which 115 00:05:41,190 --> 00:05:45,360 we won't climb up to today since we have frightening memories of having done 116 00:05:45,360 --> 00:05:47,700 this in the past, but up there, you can see, 117 00:05:47,700 --> 00:05:49,800 actually, a tower that was built on top of all 118 00:05:49,800 --> 00:05:52,800 of the brickwork of the building, including some Ghostbuster-style 119 00:05:52,800 --> 00:05:54,660 gargoyles on the left and right. 120 00:05:54,660 --> 00:05:58,740 And that tower actually burned down in the 1950s. 121 00:05:58,740 --> 00:06:01,350 And, in fact, on CS50's YouTube channel, we actually 122 00:06:01,350 --> 00:06:04,980 digitized some years ago a footage of the tower burning. 123 00:06:04,980 --> 00:06:07,650 No one, thankfully, was hurt, but a passerby at the time, 124 00:06:07,650 --> 00:06:10,020 who had a very old school camcorder at the time, 125 00:06:10,020 --> 00:06:11,890 actually captured some of the footage. 126 00:06:11,890 --> 00:06:14,350 But it was high enough up on the building's height 127 00:06:14,350 --> 00:06:18,020 that the local fire departments-- their hoses couldn't really reach that high. 128 00:06:18,020 --> 00:06:21,003 And so, unfortunately, the tower itself, the wooden tower, burned. 129 00:06:21,003 --> 00:06:23,170 But a lot of the brickwork, of course, here remains. 130 00:06:23,170 --> 00:06:26,140 And, in fact, it was also coincidentally in my day as an undergrad 131 00:06:26,140 --> 00:06:28,870 that they raised money to rebuild that tower. 132 00:06:28,870 --> 00:06:33,130 So I believe it was in 1998 or so, late 1990s, 133 00:06:33,130 --> 00:06:39,220 that it was reconstructed to look like it would have some 150 years ago. 134 00:06:39,220 --> 00:06:41,440 Well, that, then, is Memorial Hall. 135 00:06:41,440 --> 00:06:44,500 And this, then, is CS50 and, of course, CS50's own Carter Zenke. 136 00:06:44,500 --> 00:06:46,000 CARTER ZENKE: Fancy seeing you here. 137 00:06:46,000 --> 00:06:46,833 DAVID MALAN: Indeed. 138 00:06:46,833 --> 00:06:49,840 What a pleasure to bump into you up here. 139 00:06:49,840 --> 00:06:53,020 Lad's going to very carefully sit down on the edge of the building here, 140 00:06:53,020 --> 00:06:55,690 and we thought we'd, for fun today, with our friend Max, 141 00:06:55,690 --> 00:06:57,730 hold some of CS50's office hours, if only 142 00:06:57,730 --> 00:06:59,950 to make it feel all the more like we are all here 143 00:06:59,950 --> 00:07:02,193 at Harvard, albeit an unusual spot. 144 00:07:02,193 --> 00:07:05,110 This is not the kind of place that people can very easily sneak up to. 145 00:07:05,110 --> 00:07:07,510 So, again, we're grateful to our friends in the building 146 00:07:07,510 --> 00:07:09,250 for letting us pop up here. 147 00:07:09,250 --> 00:07:10,060 CARTER ZENKE: It's getting a little cold. 148 00:07:10,060 --> 00:07:10,500 Should we ask them-- 149 00:07:10,500 --> 00:07:13,570 DAVID MALAN: Yes, why don't we dive right in and then head back up. 150 00:07:13,570 --> 00:07:15,430 CARTER ZENKE: All right, one of my questions 151 00:07:15,430 --> 00:07:19,520 for you is how long has CS50 been taught in Sanders Theater? 152 00:07:19,520 --> 00:07:23,740 DAVID MALAN: CS50 has been taught in Sanders Theater since 2008. 153 00:07:23,740 --> 00:07:25,360 It was the second year I taught it. 154 00:07:25,360 --> 00:07:27,710 In 2007, the very first year I taught it, 155 00:07:27,710 --> 00:07:31,240 it was taught in a building called Sever Hall, which is back over that way. 156 00:07:31,240 --> 00:07:34,910 We quickly outgrew the space, and so we graduated, if you will, 157 00:07:34,910 --> 00:07:35,950 to Sanders Theater. 158 00:07:35,950 --> 00:07:36,880 CARTER ZENKE: And do you know how many students 159 00:07:36,880 --> 00:07:38,440 can actually sit in Sanders Theater? 160 00:07:38,440 --> 00:07:41,357 DAVID MALAN: It's about 1,000 seats, which we've never actually needed 161 00:07:41,357 --> 00:07:44,450 ourselves, but for some of the very largest events on campus, 162 00:07:44,450 --> 00:07:47,440 particularly some of the a cappella or musical performances, 163 00:07:47,440 --> 00:07:51,040 large gatherings of students, faculty, and staff, it can certainly be filled. 164 00:07:51,040 --> 00:07:51,430 CARTER ZENKE: Yeah, I know. 165 00:07:51,430 --> 00:07:53,740 When I first saw it, I was very surprised at how small 166 00:07:53,740 --> 00:07:56,150 it feels, but also how many students can actually sit in there at one time. 167 00:07:56,150 --> 00:07:56,800 So it's pretty cool that way. 168 00:07:56,800 --> 00:07:57,230 DAVID MALAN: Indeed. 169 00:07:57,230 --> 00:07:58,000 It's quite the experience. 170 00:07:58,000 --> 00:08:00,042 If you ever have a chance to travel to Cambridge, 171 00:08:00,042 --> 00:08:03,028 whether to visit Harvard or Boston or CS50 specifically, 172 00:08:03,028 --> 00:08:04,570 you should definitely try to come by. 173 00:08:04,570 --> 00:08:04,990 CARTER ZENKE: Yeah. 174 00:08:04,990 --> 00:08:07,210 A few more questions-- we're going to actually ask them in the YouTube chat 175 00:08:07,210 --> 00:08:07,390 here. 176 00:08:07,390 --> 00:08:08,500 I'll be able to ask them to David. 177 00:08:08,500 --> 00:08:09,417 I'll take some myself. 178 00:08:09,417 --> 00:08:12,537 And we'll go back and forth as you talk through your questions live here. 179 00:08:12,537 --> 00:08:14,370 One question for you, though, David, is what 180 00:08:14,370 --> 00:08:15,840 is your favorite programming language? 181 00:08:15,840 --> 00:08:18,150 DAVID MALAN: What is my favorite programming language? 182 00:08:18,150 --> 00:08:21,150 You know, it's funny you should ask because I got asked this just two 183 00:08:21,150 --> 00:08:22,650 days ago down at Yale University. 184 00:08:22,650 --> 00:08:25,080 And a student of ours there asked-- 185 00:08:25,080 --> 00:08:27,390 and my answer then, as it would be now, is 186 00:08:27,390 --> 00:08:30,600 that I don't know if I really have a favorite nowadays. 187 00:08:30,600 --> 00:08:33,659 I, and I think we, see CS50 use Python for almost everything 188 00:08:33,659 --> 00:08:36,030 nowadays, if only to standardize among language 189 00:08:36,030 --> 00:08:37,950 that's easy to onboard people to. 190 00:08:37,950 --> 00:08:40,890 I went through a phase years ago of really loving JavaScript-- 191 00:08:40,890 --> 00:08:42,809 not actually the features, we tend to use 192 00:08:42,809 --> 00:08:45,630 in CS50 which are very GUI or DOM-centric, 193 00:08:45,630 --> 00:08:49,770 but rather the asynchronous stuff, and the single threading stuff, 194 00:08:49,770 --> 00:08:51,540 sort of slightly fancier features that you 195 00:08:51,540 --> 00:08:54,780 would get to if you studied more on your own or in a higher level class. 196 00:08:54,780 --> 00:08:56,170 CARTER ZENKE: Yeah, I think I'm right there with you. 197 00:08:56,170 --> 00:08:57,370 I'm kind of ambivalent right now. 198 00:08:57,370 --> 00:08:58,950 But I often reach for things like Python just because it's 199 00:08:58,950 --> 00:09:00,060 so easy to get started with. 200 00:09:00,060 --> 00:09:00,750 DAVID MALAN: Yeah, agreed. 201 00:09:00,750 --> 00:09:02,940 And I actually do, intellectually, really like C. 202 00:09:02,940 --> 00:09:05,520 It's not a language I would really ever reach 203 00:09:05,520 --> 00:09:08,473 for unless I had a very specific, specialized application, 204 00:09:08,473 --> 00:09:11,640 but I actually really enjoy because of the control and the low-level details 205 00:09:11,640 --> 00:09:12,450 that it offers you. 206 00:09:12,450 --> 00:09:13,242 CARTER ZENKE: Yeah. 207 00:09:13,242 --> 00:09:15,250 I know we start with C in CS50, and it was 208 00:09:15,250 --> 00:09:18,070 kind of hard to design problem sets around that language. 209 00:09:18,070 --> 00:09:20,320 But do you have a favorite that is part of CS50 210 00:09:20,320 --> 00:09:22,235 for that first part of the course in C? 211 00:09:22,235 --> 00:09:24,610 DAVID MALAN: I've always really loved the Recover problem 212 00:09:24,610 --> 00:09:28,270 set, which is one in which we give students a forensic image of sorts 213 00:09:28,270 --> 00:09:31,215 of photographs that have been deleted or corrupted on a memory card, 214 00:09:31,215 --> 00:09:33,340 and then they have to write C code to recover them. 215 00:09:33,340 --> 00:09:35,260 That was actually inspired by real life. 216 00:09:35,260 --> 00:09:40,180 A former CS50 team member and friend of mine, Dan Armendariz, he was an avid 217 00:09:40,180 --> 00:09:41,515 and is an avid photographer. 218 00:09:41,515 --> 00:09:43,390 And he actually had one of his memory cards-- 219 00:09:43,390 --> 00:09:44,473 I think it corrupted once. 220 00:09:44,473 --> 00:09:46,660 So he still had it physically, but for some reason, 221 00:09:46,660 --> 00:09:47,990 his computer couldn't read it. 222 00:09:47,990 --> 00:09:51,400 And so at the time, I think I poked around online, read up on some C code 223 00:09:51,400 --> 00:09:53,890 that we could actually use to recover the photos, 224 00:09:53,890 --> 00:09:55,960 and we adapted it a little bit ourselves, ran it, 225 00:09:55,960 --> 00:09:58,180 and I think we got, like, 98% of his photos. 226 00:09:58,180 --> 00:10:02,355 And so that was actually the inspiration for what is now problem set 4, 227 00:10:02,355 --> 00:10:03,730 inspired by a real-world problem. 228 00:10:03,730 --> 00:10:07,990 And we've actually had actual CS50 alumni email us a couple of years 229 00:10:07,990 --> 00:10:10,610 after taking the class to say that they, too, had actually 230 00:10:10,610 --> 00:10:13,652 use their C code to recover photos that got deleted or corrupted somehow. 231 00:10:13,652 --> 00:10:16,402 CARTER ZENKE: Yeah, that's my favorite week, I think, in the class 232 00:10:16,402 --> 00:10:19,190 because you can do so much with the memory part of C. Getting 233 00:10:19,190 --> 00:10:21,680 to change the volume of files I found really fascinating because I was so 234 00:10:21,680 --> 00:10:23,240 into electronic music when I was younger, 235 00:10:23,240 --> 00:10:26,300 so seeing how I could actually modify it using C was really cool for me. 236 00:10:26,300 --> 00:10:29,267 DAVID MALAN: Yeah, I will admit, though, I kind of love Mario too, 237 00:10:29,267 --> 00:10:31,100 even though the problem itself I don't think 238 00:10:31,100 --> 00:10:33,380 is nearly as fun as something like Recover. 239 00:10:33,380 --> 00:10:35,503 It's sort of become representative of CS50 240 00:10:35,503 --> 00:10:37,670 because it's been there it's among the problems that 241 00:10:37,670 --> 00:10:42,472 have been there since the very first year that I taught CS50, so in 2007. 242 00:10:42,472 --> 00:10:44,180 And even though it's just ASCII art, it's 243 00:10:44,180 --> 00:10:47,270 sort of a nice way to bring the gaming world, for instance, 244 00:10:47,270 --> 00:10:48,270 and programming to life. 245 00:10:48,270 --> 00:10:51,312 CARTER ZENKE: Yeah, and when students start programming in CS50 nowadays, 246 00:10:51,312 --> 00:10:53,420 they're using Visual Studio Code to program. 247 00:10:53,420 --> 00:10:56,033 Do you have a favorite IDE you've used for the past time? 248 00:10:56,033 --> 00:10:57,200 DAVID MALAN: No, not really. 249 00:10:57,200 --> 00:11:01,130 In fact, don't tell anyone, but I rarely use VS Code myself. 250 00:11:01,130 --> 00:11:03,410 I actually tend to go old school in a terminal window, 251 00:11:03,410 --> 00:11:07,820 just open up Vim or Vi, which is an older command line 252 00:11:07,820 --> 00:11:10,280 but, nonetheless, semigraphical program. 253 00:11:10,280 --> 00:11:12,495 That said, I am starting to get on board with VS Code 254 00:11:12,495 --> 00:11:14,370 because there's just so many useful features. 255 00:11:14,370 --> 00:11:15,078 There's plug-ins. 256 00:11:15,078 --> 00:11:16,870 There's the AI functionality nowadays. 257 00:11:16,870 --> 00:11:20,070 So if I had to pick an IDE, it would absolutely be VS Code. 258 00:11:20,070 --> 00:11:23,068 But I still tend, super quickly, to just open Vim in a terminal. 259 00:11:23,068 --> 00:11:25,110 CARTER ZENKE: It feels very hacker like to just-- 260 00:11:25,110 --> 00:11:25,590 DAVID MALAN: Thank you. 261 00:11:25,590 --> 00:11:26,040 Thank you. 262 00:11:26,040 --> 00:11:28,860 CARTER ZENKE: And aren't there so many like keyboard shortcuts for that like? 263 00:11:28,860 --> 00:11:31,170 What does it take to learn how to do Vi or Vim? 264 00:11:31,170 --> 00:11:33,295 DAVID MALAN: You know, it's not actually that easy, 265 00:11:33,295 --> 00:11:35,310 though it is easier than another program that I 266 00:11:35,310 --> 00:11:38,460 daresay computer science-type people like even more, 267 00:11:38,460 --> 00:11:40,710 at least in some circles, called emacs. 268 00:11:40,710 --> 00:11:42,960 But Vim was actually-- or Vi at the time-- 269 00:11:42,960 --> 00:11:48,642 was the program that we used in CS50 when I took it in 1996. 270 00:11:48,642 --> 00:11:50,850 And I definitely learned a whole bunch of keystrokes, 271 00:11:50,850 --> 00:11:53,820 but honestly, I don't think I've learned new ones since, really, then. 272 00:11:53,820 --> 00:11:57,060 And some friends of mine and former TFs are surely better at Vim 273 00:11:57,060 --> 00:11:57,690 than even I am. 274 00:11:57,690 --> 00:12:01,320 For some reason, I sort of got fixated in time there. 275 00:12:01,320 --> 00:12:03,930 But you can actually use the key binding, so-to-speak, 276 00:12:03,930 --> 00:12:07,800 as they're called of Vim, of emacs, in VS Code by poking around your settings 277 00:12:07,800 --> 00:12:09,232 or using plug-ins to mimic them. 278 00:12:09,232 --> 00:12:11,190 So you can kind of get the best of both worlds. 279 00:12:11,190 --> 00:12:13,920 But also fun fact-- don't tell anyone this either-- 280 00:12:13,920 --> 00:12:18,390 when a student in office hours once years ago was actually themselves 281 00:12:18,390 --> 00:12:21,548 more comfortably using emacs, I took over their keyboard 282 00:12:21,548 --> 00:12:23,340 to help with something and, I swear to god, 283 00:12:23,340 --> 00:12:25,920 I couldn't figure out how to quit out of emacs. 284 00:12:25,920 --> 00:12:28,200 And I had to ask them can you quit out of emacs 285 00:12:28,200 --> 00:12:30,358 because it's some magical incantation that I'm 286 00:12:30,358 --> 00:12:31,650 sure is not actually very hard. 287 00:12:31,650 --> 00:12:33,120 But it was a little embarrassing. 288 00:12:33,120 --> 00:12:35,010 CARTER ZENKE: Only if you've memorized it would you know. 289 00:12:35,010 --> 00:12:36,490 DAVID MALAN: Yeah, exactly. 290 00:12:36,490 --> 00:12:38,670 CARTER ZENKE: OK, switching gears a little bit, 291 00:12:38,670 --> 00:12:40,540 there's a lot going on with AI these days. 292 00:12:40,540 --> 00:12:42,910 And so have we made any updates to the AI course, 293 00:12:42,910 --> 00:12:44,910 or are we planning any updates to the AI course? 294 00:12:44,910 --> 00:12:47,460 DAVID MALAN: Yeah, in fact, so Brian Yu's course on AI 295 00:12:47,460 --> 00:12:50,100 was updated just a couple of months ago, in fact, 296 00:12:50,100 --> 00:12:53,310 to update the very last of the lectures to focus-- that focus is already 297 00:12:53,310 --> 00:12:58,050 on languages, but to focus all the more now on aspects of large language models 298 00:12:58,050 --> 00:13:02,220 and, in turn, the GPT-like technologies that are being discussed in all corners 299 00:13:02,220 --> 00:13:03,060 nowadays. 300 00:13:03,060 --> 00:13:06,960 So even if you have finished Brian's CS50 AI class already, you're welcome, 301 00:13:06,960 --> 00:13:11,640 just for fun, to go back into it at cs50.edx.org/ai, 302 00:13:11,640 --> 00:13:15,180 and even just pull up the very last new lecture if you want to just absorb some 303 00:13:15,180 --> 00:13:18,547 of the new material, and even the project from that one week as well. 304 00:13:18,547 --> 00:13:20,880 CARTER ZENKE: Yeah, other courses people should consider 305 00:13:20,880 --> 00:13:22,885 taking as they finish CS50x, then? 306 00:13:22,885 --> 00:13:25,260 DAVID MALAN: In general, not just necessarily AI-centric, 307 00:13:25,260 --> 00:13:26,760 but a common go-to-- 308 00:13:26,760 --> 00:13:29,550 and thanks for taking this up is CS50's introduction 309 00:13:29,550 --> 00:13:31,948 to Databases with SQL, which I think you actually teach. 310 00:13:31,948 --> 00:13:34,740 CARTER ZENKE: Yeah, got to film that one in this past spring, which 311 00:13:34,740 --> 00:13:36,282 is now online on EdX as of October 1. 312 00:13:36,282 --> 00:13:38,573 DAVID MALAN: And what do students get out of that class 313 00:13:38,573 --> 00:13:41,880 that they wouldn't get out of the week or so of CS50 in which we look at SQL? 314 00:13:41,880 --> 00:13:44,223 CARTER ZENKE: Yeah, so we take a week for SQL in CS50, 315 00:13:44,223 --> 00:13:46,140 but if you want to learn much more about that, 316 00:13:46,140 --> 00:13:48,990 not just how to query and do basic database design, 317 00:13:48,990 --> 00:13:51,270 but how to actually design full-fledged databases, 318 00:13:51,270 --> 00:13:53,700 how to answer more questions with data, I really 319 00:13:53,700 --> 00:13:55,200 encourage you to take the SQL class. 320 00:13:55,200 --> 00:13:58,367 DAVID MALAN: Yeah, and that's true of some of CS50's other follow-on classes 321 00:13:58,367 --> 00:13:59,910 too, like Brian's Web Class, a.k.a. 322 00:13:59,910 --> 00:14:04,110 CS50W, goes more into depth as to what you can do with web programming. 323 00:14:04,110 --> 00:14:07,830 It really does pick up where CS50's week 9 or so leaves off. 324 00:14:07,830 --> 00:14:10,860 Our new class in cybersecurity also draws inspiration 325 00:14:10,860 --> 00:14:13,260 from the cybersecurity CS50x lecture that some of you 326 00:14:13,260 --> 00:14:18,180 might have seen, although I should note that CS50x 2024, which will go online 327 00:14:18,180 --> 00:14:23,670 in January of 2024, will actually have a short but new lecture 328 00:14:23,670 --> 00:14:26,280 on artificial intelligence, which is actually inspired by, 329 00:14:26,280 --> 00:14:28,110 and much of the material was prepared by, 330 00:14:28,110 --> 00:14:32,187 CS50's own Brian, who kindly let us incorporate it into CS50x now itself. 331 00:14:32,187 --> 00:14:34,020 CARTER ZENKE: Yeah, and when you're planning 332 00:14:34,020 --> 00:14:36,600 lectures for either CS50 or another course, 333 00:14:36,600 --> 00:14:39,570 how do you plan to make them engaging in the way that you do? 334 00:14:39,570 --> 00:14:41,220 What goes into that? 335 00:14:41,220 --> 00:14:42,930 DAVID MALAN: Oh, thank you. 336 00:14:42,930 --> 00:14:46,687 I mean, I think I probably tried to imagine what kind of class, 337 00:14:46,687 --> 00:14:49,020 what kind of lecture, what kind of homework assignment I 338 00:14:49,020 --> 00:14:50,520 myself would enjoy. 339 00:14:50,520 --> 00:14:55,530 I'm sort of very worried, always, about the audience being bored. 340 00:14:55,530 --> 00:14:57,300 And so I think anything I, anything we can 341 00:14:57,300 --> 00:15:00,060 do to bring the subject to life, whatever that subject might 342 00:15:00,060 --> 00:15:01,288 be, I do think is compelling. 343 00:15:01,288 --> 00:15:03,330 Otherwise, what's the point of us all being there 344 00:15:03,330 --> 00:15:05,850 if you can just read it in a book or read about it online. 345 00:15:05,850 --> 00:15:08,580 If there's going to be something to be said experientially 346 00:15:08,580 --> 00:15:12,590 about either attending in person or watching live or on-demand afterward, 347 00:15:12,590 --> 00:15:16,710 together, it would be nice to motivate that time spent. 348 00:15:16,710 --> 00:15:20,390 And so there's a sense of theatricality as we've described it in recent years 349 00:15:20,390 --> 00:15:21,572 that I think permeates CS50. 350 00:15:21,572 --> 00:15:24,030 And as for the homework assignments, at the end of the day, 351 00:15:24,030 --> 00:15:26,180 if you really dissect them, you can really take the fun out 352 00:15:26,180 --> 00:15:29,305 of them quickly by just looking at the essence of what each problem set is. 353 00:15:29,305 --> 00:15:32,090 For instance, Mario is really just about loops, like a for loop, 354 00:15:32,090 --> 00:15:33,140 maybe a while loop. 355 00:15:33,140 --> 00:15:35,030 Even the Recover problem set is similarly 356 00:15:35,030 --> 00:15:37,250 about loops and a couple of conditionals. 357 00:15:37,250 --> 00:15:40,620 Now that said, that really does not sound all that inspiring. 358 00:15:40,620 --> 00:15:42,620 And so I think the trick is or the key is 359 00:15:42,620 --> 00:15:47,660 to come up with some packaging, some real-world motivation that actually 360 00:15:47,660 --> 00:15:51,047 makes the tools and the ingredients sort of subservient 361 00:15:51,047 --> 00:15:54,380 to the actual interesting goal, which is like recovering photographs or creating 362 00:15:54,380 --> 00:15:55,945 a pyramid that Mario might jump over. 363 00:15:55,945 --> 00:15:58,820 CARTER ZENKE: I, think to add on, I feel genuinely excited about some 364 00:15:58,820 --> 00:15:59,780 of the material we teach. 365 00:15:59,780 --> 00:16:01,530 I really love it and feel excited about that. 366 00:16:01,530 --> 00:16:03,710 So it's about trying to learn how to channel that to other people 367 00:16:03,710 --> 00:16:05,420 can actually get the same excitement from it too. 368 00:16:05,420 --> 00:16:06,605 DAVID MALAN: Yeah, that's the hope. 369 00:16:06,605 --> 00:16:08,570 Yeah, no, I think some of the SQL classes projects 370 00:16:08,570 --> 00:16:09,903 are exactly in that same spirit. 371 00:16:09,903 --> 00:16:12,870 So if folks do like the world of databases and SQL, 372 00:16:12,870 --> 00:16:15,390 you should dive into those kinds of P sets next. 373 00:16:15,390 --> 00:16:16,830 CARTER ZENKE: Would you want to take a scroll through the questions 374 00:16:16,830 --> 00:16:18,997 and see if there are any you want to take a peek at? 375 00:16:18,997 --> 00:16:21,030 DAVID MALAN: All right, so let's see here. 376 00:16:21,030 --> 00:16:26,430 We have-- oh, you know what my gloves are relatively old 377 00:16:26,430 --> 00:16:29,760 and they've lost that ability to scroll, so I'm going to take them off. 378 00:16:29,760 --> 00:16:31,020 They no longer conduct. 379 00:16:31,020 --> 00:16:32,250 CARTER ZENKE: My hands are getting pretty cold out here-- 380 00:16:32,250 --> 00:16:34,800 DAVID MALAN: Scrolling-- all right, my turn, then, I guess. 381 00:16:34,800 --> 00:16:37,740 All right, so let's see. 382 00:16:37,740 --> 00:16:40,560 So one student here asks, can the courses 383 00:16:40,560 --> 00:16:43,950 be multilanguages, which I'm going to interpret 384 00:16:43,950 --> 00:16:47,520 as meaning you could implement the homeworks in different languages? 385 00:16:47,520 --> 00:16:49,230 CARTER ZENKE: Yeah, so CS50 problems that 386 00:16:49,230 --> 00:16:53,550 is, maybe doing Mario, which is currently in C, perhaps in Python? 387 00:16:53,550 --> 00:16:56,750 Actually, you actually will do that in week-- what is it, 6 of the course, 388 00:16:56,750 --> 00:16:58,500 when you actually learn how to use Python. 389 00:16:58,500 --> 00:17:00,792 You'll go back and implement some of the prior problems 390 00:17:00,792 --> 00:17:02,820 you've done in C now in Python. 391 00:17:02,820 --> 00:17:06,540 I think it is kind of a fun exercise to try one of CS50's problems 392 00:17:06,540 --> 00:17:08,790 in a new language, whether it is one we actually teach 393 00:17:08,790 --> 00:17:10,290 or something brand new for you, just kind 394 00:17:10,290 --> 00:17:11,880 of get a feel for how that language works 395 00:17:11,880 --> 00:17:13,859 and how you could learn the ins and outs of it. 396 00:17:13,859 --> 00:17:15,810 DAVID MALAN: Nice, and for those of you who are just joining, 397 00:17:15,810 --> 00:17:18,240 we are literally here on top of Memorial Hall, which 398 00:17:18,240 --> 00:17:20,640 is the building in which Sanders Theater, is 399 00:17:20,640 --> 00:17:22,172 where CS50 itself is hosted. 400 00:17:22,172 --> 00:17:24,839 So by all means, if you do have questions here in the live chat, 401 00:17:24,839 --> 00:17:28,079 please do feel free to ask them of us before it gets a little too 402 00:17:28,079 --> 00:17:30,300 cold out here. 403 00:17:30,300 --> 00:17:34,410 All right, so I think at the bottom here, in the live chat-- 404 00:17:34,410 --> 00:17:37,820 this actually hasn't moved recently, so I'm wondering if maybe-- 405 00:17:37,820 --> 00:17:41,270 406 00:17:41,270 --> 00:17:43,402 well, let's see, we're going to go off script here. 407 00:17:43,402 --> 00:17:45,860 So Carter, you've been with CS50 for a couple of years now, 408 00:17:45,860 --> 00:17:49,248 but your background is as much in or more in education 409 00:17:49,248 --> 00:17:50,540 than it is in computer science. 410 00:17:50,540 --> 00:17:52,620 Do you want to speak to the path that actually got you here? 411 00:17:52,620 --> 00:17:54,453 CARTER ZENKE: Yeah, so I think the path that 412 00:17:54,453 --> 00:17:58,148 brought me here is a little bit long, but primarily, I 413 00:17:58,148 --> 00:18:00,440 found a lot of excitement in computer science as a kid, 414 00:18:00,440 --> 00:18:02,750 like learning how to make things with computers-- 415 00:18:02,750 --> 00:18:08,048 like how to make music, how to make software, how to make video games, too. 416 00:18:08,048 --> 00:18:10,340 And I always found that my own computer science classes 417 00:18:10,340 --> 00:18:13,460 didn't really touch on how do I get the same excitement I felt 418 00:18:13,460 --> 00:18:15,650 at computer science from this field. 419 00:18:15,650 --> 00:18:17,907 They didn't teach so much programming as much 420 00:18:17,907 --> 00:18:20,990 as they did just kind of typing at a keyboard-- like how do you type well, 421 00:18:20,990 --> 00:18:22,950 how do you use Microsoft Word, and so on. 422 00:18:22,950 --> 00:18:25,670 So I found myself wanting to help share that excitement that I 423 00:18:25,670 --> 00:18:27,470 felt in computer science with others-- 424 00:18:27,470 --> 00:18:31,160 kind of what drew me to learning how to teach, how to engage a classroom, 425 00:18:31,160 --> 00:18:33,008 so that's what brought me here. 426 00:18:33,008 --> 00:18:34,550 DAVID MALAN: Well, we're glad it did. 427 00:18:34,550 --> 00:18:34,850 CARTER ZENKE: Thank you. 428 00:18:34,850 --> 00:18:37,433 DAVID MALAN: We have had a few other questions come in during, 429 00:18:37,433 --> 00:18:41,670 and one of those questions was how do you avoid 430 00:18:41,670 --> 00:18:43,817 taking long breaks while programming. 431 00:18:43,817 --> 00:18:45,900 CARTER ZENKE: How do you avoid taking long breaks? 432 00:18:45,900 --> 00:18:46,770 I actually think-- 433 00:18:46,770 --> 00:18:47,970 I'm going to push back a little bit on that 434 00:18:47,970 --> 00:18:50,050 and say long breaks can sometimes be good for you. 435 00:18:50,050 --> 00:18:52,425 DAVID MALAN: I think it depends because some people are-- 436 00:18:52,425 --> 00:18:55,017 it depends if you mean minutes, hours, or weeks. 437 00:18:55,017 --> 00:18:56,100 CARTER ZENKE: That's true. 438 00:18:56,100 --> 00:19:00,270 So I find it helpful to take a step back from a problem overnight 439 00:19:00,270 --> 00:19:02,700 or even over the course of a single day because I 440 00:19:02,700 --> 00:19:06,000 find I can come back and think about it in a new light. 441 00:19:06,000 --> 00:19:09,000 But I also find it helpful to keep working on the same problem 442 00:19:09,000 --> 00:19:12,390 consistently, so not taking like a week-long break, but like a day break, 443 00:19:12,390 --> 00:19:16,470 and trying to come back to it so I have that same mindset that I had before. 444 00:19:16,470 --> 00:19:17,490 DAVID MALAN: OK, nice. 445 00:19:17,490 --> 00:19:21,420 And someone's asking about how easy C is versus Python. 446 00:19:21,420 --> 00:19:25,320 How would you qualify them in terms of their accessibility? 447 00:19:25,320 --> 00:19:27,870 CARTER ZENKE: I would say it depends on what 448 00:19:27,870 --> 00:19:30,450 you want to do with the language is. 449 00:19:30,450 --> 00:19:35,160 What I like about C is that it's a very kind of small language. 450 00:19:35,160 --> 00:19:38,130 You can really learn all of C, I think, if you wanted to. 451 00:19:38,130 --> 00:19:40,530 Python, on the other hand, is a really big language. 452 00:19:40,530 --> 00:19:43,488 There are so many libraries and packages that it could take you a while 453 00:19:43,488 --> 00:19:45,120 to see all Python can offer you. 454 00:19:45,120 --> 00:19:48,930 So maybe a controversial statement, but I would say maybe, sometimes, 455 00:19:48,930 --> 00:19:52,685 C is often better beginning language to learn because it's so small. 456 00:19:52,685 --> 00:19:55,560 DAVID MALAN: OK, fair, but definitely challenging with aspects of it, 457 00:19:55,560 --> 00:19:57,180 like pointers and memory more generally. 458 00:19:57,180 --> 00:19:58,200 CARTER ZENKE: For sure, yeah. 459 00:19:58,200 --> 00:20:00,450 DAVID MALAN: And Carter, what do you recommend someone 460 00:20:00,450 --> 00:20:03,030 do after completing CS50x? 461 00:20:03,030 --> 00:20:04,740 CARTER ZENKE: I would say-- 462 00:20:04,740 --> 00:20:07,590 so when you complete CS50x, you complete your final project. 463 00:20:07,590 --> 00:20:10,110 And I'd be curious to ask you whether you could take 464 00:20:10,110 --> 00:20:11,820 that final project to the next level. 465 00:20:11,820 --> 00:20:14,040 Would you want to add AI to it? 466 00:20:14,040 --> 00:20:15,587 Would you want to do more databases? 467 00:20:15,587 --> 00:20:17,670 Would you want to think about more secure context? 468 00:20:17,670 --> 00:20:20,253 You could use that to help guide you in your choice of classes 469 00:20:20,253 --> 00:20:21,150 afterwards, perhaps. 470 00:20:21,150 --> 00:20:22,290 DAVID MALAN: OK, nice. 471 00:20:22,290 --> 00:20:25,500 And another student here asks is learning JavaScript worth 472 00:20:25,500 --> 00:20:27,720 it nowadays, particularly for a noob-- 473 00:20:27,720 --> 00:20:31,675 no, sorry, I combined two questions-- specifically for jobs, not for a noob. 474 00:20:31,675 --> 00:20:33,300 The noob was from a different question. 475 00:20:33,300 --> 00:20:34,350 CARTER ZENKE: Specifically for jobs-- 476 00:20:34,350 --> 00:20:35,400 I would certainly say so. 477 00:20:35,400 --> 00:20:37,320 So I think people are still using JavaScript. 478 00:20:37,320 --> 00:20:39,460 It's certainly popular with web development. 479 00:20:39,460 --> 00:20:42,110 So if you're working for a place that works on lots of websites 480 00:20:42,110 --> 00:20:45,360 and trying to build things for the web, it's a good language to learn overall, 481 00:20:45,360 --> 00:20:46,060 I would say. 482 00:20:46,060 --> 00:20:48,630 DAVID MALAN: OK, nice, and do we have courses on web design 483 00:20:48,630 --> 00:20:51,145 with HTML, CSS, and Figma? 484 00:20:51,145 --> 00:20:52,770 CARTER ZENKE: For sure on HTML and CSS. 485 00:20:52,770 --> 00:20:53,790 I don't quite know on Figma. 486 00:20:53,790 --> 00:20:55,620 I don't think Brian touches on that in the web class. 487 00:20:55,620 --> 00:20:56,350 DAVID MALAN: No, we don't. 488 00:20:56,350 --> 00:20:58,690 So this is actually a popular third-party application 489 00:20:58,690 --> 00:21:01,170 now for wireframing things, doing mockups and such. 490 00:21:01,170 --> 00:21:03,810 And fun fact, if you're familiar with Figma-- 491 00:21:03,810 --> 00:21:06,570 no alliteration intended there-- 492 00:21:06,570 --> 00:21:10,980 at Figma now is CS50's own Yuhki Yamashita, 493 00:21:10,980 --> 00:21:13,890 who was one of our former head teaching fellows years ago, 494 00:21:13,890 --> 00:21:18,300 and now is a very high placed executive within Figma 495 00:21:18,300 --> 00:21:23,250 and has always had a talent for artistry and multimedia and design work. 496 00:21:23,250 --> 00:21:26,730 And, in fact, he designed the very first CS50 sweatshirt 497 00:21:26,730 --> 00:21:31,770 and apparel, which was a riff on the Harvard Department of Harvard Athletics 498 00:21:31,770 --> 00:21:32,340 sweatshirt. 499 00:21:32,340 --> 00:21:35,550 And he made one for CS50 itself and so many other things as well. 500 00:21:35,550 --> 00:21:37,800 CARTER ZENKE: How do you think we arrived at this very 501 00:21:37,800 --> 00:21:41,483 basic, simplistic aesthetic in CS50? 502 00:21:41,483 --> 00:21:42,900 DAVID MALAN: In terms of the logo? 503 00:21:42,900 --> 00:21:44,580 CARTER ZENKE: Yeah, like the look of just CS50-- 504 00:21:44,580 --> 00:21:45,360 like that's it. 505 00:21:45,360 --> 00:21:47,027 DAVID MALAN: Yeah, it's a good question. 506 00:21:47,027 --> 00:21:49,620 So CS50's text mark is designed in a font 507 00:21:49,620 --> 00:21:52,560 called Gotham, which is a commercially-available font that you 508 00:21:52,560 --> 00:21:53,730 too can use. 509 00:21:53,730 --> 00:21:57,330 It was inspired in part by being at an impasse. 510 00:21:57,330 --> 00:22:01,800 We couldn't really decide, years ago, if and what we wanted as more of a logo. 511 00:22:01,800 --> 00:22:03,910 And we toyed with lots of different things. 512 00:22:03,910 --> 00:22:06,270 And you see some of the past candidates online. 513 00:22:06,270 --> 00:22:09,000 We considered embracing the cat all the more. 514 00:22:09,000 --> 00:22:12,030 Before there was a duck, there was really a cat that was everywhere. 515 00:22:12,030 --> 00:22:17,312 And nothing really quite felt timeless other than just saying CS50 itself. 516 00:22:17,312 --> 00:22:19,020 We considered stacking the letters, so it 517 00:22:19,020 --> 00:22:21,130 would be CS on top, 50 at the bottom. 518 00:22:21,130 --> 00:22:24,660 But we also wanted it to be readable and pronounceable 519 00:22:24,660 --> 00:22:25,973 in sort of a single breath. 520 00:22:25,973 --> 00:22:28,890 And so that's why it always reads left to right, even though that does 521 00:22:28,890 --> 00:22:30,070 make it a little longer. 522 00:22:30,070 --> 00:22:32,980 And as you can actually see here, it's actually just quite nice. 523 00:22:32,980 --> 00:22:35,460 The font and a medium face, as we typically use it, 524 00:22:35,460 --> 00:22:38,040 really just lends itself to simplicity and elegance 525 00:22:38,040 --> 00:22:39,630 and, hopefully, timelessness. 526 00:22:39,630 --> 00:22:42,000 So for now, I think it works pretty well overall. 527 00:22:42,000 --> 00:22:44,000 CARTER ZENKE: I think it works pretty well, too. 528 00:22:44,000 --> 00:22:46,050 DAVID MALAN: And I want to circle back to AI, 529 00:22:46,050 --> 00:22:49,370 since a student commented that our speaker the other day, 530 00:22:49,370 --> 00:22:51,870 Dr. Matt Welsh, who was a former Harvard faculty member, now 531 00:22:51,870 --> 00:22:55,320 with his own startup, formerly of Google, and some other venues as well, 532 00:22:55,320 --> 00:22:59,790 was fairly negative on the prospects for programming and programmers 533 00:22:59,790 --> 00:23:02,130 because of the advent of AI. 534 00:23:02,130 --> 00:23:06,180 And I wonder if you, and perhaps I in turn, have thoughts in response 535 00:23:06,180 --> 00:23:07,110 to that Tech Talk. 536 00:23:07,110 --> 00:23:09,840 CARTER ZENKE: Yeah, I mean, I think, in general, 537 00:23:09,840 --> 00:23:12,470 it's only good to be able to learn more about computer science, 538 00:23:12,470 --> 00:23:14,220 more about programming so you can actually 539 00:23:14,220 --> 00:23:16,510 learn more about how AI actually works. 540 00:23:16,510 --> 00:23:18,600 And I think, right now, to be able to guide 541 00:23:18,600 --> 00:23:21,558 an AI to do what you want it to do, you need to know about programming. 542 00:23:21,558 --> 00:23:25,660 You need to know what you want it to do in a very concrete, kind of deep sense. 543 00:23:25,660 --> 00:23:28,720 So I think it still worth learning all you can about computer science, 544 00:23:28,720 --> 00:23:30,300 about programming so you can actually guide an AI to do 545 00:23:30,300 --> 00:23:31,778 what you want it to do in the end. 546 00:23:31,778 --> 00:23:32,820 DAVID MALAN: Yeah, I too. 547 00:23:32,820 --> 00:23:36,218 I mean, Matt's title was deliberately meant to be provocative. 548 00:23:36,218 --> 00:23:38,010 And, in fact, I actually found it to be one 549 00:23:38,010 --> 00:23:40,530 of the most interesting talks we ourselves have hosted, 550 00:23:40,530 --> 00:23:44,280 and with friends of ours from industry in some time. 551 00:23:44,280 --> 00:23:47,355 And I think that OneAI is absolutely going to change things. 552 00:23:47,355 --> 00:23:48,480 And I think it has already. 553 00:23:48,480 --> 00:23:51,022 I mean, CS50's own Colton Ogden, who teaches the games class, 554 00:23:51,022 --> 00:23:54,630 for the past couple of years has attested to just how useful he's found 555 00:23:54,630 --> 00:23:58,792 GitHub copilot to be, and easily a productivity boost for him of 20%-30%. 556 00:23:58,792 --> 00:24:00,375 And I don't think you can ignore that. 557 00:24:00,375 --> 00:24:02,622 That said, he's still a full-time software developer, 558 00:24:02,622 --> 00:24:04,830 and I do daresay he's going to be that for some time. 559 00:24:04,830 --> 00:24:06,370 But it's making him more productive. 560 00:24:06,370 --> 00:24:09,090 And I think the most resonant thing that a buddy 561 00:24:09,090 --> 00:24:12,438 of mine at GitHub actually mentioned to me a few months back, when 562 00:24:12,438 --> 00:24:15,480 I was asking him and a lot of my friends in industry what they think too, 563 00:24:15,480 --> 00:24:18,660 because this is becoming a frequently asked question, is he 564 00:24:18,660 --> 00:24:21,840 encouraged me to think about just how many GitHub repositories out there 565 00:24:21,840 --> 00:24:23,798 there are, including some of our own, that have 566 00:24:23,798 --> 00:24:27,310 open issues-- that is, feature requests, bug reports, and the like. 567 00:24:27,310 --> 00:24:30,420 And even now, as much as we want to, there are absolutely GitHub issues 568 00:24:30,420 --> 00:24:33,960 that we will never get around, in CS50 alone, to closing, just 569 00:24:33,960 --> 00:24:37,410 for lack of time, lack of sufficient time in the day, 570 00:24:37,410 --> 00:24:40,380 people on the team to actually get through all of our priorities 571 00:24:40,380 --> 00:24:42,180 as well as those other tasks. 572 00:24:42,180 --> 00:24:46,080 So he encouraged me to consider just how much more productive 573 00:24:46,080 --> 00:24:48,570 we can actually be as humans, as programmers, 574 00:24:48,570 --> 00:24:52,650 as a society if we can now amplify the impact of our work 575 00:24:52,650 --> 00:24:54,060 using something like AI. 576 00:24:54,060 --> 00:24:56,732 So I think, in the near term, probably medium term, 577 00:24:56,732 --> 00:24:58,440 I really don't think folks have to worry. 578 00:24:58,440 --> 00:25:01,860 I would absolutely not change your academic or your professional path 579 00:25:01,860 --> 00:25:04,140 in terms of technology because I do think, 580 00:25:04,140 --> 00:25:06,870 as we even say in CS50, so much of what you're learning 581 00:25:06,870 --> 00:25:10,650 is not about C or Python or JavaScript, eventually which are probably 582 00:25:10,650 --> 00:25:13,397 going to drift into less popularity, but it's really 583 00:25:13,397 --> 00:25:14,980 about how to think and solve problems. 584 00:25:14,980 --> 00:25:16,230 And that's not going anywhere. 585 00:25:16,230 --> 00:25:19,920 And I think that, and I hope that, frankly, programming eventually 586 00:25:19,920 --> 00:25:23,190 will become a little more like project management, whereby you 587 00:25:23,190 --> 00:25:26,430 or I, even if we are programmers and could write the code ourselves, 588 00:25:26,430 --> 00:25:30,930 it's going to be way more efficient and productive to just tell the computer 589 00:25:30,930 --> 00:25:34,140 what to do, but to have the instincts for knowing what's possible 590 00:25:34,140 --> 00:25:38,050 and what it can do and how and whether it can speed up certain operations. 591 00:25:38,050 --> 00:25:41,160 So I do think, long story short, that being a software engineer, 592 00:25:41,160 --> 00:25:45,900 much like it has evolved in recent years to being a combination of operations 593 00:25:45,900 --> 00:25:47,220 and development, a.k.a. 594 00:25:47,220 --> 00:25:51,840 DevOps, will similarly evolve even more into a product management role, whereby 595 00:25:51,840 --> 00:25:55,920 using natural language or some domain-specific language-- 596 00:25:55,920 --> 00:25:58,648 we are really just telling the computers what to build for us. 597 00:25:58,648 --> 00:26:00,690 And maybe we're tweaking, maybe we're finetuning, 598 00:26:00,690 --> 00:26:02,970 but we're going to be a lot more productive as a result. 599 00:26:02,970 --> 00:26:03,990 CARTER ZENKE: I think what our own students 600 00:26:03,990 --> 00:26:06,648 who, on campus, just transition from C to Python, how 601 00:26:06,648 --> 00:26:09,690 relieved they felt, how much more they could do-- so maybe this next step 602 00:26:09,690 --> 00:26:12,960 is just allowing you to do even more with less time of your own. 603 00:26:12,960 --> 00:26:15,085 DAVID MALAN: Oh, great, and we've seen this before. 604 00:26:15,085 --> 00:26:18,480 Those of us who learned HTML around the time this building was being repaired 605 00:26:18,480 --> 00:26:21,930 were writing HTML and CSS, like 1.0, from scratch. 606 00:26:21,930 --> 00:26:23,760 And then came tools like Dreamweaver, which 607 00:26:23,760 --> 00:26:26,340 was a very popular downloadable program for Macs/PCs 608 00:26:26,340 --> 00:26:28,050 that generate HTML for you. 609 00:26:28,050 --> 00:26:30,510 And now we have Squarespace and Wix and other websites 610 00:26:30,510 --> 00:26:33,210 that generate HTML for you, and static site builders 611 00:26:33,210 --> 00:26:34,650 that generate HTML for you. 612 00:26:34,650 --> 00:26:36,480 And web developers haven't gone anywhere. 613 00:26:36,480 --> 00:26:37,530 Their jobs have changed. 614 00:26:37,530 --> 00:26:39,820 I daresay they've gotten more fun, more productive. 615 00:26:39,820 --> 00:26:42,540 So I think we've seen evidence that as technology advances, 616 00:26:42,540 --> 00:26:44,730 it doesn't necessarily just eliminate roles. 617 00:26:44,730 --> 00:26:45,900 It changes them. 618 00:26:45,900 --> 00:26:48,900 And I think we've seen, at least in tech, it tends to be for the better. 619 00:26:48,900 --> 00:26:50,530 CARTER ZENKE: Yeah, kind of inspiring to me, 620 00:26:50,530 --> 00:26:52,950 I think, to think of how many shoulders you're standing on 621 00:26:52,950 --> 00:26:56,070 as you do what you're doing today, like the people who first programmed 622 00:26:56,070 --> 00:26:58,945 in assembly, then in C, then in Python, or other languages. 623 00:26:58,945 --> 00:27:01,320 It's kind of like you're standing on top of a lot of work 624 00:27:01,320 --> 00:27:02,640 from other people in the past too. 625 00:27:02,640 --> 00:27:03,510 DAVID MALAN: Yeah, agreed. 626 00:27:03,510 --> 00:27:05,580 Well, I think we have time for just a couple more questions 627 00:27:05,580 --> 00:27:07,538 so we don't keep our friends from Memorial Hall 628 00:27:07,538 --> 00:27:09,810 out here on the roof with us for too long either. 629 00:27:09,810 --> 00:27:12,510 One question that came in as we were chatting, 630 00:27:12,510 --> 00:27:18,458 Carter, is it OK to use the CS50 duck debugger if the student faces an error. 631 00:27:18,458 --> 00:27:19,500 CARTER ZENKE: Absolutely. 632 00:27:19,500 --> 00:27:21,083 That's kind of why it's there for you. 633 00:27:21,083 --> 00:27:23,730 And actually, this is an adaptation of things like ChatGPT 634 00:27:23,730 --> 00:27:26,343 that can sometimes be a little too helpful. 635 00:27:26,343 --> 00:27:28,260 I think it's worthwhile for you, as a learner, 636 00:27:28,260 --> 00:27:30,700 to sit down and think through the area yourself. 637 00:27:30,700 --> 00:27:32,800 So the duck can help guide you through that error, 638 00:27:32,800 --> 00:27:35,462 but also help you do the thinking to yourself 639 00:27:35,462 --> 00:27:38,670 as opposed to telling you what exactly what's happening, if that makes sense. 640 00:27:38,670 --> 00:27:39,670 DAVID MALAN: Sure, yeah. 641 00:27:39,670 --> 00:27:43,000 And this is a question about CS50P which, granted, I teach, but perhaps 642 00:27:43,000 --> 00:27:45,790 you could offer another perspective. 643 00:27:45,790 --> 00:27:49,518 A student notes that he's feeling very frustrated with the CS50P course-- 644 00:27:49,518 --> 00:27:50,560 feels like a total loser. 645 00:27:50,560 --> 00:27:53,022 How can I overcome that feeling and not give up 646 00:27:53,022 --> 00:27:54,730 after the first week, which I don't think 647 00:27:54,730 --> 00:27:57,160 is that uncommon, really, with programming in general. 648 00:27:57,160 --> 00:27:57,760 CARTER ZENKE: Yeah, I was going to say, I 649 00:27:57,760 --> 00:27:59,560 don't think that's quite an uncommon sentiment. 650 00:27:59,560 --> 00:28:01,435 And so maybe the first step is just realizing 651 00:28:01,435 --> 00:28:03,490 you're in the same boat as a lot of other people. 652 00:28:03,490 --> 00:28:05,830 And often, reaching out for help from those people, 653 00:28:05,830 --> 00:28:09,610 from our own AI tools, et cetera, can help you get unstuck and keep going. 654 00:28:09,610 --> 00:28:12,190 So I'd encourage you to find community and realize 655 00:28:12,190 --> 00:28:13,683 you're not alone in that feeling. 656 00:28:13,683 --> 00:28:15,850 DAVID MALAN: Yeah, honestly, if it were coming easy, 657 00:28:15,850 --> 00:28:18,097 and if it were just a matter of solving problem 658 00:28:18,097 --> 00:28:20,680 after problem, what would be the point of the exercise anyway. 659 00:28:20,680 --> 00:28:24,970 So it should be challenging, I think, for someone to get something out of it. 660 00:28:24,970 --> 00:28:27,070 And we've all felt the same way, ever more so 661 00:28:27,070 --> 00:28:29,778 when you're learning some new language, some new way of thinking. 662 00:28:29,778 --> 00:28:31,845 So I really wouldn't think poorly of yourself. 663 00:28:31,845 --> 00:28:34,100 It just takes time and practice. 664 00:28:34,100 --> 00:28:37,300 How about-- let's see, time for one more question here. 665 00:28:37,300 --> 00:28:38,860 All right, Carter, a challenge-- 666 00:28:38,860 --> 00:28:42,650 is it possible to explain pointers in two to three minutes? 667 00:28:42,650 --> 00:28:45,680 CARTER ZENKE: Well, perhaps. 668 00:28:45,680 --> 00:28:50,720 We'll say, a computer has to store characters or places in memory, 669 00:28:50,720 --> 00:28:52,440 like some place inside the computer. 670 00:28:52,440 --> 00:28:54,503 And we call that place an address. 671 00:28:54,503 --> 00:28:57,170 A pointer is like a variable, which I know you're familiar with, 672 00:28:57,170 --> 00:28:59,363 that just kind of points to an address. 673 00:28:59,363 --> 00:29:01,530 DAVID MALAN: That was-- and you have time left over. 674 00:29:01,530 --> 00:29:04,970 In fact, what would you like to share with folks in your remaining 75 675 00:29:04,970 --> 00:29:05,600 seconds? 676 00:29:05,600 --> 00:29:08,100 CARTER ZENKE: I mean, just thank you all so much for coming. 677 00:29:08,100 --> 00:29:09,620 It's great to see you up on top of Sanders Theater. 678 00:29:09,620 --> 00:29:09,950 DAVID MALAN: Indeed. 679 00:29:09,950 --> 00:29:11,480 Thanks so much to our friends at Memorial Hall 680 00:29:11,480 --> 00:29:14,772 who kindly let us come up here, to Vlad and to Max, who are holding the camera. 681 00:29:14,772 --> 00:29:16,760 And in fact, we thought we'd end just as we 682 00:29:16,760 --> 00:29:19,730 began with a beautiful panoramic shot here of Harvard 683 00:29:19,730 --> 00:29:22,100 University and, indeed, Cambridge. 684 00:29:22,100 --> 00:29:28,210 So with all that said, this was CS50, and this is Vlad on camera. 685 00:29:28,210 --> 00:30:02,000