1 00:00:00,000 --> 00:00:15,090 2 00:00:15,090 --> 00:00:16,340 PATRICK REBESCHINI: All right. 3 00:00:16,340 --> 00:00:19,140 This is CS50, and this is Yale University. 4 00:00:19,140 --> 00:00:21,660 Welcome to the grand finale. 5 00:00:21,660 --> 00:00:24,580 Really, this is the last lecture of the course. 6 00:00:24,580 --> 00:00:30,680 And I hope to interpret most of you when I say, wow, already? 7 00:00:30,680 --> 00:00:36,400 And indeed, just think where we started off two, three months ago. 8 00:00:36,400 --> 00:00:39,170 What we have achieved is simply unbelievable. 9 00:00:39,170 --> 00:00:40,590 And typically, it's a good sign. 10 00:00:40,590 --> 00:00:44,110 When time flies by, it means that we have been engaged a lot. 11 00:00:44,110 --> 00:00:45,410 We have been learning a lot. 12 00:00:45,410 --> 00:00:51,700 This is precisely the type of experience that we want to give as part of CS50. 13 00:00:51,700 --> 00:00:55,170 So now today's is the last lecture, but the course 14 00:00:55,170 --> 00:00:59,530 does not end here, as David will remind all of us in a bit. 15 00:00:59,530 --> 00:01:02,520 In particular, the hackathon is coming up. 16 00:01:02,520 --> 00:01:06,890 It's a great opportunity to meet friends in Cambridge, I thought, 17 00:01:06,890 --> 00:01:10,480 but while potentially working on your final project. 18 00:01:10,480 --> 00:01:13,600 And then while you're here in New Haven, the final 19 00:01:13,600 --> 00:01:16,700 CS50 [? for ?] a great occasion to showcase 20 00:01:16,700 --> 00:01:20,400 what you have achieved in these two, three months, and to present 21 00:01:20,400 --> 00:01:23,420 this type of output not just to a friend of yours, 22 00:01:23,420 --> 00:01:26,840 but really to the entire Yale community and beyond. 23 00:01:26,840 --> 00:01:29,610 So this is CS50. 24 00:01:29,610 --> 00:01:33,326 Indeed, today does not end year, but in a way, 25 00:01:33,326 --> 00:01:37,160 we should start thinking about life beyond CS50. 26 00:01:37,160 --> 00:01:40,790 And well, let me tell you, it does exist. 27 00:01:40,790 --> 00:01:43,520 And so we decided to take the opportunity of the last lecture 28 00:01:43,520 --> 00:01:47,090 to invite a few friends-- faculty from Yale College-- 29 00:01:47,090 --> 00:01:52,000 to present some of the great resources that Yale can offer to those of you who 30 00:01:52,000 --> 00:01:58,030 want to dive more deeply into the realm and the wonder of CS 31 00:01:58,030 --> 00:02:00,830 as a discipline and related fields. 32 00:02:00,830 --> 00:02:05,180 So I'm going to introduce to you a few friends, faculty. 33 00:02:05,180 --> 00:02:08,979 I would like to welcome all of them with a big round of applause. 34 00:02:08,979 --> 00:02:11,470 So please join me in this. 35 00:02:11,470 --> 00:02:14,266 [APPLAUSE] 36 00:02:14,266 --> 00:02:15,670 37 00:02:15,670 --> 00:02:19,640 And I have the pleasure to introduce Holly Rushmeier from the computer 38 00:02:19,640 --> 00:02:21,612 science department. 39 00:02:21,612 --> 00:02:22,320 Thank you, Holly. 40 00:02:22,320 --> 00:02:26,288 41 00:02:26,288 --> 00:02:28,530 HOLLY RUSHMEIER: So, yes, I'm Professor Rushmeier. 42 00:02:28,530 --> 00:02:30,770 I am on the computer science faculty. 43 00:02:30,770 --> 00:02:33,310 I teach a variety of courses. 44 00:02:33,310 --> 00:02:36,950 Right now I'm teaching CPSC 201, Introduction 45 00:02:36,950 --> 00:02:40,010 to Computer Science-- a course that I really love, 46 00:02:40,010 --> 00:02:44,270 because it has the core ideas of computer science in it. 47 00:02:44,270 --> 00:02:48,450 But another area that I really love, and what I do my research in, 48 00:02:48,450 --> 00:02:49,750 is computer graphics. 49 00:02:49,750 --> 00:02:54,310 And that's what I'll spend my few minutes here on. 50 00:02:54,310 --> 00:02:57,950 And basically, what is computer graphics? 51 00:02:57,950 --> 00:03:04,800 It's using computers to make and use images for exploration, communication, 52 00:03:04,800 --> 00:03:06,360 and expression. 53 00:03:06,360 --> 00:03:09,960 So exploration-- how do we understand things? 54 00:03:09,960 --> 00:03:13,572 One of the things that we can do is read and write about things 55 00:03:13,572 --> 00:03:14,780 to improve our understanding. 56 00:03:14,780 --> 00:03:20,310 We also can explore things by drawing, gathering pictures, and manipulating 57 00:03:20,310 --> 00:03:21,460 images. 58 00:03:21,460 --> 00:03:25,530 We use graphics a lot for communicating ideas. 59 00:03:25,530 --> 00:03:28,460 Creating a feature film-- that's communicating ideas. 60 00:03:28,460 --> 00:03:30,080 That's telling a story. 61 00:03:30,080 --> 00:03:34,760 Advertisements, documentaries-- all these things are using images. 62 00:03:34,760 --> 00:03:38,630 And we have a part to play in creating those images. 63 00:03:38,630 --> 00:03:42,890 And then some of it is just purely creative expression. 64 00:03:42,890 --> 00:03:46,230 These images here are from some of our research work 65 00:03:46,230 --> 00:03:49,060 here at Yale, including things like-- we're 66 00:03:49,060 --> 00:03:54,060 interested in designing what makes things look like what they look like. 67 00:03:54,060 --> 00:03:58,500 And that's a combination of their small-scale geometry-- whether they've 68 00:03:58,500 --> 00:04:01,630 got little rings or bumps, or how they're woven-- 69 00:04:01,630 --> 00:04:04,340 and their large-scale geometry. 70 00:04:04,340 --> 00:04:09,660 We're also interested in abstract visualizations to make things clearer. 71 00:04:09,660 --> 00:04:13,910 So these strange little spheres floating and inside the matrix 72 00:04:13,910 --> 00:04:17,800 are an illustration of a kind of calculation. 73 00:04:17,800 --> 00:04:20,930 And we're interested in systems that help people. 74 00:04:20,930 --> 00:04:26,370 So these images are showing a sculpture of the Madonna 75 00:04:26,370 --> 00:04:29,420 from the Yale art gallery. 76 00:04:29,420 --> 00:04:32,820 This is part of a system that we've created for art conservators 77 00:04:32,820 --> 00:04:38,670 to study works of art using data from different imaging modalities. 78 00:04:38,670 --> 00:04:41,340 And then on the bottom is another visualization. 79 00:04:41,340 --> 00:04:45,800 It's visualizing the results of a perceptual experiment 80 00:04:45,800 --> 00:04:49,080 that we did about how things look when they move. 81 00:04:49,080 --> 00:04:52,830 So just a little bit of the span of things 82 00:04:52,830 --> 00:04:55,690 we consider in computer graphics. 83 00:04:55,690 --> 00:04:59,960 A little bit about-- another way of looking at graphics 84 00:04:59,960 --> 00:05:04,080 is that we observe problems in the real world. 85 00:05:04,080 --> 00:05:06,090 People want to design something new. 86 00:05:06,090 --> 00:05:07,430 They want to tell something new. 87 00:05:07,430 --> 00:05:09,089 They want to understand something new. 88 00:05:09,089 --> 00:05:11,380 And we're going to produce something in the real world. 89 00:05:11,380 --> 00:05:12,588 We're going to make pictures. 90 00:05:12,588 --> 00:05:13,870 We're going to make objects. 91 00:05:13,870 --> 00:05:17,970 But what we do in computer graphics is we get those physical things 92 00:05:17,970 --> 00:05:22,840 we observe into the computer, and then we 93 00:05:22,840 --> 00:05:28,310 create the data, data structures, algorithms, to work with those objects, 94 00:05:28,310 --> 00:05:30,720 to create the solutions that then allows us 95 00:05:30,720 --> 00:05:33,220 to make those things in the real world. 96 00:05:33,220 --> 00:05:36,870 So in the physical world, we may be simply observing 97 00:05:36,870 --> 00:05:41,570 shapes and forms and colors and lights and how people perceive things. 98 00:05:41,570 --> 00:05:46,090 Or we may be using instruments to measure shapes and colors. 99 00:05:46,090 --> 00:05:49,130 We may be designing new instruments or conceiving 100 00:05:49,130 --> 00:05:52,390 of new ways of putting existing instruments together. 101 00:05:52,390 --> 00:05:55,050 And we may just be observing how people perceive things, 102 00:05:55,050 --> 00:05:58,090 or we may be doing psycho-physical experiments to figure out 103 00:05:58,090 --> 00:05:59,844 how people perceive things. 104 00:05:59,844 --> 00:06:01,510 So then we bring them into the computer. 105 00:06:01,510 --> 00:06:05,220 We think of new ways to represent objects, shapes, colors, 106 00:06:05,220 --> 00:06:06,550 their interaction. 107 00:06:06,550 --> 00:06:10,520 We've-- how people can interact with those shapes to create new things. 108 00:06:10,520 --> 00:06:13,940 What are good interfaces for people to create new things, 109 00:06:13,940 --> 00:06:17,310 to express themselves, or to explore an idea? 110 00:06:17,310 --> 00:06:21,040 And then we put things out into the physical world. 111 00:06:21,040 --> 00:06:27,730 I had sort of a-- images from my oldest work and some of my newest. 112 00:06:27,730 --> 00:06:30,750 My oldest work-- that's from like 30 years ago-- 113 00:06:30,750 --> 00:06:33,280 was when we were first trying to make images that would 114 00:06:33,280 --> 00:06:36,040 be indistinguishable from real scenes. 115 00:06:36,040 --> 00:06:39,240 So we were building a real scene-- a real simple scene-- 116 00:06:39,240 --> 00:06:43,200 and trying to make a physical image that looked exactly like it 117 00:06:43,200 --> 00:06:46,830 and then set up an experiment where the challenge is, well, gee, 118 00:06:46,830 --> 00:06:48,930 that's a real physical box. 119 00:06:48,930 --> 00:06:50,390 That's a picture of a box. 120 00:06:50,390 --> 00:06:53,700 We had to come up with the solution to overcome that. 121 00:06:53,700 --> 00:06:58,690 So here at Yale, you have graphics courses. 122 00:06:58,690 --> 00:07:01,570 You can take straight-up the standard computer graphics, 123 00:07:01,570 --> 00:07:04,210 some special topics-- including a new one 124 00:07:04,210 --> 00:07:08,550 that we have in computational issues in design and fabrication. 125 00:07:08,550 --> 00:07:12,520 And we have a wide range of projects that people can work on, 126 00:07:12,520 --> 00:07:14,600 including-- in particular, in my work-- I'm 127 00:07:14,600 --> 00:07:18,070 very interested in digital humanities and analyzing 128 00:07:18,070 --> 00:07:21,790 the shape and form, materiality, of things like manuscripts. 129 00:07:21,790 --> 00:07:25,960 Cultural heritage-- maybe you want to get out in the cemetery at night 130 00:07:25,960 --> 00:07:30,180 and take data and start examining old stones. 131 00:07:30,180 --> 00:07:33,890 Or we have more hardcore computer graphics-- 132 00:07:33,890 --> 00:07:38,780 new methods for sketching, extracting, and reusing textures and building 133 00:07:38,780 --> 00:07:40,470 new scanning systems. 134 00:07:40,470 --> 00:07:41,825 So those are some ideas. 135 00:07:41,825 --> 00:07:43,020 So thank you very much. 136 00:07:43,020 --> 00:07:47,480 137 00:07:47,480 --> 00:07:48,730 PATRICK REBESCHINI: Wonderful. 138 00:07:48,730 --> 00:07:56,630 Our second guest today is Amin Karbasi, from the computer science and the EE 139 00:07:56,630 --> 00:07:57,546 department. 140 00:07:57,546 --> 00:08:02,563 So Amin, all yours. 141 00:08:02,563 --> 00:08:05,097 142 00:08:05,097 --> 00:08:05,930 AMIN KARBASI: Hello. 143 00:08:05,930 --> 00:08:11,140 So I thought today that I'm going to talk about sensing data. 144 00:08:11,140 --> 00:08:15,720 So basically, my work is about, in the realm 145 00:08:15,720 --> 00:08:21,020 of big data, how we can actually reason about-- how 146 00:08:21,020 --> 00:08:24,570 we can pick and reason about very uncertain data 147 00:08:24,570 --> 00:08:26,430 and get useful information. 148 00:08:26,430 --> 00:08:30,570 And in particular, I'm going to talk about three very specific applications. 149 00:08:30,570 --> 00:08:33,330 The first one is the video summarization. 150 00:08:33,330 --> 00:08:38,730 So what it means is that it would be really cool if instead of listening 151 00:08:38,730 --> 00:08:42,020 to the whole CS50 lectures, there would be an algorithm that tells us 152 00:08:42,020 --> 00:08:45,700 these parts are the most important part to look at. 153 00:08:45,700 --> 00:08:48,900 The second application is going to be about automated teaching. 154 00:08:48,900 --> 00:08:51,710 So instead of Patrick and David teaching you, 155 00:08:51,710 --> 00:08:56,810 it would be really cool if a machine can teach you new concepts. 156 00:08:56,810 --> 00:09:01,354 And the third one is about whether a robot can actually learn and reason 157 00:09:01,354 --> 00:09:02,270 about the environment. 158 00:09:02,270 --> 00:09:03,100 OK. 159 00:09:03,100 --> 00:09:07,170 So the first application that I'm going to talk about 160 00:09:07,170 --> 00:09:08,640 is the video summarization. 161 00:09:08,640 --> 00:09:13,310 I'm going to show you a very short clip, and the idea here 162 00:09:13,310 --> 00:09:19,540 is that we have an algorithm that picks frames of this short clip such 163 00:09:19,540 --> 00:09:24,220 that if you look at these frames-- here are four-- you can basically 164 00:09:24,220 --> 00:09:26,420 understand what is happening. 165 00:09:26,420 --> 00:09:32,780 OK, so we can put these frames together and it tells a story. 166 00:09:32,780 --> 00:09:42,460 167 00:09:42,460 --> 00:09:48,830 OK, so that is one application, and we had worked on this one. 168 00:09:48,830 --> 00:09:52,440 The second application that I'm going to talk to is about automated teaching. 169 00:09:52,440 --> 00:09:56,380 So here the idea is that instead of-- so I 170 00:09:56,380 --> 00:09:59,290 want to teach you a new concept without telling you 171 00:09:59,290 --> 00:10:01,870 how to learn this new concept. 172 00:10:01,870 --> 00:10:05,050 I am just going to show you some examples. 173 00:10:05,050 --> 00:10:10,120 And so in particular, I made some imaginary insects. 174 00:10:10,120 --> 00:10:12,920 I even called them vespula and weevils. 175 00:10:12,920 --> 00:10:14,920 You have not seen them before. 176 00:10:14,920 --> 00:10:16,690 And I'm going to show you examples. 177 00:10:16,690 --> 00:10:18,580 I need you to cooperate. 178 00:10:18,580 --> 00:10:21,547 And then you have to tell me whether this is a vespula or weevil. 179 00:10:21,547 --> 00:10:23,380 In the beginning, you may not have any idea. 180 00:10:23,380 --> 00:10:26,970 But you're smart-- I hope that after a few examples you can actually tell OK. 181 00:10:26,970 --> 00:10:29,140 Ready? 182 00:10:29,140 --> 00:10:29,640 Good. 183 00:10:29,640 --> 00:10:30,560 OK. 184 00:10:30,560 --> 00:10:31,860 So that is the first example. 185 00:10:31,860 --> 00:10:33,490 Who thinks that's a weevil? 186 00:10:33,490 --> 00:10:36,375 Raise your hand. 187 00:10:36,375 --> 00:10:37,541 Who thinks that's a vespula? 188 00:10:37,541 --> 00:10:40,250 189 00:10:40,250 --> 00:10:40,880 OK. 190 00:10:40,880 --> 00:10:43,170 So that is a vespula. 191 00:10:43,170 --> 00:10:44,380 OK. 192 00:10:44,380 --> 00:10:45,370 Good. 193 00:10:45,370 --> 00:10:46,620 Now, how about the second one? 194 00:10:46,620 --> 00:10:49,670 Who thinks that's a weevil? 195 00:10:49,670 --> 00:10:52,220 Who think that's a vespula? 196 00:10:52,220 --> 00:10:54,590 OK, that's a weevil. 197 00:10:54,590 --> 00:10:55,090 OK. 198 00:10:55,090 --> 00:10:56,400 How about the third one? 199 00:10:56,400 --> 00:10:59,120 Weevil? 200 00:10:59,120 --> 00:11:00,660 Vespula? 201 00:11:00,660 --> 00:11:01,530 Very good. 202 00:11:01,530 --> 00:11:02,490 OK. 203 00:11:02,490 --> 00:11:03,360 And the last one. 204 00:11:03,360 --> 00:11:05,540 Weevil? 205 00:11:05,540 --> 00:11:06,520 Vespula? 206 00:11:06,520 --> 00:11:07,167 Excellent. 207 00:11:07,167 --> 00:11:09,250 I didn't tell you how to distinguish between them. 208 00:11:09,250 --> 00:11:12,260 Somehow, you actually figured it out, right? 209 00:11:12,260 --> 00:11:17,470 So that is the main idea of automated teaching through examples. 210 00:11:17,470 --> 00:11:21,960 And then we also-- the question is, among all possible examples 211 00:11:21,960 --> 00:11:25,960 that I could show you, I chose them very specifically such 212 00:11:25,960 --> 00:11:31,040 that you basically get the concept and then generalize it in your head. 213 00:11:31,040 --> 00:11:34,850 And the last example that I'm going to show you is about the work 214 00:11:34,850 --> 00:11:37,320 that we did on a real robot. 215 00:11:37,320 --> 00:11:40,380 So here the idea is that there is a robot that 216 00:11:40,380 --> 00:11:43,530 has to open the door of a microwave. 217 00:11:43,530 --> 00:11:46,770 It has a visual sensor, but the sensor is not actually very good. 218 00:11:46,770 --> 00:11:50,150 So the robot doesn't know exactly where the door is. 219 00:11:50,150 --> 00:11:53,210 It might be a little bit high, low, it might be tilted, 220 00:11:53,210 --> 00:11:56,710 rotated-- so the robot has to make sense of the environment. 221 00:11:56,710 --> 00:11:57,730 How does it do it? 222 00:11:57,730 --> 00:12:03,610 Well, by basically touching different points and reducing the uncertainty. 223 00:12:03,610 --> 00:12:07,070 The question is, among all possible positions that the robot can touch, 224 00:12:07,070 --> 00:12:11,620 which ones are going to give the robot the most amount of information? 225 00:12:11,620 --> 00:12:17,120 So let's look at how a robot does that and how we actually 226 00:12:17,120 --> 00:12:18,930 taught the robot to do it. 227 00:12:18,930 --> 00:12:23,676 So this is the uncertainty that the robot has. 228 00:12:23,676 --> 00:12:25,300 In the beginning, it is very uncertain. 229 00:12:25,300 --> 00:12:27,130 It touches one point. 230 00:12:27,130 --> 00:12:31,210 Some of the uncertainty collapses. 231 00:12:31,210 --> 00:12:36,450 Some remains, so the robot has to make more interactions with the environment. 232 00:12:36,450 --> 00:12:37,740 It touches another point. 233 00:12:37,740 --> 00:12:41,160 Now there are less uncertainty, more information, 234 00:12:41,160 --> 00:12:43,820 but it doesn't exactly know where the button is. 235 00:12:43,820 --> 00:12:48,070 And then finally, it's going to touch another point. 236 00:12:48,070 --> 00:12:54,200 And now it is very certain where the button of the microwave door is. 237 00:12:54,200 --> 00:12:55,510 And now it's going to open it. 238 00:12:55,510 --> 00:12:59,670 239 00:12:59,670 --> 00:13:00,630 Good. 240 00:13:00,630 --> 00:13:04,820 So basically, I talked about three different problems, 241 00:13:04,820 --> 00:13:07,450 and in all these problems, the question was, 242 00:13:07,450 --> 00:13:11,170 which frame we should pick, which example we should show, 243 00:13:11,170 --> 00:13:14,020 which position we have to touch. 244 00:13:14,020 --> 00:13:16,390 These are very different applications, but it turns out 245 00:13:16,390 --> 00:13:18,530 that they have exactly the same framework. 246 00:13:18,530 --> 00:13:20,890 And this is what they work on. 247 00:13:20,890 --> 00:13:25,640 So if you want to know more, well, you can come to the CS or EE. 248 00:13:25,640 --> 00:13:26,604 [APPLAUSE] 249 00:13:26,604 --> 00:13:31,424 250 00:13:31,424 --> 00:13:34,080 Our And our next friend is Sahand Negahban 251 00:13:34,080 --> 00:13:35,770 from the statistics department. 252 00:13:35,770 --> 00:13:36,704 Please, Sahand. 253 00:13:36,704 --> 00:13:42,705 254 00:13:42,705 --> 00:13:43,830 SAHAND NEGAHBAN: So, hello. 255 00:13:43,830 --> 00:13:47,740 I don't have pretty slides, but instead I made a little demo 256 00:13:47,740 --> 00:13:49,350 because I really like this example. 257 00:13:49,350 --> 00:13:52,440 And so this is about life after CS50 and you guys 258 00:13:52,440 --> 00:13:54,516 have learned a lot of nice tools. 259 00:13:54,516 --> 00:13:57,140 You've built a web server, I guess, you played around with API. 260 00:13:57,140 --> 00:13:59,639 So now you can go on the internet and extract a ton of data. 261 00:13:59,639 --> 00:14:02,760 The problem is a lot of times on the internet data is noise 262 00:14:02,760 --> 00:14:04,430 and you need to deal with it. 263 00:14:04,430 --> 00:14:06,580 And so I really like this example. 264 00:14:06,580 --> 00:14:11,160 This is an example a lot of people use in machine learning classes. 265 00:14:11,160 --> 00:14:14,830 And it's the example of where you have sort of a couple audio signals, 266 00:14:14,830 --> 00:14:16,850 and you want to decouple them. 267 00:14:16,850 --> 00:14:20,000 So-- the audio works, right? 268 00:14:20,000 --> 00:14:22,960 The audio signal that I have-- play. 269 00:14:22,960 --> 00:14:23,680 [AUDIO PLAYBACK] 270 00:14:23,680 --> 00:14:25,519 [INTERPOSING VOICES] 271 00:14:25,519 --> 00:14:27,560 SAHAND NEGAHBAN: It's basically the combination-- 272 00:14:27,560 --> 00:14:28,393 [INTERPOSING VOICES] 273 00:14:28,393 --> 00:14:38,594 274 00:14:38,594 --> 00:14:39,197 [END PLAYBACK] 275 00:14:39,197 --> 00:14:40,030 SAHAND NEGAHBAN: OK. 276 00:14:40,030 --> 00:14:42,790 So what that was, if you're not aware, it 277 00:14:42,790 --> 00:14:45,885 was two sports announcers, soccer announcers, 278 00:14:45,885 --> 00:14:50,970 broadcasting the World Cup, where Argentina was playing England. 279 00:14:50,970 --> 00:14:53,140 And so it was a British commentator commenting 280 00:14:53,140 --> 00:14:55,390 on Maradona scoring against England, and then 281 00:14:55,390 --> 00:14:59,730 an Argentinian commentator commenting on Maradona scoring against England. 282 00:14:59,730 --> 00:15:02,190 Now, you guys, your brains could have figured that out. 283 00:15:02,190 --> 00:15:04,120 If you could speak Spanish, I'm sure you could 284 00:15:04,120 --> 00:15:05,620 have figured out what he was saying. 285 00:15:05,620 --> 00:15:07,620 If you speak English-- I think you all do-- 286 00:15:07,620 --> 00:15:10,720 you know exactly what the British commentator was saying. 287 00:15:10,720 --> 00:15:13,800 But we'd want a computer to be able to do that, too. 288 00:15:13,800 --> 00:15:17,460 So using something called independent component analysis, 289 00:15:17,460 --> 00:15:21,070 which we taught in the course that I'm teaching with Dan Spielman called 290 00:15:21,070 --> 00:15:23,800 Computational Tools in Data Science-- that's 291 00:15:23,800 --> 00:15:30,210 CPSC 262-- you can kind of tease apart the two signals 292 00:15:30,210 --> 00:15:33,190 and figure out what they were individually. 293 00:15:33,190 --> 00:15:34,020 [AUDIO PLAYBACK] 294 00:15:34,020 --> 00:15:35,140 - [SPEAKING SPANISH] 295 00:15:35,140 --> 00:15:37,515 SAHAND NEGAHBAN: So this is just the Spanish broadcaster. 296 00:15:37,515 --> 00:15:40,108 - [SPEAKING SPANISH] 297 00:15:40,108 --> 00:15:49,917 298 00:15:49,917 --> 00:15:50,500 [END PLAYBACK] 299 00:15:50,500 --> 00:15:53,500 SAHAND NEGAHBAN: So he's very happy. 300 00:15:53,500 --> 00:15:55,184 The British commentator is-- 301 00:15:55,184 --> 00:15:55,850 [AUDIO PLAYBACK] 302 00:15:55,850 --> 00:15:59,164 - If we hadn't been able to control the play mid-field, 303 00:15:59,164 --> 00:16:05,520 the way that Maradona has been able to do-- 304 00:16:05,520 --> 00:16:14,833 [INAUDIBLE] There's no doubt about that one. 305 00:16:14,833 --> 00:16:15,416 [END PLAYBACK] 306 00:16:15,416 --> 00:16:17,166 SAHAND NEGAHBAN: [INAUDIBLE] the position, 307 00:16:17,166 --> 00:16:20,440 because these are two signals that kind of happened at the same time. 308 00:16:20,440 --> 00:16:23,100 I mixed them together artificially, but now we 309 00:16:23,100 --> 00:16:28,270 wanted an algorithm to sort of understand how to split it up. 310 00:16:28,270 --> 00:16:32,070 So another setting that I also like, and I encourage you to maybe take 311 00:16:32,070 --> 00:16:34,870 other computational classes also related to statistics 312 00:16:34,870 --> 00:16:37,160 is, you might go online now you might want to say, 313 00:16:37,160 --> 00:16:39,510 I want to find data that's related to each other. 314 00:16:39,510 --> 00:16:43,660 Say you have some crazy new idea for tracking the S&P 500 315 00:16:43,660 --> 00:16:45,270 and you want to use it to trade. 316 00:16:45,270 --> 00:16:46,870 And so that's great. 317 00:16:46,870 --> 00:16:49,590 You can find a lot of signals to help you predict, 318 00:16:49,590 --> 00:16:51,710 but you could run into some problems. 319 00:16:51,710 --> 00:16:56,240 And so now I'm going to shamelessly steal somebody else's-- this website 320 00:16:56,240 --> 00:17:02,690 called Spurious Correlations, which I personally, I love as an example. 321 00:17:02,690 --> 00:17:06,480 The basic idea here, it's going to have signals that look like they're related. 322 00:17:06,480 --> 00:17:09,950 You've all heard the whole notion correlation is not causation. 323 00:17:09,950 --> 00:17:13,359 If two things are correlated, it doesn't actually mean they're linked together. 324 00:17:13,359 --> 00:17:15,560 It doesn't mean that one implies the other. 325 00:17:15,560 --> 00:17:17,339 Well, in fact, a lot of times correlation 326 00:17:17,339 --> 00:17:19,800 doesn't even mean correlation in a sense. 327 00:17:19,800 --> 00:17:21,839 So these are a bit macabre. 328 00:17:21,839 --> 00:17:23,270 So warning, I guess. 329 00:17:23,270 --> 00:17:25,900 But here's an example. 330 00:17:25,900 --> 00:17:30,280 So this is the trend of US spending on science and space and technology 331 00:17:30,280 --> 00:17:35,240 versus this suicides by hanging. 332 00:17:35,240 --> 00:17:37,720 These shouldn't be related. 333 00:17:37,720 --> 00:17:40,540 This is Tyler Vigen's website, Spurious Correlations. 334 00:17:40,540 --> 00:17:42,820 I think it's pretty nice. 335 00:17:42,820 --> 00:17:45,580 There are a lot of weird ones that he talks about, 336 00:17:45,580 --> 00:17:48,324 per capita cheese consumption, this one. 337 00:17:48,324 --> 00:17:51,700 338 00:17:51,700 --> 00:17:54,080 [LAUGHTER] 339 00:17:54,080 --> 00:17:58,244 340 00:17:58,244 --> 00:17:59,660 These aren't even just restricted. 341 00:17:59,660 --> 00:18:02,451 So Google actually has a really nice thing called Google Correlate. 342 00:18:02,451 --> 00:18:05,770 343 00:18:05,770 --> 00:18:09,780 So you can actually put trends-- you guys, 344 00:18:09,780 --> 00:18:13,572 I'd encourage you to check out the paper that they have associated with it. 345 00:18:13,572 --> 00:18:14,280 It's really nice. 346 00:18:14,280 --> 00:18:17,100 But you could put something in here and see links. 347 00:18:17,100 --> 00:18:20,522 So I could say maybe put weight, and then you'll see trends. 348 00:18:20,522 --> 00:18:23,230 Like OK, low calorie, low calorie snacks, weight loss, good diet. 349 00:18:23,230 --> 00:18:24,230 That makes sense. 350 00:18:24,230 --> 00:18:28,262 But you could put maybe a weirder search like this. 351 00:18:28,262 --> 00:18:33,500 352 00:18:33,500 --> 00:18:38,740 And you get some things that don't-- Nissan Centra's up there with a 0.95 353 00:18:38,740 --> 00:18:39,240 correlation. 354 00:18:39,240 --> 00:18:43,730 355 00:18:43,730 --> 00:18:45,980 You just get some interesting things. 356 00:18:45,980 --> 00:18:49,040 So the point is I'd encourage you to take your computational tools 357 00:18:49,040 --> 00:18:52,240 and play around, and look at the classes in computer 358 00:18:52,240 --> 00:18:55,660 science, electrical engineering stats, and dealing with machine learning. 359 00:18:55,660 --> 00:18:58,290 Thanks. 360 00:18:58,290 --> 00:19:00,250 PATRICK REBESCHINI: Thank you, Sahand. 361 00:19:00,250 --> 00:19:01,990 Great. 362 00:19:01,990 --> 00:19:05,765 And finally, Mahesh Balakrishnan, from the computer science department. 363 00:19:05,765 --> 00:19:17,620 364 00:19:17,620 --> 00:19:20,110 MAHESH BALAKRISHNAN: Is this working? 365 00:19:20,110 --> 00:19:22,910 OK, so I'm going to talk about systems. 366 00:19:22,910 --> 00:19:24,730 So what are systems? 367 00:19:24,730 --> 00:19:27,870 Computer science is typically partitioned into a few areas. 368 00:19:27,870 --> 00:19:30,930 You have programming languages, AI, graphics. 369 00:19:30,930 --> 00:19:33,540 Those are the guys who come up with these very cool ideas, 370 00:19:33,540 --> 00:19:36,910 and you saw some of these pretty pictures and so on. 371 00:19:36,910 --> 00:19:40,040 In systems, we are the guys who make it work. 372 00:19:40,040 --> 00:19:40,590 OK. 373 00:19:40,590 --> 00:19:43,410 So when you type in Facebook.com or Google.com, 374 00:19:43,410 --> 00:19:46,820 and the page loads instantly. 375 00:19:46,820 --> 00:19:51,980 An enormous amount of code goes into that. 376 00:19:51,980 --> 00:19:54,530 Actually, I don't know why my slide title isn't showing up, 377 00:19:54,530 --> 00:19:56,550 but that's fine. 378 00:19:56,550 --> 00:20:00,510 If you go to Google, there are maybe tens of millions 379 00:20:00,510 --> 00:20:05,720 of lines of code that go into showing you this web page and ensuring that 380 00:20:05,720 --> 00:20:08,490 when you type in google.com, and you hit Enter, 381 00:20:08,490 --> 00:20:12,900 that you see this web page within something like 200 milliseconds 382 00:20:12,900 --> 00:20:17,260 because that's the amount of time beyond which users can perceive delay. 383 00:20:17,260 --> 00:20:23,860 And also ensuring that 99.9999% of the time when you go to this website, 384 00:20:23,860 --> 00:20:25,780 it's up and running. 385 00:20:25,780 --> 00:20:27,870 And this is an enormous amount of code. 386 00:20:27,870 --> 00:20:32,080 And so when somebody has a new search algorithm, 387 00:20:32,080 --> 00:20:35,920 or somebody has some kind of a new virtual reality application, 388 00:20:35,920 --> 00:20:40,700 you need a pretty big and complex system to make it work. 389 00:20:40,700 --> 00:20:43,890 But it turns out that people who work in systems 390 00:20:43,890 --> 00:20:47,820 don't really spend their time writing enormous amounts of code. 391 00:20:47,820 --> 00:20:50,450 That's not where the intellectual effort is. 392 00:20:50,450 --> 00:20:53,680 The intellectual effort is in something called an abstraction. 393 00:20:53,680 --> 00:20:58,110 How do you make it easy to build some kind of a computer system 394 00:20:58,110 --> 00:21:00,570 that consists of millions of lines of code? 395 00:21:00,570 --> 00:21:04,549 And the answer turns out to be that you try to identify these abstractions. 396 00:21:04,549 --> 00:21:06,590 To give you an example of what an abstraction is, 397 00:21:06,590 --> 00:21:08,530 a file is an abstraction. 398 00:21:08,530 --> 00:21:11,510 I'm guessing you guys have all interacted with file systems. 399 00:21:11,510 --> 00:21:14,040 You have saved files, loaded files. 400 00:21:14,040 --> 00:21:17,610 So a file is something that allows you to save data 401 00:21:17,610 --> 00:21:24,490 without having to worry about how many hard discs, or RAM, or SSDs you 402 00:21:24,490 --> 00:21:27,735 have on your machine, without worrying about whether your data is local 403 00:21:27,735 --> 00:21:29,500 or it's in the cloud. 404 00:21:29,500 --> 00:21:31,390 So that's an example of an abstraction. 405 00:21:31,390 --> 00:21:35,840 And part of what we do in systems is we come up with these abstractions 406 00:21:35,840 --> 00:21:40,300 to make it easy for other people to realize these cool applications 407 00:21:40,300 --> 00:21:41,770 that they dream up. 408 00:21:41,770 --> 00:21:44,530 And so we focus a lot on building real systems. 409 00:21:44,530 --> 00:21:47,630 And we are really interested in end-to-end metrics. 410 00:21:47,630 --> 00:21:50,520 You build a real system, and then you access it, 411 00:21:50,520 --> 00:21:53,360 and you see how reliable it is, how fast it is. 412 00:21:53,360 --> 00:21:56,530 413 00:21:56,530 --> 00:22:01,740 If you look at the actual technical content of this, what this involves-- 414 00:22:01,740 --> 00:22:06,230 it typically involves coming up the new obstructions and implementing them. 415 00:22:06,230 --> 00:22:11,830 And often we are the customers of EE people. 416 00:22:11,830 --> 00:22:14,460 So when somebody invents some kind of new hardware-- 417 00:22:14,460 --> 00:22:16,610 and this could be virtual reality glasses, 418 00:22:16,610 --> 00:22:20,610 it could be some new kind of architecture, a new kind of memory-- 419 00:22:20,610 --> 00:22:23,280 we are the ones who build the software layer that 420 00:22:23,280 --> 00:22:27,090 knows how to use this kind of hardware. 421 00:22:27,090 --> 00:22:30,660 So for example, if you have a new virtual reality app 422 00:22:30,660 --> 00:22:32,760 and now you have something like the Oculus Rift 423 00:22:32,760 --> 00:22:36,390 coming out that Facebook's selling these goggles, 424 00:22:36,390 --> 00:22:40,430 we are the ones who would produce this intermediate level of code that 425 00:22:40,430 --> 00:22:45,040 makes it easy for you to build your new application on top of the hardware, 426 00:22:45,040 --> 00:22:48,380 without having to understand the nuances and the idiosyncrasies 427 00:22:48,380 --> 00:22:49,860 of that hardware. 428 00:22:49,860 --> 00:22:53,390 And so a lot of what we do, though, is to enable new applications. 429 00:22:53,390 --> 00:22:56,550 So things that augmented reality, virtual reality. 430 00:22:56,550 --> 00:22:59,440 10 years back, social networks were a new application. 431 00:22:59,440 --> 00:23:02,910 15 years back, search engines were a new application, 432 00:23:02,910 --> 00:23:06,640 and making these applications ubiquitous involved 433 00:23:06,640 --> 00:23:08,980 a tremendous amount of system building. 434 00:23:08,980 --> 00:23:13,790 And so the internet of things is another example that's very common right now. 435 00:23:13,790 --> 00:23:15,450 I teach a class at Yale. 436 00:23:15,450 --> 00:23:19,240 This is a senior level class on building distributed systems, 437 00:23:19,240 --> 00:23:22,380 where we kind of walk you through what it takes to build something 438 00:23:22,380 --> 00:23:23,860 like Google or Facebook. 439 00:23:23,860 --> 00:23:26,700 And I'm going to give you a very quick example of the kind 440 00:23:26,700 --> 00:23:29,970 of intellectual problems we deal with. 441 00:23:29,970 --> 00:23:34,580 So let's say you come up with an example of a service, 442 00:23:34,580 --> 00:23:36,780 and you want to run it online. 443 00:23:36,780 --> 00:23:38,900 Well, you can run it on a single machine. 444 00:23:38,900 --> 00:23:42,370 This is probably similar to the kinds of applications you've been working on. 445 00:23:42,370 --> 00:23:44,890 But your problem now is, if you run it on a single machine, 446 00:23:44,890 --> 00:23:46,520 that machine can crash. 447 00:23:46,520 --> 00:23:50,230 So you need some kind of disk there so that when the machine reboots, 448 00:23:50,230 --> 00:23:51,620 your data is still there. 449 00:23:51,620 --> 00:23:54,450 You still have a problem that there's only one machine here. 450 00:23:54,450 --> 00:23:57,870 If it crashes and doesn't come back up, Facebook.com is down. 451 00:23:57,870 --> 00:24:01,141 So you need to replicate data, and this is the kind of thing 452 00:24:01,141 --> 00:24:02,140 that we do all the time. 453 00:24:02,140 --> 00:24:05,590 We replicate data so that the service never goes down. 454 00:24:05,590 --> 00:24:09,260 You still have a problem, which is that, all of Facebook.com cannot live 455 00:24:09,260 --> 00:24:10,670 on three machines. 456 00:24:10,670 --> 00:24:16,690 And so we have this thing where we partition data across sets of machines. 457 00:24:16,690 --> 00:24:19,460 And finally when you partition data across machines, 458 00:24:19,460 --> 00:24:22,930 you have to deal with the fact that these machines are in different places 459 00:24:22,930 --> 00:24:25,540 so moving things between them is difficult. 460 00:24:25,540 --> 00:24:28,820 This is just a very quick summary of the kinds of things 461 00:24:28,820 --> 00:24:32,260 that it's taken engineers at Facebook and Google, 462 00:24:32,260 --> 00:24:35,400 say, 10 to 20 years, to solve. 463 00:24:35,400 --> 00:24:38,890 And this is sort of the technical content we have in systems. 464 00:24:38,890 --> 00:24:44,770 So if you stay in computer science, I hope that you look at computer systems 465 00:24:44,770 --> 00:24:50,320 as a friendly, exciting area with a lot of opportunities. 466 00:24:50,320 --> 00:24:54,000 We build real stuff and we need people to build these things. 467 00:24:54,000 --> 00:24:55,410 Thank you. 468 00:24:55,410 --> 00:24:58,320 [APPLAUSE] 469 00:24:58,320 --> 00:25:00,569 470 00:25:00,569 --> 00:25:02,110 PATRICK REBESCHINI: All right, great. 471 00:25:02,110 --> 00:25:06,920 So this is just a snapshot of what life after CS50 might entail. 472 00:25:06,920 --> 00:25:11,080 For those of you, again, who want to engage more deeply with the field of CS 473 00:25:11,080 --> 00:25:12,140 and related. 474 00:25:12,140 --> 00:25:16,790 But now, let's go back to the present and let us finish with style. 475 00:25:16,790 --> 00:25:19,880 It is my greatest pleasure and honor, once 476 00:25:19,880 --> 00:25:23,530 again, to introduce and to welcome here in New Haven, David 477 00:25:23,530 --> 00:25:24,950 Malan and the Harvard team. 478 00:25:24,950 --> 00:25:32,250 It has been a great year together, our second year of this joint course. 479 00:25:32,250 --> 00:25:37,030 Let me say, the cross-fertilization that came out in both campuses 480 00:25:37,030 --> 00:25:40,280 when it comes to improving and pushing the boundaries, terrific. 481 00:25:40,280 --> 00:25:43,570 So I couldn't be more happy to welcome him on a stage again. 482 00:25:43,570 --> 00:25:47,070 David Malan, please, big round of applause for David. 483 00:25:47,070 --> 00:25:49,854 [APPLAUSE] 484 00:25:49,854 --> 00:26:17,325 485 00:26:17,325 --> 00:26:19,200 DAVID J. MALAN: Thank you so much to Patrick. 486 00:26:19,200 --> 00:26:20,825 It's really nice to see everyone again. 487 00:26:20,825 --> 00:26:24,240 I know it's been some time, and I know tensions are high 488 00:26:24,240 --> 00:26:25,500 going into this weekend. 489 00:26:25,500 --> 00:26:28,125 In fact, we just ducked down here and we're heading right back. 490 00:26:28,125 --> 00:26:30,390 491 00:26:30,390 --> 00:26:32,250 I'm guessing many of you might be joining us 492 00:26:32,250 --> 00:26:33,380 up in Cambridge this weekend. 493 00:26:33,380 --> 00:26:34,650 But I just wanted to emphasize, really right 494 00:26:34,650 --> 00:26:37,233 at the start here, what a special collaboration this has been, 495 00:26:37,233 --> 00:26:38,690 both last year and this. 496 00:26:38,690 --> 00:26:41,680 Bringing these two campuses together, of all the campuses in the world 497 00:26:41,680 --> 00:26:45,440 to bring together, I think has been this really special, really interesting, 498 00:26:45,440 --> 00:26:47,704 and really challenging experiment. 499 00:26:47,704 --> 00:26:50,370 And thanks to Patrick and Jason and Andi and Summer and Stelios, 500 00:26:50,370 --> 00:26:52,529 and the whole team here and in Cambridge, 501 00:26:52,529 --> 00:26:54,320 we think it's really been going well and we 502 00:26:54,320 --> 00:26:55,870 hope that you'll give us all the feedback you 503 00:26:55,870 --> 00:26:58,369 can over the next few weeks so that we can continue to build 504 00:26:58,369 --> 00:27:00,190 on this and last year's foundation. 505 00:27:00,190 --> 00:27:01,856 And I have a little bit of a confession. 506 00:27:01,856 --> 00:27:05,190 I don't normally lift up my shirt when I'm in Cambridge, 507 00:27:05,190 --> 00:27:07,724 but I just wanted you to know that underneath-- 508 00:27:07,724 --> 00:27:10,508 [APPLAUSE] 509 00:27:10,508 --> 00:27:12,830 510 00:27:12,830 --> 00:27:16,100 --underneath all those black sweaters, all this time. 511 00:27:16,100 --> 00:27:18,874 Why don't we begin on just a sentimental note, thanks to a video 512 00:27:18,874 --> 00:27:21,790 that CS50's production team has put together over the past few months, 513 00:27:21,790 --> 00:27:25,230 in shooting some footage and stills both here and in Cambridge. 514 00:27:25,230 --> 00:27:29,204 This then is a look back at some of the past several weeks. 515 00:27:29,204 --> 00:27:29,870 [VIDEO PLAYBACK] 516 00:27:29,870 --> 00:27:31,798 [MUSIC - GALANTIS, "GOLD DUST"] 517 00:27:31,798 --> 00:27:34,140 518 00:27:34,140 --> 00:27:37,016 - (SINGING) You're like gold dust. 519 00:27:37,016 --> 00:27:41,140 520 00:27:41,140 --> 00:27:45,596 It rains over me. 521 00:27:45,596 --> 00:27:49,019 - This is CS50. 522 00:27:49,019 --> 00:27:56,550 - A foreign sun, my eyes thought I'd never see. 523 00:27:56,550 --> 00:27:59,430 You're like gold dust. 524 00:27:59,430 --> 00:28:02,910 525 00:28:02,910 --> 00:28:09,760 Keep coming down that street. 526 00:28:09,760 --> 00:28:15,095 There's a hollow in this house whenever you go. 527 00:28:15,095 --> 00:28:59,255 528 00:28:59,255 --> 00:29:00,225 [END PLAYBACK] 529 00:29:00,225 --> 00:29:02,610 DAVID J. MALAN: So you'll appreciate perhaps, 530 00:29:02,610 --> 00:29:05,179 that this course has been entirely about problem solving. 531 00:29:05,179 --> 00:29:07,470 And especially given the timing of this coming weekend, 532 00:29:07,470 --> 00:29:12,500 it felt particularly appropriate to look a few years further back, back in 2004, 533 00:29:12,500 --> 00:29:16,510 which if unfamiliar, was perhaps one of the best Harvard-Yale pranks 534 00:29:16,510 --> 00:29:17,810 in history. 535 00:29:17,810 --> 00:29:25,029 At which time we Harvard folks learned, well, that we suck. 536 00:29:25,029 --> 00:29:26,320 But I thought I'd play a video. 537 00:29:26,320 --> 00:29:28,150 If you're unfamiliar with this-- and even if you are, 538 00:29:28,150 --> 00:29:30,770 it's great fun to look back on, again, one of the best 539 00:29:30,770 --> 00:29:33,190 pranks at Harvard/Yale's past. 540 00:29:33,190 --> 00:29:35,470 Let's take a look. 541 00:29:35,470 --> 00:29:37,820 [VIDEO PLAYBACK] 542 00:29:37,820 --> 00:29:40,990 - We're headed up to Boston. 543 00:29:40,990 --> 00:29:45,532 Checking out the stadium for the prank. 544 00:29:45,532 --> 00:29:48,370 A few years ago, I was at a math conference. 545 00:29:48,370 --> 00:29:53,150 And I was sitting around the table at dinner with a few other mathematicians. 546 00:29:53,150 --> 00:29:56,750 And one of them went to Harvard and started 547 00:29:56,750 --> 00:30:01,850 telling the story of this amazing prank that was against Harvard. 548 00:30:01,850 --> 00:30:04,220 And at that point, I felt I had to interrupt 549 00:30:04,220 --> 00:30:08,270 and said, well, actually I can tell you a lot more about that. 550 00:30:08,270 --> 00:30:08,859 OK? 551 00:30:08,859 --> 00:30:09,650 DAVID J. MALAN: OK. 552 00:30:09,650 --> 00:30:12,090 - The idea was perfected in a dorm room. 553 00:30:12,090 --> 00:30:14,330 - We came up with the idea actually to prank them 554 00:30:14,330 --> 00:30:16,020 with signs at the football game. 555 00:30:16,020 --> 00:30:19,680 We threw some ideas out there as far as what the signs would say. 556 00:30:19,680 --> 00:30:22,320 We eventually settled on "we suck." 557 00:30:22,320 --> 00:30:26,120 - And my immediate reaction was, no, this will never work However, 558 00:30:26,120 --> 00:30:28,440 the problem solver in me started thinking, 559 00:30:28,440 --> 00:30:31,760 well, maybe we can make this work. 560 00:30:31,760 --> 00:30:33,560 - The problem? 561 00:30:33,560 --> 00:30:36,800 They had to infiltrate Harvard stadium without getting caught, 562 00:30:36,800 --> 00:30:41,500 sneak in 1,800 placards, distribute them to unsuspecting Harvard fans, 563 00:30:41,500 --> 00:30:45,050 and then convince those fans to prank themselves. 564 00:30:45,050 --> 00:30:45,900 - That's great. 565 00:30:45,900 --> 00:30:50,710 We thought about basically every possible thing that could go wrong 566 00:30:50,710 --> 00:30:52,790 and tried to come up with a solution for it. 567 00:30:52,790 --> 00:30:55,370 - And then you put two reds on top of it. 568 00:30:55,370 --> 00:31:01,490 - They made fake Harvard IDs and fake back stories, fake placard designs, 569 00:31:01,490 --> 00:31:05,050 and a 28-member fake pep squad. 570 00:31:05,050 --> 00:31:08,680 On November 20, 2004, the fake Harvard students 571 00:31:08,680 --> 00:31:10,866 smuggled the placards into the game. 572 00:31:10,866 --> 00:31:12,850 - What do you think of Yale, sir? 573 00:31:12,850 --> 00:31:13,842 - They suck. 574 00:31:13,842 --> 00:31:17,314 575 00:31:17,314 --> 00:31:20,786 - It's not going to say something like Yale sucks, is it? 576 00:31:20,786 --> 00:31:24,260 - It says, go Harvard. 577 00:31:24,260 --> 00:31:26,505 - But then, trouble. 578 00:31:26,505 --> 00:31:28,485 - What houses are you guys in? 579 00:31:28,485 --> 00:31:29,475 - [INAUDIBLE] 580 00:31:29,475 --> 00:31:31,409 - How many extra are there? 581 00:31:31,409 --> 00:31:31,950 - [INAUDIBLE] 582 00:31:31,950 --> 00:31:38,175 583 00:31:38,175 --> 00:31:41,480 - I just showed him the front of this ID, and all of a sudden 584 00:31:41,480 --> 00:31:45,150 he just ran away, and he felt so embarrassed. 585 00:31:45,150 --> 00:31:49,220 - Having escaped one confrontation, they couldn't risk another. 586 00:31:49,220 --> 00:31:51,250 It was time. 587 00:31:51,250 --> 00:31:53,580 - This just looks like a total mess. 588 00:31:53,580 --> 00:31:56,221 We have absolutely no idea if this is going to work. 589 00:31:56,221 --> 00:32:03,880 590 00:32:03,880 --> 00:32:08,605 - What was once a prank became a legend. 591 00:32:08,605 --> 00:32:10,585 We We [BLEEP] did it! 592 00:32:10,585 --> 00:32:13,555 We [BLEEP] did it! 593 00:32:13,555 --> 00:32:18,681 - And immediately we started hearing chants from the other side, you suck. 594 00:32:18,681 --> 00:32:21,770 - You suck, you suck, you suck. 595 00:32:21,770 --> 00:32:25,219 - And I think it was that point in time that we knew we had pulled it off. 596 00:32:25,219 --> 00:32:26,909 - One more time! 597 00:32:26,909 --> 00:32:28,600 Come on, Harvard! 598 00:32:28,600 --> 00:32:30,532 There it goes again. 599 00:32:30,532 --> 00:32:33,430 600 00:32:33,430 --> 00:32:37,880 - I really think it didn't matter that Harvard won, because of the prank. 601 00:32:37,880 --> 00:32:42,330 For a lot of Yale students and alumni, we definitely won that year. 602 00:32:42,330 --> 00:32:46,330 603 00:32:46,330 --> 00:32:47,207 [END PLAYBACK] 604 00:32:47,207 --> 00:32:48,290 DAVID J. MALAN: All right. 605 00:32:48,290 --> 00:32:50,950 So if we come back then to the present, I just 606 00:32:50,950 --> 00:32:52,950 wanted to remind you of this quote with which we 607 00:32:52,950 --> 00:32:56,779 began the semester, because we are here now in week 11, some 12 weeks later. 608 00:32:56,779 --> 00:32:58,820 And what ultimately matters in this course is not 609 00:32:58,820 --> 00:33:01,028 so much where you end up relative to your classmates, 610 00:33:01,028 --> 00:33:05,310 but where you end up now, relative to yourself way back in week 0. 611 00:33:05,310 --> 00:33:08,630 And you'll recall perhaps, that in week 0 we looked at computational thinking, 612 00:33:08,630 --> 00:33:09,710 we introduced scratch. 613 00:33:09,710 --> 00:33:12,550 Your first problem, set 0, was to do exactly that. 614 00:33:12,550 --> 00:33:14,420 Build most anything of interest to you. 615 00:33:14,420 --> 00:33:21,050 And one of the traditions we have in the class, is to ask of the staff, 616 00:33:21,050 --> 00:33:23,959 let me first disclaim, we love all projects equally. 617 00:33:23,959 --> 00:33:26,250 We do have a few favorites, and we've plucked out a few 618 00:33:26,250 --> 00:33:29,208 that we thought it would be fun just to play here all these weeks later 619 00:33:29,208 --> 00:33:30,870 to show just how far we have come. 620 00:33:30,870 --> 00:33:34,230 If someone might like to volunteer and play a few scratch-- that was fast. 621 00:33:34,230 --> 00:33:36,420 Come on up. 622 00:33:36,420 --> 00:33:37,316 OK, what's your name? 623 00:33:37,316 --> 00:33:38,090 BILLY: Billy. 624 00:33:38,090 --> 00:33:39,798 DAVID J. MALAN: Billy, come on up, Billy. 625 00:33:39,798 --> 00:33:42,194 626 00:33:42,194 --> 00:33:44,480 You are clearly from Yale. 627 00:33:44,480 --> 00:33:45,320 All right. 628 00:33:45,320 --> 00:33:46,380 Come on over. 629 00:33:46,380 --> 00:33:50,290 So one of our first of many staff favorites was this one here, 630 00:33:50,290 --> 00:33:53,020 Bob the Bear, by Mandy Lee YP. 631 00:33:53,020 --> 00:33:56,230 And I will go ahead and open this one on my machine 632 00:33:56,230 --> 00:34:00,235 here so that we can see the first of 3. 633 00:34:00,235 --> 00:34:03,360 So Bob the bear has some instructions with which we're going to begin here. 634 00:34:03,360 --> 00:34:06,780 I'll full screen this, and it's perhaps among the most adorable as well. 635 00:34:06,780 --> 00:34:11,320 [MUSIC PLAYING] 636 00:34:11,320 --> 00:34:12,605 So click Bob. 637 00:34:12,605 --> 00:34:16,070 [MUSIC PLAYING] 638 00:34:16,070 --> 00:34:29,540 639 00:34:29,540 --> 00:34:30,040 Very nice. 640 00:34:30,040 --> 00:34:33,571 641 00:34:33,571 --> 00:34:35,409 Notice we have two variables up top. 642 00:34:35,409 --> 00:34:37,690 One is points, one is timer. 643 00:34:37,690 --> 00:34:42,530 You have 32 seconds to get as many points as you can. 644 00:34:42,530 --> 00:34:45,469 Think of course, of all the programming constructs underlying this. 645 00:34:45,469 --> 00:34:51,483 We've got some loops, for instance, an event listener with the keystrokes. 646 00:34:51,483 --> 00:34:53,441 Apparently some animation, which is doing move, 647 00:34:53,441 --> 00:34:56,219 move move, move, in some kind of loop. 648 00:34:56,219 --> 00:34:59,744 A GIF that makes the bear eventually stop. 649 00:34:59,744 --> 00:35:04,105 I'm really just trying to justify playing this game. 650 00:35:04,105 --> 00:35:06,170 He's only got 6 seconds left. 651 00:35:06,170 --> 00:35:09,502 652 00:35:09,502 --> 00:35:10,947 6 points, nice. 653 00:35:10,947 --> 00:35:14,360 654 00:35:14,360 --> 00:35:16,590 Very well done. 655 00:35:16,590 --> 00:35:17,680 That's all they gave us. 656 00:35:17,680 --> 00:35:19,210 OK, congratulations. 657 00:35:19,210 --> 00:35:22,116 Thank you to Billy. 658 00:35:22,116 --> 00:35:25,800 Can we get one other volunteer up here for Cat 659 00:35:25,800 --> 00:35:29,620 goes 2 Yale, final, which was their final submission, it seems? 660 00:35:29,620 --> 00:35:33,060 Volunteer here, OK, come on up. 661 00:35:33,060 --> 00:35:34,020 All right. 662 00:35:34,020 --> 00:35:38,220 Joey's coming on up to play JP Bosco's Cat goes 2 Yale. 663 00:35:38,220 --> 00:35:42,940 664 00:35:42,940 --> 00:35:44,270 All right. 665 00:35:44,270 --> 00:35:46,800 This one too felt particularly apt. 666 00:35:46,800 --> 00:35:49,422 Let me just get it full screened. 667 00:35:49,422 --> 00:35:52,140 668 00:35:52,140 --> 00:35:55,250 Uh-oh, spoiler. 669 00:35:55,250 --> 00:35:56,720 Stand by. 670 00:35:56,720 --> 00:35:58,455 This is how we solve problems. 671 00:35:58,455 --> 00:36:01,920 672 00:36:01,920 --> 00:36:04,020 Come on. 673 00:36:04,020 --> 00:36:07,010 Come on. 674 00:36:07,010 --> 00:36:07,640 There we go. 675 00:36:07,640 --> 00:36:08,270 All right. 676 00:36:08,270 --> 00:36:12,270 Cat goes 2 Yale, final. 677 00:36:12,270 --> 00:36:15,450 Press the space bar. 678 00:36:15,450 --> 00:36:19,190 So you have to grab those three things, so a book, a medal, and a piano. 679 00:36:19,190 --> 00:36:22,520 And apparently avoid sleeping, playing games, or exercise. 680 00:36:22,520 --> 00:36:27,014 [MUSIC - TOBY FOX, "IT'S SHOWTIME"] 681 00:36:27,014 --> 00:36:37,382 682 00:36:37,382 --> 00:36:37,882 Nice. 683 00:36:37,882 --> 00:36:41,264 Notice the score goes up and down, plus 1 or minus 1. 684 00:36:41,264 --> 00:36:50,228 685 00:36:50,228 --> 00:36:53,214 Nice. 686 00:36:53,214 --> 00:36:53,714 Nice. 687 00:36:53,714 --> 00:37:03,176 688 00:37:03,176 --> 00:37:05,680 Only level, 1. 689 00:37:05,680 --> 00:37:07,650 No, I think it's an infinite loop forever. 690 00:37:07,650 --> 00:37:08,680 There you go, you won. 691 00:37:08,680 --> 00:37:10,650 Very nicely done. 692 00:37:10,650 --> 00:37:12,080 Nicely done. 693 00:37:12,080 --> 00:37:14,360 And can we get one final volunteer? 694 00:37:14,360 --> 00:37:16,542 One final volunteer? 695 00:37:16,542 --> 00:37:19,980 [INAUDIBLE] Come on up, come on up. 696 00:37:19,980 --> 00:37:24,690 All right, so here is Spot the Freshman, Star Wars Edition. 697 00:37:24,690 --> 00:37:29,172 And this one is by Justin CS-24. 698 00:37:29,172 --> 00:37:29,880 What's your name? 699 00:37:29,880 --> 00:37:30,490 JAY: Jay. 700 00:37:30,490 --> 00:37:31,250 DAVID J. MALAN: Jay, all right. 701 00:37:31,250 --> 00:37:32,000 Nice to see you. 702 00:37:32,000 --> 00:37:33,612 Come on up. 703 00:37:33,612 --> 00:37:36,965 And once full-screen co-operates, here we go. 704 00:37:36,965 --> 00:37:39,935 [MUSIC - STAR WARS, "IMPERIAL MARCH"] 705 00:37:39,935 --> 00:38:01,715 706 00:38:01,715 --> 00:38:04,685 [MUSIC - STAR WARS, "IMPERIAL MARCH"] 707 00:38:04,685 --> 00:38:09,902 708 00:38:09,902 --> 00:38:11,182 Click on the student first. 709 00:38:11,182 --> 00:38:22,260 710 00:38:22,260 --> 00:38:23,140 Nice. 711 00:38:23,140 --> 00:38:24,000 Caught one freshman. 712 00:38:24,000 --> 00:38:37,989 713 00:38:37,989 --> 00:38:38,780 You can click on -- 714 00:38:38,780 --> 00:38:41,498 715 00:38:41,498 --> 00:38:43,310 [MUSIC - STAR WARS, "IMPERIAL MARCH"] 716 00:38:43,310 --> 00:39:00,680 717 00:39:00,680 --> 00:39:05,020 Well done nonetheless, nicely done. 718 00:39:05,020 --> 00:39:07,780 So you'll recall, we'll post these links all online 719 00:39:07,780 --> 00:39:09,120 if you'd like to play as well. 720 00:39:09,120 --> 00:39:11,160 So you'll recall too, that in problem set 4, 721 00:39:11,160 --> 00:39:13,984 there was a bit of a scavenger hunt at the end. 722 00:39:13,984 --> 00:39:15,900 So after recovering a whole bunch of the JPEGs 723 00:39:15,900 --> 00:39:18,129 from the recovered image, the forensic image, 724 00:39:18,129 --> 00:39:20,420 you were challenged to find as many computer scientists 725 00:39:20,420 --> 00:39:22,080 as you clued on campus. 726 00:39:22,080 --> 00:39:26,840 And we're very happy to say that Theodore found the most teaching 727 00:39:26,840 --> 00:39:29,490 fellow TAs and CAs here on campus. 728 00:39:29,490 --> 00:39:32,830 So Theodore will be receiving a fabulous prize for his section 729 00:39:32,830 --> 00:39:34,490 and all the students in that section. 730 00:39:34,490 --> 00:39:37,500 So stay tuned for a note from Jason on that. 731 00:39:37,500 --> 00:39:40,670 Also, in problem set 5 you'll recall we had some misspellings 732 00:39:40,670 --> 00:39:44,500 and there was a so-called big board here and a competition across campus 733 00:39:44,500 --> 00:39:47,400 with the here TAs here, the TFs at Harvard, all of the CAs, 734 00:39:47,400 --> 00:39:49,190 as well as all of the students. 735 00:39:49,190 --> 00:39:53,290 And while usually a student does actually top the big board, 736 00:39:53,290 --> 00:39:58,260 it's actually CS50's own Shreyas who's the top of this year's big board. 737 00:39:58,260 --> 00:40:01,290 So congratulations to him and several other staff 738 00:40:01,290 --> 00:40:04,230 that spent quite a while on this problem set. 739 00:40:04,230 --> 00:40:08,930 But he too will be receiving a fabulous prize from us as well. 740 00:40:08,930 --> 00:40:12,700 You'll recall later in the term we had a CS50 coding 741 00:40:12,700 --> 00:40:14,800 contest, which coincided with break. 742 00:40:14,800 --> 00:40:18,100 And we had a number of folks both here and in Cambridge participate in this. 743 00:40:18,100 --> 00:40:21,840 And it was a number of challenges that all had to be solved in C. 744 00:40:21,840 --> 00:40:27,280 And we wanted to acknowledge that the top Yale performer was Julia, a.k.a. 745 00:40:27,280 --> 00:40:31,080 @apple_cider, who will similarly be receiving a fabulous prize. 746 00:40:31,080 --> 00:40:35,480 So congratulations to Julia as well for ranking atop the list. 747 00:40:35,480 --> 00:40:39,960 I wanted to acknowledge now, just a few folks before we take another look back, 748 00:40:39,960 --> 00:40:40,820 as well ahead. 749 00:40:40,820 --> 00:40:42,070 CS50s production team. 750 00:40:42,070 --> 00:40:46,760 So a curious evolutionary treat of this experiment with Yale, 751 00:40:46,760 --> 00:40:50,670 has actually been that the course is now pretty much equivalently offered 752 00:40:50,670 --> 00:40:51,380 in Cambridge. 753 00:40:51,380 --> 00:40:54,157 Whereas last year, we had a lot more live lectures in Cambridge, 754 00:40:54,157 --> 00:40:57,240 this year have they been pre-produced, as you know, a few days in advance. 755 00:40:57,240 --> 00:40:58,990 So functionally, the students in Cambridge 756 00:40:58,990 --> 00:41:01,032 are having pretty much the exact same experience. 757 00:41:01,032 --> 00:41:03,906 We might shoot most of the lectures there, but literally in parallel, 758 00:41:03,906 --> 00:41:06,290 each week are students looking at the course's videos 759 00:41:06,290 --> 00:41:08,460 online, attending sections in person office hours, 760 00:41:08,460 --> 00:41:12,460 and the weirdest one is that literally every week at 1:00 PM, 761 00:41:12,460 --> 00:41:15,720 we have students sitting down here at SITAR and in Cambridge 762 00:41:15,720 --> 00:41:17,440 at Chang-Sho or in other restaurants. 763 00:41:17,440 --> 00:41:20,330 Sort of dining in parallel, this sort of strange bizarro world 764 00:41:20,330 --> 00:41:23,370 where the exact same thing is going on in two different places at once. 765 00:41:23,370 --> 00:41:26,490 But it's testament, I think, to just how accessible 766 00:41:26,490 --> 00:41:29,520 what the team's work has now become from the production team. 767 00:41:29,520 --> 00:41:32,120 So our many thanks to them for that. 768 00:41:32,120 --> 00:41:35,020 And wanted to give you a glimpse and perhaps 769 00:41:35,020 --> 00:41:39,590 an explanation of what all of those outros are at the end of the videos. 770 00:41:39,590 --> 00:41:41,860 Most any time I sit down at one of our CS50 lunches, 771 00:41:41,860 --> 00:41:44,410 the question always comes up, so what's with the videos 772 00:41:44,410 --> 00:41:45,810 at the end of the lectures? 773 00:41:45,810 --> 00:41:48,810 And if you may have noticed, at the end of every video 774 00:41:48,810 --> 00:41:52,400 this year has there been a little vignette, inspired by the film 775 00:41:52,400 --> 00:41:53,820 Citizen Kane, if you're familiar. 776 00:41:53,820 --> 00:41:55,700 And if you're not, do check that out at some point. 777 00:41:55,700 --> 00:41:57,720 And CS50's team in Cambridge over the summer 778 00:41:57,720 --> 00:42:00,610 decided to write their own narrative inspired by that. 779 00:42:00,610 --> 00:42:02,740 Completely scripted by the team, completely 780 00:42:02,740 --> 00:42:06,180 produced and edited, and ultimately acted by the team, 781 00:42:06,180 --> 00:42:10,590 and wanted to show you today what will be appended to today's video 782 00:42:10,590 --> 00:42:12,460 so that you needn't actually tune in online 783 00:42:12,460 --> 00:42:14,400 to what is happening right here today. 784 00:42:14,400 --> 00:42:20,802 So this is week 11's, and there's going to be one more part released on Monday. 785 00:42:20,802 --> 00:42:21,696 [VIDEO PLAYBACK] 786 00:42:21,696 --> 00:42:24,552 [MUSIC PLAYING] 787 00:42:24,552 --> 00:42:47,860 788 00:42:47,860 --> 00:42:50,050 - Any updates on the mailing case? 789 00:42:50,050 --> 00:42:53,830 People are getting desperate for some answers. 790 00:42:53,830 --> 00:42:54,330 - No. 791 00:42:54,330 --> 00:42:58,172 I mean, I've been all over town and just haven't found anything new. 792 00:42:58,172 --> 00:43:00,380 I feel like I might as well just stay here at my desk 793 00:43:00,380 --> 00:43:02,328 and stare at the ceiling. 794 00:43:02,328 --> 00:43:04,300 - Well, what about your Rosebud lead? 795 00:43:04,300 --> 00:43:05,786 Nothing there? 796 00:43:05,786 --> 00:43:07,738 - No. 797 00:43:07,738 --> 00:43:08,480 Total dead end. 798 00:43:08,480 --> 00:43:11,312 799 00:43:11,312 --> 00:43:14,630 I feel like we may never know who or what this Rosebud really is. 800 00:43:14,630 --> 00:43:20,090 801 00:43:20,090 --> 00:43:23,522 - I don't think any word can explain a man's life. 802 00:43:23,522 --> 00:43:24,980 Try not to be too hard on yourself. 803 00:43:24,980 --> 00:43:27,728 804 00:43:27,728 --> 00:43:29,490 Get some sleep. 805 00:43:29,490 --> 00:43:31,915 I'm sure you'll come up with something tomorrow. 806 00:43:31,915 --> 00:43:43,555 807 00:43:43,555 --> 00:43:44,142 [END PLAYBACK] 808 00:43:44,142 --> 00:43:47,350 DAVID J. MALAN: That there is CS50's own Lauren Scully, as well as Christian. 809 00:43:47,350 --> 00:43:49,490 And fun fact that we like to joke about, Christian 810 00:43:49,490 --> 00:43:52,670 was supposed to be wearing a fedora from wardrobe, 811 00:43:52,670 --> 00:43:54,950 but that day we could only find a cowboy hat, 812 00:43:54,950 --> 00:43:59,380 I believe, which is why he's dressed like that instead. 813 00:43:59,380 --> 00:44:03,040 But wanted to acknowledge as well the team here in New Haven-- 814 00:44:03,040 --> 00:44:07,589 Patrick and Stelios and Summer and Andi and Jason, without whom, 815 00:44:07,589 --> 00:44:09,380 certainly, the course wouldn't be possible. 816 00:44:09,380 --> 00:44:12,330 And it's really so much behind the scenes that goes on between the two 817 00:44:12,330 --> 00:44:13,830 campuses in Cambridge and New Haven. 818 00:44:13,830 --> 00:44:15,371 Thanks to our team back home as well. 819 00:44:15,371 --> 00:44:20,270 And we couldn't be more grateful to all of the efforts they put in here. 820 00:44:20,270 --> 00:44:25,860 We wanted to take a special moment to call out one fellow in particular. 821 00:44:25,860 --> 00:44:30,430 While shopping today, we also picked up a little something, 822 00:44:30,430 --> 00:44:35,080 as Patrick is about to become a father as well, So congratulations. 823 00:44:35,080 --> 00:44:38,352 824 00:44:38,352 --> 00:44:39,276 Here you go. 825 00:44:39,276 --> 00:44:43,520 826 00:44:43,520 --> 00:44:45,440 Everyone on the internet knows now. 827 00:44:45,440 --> 00:44:50,680 828 00:44:50,680 --> 00:44:55,052 We also wanted to certainly call a screen full of team members who 829 00:44:55,052 --> 00:44:56,760 can just barely fit on the screen, and we 830 00:44:56,760 --> 00:44:59,519 hope that many of these faces and names will soon be you indeed. 831 00:44:59,519 --> 00:45:01,310 We'll be following up before long about how 832 00:45:01,310 --> 00:45:03,970 you too, can get involved as a TA or a CA this coming year 833 00:45:03,970 --> 00:45:05,140 and really be part of this. 834 00:45:05,140 --> 00:45:07,264 And indeed, this too has been a very special thing. 835 00:45:07,264 --> 00:45:09,270 As you may know, two-plus years ago there 836 00:45:09,270 --> 00:45:12,700 were no undergraduate learning assistants or TAs on campus, 837 00:45:12,700 --> 00:45:14,450 leading their own sections and responsible 838 00:45:14,450 --> 00:45:16,030 for their own groups of students. 839 00:45:16,030 --> 00:45:19,440 And now, not only is CS50 in its second year of this tradition, 840 00:45:19,440 --> 00:45:23,430 now is that same feature possible in CS courses here at Yale more broadly. 841 00:45:23,430 --> 00:45:27,599 So being part of that too, is one of the unique opportunities perhaps ahead, 842 00:45:27,599 --> 00:45:30,640 and we'll continue to publicize this URL here that you'll see in the days 843 00:45:30,640 --> 00:45:31,520 to come. 844 00:45:31,520 --> 00:45:33,580 We, in particular, too, wanted to call out 845 00:45:33,580 --> 00:45:36,340 to one fellow who used to go by the email address, 846 00:45:36,340 --> 00:45:39,440 essentially, pumpkin@cs50.yale.edu. 847 00:45:39,440 --> 00:45:42,220 And that was for some time because he used 848 00:45:42,220 --> 00:45:46,950 to dress like this when he led his own sections at Harvard. 849 00:45:46,950 --> 00:45:51,400 So no joke, this was one year, some five or six years ago, 850 00:45:51,400 --> 00:45:54,540 where Jason led his section roughly around Halloween, I believe. 851 00:45:54,540 --> 00:45:58,060 In subsequent years, I believe at least one other year, he wore this outfit. 852 00:45:58,060 --> 00:46:01,850 But it's very much deflated because I think the pump broke, the air pump. 853 00:46:01,850 --> 00:46:06,400 But he continued to wear it, and it became known for us as our pumpkin. 854 00:46:06,400 --> 00:46:09,350 And it was really special honestly, because then upon graduating, 855 00:46:09,350 --> 00:46:12,600 of course, he came here to Yale and has been here for the past year and a half 856 00:46:12,600 --> 00:46:13,250 or so now. 857 00:46:13,250 --> 00:46:17,210 And truly, without Jason, would CS50 at Yale not have been possible. 858 00:46:17,210 --> 00:46:19,880 It was him and it was Professor Brian Scassellati last year, 859 00:46:19,880 --> 00:46:22,890 and last year's team as well that really stood up this whole operation. 860 00:46:22,890 --> 00:46:24,740 And so one of the things Jason used to do 861 00:46:24,740 --> 00:46:28,640 for us when he was with us in Cambridge is start every staff meeting 862 00:46:28,640 --> 00:46:29,470 with a joke. 863 00:46:29,470 --> 00:46:32,850 And these jokes over time just got better, and better, and longer, 864 00:46:32,850 --> 00:46:33,810 and longer. 865 00:46:33,810 --> 00:46:37,840 And literally today did Facebook remind me that one, 866 00:46:37,840 --> 00:46:41,410 they care about me and the memories that I share, 867 00:46:41,410 --> 00:46:45,370 but two, one of those memories, five years ago today, 868 00:46:45,370 --> 00:46:49,150 starred CS50's own Jason Hirschhorn at one of our grading parties for a quiz. 869 00:46:49,150 --> 00:46:53,210 And so I thought I would play for you this film, shot 870 00:46:53,210 --> 00:46:58,530 before I knew that vertical videos were bad, and a look back at the joke 871 00:46:58,530 --> 00:47:02,450 Jason told to us some time ago as our thanks to him. 872 00:47:02,450 --> 00:47:04,302 Here. 873 00:47:04,302 --> 00:47:05,254 [VIDEO PLAYBACK] 874 00:47:05,254 --> 00:47:05,754 - Whoo! 875 00:47:05,754 --> 00:47:07,206 [APPLAUSE] 876 00:47:07,206 --> 00:47:09,626 877 00:47:09,626 --> 00:47:12,680 - I have to say, this is totally unexpected, I didn't prepare anything. 878 00:47:12,680 --> 00:47:15,220 Just go with a joke that comes to mind. 879 00:47:15,220 --> 00:47:18,856 Some of you might have heard this, but if you have, just bare with me. 880 00:47:18,856 --> 00:47:20,980 So, there's this moth. 881 00:47:20,980 --> 00:47:22,645 No, I'm just kidding. 882 00:47:22,645 --> 00:47:24,020 That's a really good one, though. 883 00:47:24,020 --> 00:47:25,296 I usually tell people that. 884 00:47:25,296 --> 00:47:26,290 It's funny. 885 00:47:26,290 --> 00:47:28,160 It's about a Cheerio. 886 00:47:28,160 --> 00:47:32,780 And not just any Cheerio, a really sad and lonely Cheerio. 887 00:47:32,780 --> 00:47:36,602 Because every day, this Cheerio goes to school and it sees all the friends, 888 00:47:36,602 --> 00:47:38,560 and the friends don't want to hang out with it. 889 00:47:38,560 --> 00:47:41,920 In recess, it sits by itself while all its friends are playing handball. 890 00:47:41,920 --> 00:47:46,184 I know we all played that game in like fifth grade. 891 00:47:46,184 --> 00:47:48,850 So the Cheerio doesn't have any friends, and he's really lonely. 892 00:47:48,850 --> 00:47:51,710 And so he goes home one night, and he gets on his knees 893 00:47:51,710 --> 00:47:55,085 and he prays to God to not be a Cheerio anymore because you realizes he 894 00:47:55,085 --> 00:47:56,710 has any friends because of the Cheerio. 895 00:47:56,710 --> 00:48:05,090 896 00:48:05,090 --> 00:48:08,550 If we need to stop every couple seconds to talk about a Cheerio then 897 00:48:08,550 --> 00:48:10,980 we're not going anywhere. 898 00:48:10,980 --> 00:48:12,910 Bear with me. 899 00:48:12,910 --> 00:48:14,600 I don't know, whatever. 900 00:48:14,600 --> 00:48:15,850 Imagine, use your imagination. 901 00:48:15,850 --> 00:48:18,300 So anyway, a trip. 902 00:48:18,300 --> 00:48:21,540 So, it wakes up the next morning and it's not a Cheerio anymore. 903 00:48:21,540 --> 00:48:26,600 It looks at its side and realizes it's a Honey Nut Cheerio. 904 00:48:26,600 --> 00:48:27,570 And it's so happy. 905 00:48:27,570 --> 00:48:30,070 It's like, oh my god, this is exactly what I wished for. 906 00:48:30,070 --> 00:48:31,980 This is going to be a great day at school. 907 00:48:31,980 --> 00:48:33,950 So it goes to school. 908 00:48:33,950 --> 00:48:37,017 And it shows up, and everybody gives him some looks as he walks in. 909 00:48:37,017 --> 00:48:39,100 He's like, yeah, as he's walking down the hallway. 910 00:48:39,100 --> 00:48:40,050 Or he or she. 911 00:48:40,050 --> 00:48:41,940 I don't want to be gender-normative. 912 00:48:41,940 --> 00:48:44,807 As the Cheerio's walking down the hallway, everybody gives it looks. 913 00:48:44,807 --> 00:48:46,390 And it's like, this is so much better. 914 00:48:46,390 --> 00:48:47,890 I'm getting so much more attention. 915 00:48:47,890 --> 00:48:50,971 But at recess, it realizes that everybody's just making fun of it 916 00:48:50,971 --> 00:48:52,720 and they don't actually think it's cooler, 917 00:48:52,720 --> 00:48:55,540 they think it's even more lame than before as a Honey Nut Cheerio. 918 00:48:55,540 --> 00:48:58,990 So that night it gets home and it gets on its knees again and prays to God, 919 00:48:58,990 --> 00:49:01,940 once again, to not be a Honey Nut Cheerio, because life 920 00:49:01,940 --> 00:49:04,180 is miserable as a Honey Nut Cheerio. 921 00:49:04,180 --> 00:49:06,180 So it wakes up the next day. 922 00:49:06,180 --> 00:49:09,380 And it looks at its side, and it realizes, oh my goodness, I have color. 923 00:49:09,380 --> 00:49:12,657 And it has now become-- what's the knockoff-- 924 00:49:12,657 --> 00:49:13,240 - Froot Loops! 925 00:49:13,240 --> 00:49:14,010 - No, what's the knockoff Froot Loops? 926 00:49:14,010 --> 00:49:14,885 - [INAUDIBLE], maybe. 927 00:49:14,885 --> 00:49:15,750 - Tootie Fruitie. 928 00:49:15,750 --> 00:49:16,458 - Tootie Fruitie. 929 00:49:16,458 --> 00:49:17,740 He becomes a Tootie Fruitie. 930 00:49:17,740 --> 00:49:19,020 And it's like, oh my goodness, I have color now. 931 00:49:19,020 --> 00:49:21,138 I have some personality, some flair, some pizzazz. 932 00:49:21,138 --> 00:49:22,513 Everybody's going to like me now. 933 00:49:22,513 --> 00:49:23,550 - What color was it? 934 00:49:23,550 --> 00:49:25,810 - It's purple. 935 00:49:25,810 --> 00:49:27,740 Thanks for asking that. 936 00:49:27,740 --> 00:49:28,491 It goes to school. 937 00:49:28,491 --> 00:49:30,948 And once again, everybody's giving it looks, and he's like, 938 00:49:30,948 --> 00:49:34,270 finally, being a purple Tootie Fruitie, everybody's going to like me now. 939 00:49:34,270 --> 00:49:37,400 So at recess, once again, everybody's playing handball. 940 00:49:37,400 --> 00:49:39,490 He goes up, says, like, hey, can I play handball? 941 00:49:39,490 --> 00:49:41,880 And they're like, no. 942 00:49:41,880 --> 00:49:44,780 And once again, nobody wants to play with him or hang out with him 943 00:49:44,780 --> 00:49:47,710 or hang out with him because nobody likes a purple Tootie Fruitie. 944 00:49:47,710 --> 00:49:49,520 Everybody likes Marshmallow Mateys. 945 00:49:49,520 --> 00:49:52,124 But anyway, he goes home, gets on his knees once again, 946 00:49:52,124 --> 00:49:54,040 and prays to God, please, none of this worked. 947 00:49:54,040 --> 00:49:57,165 Please don't let me be a Tootie Fruitie or a Honey Nut Cheerio or a Cheerio 948 00:49:57,165 --> 00:49:57,665 again. 949 00:49:57,665 --> 00:49:59,873 I don't know what it is, but I can't be one of these. 950 00:49:59,873 --> 00:50:01,620 Nobody wants to be my friend at school. 951 00:50:01,620 --> 00:50:03,400 So it wakes up the next morning. 952 00:50:03,400 --> 00:50:05,550 And it realizes, oh, it's name-brand now. 953 00:50:05,550 --> 00:50:07,020 It's an actual Froot Loops. 954 00:50:07,020 --> 00:50:07,969 It's like, finally. 955 00:50:07,969 --> 00:50:09,510 This must have been what I'm missing. 956 00:50:09,510 --> 00:50:12,849 I'm not one of those off-brand crappy things, I'm a name-brand Froot Loop. 957 00:50:12,849 --> 00:50:13,890 - As opposed to Cheerios? 958 00:50:13,890 --> 00:50:16,790 959 00:50:16,790 --> 00:50:19,120 - A name-brand food with color. 960 00:50:19,120 --> 00:50:22,480 I have everything I need to be popular at school. 961 00:50:22,480 --> 00:50:27,520 But it's Friday, so they had school off and there's a big party that night. 962 00:50:27,520 --> 00:50:29,740 And it's like, it's been invited to this party. 963 00:50:29,740 --> 00:50:31,610 We'll call it semi-formal is the party. 964 00:50:31,610 --> 00:50:33,880 It doesn't have a date, but it's really excited to go. 965 00:50:33,880 --> 00:50:36,940 All the other cereals have dates, and they're all really excited. 966 00:50:36,940 --> 00:50:40,140 The Marshmallow Mateys look particularly good. 967 00:50:40,140 --> 00:50:44,410 But it goes to semi-formal, and it's at the party. 968 00:50:44,410 --> 00:50:47,580 And it goes up to the bar and asks for some water. 969 00:50:47,580 --> 00:50:50,490 And they're like, sorry, we don't have any water. 970 00:50:50,490 --> 00:50:52,750 So he walks down to another bar. 971 00:50:52,750 --> 00:50:54,709 And he's like, OK, can I have a Shirley Temple? 972 00:50:54,709 --> 00:50:56,291 But he's like, sorry, you got to wait. 973 00:50:56,291 --> 00:50:57,260 There's a long line. 974 00:50:57,260 --> 00:50:59,343 So it can't get water, can't get a Shirley Temple. 975 00:50:59,343 --> 00:51:03,120 And it sees across the way, there's some milk at the table. 976 00:51:03,120 --> 00:51:04,960 So it's really excited to go get some milk, 977 00:51:04,960 --> 00:51:07,620 but right as somebody gets in right before it-- not to eat itself, 978 00:51:07,620 --> 00:51:08,578 I just thought of that. 979 00:51:08,578 --> 00:51:09,790 That's weird. 980 00:51:09,790 --> 00:51:12,080 So right as the Froot Loop's about to get some milk, 981 00:51:12,080 --> 00:51:15,180 somebody gets in front of it and takes the last bit of milk. 982 00:51:15,180 --> 00:51:16,205 So there's no milk. 983 00:51:16,205 --> 00:51:18,830 There's been long lines for things, they've been out of things. 984 00:51:18,830 --> 00:51:20,340 He hasn't been able to get a drink. 985 00:51:20,340 --> 00:51:25,262 Finally, at the far end of the table, he sees this giant bowl of punch. 986 00:51:25,262 --> 00:51:27,470 And he's really excited because there's no one there. 987 00:51:27,470 --> 00:51:30,060 It's a clear shot between him and the punch bowl. 988 00:51:30,060 --> 00:51:35,030 So he can finally now get a sip of punch because there's no punch line. 989 00:51:35,030 --> 00:51:37,060 [LAUGHTER] 990 00:51:37,060 --> 00:51:37,620 That's all. 991 00:51:37,620 --> 00:51:39,757 - Wow. 992 00:51:39,757 --> 00:51:40,340 [END PLAYBACK] 993 00:51:40,340 --> 00:51:43,055 DAVID J. MALAN: All right. 994 00:51:43,055 --> 00:51:45,070 All right. 995 00:51:45,070 --> 00:51:46,308 I forgot how long that was. 996 00:51:46,308 --> 00:51:49,160 997 00:51:49,160 --> 00:51:51,822 We're just about out of time, but CS50 ultimately 998 00:51:51,822 --> 00:51:53,280 is of course about problem solving. 999 00:51:53,280 --> 00:51:56,230 And we did want to leave you with one, particularly high-level message 1000 00:51:56,230 --> 00:51:58,860 before we dive into one last bit of fun. 1001 00:51:58,860 --> 00:52:02,170 Which is that we began this semester looking at this. 1002 00:52:02,170 --> 00:52:05,270 Most any problem set that we did, most any test question or quiz question, 1003 00:52:05,270 --> 00:52:08,150 really can be reduced to the simple picture, this simple idea, 1004 00:52:08,150 --> 00:52:10,670 problems are just things that take inputs and your goal 1005 00:52:10,670 --> 00:52:11,730 is to produce outputs. 1006 00:52:11,730 --> 00:52:13,660 And of course, the thing in the middle, we claimed, 1007 00:52:13,660 --> 00:52:15,160 were those things called algorithms. 1008 00:52:15,160 --> 00:52:18,210 And that's where the sort of interesting thoughts and the problem solving 1009 00:52:18,210 --> 00:52:19,390 actually comes into play. 1010 00:52:19,390 --> 00:52:22,180 And so even as you advance to some of the higher level CS courses 1011 00:52:22,180 --> 00:52:24,221 that you heard about today, or any other courses, 1012 00:52:24,221 --> 00:52:26,570 or generally realize that at the end of the day, 1013 00:52:26,570 --> 00:52:29,740 this really is the mental model with which to exit a class like this. 1014 00:52:29,740 --> 00:52:34,020 Hopefully, we've helped clean up your thought in a bit of a way. 1015 00:52:34,020 --> 00:52:36,260 Hopefully we've given you a more methodical approach 1016 00:52:36,260 --> 00:52:37,131 to solving problems. 1017 00:52:37,131 --> 00:52:39,380 But at the end of the day, even if the material is new 1018 00:52:39,380 --> 00:52:41,952 and those inputs are new, the fundamental process 1019 00:52:41,952 --> 00:52:43,410 is ultimately going to be the same. 1020 00:52:43,410 --> 00:52:46,800 And there's a few ways then to tackle what problems remain in this semester. 1021 00:52:46,800 --> 00:52:49,040 Of course there's just now the final project. 1022 00:52:49,040 --> 00:52:51,820 And so coming up soon is the so-called CS50 hackathon, 1023 00:52:51,820 --> 00:52:53,620 to which you are all cordially invited. 1024 00:52:53,620 --> 00:52:56,840 This is an opportunity to arrive in Cambridge via buses 1025 00:52:56,840 --> 00:52:59,140 that we'll provide around 7:00 PM. 1026 00:52:59,140 --> 00:53:01,320 We'll serve first dinner around 9:00 PM. 1027 00:53:01,320 --> 00:53:03,274 We'll serve second dinner at around 1:00 AM. 1028 00:53:03,274 --> 00:53:05,440 And then if you're still awake, on the bus ride home 1029 00:53:05,440 --> 00:53:08,190 we'll stop at a really big IHOP for breakfast as well. 1030 00:53:08,190 --> 00:53:10,799 And in between meals will you work on your final projects. 1031 00:53:10,799 --> 00:53:13,840 So these are just some of the photos with which some of our Yale students 1032 00:53:13,840 --> 00:53:14,680 arrived last year. 1033 00:53:14,680 --> 00:53:19,090 Some of them toting pillows and really hunkering down for the evening, 1034 00:53:19,090 --> 00:53:20,276 as you may recall. 1035 00:53:20,276 --> 00:53:22,150 Signing in, meeting some of their classmates. 1036 00:53:22,150 --> 00:53:25,820 And this really is just meant to be one of those few collegiate opportunities 1037 00:53:25,820 --> 00:53:28,180 that you really we hope remember for some time 1038 00:53:28,180 --> 00:53:30,350 and certainly get a bit of work done that evening, 1039 00:53:30,350 --> 00:53:32,870 but bringing the two campuses together as well, 1040 00:53:32,870 --> 00:53:34,452 is one of the overarching goals. 1041 00:53:34,452 --> 00:53:36,660 And ultimately, it's a room full of people, and food, 1042 00:53:36,660 --> 00:53:40,680 and places to solve problems like your final project with one meal, 1043 00:53:40,680 --> 00:53:42,979 another meal-- Shreyas again. 1044 00:53:42,979 --> 00:53:45,770 You'll notice that even the TFs last year solved a lot of problems. 1045 00:53:45,770 --> 00:53:47,830 They built this apparently. 1046 00:53:47,830 --> 00:53:50,720 There was a lot of candy, and they built this. 1047 00:53:50,720 --> 00:53:53,840 They spelled that. 1048 00:53:53,840 --> 00:53:56,390 There's a little something for everyone, this is to say. 1049 00:53:56,390 --> 00:53:59,420 So you'll see this URL on the course's website as well, 1050 00:53:59,420 --> 00:54:02,300 but do sign up there to sign up for a shuttle bus ride. 1051 00:54:02,300 --> 00:54:04,760 And then thereafter, is the climax of the course. 1052 00:54:04,760 --> 00:54:07,010 Many years ago in Cambridge, we used to end the course 1053 00:54:07,010 --> 00:54:08,970 with a pretty traditional approach to final projects. 1054 00:54:08,970 --> 00:54:10,450 Students would submit their final projects, 1055 00:54:10,450 --> 00:54:12,440 everyone could convene in one last section, 1056 00:54:12,440 --> 00:54:14,981 and then everyone would present their projects one at a time. 1057 00:54:14,981 --> 00:54:17,440 And frankly, it's not a particularly enthralling way 1058 00:54:17,440 --> 00:54:20,370 to see what your classmates have done everyone just kind of there 1059 00:54:20,370 --> 00:54:21,230 out of obligation. 1060 00:54:21,230 --> 00:54:23,355 And so we tried to transform that thing on its head 1061 00:54:23,355 --> 00:54:25,590 a few years ago with the first-ever CS50 fair. 1062 00:54:25,590 --> 00:54:27,690 And now we're coming up on the ninth CS50 1063 00:54:27,690 --> 00:54:29,800 fair that will happen both in Cambridge, as well 1064 00:54:29,800 --> 00:54:33,000 as here at Yale for all students, faculty, and staff here to attend. 1065 00:54:33,000 --> 00:54:34,800 And this will be an event in commons that 1066 00:54:34,800 --> 00:54:37,770 looks a little something like this, with students like you now, 1067 00:54:37,770 --> 00:54:41,720 presenting your projects on laptops with food, and popcorn, and music, 1068 00:54:41,720 --> 00:54:44,362 and recruiters from industry, and friends ultimately, 1069 00:54:44,362 --> 00:54:47,320 delighting hopefully in the kinds of things that you have accomplished, 1070 00:54:47,320 --> 00:54:51,460 and as well will there be some cotton candy here. 1071 00:54:51,460 --> 00:54:56,680 Now we need, as we close things up here for fall 2016 for our student 1072 00:54:56,680 --> 00:54:58,670 volunteers, if I may. 1073 00:54:58,670 --> 00:55:00,650 One in back. 1074 00:55:00,650 --> 00:55:02,040 Two in way back. 1075 00:55:02,040 --> 00:55:03,050 Come on up. 1076 00:55:03,050 --> 00:55:05,150 Can we get someone from the side, anyone? 1077 00:55:05,150 --> 00:55:06,570 Anyone? 1078 00:55:06,570 --> 00:55:07,820 Billy, again? 1079 00:55:07,820 --> 00:55:08,610 Billy, come on up. 1080 00:55:08,610 --> 00:55:09,110 OK. 1081 00:55:09,110 --> 00:55:10,151 Yes, right in the middle. 1082 00:55:10,151 --> 00:55:10,693 Come on down. 1083 00:55:10,693 --> 00:55:13,567 Come on down, all four of you, and then back middle as well, I think. 1084 00:55:13,567 --> 00:55:14,140 Yes. 1085 00:55:14,140 --> 00:55:15,720 Back middle, come on down. 1086 00:55:15,720 --> 00:55:22,670 And if you guys want to take the side of the-- that 1087 00:55:22,670 --> 00:55:27,050 was the opposite of dramatic-- students. 1088 00:55:27,050 --> 00:55:30,454 If you'll take your four seats here, we have little Easy buttons 1089 00:55:30,454 --> 00:55:31,620 via which we'll be able to-- 1090 00:55:31,620 --> 00:55:33,720 EASY BUTTON: That was easy. 1091 00:55:33,720 --> 00:55:35,160 DAVID J. MALAN: --buzz in. 1092 00:55:35,160 --> 00:55:37,360 But now we need four staff members, if I may. 1093 00:55:37,360 --> 00:55:39,340 Oh my god, yes, come on down. 1094 00:55:39,340 --> 00:55:42,095 Another staff member here, way in back and a fourth. 1095 00:55:42,095 --> 00:55:44,360 A fourth, yes, come on down. 1096 00:55:44,360 --> 00:55:49,549 1097 00:55:49,549 --> 00:55:50,840 We got the microphones as well. 1098 00:55:50,840 --> 00:55:53,090 OK, so we have our four staff members here. 1099 00:55:53,090 --> 00:55:57,460 Going to go ahead and give each member of the table this microphone. 1100 00:55:57,460 --> 00:55:58,950 Be sure to speak in your answer. 1101 00:55:58,950 --> 00:56:03,390 We'll do our best to adjudicate who has actually buzzed in first, 1102 00:56:03,390 --> 00:56:07,766 but this is our opportunity for our second annual family 1103 00:56:07,766 --> 00:56:09,924 feud of students versus staff. 1104 00:56:09,924 --> 00:56:12,715 And you'll recall, just a few days ago when you submitted problems, 1105 00:56:12,715 --> 00:56:15,590 did we ask you a few questions just for fun, 1106 00:56:15,590 --> 00:56:18,130 so that we would have actual answers based 1107 00:56:18,130 --> 00:56:21,400 on the most popular 100 responses. 1108 00:56:21,400 --> 00:56:25,130 So CS50's own Colton here is going to help me run the board. 1109 00:56:25,130 --> 00:56:27,452 We have time for just a couple of rounds of this. 1110 00:56:27,452 --> 00:56:29,410 And then actually, can we get you to come on up 1111 00:56:29,410 --> 00:56:31,110 and run the scoreboard up top? 1112 00:56:31,110 --> 00:56:36,480 We just need math on the board, depending on who has scored best here. 1113 00:56:36,480 --> 00:56:40,050 So the first question we're going to answer-- and let's see, 1114 00:56:40,050 --> 00:56:42,970 we'll do this control of the board kind of thing here in the middle. 1115 00:56:42,970 --> 00:56:45,580 And would everyone first like to introduce him or herself? 1116 00:56:45,580 --> 00:56:49,720 1117 00:56:49,720 --> 00:56:50,720 ADAM: Hi, I'm Adam. 1118 00:56:50,720 --> 00:56:51,720 I'm a TA. 1119 00:56:51,720 --> 00:56:53,960 1120 00:56:53,960 --> 00:56:54,710 SAM: Hi, everyone. 1121 00:56:54,710 --> 00:56:55,610 I'm Sam. 1122 00:56:55,610 --> 00:56:58,640 I'm an office hours lead, CS major. 1123 00:56:58,640 --> 00:57:00,214 I don't know if we should say that. 1124 00:57:00,214 --> 00:57:02,524 ANNIE: I'm Annie, I'm a TA. 1125 00:57:02,524 --> 00:57:03,380 BRAM: I'm Bram. 1126 00:57:03,380 --> 00:57:06,757 I'm also an office hours lead with Sam. 1127 00:57:06,757 --> 00:57:07,840 DAVID J. MALAN: Wonderful. 1128 00:57:07,840 --> 00:57:09,462 IVY: I'm Ivy, I'm a student 1129 00:57:09,462 --> 00:57:11,920 DAVID J. MALAN: I think we just need to turn up on our end. 1130 00:57:11,920 --> 00:57:12,650 It'll record. 1131 00:57:12,650 --> 00:57:13,866 IVY: I'm Ivy, I'm a student. 1132 00:57:13,866 --> 00:57:15,240 DAVID J. MALAN: Nice to meet you. 1133 00:57:15,240 --> 00:57:18,606 CLAY: Clay, Davenport 2020. 1134 00:57:18,606 --> 00:57:20,067 SHU: Shu, freshman in Pearson. 1135 00:57:20,067 --> 00:57:21,150 DAVID J. MALAN: Wonderful. 1136 00:57:21,150 --> 00:57:21,733 And of course. 1137 00:57:21,733 --> 00:57:24,840 BILLY: Billy, also Davenport 2020. 1138 00:57:24,840 --> 00:57:25,690 Right there. 1139 00:57:25,690 --> 00:57:26,773 DAVID J. MALAN: Wonderful. 1140 00:57:26,773 --> 00:57:29,910 So let's go ahead and give the mic to our innermost team members here. 1141 00:57:29,910 --> 00:57:32,950 One of you has to buzz in first to take control of the board 1142 00:57:32,950 --> 00:57:34,239 or pass to the other team. 1143 00:57:34,239 --> 00:57:36,030 So family feud is going to work as follows. 1144 00:57:36,030 --> 00:57:38,946 I'm going to ask you a question, and if you think you have the answer, 1145 00:57:38,946 --> 00:57:41,050 you're going to hit the Easy button first, 1146 00:57:41,050 --> 00:57:43,710 and then you'll have a chance to answer that question. 1147 00:57:43,710 --> 00:57:47,480 And if you get answer it correctly on the board, your team will take control. 1148 00:57:47,480 --> 00:57:50,580 If yours is the top answer or the other team can take control. 1149 00:57:50,580 --> 00:57:52,950 I'll guide us through this if that's unclear. 1150 00:57:52,950 --> 00:57:54,840 So I'm about to ask you a question and you're 1151 00:57:54,840 --> 00:57:59,080 about to hit that button if you have an answer. 1152 00:57:59,080 --> 00:58:01,455 All right. 1153 00:58:01,455 --> 00:58:05,570 Colton, name your favorite algorithm. 1154 00:58:05,570 --> 00:58:08,430 Graham. 1155 00:58:08,430 --> 00:58:09,720 GRAHAM: Bubble Sort. 1156 00:58:09,720 --> 00:58:14,500 DAVID J. MALAN: Show us Bubble Sort. 1157 00:58:14,500 --> 00:58:16,160 That was the number one answer. 1158 00:58:16,160 --> 00:58:18,080 So staff has control. 1159 00:58:18,080 --> 00:58:21,230 You'll have up to three strikes to mess up, at which point 1160 00:58:21,230 --> 00:58:22,650 control goes to the other team. 1161 00:58:22,650 --> 00:58:25,400 So Annie, name your favorite algorithm. 1162 00:58:25,400 --> 00:58:26,906 No need to buzz in. 1163 00:58:26,906 --> 00:58:28,402 ANNIE: Binary search. 1164 00:58:28,402 --> 00:58:29,360 DAVID J. MALAN: Binary? 1165 00:58:29,360 --> 00:58:29,943 ANNIE: Search. 1166 00:58:29,943 --> 00:58:32,310 DAVID J. MALAN: Binary search. 1167 00:58:32,310 --> 00:58:34,810 Number 2, very popular algorithm. 1168 00:58:34,810 --> 00:58:37,040 Sam, it's going to get a little harder now. 1169 00:58:37,040 --> 00:58:38,790 SAM: It's true, it's true. 1170 00:58:38,790 --> 00:58:41,130 I'm going to go with merge sort. 1171 00:58:41,130 --> 00:58:42,843 DAVID J. MALAN: Show us merge sort. 1172 00:58:42,843 --> 00:58:45,980 1173 00:58:45,980 --> 00:58:47,800 Number 3, Adam. 1174 00:58:47,800 --> 00:58:50,260 Name your favorite algorithm. 1175 00:58:50,260 --> 00:58:52,200 ADAM: My personal favorite, selection sort. 1176 00:58:52,200 --> 00:58:53,870 DAVID J. MALAN: Selection sort. 1177 00:58:53,870 --> 00:58:55,290 Show us selection sort. 1178 00:58:55,290 --> 00:58:58,450 1179 00:58:58,450 --> 00:58:59,240 First strike. 1180 00:58:59,240 --> 00:59:01,580 Some 100 other people disagreed with you. 1181 00:59:01,580 --> 00:59:02,850 You have two more chances. 1182 00:59:02,850 --> 00:59:04,590 Bram, back to you. 1183 00:59:04,590 --> 00:59:07,135 Name your second favorite algorithm. 1184 00:59:07,135 --> 00:59:08,260 BRAM: Breadth first search. 1185 00:59:08,260 --> 00:59:11,035 1186 00:59:11,035 --> 00:59:12,910 DAVID J. MALAN: Show us breadth first search. 1187 00:59:12,910 --> 00:59:15,850 1188 00:59:15,850 --> 00:59:17,540 Second strike. 1189 00:59:17,540 --> 00:59:19,460 Annie? 1190 00:59:19,460 --> 00:59:20,498 ANNIE: Linear search? 1191 00:59:20,498 --> 00:59:21,748 DAVID J. MALAN: Linear search. 1192 00:59:21,748 --> 00:59:23,990 1193 00:59:23,990 --> 00:59:28,700 So now students, if you answer this question in such a way 1194 00:59:28,700 --> 00:59:32,830 that your answer appears on the board, you take all of the points 1195 00:59:32,830 --> 00:59:35,420 into your category and then we'll proceed to the next round. 1196 00:59:35,420 --> 00:59:38,570 CLAY: All right, David, we're going to do insertion sort. 1197 00:59:38,570 --> 00:59:42,374 DAVID J. MALAN: Show us insertion sort. 1198 00:59:42,374 --> 00:59:44,534 And the students take control. 1199 00:59:44,534 --> 00:59:47,450 If you want to just jot down all 4 of those numbers and then tally it, 1200 00:59:47,450 --> 00:59:48,940 that's the student's current score. 1201 00:59:48,940 --> 00:59:53,360 So 41, 25, 22. 1202 00:59:53,360 --> 00:59:57,056 Write down 41, 25-- 1203 00:59:57,056 --> 00:59:59,514 SAM: No, no we have 41. 1204 00:59:59,514 --> 01:00:00,680 DAVID J. MALAN: No students. 1205 01:00:00,680 --> 01:00:02,094 No, you lost. 1206 01:00:02,094 --> 01:00:02,635 No, you lost. 1207 01:00:02,635 --> 01:00:06,200 1208 01:00:06,200 --> 01:00:14,470 41, 25, 22, and 11, and we have time now for just one more round. 1209 01:00:14,470 --> 01:00:15,097 All right. 1210 01:00:15,097 --> 01:00:17,606 1211 01:00:17,606 --> 01:00:20,240 SAM: Wait, you can yield and then you get the points you have? 1212 01:00:20,240 --> 01:00:22,796 DAVID J. MALAN: Yes, because they stole the points from you. 1213 01:00:22,796 --> 01:00:24,520 You lost. 1214 01:00:24,520 --> 01:00:25,470 OK. 1215 01:00:25,470 --> 01:00:28,010 So now, we're going to do one more round here. 1216 01:00:28,010 --> 01:00:31,240 So if you will have a chance now to buzz in because we have another face off, 1217 01:00:31,240 --> 01:00:33,340 and with Annie over here as well. 1218 01:00:33,340 --> 01:00:39,030 The next question, and the last question is going to be actually, 1219 01:00:39,030 --> 01:00:45,590 let's-- Name your favorite language. 1220 01:00:45,590 --> 01:00:47,080 Students. 1221 01:00:47,080 --> 01:00:47,900 CLAY: Python. 1222 01:00:47,900 --> 01:00:49,191 DAVID J. MALAN: I heard Python. 1223 01:00:49,191 --> 01:00:52,720 1224 01:00:52,720 --> 01:00:56,380 66 classmates agree with you. 1225 01:00:56,380 --> 01:00:58,700 Name your favorite language. 1226 01:00:58,700 --> 01:00:59,780 IVY: C. 1227 01:00:59,780 --> 01:01:04,390 DAVID J. MALAN: Show us C. 14, very nice. 1228 01:01:04,390 --> 01:01:07,600 Billy, what's your favorite language? 1229 01:01:07,600 --> 01:01:08,810 BILLY: JavaScript. 1230 01:01:08,810 --> 01:01:11,300 DAVID J. MALAN: JavaScript. 1231 01:01:11,300 --> 01:01:14,220 On the board with 14. 1232 01:01:14,220 --> 01:01:16,020 SHU: HTML. 1233 01:01:16,020 --> 01:01:18,520 DAVID J. MALAN: HTML. 1234 01:01:18,520 --> 01:01:19,998 Not on the board. 1235 01:01:19,998 --> 01:01:20,706 Two more chances. 1236 01:01:20,706 --> 01:01:25,510 1237 01:01:25,510 --> 01:01:26,510 You're out of languages. 1238 01:01:26,510 --> 01:01:29,510 1239 01:01:29,510 --> 01:01:30,410 CLAY: SQL 1240 01:01:30,410 --> 01:01:31,243 DAVID J. MALAN: SQL. 1241 01:01:31,243 --> 01:01:33,832 1242 01:01:33,832 --> 01:01:35,290 Three languages still on the board. 1243 01:01:35,290 --> 01:01:37,200 These are answers from actual classmates, 1244 01:01:37,200 --> 01:01:40,724 top 100 answers on the board. 1245 01:01:40,724 --> 01:01:42,890 IVY: I'm just going to try to scratch, even though-- 1246 01:01:42,890 --> 01:01:45,556 DAVID J. MALAN: You and everyone else would like to try scratch. 1247 01:01:45,556 --> 01:01:47,770 OK. 1248 01:01:47,770 --> 01:01:50,300 No, not on the list of actual answers. 1249 01:01:50,300 --> 01:01:52,980 Billy, it is on you. 1250 01:01:52,980 --> 01:01:54,890 We need your favorite language. 1251 01:01:54,890 --> 01:02:00,570 1252 01:02:00,570 --> 01:02:03,380 Be ready to steal, staff. 1253 01:02:03,380 --> 01:02:05,130 Do you want to add those up for us? 1254 01:02:05,130 --> 01:02:07,310 Yeah. 1255 01:02:07,310 --> 01:02:10,130 Yeah, let's add these up. 1256 01:02:10,130 --> 01:02:14,265 They have an unlimited amount of time. 1257 01:02:14,265 --> 01:02:15,210 BILLY: CSS. 1258 01:02:15,210 --> 01:02:16,043 DAVID J. MALAN: CSS. 1259 01:02:16,043 --> 01:02:18,630 1260 01:02:18,630 --> 01:02:19,780 All right, staff. 1261 01:02:19,780 --> 01:02:23,330 So let's go ahead and tally what we have here. 1262 01:02:23,330 --> 01:02:26,260 Those numbers stay, they have those points. 1263 01:02:26,260 --> 01:02:27,880 No, they keep those points. 1264 01:02:27,880 --> 01:02:28,738 Add those up. 1265 01:02:28,738 --> 01:02:31,810 1266 01:02:31,810 --> 01:02:32,840 99. 1267 01:02:32,840 --> 01:02:37,580 All right, so, if the staff get any of the three answers on the board, 1268 01:02:37,580 --> 01:02:41,390 they're going to get 66, plus 14, plus 14, 1269 01:02:41,390 --> 01:02:43,490 and probably we should give them some multiplier. 1270 01:02:43,490 --> 01:02:45,850 But no, we'll see what the other answer is. 1271 01:02:45,850 --> 01:02:49,091 Give us your favorite language to steal. 1272 01:02:49,091 --> 01:02:49,716 ANNIE: English. 1273 01:02:49,716 --> 01:02:56,600 1274 01:02:56,600 --> 01:02:59,600 [CHEERING] 1275 01:02:59,600 --> 01:03:03,482 1276 01:03:03,482 --> 01:03:05,440 DAVID J. MALAN: Two students actually did that. 1277 01:03:05,440 --> 01:03:09,530 Let's see what number 4 would have been. 1278 01:03:09,530 --> 01:03:11,510 Java, three people said. 1279 01:03:11,510 --> 01:03:16,244 And lastly, number 6, actual answer, Spanish. 1280 01:03:16,244 --> 01:03:18,280 One person. 1281 01:03:18,280 --> 01:03:19,750 Thank you to our participants here. 1282 01:03:19,750 --> 01:03:24,840 We have time now for some concluding remarks from the whole staff for you. 1283 01:03:24,840 --> 01:03:27,110 Thank you to both of our teams here. 1284 01:03:27,110 --> 01:03:29,390 This now, is the final message from the staff 1285 01:03:29,390 --> 01:03:32,810 who will join us in just a few minutes out back for some cake. 1286 01:03:32,810 --> 01:03:35,920 So we will finish CS50 where we began. 1287 01:03:35,920 --> 01:03:39,003 Thank you to these up here, participants. 1288 01:03:39,003 --> 01:03:39,970 [VIDEO PLAYBACK] 1289 01:03:39,970 --> 01:03:44,290 - I'm Ana Leah, and this is CS50. 1290 01:03:44,290 --> 01:03:47,152 [MUSIC PLAYING] 1291 01:03:47,152 --> 01:03:48,970 1292 01:03:48,970 --> 01:03:50,850 - Thank you so much to this year's staff, 1293 01:03:50,850 --> 01:03:54,350 without whom the course really wouldn't be what it ultimately is for students. 1294 01:03:54,350 --> 01:03:57,720 Indeed, more than just videos and problem sets, and tests, and quizzes. 1295 01:03:57,720 --> 01:03:59,834 CS50 really is about the interpersonal experience 1296 01:03:59,834 --> 01:04:02,500 that students have with the course, and the connection that they 1297 01:04:02,500 --> 01:04:04,960 make the whole teaching staff. 1298 01:04:04,960 --> 01:04:07,520 - So as a student, I really struggled to learn pointers. 1299 01:04:07,520 --> 01:04:09,710 But I have a great TF and he was just so inspiring 1300 01:04:09,710 --> 01:04:12,272 that I really wanted to join the team myself. 1301 01:04:12,272 --> 01:04:15,230 - When I applied to Yale, I was an English/Sociology prospective double 1302 01:04:15,230 --> 01:04:17,550 major, and now I'm a computer science major. 1303 01:04:17,550 --> 01:04:20,210 So if that's a little bit about how much CS50 changed me. 1304 01:04:20,210 --> 01:04:23,695 - You can come in, take the class, do well, 1305 01:04:23,695 --> 01:04:26,720 and even know the material so well that you're teaching the next year. 1306 01:04:26,720 --> 01:04:28,637 - CS50 is one of the best opportunities you're 1307 01:04:28,637 --> 01:04:30,636 going to have here while you're an undergraduate 1308 01:04:30,636 --> 01:04:33,850 to teach a course to your peers and to really be a leader amongst your peers. 1309 01:04:33,850 --> 01:04:36,980 - When you teach something, you are able to gain like 10 times as much knowledge 1310 01:04:36,980 --> 01:04:37,940 as when you just learn it. 1311 01:04:37,940 --> 01:04:40,856 - I've become much more comfortable with computer science fundamentals 1312 01:04:40,856 --> 01:04:43,340 just by teaching them, rather than taking classes on them. 1313 01:04:43,340 --> 01:04:45,840 - It's really amazing to watch these incredibly bright-eyed, 1314 01:04:45,840 --> 01:04:48,810 incredibly enthusiastic, just fresh out of high school students, 1315 01:04:48,810 --> 01:04:50,900 learning about CS and asking these really intense, 1316 01:04:50,900 --> 01:04:54,080 really detailed questions in section and just getting really excited about 1317 01:04:54,080 --> 01:04:55,220 the material with me. 1318 01:04:55,220 --> 01:04:58,420 - It's for that aha moment when you're helping a student in office hours 1319 01:04:58,420 --> 01:05:01,050 and they've been struggling for hours, and all of a sudden they get it. 1320 01:05:01,050 --> 01:05:03,310 And it's that moment that I think is really special. 1321 01:05:03,310 --> 01:05:05,184 - We are super, super excited every year when 1322 01:05:05,184 --> 01:05:09,850 we have new people apply for CAs, and TFs, and graders, and being on staff 1323 01:05:09,850 --> 01:05:14,520 is like the most fun part of CS50 and it has been super, super defining 1324 01:05:14,520 --> 01:05:16,160 of my whole experience at Harvard. 1325 01:05:16,160 --> 01:05:17,760 - To my students, I'd like to say-- 1326 01:05:17,760 --> 01:05:18,800 - You're alive. 1327 01:05:18,800 --> 01:05:19,510 - I love you all. 1328 01:05:19,510 --> 01:05:20,570 - You guys are great. 1329 01:05:20,570 --> 01:05:21,570 - And comment your code. 1330 01:05:21,570 --> 01:05:24,260 1331 01:05:24,260 --> 01:05:28,780 - You should be a TF for CS50 to be able to empower other people. 1332 01:05:28,780 --> 01:05:30,390 It's as simple as that. 1333 01:05:30,390 --> 01:05:33,890 [MUSIC PLAYING] 1334 01:05:33,890 --> 01:05:48,632 1335 01:05:48,632 --> 01:05:49,630 [END PLAYBACK] 1336 01:05:49,630 --> 01:05:51,885 DAVID J. MALAN: This was CS50. 1337 01:05:51,885 --> 01:05:54,802 Cake is now served. 1338 01:05:54,802 --> 01:05:57,766 [APPLAUSE] 1339 01:05:57,766 --> 01:06:04,682 1340 01:06:04,682 --> 01:06:05,670 [VIDEO PLAYBACK] 1341 01:06:05,670 --> 01:06:09,128 [MUSIC PLAYING] 1342 01:06:09,128 --> 01:06:31,380 1343 01:06:31,380 --> 01:06:33,590 - Any updates on the mailing case? 1344 01:06:33,590 --> 01:06:36,882 People are getting desperate for some answers. 1345 01:06:36,882 --> 01:06:37,850 - No. 1346 01:06:37,850 --> 01:06:41,702 I mean, I've been all over town, and just haven't found anything new. 1347 01:06:41,702 --> 01:06:43,910 I feel like I might as well just stay here at my desk 1348 01:06:43,910 --> 01:06:45,848 and stare at the ceiling. 1349 01:06:45,848 --> 01:06:47,660 - Well, what about your Rosebud lead? 1350 01:06:47,660 --> 01:06:49,236 Nothing there? 1351 01:06:49,236 --> 01:06:51,480 - No. 1352 01:06:51,480 --> 01:06:54,895 Total dead end. 1353 01:06:54,895 --> 01:06:57,988 I feel like we may never know who or what this Rosebud really is. 1354 01:06:57,988 --> 01:07:03,610 1355 01:07:03,610 --> 01:07:06,632 - I don't think any word can explain a man's life. 1356 01:07:06,632 --> 01:07:08,090 Try not to be too hard on yourself. 1357 01:07:08,090 --> 01:07:10,795 1358 01:07:10,795 --> 01:07:12,920 Get some sleep. 1359 01:07:12,920 --> 01:07:15,020 I'm sure you'll come up with something tomorrow. 1360 01:07:15,020 --> 01:07:25,820 1361 01:07:25,820 --> 01:07:27,526 [END PLAYBACK] 1362 01:07:27,526 --> 01:07:28,026