1 00:00:00,000 --> 00:00:03,600 2 00:00:03,600 --> 00:00:05,650 DAVID J. MALAN: [SPEAKING SPANISH] 3 00:00:05,650 --> 00:00:17,470 4 00:00:17,470 --> 00:00:20,680 I'd like to speak more English here on out. 5 00:00:20,680 --> 00:00:26,760 Those of you who have taken CS50 online or watched some of the videos 6 00:00:26,760 --> 00:00:29,860 know that I typically speak very fast like this in English, which is what 7 00:00:29,860 --> 00:00:32,409 Spanish currently sounds like to me. 8 00:00:32,409 --> 00:00:35,650 So I will do my best to speak more slowly, so that those 9 00:00:35,650 --> 00:00:38,720 of you with headsets can follow along. 10 00:00:38,720 --> 00:00:44,140 So this is a talk and a story about CS50 at scale and [SPANISH].. 11 00:00:44,140 --> 00:00:47,470 And what I mean by this is that this map here represents 12 00:00:47,470 --> 00:00:50,710 where this course CS50 now exists. 13 00:00:50,710 --> 00:00:55,760 In red are dots where we have high schools taking or teaching 14 00:00:55,760 --> 00:00:57,610 CS50 in some form. 15 00:00:57,610 --> 00:01:01,180 And in blue are dots where we have universities as well as 16 00:01:01,180 --> 00:01:03,290 of last year alone. 17 00:01:03,290 --> 00:01:07,670 And so CS50 at scale for us means a big question. 18 00:01:07,670 --> 00:01:12,670 How do we go about bringing computer science to students beyond Cambridge? 19 00:01:12,670 --> 00:01:17,110 And how do we go about supporting students as well as teachers here 20 00:01:17,110 --> 00:01:21,880 in Nicaragua, elsewhere in the United States, and really around the world? 21 00:01:21,880 --> 00:01:23,800 But before we do that, I thought I would give 22 00:01:23,800 --> 00:01:28,690 those of you who are unfamiliar with CS50 a glimpse of what it is. 23 00:01:28,690 --> 00:01:32,140 At the end of the day, CS50 is Harvard's introduction 24 00:01:32,140 --> 00:01:35,410 to the intellectual enterprises of computer science 25 00:01:35,410 --> 00:01:36,700 and the art of programming. 26 00:01:36,700 --> 00:01:38,980 It's an introduction to computer science. 27 00:01:38,980 --> 00:01:44,410 And the syllabus, the material we teach, I daresay, is fairly common 28 00:01:44,410 --> 00:01:46,020 and is fairly traditional. 29 00:01:46,020 --> 00:01:49,540 But what is very untraditional about CS50 30 00:01:49,540 --> 00:01:55,300 is how we approach the course's culture, how we approach the course's community, 31 00:01:55,300 --> 00:02:01,540 and where we emphasize students' experience beyond the material alone. 32 00:02:01,540 --> 00:02:04,450 And so this means in addition to teaching students 33 00:02:04,450 --> 00:02:09,940 computer science and, in turn, how to program, there is this whole experience 34 00:02:09,940 --> 00:02:13,300 that students have in Cambridge, in New Haven, 35 00:02:13,300 --> 00:02:18,700 here now in Managua, and beyond that involves puzzle days and CS50 36 00:02:18,700 --> 00:02:23,620 hackathons and CS50 fairs, as well as the office hours and sections 37 00:02:23,620 --> 00:02:26,140 and lectures wherein they learn that material. 38 00:02:26,140 --> 00:02:29,440 And if you've not yet taken CS50 or are considering 39 00:02:29,440 --> 00:02:32,170 doing so here with our friends Carlos and Sylvio 40 00:02:32,170 --> 00:02:34,490 and all of the teaching fellows already here, 41 00:02:34,490 --> 00:02:37,150 I thought I'd give you a glimpse at what this experience can 42 00:02:37,150 --> 00:02:41,804 be like through the lens of Harvard University. 43 00:02:41,804 --> 00:02:42,470 [VIDEO PLAYBACK] 44 00:02:42,470 --> 00:02:46,278 [MUSIC PLAYING] 45 00:02:46,278 --> 00:02:49,134 46 00:02:49,134 --> 00:02:52,962 - All right, this is CS50! 47 00:02:52,962 --> 00:02:56,946 - [SINGING] [INAUDIBLE] 48 00:02:56,946 --> 00:04:12,642 49 00:04:12,642 --> 00:04:14,634 [INAUDIBLE] 50 00:04:14,634 --> 00:04:18,618 - [SINGING] [INAUDIBLE] 51 00:04:18,618 --> 00:05:05,928 52 00:05:05,928 --> 00:05:12,402 - This is, boom, CS50! 53 00:05:12,402 --> 00:05:13,050 [END PLAYBACK] 54 00:05:13,050 --> 00:05:15,800 DAVID J. MALAN: If you don't recognize him, that's-- 55 00:05:15,800 --> 00:05:16,469 sure. 56 00:05:16,469 --> 00:05:22,566 [APPLAUSE] 57 00:05:22,566 --> 00:05:25,320 That video is thanks to CS50's production 58 00:05:25,320 --> 00:05:27,660 team, who's expert in video back home. 59 00:05:27,660 --> 00:05:30,300 And if you don't recognize him, that man was Steve Ballmer, 60 00:05:30,300 --> 00:05:35,130 the former CEO of Microsoft, who joined us two years ago for a guest lecture. 61 00:05:35,130 --> 00:05:38,230 So I've been teaching CS50 for 10 years now. 62 00:05:38,230 --> 00:05:41,580 And I've been alive for 40, apparently, now. 63 00:05:41,580 --> 00:05:45,510 And over those 10 years when I inherited the course, one 64 00:05:45,510 --> 00:05:48,330 of the most important things to do, for me, 65 00:05:48,330 --> 00:05:51,750 was to ensure that the course was accessible. 66 00:05:51,750 --> 00:05:55,890 The course itself and CS50 computer science more generally, 67 00:05:55,890 --> 00:06:01,040 I daresay, had a reputation of being a field to beware. 68 00:06:01,040 --> 00:06:02,040 Let's see if this. 69 00:06:02,040 --> 00:06:05,040 70 00:06:05,040 --> 00:06:07,610 Well, that didn't fix it. 71 00:06:07,610 --> 00:06:08,140 There we go. 72 00:06:08,140 --> 00:06:09,400 A field to beware. 73 00:06:09,400 --> 00:06:13,090 And what I didn't want to do when taking over this course was simply 74 00:06:13,090 --> 00:06:16,210 make it easier or remove material from it, 75 00:06:16,210 --> 00:06:20,440 but rather to maintain the course's historical rigor and the course's 76 00:06:20,440 --> 00:06:25,870 historical workload, but to nonetheless make it more fun, more applicable, 77 00:06:25,870 --> 00:06:29,450 and to take what had previously been an on ramp that might look like this, 78 00:06:29,450 --> 00:06:31,660 where we assume this much material at the beginning, 79 00:06:31,660 --> 00:06:35,440 and to lower the entry point for students without experience, 80 00:06:35,440 --> 00:06:37,450 those students less comfortable, but still 81 00:06:37,450 --> 00:06:40,840 ensuring that the end of just as successful and just as 82 00:06:40,840 --> 00:06:44,680 learned as students who had even studied the class before. 83 00:06:44,680 --> 00:06:48,490 And since then have we applied this same idea really all around the world. 84 00:06:48,490 --> 00:06:53,710 In 2007 is, again, when I took over CS50 in Cambridge, Massachusetts. 85 00:06:53,710 --> 00:06:58,090 In 2012 did the course become freely available on edX. 86 00:06:58,090 --> 00:07:01,030 If unfamiliar, this is a free platform online 87 00:07:01,030 --> 00:07:03,580 that you can take courses on for free and engage 88 00:07:03,580 --> 00:07:05,140 with students around the world. 89 00:07:05,140 --> 00:07:09,430 And the course even since 2007 had been freely available as what 90 00:07:09,430 --> 00:07:11,500 MIT has called open courseware. 91 00:07:11,500 --> 00:07:14,120 All of the handouts, all of the videos, all of the problem 92 00:07:14,120 --> 00:07:16,420 sets, everything was freely available. 93 00:07:16,420 --> 00:07:19,510 But via edX now did we have an even larger community of students 94 00:07:19,510 --> 00:07:22,240 who were discovering computer science by way of our course 95 00:07:22,240 --> 00:07:26,170 and other courses from MIT and UC Berkeley and elsewhere. 96 00:07:26,170 --> 00:07:29,790 And then in 2015 we introduced another version of the class. 97 00:07:29,790 --> 00:07:32,980 It's very common after university for some students 98 00:07:32,980 --> 00:07:35,680 to go to graduate school, for instance, in business studies 99 00:07:35,680 --> 00:07:38,440 and receive an MBA, a degree in business. 100 00:07:38,440 --> 00:07:41,710 And we adapted CS50 to that particular audience. 101 00:07:41,710 --> 00:07:44,950 So there's a shorter version, a different version of CS50 102 00:07:44,950 --> 00:07:49,180 that focuses on how you use technology to solve problems in business 103 00:07:49,180 --> 00:07:52,000 and how you go about thinking about cloud computing 104 00:07:52,000 --> 00:07:54,350 and security and the cost thereof. 105 00:07:54,350 --> 00:07:59,290 So whereas CS50 itself here in Managua and in Cambridge and Yale is very much 106 00:07:59,290 --> 00:08:03,160 bottom-up-- you learn by doing and you build things and you struggle through 107 00:08:03,160 --> 00:08:04,540 the building of those things-- 108 00:08:04,540 --> 00:08:08,050 the MBA class is more of a top-down discussion-oriented class where 109 00:08:08,050 --> 00:08:12,340 you don't get your hands as dirty with programming, but you talk about topics 110 00:08:12,340 --> 00:08:16,225 and you better understand who the engineers you will work with, 111 00:08:16,225 --> 00:08:17,920 how they tend to operate. 112 00:08:17,920 --> 00:08:22,780 In 2015 we also transitioned the class to Yale, another big university 113 00:08:22,780 --> 00:08:24,070 in the United States. 114 00:08:24,070 --> 00:08:28,860 And then in 2015 did we also roll out what we call CS50 AP. 115 00:08:28,860 --> 00:08:32,559 AP means advanced placement, which is a common program in some schools. 116 00:08:32,559 --> 00:08:37,270 And it's an opportunity for us to adapt the course to a high school audience. 117 00:08:37,270 --> 00:08:40,809 Similarly, not changing expectations, not making it easier, 118 00:08:40,809 --> 00:08:43,480 not making it lighter, but with that demographic, 119 00:08:43,480 --> 00:08:45,490 allowing students more time. 120 00:08:45,490 --> 00:08:50,270 Whereas at Harvard and Yale, we might typically have a 12-week semester, 121 00:08:50,270 --> 00:08:53,510 so you have only 12 weeks to do all of the work, at the high school level, 122 00:08:53,510 --> 00:08:56,140 they typically have as many as 36 weeks. 123 00:08:56,140 --> 00:08:57,440 But it's the same work. 124 00:08:57,440 --> 00:08:58,680 It's the same tools. 125 00:08:58,680 --> 00:09:00,190 It's the same experience. 126 00:09:00,190 --> 00:09:03,610 But it ensures that students, even without experience, 127 00:09:03,610 --> 00:09:05,970 can be successful in the end. 128 00:09:05,970 --> 00:09:08,740 And in terms of some numbers, if curious, at Harvard 129 00:09:08,740 --> 00:09:11,320 we happen to be the largest course these days. 130 00:09:11,320 --> 00:09:14,920 With undergraduates and graduate students about 700 students 131 00:09:14,920 --> 00:09:16,630 each semester in the fall. 132 00:09:16,630 --> 00:09:20,352 We have about 150 students at Yale and then 300 students 133 00:09:20,352 --> 00:09:22,060 through Harvard's Extension School, which 134 00:09:22,060 --> 00:09:25,000 is continuing education, a program for adults 135 00:09:25,000 --> 00:09:28,300 or for students who aren't in university themselves. 136 00:09:28,300 --> 00:09:32,800 At the MBA program we have 100 students or so each semester. 137 00:09:32,800 --> 00:09:35,980 And with CS50x it's a lot of people. 138 00:09:35,980 --> 00:09:37,720 Not all of them engage actively. 139 00:09:37,720 --> 00:09:39,500 They might sign up and come and go. 140 00:09:39,500 --> 00:09:42,010 But it's over 1 million registrants these days have 141 00:09:42,010 --> 00:09:43,810 found the course via edX. 142 00:09:43,810 --> 00:09:47,830 And we now have, most excitingly, not just students all around the world, 143 00:09:47,830 --> 00:09:49,150 but support structures. 144 00:09:49,150 --> 00:09:51,940 Much what like Sylvio and Carlos are doing here 145 00:09:51,940 --> 00:09:57,320 do we have in Bolivia and Miami and Rhode Island and St. Louis in the US-- 146 00:09:57,320 --> 00:09:58,660 Bolivia not being in the US-- 147 00:09:58,660 --> 00:10:02,230 Kansas City in the US, Burma, Chile, Netherlands, Nicaragua now, 148 00:10:02,230 --> 00:10:06,740 of course, the UK, and Ukraine, and beyond. 149 00:10:06,740 --> 00:10:10,330 And so these are just some of the folks that you saw depicted graphically 150 00:10:10,330 --> 00:10:12,590 with the map just a little bit ago. 151 00:10:12,590 --> 00:10:15,130 And then in CS50 AP this coming year will we 152 00:10:15,130 --> 00:10:20,040 likely have as many as 300 teachers, 300 high schools or [SPANISH] 153 00:10:20,040 --> 00:10:25,130 teaching CS50 in some form with over 6,000 students as well. 154 00:10:25,130 --> 00:10:28,720 So what is CS50, particularly if you've not yet experienced it 155 00:10:28,720 --> 00:10:31,360 through the opportunity here or online? 156 00:10:31,360 --> 00:10:34,300 So this is what Sanders Theater looks like at Harvard. 157 00:10:34,300 --> 00:10:37,960 We're fortunate to have such a beautiful space to fit all of these students. 158 00:10:37,960 --> 00:10:41,320 And it's here that Scully and Ramon and our production team 159 00:10:41,320 --> 00:10:44,320 back home actually captures the course's material. 160 00:10:44,320 --> 00:10:46,150 We don't just shoot the lectures once. 161 00:10:46,150 --> 00:10:49,300 Every year we refresh the course and bring in new topics 162 00:10:49,300 --> 00:10:52,540 and bring in new news that might have happened in industry 163 00:10:52,540 --> 00:10:55,930 and ultimately create an ongoing opportunity for students 164 00:10:55,930 --> 00:11:00,580 to learn conceptually what computer science is and how to program. 165 00:11:00,580 --> 00:11:02,440 But there's a whole support structure too. 166 00:11:02,440 --> 00:11:05,730 This is a glimpse of a space that looks a little like Hogwarts, 167 00:11:05,730 --> 00:11:08,910 but is really a dining hall where a lot of the first years eat. 168 00:11:08,910 --> 00:11:12,859 But also at night do we use spaces like this to bring students together. 169 00:11:12,859 --> 00:11:14,400 And this, too, is a remarkable thing. 170 00:11:14,400 --> 00:11:19,080 As opposed to just having study halls or fairly traditional classrooms, 171 00:11:19,080 --> 00:11:22,680 we actually bring students to non-conventional places on campus, 172 00:11:22,680 --> 00:11:25,890 like the dining hall here, or other places on campus 173 00:11:25,890 --> 00:11:28,320 where there might be food and there might be friends. 174 00:11:28,320 --> 00:11:31,320 But the goal, really, is to have students rubbing shoulders 175 00:11:31,320 --> 00:11:34,650 with each other from different fields, working on their computer science 176 00:11:34,650 --> 00:11:37,590 homework or some other topic all together. 177 00:11:37,590 --> 00:11:41,490 And here is, if curious, our friends at Yale down the road. 178 00:11:41,490 --> 00:11:43,890 But then in terms of the communities, and this is really 179 00:11:43,890 --> 00:11:47,520 what's made CS50x scale so special, these are some of our friends 180 00:11:47,520 --> 00:11:52,500 here in Miami Dade, one of whom actually on the left here, Arturo Real, 181 00:11:52,500 --> 00:11:55,800 is from Venezuela and was studying in Miami Dade 182 00:11:55,800 --> 00:11:58,380 College, a large school in Florida in the US, 183 00:11:58,380 --> 00:12:02,100 and actually now works with us full-time in Cambridge as a result of having 184 00:12:02,100 --> 00:12:04,947 finished his studies there and taken CS50 in Miami. 185 00:12:04,947 --> 00:12:06,780 These are some of our friends here in Chile. 186 00:12:06,780 --> 00:12:09,000 And if you're familiar, you can see students, maybe 187 00:12:09,000 --> 00:12:12,420 like some of your own classmates, implementing bubble sort 188 00:12:12,420 --> 00:12:13,750 there up front. 189 00:12:13,750 --> 00:12:15,820 These are some of our friends in London. 190 00:12:15,820 --> 00:12:17,520 Here we have Burma. 191 00:12:17,520 --> 00:12:19,230 Here we have friends in Bolivia. 192 00:12:19,230 --> 00:12:22,020 And then, of course, some of our own friends here. 193 00:12:22,020 --> 00:12:24,570 So you might see yourself up on the slide now as well. 194 00:12:24,570 --> 00:12:27,990 And in addition to these folks do we have a whole community of teachers. 195 00:12:27,990 --> 00:12:30,660 This was one of our first group of high school teachers 196 00:12:30,660 --> 00:12:34,350 that adopted or adapted CS50 for their own classroom. 197 00:12:34,350 --> 00:12:37,590 And this was our first ever CS50 hackathon 198 00:12:37,590 --> 00:12:40,140 for high school students in New York. 199 00:12:40,140 --> 00:12:43,020 Eight schools-- four public schools, four private schools-- 200 00:12:43,020 --> 00:12:47,310 came together for a Saturday afternoon to work on their problem sets, 201 00:12:47,310 --> 00:12:51,570 to work on their final projects, but ultimately working together 202 00:12:51,570 --> 00:12:54,630 and experiencing together a field that had otherwise 203 00:12:54,630 --> 00:12:56,796 been very unfamiliar to them. 204 00:12:56,796 --> 00:12:58,920 So what does it mean beyond all of the photographs? 205 00:12:58,920 --> 00:13:02,370 And what is it-- especially if you're considering computer science here 206 00:13:02,370 --> 00:13:04,560 or beyond, what is it you actually learn? 207 00:13:04,560 --> 00:13:06,450 And what is it we actually do? 208 00:13:06,450 --> 00:13:11,370 So the syllabus itself is fairly conventionally structured, 209 00:13:11,370 --> 00:13:13,170 but we cover quite a bit of material. 210 00:13:13,170 --> 00:13:20,190 Indeed, CS50 is what most schools would call CS1 plus CS2 all combined together 211 00:13:20,190 --> 00:13:21,600 in just one semester. 212 00:13:21,600 --> 00:13:25,080 And so we begin the semester introducing students first to programming 213 00:13:25,080 --> 00:13:30,360 and really computational thinking by way of a problem set called Scratch 214 00:13:30,360 --> 00:13:34,410 and by way of ultimately a language called C, which is more cryptic, 215 00:13:34,410 --> 00:13:37,770 which is more traditional, but is a more powerful language still. 216 00:13:37,770 --> 00:13:42,240 And in that world do we explore topics like arrays and algorithms 217 00:13:42,240 --> 00:13:44,730 and data structures and memory management. 218 00:13:44,730 --> 00:13:49,170 And indeed, those of you taking CS50x right now are roughly at this point, 219 00:13:49,170 --> 00:13:51,060 I believe, in the semester. 220 00:13:51,060 --> 00:13:52,860 And what then comes next? 221 00:13:52,860 --> 00:13:56,100 Well, we transition from that to, really, web programming. 222 00:13:56,100 --> 00:14:00,000 More modern incarnations of computer science and programming. 223 00:14:00,000 --> 00:14:04,440 Looking at HTTP and the web and web programming, more generally, 224 00:14:04,440 --> 00:14:06,690 and also at topics like machine learning. 225 00:14:06,690 --> 00:14:09,670 All the rage these days with Uber and other companies 226 00:14:09,670 --> 00:14:12,510 is the idea of self-driving cars and the implications 227 00:14:12,510 --> 00:14:14,651 of that and the technology behind that. 228 00:14:14,651 --> 00:14:17,400 And so did we introduce this topic, thanks to our friends at Yale, 229 00:14:17,400 --> 00:14:19,000 for the very first time. 230 00:14:19,000 --> 00:14:22,440 And then at the end of the semester do we move away from C altogether 231 00:14:22,440 --> 00:14:26,374 and introduce students to a bit of Python and SQL and JavaScript. 232 00:14:26,374 --> 00:14:29,040 These are just different programming languages, if not familiar. 233 00:14:29,040 --> 00:14:33,130 But the goal is so that when students take a class like CS50 and exit it, 234 00:14:33,130 --> 00:14:37,710 they don't say, I learned C, one specific programming language, rather, 235 00:14:37,710 --> 00:14:41,640 they say, I learned computer science, but more specifically in programming, 236 00:14:41,640 --> 00:14:45,240 I learned how to program with procedural or imperative languages, 237 00:14:45,240 --> 00:14:46,707 for those familiar. 238 00:14:46,707 --> 00:14:48,540 But what is the structure of the class then? 239 00:14:48,540 --> 00:14:51,330 In Cambridge and at Harvard and Yale it's 240 00:14:51,330 --> 00:14:54,420 12 weeks, though this is different based on the various geographies 241 00:14:54,420 --> 00:14:56,040 and where students take the class. 242 00:14:56,040 --> 00:15:00,510 At Harvard there's eight homeworks or nine homeworks, one exam, one quiz, 243 00:15:00,510 --> 00:15:03,630 and one final project, the last of which is the most impactful. 244 00:15:03,630 --> 00:15:07,890 It's an opportunity for students, without being told by us what to do, 245 00:15:07,890 --> 00:15:10,920 it's an opportunity for them to design and implement 246 00:15:10,920 --> 00:15:13,110 a project of their very own. 247 00:15:13,110 --> 00:15:15,900 But it's really in terms of the course's problem sets 248 00:15:15,900 --> 00:15:19,380 that students have the most challenges and learn the most. 249 00:15:19,380 --> 00:15:22,020 It's one thing to just listen to someone like me speak 250 00:15:22,020 --> 00:15:24,300 or even attend section or office hours. 251 00:15:24,300 --> 00:15:28,860 Most of students' time is spent on these problem sets, [SPANISH].. 252 00:15:28,860 --> 00:15:33,690 And they cover very domain inspired or specific problems. 253 00:15:33,690 --> 00:15:37,020 In Scratch, for instance, this is a graphical programming language 254 00:15:37,020 --> 00:15:41,110 where you can drag and drop puzzle pieces on the screen that lock together 255 00:15:41,110 --> 00:15:43,680 and then make characters on the screen animate. 256 00:15:43,680 --> 00:15:46,545 In C then do we implement-- 257 00:15:46,545 --> 00:15:48,420 if you're familiar with Super Mario Brothers, 258 00:15:48,420 --> 00:15:50,550 a little something like Super Mario Brothers 259 00:15:50,550 --> 00:15:54,300 Pyramid using a very simple language with which most students are not yet 260 00:15:54,300 --> 00:15:55,230 familiar. 261 00:15:55,230 --> 00:15:58,560 But then we very quickly transition to topics like cryptography. 262 00:15:58,560 --> 00:16:01,734 And those who might know, what is cryptography? 263 00:16:01,734 --> 00:16:03,030 AUDIENCE: Hiding information? 264 00:16:03,030 --> 00:16:04,488 DAVID J. MALAN: Hiding information. 265 00:16:04,488 --> 00:16:07,570 So if you want to send a secret message to a friend in class, 266 00:16:07,570 --> 00:16:09,820 you could just write it in English or Spanish. 267 00:16:09,820 --> 00:16:12,550 But if the teacher intercepts it, he or she, of course, 268 00:16:12,550 --> 00:16:14,240 will know what you're talking about. 269 00:16:14,240 --> 00:16:17,950 So maybe instead of doing that, you change all of your letters. 270 00:16:17,950 --> 00:16:23,380 A becomes B, B becomes C, or something more sophisticated than that. 271 00:16:23,380 --> 00:16:24,880 That might be encryption. 272 00:16:24,880 --> 00:16:26,490 Encoding the information in some way. 273 00:16:26,490 --> 00:16:28,960 So we have students for this homework assignment 274 00:16:28,960 --> 00:16:34,202 actually implement a program that encrypts and decrypts information. 275 00:16:34,202 --> 00:16:35,410 And for the more [INAUDIBLE]. 276 00:16:35,410 --> 00:16:36,076 [VIDEO PLAYBACK] 277 00:16:36,076 --> 00:16:38,903 [MUSIC PLAYING] 278 00:16:38,903 --> 00:16:42,396 - [SINGING] [INAUDIBLE] 279 00:16:42,396 --> 00:18:21,198 280 00:18:21,198 --> 00:18:27,737 - This is, boom, CS50! 281 00:18:27,737 --> 00:18:28,320 [END PLAYBACK] 282 00:18:28,320 --> 00:18:31,070 DAVID J. MALAN: If you don't recognize him, that's-- 283 00:18:31,070 --> 00:18:32,212 sure. 284 00:18:32,212 --> 00:18:38,170 [APPLAUSE] 285 00:18:38,170 --> 00:18:40,630 That video is thanks to CS50's production 286 00:18:40,630 --> 00:18:42,970 team, who's experts in video back home. 287 00:18:42,970 --> 00:18:45,610 And if you don't recognize him, that man was Steve Ballmer, 288 00:18:45,610 --> 00:18:50,410 the former CEO of Microsoft, who joined us two years ago for a guest lecture. 289 00:18:50,410 --> 00:18:53,500 So I've been teaching CS50 for 10 years now. 290 00:18:53,500 --> 00:18:56,890 And I've been alive for 40, apparently, now. 291 00:18:56,890 --> 00:19:00,820 And over those 10 years when I inherited the course, one 292 00:19:00,820 --> 00:19:03,640 of the most important things to do, for me, 293 00:19:03,640 --> 00:19:07,030 was to ensure that the course was accessible. 294 00:19:07,030 --> 00:19:11,170 The course itself and CS computer science more generally, 295 00:19:11,170 --> 00:19:16,647 I daresay, had a reputation of being a field to beware. 296 00:19:16,647 --> 00:19:20,056 Let's see if this. 297 00:19:20,056 --> 00:19:22,890 Well, that didn't fix it. 298 00:19:22,890 --> 00:19:23,430 There we go. 299 00:19:23,430 --> 00:19:24,690 A field to beware. 300 00:19:24,690 --> 00:19:28,380 And what I didn't want to do when taking over this course was simply 301 00:19:28,380 --> 00:19:31,500 make it easier or remove material from it, 302 00:19:31,500 --> 00:19:35,730 but rather to maintain the course's historical rigor and the course's 303 00:19:35,730 --> 00:19:41,160 historical workload, but to nonetheless make it more fun, more applicable, 304 00:19:41,160 --> 00:19:44,740 and to take what had previously been an on ramp that might look like this, 305 00:19:44,740 --> 00:19:46,950 where we assume this much material at the beginning, 306 00:19:46,950 --> 00:19:50,760 and to lower the entry point for students without experience, 307 00:19:50,760 --> 00:19:52,740 those students less comfortable, but still 308 00:19:52,740 --> 00:19:56,670 ensuring that they end up just as successful and just as learned 309 00:19:56,670 --> 00:19:59,970 as students who had even studied the class before. 310 00:19:59,970 --> 00:20:03,780 And since then have we applied this same idea really all around the world. 311 00:20:03,780 --> 00:20:09,000 In 2007 is, again, when I took over CS50 in Cambridge, Massachusetts. 312 00:20:09,000 --> 00:20:13,380 In 2012 did the course become freely available on edX. 313 00:20:13,380 --> 00:20:16,320 If unfamiliar, this is a free platform online 314 00:20:16,320 --> 00:20:18,900 that you can take courses on for free and engage 315 00:20:18,900 --> 00:20:20,430 with students around the world. 316 00:20:20,430 --> 00:20:24,720 And the course even since 2007 had been freely available as what 317 00:20:24,720 --> 00:20:26,790 MIT has called open courseware. 318 00:20:26,790 --> 00:20:29,400 All of the handouts, all of the videos, all of the problem 319 00:20:29,400 --> 00:20:31,710 sets, everything was freely available. 320 00:20:31,710 --> 00:20:34,830 But via edX now did we have an even larger community of students 321 00:20:34,830 --> 00:20:37,530 who were discovering computer science by way of our course 322 00:20:37,530 --> 00:20:41,460 and other courses from MIT and UC Berkeley and elsewhere. 323 00:20:41,460 --> 00:20:45,090 And then in 2015 we introduced another version of the class. 324 00:20:45,090 --> 00:20:48,270 It's very common after university for some students 325 00:20:48,270 --> 00:20:50,970 to go to graduate school, for instance, in business studies 326 00:20:50,970 --> 00:20:53,730 and receive an MBA, a degree in business. 327 00:20:53,730 --> 00:20:57,000 And we adapted CS50 to that particular audience. 328 00:20:57,000 --> 00:21:00,300 So there's a shorter version, a different version of CS50 329 00:21:00,300 --> 00:21:04,470 that focuses on how you use technology to solve problems in business 330 00:21:04,470 --> 00:21:07,290 and how you go about thinking about cloud computing 331 00:21:07,290 --> 00:21:09,640 and security and the cost thereof. 332 00:21:09,640 --> 00:21:14,580 So whereas CS50 itself here in Managua and in Cambridge and Yale is very much 333 00:21:14,580 --> 00:21:18,450 bottom-up-- you learn by doing and you build things and you struggle through 334 00:21:18,450 --> 00:21:19,830 the building of those things-- 335 00:21:19,830 --> 00:21:23,340 the MBA class is more of a top-down discussion-oriented class where 336 00:21:23,340 --> 00:21:27,630 you don't get your hands dirty with programming, but you talk about topics 337 00:21:27,630 --> 00:21:31,515 and you better understand who the engineers you will work with, 338 00:21:31,515 --> 00:21:33,210 how they tend to operate. 339 00:21:33,210 --> 00:21:38,100 In 2015 we also transitioned the class to Yale, another big university 340 00:21:38,100 --> 00:21:39,360 in the United States. 341 00:21:39,360 --> 00:21:44,160 And then in 2015 did we also roll out what we call CS50 AP. 342 00:21:44,160 --> 00:21:47,850 AP means advanced placement, which is a common program in some schools. 343 00:21:47,850 --> 00:21:52,560 And it's an opportunity for us to adapt the course to a high school audience. 344 00:21:52,560 --> 00:21:56,100 Similarly, not changing expectations, not making it easier, 345 00:21:56,100 --> 00:21:58,770 not making it lighter, but with that demographic, 346 00:21:58,770 --> 00:22:00,780 allowing students more time. 347 00:22:00,780 --> 00:22:05,560 Whereas at Harvard and Yale, we might typically have a 12-week semester. 348 00:22:05,560 --> 00:22:07,860 So you have only 12 weeks to do all of the work. 349 00:22:07,860 --> 00:22:11,430 At the high school level, they typically have as many as 36 weeks. 350 00:22:11,430 --> 00:22:12,730 But it's the same work. 351 00:22:12,730 --> 00:22:13,980 It's the same tools. 352 00:22:13,980 --> 00:22:15,480 It's the same experience. 353 00:22:15,480 --> 00:22:18,900 But it ensures that students even without experience 354 00:22:18,900 --> 00:22:21,280 can be successful in the end. 355 00:22:21,280 --> 00:22:24,030 And in terms of some numbers, if curious, at Harvard 356 00:22:24,030 --> 00:22:26,610 we happen to be the largest course these days. 357 00:22:26,610 --> 00:22:30,210 With undergraduates and graduate students about 700 students 358 00:22:30,210 --> 00:22:31,920 each semester in the fall. 359 00:22:31,920 --> 00:22:35,642 We have about 150 students at Yale and then 300 students 360 00:22:35,642 --> 00:22:37,350 through Harvard's Extension School, which 361 00:22:37,350 --> 00:22:40,290 is continuing education, a program for adults 362 00:22:40,290 --> 00:22:43,260 or for students who aren't in university themselves. 363 00:22:43,260 --> 00:22:48,090 At the MBA program we have 100 students or so each semester. 364 00:22:48,090 --> 00:22:51,270 And with CS50x it's a lot of people. 365 00:22:51,270 --> 00:22:53,010 Not all of them engage actively. 366 00:22:53,010 --> 00:22:54,790 They might sign up and come and go. 367 00:22:54,790 --> 00:22:57,330 But it's over 1 million registrants these days have 368 00:22:57,330 --> 00:22:59,100 found the course via edX. 369 00:22:59,100 --> 00:23:03,120 And we now have, most excitingly, not just students all around the world, 370 00:23:03,120 --> 00:23:04,440 but support structures. 371 00:23:04,440 --> 00:23:07,230 Much what like Sylvio and Carlos are doing here 372 00:23:07,230 --> 00:23:12,620 do we have in Bolivia and Miami and Rhode Island and St. Louis in the US-- 373 00:23:12,620 --> 00:23:13,950 Bolivia not being in the US-- 374 00:23:13,950 --> 00:23:17,520 Kansas City in the US, Burma, Chile, Netherlands, Nicaragua now, 375 00:23:17,520 --> 00:23:22,030 of course, the UK, and Ukraine, and beyond. 376 00:23:22,030 --> 00:23:25,620 And so these are just some of the folks that you saw depicted graphically 377 00:23:25,620 --> 00:23:27,880 with the map just a little bit ago. 378 00:23:27,880 --> 00:23:30,420 And then in CS50 AP this coming year will we 379 00:23:30,420 --> 00:23:35,340 likely have as many as 300 teachers, 300 high schools or [SPANISH] 380 00:23:35,340 --> 00:23:40,450 teaching CS50 in some form with over 6,000 students as well. 381 00:23:40,450 --> 00:23:44,010 So what is CS50, particularly if you've not yet experienced it 382 00:23:44,010 --> 00:23:46,680 through the opportunity here or online? 383 00:23:46,680 --> 00:23:49,620 So this is what Sanders Theater looks like at Harvard. 384 00:23:49,620 --> 00:23:53,250 We're fortunate to have such a beautiful space to fit all of these students. 385 00:23:53,250 --> 00:23:56,610 And it's here that Scully and Ramon and our production team 386 00:23:56,610 --> 00:23:59,520 back home actually captures the course's material. 387 00:23:59,520 --> 00:24:01,440 We don't just shoot the lectures once. 388 00:24:01,440 --> 00:24:04,590 Every year we refresh the course and bring in new topics 389 00:24:04,590 --> 00:24:07,860 and bring in new news that might have happened in industry 390 00:24:07,860 --> 00:24:11,220 and ultimately creates an ongoing opportunity for students 391 00:24:11,220 --> 00:24:15,870 to learn conceptually what computer science is and how to program. 392 00:24:15,870 --> 00:24:17,730 But there's a whole support structure too. 393 00:24:17,730 --> 00:24:21,010 This is a glimpse of a space that looks a little like Hogwarts, 394 00:24:21,010 --> 00:24:24,190 but is really a dining hall where a lot of the first years eat. 395 00:24:24,190 --> 00:24:28,139 But also at nights do we use spaces like this to bring students together. 396 00:24:28,139 --> 00:24:29,680 And this, too, is a remarkable thing. 397 00:24:29,680 --> 00:24:34,360 As opposed to just having study halls or fairly traditional classrooms, 398 00:24:34,360 --> 00:24:37,960 we actually bring students to non-conventional places on campus, 399 00:24:37,960 --> 00:24:41,200 like the dining hall here, or other places on campus 400 00:24:41,200 --> 00:24:43,630 where there might be food and there might be friends. 401 00:24:43,630 --> 00:24:46,630 But the goal, really, is to have students rubbing shoulders 402 00:24:46,630 --> 00:24:49,960 with each other from different fields, working on their computer science 403 00:24:49,960 --> 00:24:52,900 homework or some other topic altogether. 404 00:24:52,900 --> 00:24:56,770 And here is, if curious, our friends at Yale down the road. 405 00:24:56,770 --> 00:24:59,170 But then in terms of the communities, and this is really 406 00:24:59,170 --> 00:25:02,830 what's made CS50x scale so special, these are some of our friends 407 00:25:02,830 --> 00:25:07,810 here in Miami Dade, one of whom actually on the left here, Arturo Real, 408 00:25:07,810 --> 00:25:11,080 is from Venezuela and was studying in Miami Dade 409 00:25:11,080 --> 00:25:13,690 College, a large school in Florida in the US, 410 00:25:13,690 --> 00:25:17,410 and actually now works with us full-time in Cambridge as a result of having 411 00:25:17,410 --> 00:25:20,257 finished his studies there and taken CS50 in Miami. 412 00:25:20,257 --> 00:25:22,090 These are some of our friends here in Chile. 413 00:25:22,090 --> 00:25:24,280 And if you're familiar, you can see students, maybe 414 00:25:24,280 --> 00:25:27,690 like some of your own classmates, implementing bubble sort 415 00:25:27,690 --> 00:25:29,030 there up front. 416 00:25:29,030 --> 00:25:31,120 These are some of our friends in London. 417 00:25:31,120 --> 00:25:32,800 Here we have Burma. 418 00:25:32,800 --> 00:25:34,540 Here we have friends in Bolivia. 419 00:25:34,540 --> 00:25:37,330 And then, of course, some of our own friends here. 420 00:25:37,330 --> 00:25:39,850 So you might see yourself up on the slide now as well. 421 00:25:39,850 --> 00:25:43,270 And in addition to these folks do we have a whole community of teachers. 422 00:25:43,270 --> 00:25:45,940 This was one of our first group of high school teachers 423 00:25:45,940 --> 00:25:49,660 that adopted or adapted CS50 for their own classroom. 424 00:25:49,660 --> 00:25:52,870 And this was our first ever CS50 hackathon 425 00:25:52,870 --> 00:25:55,460 for high school students in New York. 426 00:25:55,460 --> 00:25:58,330 Eight schools-- four public schools, four private schools-- 427 00:25:58,330 --> 00:26:02,620 came together for a Saturday afternoon to work on their problem sets, 428 00:26:02,620 --> 00:26:06,850 to work on their final projects, but ultimately working together 429 00:26:06,850 --> 00:26:09,940 and experiencing together a field that had otherwise 430 00:26:09,940 --> 00:26:12,075 been very unfamiliar to them. 431 00:26:12,075 --> 00:26:14,200 So what does it mean beyond all of the photographs? 432 00:26:14,200 --> 00:26:17,650 And what is it-- especially if you're considering computer science here 433 00:26:17,650 --> 00:26:19,840 or beyond, what is it you actually learn? 434 00:26:19,840 --> 00:26:21,760 And what is that we actually do? 435 00:26:21,760 --> 00:26:26,680 So the syllabus itself is fairly conventionally structured, 436 00:26:26,680 --> 00:26:28,450 but we cover quite a bit of material. 437 00:26:28,450 --> 00:26:35,500 Indeed, CS50 is what most schools would call CS1 plus CS2 all combined together 438 00:26:35,500 --> 00:26:36,910 in just one semester. 439 00:26:36,910 --> 00:26:40,390 And so we begin the semester introducing students first to programming 440 00:26:40,390 --> 00:26:45,640 and really computational thinking by way of a problem set called Scratch 441 00:26:45,640 --> 00:26:49,720 and by way of ultimately a language called C, which is more cryptic, 442 00:26:49,720 --> 00:26:53,080 which is more traditional, but is a more powerful language still. 443 00:26:53,080 --> 00:26:57,520 And in that world do we explore topics like arrays and algorithms 444 00:26:57,520 --> 00:27:00,010 and data structures and memory management. 445 00:27:00,010 --> 00:27:04,480 And indeed, those of you taking CS50x right now are roughly at this point, 446 00:27:04,480 --> 00:27:06,340 I believe, in the semester. 447 00:27:06,340 --> 00:27:08,240 And what comes next? 448 00:27:08,240 --> 00:27:11,390 Well, we transition from that to, really, web programming. 449 00:27:11,390 --> 00:27:15,280 More modern incarnations of computer science and programming. 450 00:27:15,280 --> 00:27:19,720 Looking at HTTP and the web and web programming, more generally, 451 00:27:19,720 --> 00:27:22,000 and also at topics like machine learning. 452 00:27:22,000 --> 00:27:24,950 All the rage these days with Uber and other companies 453 00:27:24,950 --> 00:27:27,820 is the idea of self-driving cars and the implications 454 00:27:27,820 --> 00:27:29,931 of that and the technology behind that. 455 00:27:29,931 --> 00:27:32,680 And so did we introduce this topic, thanks to our friends at Yale, 456 00:27:32,680 --> 00:27:34,280 for the very first time. 457 00:27:34,280 --> 00:27:37,720 And then at the end of the semester do we move away from C altogether 458 00:27:37,720 --> 00:27:41,654 and introduce students to a bit of Python and SQL and JavaScript. 459 00:27:41,654 --> 00:27:44,320 These are just different programming languages, if not familiar. 460 00:27:44,320 --> 00:27:48,410 But the goal is so that when students take a class like CS50 and exit it, 461 00:27:48,410 --> 00:27:52,990 they don't say, I learned C, one specific programming language, rather, 462 00:27:52,990 --> 00:27:56,920 they say, I learned computer science, but more specifically in programming, 463 00:27:56,920 --> 00:28:00,550 I learned how to program with procedural or imperative languages, 464 00:28:00,550 --> 00:28:01,987 for those familiar. 465 00:28:01,987 --> 00:28:03,820 But what is the structure of the class then? 466 00:28:03,820 --> 00:28:06,610 In Cambridge and at Harvard and Yale it's 467 00:28:06,610 --> 00:28:09,730 12 weeks, though this is different based on the various geographies 468 00:28:09,730 --> 00:28:11,320 and where students take the class. 469 00:28:11,320 --> 00:28:15,790 At Harvard there's eight homeworks or nine homeworks, one exam, one quiz, 470 00:28:15,790 --> 00:28:18,940 and one final project, the last of which is the most impactful. 471 00:28:18,940 --> 00:28:23,170 It's an opportunity for students, without being told by us what to do, 472 00:28:23,170 --> 00:28:26,200 it's an opportunity for them to design and implement 473 00:28:26,200 --> 00:28:28,390 a project of their very own. 474 00:28:28,390 --> 00:28:31,210 But it's really in terms of the course's problem sets 475 00:28:31,210 --> 00:28:34,690 that students have the most challenges and learn the most. 476 00:28:34,690 --> 00:28:37,330 It's one thing to just listen to someone like me speak 477 00:28:37,330 --> 00:28:39,610 or even attend section or office hours. 478 00:28:39,610 --> 00:28:44,170 Most of students' time is spent on these problem sets, [SPANISH],, 479 00:28:44,170 --> 00:28:48,970 and they cover very domain inspired or specific problems. 480 00:28:48,970 --> 00:28:52,300 In Scratch, for instance, this is a graphical programming language 481 00:28:52,300 --> 00:28:56,390 where you can drag and drop puzzle pieces on the screen that lock together 482 00:28:56,390 --> 00:28:58,990 and then make characters on the screen animate. 483 00:28:58,990 --> 00:29:01,856 In C then do we implement-- 484 00:29:01,856 --> 00:29:03,730 if you're familiar with Super Mario Brothers, 485 00:29:03,730 --> 00:29:05,830 a little something like Super Mario Brothers 486 00:29:05,830 --> 00:29:09,580 Pyramid using a very simple language with which most students are not yet 487 00:29:09,580 --> 00:29:10,510 familiar. 488 00:29:10,510 --> 00:29:13,870 But then we very quickly transition to topics like cryptography. 489 00:29:13,870 --> 00:29:17,006 And those who might know, what is cryptography? 490 00:29:17,006 --> 00:29:18,290 AUDIENCE: Hiding information? 491 00:29:18,290 --> 00:29:19,748 DAVID J. MALAN: Hiding information. 492 00:29:19,748 --> 00:29:22,860 So if you want to send a secret message to a friend in class, 493 00:29:22,860 --> 00:29:25,140 you could just write it in English or Spanish. 494 00:29:25,140 --> 00:29:27,840 But if the teacher intercepts it, he or she, of course, 495 00:29:27,840 --> 00:29:29,530 will know what you're talking about. 496 00:29:29,530 --> 00:29:33,270 So maybe instead of doing that, you change all of your letters. 497 00:29:33,270 --> 00:29:38,670 A becomes B, B becomes C, or something more sophisticated than that. 498 00:29:38,670 --> 00:29:41,780 That might be encryption, encoding the information in some way. 499 00:29:41,780 --> 00:29:44,250 So we have students for this homework assignment 500 00:29:44,250 --> 00:29:49,682 actually implement a program that encrypts and decrypts information. 501 00:29:49,682 --> 00:29:52,890 And for the more comfortable students in the class, and this is a key detail, 502 00:29:52,890 --> 00:29:56,130 too, we traditionally have different tracks within the class. 503 00:29:56,130 --> 00:30:00,100 A track for students less comfortable, and students more comfortable, 504 00:30:00,100 --> 00:30:02,220 and then students somewhere in between, each 505 00:30:02,220 --> 00:30:06,090 of whom can decide whether to do the less comfortable or the more 506 00:30:06,090 --> 00:30:10,050 comfortable homework assignments that are equally weighted, just as important 507 00:30:10,050 --> 00:30:11,170 as each other. 508 00:30:11,170 --> 00:30:13,470 But in this case, too, we might give students 509 00:30:13,470 --> 00:30:17,460 a bunch of passwords from an actual computer system that are encrypted 510 00:30:17,460 --> 00:30:20,230 or technically hashed in some way. 511 00:30:20,230 --> 00:30:23,820 And they have to write software that cracks those passwords, 512 00:30:23,820 --> 00:30:27,780 figures out what they are by writing software that kind of guesses 513 00:30:27,780 --> 00:30:28,920 intelligently. 514 00:30:28,920 --> 00:30:30,900 Well, maybe it's a word in a dictionary. 515 00:30:30,900 --> 00:30:32,400 Maybe it's a birthdate. 516 00:30:32,400 --> 00:30:34,590 Maybe it's something that's very common. 517 00:30:34,590 --> 00:30:38,730 And the goal is to crack those passwords as quickly as possible. 518 00:30:38,730 --> 00:30:39,620 Game of 15. 519 00:30:39,620 --> 00:30:43,770 We give students code for the very first time, 100 or more lines of code, 520 00:30:43,770 --> 00:30:46,920 that they have to first read and understand and then add to. 521 00:30:46,920 --> 00:30:49,930 So you're not only starting with an empty window. 522 00:30:49,930 --> 00:30:50,670 Forensics. 523 00:30:50,670 --> 00:30:52,170 One of my favorite. 524 00:30:52,170 --> 00:30:55,710 Typically, we'll walk around campus taking digital photos 525 00:30:55,710 --> 00:30:58,710 of people, places, or things. 526 00:30:58,710 --> 00:31:03,060 And then every year I accidentally delete the photos from my phone 527 00:31:03,060 --> 00:31:04,260 or from my camera. 528 00:31:04,260 --> 00:31:08,010 And so we make what's called a forensic image of the data. 529 00:31:08,010 --> 00:31:12,600 Just copy all of the 0's and 1's off of the device and into a file, 530 00:31:12,600 --> 00:31:15,060 give students that file, and then they have 531 00:31:15,060 --> 00:31:20,010 to write software to recover all of the photographs from that file, 532 00:31:20,010 --> 00:31:23,920 hopefully recovering all of the photographs that I, myself, lost. 533 00:31:23,920 --> 00:31:26,640 Thereafter do we implement misspellings. 534 00:31:26,640 --> 00:31:30,390 So here we challenge students not just to write correct code, 535 00:31:30,390 --> 00:31:33,840 but to write good code, efficient code that isn't necessarily 536 00:31:33,840 --> 00:31:38,010 theoretically good, but actually good in terms of performance. 537 00:31:38,010 --> 00:31:42,270 We give students a big file of 150,000 words-- 538 00:31:42,270 --> 00:31:46,770 so a really big file-- and they have to implement a spell checker but data 539 00:31:46,770 --> 00:31:50,280 structures underneath the hood that implement a spell 540 00:31:50,280 --> 00:31:53,080 checker as quickly as possible. 541 00:31:53,080 --> 00:31:57,720 And we measure how much time they use on the CPU, the brains of the computer, 542 00:31:57,720 --> 00:32:02,820 and we measure how much RAM or memory they use to actually run their code. 543 00:32:02,820 --> 00:32:05,070 And then we have a leaderboard a ranking, 544 00:32:05,070 --> 00:32:07,380 if students opt in, where you can see how 545 00:32:07,380 --> 00:32:09,660 you're doing compared to your friends in terms 546 00:32:09,660 --> 00:32:14,460 of minimizing just how much memory and CPU time you might be using. 547 00:32:14,460 --> 00:32:19,530 And then lastly do we transition to web programming and Python in particular. 548 00:32:19,530 --> 00:32:23,040 We introduced for the first time this past year something called sentiment 549 00:32:23,040 --> 00:32:28,110 analysis in the area of artificial intelligence where, at the time-- 550 00:32:28,110 --> 00:32:29,610 it was funny at the time-- 551 00:32:29,610 --> 00:32:32,100 we wrote code or we had students write code 552 00:32:32,100 --> 00:32:35,440 to analyze the sentiment of tweets. 553 00:32:35,440 --> 00:32:39,540 So we wanted students to determine if you read a tweet with your program, 554 00:32:39,540 --> 00:32:42,030 is it a positive, like a happy tweet, or is it 555 00:32:42,030 --> 00:32:44,310 negative or a mean or angry tweet? 556 00:32:44,310 --> 00:32:46,380 So green or red, for instance. 557 00:32:46,380 --> 00:32:49,950 And we encouraged students at the time to, for instance, 558 00:32:49,950 --> 00:32:54,360 analyze maybe a certain Donald Trump's tweets to see just how red 559 00:32:54,360 --> 00:32:57,150 or read they might be and Hillary Clinton and some 560 00:32:57,150 --> 00:32:58,650 of the other candidates at the time. 561 00:32:58,650 --> 00:33:03,090 And this we gave them a really big file of positive words and a really big file 562 00:33:03,090 --> 00:33:07,710 of negative words that humans generally think of as positive versus negative-- 563 00:33:07,710 --> 00:33:12,060 beautiful versus ugly, hot versus cold, or something like that-- 564 00:33:12,060 --> 00:33:16,440 they're opposite-type words-- so that they could then analyze the data. 565 00:33:16,440 --> 00:33:17,910 And then CS50 finance. 566 00:33:17,910 --> 00:33:21,630 We have students write code and build a web application 567 00:33:21,630 --> 00:33:25,200 using Python and using SQL, a database language, 568 00:33:25,200 --> 00:33:29,490 via which they implement the notion of buying and selling stocks. 569 00:33:29,490 --> 00:33:34,530 They write code that gives all of their users an imaginary $10,000 570 00:33:34,530 --> 00:33:35,910 US, for instance. 571 00:33:35,910 --> 00:33:40,710 And they can then invest that money by buying or selling stocks and talking 572 00:33:40,710 --> 00:33:46,390 to Yahoo Finance, which provides, for instance, nearly real time stock 573 00:33:46,390 --> 00:33:46,890 quotes. 574 00:33:46,890 --> 00:33:50,880 And so you have your own website that simulates what it is to work in finance 575 00:33:50,880 --> 00:33:52,740 or be an investor yourself. 576 00:33:52,740 --> 00:33:54,900 And then lastly, mashup, for instance. 577 00:33:54,900 --> 00:33:57,690 A website that uses JavaScript, yet another language, 578 00:33:57,690 --> 00:34:02,040 has students implement a map using Google Maps and their API, so to speak, 579 00:34:02,040 --> 00:34:05,160 their free software so that you can click and drag and navigate 580 00:34:05,160 --> 00:34:11,020 news articles based on different cities or countries around the world. 581 00:34:11,020 --> 00:34:14,520 So what is the course itself structured as? 582 00:34:14,520 --> 00:34:18,090 And where might you see yourselves in this picture? 583 00:34:18,090 --> 00:34:22,389 So in Cambridge over the past 10-plus years has enrollment looked like this. 584 00:34:22,389 --> 00:34:26,580 Computer science is there, say, very popular right now. 585 00:34:26,580 --> 00:34:28,300 When I inherited the course back then, we 586 00:34:28,300 --> 00:34:31,699 started the year prior with maybe 100 students give or take. 587 00:34:31,699 --> 00:34:35,420 And we're now up to 700 or so students every semester. 588 00:34:35,420 --> 00:34:38,230 So there's been this big influx of students and interest, 589 00:34:38,230 --> 00:34:42,310 but simultaneously has there been a big investment and a big influx 590 00:34:42,310 --> 00:34:44,199 on our part of support. 591 00:34:44,199 --> 00:34:47,290 For the 700 students we have at Harvard, for instance, 592 00:34:47,290 --> 00:34:52,120 we have nearly 80 teaching fellows or course assistants, 80, 593 00:34:52,120 --> 00:34:55,179 who themselves are almost entirely students. 594 00:34:55,179 --> 00:34:58,360 And this, too, is one of the unusual aspects of CS50. 595 00:34:58,360 --> 00:35:01,930 It's not just 40-year-olds like me teaching CS50. 596 00:35:01,930 --> 00:35:03,160 It's undergraduates. 597 00:35:03,160 --> 00:35:06,970 It's students who took the class just one year ago who, 598 00:35:06,970 --> 00:35:10,240 therefore, are more comfortable than they used to be with the material. 599 00:35:10,240 --> 00:35:11,440 And they lead the sections. 600 00:35:11,440 --> 00:35:13,150 And they lead the office hours. 601 00:35:13,150 --> 00:35:16,120 And they ultimately teach their own classmates. 602 00:35:16,120 --> 00:35:17,995 What's been interesting, too, to see is this. 603 00:35:17,995 --> 00:35:20,060 This is a lot of numbers and colors. 604 00:35:20,060 --> 00:35:23,800 But in blue are students less comfortable. 605 00:35:23,800 --> 00:35:27,520 In orange are students more comfortable. 606 00:35:27,520 --> 00:35:29,540 In red are somewhere in between. 607 00:35:29,540 --> 00:35:34,240 And so what this means is that in 2008 about 34% of the class 608 00:35:34,240 --> 00:35:36,670 described themselves as less comfortable. 609 00:35:36,670 --> 00:35:41,890 Now they're a majority of the class composing 62%. 610 00:35:41,890 --> 00:35:44,220 Twice as many students essentially. 611 00:35:44,220 --> 00:35:48,400 And so this, too, has required that we adjust the course's support structure 612 00:35:48,400 --> 00:35:51,610 so that those students with less experience and less comfort 613 00:35:51,610 --> 00:35:55,490 aren't dropping the class, aren't struggling more than they need to. 614 00:35:55,490 --> 00:35:58,210 And it's absolutely the case that for those less comfortable, 615 00:35:58,210 --> 00:36:02,230 less experienced students, the course will absolutely take a lot of time. 616 00:36:02,230 --> 00:36:05,480 And it might take them more time, even twice as much time. 617 00:36:05,480 --> 00:36:09,220 But the key ingredient and design principle underlying CS50 618 00:36:09,220 --> 00:36:13,000 is that all students, irrespective of their background, 619 00:36:13,000 --> 00:36:16,270 should be able to succeed given the right resources 620 00:36:16,270 --> 00:36:19,270 and given the right amount of time. 621 00:36:19,270 --> 00:36:21,370 And here's just a glimpse then, for instance, 622 00:36:21,370 --> 00:36:25,630 of the teaching team we have at Harvard teaching CS50 last fall. 623 00:36:25,630 --> 00:36:28,360 And almost all of the faces pictured here 624 00:36:28,360 --> 00:36:33,437 were themselves students who took the class one or two or three years prior. 625 00:36:33,437 --> 00:36:35,020 What does the course itself look like? 626 00:36:35,020 --> 00:36:38,950 It has lectures once a week in a place like Sanders Theater or on video 627 00:36:38,950 --> 00:36:43,790 for students to watch, sections, which are smaller classes with 10, 20, 628 00:36:43,790 --> 00:36:47,830 30 students and one teaching fellow reviewing material, answering 629 00:36:47,830 --> 00:36:50,350 questions, and doing what we couldn't really do in a space 630 00:36:50,350 --> 00:36:51,940 as large as this together. 631 00:36:51,940 --> 00:36:52,990 And then office hours. 632 00:36:52,990 --> 00:36:54,640 And this, too, is a key detail. 633 00:36:54,640 --> 00:36:57,377 We have a space on campus, much like the space you have here 634 00:36:57,377 --> 00:36:59,710 with all the photographs on the wall, where students can 635 00:36:59,710 --> 00:37:02,620 go for help really throughout the week. 636 00:37:02,620 --> 00:37:06,100 At almost any hour at Harvard can students drop in on a space, 637 00:37:06,100 --> 00:37:09,220 meet some of their classmates and meet some of the teaching fellows 638 00:37:09,220 --> 00:37:14,530 and ultimately get their questions answered on some homework assignments. 639 00:37:14,530 --> 00:37:18,760 And if you're curious and if you're in CS50 now and you've been struggling 640 00:37:18,760 --> 00:37:21,100 or maybe you were in CS50 and struggled and thought, 641 00:37:21,100 --> 00:37:23,950 wow, this isn't for me, because look at how much time it's taking, 642 00:37:23,950 --> 00:37:26,320 I mean, here at Harvard these lines represent 643 00:37:26,320 --> 00:37:28,210 the average number of hours students tend 644 00:37:28,210 --> 00:37:30,610 to take on each of the problem sets. 645 00:37:30,610 --> 00:37:33,850 The horizontal line here means it was about six hours for problem 646 00:37:33,850 --> 00:37:34,884 set zero for Scratch. 647 00:37:34,884 --> 00:37:38,050 And that's about right if you get into it and you might have some struggles. 648 00:37:38,050 --> 00:37:40,270 But then certainly later in the semester the average 649 00:37:40,270 --> 00:37:43,300 is closer to 12 or 15 hours. 650 00:37:43,300 --> 00:37:44,950 And that's important to note. 651 00:37:44,950 --> 00:37:48,130 Because it's very normal and it's very usual for students 652 00:37:48,130 --> 00:37:49,570 to take a lot of time. 653 00:37:49,570 --> 00:37:53,220 And indeed, even myself, I don't consider myself a fast programmer. 654 00:37:53,220 --> 00:37:55,510 I don't know if I consider myself a great programmer. 655 00:37:55,510 --> 00:37:57,880 I just know that if I do put in the time, 656 00:37:57,880 --> 00:38:01,310 and I sort of take things step by step and methodically, I 657 00:38:01,310 --> 00:38:02,980 will always find the solution. 658 00:38:02,980 --> 00:38:06,610 And that, honestly, has been very empowering if not challenging 659 00:38:06,610 --> 00:38:10,900 in computer science and in programming specifically at least at this level 660 00:38:10,900 --> 00:38:14,800 when you're just learning material and you're learning what others before you 661 00:38:14,800 --> 00:38:16,030 have discovered already. 662 00:38:16,030 --> 00:38:18,280 And that's, of course, the even harder part. 663 00:38:18,280 --> 00:38:19,540 There's always an answer. 664 00:38:19,540 --> 00:38:22,270 There's always a way to get your code correct. 665 00:38:22,270 --> 00:38:23,530 You just need to find it. 666 00:38:23,530 --> 00:38:25,030 You just need to see it. 667 00:38:25,030 --> 00:38:27,976 And it's very gratifying when you finally do. 668 00:38:27,976 --> 00:38:30,100 But of course, it's not just all this kind of work. 669 00:38:30,100 --> 00:38:32,500 As some of you have experienced, CS50 is characterized 670 00:38:32,500 --> 00:38:36,310 by these cultural aspects, these experiences that, frankly, most classes 671 00:38:36,310 --> 00:38:37,560 don't really have. 672 00:38:37,560 --> 00:38:39,820 CS50 Puzzle Day is an opportunity at the start 673 00:38:39,820 --> 00:38:43,510 of the year for students to get together and not work on code, 674 00:38:43,510 --> 00:38:48,220 not even use computers necessarily, but to solve problems, puzzles, riddles, 675 00:38:48,220 --> 00:38:51,460 and word problems really to send the message that computer science is 676 00:38:51,460 --> 00:38:52,990 about problem-solving. 677 00:38:52,990 --> 00:38:54,600 It is not programming. 678 00:38:54,600 --> 00:38:57,100 Even though one of the things you'll spend most of your time 679 00:38:57,100 --> 00:38:59,860 on in an introductory class is programming, 680 00:38:59,860 --> 00:39:04,940 it's just a tool that you use to solve problems and think about problems. 681 00:39:04,940 --> 00:39:07,660 Here is CS50 Puzzle Day in Cambridge. 682 00:39:07,660 --> 00:39:11,200 Here is CS50 Puzzle Day in Nicaragua. 683 00:39:11,200 --> 00:39:15,710 Here is a recent lunch in CS50 back home. 684 00:39:15,710 --> 00:39:16,990 This is purely social. 685 00:39:16,990 --> 00:39:21,490 Like once a week do we get together with 50 or so students just to chat 686 00:39:21,490 --> 00:39:25,000 and just to talk about maybe the course, but probably more likely 687 00:39:25,000 --> 00:39:28,690 what else they do at school or what you can do after class, 688 00:39:28,690 --> 00:39:30,160 what you can do in industry. 689 00:39:30,160 --> 00:39:33,130 And we invite alumni and friends from local companies 690 00:39:33,130 --> 00:39:35,710 to join us for lunch just to chat with students 691 00:39:35,710 --> 00:39:38,500 about why they're taking a class like this in the first place 692 00:39:38,500 --> 00:39:41,020 and how it applies to the real world. 693 00:39:41,020 --> 00:39:43,490 The CS50 Hackathon we started some years ago. 694 00:39:43,490 --> 00:39:46,090 We borrowed the idea from our friends at Facebook. 695 00:39:46,090 --> 00:39:50,260 And the hackathon, in our case, is a 12-hour opportunity 696 00:39:50,260 --> 00:39:53,730 from 7:00 PM at night to 7:00 AM In the morning 697 00:39:53,730 --> 00:39:55,660 to just work on your final projects. 698 00:39:55,660 --> 00:39:58,630 But more than that, have this shared experience 699 00:39:58,630 --> 00:40:00,760 with friends and with classmates, all of whom 700 00:40:00,760 --> 00:40:04,330 might be struggling with similar things and going through it together. 701 00:40:04,330 --> 00:40:08,170 To be fair, staying up all night is a challenge unto itself. 702 00:40:08,170 --> 00:40:13,786 But in our case, we serve pizza at 9:00 PM, usually Chinese food at 1:00 AM. 703 00:40:13,786 --> 00:40:15,660 And then as you may have seen from the video, 704 00:40:15,660 --> 00:40:17,868 there's this place in the US called the International 705 00:40:17,868 --> 00:40:22,240 House of Pancakes or IHOP, which is not really international in any sense. 706 00:40:22,240 --> 00:40:23,020 But we go there. 707 00:40:23,020 --> 00:40:26,800 We drive there at 5:00 AM with anyone who's still awake at that hour. 708 00:40:26,800 --> 00:40:28,780 But of course, not everyone makes it. 709 00:40:28,780 --> 00:40:31,640 This was 4:00 AM one year, for instance. 710 00:40:31,640 --> 00:40:33,880 But by far, one of the most exciting things 711 00:40:33,880 --> 00:40:36,420 and one of the exciting goals of the class 712 00:40:36,420 --> 00:40:38,890 is something like this, our CS50 Fair. 713 00:40:38,890 --> 00:40:40,330 And it didn't start this big. 714 00:40:40,330 --> 00:40:42,370 It was certainly much smaller in its first year. 715 00:40:42,370 --> 00:40:45,730 But it's grown to be an event every year with 2000 716 00:40:45,730 --> 00:40:49,390 or more people coming to see students' final projects 717 00:40:49,390 --> 00:40:52,030 and to see what you can do with computer science. 718 00:40:52,030 --> 00:40:55,510 And indeed, most of the students who take CS50 at Harvard, 719 00:40:55,510 --> 00:40:57,220 they're not computer science students. 720 00:40:57,220 --> 00:40:59,590 They're not going to major in computer science. 721 00:40:59,590 --> 00:41:04,510 90% of them are studying some other field, economics, social sciences, 722 00:41:04,510 --> 00:41:07,740 natural sciences, medicine, the arts. 723 00:41:07,740 --> 00:41:11,500 And for instance, I grabbed a few photos and names from this past year. 724 00:41:11,500 --> 00:41:16,535 Two students named [? Lira ?] and Sarah implemented an app called Audio Chrome. 725 00:41:16,535 --> 00:41:17,410 And this was an app-- 726 00:41:17,410 --> 00:41:19,450 I mentioned this to some of the TFs yesterday-- 727 00:41:19,450 --> 00:41:23,440 where if you're color-blind, you can't see colors properly with your eyes, 728 00:41:23,440 --> 00:41:26,790 but you do have a phone, you can point your phone at something 729 00:41:26,790 --> 00:41:29,680 and decide just what color these flowers are. 730 00:41:29,680 --> 00:41:32,260 Or more compellingly when getting dressed in the morning, 731 00:41:32,260 --> 00:41:35,140 do these pants match this shirt or this tie? 732 00:41:35,140 --> 00:41:37,180 Because the phone can answer questions that you, 733 00:41:37,180 --> 00:41:38,960 yourself, might not be able to. 734 00:41:38,960 --> 00:41:42,940 And they implemented software for iPhone that did exactly that. 735 00:41:42,940 --> 00:41:45,190 Nick, for instance, is a musician. 736 00:41:45,190 --> 00:41:48,730 And he can read sheet music on paper or on the screen. 737 00:41:48,730 --> 00:41:52,480 And he wrote software that converted musical notes on scales 738 00:41:52,480 --> 00:41:56,380 like this to actual computer readable data 739 00:41:56,380 --> 00:41:58,760 so that it could then be synthesized by the computer, 740 00:41:58,760 --> 00:42:01,270 even though it had started in this form, using something 741 00:42:01,270 --> 00:42:04,930 called optical character recognition, letting the computer and machine 742 00:42:04,930 --> 00:42:08,840 vision, so to speak, figure out what those notes represent. 743 00:42:08,840 --> 00:42:13,030 Lucas here was using Amazon Alexa, I believe, here. 744 00:42:13,030 --> 00:42:15,280 He's talking into it on the right-hand side there. 745 00:42:15,280 --> 00:42:16,840 And it was connected to his computer. 746 00:42:16,840 --> 00:42:20,500 Because Alexa, like a Google Home and a lot of these new devices 747 00:42:20,500 --> 00:42:25,360 that are voice-activated, have APIs, application programming interfaces, 748 00:42:25,360 --> 00:42:27,580 via which you can teach them to do new things 749 00:42:27,580 --> 00:42:30,430 and do projects that are of interest to you, not just what 750 00:42:30,430 --> 00:42:35,370 Amazon or Google or other companies decide you should have in your home. 751 00:42:35,370 --> 00:42:39,797 Jeanette, Ken, and Mary here implemented something called Drop the Ramen. 752 00:42:39,797 --> 00:42:42,130 At least in the US it's very common for college students 753 00:42:42,130 --> 00:42:46,360 to eat a lot of ramen or dried noodles late at night, for instance. 754 00:42:46,360 --> 00:42:49,060 And they wrote an app that makes it a lot easier for students 755 00:42:49,060 --> 00:42:53,350 to figure out healthier meals to make using the limited ingredients they 756 00:42:53,350 --> 00:42:54,760 might actually have. 757 00:42:54,760 --> 00:42:56,560 And then this one too. 758 00:42:56,560 --> 00:43:00,670 I didn't even know before meeting Luke at Yale a year ago 759 00:43:00,670 --> 00:43:01,900 that this data was collected. 760 00:43:01,900 --> 00:43:05,290 But it turns out in the NBA, the basketball association, 761 00:43:05,290 --> 00:43:08,170 and in a lot of sports, they collect a huge amount of data now. 762 00:43:08,170 --> 00:43:10,810 For instance, if you shoot a shot in a basketball court, 763 00:43:10,810 --> 00:43:13,510 they very often use computers to record where 764 00:43:13,510 --> 00:43:16,300 that shot was taken physically on the floor, who took it, 765 00:43:16,300 --> 00:43:18,490 did it actually go into the net or not. 766 00:43:18,490 --> 00:43:22,480 And so Luke used this data and actually made a visualization here, 767 00:43:22,480 --> 00:43:26,980 for instance, of LeBron James actually depicting where in green he made shots, 768 00:43:26,980 --> 00:43:31,510 where in red he missed shots, thereby merging the ideas of visualization 769 00:43:31,510 --> 00:43:34,210 and programming to actually do something that could help you, 770 00:43:34,210 --> 00:43:37,030 the athlete, perhaps make better sense of where you're good. 771 00:43:37,030 --> 00:43:38,920 Apparently, layups are pretty easy. 772 00:43:38,920 --> 00:43:41,420 So there's a lot of green over here. 773 00:43:41,420 --> 00:43:44,110 And it's not necessarily clear if there is a pattern elsewhere. 774 00:43:44,110 --> 00:43:46,450 But perhaps there is and you can get better 775 00:43:46,450 --> 00:43:49,090 at what it is you do as a result. 776 00:43:49,090 --> 00:43:52,590 And you see ultimately at the CS50 Fair faces like these 777 00:43:52,590 --> 00:43:54,340 and faces of your own classmates hopefully 778 00:43:54,340 --> 00:43:57,730 delighting in the kind of projects that have been implemented. 779 00:43:57,730 --> 00:43:59,652 And that, too, is ultimately one of the goals. 780 00:43:59,652 --> 00:44:01,360 To actually be proud of something you do. 781 00:44:01,360 --> 00:44:03,580 And not just do homework week after week, 782 00:44:03,580 --> 00:44:07,270 but to build something that's ultimately your own. 783 00:44:07,270 --> 00:44:11,800 Now in CS50x, from which CS50x Nicaragua is derivative, of course, 784 00:44:11,800 --> 00:44:13,840 it is exactly the same curriculum. 785 00:44:13,840 --> 00:44:15,550 It is exactly the same tools. 786 00:44:15,550 --> 00:44:18,070 And ideally, it's exactly the same experience. 787 00:44:18,070 --> 00:44:21,100 We don't have the luxury of being in the same physical place, 788 00:44:21,100 --> 00:44:23,380 but do we have opportunities for our students online 789 00:44:23,380 --> 00:44:26,800 to have Puzzle Day experiences and fairs online 790 00:44:26,800 --> 00:44:30,410 and to meet locally with students much like is happening here. 791 00:44:30,410 --> 00:44:32,890 We typically stretch that version of the class-- 792 00:44:32,890 --> 00:44:34,150 freely available through edX-- 793 00:44:34,150 --> 00:44:36,670 over 52 weeks, a full year. 794 00:44:36,670 --> 00:44:39,670 And the workload is ultimately almost the same. 795 00:44:39,670 --> 00:44:42,700 The nine homework assignments and the final project, but not, 796 00:44:42,700 --> 00:44:45,820 for instance, the exams, simply because most students taking 797 00:44:45,820 --> 00:44:48,010 the course through edX are really doing it just 798 00:44:48,010 --> 00:44:50,890 for their own interest and edification and there's not 799 00:44:50,890 --> 00:44:52,360 that same need for rigor. 800 00:44:52,360 --> 00:44:55,490 But for those students do we have huge communities online. 801 00:44:55,490 --> 00:44:57,490 You might recognize some of these websites here, 802 00:44:57,490 --> 00:45:01,930 certainly Facebook and Twitter, but also Reddit and Stack Exchange 803 00:45:01,930 --> 00:45:04,540 and, oh, there's still Slack nowadays, too, 804 00:45:04,540 --> 00:45:07,720 where right now if I went into CS50's Facebook group, 805 00:45:07,720 --> 00:45:11,230 and you guys have your own here for CS50x Nicaragua, within minutes, 806 00:45:11,230 --> 00:45:13,630 typically, if I post a question in that community 807 00:45:13,630 --> 00:45:17,320 with some 100,000 Facebook users, you get an answer. 808 00:45:17,320 --> 00:45:19,814 And you might actually be able to connect with them 809 00:45:19,814 --> 00:45:21,230 and see students around the world. 810 00:45:21,230 --> 00:45:23,500 And this has been one of the most impactful things 811 00:45:23,500 --> 00:45:27,790 by far how students across the world, who wouldn't otherwise necessarily have 812 00:45:27,790 --> 00:45:31,540 need or opportunity to meet each other or talk about something, 813 00:45:31,540 --> 00:45:34,090 coming together to share in some experience 814 00:45:34,090 --> 00:45:36,610 and ultimately learn some topic. 815 00:45:36,610 --> 00:45:41,320 At Yale, meanwhile, this has been one of our most tight-knit relationships. 816 00:45:41,320 --> 00:45:44,050 Historically, Harvard and Yale are kind of competitors. 817 00:45:44,050 --> 00:45:48,010 And we are single-handedly trying to solve 300 years of strife. 818 00:45:48,010 --> 00:45:51,470 But in this case do we have students taking the same course at both Harvard 819 00:45:51,470 --> 00:45:51,970 and Yale. 820 00:45:51,970 --> 00:45:55,390 And most importantly do we have undergraduate teaching fellows 821 00:45:55,390 --> 00:45:57,760 teaching the class on both campuses. 822 00:45:57,760 --> 00:46:00,850 And this was the proverbial chicken and the egg problem at first. 823 00:46:00,850 --> 00:46:05,620 If CS50 is mostly taught not just by me, but by our undergraduate teaching 824 00:46:05,620 --> 00:46:08,110 fellows or course assistants as we call them, 825 00:46:08,110 --> 00:46:10,630 well, it's kind of hard to do that at Yale if no one at Yale 826 00:46:10,630 --> 00:46:12,430 has ever taken CS50. 827 00:46:12,430 --> 00:46:14,950 And so we spent quite a bit of time the previous year 828 00:46:14,950 --> 00:46:19,090 training students, having them do the course's problem sets on their own, 829 00:46:19,090 --> 00:46:23,110 and ultimately bootstrapping, so to speak, a support structure, 830 00:46:23,110 --> 00:46:26,530 so that now they are on their way to functioning exactly 831 00:46:26,530 --> 00:46:28,450 as we have in Cambridge. 832 00:46:28,450 --> 00:46:32,110 And indeed, this was one of the event where we first recruited students 833 00:46:32,110 --> 00:46:32,640 to teach. 834 00:46:32,640 --> 00:46:34,900 And indeed, one of the most remarkable things 835 00:46:34,900 --> 00:46:39,070 here is, too, the idea of undergraduate students-- students in university-- 836 00:46:39,070 --> 00:46:42,640 teaching other students in university is sometimes controversial. 837 00:46:42,640 --> 00:46:45,580 Even at Harvard, most departments do not allow this. 838 00:46:45,580 --> 00:46:50,500 And the reality was that Yale as the result of CS50 being taught there, Yale 839 00:46:50,500 --> 00:46:54,490 University, after 200 years, now allows undergraduates 840 00:46:54,490 --> 00:46:57,640 to teach other undergraduates in roles like this. 841 00:46:57,640 --> 00:47:00,760 And this is now something they're rolling out to other computer science 842 00:47:00,760 --> 00:47:02,450 courses at Yale as well. 843 00:47:02,450 --> 00:47:06,910 And so this was our first cohort of Yale students just over a year ago. 844 00:47:06,910 --> 00:47:08,950 And this was their CS50 Fair. 845 00:47:08,950 --> 00:47:12,680 They, too, have a very Hogwarts-like space as well. 846 00:47:12,680 --> 00:47:15,790 Now, if curious, CS50 for MBAs is different. 847 00:47:15,790 --> 00:47:18,880 It focuses not so much on that same broad community 848 00:47:18,880 --> 00:47:22,930 and focuses not so much on that hands-on building of software, 849 00:47:22,930 --> 00:47:27,010 but it focuses on ideas, cloud computing, programming languages 850 00:47:27,010 --> 00:47:30,040 in general database design, computational thinking, 851 00:47:30,040 --> 00:47:34,300 a lot of the ingredients that a computer scientist and engineer ultimately 852 00:47:34,300 --> 00:47:36,430 learns in courses about computer science, 853 00:47:36,430 --> 00:47:38,980 but that's because he or she in a course like CS50 854 00:47:38,980 --> 00:47:41,890 itself is going to use those skills themselves. 855 00:47:41,890 --> 00:47:45,580 But it's incredibly and increasingly important in business or in politics 856 00:47:45,580 --> 00:47:50,230 or in any number of fields just to understand what is the cloud, right? 857 00:47:50,230 --> 00:47:53,020 Odds are everyone in this room has heard of the cloud. 858 00:47:53,020 --> 00:47:55,255 But if I may, what is the cloud? 859 00:47:55,255 --> 00:47:58,190 860 00:47:58,190 --> 00:47:58,940 What is the cloud? 861 00:47:58,940 --> 00:47:59,470 Yes. 862 00:47:59,470 --> 00:48:02,831 AUDIENCE: It's a virtual space in many servers spread across the world, where 863 00:48:02,831 --> 00:48:03,872 people store information. 864 00:48:03,872 --> 00:48:05,276 You can access it from anywhere. 865 00:48:05,276 --> 00:48:06,290 DAVID J. MALAN: Yeah, absolutely. 866 00:48:06,290 --> 00:48:06,994 Virtual space. 867 00:48:06,994 --> 00:48:07,910 Anywhere in the world. 868 00:48:07,910 --> 00:48:09,950 Servers that you can use anywhere in the world. 869 00:48:09,950 --> 00:48:13,220 But at the end of the day, frankly, this and so many terms 870 00:48:13,220 --> 00:48:18,930 really are just marketing phrases to describe more interesting technologies. 871 00:48:18,930 --> 00:48:23,120 In this case, the cloud is really just about using someone else's servers. 872 00:48:23,120 --> 00:48:25,310 And this has been possible for decades. 873 00:48:25,310 --> 00:48:27,254 But once you put a nice little icon on it 874 00:48:27,254 --> 00:48:29,420 and you call it iCloud and the like do you have what 875 00:48:29,420 --> 00:48:33,740 seems to be a whole new technology that you're not necessarily keeping up with. 876 00:48:33,740 --> 00:48:37,850 But the reality is, the underlying technologies are largely invariant. 877 00:48:37,850 --> 00:48:40,210 And so with our MBA and our business students 878 00:48:40,210 --> 00:48:43,550 do we help them try to sift through what is meaningful, 879 00:48:43,550 --> 00:48:45,890 what are just buzzwords or expressions so that they 880 00:48:45,890 --> 00:48:48,680 can make better decisions, ultimately, and actually 881 00:48:48,680 --> 00:48:52,520 know what the cloud, so to speak, offers in terms of actually solving business 882 00:48:52,520 --> 00:48:55,440 problems or costs that they might have. 883 00:48:55,440 --> 00:48:58,310 And then lastly, the last flavor of CS50 at scale 884 00:48:58,310 --> 00:49:01,590 now is this, CS50 AP or advanced placement, 885 00:49:01,590 --> 00:49:04,730 which is just an adaptation of the course for high schools using 886 00:49:04,730 --> 00:49:07,970 the same curriculum, the same technologies, 887 00:49:07,970 --> 00:49:11,900 but spread over, typically, 36 weeks, give or take, 888 00:49:11,900 --> 00:49:14,840 with what are required by the AP College Board. 889 00:49:14,840 --> 00:49:16,760 The College Board is a group that essentially 890 00:49:16,760 --> 00:49:18,770 decrees how you standardize tests. 891 00:49:18,770 --> 00:49:22,550 And so in CS50 AP there's not just the problem sets. 892 00:49:22,550 --> 00:49:27,410 There's performance tasks and an exam that's required for AP credit. 893 00:49:27,410 --> 00:49:29,600 But this is really just an implementation detail. 894 00:49:29,600 --> 00:49:34,130 What's important with CS50 AP that in 2015 it represented 895 00:49:34,130 --> 00:49:36,110 a significant change on our part. 896 00:49:36,110 --> 00:49:39,500 For many years had we focused almost entirely on students-- 897 00:49:39,500 --> 00:49:42,290 providing students with freely available resources 898 00:49:42,290 --> 00:49:46,350 and homework assignments and tools and sample solutions and the like-- 899 00:49:46,350 --> 00:49:50,540 but we didn't really focus at all on teachers and sort of uplifting teachers 900 00:49:50,540 --> 00:49:54,060 to be more comfortable themselves so that we could achieve ultimately 901 00:49:54,060 --> 00:49:57,200 more of a network effect, more of an exponentiation. 902 00:49:57,200 --> 00:49:59,840 We've never thought it's interesting, frankly, in CS50 903 00:49:59,840 --> 00:50:05,000 that we had, like, 1 million students who've registered for CS50x. 904 00:50:05,000 --> 00:50:08,420 I don't think we can do an especially good job teaching, on our own, 905 00:50:08,420 --> 00:50:12,330 100,000 or 200,000 people at that kind of scale. 906 00:50:12,330 --> 00:50:16,040 Far more important is to have people locally 907 00:50:16,040 --> 00:50:18,500 supporting students and answering questions 908 00:50:18,500 --> 00:50:20,370 and creating those local communities. 909 00:50:20,370 --> 00:50:23,150 And this is exactly by way of these resources 910 00:50:23,150 --> 00:50:26,720 what we now provide to our teachers, both at the university level, 911 00:50:26,720 --> 00:50:29,460 but also and initially at the high school level 912 00:50:29,460 --> 00:50:31,520 so that they have absolutely as much as they need 913 00:50:31,520 --> 00:50:33,740 and so that they don't, as in the US, need 914 00:50:33,740 --> 00:50:37,310 to just adopt curriculum that come from textbook companies, 915 00:50:37,310 --> 00:50:40,950 for instance, who have traditionally decreed what a class would be like. 916 00:50:40,950 --> 00:50:44,000 But teachers can now use this as a menu of options. 917 00:50:44,000 --> 00:50:47,150 We also provide our teachers with CS50 Puzzle Day in a box 918 00:50:47,150 --> 00:50:49,580 and the hackathon in the box in the fair in the box. 919 00:50:49,580 --> 00:50:52,700 So boxes of just swag and fun things and the puzzles 920 00:50:52,700 --> 00:50:57,830 themselves so that teachers can run these events at their own places. 921 00:50:57,830 --> 00:51:01,280 So ultimately, and we were chatting a few of us about this just a little 922 00:51:01,280 --> 00:51:04,730 bit ago, there's really three characteristics that characterize 923 00:51:04,730 --> 00:51:07,910 CS50 at Harvard and also CS50 at scale. 924 00:51:07,910 --> 00:51:10,130 It's that first and foremost accessibility. 925 00:51:10,130 --> 00:51:13,880 Trying to create an educational experience at which any student can 926 00:51:13,880 --> 00:51:18,290 succeed irrespective of his or her prior experience in CS or not, 927 00:51:18,290 --> 00:51:22,160 changing that slope, so to speak, that on ramp, but maintaining, 928 00:51:22,160 --> 00:51:26,510 ultimately, the rigor that the course in the field itself has long had. 929 00:51:26,510 --> 00:51:30,620 It's very easy, I daresay, to make a popular very large class 930 00:51:30,620 --> 00:51:34,740 by just lowering your expectations and making it easier and making it fun, 931 00:51:34,740 --> 00:51:36,560 but really watering it down. 932 00:51:36,560 --> 00:51:40,147 But what's so, I think, impactful about a more rigorous introduction 933 00:51:40,147 --> 00:51:42,230 is that of all the classes that you might have had 934 00:51:42,230 --> 00:51:44,521 and, frankly, of all the classes I might have had, it's 935 00:51:44,521 --> 00:51:47,690 those where I put in the most time, and struggle the most, 936 00:51:47,690 --> 00:51:51,110 and yet somehow still like the most that I feel in retrospect, 937 00:51:51,110 --> 00:51:53,330 wow, like, that was worthwhile. 938 00:51:53,330 --> 00:51:56,390 I might not want to take four of those classes a semester 939 00:51:56,390 --> 00:52:01,070 or more classes a semester, but among those defining educational experiences 940 00:52:01,070 --> 00:52:03,860 you have, whether it's in CS or any other field, the ones 941 00:52:03,860 --> 00:52:07,370 that you're really proud of what you achieve at the end. 942 00:52:07,370 --> 00:52:10,700 And indeed, I thought I would end with just this visual, one of the aspects 943 00:52:10,700 --> 00:52:12,650 of which we are ourselves so proud. 944 00:52:12,650 --> 00:52:14,990 You'll recognize some familiar faces here. 945 00:52:14,990 --> 00:52:18,530 It's been such an honor to be here today and yesterday and tomorrow. 946 00:52:18,530 --> 00:52:22,640 And so thank you all, to Carlos and Sylvio and all of our hosts here today. 947 00:52:22,640 --> 00:52:24,110 I'm happy to take any questions. 948 00:52:24,110 --> 00:52:27,536 But this then was CS50. 949 00:52:27,536 --> 00:52:31,440 [APPLAUSE] 950 00:52:31,440 --> 00:52:38,272 951 00:52:38,272 --> 00:52:39,980 AUDIENCE: I was wondering how you managed 952 00:52:39,980 --> 00:52:42,664 to overcome that initial hesitation from a school 953 00:52:42,664 --> 00:52:44,640 to allow undergraduates to teach. 954 00:52:44,640 --> 00:52:48,000 DAVID J. MALAN: How did we overcome the initial hesitation of the school 955 00:52:48,000 --> 00:52:49,560 to allow undergraduates? 956 00:52:49,560 --> 00:52:53,170 Thankfully at Harvard someone else did this 40 years ago. 957 00:52:53,170 --> 00:52:56,460 So Harvard has, thankfully, had this tradition for a long time. 958 00:52:56,460 --> 00:52:59,460 At Yale it was, I think, more challenging. 959 00:52:59,460 --> 00:53:03,660 Their entire faculty at the college had to vote on this opportunity. 960 00:53:03,660 --> 00:53:07,740 And honestly, strategically, I think it was well-positioned as an experiment. 961 00:53:07,740 --> 00:53:10,560 And indeed, we framed this whole collaboration with Yale 962 00:53:10,560 --> 00:53:11,430 as an experiment. 963 00:53:11,430 --> 00:53:12,180 Three years. 964 00:53:12,180 --> 00:53:15,810 Being scientists, we like to collect data and analyze. 965 00:53:15,810 --> 00:53:18,360 And I think creating those kinds of safe spaces 966 00:53:18,360 --> 00:53:22,260 where you're not proposing to change 100 years of history at Harvard or Yale 967 00:53:22,260 --> 00:53:23,800 or here or elsewhere. 968 00:53:23,800 --> 00:53:25,890 You're really just trying to try something new. 969 00:53:25,890 --> 00:53:30,030 You're scoping it, in a way, that if it fails, it's not a huge failure 970 00:53:30,030 --> 00:53:31,950 and it's not all that impactful, but you also 971 00:53:31,950 --> 00:53:33,900 don't create this sort of knee-jerk reaction 972 00:53:33,900 --> 00:53:37,960 that some folks have by saying no to something just because it's new. 973 00:53:37,960 --> 00:53:41,130 So I think framing it as an experiment and defining for yourself, 974 00:53:41,130 --> 00:53:43,840 like, what will it mean for this to be successful or not, 975 00:53:43,840 --> 00:53:46,980 I think is something that academics can hopefully 976 00:53:46,980 --> 00:53:48,770 get comfortable with much more readily. 977 00:53:48,770 --> 00:53:49,810 AUDIENCE: Thank you. 978 00:53:49,810 --> 00:53:51,310 DAVID J. MALAN: Any other questions? 979 00:53:51,310 --> 00:53:51,810 Please. 980 00:53:51,810 --> 00:53:53,960 AUDIENCE: When will you take it to grade school? 981 00:53:53,960 --> 00:53:55,540 DAVID J. MALAN: Grade school! 982 00:53:55,540 --> 00:53:57,760 We're not sure how quickly that would happen. 983 00:53:57,760 --> 00:53:59,230 We do already have-- 984 00:53:59,230 --> 00:54:03,340 beyond high school we've estimated that age 13 or 14 or 15 985 00:54:03,340 --> 00:54:04,900 is reasonable to begin. 986 00:54:04,900 --> 00:54:06,070 We have counterexamples. 987 00:54:06,070 --> 00:54:06,569 To this. 988 00:54:06,569 --> 00:54:08,830 Just yesterday on CS50's the Facebook group 989 00:54:08,830 --> 00:54:13,060 I posted a video of a young lady who's 11 years old, 990 00:54:13,060 --> 00:54:16,750 Presley, who has actually been taking CS50 for some time. 991 00:54:16,750 --> 00:54:20,950 But we're now only beginning to think about how we might create not CS50, 992 00:54:20,950 --> 00:54:25,600 per se, but entry points to computer science for younger kids. 993 00:54:25,600 --> 00:54:31,592 AUDIENCE: [INAUDIBLE] 994 00:54:31,592 --> 00:54:33,800 DAVID J. MALAN: It depends on the community thus far. 995 00:54:33,800 --> 00:54:35,900 The team here has done an extraordinary job 996 00:54:35,900 --> 00:54:38,760 at translating the most important materials, for instance, 997 00:54:38,760 --> 00:54:41,789 the problem sets or subtitles on the English lectures. 998 00:54:41,789 --> 00:54:43,580 This is something we in Cambridge now we're 999 00:54:43,580 --> 00:54:47,510 going to start focusing more on now that we've identified some very-- we have 1000 00:54:47,510 --> 00:54:50,600 critical mass among certain cultures or certain languages 1001 00:54:50,600 --> 00:54:53,480 so that we can start helping with this as well. 1002 00:54:53,480 --> 00:54:55,730 With that said, in the world of programming at least, 1003 00:54:55,730 --> 00:54:58,640 which CS50 has a lot of, the reality is the languages 1004 00:54:58,640 --> 00:55:01,930 and the communities online are so largely English driven. 1005 00:55:01,930 --> 00:55:03,750 It's not a bad thing necessarily. 1006 00:55:03,750 --> 00:55:06,830 But certainly for students for whom the world is so new, 1007 00:55:06,830 --> 00:55:09,530 I think it's best that I'm not speaking entirely in English. 1008 00:55:09,530 --> 00:55:11,360 But they can be more comfortable with that 1009 00:55:11,360 --> 00:55:16,541 and then focus on the more technical stuff in English. 1010 00:55:16,541 --> 00:55:17,040 Yes. 1011 00:55:17,040 --> 00:55:17,540 In back. 1012 00:55:17,540 --> 00:55:23,276 AUDIENCE: Can someone be part of the course without [INAUDIBLE] like, 1013 00:55:23,276 --> 00:55:26,727 my peers [INAUDIBLE] people, just like, yourself 1014 00:55:26,727 --> 00:55:28,905 and your school wherever you are? 1015 00:55:28,905 --> 00:55:30,030 DAVID J. MALAN: Absolutely. 1016 00:55:30,030 --> 00:55:31,450 Can you be part of the class? 1017 00:55:31,450 --> 00:55:33,970 Can you take it independent of a formal structure 1018 00:55:33,970 --> 00:55:35,470 here or some other university? 1019 00:55:35,470 --> 00:55:36,110 Absolutely. 1020 00:55:36,110 --> 00:55:38,620 The easiest way is just to sign up for free 1021 00:55:38,620 --> 00:55:43,205 on cs50.edx.org to identify the friends or classmates here or elsewhere 1022 00:55:43,205 --> 00:55:45,580 in the world that you want to do it with and just come up 1023 00:55:45,580 --> 00:55:46,820 with your own schedule. 1024 00:55:46,820 --> 00:55:50,080 We propose that students take a few weeks per problem set through edX. 1025 00:55:50,080 --> 00:55:52,550 But you can certainly do whatever you want. 1026 00:55:52,550 --> 00:55:53,290 So absolutely. 1027 00:55:53,290 --> 00:55:56,530 And if you go to cs50.org, you'll see more information 1028 00:55:56,530 --> 00:55:59,020 about how to stand up your own local community. 1029 00:55:59,020 --> 00:56:01,810 And indeed, for instance, at University College London 1030 00:56:01,810 --> 00:56:05,470 in the UK we have a student group, the group of students 1031 00:56:05,470 --> 00:56:08,320 who are interested in technology, they're just doing it on their own 1032 00:56:08,320 --> 00:56:09,970 for fun and for their classmates. 1033 00:56:09,970 --> 00:56:11,270 It's not a class, per se. 1034 00:56:11,270 --> 00:56:12,230 It's not for credit. 1035 00:56:12,230 --> 00:56:15,466 But they're doing that at an even larger scale. 1036 00:56:15,466 --> 00:56:17,360 Please. 1037 00:56:17,360 --> 00:56:23,040 AUDIENCE: Have you had any experiments with corporations taking this 1038 00:56:23,040 --> 00:56:25,666 on [INAUDIBLE]? 1039 00:56:25,666 --> 00:56:27,040 DAVID J. MALAN: Not on scale yet. 1040 00:56:27,040 --> 00:56:29,410 We've been chatting with some friends about doing this. 1041 00:56:29,410 --> 00:56:32,080 And it has certainly happened organically with a few folks 1042 00:56:32,080 --> 00:56:32,809 here and there. 1043 00:56:32,809 --> 00:56:35,350 But we've just begun chatting with some of our larger friends 1044 00:56:35,350 --> 00:56:36,490 in industry to do this. 1045 00:56:36,490 --> 00:56:40,210 Particularly because we have so many alumni in some of the larger tech 1046 00:56:40,210 --> 00:56:44,290 companies in the world that we have that built-in support structure potentially 1047 00:56:44,290 --> 00:56:45,700 among the volunteers there. 1048 00:56:45,700 --> 00:56:47,435 So we'll likely see that happen soon. 1049 00:56:47,435 --> 00:56:48,310 AUDIENCE: [INAUDIBLE] 1050 00:56:48,310 --> 00:56:49,526 DAVID J. MALAN: Indeed. 1051 00:56:49,526 --> 00:56:50,732 AUDIENCE: [INAUDIBLE] 1052 00:56:50,732 --> 00:56:51,856 DAVID J. MALAN: Oh, please. 1053 00:56:51,856 --> 00:56:57,808 AUDIENCE: Do you define comfort zone as something that is easy 1054 00:56:57,808 --> 00:57:02,535 or something that is quickly executed? 1055 00:57:02,535 --> 00:57:07,700 And is there a further zone which is [INAUDIBLE] people who 1056 00:57:07,700 --> 00:57:12,777 execute what you expect them to execute, but propose something new? 1057 00:57:12,777 --> 00:57:14,360 DAVID J. MALAN: Definitely the latter. 1058 00:57:14,360 --> 00:57:17,640 When we talk about comfort zones, less comfortable, more comfortable, 1059 00:57:17,640 --> 00:57:21,430 and somewhere in between, we actually don't define this very precisely. 1060 00:57:21,430 --> 00:57:24,450 The rule of thumb we offer to students is 1061 00:57:24,450 --> 00:57:27,900 that if you're a little unsure why you're sitting in this room, 1062 00:57:27,900 --> 00:57:31,470 if you've never really had an interest in computer science, you are, odds are, 1063 00:57:31,470 --> 00:57:32,790 among those less comfortable. 1064 00:57:32,790 --> 00:57:35,727 Doesn't mean you don't do as well in school. 1065 00:57:35,727 --> 00:57:37,560 It doesn't mean that you can't do the class. 1066 00:57:37,560 --> 00:57:41,919 You're just a little out of your comfort zone, as so many students in CS50 are. 1067 00:57:41,919 --> 00:57:43,710 The more comfortable students may very well 1068 00:57:43,710 --> 00:57:46,860 be those kids who have been programming since they were six years old 1069 00:57:46,860 --> 00:57:48,900 and for which it might be a lot of review. 1070 00:57:48,900 --> 00:57:52,480 And so what we try to do is treat those demographics a little differently. 1071 00:57:52,480 --> 00:57:54,990 They still get the same overarching experience. 1072 00:57:54,990 --> 00:57:57,220 But we encourage the teaching fellows, for instance, 1073 00:57:57,220 --> 00:58:00,030 in the more comfortable sections, talk about whatever you want. 1074 00:58:00,030 --> 00:58:03,340 Ask the students where it is, what direction they want to go. 1075 00:58:03,340 --> 00:58:06,930 But with the less comfortable students, most important is not even the material 1076 00:58:06,930 --> 00:58:11,280 being covered, but the fact that the rest of the students in that room 1077 00:58:11,280 --> 00:58:15,450 are on the same page as them and they're all sort of equally in that same boat. 1078 00:58:15,450 --> 00:58:19,418 And that's the extent to which we characterize those comfort zones. 1079 00:58:19,418 --> 00:58:22,624 AUDIENCE: And getting out of the comfort zone altogether, I mean, 1080 00:58:22,624 --> 00:58:24,200 is that a different level? 1081 00:58:24,200 --> 00:58:27,180 DAVID J. MALAN: Well, the sort of endgame and the reassurance 1082 00:58:27,180 --> 00:58:33,090 we offer-- at the end of the semester my email is almost always, all of you 1083 00:58:33,090 --> 00:58:36,490 are now more comfortable than you were previously. 1084 00:58:36,490 --> 00:58:40,350 And the reality is it doesn't mean we equalize everyone and put everyone 1085 00:58:40,350 --> 00:58:43,520 on the same footing just after three months or six months or the like, 1086 00:58:43,520 --> 00:58:44,850 but that there's this delta. 1087 00:58:44,850 --> 00:58:49,170 And hopefully the delta is somewhat invariant across those demographics. 1088 00:58:49,170 --> 00:58:54,450 They're just going from one level to a next. 1089 00:58:54,450 --> 00:58:55,480 Any final questions? 1090 00:58:55,480 --> 00:58:56,255 Here. 1091 00:58:56,255 --> 00:58:59,742 AUDIENCE: [INAUDIBLE] what's your recommendation for teachers 1092 00:58:59,742 --> 00:59:02,030 to improve their skills [INAUDIBLE]? 1093 00:59:02,030 --> 00:59:14,550 We've seen how in other countries [INAUDIBLE] 1094 00:59:14,550 --> 00:59:15,790 DAVID J. MALAN: Yeah. 1095 00:59:15,790 --> 00:59:17,270 How do you get better at teaching? 1096 00:59:17,270 --> 00:59:19,600 So I would say at least three things. 1097 00:59:19,600 --> 00:59:20,890 Practice, first and foremost. 1098 00:59:20,890 --> 00:59:23,170 But that's an easy one to say. 1099 00:59:23,170 --> 00:59:24,910 Two is to observe. 1100 00:59:24,910 --> 00:59:29,460 Literally everything I did wrong today, remember, and don't do that again, 1101 00:59:29,460 --> 00:59:31,269 whatever that was in your mind. 1102 00:59:31,269 --> 00:59:32,560 And I'm actually quite serious. 1103 00:59:32,560 --> 00:59:34,900 Because at least in college and high school, 1104 00:59:34,900 --> 00:59:37,900 I certainly remember a few teachers who I thought were amazing. 1105 00:59:37,900 --> 00:59:40,830 But I also remember a lot of teachers who were not very good. 1106 00:59:40,830 --> 00:59:43,120 And that stuck with me, because it gave me 1107 00:59:43,120 --> 00:59:45,250 kind of a roadmap of things not to do. 1108 00:59:45,250 --> 00:59:48,677 Like don't teach like this, talking at the board constantly 1109 00:59:48,677 --> 00:59:50,260 while students are sort of zoning out. 1110 00:59:50,260 --> 00:59:51,580 And it's somewhat easy things. 1111 00:59:51,580 --> 00:59:54,390 But unless you keep those in mind, you, yourself, 1112 00:59:54,390 --> 00:59:57,490 as a new teacher might fall into those same kinds of habits. 1113 00:59:57,490 --> 01:00:00,160 So keep an eye out both for the good and for the bad. 1114 01:00:00,160 --> 01:00:01,900 And then lastly, and thanks to technology 1115 01:00:01,900 --> 01:00:04,534 this is just getting easier and easier, record yourself. 1116 01:00:04,534 --> 01:00:06,700 It can be a friend standing in the back of the room. 1117 01:00:06,700 --> 01:00:09,730 You can get a little tripod or sort of a spider thing 1118 01:00:09,730 --> 01:00:12,910 and just prop up your phone so that you can watch yourself after. 1119 01:00:12,910 --> 01:00:17,620 The first year I taught formally, some 20 or so years ago, 1120 01:00:17,620 --> 01:00:19,420 every class was recorded. 1121 01:00:19,420 --> 01:00:23,190 And I painfully watched back, like, two hours after class. 1122 01:00:23,190 --> 01:00:26,780 It was on VHS tape at the time, so I could literally take the tape with me 1123 01:00:26,780 --> 01:00:28,480 and give it to no one else. 1124 01:00:28,480 --> 01:00:31,310 But I could watch the tape painfully afterward. 1125 01:00:31,310 --> 01:00:33,400 And I eliminated lots of bad habits. 1126 01:00:33,400 --> 01:00:35,560 I found myself saying the word et cetera a lot. 1127 01:00:35,560 --> 01:00:38,410 Or any time you say um or something like that, you 1128 01:00:38,410 --> 01:00:40,150 start to hear it and notice it. 1129 01:00:40,150 --> 01:00:42,700 And nowadays I can't watch myself. 1130 01:00:42,700 --> 01:00:44,060 It's just too painful. 1131 01:00:44,060 --> 01:00:48,670 But initially that really helps, because you see yourself through others' eyes. 1132 01:00:48,670 --> 01:00:50,500 And all three of those techniques, I think, 1133 01:00:50,500 --> 01:00:54,723 really improve the odds of success in being in front of the class too. 1134 01:00:54,723 --> 01:00:55,222 Please. 1135 01:00:55,222 --> 01:00:59,590 AUDIENCE: Do you have a way for companies to get involved [INAUDIBLE]?? 1136 01:00:59,590 --> 01:01:01,240 DAVID J. MALAN: We do. 1137 01:01:01,240 --> 01:01:03,460 Do we have ways of getting companies involved too? 1138 01:01:03,460 --> 01:01:08,260 Many of the non-academic experiences we have in CS50, 1139 01:01:08,260 --> 01:01:11,770 so to speak, like the hackathon and the CS50 Fair and Puzzle 1140 01:01:11,770 --> 01:01:14,290 Day, which aren't sort of core material that's created, 1141 01:01:14,290 --> 01:01:17,290 we often reach out to friends in industry. 1142 01:01:17,290 --> 01:01:19,780 Sometimes new companies that we don't know anyone at, 1143 01:01:19,780 --> 01:01:22,664 we just do a cold call or send an email to someone 1144 01:01:22,664 --> 01:01:25,330 to see if they'd like to get involved, either with sponsorship-- 1145 01:01:25,330 --> 01:01:27,550 could you supply the pizza for this event? 1146 01:01:27,550 --> 01:01:31,990 Or could you give us free copies of some piece of software for students 1147 01:01:31,990 --> 01:01:33,520 to use for their final project? 1148 01:01:33,520 --> 01:01:36,100 Or hardware. 1149 01:01:36,100 --> 01:01:40,420 Could you send us a Microsoft HoloLens for students to experiment with? 1150 01:01:40,420 --> 01:01:41,380 And so absolutely. 1151 01:01:41,380 --> 01:01:44,230 We have any number of ways to get companies involved 1152 01:01:44,230 --> 01:01:46,840 so that we can do things that we couldn't otherwise do 1153 01:01:46,840 --> 01:01:49,900 and we can provide students with tools and hardware 1154 01:01:49,900 --> 01:01:53,780 that they might not otherwise have access to, perhaps not even for years. 1155 01:01:53,780 --> 01:01:54,280 Here. 1156 01:01:54,280 --> 01:01:55,370 [INAUDIBLE] 1157 01:01:55,370 --> 01:02:00,575 AUDIENCE: How do you compare your role that [INAUDIBLE] here as opposed 1158 01:02:00,575 --> 01:02:02,700 to other organizations around the world that you're 1159 01:02:02,700 --> 01:02:04,739 working with to promote CS50? 1160 01:02:04,739 --> 01:02:06,280 DAVID J. MALAN: Can you say it again? 1161 01:02:06,280 --> 01:02:06,580 What 1162 01:02:06,580 --> 01:02:08,496 AUDIENCE: Yeah, like, do you compare your role 1163 01:02:08,496 --> 01:02:11,480 that this institution is playing to promote CS50 here 1164 01:02:11,480 --> 01:02:12,964 with other institutions? 1165 01:02:12,964 --> 01:02:15,130 DAVID J. MALAN: I think the consensus among our team 1166 01:02:15,130 --> 01:02:20,405 both over the past few months and even this week has been the [SPANISH] 1167 01:02:20,405 --> 01:02:22,480 and the school are so much more involved, 1168 01:02:22,480 --> 01:02:24,310 I think, than a lot of our collaborators, 1169 01:02:24,310 --> 01:02:26,410 which is a wonderful, wonderful thing. 1170 01:02:26,410 --> 01:02:30,730 For instance, at UCL, University College London, it's completely unofficial. 1171 01:02:30,730 --> 01:02:34,120 The students there haven't really gotten the traction with the administration 1172 01:02:34,120 --> 01:02:37,750 to give students credit, for instance, or to secure the beautiful spaces 1173 01:02:37,750 --> 01:02:39,460 that you have around the corner here. 1174 01:02:39,460 --> 01:02:43,870 Whereas here it seems like there's a much more cohesive collaboration 1175 01:02:43,870 --> 01:02:48,040 among these various entities, students and faculty and foundation alike. 1176 01:02:48,040 --> 01:02:51,807 So I think that's huge to enabling the requisite support structure. 1177 01:02:51,807 --> 01:02:53,890 But some of these opportunities are just starting. 1178 01:02:53,890 --> 01:02:56,500 And frankly, it's like the young lady's question in back. 1179 01:02:56,500 --> 01:02:59,451 This is how exactly things begin in a nutshell. 1180 01:02:59,451 --> 01:03:01,450 And I think you're already on your way to having 1181 01:03:01,450 --> 01:03:03,920 one of the most robust opportunities for students today. 1182 01:03:03,920 --> 01:03:06,610 It's very comparable, for instance, to Miami Dade College 1183 01:03:06,610 --> 01:03:09,610 where we had an extraordinary friend stand something up himself 1184 01:03:09,610 --> 01:03:11,777 there as well. 1185 01:03:11,777 --> 01:03:14,711 Yeah. 1186 01:03:14,711 --> 01:03:24,744 AUDIENCE: The millennials are now fully fluent [INAUDIBLE] 1187 01:03:24,744 --> 01:03:27,080 work their way up the curve less so. 1188 01:03:27,080 --> 01:03:32,080 Is there a difference in that in terms of the ability [INAUDIBLE]?? 1189 01:03:32,080 --> 01:03:35,380 DAVID J. MALAN: So millennials are very comfortable with technology, 1190 01:03:35,380 --> 01:03:37,390 with the latest technologies and apps. 1191 01:03:37,390 --> 01:03:40,180 And perhaps as your older, less so. 1192 01:03:40,180 --> 01:03:43,510 I think it's been important for us to stay abreast of this. 1193 01:03:43,510 --> 01:03:45,490 And I say this somewhat hypocritically. 1194 01:03:45,490 --> 01:03:48,280 Because I'm told that Rick Rolls are not in vogue anymore, 1195 01:03:48,280 --> 01:03:52,690 but you'll see throughout CS50 such things as that, if you're familiar. 1196 01:03:52,690 --> 01:03:55,750 But yes, we have been very conscious of technology 1197 01:03:55,750 --> 01:03:58,960 students are using, not just so that we have a presence there. 1198 01:03:58,960 --> 01:04:01,060 I mean, we do have a CS50 Snapchat. 1199 01:04:01,060 --> 01:04:03,530 We have Snapchat filters when we hold events, 1200 01:04:03,530 --> 01:04:05,530 for instance, just for students to use for fun. 1201 01:04:05,530 --> 01:04:07,600 But we also use these new trends and apps 1202 01:04:07,600 --> 01:04:10,720 as opportunities for teaching teachable moments. 1203 01:04:10,720 --> 01:04:13,780 Like, we'll email our friends at Snapchat or some other company 1204 01:04:13,780 --> 01:04:15,939 to come talk about how it is their app works. 1205 01:04:15,939 --> 01:04:18,730 And when a message gets deleted, what does that mean, for instance. 1206 01:04:18,730 --> 01:04:20,480 That would be an opportunity there. 1207 01:04:20,480 --> 01:04:22,900 So I would say we tend to use the latest technologies 1208 01:04:22,900 --> 01:04:25,480 and tools as an opportunity to really weave them 1209 01:04:25,480 --> 01:04:26,890 into the fabric of the course. 1210 01:04:26,890 --> 01:04:29,140 And I mentioned a HoloLens just a moment ago. 1211 01:04:29,140 --> 01:04:31,556 That was a piece of hardware that a couple of our students 1212 01:04:31,556 --> 01:04:35,890 actually used for their final projects after just three months of taking CS50. 1213 01:04:35,890 --> 01:04:40,870 And we had similar explorations with VR, with Samsung Gear, and with HTC Vive, 1214 01:04:40,870 --> 01:04:42,194 and other such technologies. 1215 01:04:42,194 --> 01:04:44,110 So we've stayed abreast of these, particularly 1216 01:04:44,110 --> 01:04:47,830 to equip students with them, not as a senior capstone project, 1217 01:04:47,830 --> 01:04:52,212 but really as a first year introduction. 1218 01:04:52,212 --> 01:04:53,920 We have time for a couple more questions. 1219 01:04:53,920 --> 01:04:54,622 Yeah. 1220 01:04:54,622 --> 01:04:57,996 AUDIENCE: [SPEAKING SPANISH] 1221 01:04:57,996 --> 01:05:02,380 DAVID J. MALAN: [SPEAKING SPANISH] 1222 01:05:02,380 --> 01:05:05,080 AUDIENCE: [SPEAKING SPANISH] 1223 01:05:05,080 --> 01:05:07,010 DAVID J. MALAN: [SPEAKING SPANISH] 1224 01:05:07,010 --> 01:05:10,510 AUDIENCE: [SPEAKING SPANISH] 1225 01:05:10,510 --> 01:06:13,942 1226 01:06:13,942 --> 01:06:16,150 DAVID J. MALAN: Let's hope Christian has good memory. 1227 01:06:16,150 --> 01:06:19,120 1228 01:06:19,120 --> 01:06:22,585 CHRISTIAN: So in today's world with technology being so present everywhere, 1229 01:06:22,585 --> 01:06:29,020 do you see technology as the main tool for improving education? 1230 01:06:29,020 --> 01:06:32,980 And are there any differences in the US and here? 1231 01:06:32,980 --> 01:06:36,490 But how is technology the right tool? 1232 01:06:36,490 --> 01:06:38,320 DAVID J. MALAN: [SPEAKING SPANISH] 1233 01:06:38,320 --> 01:06:39,550 So I think it's enabling. 1234 01:06:39,550 --> 01:06:43,720 I certainly don't think technology is the solution to educational problems. 1235 01:06:43,720 --> 01:06:48,940 And I remember back when I was a younger student in middle school 1236 01:06:48,940 --> 01:06:53,590 where they were giving every student in the school a laptop just because. 1237 01:06:53,590 --> 01:06:56,590 And it was as though the mere introduction of technology, 1238 01:06:56,590 --> 01:06:59,110 in that case, laptops back in the day, was somehow 1239 01:06:59,110 --> 01:07:00,850 going to improve their experience. 1240 01:07:00,850 --> 01:07:04,480 But what they failed to do, and even years later when I taught high school-- 1241 01:07:04,480 --> 01:07:09,050 I taught high school math-- and every classroom in my school had a computer. 1242 01:07:09,050 --> 01:07:11,600 They didn't teach any of the teachers what to do with it. 1243 01:07:11,600 --> 01:07:13,450 They didn't provide them with the training. 1244 01:07:13,450 --> 01:07:17,590 They didn't provide them with useful, compelling pieces of software. 1245 01:07:17,590 --> 01:07:19,420 And I think that's what's key. 1246 01:07:19,420 --> 01:07:22,877 What's far more important is the human factor. 1247 01:07:22,877 --> 01:07:24,460 And you're seeing it again these days. 1248 01:07:24,460 --> 01:07:28,390 Schools having iPads for everyone, for instance, especially at younger levels. 1249 01:07:28,390 --> 01:07:31,060 But unless you have the right software and you 1250 01:07:31,060 --> 01:07:34,090 have the right use cases in mind, I don't think 1251 01:07:34,090 --> 01:07:36,460 that technology alone is the solution. 1252 01:07:36,460 --> 01:07:43,910 It's simply enabling humans to do a better job in, for instance, 1253 01:07:43,910 --> 01:07:46,790 the classroom. 1254 01:07:46,790 --> 01:07:48,000 Maybe two questions more. 1255 01:07:48,000 --> 01:07:48,778 Over here. 1256 01:07:48,778 --> 01:07:51,152 AUDIENCE: First of all, thank you so much for being here. 1257 01:07:51,152 --> 01:07:53,588 [INAUDIBLE] 1258 01:07:53,588 --> 01:07:54,588 DAVID J. MALAN: De nada. 1259 01:07:54,588 --> 01:07:57,576 1260 01:07:57,576 --> 01:08:03,552 AUDIENCE: [INAUDIBLE] what would be the next step? 1261 01:08:03,552 --> 01:08:06,865 What would be [INAUDIBLE]? 1262 01:08:06,865 --> 01:08:08,490 DAVID J. MALAN: A really good question. 1263 01:08:08,490 --> 01:08:11,900 After taking CS50, what would be the next class to take? 1264 01:08:11,900 --> 01:08:14,750 And We were just having this conversation, some of us, earlier. 1265 01:08:14,750 --> 01:08:17,490 CS50 itself is in the process of beginning 1266 01:08:17,490 --> 01:08:21,870 to create follow-on materials that are more technical, 1267 01:08:21,870 --> 01:08:24,727 are more technology specific. 1268 01:08:24,727 --> 01:08:25,560 We're not there yet. 1269 01:08:25,560 --> 01:08:27,310 But there soon will be those opportunities 1270 01:08:27,310 --> 01:08:30,729 that you'll see within edX and elsewhere online. 1271 01:08:30,729 --> 01:08:36,240 But for now it is a wonderful thing that Coursera and edX and Udacity 1272 01:08:36,240 --> 01:08:39,029 and not to mention YouTube and iTunes University, 1273 01:08:39,029 --> 01:08:43,439 there are so many places to get high quality educational content. 1274 01:08:43,439 --> 01:08:47,430 I'll often point students to a algorithms and data structures class 1275 01:08:47,430 --> 01:08:51,630 from Princeton, which is freely available on Coursera 1276 01:08:51,630 --> 01:08:53,313 from some colleagues there. 1277 01:08:53,313 --> 01:08:55,229 And beyond that, I would encourage you to find 1278 01:08:55,229 --> 01:08:56,729 courses that are of interest to you. 1279 01:08:56,729 --> 01:09:00,750 If you like software engineering and maybe iPhone programming or Android, 1280 01:09:00,750 --> 01:09:03,540 Stanford, for instance, is how I learned iPhone programming. 1281 01:09:03,540 --> 01:09:07,210 Years ago they had a freely available course that was very popular. 1282 01:09:07,210 --> 01:09:10,080 And so I just reached out to that course for free. 1283 01:09:10,080 --> 01:09:13,920 So I would decide based on what you see in the menu on these various websites 1284 01:09:13,920 --> 01:09:14,970 what might interest you. 1285 01:09:14,970 --> 01:09:17,670 And to your classmate's suggestion earlier, 1286 01:09:17,670 --> 01:09:20,417 find a friend or a set of friends to perhaps do it with you. 1287 01:09:20,417 --> 01:09:22,500 Because I think that only improves the probability 1288 01:09:22,500 --> 01:09:24,416 if you sort of put some pressure on each other 1289 01:09:24,416 --> 01:09:28,350 and help answer questions for each other, succeeding in the end. 1290 01:09:28,350 --> 01:09:29,520 AUDIENCE: [INAUDIBLE] 1291 01:09:29,520 --> 01:09:32,035 DAVID J. MALAN: Oh, sure. 1292 01:09:32,035 --> 01:09:34,415 AUDIENCE: Have you identified any special talents 1293 01:09:34,415 --> 01:09:37,032 through courses like those on edX? 1294 01:09:37,032 --> 01:09:38,657 DAVID J. MALAN: Have we identified any? 1295 01:09:38,657 --> 01:09:39,970 AUDIENCE: Prodigies. 1296 01:09:39,970 --> 01:09:41,450 DAVID J. MALAN: Oh, prodigies. 1297 01:09:41,450 --> 01:09:45,689 Presley, the 11-year-old, has a very good start on some of the students 1298 01:09:45,689 --> 01:09:46,500 thus far. 1299 01:09:46,500 --> 01:09:48,029 So we have to some extent. 1300 01:09:48,029 --> 01:09:51,149 We Have a fellow whose name is Kareem who 1301 01:09:51,149 --> 01:09:55,050 lives in Cairo, Egypt, who kind of came on our radar thanks 1302 01:09:55,050 --> 01:09:59,460 to Facebook and Stack Exchange, both of where he was very active. 1303 01:09:59,460 --> 01:10:03,130 And actually he has a visa appointment in just a few days with the embassy 1304 01:10:03,130 --> 01:10:03,630 there. 1305 01:10:03,630 --> 01:10:06,840 And then hopefully next week he'll be moving to Cambridge, Massachusetts 1306 01:10:06,840 --> 01:10:08,130 to join us full-time. 1307 01:10:08,130 --> 01:10:11,010 Arturo Real, who I mentioned earlier from Venezuela and Miami, 1308 01:10:11,010 --> 01:10:13,440 he joined us about a year ago. 1309 01:10:13,440 --> 01:10:16,290 Christian here, who's been helping out, came from Guatemala 1310 01:10:16,290 --> 01:10:20,430 and wanted to actually stand up his own local opportunity for students 1311 01:10:20,430 --> 01:10:23,347 and we kind of stole him away for a year to come to Cambridge as well. 1312 01:10:23,347 --> 01:10:26,263 AUDIENCE: [INAUDIBLE] about vertically integrated with all the systems 1313 01:10:26,263 --> 01:10:27,420 you have to deliver it in? 1314 01:10:27,420 --> 01:10:27,885 DAVID J. MALAN: We are. 1315 01:10:27,885 --> 01:10:28,560 We are. 1316 01:10:28,560 --> 01:10:30,960 And to that same point of integration, nowadays when we 1317 01:10:30,960 --> 01:10:33,900 have a CS50 Fair at Harvard or at Yale, we 1318 01:10:33,900 --> 01:10:37,110 invite hundreds of our CS50 AP high school students 1319 01:10:37,110 --> 01:10:39,570 to come to those events, so that hopefully it's 1320 01:10:39,570 --> 01:10:41,790 an opportunity for a bit of inspiration. 1321 01:10:41,790 --> 01:10:45,870 And hopefully it's all the more opportunities for our university 1322 01:10:45,870 --> 01:10:48,180 students to talk with those younger students who 1323 01:10:48,180 --> 01:10:52,760 are genuinely interested in what it is they have done. 1324 01:10:52,760 --> 01:10:54,510 Well, allow me to officially adjourn here. 1325 01:10:54,510 --> 01:10:57,460 But I'm happy to stick around with the whole team for additional questions. 1326 01:10:57,460 --> 01:10:58,626 But it's been such an honor. 1327 01:10:58,626 --> 01:10:59,900 [SPEAKING SPANISH] 1328 01:10:59,900 --> 01:11:01,750 [APPLAUSE] 1329 01:11:01,750 --> 01:11:03,616