1 00:00:09,166 --> 00:00:09,756 >> David: All right. 2 00:00:09,946 --> 00:00:10,676 We are back. 3 00:00:10,676 --> 00:00:12,086 This is week 12. 4 00:00:12,086 --> 00:00:12,926 So this is the end. 5 00:00:12,926 --> 00:00:14,456 So nice to see so many of you again. 6 00:00:14,746 --> 00:00:17,866 We will adjourn ultimately to cake in the pub downstairs, 7 00:00:17,906 --> 00:00:19,836 but what I thought I'd do is begin us today 8 00:00:19,836 --> 00:00:22,186 with a little something some of your teaching fellows made. 9 00:00:22,706 --> 00:00:24,446 First, a little reminder 10 00:00:24,446 --> 00:00:27,056 as to what inspired this particular clip. 11 00:00:27,056 --> 00:00:29,566 So, you'll recall this painful experience 12 00:00:29,566 --> 00:00:31,076 from a few weeks prior. 13 00:00:31,076 --> 00:00:34,556 So we'll just do a minute or so of this. 14 00:00:34,766 --> 00:00:35,376 I'm sorry. 15 00:00:35,876 --> 00:00:39,186 [Laughter] 16 00:00:39,686 --> 00:00:41,306 >> Hey. Welcome to the party. 17 00:00:41,486 --> 00:00:44,066 The four of us along with [inaudible] 18 00:00:44,066 --> 00:00:47,206 and you are launching Windows 7 Ultimate Software. 19 00:00:47,286 --> 00:00:47,966 So, you know what? 20 00:00:48,016 --> 00:00:52,236 Let's take a minute or so to tell you about how great it is 21 00:00:52,236 --> 00:00:53,206 to host a launch party. 22 00:00:53,736 --> 00:00:55,996 You can use House Party Tools to build your guest list. 23 00:00:55,996 --> 00:00:58,436 Upload your pictures, which is [inaudible], right? 24 00:00:58,436 --> 00:01:01,716 Right? [Laughter] And you can even get a fun pack. 25 00:01:01,716 --> 00:01:04,026 Though you're in your own home, you'll be able to participate 26 00:01:04,026 --> 00:01:05,976 with others in this exciting event around the world. 27 00:01:06,926 --> 00:01:08,576 >> In a lot of ways, just throwing a party 28 00:01:08,576 --> 00:01:10,086 with Windows 7 as an honored guest. 29 00:01:10,226 --> 00:01:12,496 >> David: That sort of says it all. 30 00:01:12,586 --> 00:01:17,886 So, as you know, the CS50 Fair is coming up, 31 00:01:18,016 --> 00:01:20,086 and so to get folks excited about this, 32 00:01:20,116 --> 00:01:22,096 a few of our staff decided 33 00:01:22,096 --> 00:01:23,926 to put the following together for you. 34 00:01:23,926 --> 00:01:25,766 It's about 6 minutes long. 35 00:01:25,766 --> 00:01:25,976 Here we go. 36 00:01:26,516 --> 00:01:35,516 [ Pause ] 37 00:01:36,016 --> 00:01:42,000 >> [Laughter] [Background noise] 38 00:01:42,746 --> 00:01:46,536 Oh hi. Welcome to the party. 39 00:01:46,986 --> 00:01:51,206 [Inaudible] launching [inaudible] 2009 edition. 40 00:01:51,826 --> 00:01:55,016 Let's take a minute or so to tell you how big it is 41 00:01:55,016 --> 00:01:55,646 to be part of the fair. 42 00:01:55,646 --> 00:02:02,056 You can use the [inaudible] website to check the guest list 43 00:02:02,056 --> 00:02:04,536 and [inaudible] to host your website which is his favorite. 44 00:02:04,936 --> 00:02:05,966 >> It's my favorite. 45 00:02:05,966 --> 00:02:06,033 [Laughter] 46 00:02:06,033 --> 00:02:08,686 >> And you can even get a stress ball. 47 00:02:09,516 --> 00:02:17,546 [ Inaudible ] 48 00:02:18,046 --> 00:02:18,776 >> You know, in a lot of ways, 49 00:02:18,776 --> 00:02:20,326 it's just like throwing a [inaudible] party 50 00:02:20,546 --> 00:02:22,386 with CS50 as our honored guest. 51 00:02:22,386 --> 00:02:22,956 Sounds easy. 52 00:02:23,246 --> 00:02:23,896 [Background conversation] And it is. 53 00:02:24,056 --> 00:02:27,266 We thought you'd probably need to know to get ready, 54 00:02:27,266 --> 00:02:29,166 and how some students will want 55 00:02:29,366 --> 00:02:29,866 [ inaudible] to flow. 56 00:02:30,776 --> 00:02:33,456 >> Now the four of us did our presentations 57 00:02:33,616 --> 00:02:34,936 in past years [background conversation]. 58 00:02:36,046 --> 00:02:37,636 You know, tried everything out. 59 00:02:37,946 --> 00:02:39,716 So we thought we'd give you some pointers of how 60 00:02:40,026 --> 00:02:44,796 to make your fun project presentation really, really fun. 61 00:02:45,426 --> 00:02:47,556 >> Now the first thing you're going to want 62 00:02:47,646 --> 00:02:52,746 to do is finish your project. 63 00:02:52,976 --> 00:02:53,576 >> [Laughter] Duh! 64 00:02:53,706 --> 00:02:56,876 >> Make sure you do this at least a day before coming 65 00:02:56,876 --> 00:03:00,826 to the fair, preferably by [inaudible] 11 am. 66 00:03:00,826 --> 00:03:03,776 Talk to your TF's, us or consult the bulletin board 67 00:03:03,776 --> 00:03:04,606 if you have any questions. 68 00:03:05,316 --> 00:03:08,276 You've got a play with your final project before actually 69 00:03:08,276 --> 00:03:09,046 coming to the fair. 70 00:03:09,716 --> 00:03:11,686 >> Second, look at the list of projects that you 71 00:03:11,686 --> 00:03:15,106 and your friends can try at your CS50 fair and visit the ones 72 00:03:15,136 --> 00:03:15,976 that seem most interesting to you. 73 00:03:16,056 --> 00:03:21,296 >> On [inaudible] a list of all final projects at the fair 74 00:03:21,376 --> 00:03:24,466 and then the [inaudible] set of specs [inaudible] that sort 75 00:03:24,466 --> 00:03:26,516 of tells you at the time what you'll be needing 76 00:03:26,666 --> 00:03:28,436 for your presentation. 77 00:03:29,186 --> 00:03:30,856 >> Hey, again, you don't need 78 00:03:30,856 --> 00:03:33,006 to do all the things specified in the project specs. 79 00:03:33,496 --> 00:03:39,246 You can just choose your favorites and try them out. 80 00:03:39,246 --> 00:03:39,836 >> [Inaudible] 81 00:03:39,836 --> 00:03:42,886 >> Yeah, for the first part of the fair, we let the guests come 82 00:03:42,886 --> 00:03:45,896 in and they just came in and kind of drink and snack, 83 00:03:46,166 --> 00:03:49,746 just mingled around for a little bit just 84 00:03:50,546 --> 00:03:52,906 like they would at any party. 85 00:03:52,906 --> 00:03:54,556 [Background conversation] Then they gathered around, 86 00:03:54,556 --> 00:03:56,876 and I was able to show my project to whover came by. 87 00:03:57,586 --> 00:03:58,306 >> Exactly. 88 00:03:58,306 --> 00:04:00,936 I just gave an overview of how my project worked, 89 00:04:00,936 --> 00:04:02,656 and it only took me a minute or two, 90 00:04:02,656 --> 00:04:05,186 and you know what was great? 91 00:04:05,866 --> 00:04:09,996 It was totally informal, and everyone was just crowded 92 00:04:10,346 --> 00:04:13,046 around the table, and after my overview, 93 00:04:13,046 --> 00:04:14,816 I went straight to an activity. 94 00:04:15,856 --> 00:04:18,216 >> Oh. You went to an activity? 95 00:04:18,636 --> 00:04:20,536 >> Well I just let everyone fool 96 00:04:20,536 --> 00:04:21,906 around with my project for a while. 97 00:04:22,756 --> 00:04:23,156 >> Whoa. 98 00:04:24,066 --> 00:04:25,966 >> [Laughter] I did the same. 99 00:04:25,966 --> 00:04:29,536 >> And then we started an activity a minute or two later. 100 00:04:29,966 --> 00:04:33,236 >> Well, either case works, right? 101 00:04:34,716 --> 00:04:39,196 You just have to figure out what your guests want 102 00:04:39,196 --> 00:04:40,466 and play it by ear. 103 00:04:41,126 --> 00:04:43,926 >> We each did a demo or two. 104 00:04:43,926 --> 00:04:44,536 >> I did three. 105 00:04:44,536 --> 00:04:48,956 [Background noise] The demos go for a brief time. 106 00:04:48,956 --> 00:04:52,246 Every once in awhile when other people come by. 107 00:04:52,506 --> 00:04:54,716 As for the rest of the party, you just let your guests play 108 00:04:54,766 --> 00:04:57,386 around for a while, and your guests may have some questions, 109 00:04:57,576 --> 00:04:59,076 or you may want to show them some things, 110 00:04:59,406 --> 00:05:00,976 but it's completely informal. 111 00:05:01,196 --> 00:05:01,836 >> Informal, yeah. 112 00:05:02,406 --> 00:05:03,976 Again, there are several ways to [inaudible] your time 113 00:05:04,066 --> 00:05:07,486 at the CS50 fair, but in the end, it's all up to you.. 114 00:05:07,866 --> 00:05:09,916 >> You know, the four of us learned a lot of things 115 00:05:10,106 --> 00:05:12,466 to make our part of the fair a lot of fun. 116 00:05:12,646 --> 00:05:13,586 >> Yeah, here's mine. 117 00:05:14,016 --> 00:05:15,356 Make the thing you're demonstrating personal 118 00:05:15,356 --> 00:05:16,126 to the person you're showing, 119 00:05:16,126 --> 00:05:18,756 like the way I helped someone register for a user name 120 00:05:18,756 --> 00:05:21,456 to make an order on my online dining hall ordering site 121 00:05:21,456 --> 00:05:22,946 webpage program application. 122 00:05:23,256 --> 00:05:25,876 >> Or how I let students arrange their own custom made 123 00:05:26,096 --> 00:05:29,826 [inaudible] on my project and gave them [inaudible] user ids. 124 00:05:31,566 --> 00:05:33,826 >> Ok, on a more serious note. 125 00:05:33,936 --> 00:05:34,386 [Laughter] [Inaudible] your demos 126 00:05:34,386 --> 00:05:39,116 and prepare a little information you want to talk about 127 00:05:39,116 --> 00:05:46,536 and make sure you have all the equipment you need. 128 00:05:46,536 --> 00:05:48,016 >> Sure. You have to have your computer 129 00:05:48,816 --> 00:05:50,036 to show off your project. 130 00:05:50,036 --> 00:05:50,606 [Laughter] 131 00:05:50,606 --> 00:05:52,316 >> Of course. 132 00:05:52,886 --> 00:05:54,746 >> In any case, none of this is too hard. 133 00:05:54,886 --> 00:05:56,346 You just need to make sure that you're ready to go 134 00:05:56,346 --> 00:05:56,956 when you're guests arrive. 135 00:05:57,056 --> 00:05:59,186 >> And, hey, help me to remember, 136 00:05:59,186 --> 00:06:00,516 I'm not at a salesman at this party. 137 00:06:00,726 --> 00:06:03,556 I'm not supposed to be a total expert either. 138 00:06:03,556 --> 00:06:05,286 I mean, this is a brand new implementation, 139 00:06:05,456 --> 00:06:08,496 and part of the fun of the CS50 fair is seeing what you already 140 00:06:08,496 --> 00:06:10,386 know and what you can figure out. 141 00:06:10,386 --> 00:06:11,856 It's so simple, anyone can do it. 142 00:06:12,296 --> 00:06:14,056 >> And that is one of the great things about being a part 143 00:06:14,056 --> 00:06:15,976 of the fair that's amongst your peers. 144 00:06:16,046 --> 00:06:19,926 >> I think the greatest thing is to be totally creative and open 145 00:06:19,926 --> 00:06:23,396 to your project and how you present it at the fair. 146 00:06:23,396 --> 00:06:24,926 After all, it is your fair. 147 00:06:25,036 --> 00:06:26,846 >> Can you guys believe 148 00:06:26,846 --> 00:06:29,196 that David [inaudible] launched the CS50 fair in our hands? 149 00:06:29,326 --> 00:06:30,246 [Laughter] Is that crazy? 150 00:06:31,736 --> 00:06:36,016 >> Man, you be involved. 151 00:06:36,876 --> 00:06:36,943 >> Oh. 152 00:06:37,026 --> 00:06:38,586 >> I mean, it does make total sense, right? 153 00:06:39,036 --> 00:06:43,296 CS50's all about the students and the community, and it's all 154 00:06:43,296 --> 00:06:46,186 about thinking about every day problems in new ways 155 00:06:46,186 --> 00:06:48,906 and making new things possible. 156 00:06:49,386 --> 00:06:51,546 >> This really is our fair. 157 00:06:52,386 --> 00:06:53,456 >> Hmm. You're right. 158 00:06:53,456 --> 00:06:55,586 >> So it ought to be a party. 159 00:06:56,136 --> 00:06:56,616 Have fun out there. 160 00:06:57,696 --> 00:06:58,906 >> Cheers. 161 00:06:58,906 --> 00:07:00,926 >> Oh, I'm hungry. 162 00:07:02,796 --> 00:07:03,976 Let's eat. 163 00:07:03,976 --> 00:07:04,056 [Background noise] 164 00:07:04,056 --> 00:07:05,086 >> This was CS50. 165 00:07:05,086 --> 00:07:08,296 >> No TF's were harmed during the production 166 00:07:08,296 --> 00:07:11,096 of this movie except me, who was just starved to death. 167 00:07:12,516 --> 00:07:23,516 [ Inaudible ] 168 00:07:24,016 --> 00:07:30,000 [Applause] 169 00:07:30,946 --> 00:07:32,476 >> David: So actually just notice that Matt did 170 00:07:32,476 --> 00:07:34,906 like three wardrobe changes during that film. 171 00:07:35,526 --> 00:07:38,986 But so the CS50 Fair is indeed coming up. 172 00:07:38,986 --> 00:07:41,116 A little, even more, just as funny 173 00:07:41,116 --> 00:07:44,026 as that was the photo shoot that went on afterward. 174 00:07:44,586 --> 00:07:47,906 So we have a lot of clips of like this year, 175 00:07:47,906 --> 00:07:49,886 and perhaps something will end up floating 176 00:07:49,886 --> 00:07:51,166 around on You-tube at some point. 177 00:07:51,166 --> 00:07:51,786 Before long. 178 00:07:52,056 --> 00:07:53,326 But as for this thing, what to expect. 179 00:07:53,516 --> 00:07:56,076 So the week of the fair, you guys will all get an email 180 00:07:56,166 --> 00:07:57,556 with some additional instruction, 181 00:07:57,556 --> 00:07:59,686 so if you're wondering what do I do on that day, 182 00:07:59,686 --> 00:08:01,746 just check your email on Monday, December 7. 183 00:08:01,746 --> 00:08:03,856 The fair, again, is on Tuesday, December 8, 184 00:08:03,856 --> 00:08:06,416 and essentially it will go as follows. 185 00:08:06,416 --> 00:08:07,796 You will enter Northwest Science, 186 00:08:07,796 --> 00:08:09,636 which is the relatively new science building 187 00:08:09,636 --> 00:08:10,396 down the street. 188 00:08:10,716 --> 00:08:14,836 Roughly 900 people attended the fair last year including last 189 00:08:14,836 --> 00:08:15,536 year's students. 190 00:08:15,536 --> 00:08:18,236 You will be plummeted with CS50 stress balls 191 00:08:18,556 --> 00:08:20,536 as the TF's greet you as you come in. 192 00:08:20,536 --> 00:08:23,616 Little things like this, and [inaudible], 193 00:08:24,066 --> 00:08:26,776 and you'll be handed a program, 194 00:08:26,776 --> 00:08:28,956 and with the things you are handed, 195 00:08:28,956 --> 00:08:30,576 you will be have instructions, and essentially 196 00:08:30,576 --> 00:08:32,126 out of the 300+ students in the class, 197 00:08:32,326 --> 00:08:34,026 about half of you will be directed to show 198 00:08:34,026 --> 00:08:36,116 up at the beginning of the fair, which is going to be 1:00, 199 00:08:36,286 --> 00:08:38,256 and then half of you will be instructed to show 200 00:08:38,256 --> 00:08:39,816 up roughly half way during the fair, 201 00:08:39,816 --> 00:08:41,866 so there'll be intentionally a bit of overlap, 202 00:08:41,866 --> 00:08:44,326 and there will be essentially a scene change where all 203 00:08:44,326 --> 00:08:46,786 of you guys show up with your laptop and projects on it 204 00:08:46,786 --> 00:08:48,806 for exhibition, and then roughly half way through, 205 00:08:48,806 --> 00:08:50,236 the other people will take your place, 206 00:08:50,436 --> 00:08:52,526 and it was actually really quite fun as you may have seen 207 00:08:52,526 --> 00:08:53,956 from the Facebook videos online, 208 00:08:54,196 --> 00:08:57,506 and hopefully this little teaser today will get you all the 209 00:08:57,506 --> 00:08:58,286 more excited. 210 00:08:58,286 --> 00:09:00,916 Coming at the end of lecture are two cakes this time, 211 00:09:00,916 --> 00:09:04,206 both chocolate and vanilla, so do stick around underneath. 212 00:09:04,366 --> 00:09:08,506 We have decorated Happy Cat in the CS50 garb of this year. 213 00:09:08,506 --> 00:09:12,266 That's at store.CS50.net, and let me go ahead 214 00:09:12,266 --> 00:09:14,086 and do the sentimental part rather 215 00:09:14,086 --> 00:09:15,436 than leaving that for the end. 216 00:09:15,436 --> 00:09:18,836 So, a huge thanks to the staff of this course 217 00:09:18,836 --> 00:09:23,206 over the past several months who have really made this all 218 00:09:23,206 --> 00:09:24,756 of the magic in this course happen, right? 219 00:09:24,756 --> 00:09:27,746 So I may be the talking face at the front of lecture a couple 220 00:09:27,746 --> 00:09:31,596 of times per week, but it's the 60+ undergraduates and graduates 221 00:09:31,596 --> 00:09:34,236 and alumni who have really made this course run 222 00:09:34,236 --> 00:09:35,756 so smoothly behind the scenes. 223 00:09:35,756 --> 00:09:37,796 So even though just a few of them don't have conflicts 224 00:09:37,796 --> 00:09:40,106 with class and the rest of them are cutting the cake downstairs 225 00:09:40,106 --> 00:09:41,536 at the moment, could we please at least 226 00:09:41,536 --> 00:09:42,976 on camera give them a huge round of applause. 227 00:09:43,516 --> 00:09:57,026 [ Applause ] 228 00:09:57,526 --> 00:10:00,126 If interested in joining precisely that team, 229 00:10:00,126 --> 00:10:03,106 go to CS50.net/apply, and the roles we're looking for, again, 230 00:10:03,106 --> 00:10:05,116 are teaching fellows who'd lead sections, who grade, 231 00:10:05,116 --> 00:10:07,636 who hold office hours, and really get to know a group 232 00:10:07,636 --> 00:10:09,826 of students over the course of the semester, CA's, 233 00:10:09,896 --> 00:10:13,266 who are alumni who hold 2 hours of office hours per week, 234 00:10:13,486 --> 00:10:15,496 pretty much self scheduled by a Google calendar, 235 00:10:15,496 --> 00:10:17,156 and that's a way of sort of keeping one foot 236 00:10:17,156 --> 00:10:19,306 in CS50 while still focusing, if you so choose, 237 00:10:19,306 --> 00:10:21,946 on other extracurriculars, and then graders, as well. 238 00:10:21,946 --> 00:10:24,946 I wanted to read a little excerpt of a couple 239 00:10:24,946 --> 00:10:29,906 of emails I got, one in February of 2008 and one in November 240 00:10:29,906 --> 00:10:33,656 of 2007, and this student wrote me-I'll read just a couple 241 00:10:33,656 --> 00:10:34,666 of excerpts here. 242 00:10:34,846 --> 00:10:37,296 "Hello, David, thank you very much for your email. 243 00:10:37,506 --> 00:10:40,366 It really made my long computer science less boring, 244 00:10:40,366 --> 00:10:42,776 my long CS-less boring day. 245 00:10:43,096 --> 00:10:46,796 I was in Model United Nations conference at McGill 246 00:10:46,796 --> 00:10:48,046 when I found out about my grade. 247 00:10:48,236 --> 00:10:51,136 I couldn't help but shriek right in the middle of my committee. 248 00:10:51,346 --> 00:10:52,716 It was a very embarrassing moment, 249 00:10:52,716 --> 00:10:54,946 and all the other 99 delegates looked at me, 250 00:10:55,086 --> 00:10:56,856 and I simply pretended that nothing had happened. 251 00:10:57,146 --> 00:11:00,076 Everything about CS50 in my life involves some kind of drama." 252 00:11:00,416 --> 00:11:01,416 Now a few months prior, 253 00:11:01,416 --> 00:11:04,206 that same student had written me this note here, and, 254 00:11:04,206 --> 00:11:07,586 incidentally, they approved my reading excerpts from these, 255 00:11:07,646 --> 00:11:10,416 so don't worry about ever sending me an email again. 256 00:11:10,656 --> 00:11:11,936 [Laughter] "Hello, David." 257 00:11:12,026 --> 00:11:18,036 Let's see..."After our dinner yesterday," faculty dinner, 258 00:11:18,106 --> 00:11:20,106 faculty/student dinner, "I asked myself why I was 259 00:11:20,106 --> 00:11:21,366 about to drop the course." 260 00:11:21,366 --> 00:11:23,116 So this was in the fall of 2007, 261 00:11:23,116 --> 00:11:24,746 "considering how much I adore the course. 262 00:11:24,796 --> 00:11:25,836 The main reason why I was 263 00:11:25,836 --> 00:11:28,166 about to drop the course was rather personal, 264 00:11:28,316 --> 00:11:29,746 but here is the entire story." 265 00:11:30,656 --> 00:11:31,316 It's pretty long. 266 00:11:31,576 --> 00:11:33,426 So, excerpts thereof. 267 00:11:33,426 --> 00:11:35,526 "Even though I was always interested in the material, 268 00:11:35,526 --> 00:11:37,316 around the third week, right before the midterm, 269 00:11:37,316 --> 00:11:40,286 I felt overwhelmed and exhausted by the load of work I had to do. 270 00:11:40,496 --> 00:11:43,346 I tried finishing my PS2 on Wednesday because I was leaving 271 00:11:43,346 --> 00:11:46,036 on Thursday for Columbia for a Model United Nations conference. 272 00:11:46,036 --> 00:11:47,196 I spent an entire day 273 00:11:47,196 --> 00:11:48,696 in the terminal room trying to get help. 274 00:11:48,956 --> 00:11:51,686 I hadn't developed the office hours technique yet back then. 275 00:11:51,926 --> 00:11:55,006 Maybe I was just unlucky, but I only got helped once, 276 00:11:55,006 --> 00:11:57,076 and the poor TF, overwhelmed by the number of students 277 00:11:57,076 --> 00:11:59,616 in office hours, could only talk to me for a few minutes. 278 00:11:59,616 --> 00:12:01,316 I tried the virtual terminal room that night, 279 00:12:01,316 --> 00:12:04,806 and for some reason, 20 people were online and around 1:00 am 280 00:12:04,806 --> 00:12:07,316 in the morning I realized that it was a lost cause, 281 00:12:07,316 --> 00:12:10,356 so I tried doing it on my own, but somehow I couldn't figure 282 00:12:10,356 --> 00:12:12,236 out a way to make visionaire [assumed spelling] work!!! 283 00:12:12,236 --> 00:12:17,026 In Columbia, I literally locked myself in the hotel room to come 284 00:12:17,026 --> 00:12:20,006 up with a logical solution to my problems, 285 00:12:20,286 --> 00:12:22,936 but it seemed the more I tried, the more I failed miserably. 286 00:12:23,006 --> 00:12:24,506 I tried virtual office hours again, 287 00:12:24,506 --> 00:12:26,816 and well the poor TF's again trying to help two students 288 00:12:26,816 --> 00:12:28,996 at a time, weren't really able to help me. 289 00:12:28,996 --> 00:12:31,076 Honestly, I was really frustrated that I needed 290 00:12:31,076 --> 00:12:34,596 so much time to get a relatively easy pset done, 291 00:12:34,596 --> 00:12:37,116 so I said to myself, if I can't do the problem sets 292 00:12:37,116 --> 00:12:38,976 in the beginning of the year, I won't be able 293 00:12:38,976 --> 00:12:40,226 to handle the course." 294 00:12:40,686 --> 00:12:44,246 So, dot, dot, dots, and this, recall, same student wrote us 295 00:12:44,246 --> 00:12:48,006 at semester's end with a much more gratified note, 296 00:12:48,316 --> 00:12:50,646 but I wanted to excerpt one last quote here. 297 00:12:50,646 --> 00:12:51,816 Since I had asked this student 298 00:12:51,816 --> 00:12:52,996 if she could give me her perspectives 299 00:12:52,996 --> 00:12:54,006 on the course two years ago, 300 00:12:54,006 --> 00:12:57,286 which was the first year I taught the course...what 301 00:12:57,476 --> 00:12:59,186 suggestions she might have, and she wrote, 302 00:12:59,416 --> 00:13:01,326 "If the sections could be designed in such a way 303 00:13:01,326 --> 00:13:03,346 to put all of the less comfortable students together 304 00:13:03,346 --> 00:13:05,456 in a small section, it might work better. 305 00:13:05,526 --> 00:13:07,016 I feel that sections are important 306 00:13:07,016 --> 00:13:08,466 because there you can ask more questions 307 00:13:08,466 --> 00:13:09,536 without feeling intimidated 308 00:13:09,536 --> 00:13:13,916 by 200 other comp sci experts looking at you, and once you, 309 00:13:14,036 --> 00:13:16,376 and also once you feel like you are not the only one, 310 00:13:16,616 --> 00:13:18,256 you feel better about yourself. 311 00:13:18,496 --> 00:13:19,256 Smiley face." 312 00:13:19,526 --> 00:13:22,296 So it was largely the result of this student having written 313 00:13:22,296 --> 00:13:24,496 and other students having echoed the same sentiments 314 00:13:24,496 --> 00:13:26,176 that we did introduce last year these three tracks 315 00:13:26,336 --> 00:13:28,386 for those less and those more comfortable 316 00:13:28,386 --> 00:13:29,686 and for those somewhere in between, 317 00:13:29,686 --> 00:13:32,816 and I want to take a moment to read these excerpts really just 318 00:13:32,816 --> 00:13:35,586 to show you the before and after because in the course syllabus, 319 00:13:35,586 --> 00:13:37,686 we do make that promise that what matters 320 00:13:38,156 --> 00:13:40,416 in the course is not so much where you end up relative 321 00:13:40,416 --> 00:13:43,836 to that CS expert to your right and the CS expert to your left, 322 00:13:44,056 --> 00:13:45,906 but rather where you end up relative to yourself, 323 00:13:45,906 --> 00:13:49,196 and week 12, today, vis-a-vis week zero. 324 00:13:49,446 --> 00:13:52,246 So the students who wrote me this note is named Jensu 325 00:13:52,246 --> 00:13:54,386 [inaudible] who has been the course's head teaching fellow 326 00:13:54,386 --> 00:13:56,416 for the past couple of years, and so I just wanted 327 00:13:56,416 --> 00:13:59,776 to thank her very wholeheartedly and very sentimentally 328 00:13:59,776 --> 00:14:01,526 for having written this note and for having done 329 00:14:01,526 --> 00:14:02,726 such a wonderfully 330 00:14:02,946 --> 00:14:05,366 and apparently awkward job the past couple of years. 331 00:14:05,366 --> 00:14:05,976 So, Jansu. 332 00:14:06,516 --> 00:14:14,136 [ Applause ] 333 00:14:14,636 --> 00:14:18,876 And finally though I do, finally, though I do love all 334 00:14:18,876 --> 00:14:21,626 of the TF's and CA's equally, I did want to a moment 335 00:14:21,626 --> 00:14:25,026 to just recognize the boy who has wardrobed Happy Cat 336 00:14:25,226 --> 00:14:26,256 and of all us this year. 337 00:14:26,316 --> 00:14:29,686 CS50 honestly would not be as beautiful or as branded 338 00:14:30,356 --> 00:14:32,406 as it has become over the past two years, 339 00:14:32,406 --> 00:14:34,956 and you've seen perhaps the limited extent of my web skills, 340 00:14:35,126 --> 00:14:36,556 and it's really thanks to this fellow, [inaudible], 341 00:14:36,556 --> 00:14:39,526 that the course looks the way it does. 342 00:14:39,566 --> 00:14:40,976 So a huge round of applause would be good for him as well. 343 00:14:41,516 --> 00:14:47,816 [ Applause ] 344 00:14:48,316 --> 00:14:50,736 And, lastly, there are many, many people on this sheet 345 00:14:50,736 --> 00:14:53,576 of paper who are never in front of the camera but behind it, 346 00:14:53,616 --> 00:14:57,436 but Chris and John and Barry, the team downstairs, many, 347 00:14:57,436 --> 00:15:00,496 many thanks for having made this semester so flawless, 348 00:15:00,676 --> 00:15:03,266 and I apologize myself for any technical [inaudible]. 349 00:15:03,336 --> 00:15:05,886 They have been have been mine and never the crew 350 00:15:05,886 --> 00:15:06,976 that supports us, so thank you. 351 00:15:07,516 --> 00:15:11,826 [ Applause ] 352 00:15:12,326 --> 00:15:15,316 So, now, it's all about you guys. 353 00:15:15,776 --> 00:15:18,486 So we look back at several problem sets, 354 00:15:18,486 --> 00:15:20,676 and there were various fun competitive aspects 355 00:15:20,676 --> 00:15:23,036 and various interesting submissions over time, 356 00:15:23,036 --> 00:15:25,266 and we wanted to take a moment to recognize a few 357 00:15:25,266 --> 00:15:26,466 of the submissions that had come 358 00:15:26,466 --> 00:15:27,876 in over the course of the semester. 359 00:15:28,456 --> 00:15:31,346 This is not to say that these were necessarily the best. 360 00:15:31,346 --> 00:15:32,916 This is not to say these were the worst, 361 00:15:32,916 --> 00:15:35,776 but they certainly stood out in the staff's mind for better 362 00:15:35,776 --> 00:15:37,916 or for worse, and today for the better. 363 00:15:37,916 --> 00:15:39,216 So we wanted to take a moment 364 00:15:39,536 --> 00:15:42,616 to recognize this scratch project from many weeks ago. 365 00:15:42,616 --> 00:15:45,206 None of these students were among those more comfortable, 366 00:15:45,206 --> 00:15:47,836 but what we went ahead and did was dig up a few. 367 00:15:48,336 --> 00:15:50,906 This one here was one of our favorites, 368 00:15:51,496 --> 00:15:52,886 and actually let me go ahead and pull 369 00:15:52,886 --> 00:15:54,046 up the client's side version. 370 00:15:54,046 --> 00:15:57,136 As some of you may recall, things seem to run better 371 00:15:57,306 --> 00:16:00,506 on the local client, and is Tom Rice here? 372 00:16:00,606 --> 00:16:03,806 Tom? So this is Tom Rice's Space Invaders, 373 00:16:03,806 --> 00:16:06,096 and if we can invite him up for a second, and then would someone 374 00:16:06,186 --> 00:16:08,386 like to play Space Invaders up here, 375 00:16:08,606 --> 00:16:10,206 albeit on camera, for just a moment. 376 00:16:10,986 --> 00:16:13,146 It's your last chance to volunteer. 377 00:16:14,156 --> 00:16:16,096 Tom, pick someone who you think would love 378 00:16:16,096 --> 00:16:17,286 to come up on stage with you. 379 00:16:17,286 --> 00:16:24,206 [Background conversation] All right, come on down here. 380 00:16:25,056 --> 00:16:30,966 Tom? If you would like to come up here and explain, if need be, 381 00:16:30,966 --> 00:16:32,376 exactly how this is played. 382 00:16:32,376 --> 00:16:33,986 We thought we would feature 383 00:16:33,986 --> 00:16:37,046 for just a moment your version of Space Invaders. 384 00:16:41,516 --> 00:16:44,006 >> Tom: [Pause] Hi, what's your name? 385 00:16:44,006 --> 00:16:44,176 >> Art: Art. 386 00:16:44,706 --> 00:16:45,926 >> Tom: Hi, I'm Tom. 387 00:16:45,926 --> 00:16:48,436 Uh, ok. There's a microphone. 388 00:16:48,436 --> 00:16:50,586 So the controls are right here. 389 00:16:50,586 --> 00:16:51,236 [Laughter] You move. 390 00:16:54,156 --> 00:16:55,566 Shoot to start. 391 00:16:55,566 --> 00:16:55,656 >> Art: Ok. 392 00:16:55,656 --> 00:16:59,466 >> Tom: We'll have to click the green flag first. 393 00:17:00,136 --> 00:17:03,046 [Pause] The sound on. 394 00:17:04,156 --> 00:17:05,976 You have sound on? 395 00:17:06,356 --> 00:17:06,686 >> [Background noise] Yes. 396 00:17:06,686 --> 00:17:12,126 >> Tom: You should shoot at the aliens. 397 00:17:12,366 --> 00:17:14,186 [Laughter] And don't let them hit you. 398 00:17:14,186 --> 00:17:16,956 You're going to hold down the space bar 399 00:17:17,516 --> 00:17:23,516 [ Music ] 400 00:17:24,016 --> 00:17:30,000 [ Laughter ] 401 00:17:30,156 --> 00:17:30,756 All right. 402 00:17:31,516 --> 00:17:45,516 [ Music ] 403 00:17:46,016 --> 00:17:48,000 [Inaudible] 404 00:17:48,516 --> 00:18:01,586 [ Music ] 405 00:18:02,086 --> 00:18:02,726 >> Now you can shoot twice as fast. 406 00:18:03,516 --> 00:18:14,546 [ Music ] 407 00:18:15,046 --> 00:18:15,846 You're doing fantastic. 408 00:18:17,516 --> 00:18:25,546 [ Music ] 409 00:18:26,046 --> 00:18:26,576 >> You're doing great. 410 00:18:26,576 --> 00:18:27,936 Everything that's happening is excellent. 411 00:18:28,516 --> 00:18:37,766 [ Music ] 412 00:18:38,266 --> 00:18:38,976 Two shields left. 413 00:18:39,516 --> 00:18:48,396 [ Applause ] 414 00:18:48,896 --> 00:18:50,606 >> So thank you to Tom and to Art. 415 00:18:50,606 --> 00:18:52,466 We have a little parting gift for them today, 416 00:18:52,596 --> 00:18:56,346 so congrats on such a job well done. 417 00:18:56,346 --> 00:18:57,546 [Background conversation] Oh, thank you, Art. 418 00:18:57,546 --> 00:19:00,996 All right, so we have two other scratch projects we wanted 419 00:19:00,996 --> 00:19:02,216 to recognize, and, again, 420 00:19:02,216 --> 00:19:05,256 even though it might not be your project up here, do think back 421 00:19:05,436 --> 00:19:07,626 to what week zero of this course was like. 422 00:19:07,826 --> 00:19:09,486 You may recall especially poignantly 423 00:19:09,486 --> 00:19:12,896 in week one just how damn hard it was to get a simple, little, 424 00:19:12,996 --> 00:19:17,086 relatively, simply little pyramid of stars just to appear 425 00:19:17,086 --> 00:19:19,956 on the screen and if you now think back to pset 7, pset 8, 426 00:19:20,236 --> 00:19:21,746 do appreciate those of you 427 00:19:21,746 --> 00:19:23,966 who feel this way just how far you've come 428 00:19:23,966 --> 00:19:25,246 in these 12 or so weeks. 429 00:19:25,246 --> 00:19:29,256 So this next one is actually a bit musical. 430 00:19:29,836 --> 00:19:34,376 In fact, both of these are musical along these lines. 431 00:19:34,416 --> 00:19:37,716 So this here is Anastasia Rhoda's [assumed spelling]. 432 00:19:37,716 --> 00:19:39,316 Is Anastasia here? 433 00:19:39,786 --> 00:19:41,426 Do you mind coming up for a second? 434 00:19:41,426 --> 00:19:41,976 Come on up, Anastasia. 435 00:19:42,516 --> 00:19:48,786 [ Applause ] 436 00:19:49,286 --> 00:19:53,156 So this is called Music Composer. 437 00:19:54,606 --> 00:19:56,626 I'm having some technical difficulties. 438 00:19:56,626 --> 00:19:58,646 Hello. Let me fix. 439 00:19:58,736 --> 00:19:59,206 There we go. 440 00:19:59,286 --> 00:20:01,246 Ok. Little heavy on my computer here. 441 00:20:01,746 --> 00:20:04,746 So this I was particularly struck by. 442 00:20:04,856 --> 00:20:08,596 I don't play piano very well, but it allows you 443 00:20:08,596 --> 00:20:11,166 to program essentially a piano by way of some music, 444 00:20:11,166 --> 00:20:12,966 and I'm guessing you do know some piano? 445 00:20:13,606 --> 00:20:16,256 So this might be a little bit of pressure here, but would you 446 00:20:16,256 --> 00:20:19,246 like to program us a little, few chords? 447 00:20:19,766 --> 00:20:21,616 Anastasia, music composer. 448 00:20:22,516 --> 00:20:28,836 [ Background noise ] 449 00:20:29,336 --> 00:20:31,796 [Music] Various letters represent the musical notes per 450 00:20:31,796 --> 00:20:32,976 the legend on the side. 451 00:20:33,516 --> 00:20:39,516 [ Music ] 452 00:20:40,016 --> 00:20:41,000 [ Background laughter ] 453 00:20:41,516 --> 00:20:55,026 [ Music ] 454 00:20:55,526 --> 00:20:57,776 That's got to be hard under pressure, so a big round 455 00:20:57,776 --> 00:20:58,916 of applause for Anastasia. 456 00:21:00,536 --> 00:21:00,866 [Applause] Thank you. 457 00:21:04,916 --> 00:21:07,786 In retrospect, I probably should have told Anastasia 458 00:21:07,786 --> 00:21:09,706 that I would need her to write a song on stage. 459 00:21:09,706 --> 00:21:12,516 [Laughter] So I hope that wasn't too much pressure. 460 00:21:12,516 --> 00:21:15,076 And then finally, this one I actually played with myself. 461 00:21:15,076 --> 00:21:17,686 Another one that's musical in nature that caught our eye, but, 462 00:21:17,686 --> 00:21:19,416 again, we love them all equally. 463 00:21:20,186 --> 00:21:24,756 This one is by Ivan Buckov [assumed spelling]. 464 00:21:25,366 --> 00:21:26,966 Apologies if I've mispronounced. 465 00:21:26,966 --> 00:21:29,446 Let's let this one load, too, and this one, 466 00:21:29,446 --> 00:21:30,596 too, can be programmed. 467 00:21:30,596 --> 00:21:31,426 I thought I would go ahead 468 00:21:31,426 --> 00:21:34,096 and do what I did last night while tinkering. 469 00:21:34,096 --> 00:21:36,006 Go ahead and hit the green flag here. 470 00:21:36,346 --> 00:21:38,956 I wanted to...so this is a program 471 00:21:39,206 --> 00:21:41,726 that one run moves this little bar from left to right, 472 00:21:41,726 --> 00:21:46,146 and anytime it encounters a note, it plays that note. 473 00:21:46,236 --> 00:21:46,506 [Background music] So each 474 00:21:46,506 --> 00:21:50,476 of these boxes represents a different note. 475 00:21:50,476 --> 00:21:51,186 It is pretty. 476 00:21:51,266 --> 00:21:54,496 So what I thought I would see is what CS50, 477 00:21:54,496 --> 00:21:56,406 the musical, sounds like. 478 00:21:56,476 --> 00:22:04,586 [Laughter] So I got to playing like this, and then I did this. 479 00:22:04,736 --> 00:22:06,156 All right...that's...oops. 480 00:22:06,296 --> 00:22:08,466 I left some space last night, so let's do this again. 481 00:22:08,786 --> 00:22:09,236 All right. 482 00:22:09,806 --> 00:22:13,356 So that looks like an s kind of. 483 00:22:13,476 --> 00:22:14,246 All right. 484 00:22:14,246 --> 00:22:15,246 Now I did this. 485 00:22:15,706 --> 00:22:16,236 Let's see. 486 00:22:17,126 --> 00:22:23,276 That's a decent 5 and 0 and 0. 487 00:22:23,446 --> 00:22:27,156 And now is Ivan here? 488 00:22:27,156 --> 00:22:29,496 Do you mind joining us up on stage? 489 00:22:29,646 --> 00:22:30,786 And I'll let you hit play. 490 00:22:30,956 --> 00:22:37,436 [Laughter] So this, too, is actually very addictive, 491 00:22:37,436 --> 00:22:40,576 and I'm frankly very amazed when I look at the source code, 492 00:22:40,576 --> 00:22:41,576 the puzzle pieces, the [inaudible] 493 00:22:41,656 --> 00:22:42,696 that you guys implemented. 494 00:22:42,696 --> 00:22:45,626 There are many that are far more sophisticated certainly 495 00:22:45,626 --> 00:22:47,226 than what I once did. 496 00:22:47,256 --> 00:22:48,946 So, Ivan, do you want to explain in just a couple 497 00:22:48,946 --> 00:22:50,326 of words what motivated this 498 00:22:50,326 --> 00:22:51,706 or how it works and then go to town? 499 00:22:51,976 --> 00:22:55,126 >> Ivan: Well, I'd love to take full credit for this, but, 500 00:22:55,126 --> 00:22:57,716 unfortunately, I found it on the Internet. 501 00:22:57,716 --> 00:23:00,466 [Laughter] And it's something that's called the tone matrix 502 00:23:00,816 --> 00:23:04,286 and tone scratchix, and it's essentially what you see here, 503 00:23:04,286 --> 00:23:05,366 except it's even bigger. 504 00:23:05,366 --> 00:23:09,316 It's a grid of 16 by 16 of these little dots It's based 505 00:23:09,316 --> 00:23:13,376 on a pentatonic scale, so essentially anything, 506 00:23:13,376 --> 00:23:17,026 any combination of squares that you press are kind 507 00:23:17,026 --> 00:23:19,816 of almost guaranteed to make a good sound. 508 00:23:19,816 --> 00:23:20,516 I'm not sure if [inaudible]. 509 00:23:20,516 --> 00:23:20,583 [Laughter] 510 00:23:20,583 --> 00:23:23,946 >> David: And to be clear, you found the tool 511 00:23:23,946 --> 00:23:26,246 or the game online, not this particular scratch 512 00:23:26,246 --> 00:23:26,676 project [inaudible]. 513 00:23:26,676 --> 00:23:30,046 [Laughter] All right. 514 00:23:30,046 --> 00:23:35,796 >> Ivan: I thought I'd implement like a few other functions to it 515 00:23:35,986 --> 00:23:38,886 to make it not just like a clone of the actual thing, 516 00:23:38,966 --> 00:23:41,946 so I have these other buttons which [inaudible], reset, 517 00:23:41,946 --> 00:23:45,546 you can change the tempo which is just changing the speed 518 00:23:45,546 --> 00:23:48,846 of the bars that moves along, and if you click on sound, 519 00:23:48,846 --> 00:23:51,066 it gives you a different instrument to play. 520 00:23:51,206 --> 00:23:51,516 >> David: Ooh. 521 00:23:51,516 --> 00:23:51,796 How about that? 522 00:23:51,796 --> 00:23:51,976 Show us. 523 00:23:52,516 --> 00:24:00,546 [ Music ] 524 00:24:01,046 --> 00:24:02,576 David: So that is [laughter] what 50 sounds like. 525 00:24:02,696 --> 00:24:03,976 Do you want to play with tempo and sound perhaps? 526 00:24:04,516 --> 00:24:12,516 [ Music ] 527 00:24:13,016 --> 00:24:31,006 [ Background conversation ] 528 00:24:31,506 --> 00:24:49,196 [ Music ] 529 00:24:49,696 --> 00:24:51,756 >> David: Let's end on a good note. 530 00:24:52,516 --> 00:25:01,386 [ Applause ] 531 00:25:01,886 --> 00:25:02,346 Thank you. 532 00:25:02,486 --> 00:25:03,386 Congrats to Ivan. 533 00:25:03,386 --> 00:25:05,396 It was really quite fun to play with. 534 00:25:05,396 --> 00:25:07,946 So these are all linked on today's lecture [inaudible]. 535 00:25:07,946 --> 00:25:11,036 Congrats. So that was pset zero. 536 00:25:11,036 --> 00:25:15,946 That then brought us to problem set 5, which, recall, 537 00:25:15,946 --> 00:25:18,866 involved this guy in many different places on campus. 538 00:25:18,866 --> 00:25:21,636 So frankly the fact that, well never mind, 539 00:25:21,636 --> 00:25:23,196 the fact that we own our own Happy Cat 540 00:25:23,196 --> 00:25:24,756 from icanhascheezburger.com [assumed spelling], 541 00:25:25,056 --> 00:25:27,006 but in years past, we simply took photographs 542 00:25:27,006 --> 00:25:30,496 of fairly inanimate things, not people, but places and things. 543 00:25:30,776 --> 00:25:32,016 This year we decided to just spice it 544 00:25:32,016 --> 00:25:34,686 up by putting Happy Cats all around campus 545 00:25:34,686 --> 00:25:36,186 and at the very last minute. 546 00:25:36,186 --> 00:25:38,546 So we gave everyone like 4 weeks to find these photos, 547 00:25:38,816 --> 00:25:43,566 and literally, at like 11:23 pm, 11:49 pm, all of the submissions 548 00:25:43,566 --> 00:25:47,076 from sections started coming in and so the four sections 549 00:25:47,076 --> 00:25:50,586 who really took this to heart were these four here, Lee's, 550 00:25:50,586 --> 00:25:54,036 John's, Drew, and Rose's section which I thought I'd do is pull 551 00:25:54,036 --> 00:25:54,936 up each of these links. 552 00:25:54,936 --> 00:25:57,706 Lee's section was, in fact, the first to submit, 553 00:25:57,986 --> 00:25:59,896 and almost everyone got most all of them. 554 00:25:59,896 --> 00:26:01,546 I thought I'd bring up their album here. 555 00:26:01,936 --> 00:26:03,266 Yea, Lee's section. 556 00:26:04,286 --> 00:26:04,676 [Laughter] Just us. 557 00:26:04,716 --> 00:26:05,166 All right. 558 00:26:06,496 --> 00:26:07,966 [Background noise] There you go. 559 00:26:08,976 --> 00:26:11,916 [Laughter] So you may recognize...this was actually 560 00:26:11,916 --> 00:26:12,626 fairly common. 561 00:26:12,626 --> 00:26:14,266 Almost all of the groups submitted a photo 562 00:26:14,266 --> 00:26:15,266 that looked like this. 563 00:26:16,946 --> 00:26:18,726 So this, of course, was the statue outside 564 00:26:18,726 --> 00:26:20,276 of Boylston Science Center. 565 00:26:20,276 --> 00:26:22,186 It actually looks kind of cool when looked 566 00:26:22,186 --> 00:26:23,526 at from this angle here. 567 00:26:24,876 --> 00:26:26,046 What else do we have? 568 00:26:26,046 --> 00:26:27,826 This, of course, is a favorite. 569 00:26:27,936 --> 00:26:29,826 All right. 570 00:26:29,896 --> 00:26:32,226 What else do we have here? 571 00:26:34,006 --> 00:26:36,396 You did find the bike racks. 572 00:26:36,486 --> 00:26:37,846 What else did we have here? 573 00:26:38,266 --> 00:26:39,496 Oh, and of course, those of you 574 00:26:39,496 --> 00:26:41,076 who have never seen Winnie the Pooh. 575 00:26:41,076 --> 00:26:43,206 Pooh seems to disappear every couple of years, 576 00:26:43,206 --> 00:26:45,736 but his door has been there for many, many years. 577 00:26:45,736 --> 00:26:48,746 This is a little gem outside 578 00:26:48,746 --> 00:26:50,506 of the science center by the law school. 579 00:26:50,506 --> 00:26:51,776 So it's a little dark on this screen, 580 00:26:51,776 --> 00:26:53,496 but that's Pooh's corner there. 581 00:26:53,496 --> 00:26:56,466 So, congrats to Lee's section, but also congrats 582 00:26:56,606 --> 00:26:57,956 to the other couple of sections. 583 00:26:57,956 --> 00:27:00,156 Let me pull up just a few of their photos. 584 00:27:00,156 --> 00:27:02,636 This is John's section who strolled around campus, 585 00:27:03,046 --> 00:27:05,106 similarly found most of the locations. 586 00:27:05,106 --> 00:27:07,926 Most of these were taken by, or featuring, 587 00:27:07,926 --> 00:27:08,126 Shea [assumed spelling] 588 00:27:08,126 --> 00:27:12,686 who actually did find the apple tree in Radcliffe Yard. 589 00:27:12,686 --> 00:27:14,806 I had never know that there was an apple tree 590 00:27:14,806 --> 00:27:18,386 on Harvard's campus, and that there is is not necessarily all 591 00:27:18,386 --> 00:27:20,626 that interesting, but she did find it, 592 00:27:20,626 --> 00:27:23,306 and this is over near the Admission's office these days, 593 00:27:23,306 --> 00:27:26,156 taken at dark, apparently, but there are, 594 00:27:26,156 --> 00:27:27,466 or were, apples there. 595 00:27:27,886 --> 00:27:29,416 This was not quite the intention. 596 00:27:29,416 --> 00:27:30,746 When you go into Cambridge Common 597 00:27:30,746 --> 00:27:33,636 when we decided we were getting bored at this point in the day, 598 00:27:33,636 --> 00:27:36,426 ad so we just started throwing Happy Cat and taking pictures, 599 00:27:36,766 --> 00:27:40,486 but she had decided to take this to heart [laughter]. 600 00:27:40,606 --> 00:27:44,476 So congrats to her section there. 601 00:27:44,796 --> 00:27:46,466 Just a couple of others. 602 00:27:46,506 --> 00:27:52,796 The next submission came from our Drew Rob section, by Mark, 603 00:27:52,966 --> 00:27:54,156 so pretty much Mark seems 604 00:27:54,156 --> 00:27:56,546 to have shouldered the entire project himself. 605 00:27:56,936 --> 00:27:58,886 Here is Mark in Maxwell Dworkin. 606 00:27:59,546 --> 00:28:01,856 Here is Mark outside Maxwell Dworkin. 607 00:28:03,156 --> 00:28:08,546 [Laughter] Here is Mark in Northwest Science, alone there. 608 00:28:08,686 --> 00:28:13,736 Here is Mark in Northwest Science sliding down the pole. 609 00:28:14,066 --> 00:28:20,376 Here is Mark hiding, and, again, there's just a theme. 610 00:28:20,376 --> 00:28:25,566 Here is Mark checking his voicemail, and, lastly, 611 00:28:25,566 --> 00:28:27,556 here is Mark with his head in the statue. 612 00:28:28,086 --> 00:28:30,506 So congrats to Mark and Drew's section, and, 613 00:28:30,506 --> 00:28:32,486 lastly, Rose's section. 614 00:28:32,486 --> 00:28:34,196 They used this neat feature of Google maps 615 00:28:34,386 --> 00:28:36,686 where you can actually pinpoint where you found things, 616 00:28:36,686 --> 00:28:37,656 so if you're curious as to 617 00:28:37,846 --> 00:28:41,326 where all the photos you didn't go find were, do take a look 618 00:28:41,326 --> 00:28:43,436 at this particular link, and what you'll see 619 00:28:43,436 --> 00:28:46,916 in just a moment, hopefully, is a bunch of blue markers. 620 00:28:47,676 --> 00:28:48,436 Still loading. 621 00:28:48,766 --> 00:28:51,526 Yes, it's slow, and what you'll see 622 00:28:51,526 --> 00:28:55,766 on the map...come on...come on, Google maps. 623 00:28:56,176 --> 00:28:59,426 What this section may have...at least one section did, 624 00:28:59,676 --> 00:29:02,016 or may have done because I may have mentioned this 625 00:29:02,016 --> 00:29:04,176 at one point, is when it was getting hard 626 00:29:04,176 --> 00:29:06,296 to fined the photos, especially the ones at the tops 627 00:29:06,296 --> 00:29:08,246 of buildings, which frankly I actually forgot, too, 628 00:29:08,246 --> 00:29:10,926 where they were, so we were hoping you would find them. 629 00:29:10,926 --> 00:29:14,116 What you can do is actually look 630 00:29:14,116 --> 00:29:16,086 at what's called the exit data inside 631 00:29:16,086 --> 00:29:16,966 of a jpegs [assumed spelling], so in addition 632 00:29:16,966 --> 00:29:18,696 to recovering the data of the jpegs, 633 00:29:18,696 --> 00:29:23,216 jpegs also have some metadata, which is things like the name 634 00:29:23,216 --> 00:29:26,096 of the file, the type of camera that took it, and the date 635 00:29:26,096 --> 00:29:28,356 and time at which the photo was taken. 636 00:29:28,406 --> 00:29:31,066 So, in fact, if you assumed, reasonably, 637 00:29:31,066 --> 00:29:34,116 that we followed a path through campus and didn't randomly run 638 00:29:34,116 --> 00:29:36,626 around campus taking photos and then revisiting those places, 639 00:29:36,886 --> 00:29:39,696 you can actually kind of trace or infer our steps based 640 00:29:39,696 --> 00:29:41,336 on these time stamps in the photos. 641 00:29:41,336 --> 00:29:43,786 Now 2 years ago, this didn't even occur to us, 642 00:29:43,786 --> 00:29:45,346 and there's a little emblem on the back 643 00:29:45,346 --> 00:29:48,056 of the John Harvard statue that even no tourist had ever seen. 644 00:29:48,316 --> 00:29:48,956 We found this. 645 00:29:48,956 --> 00:29:50,766 We photographed it, and we were amazed that one 646 00:29:50,766 --> 00:29:52,156 of the sections actually found it, 647 00:29:52,326 --> 00:29:53,606 and it was because of that trick. 648 00:29:53,606 --> 00:29:55,546 Well, last year we decided to mess with students, 649 00:29:55,796 --> 00:29:57,906 so we altered all of the time stamps just to kind 650 00:29:57,906 --> 00:29:59,076 of send them every which way. 651 00:30:00,436 --> 00:30:04,016 That kind of hurt participation, so we didn't do that this year, 652 00:30:04,016 --> 00:30:05,766 and unfortunately Google maps doesn't seem 653 00:30:05,766 --> 00:30:07,936 to be cooperating here, but you will eventually see 654 00:30:07,936 --> 00:30:11,186 from Rose's section a sprinkling of markers all 655 00:30:11,186 --> 00:30:12,296 over Harvard's campus, 656 00:30:12,296 --> 00:30:16,156 and inside of those little cartoon bubbles are the 657 00:30:16,156 --> 00:30:17,176 directions to them. 658 00:30:18,056 --> 00:30:20,386 So, we'll defer to that one online. 659 00:30:20,386 --> 00:30:23,796 So with...oh...so, there were four sections. 660 00:30:24,036 --> 00:30:26,836 I used my computer to make four certificates 661 00:30:26,836 --> 00:30:28,786 of distinction this morning. 662 00:30:29,056 --> 00:30:32,946 Could...if the TF's are here or one student from each section 663 00:30:32,946 --> 00:30:35,916 from Lee, John's, Drew, and Rose's section, 664 00:30:35,916 --> 00:30:36,786 would you like to come on up, 665 00:30:36,946 --> 00:30:39,476 and we'll be taking these sections to a meal 666 00:30:39,476 --> 00:30:41,396 in the square right after Thanksgiving break 667 00:30:41,396 --> 00:30:43,106 as their prize for their stroll. 668 00:30:43,666 --> 00:30:44,436 I see Drew. 669 00:30:44,436 --> 00:30:45,416 I see Rose. 670 00:30:46,646 --> 00:30:49,786 I don't see Lee or John, which means someone from Lee... 671 00:30:49,786 --> 00:30:51,716 oh, Mark. Mark is here. 672 00:30:52,046 --> 00:30:53,606 [Laughter] Come on up. 673 00:30:54,236 --> 00:30:55,386 [Applause] Congrats to these guys. 674 00:30:57,246 --> 00:30:58,296 Very nicely done. 675 00:30:59,026 --> 00:30:59,486 We'll be in touch. 676 00:31:02,366 --> 00:31:03,066 This is Mark. 677 00:31:03,406 --> 00:31:03,606 [Laughter] Ok. 678 00:31:03,686 --> 00:31:08,956 Congrats. Oh, and do you mind...the TF's...do you...oh, 679 00:31:08,956 --> 00:31:09,466 there we go. 680 00:31:11,646 --> 00:31:12,786 Ok. Rose. [Background conversation] Oh, 681 00:31:13,236 --> 00:31:14,606 you're together. 682 00:31:15,176 --> 00:31:16,426 Drew is right there though. 683 00:31:16,426 --> 00:31:18,226 What are you going to make me come down? 684 00:31:18,226 --> 00:31:18,836 All right. 685 00:31:18,836 --> 00:31:19,666 There we go. 686 00:31:19,956 --> 00:31:20,376 There we go. 687 00:31:20,416 --> 00:31:21,616 Congrats to you guys. 688 00:31:21,616 --> 00:31:22,976 So, we'll have a nice meal before long. 689 00:31:23,516 --> 00:31:27,486 [ Applause ] 690 00:31:27,986 --> 00:31:28,566 All right. 691 00:31:28,736 --> 00:31:31,866 So, if that weren't enough fun problem sets, six challenged you 692 00:31:31,866 --> 00:31:35,826 to memorize RAM and CPU time, and it's probably just as well 693 00:31:35,826 --> 00:31:37,166 because now it will get a bit awkward 694 00:31:37,166 --> 00:31:39,756 because not only did Drew Rob, now Teaching Fellow, 695 00:31:39,866 --> 00:31:42,286 win all of these contests last year as a student, 696 00:31:42,586 --> 00:31:44,326 he seems to have done so again, 697 00:31:44,806 --> 00:31:47,516 but this is not a bad thing because, frankly, 698 00:31:47,516 --> 00:31:49,146 we definitely noticed that it seemed 699 00:31:49,146 --> 00:31:52,476 to have incentivized a number of your classmates, namely Kevin 700 00:31:52,476 --> 00:31:56,056 and Allen up here at the top of the list to really try to best 701 00:31:56,056 --> 00:31:58,566 that time, and even though they didn't, this is damn remarkable, 702 00:31:58,566 --> 00:32:01,606 and so are Kevin and Allen here who would like to come up 703 00:32:01,686 --> 00:32:03,386 and recognize for this accomplishment? 704 00:32:03,386 --> 00:32:03,826 Come on down. 705 00:32:04,516 --> 00:32:12,176 [ Applause ] 706 00:32:12,676 --> 00:32:16,316 So the catch is, if you don't mind, just giving us a couple 707 00:32:16,316 --> 00:32:20,336 of sentences on how you minimized your CPU time 708 00:32:20,376 --> 00:32:20,956 if you're up for it. 709 00:32:21,536 --> 00:32:21,776 >> Kevin: Ok. 710 00:32:21,936 --> 00:32:22,776 >> David: Kevin? 711 00:32:22,966 --> 00:32:27,236 >> Kevin: So I actually coded my program in Assembly. 712 00:32:27,236 --> 00:32:30,096 [Laughter] I used this X86 instruction that [inaudible]. 713 00:32:30,096 --> 00:32:34,126 >> David: You didn't think of that, did you? 714 00:32:34,416 --> 00:32:37,946 >> Yeah, I didn't think of that either. 715 00:32:37,946 --> 00:32:38,716 Yeah, I don't know. 716 00:32:38,716 --> 00:32:40,646 I talked to my TF, who's actually Drew, [laughter]. 717 00:32:40,646 --> 00:32:43,486 He gave us good tips. 718 00:32:43,486 --> 00:32:43,553 [Applause] 719 00:32:43,553 --> 00:32:44,276 >> David: Congrats. 720 00:32:47,496 --> 00:32:48,726 All right. 721 00:32:49,486 --> 00:32:55,116 And here. This is perhaps even more fitting than before. 722 00:32:55,116 --> 00:32:56,126 So, here you are. 723 00:32:57,466 --> 00:32:58,016 [Laughter] So congrats. 724 00:32:58,016 --> 00:33:01,096 So realize that winning the big board was not what 725 00:33:01,096 --> 00:33:02,046 that was all about. 726 00:33:02,046 --> 00:33:03,996 It was fairly [inaudible] and just making it 727 00:33:03,996 --> 00:33:05,896 to the big board even if you were at the very bottom, 728 00:33:06,136 --> 00:33:07,286 props to you nonetheless. 729 00:33:07,286 --> 00:33:12,056 So congrats though nonetheless to these guys who really went 730 00:33:12,056 --> 00:33:13,646 above and beyond in putting in the time. 731 00:33:13,646 --> 00:33:16,756 So, Drew, again, walks away this year 732 00:33:16,756 --> 00:33:21,926 with 113 quintillion dollars, having grown that from 10,000. 733 00:33:21,926 --> 00:33:24,276 Allen, don't go too far because I think we'll put you 734 00:33:24,276 --> 00:33:27,736 on the spot and answer the question everyone might have 735 00:33:27,736 --> 00:33:32,156 wondered at the time which was how did you earn only 11 736 00:33:32,156 --> 00:33:33,156 quintillion dollars? 737 00:33:33,156 --> 00:33:34,976 If you wouldn't mind returning to the stage for a moment. 738 00:33:35,516 --> 00:33:41,596 [ Background noise ] 739 00:33:42,096 --> 00:33:47,036 >> Allen: So, yeah, what I did is I stole Charles' idea 740 00:33:47,446 --> 00:33:52,256 of just trading volume indices, but Drew did better than me 741 00:33:52,256 --> 00:33:54,026 because he figured out you didn't even need to wait 742 00:33:54,026 --> 00:33:56,736 for them to improve because if you put like a bunch 743 00:33:56,866 --> 00:33:58,926 of like random characters in there, 744 00:33:58,926 --> 00:34:01,266 it like only remembered it some of the time, 745 00:34:01,806 --> 00:34:03,976 so Drew basically made a bunch of trades 746 00:34:04,656 --> 00:34:08,146 where he basically immediately made like, I don't know, 747 00:34:08,146 --> 00:34:11,516 like a quintillion dollars every time, and then just made a ton 748 00:34:11,516 --> 00:34:12,276 of them and crushed me. 749 00:34:12,276 --> 00:34:12,706 [Laughter] 750 00:34:12,706 --> 00:34:14,996 >> David: Well congrats nonetheless. 751 00:34:15,996 --> 00:34:20,266 [Applause] All right. 752 00:34:20,436 --> 00:34:22,996 So, admittedly there's some bugs in our big board. 753 00:34:23,096 --> 00:34:25,626 We'll perhaps take care of that next year, 754 00:34:25,626 --> 00:34:28,186 but this is by far the first time that someone 755 00:34:28,186 --> 00:34:31,456 so completely vanquished all previous records. 756 00:34:31,696 --> 00:34:35,346 So we wanted to recognize one other student. 757 00:34:35,346 --> 00:34:37,516 We...take a look at the big statistics 758 00:34:37,516 --> 00:34:39,856 for the bulletin board, which is, if you never tuned in, 759 00:34:39,856 --> 00:34:42,636 and now that we know that you did or didn't because we looked 760 00:34:42,636 --> 00:34:44,836 at the statistics, is the synonymous bulletin board 761 00:34:44,836 --> 00:34:47,346 by which you can ask questions, answer questions, 762 00:34:47,346 --> 00:34:50,366 and there was three folks in particular, and I'm happy now 763 00:34:50,366 --> 00:34:52,996 to pat myself on the back that I blew you all away when it came 764 00:34:52,996 --> 00:34:54,276 to posting to the bulletin board, 765 00:34:54,616 --> 00:34:57,706 followed by Glen Holloway, who you never see, 766 00:34:57,706 --> 00:34:59,386 but who's also been invaluable as sort 767 00:34:59,386 --> 00:35:01,476 of my behind the scenes consularie in the course, 768 00:35:01,666 --> 00:35:06,546 but Jeremy Cushman, if he's here, with 162 answers really. 769 00:35:06,546 --> 00:35:07,816 There was an occasional question, 770 00:35:07,816 --> 00:35:10,456 but we're quite grateful that he would often pluck off questions 771 00:35:10,456 --> 00:35:12,406 before we even had a chance. 772 00:35:12,406 --> 00:35:13,976 So Jeremy, we made you a certificate, too. 773 00:35:14,516 --> 00:35:21,956 [ Applause ] 774 00:35:22,456 --> 00:35:23,456 Very nicely done. 775 00:35:24,526 --> 00:35:25,396 >> Jeremy: Thank you. 776 00:35:25,506 --> 00:35:29,466 >> David: Have another...we always get them afterward. 777 00:35:29,756 --> 00:35:30,126 All right. 778 00:35:30,426 --> 00:35:34,066 So with that and hopefully at this point, you have filled 779 00:35:34,066 --> 00:35:35,816 out a few questions on this piece of paper 780 00:35:35,816 --> 00:35:37,736 because you only have a couple more minutes to do so. 781 00:35:37,806 --> 00:35:39,416 So you have in your hands from when you walked 782 00:35:39,416 --> 00:35:41,846 in probably a piece of paper, and the bottom corner 783 00:35:41,846 --> 00:35:43,176 of which is either the number one 784 00:35:43,446 --> 00:35:44,806 or the number two on the back. 785 00:35:45,026 --> 00:35:46,026 This was an accident. 786 00:35:46,026 --> 00:35:48,346 This is what happens when I send an email 787 00:35:48,346 --> 00:35:49,946 to have something photocopied 788 00:35:49,946 --> 00:35:53,616 and don't think we only wanted you to get side 2 or side 1, 789 00:35:53,856 --> 00:35:56,096 so we thought we'd leverage some probability here, 790 00:35:56,096 --> 00:35:58,376 and we're just saying go ahead and fill out with questions 791 00:35:58,376 --> 00:36:02,626 and answers either side 1 or side 2, and we're hoping purely 792 00:36:02,626 --> 00:36:05,066 by chance that roughly 50% of you will choose 1 793 00:36:05,336 --> 00:36:06,996 and 50% of you will choose 2. 794 00:36:06,996 --> 00:36:08,736 So if you haven't done that, take the last couple 795 00:36:08,736 --> 00:36:11,086 of minutes here to do so and come up with a couple 796 00:36:11,086 --> 00:36:14,756 of quiz show like questions, and what I thought I would do then 797 00:36:14,926 --> 00:36:17,866 as you finish that up is this here. 798 00:36:18,266 --> 00:36:21,246 So we looked at the surveys from problem set 5, and you'll be hit 799 00:36:21,246 --> 00:36:23,256 with one more toward the end of the semester 800 00:36:23,256 --> 00:36:26,266 because it's invaluable data for us as we improve this semester, 801 00:36:26,496 --> 00:36:28,376 and I wanted to give this student his 802 00:36:28,376 --> 00:36:30,656 or her 15 seconds of fame, too. 803 00:36:30,656 --> 00:36:35,276 So this is respondent number 29 who wanted their survey put 804 00:36:35,276 --> 00:36:37,916 up just like the birthday boy from a couple of weeks ago. 805 00:36:37,916 --> 00:36:41,496 This was interesting, and whenever we see nonsense, 806 00:36:41,496 --> 00:36:45,156 we tend to assume that it's something like route 13, so, 807 00:36:45,156 --> 00:36:48,036 yep, we pulled this up here, route 13 converter. 808 00:36:48,216 --> 00:36:50,356 I'll just go with the top link here. 809 00:36:50,436 --> 00:36:51,186 Nope, not working. 810 00:36:51,186 --> 00:36:53,006 We'll go for the second link here. 811 00:36:53,266 --> 00:36:54,786 We could do this by hand, of course. 812 00:36:54,786 --> 00:36:56,736 We know how, but I'm just going to go ahead and fill 813 00:36:56,736 --> 00:37:01,886 in that blank like route 13, and this student had this to say. 814 00:37:01,886 --> 00:37:04,496 [Laughter] So your 15 seconds are now up, but thank you 815 00:37:04,496 --> 00:37:08,616 for your feedback, and this was also a theme here, 816 00:37:08,616 --> 00:37:09,486 too, in the survey. 817 00:37:09,486 --> 00:37:10,816 So I only took one of these quotes, 818 00:37:11,066 --> 00:37:12,676 but throughout the surveys 819 00:37:12,676 --> 00:37:15,906 for pset 5 were comments along these lines. 820 00:37:15,906 --> 00:37:17,566 So you recall that the course website 821 00:37:17,566 --> 00:37:20,876 for some time featured a whole bunch of wall cats which, no, 822 00:37:21,516 --> 00:37:22,906 of course the website featured for a whole bunch 823 00:37:22,906 --> 00:37:25,276 of time some staffs, so teaching fellows, 824 00:37:25,276 --> 00:37:27,676 [inaudible] course assistants, and occasionally me, 825 00:37:27,756 --> 00:37:30,266 we decided to swap ourselves out recently 826 00:37:30,266 --> 00:37:34,956 with a wall cat of the day. 827 00:37:35,066 --> 00:37:36,846 [Laughter] So, this is from a very popular, 828 00:37:36,846 --> 00:37:39,836 funny website called icanhascheezburger.com, 829 00:37:40,066 --> 00:37:42,976 and they provide what's called an RSS feed. 830 00:37:42,976 --> 00:37:46,046 RSS is an XML based language, a tag based language, 831 00:37:46,046 --> 00:37:47,826 and you know, we had a bit of free time 832 00:37:47,826 --> 00:37:49,066 so we went to their website. 833 00:37:49,266 --> 00:37:51,256 We found the link to RSS feed. 834 00:37:51,416 --> 00:37:53,216 We then wrote a little PHP program 835 00:37:53,216 --> 00:37:55,566 that every few minutes queries their website, 836 00:37:55,566 --> 00:37:59,536 grabs at that RSS feed, and much like our proxy for pset 8, 837 00:37:59,796 --> 00:38:02,376 traverse the RSS that came back from Google news, 838 00:38:02,596 --> 00:38:04,956 so do we traverse the RSS that comes back 839 00:38:04,956 --> 00:38:06,116 from icanhascheezburger. 840 00:38:06,116 --> 00:38:08,976 We look for the most recent jpeg that they've imbedded 841 00:38:08,976 --> 00:38:11,066 in their RSS feed, and then we save 842 00:38:11,066 --> 00:38:14,216 in our local database a copy of that URL, and then we proceed 843 00:38:14,216 --> 00:38:15,656 to imbed it in our own website, 844 00:38:15,656 --> 00:38:18,236 and so this thing doesn't change every minute or so, 845 00:38:18,236 --> 00:38:20,826 but any time they update their feed, within a few minutes, 846 00:38:21,016 --> 00:38:23,296 we've actually captured these changes as well. 847 00:38:23,296 --> 00:38:26,006 And we also dove in and played around with some other things 848 00:38:26,006 --> 00:38:28,346 which we thought we'd draw your attention to because, 849 00:38:28,346 --> 00:38:30,646 as you exit this course, there will come a point 850 00:38:30,646 --> 00:38:32,536 where you're certainly not going to be handed a PDF 851 00:38:32,536 --> 00:38:36,546 that tells you exactly how to proceed to tackle some problem, 852 00:38:36,796 --> 00:38:38,556 so we've been having great fun this year building 853 00:38:38,556 --> 00:38:39,536 out these various API's, 854 00:38:39,826 --> 00:38:41,736 application programming interfaces, 855 00:38:41,836 --> 00:38:43,356 and this is really just to lower the bar 856 00:38:43,356 --> 00:38:45,566 to getting data that's interesting on campus, 857 00:38:45,616 --> 00:38:47,316 but as this Wiki page, which is linked 858 00:38:47,316 --> 00:38:51,296 on the course's website reveals, there are so many fun data sets 859 00:38:51,536 --> 00:38:54,266 and tools that you can patch into whether it's for the iPhone 860 00:38:54,266 --> 00:38:58,156 or Facebook or calendars or finance or maps or any number 861 00:38:58,156 --> 00:39:00,556 of things, and so just to inspire your, oh, 862 00:39:00,556 --> 00:39:03,476 forthcoming final projects, I thought I'd draw your attention 863 00:39:03,476 --> 00:39:05,596 to the solving of two problems, for instance. 864 00:39:05,596 --> 00:39:07,026 So we have a number of students who want 865 00:39:07,026 --> 00:39:09,696 to implement some food based projects 866 00:39:09,696 --> 00:39:12,216 for their final project, and by that, we mean doing something 867 00:39:12,216 --> 00:39:15,446 with the dining hall, and you may recall crimsondining.org was 868 00:39:15,446 --> 00:39:18,436 made by a former CS50 student and TF 869 00:39:18,806 --> 00:39:21,426 that does something along these lines, but we decided that, 870 00:39:21,426 --> 00:39:23,616 you know, it's not going to be the best use of time 871 00:39:23,786 --> 00:39:25,856 if a whole bunch of students go to wub, wub, 872 00:39:25,856 --> 00:39:27,986 wub dining.harvard.edu. 873 00:39:28,186 --> 00:39:30,186 They pull up the menu, and then you have to figure 874 00:39:30,186 --> 00:39:33,936 out somehow how to get this data into your website. 875 00:39:34,116 --> 00:39:37,036 So a number of you at this point in the term are probably a, 876 00:39:37,036 --> 00:39:39,976 not thinking about final projects at all or 2, 877 00:39:39,976 --> 00:39:42,466 are but really have no idea how you're going 878 00:39:42,466 --> 00:39:45,396 to implement what you proposed implementing in your proposal. 879 00:39:45,396 --> 00:39:46,896 So just to help you realize 880 00:39:46,896 --> 00:39:50,156 that you now have underneath your belt a whole bunch of tools 881 00:39:50,416 --> 00:39:52,706 and building blocks with which you can figure these things 882 00:39:52,706 --> 00:39:54,756 out on your own, I thought I'd in just 60 883 00:39:54,756 --> 00:39:58,296 or so seconds explain how we went about grabbing all 884 00:39:58,296 --> 00:40:00,016 of the data from Harvard dining website, 885 00:40:00,016 --> 00:40:03,296 Harvard dining's website, so that we now reexpose it 886 00:40:03,296 --> 00:40:05,656 to any student who wants it in CSE format 887 00:40:05,656 --> 00:40:08,826 or in Jason format via that Wiki page before. 888 00:40:08,826 --> 00:40:10,546 So I went to this website, and I said, wow, 889 00:40:10,766 --> 00:40:12,986 I'd really like to start screen scraping, 890 00:40:12,986 --> 00:40:14,966 as it's called-grabbing data from this website 891 00:40:15,186 --> 00:40:17,596 so I can get it into my own database, some turkey sausage, 892 00:40:17,596 --> 00:40:19,936 some egg beater, some egg whites, so I took a look 893 00:40:19,936 --> 00:40:22,026 at the source code for this page, and in the source code 894 00:40:22,026 --> 00:40:25,986 of this page is, all right, some HTML, or XHTML, 895 00:40:26,176 --> 00:40:29,066 and then I noticed, all right, let me search for sausage. 896 00:40:29,066 --> 00:40:31,236 So I knew that that's in the webpage, 897 00:40:31,506 --> 00:40:34,536 so here's my turkey sausage, and I realized that there seems 898 00:40:34,536 --> 00:40:35,906 to be a structure to this page. 899 00:40:35,906 --> 00:40:36,726 It's a bit messy. 900 00:40:36,916 --> 00:40:38,526 It's kind of indented all over the place, 901 00:40:38,776 --> 00:40:40,796 but notice that turkey sausage is inside 902 00:40:40,796 --> 00:40:42,346 of an anchor tag, a link. 903 00:40:42,566 --> 00:40:43,826 That's inside of a span. 904 00:40:44,006 --> 00:40:46,476 That's inside of a dib, but even more interesting is 905 00:40:46,476 --> 00:40:48,856 that that dib has sort of a special moniker. 906 00:40:48,856 --> 00:40:51,656 It's of class item wrap, and, sure enough, 907 00:40:51,656 --> 00:40:53,866 if I continued scrolling down through the file, 908 00:40:54,016 --> 00:40:54,976 pretty much any piece 909 00:40:54,976 --> 00:40:57,706 of food-here's egg beaters-was similarly inside 910 00:40:57,706 --> 00:40:59,526 of a dib whose class is item wrap. 911 00:40:59,726 --> 00:41:01,626 So I noticed this pattern, and I figured, oh, 912 00:41:01,846 --> 00:41:05,696 if I can now somehow go after this XHTML looking 913 00:41:05,696 --> 00:41:08,996 for this pattern, I can do what's called screen scrape. 914 00:41:09,306 --> 00:41:13,686 So I went to my command line, and I pulled up a little PHP. 915 00:41:13,686 --> 00:41:16,406 I pulled up my text editor, and I ended up writing something 916 00:41:16,406 --> 00:41:17,936 that looks a little something like this. 917 00:41:18,006 --> 00:41:20,896 And how all this code works doesn't matter so much now. 918 00:41:20,896 --> 00:41:23,416 I'm happy to send this to folks by email if you'd 919 00:41:23,416 --> 00:41:26,926 like to take a closer look, but, in a nutshell, I went ahead 920 00:41:26,926 --> 00:41:31,106 and I grabbed the URL, I pasted the URL from the browser 921 00:41:31,106 --> 00:41:35,026 into this script somewhere in a constant, and then I proceed 922 00:41:35,026 --> 00:41:38,646 to fetch that using file get contents or something similar 923 00:41:38,646 --> 00:41:40,546 which actually then goes and grabs the data, 924 00:41:40,546 --> 00:41:43,016 and then I did this trick and this is your little hint. 925 00:41:43,016 --> 00:41:46,196 If you ever have to do this in life, when you have XML data, 926 00:41:46,286 --> 00:41:47,596 there are ways of querying 927 00:41:47,596 --> 00:41:49,726 that XML data using a language called XPATH, 928 00:41:50,486 --> 00:41:53,286 and XPATH essentially lets you say something like this. 929 00:41:53,636 --> 00:41:56,206 If you want to get out all the dibs in the page, 930 00:41:56,436 --> 00:42:00,516 you use a query like slash HTML, slash body, 931 00:42:01,026 --> 00:42:04,516 and then you can do something like slash, slash, dib, 932 00:42:04,516 --> 00:42:07,746 and this expression, it's sort of like a file system path-c, 933 00:42:07,746 --> 00:42:08,626 colon, backslash 934 00:42:08,626 --> 00:42:12,426 or whatever-that path there will return to me an array of all 935 00:42:12,426 --> 00:42:14,416 of the dibs inside of the body, 936 00:42:14,416 --> 00:42:16,356 and so this slash notation is very similar 937 00:42:16,356 --> 00:42:17,756 in spirits any file system. 938 00:42:17,756 --> 00:42:21,126 So long story short, I wrote a script that searches 939 00:42:21,126 --> 00:42:22,576 through this source code, 940 00:42:22,576 --> 00:42:24,696 grabs all of the dibs, and then I check. 941 00:42:24,696 --> 00:42:26,296 Are you a type class item wrap? 942 00:42:26,406 --> 00:42:27,386 Are you? Are you? 943 00:42:27,546 --> 00:42:29,646 And then using very similar syntax then I pluck 944 00:42:29,646 --> 00:42:32,366 out turkey sausage and egg beaters and egg whites, 945 00:42:32,366 --> 00:42:36,416 and then finally I did an insert into my SQL tables. 946 00:42:36,416 --> 00:42:39,026 So the end result is that if you ever want to find 947 00:42:39,026 --> 00:42:41,986 out what's coming up for breakfast, 948 00:42:42,166 --> 00:42:46,016 you can execute a query of CS50 zone server, get back a CSB file 949 00:42:46,256 --> 00:42:50,556 that looks much more machine friendly, a CSB file with rows 950 00:42:50,556 --> 00:42:53,136 and columns and dates and food types and all of this. 951 00:42:53,366 --> 00:42:55,226 So, again, you now have the ability 952 00:42:55,226 --> 00:42:57,816 to at least identify potential problems, 953 00:42:57,816 --> 00:43:00,086 and hopefully now you have heard enough details that even 954 00:43:00,086 --> 00:43:03,106 if you have no idea about how to go about using XPATH, 955 00:43:03,566 --> 00:43:04,886 it's really just a Google search 956 00:43:04,886 --> 00:43:07,616 or Wikipedia article away at this point. 957 00:43:07,616 --> 00:43:11,186 Finally, we also had some fun this weekend given that so many 958 00:43:11,186 --> 00:43:13,196 of you have been diving into your own final projects, 959 00:43:13,196 --> 00:43:14,926 we decided to take our own map site, 960 00:43:15,176 --> 00:43:16,196 research from Mather House, 961 00:43:16,456 --> 00:43:19,176 and now we integrate Wikipedia articles automatically 962 00:43:19,176 --> 00:43:19,786 into the thing. 963 00:43:19,786 --> 00:43:21,256 Why? Just because. 964 00:43:21,256 --> 00:43:23,536 And also for official photographs of all 965 00:43:23,536 --> 00:43:25,576 of the buildings and so you get little pop ups like this 966 00:43:25,576 --> 00:43:27,316 from Mather House, and if you'd really 967 00:43:27,316 --> 00:43:30,746 like to engage dynamically in something like this and don't 968 00:43:30,746 --> 00:43:32,856 like the fact that Wikipedia's telling the world 969 00:43:32,856 --> 00:43:35,246 that Mather is the box that dumpster came in, 970 00:43:35,246 --> 00:43:40,496 quote, unquote, well hey. 971 00:43:40,496 --> 00:43:41,666 [Laughter] We don't sensor in 50. 972 00:43:41,666 --> 00:43:44,256 Well, hey if you don't like it, Matherites, go change it. 973 00:43:44,256 --> 00:43:46,546 We'll notice the change within an hour or so 974 00:43:46,546 --> 00:43:48,366 of it getting edited on Wikipedia, 975 00:43:48,866 --> 00:43:51,626 so perhaps we'll induce some changes to all the houses. 976 00:43:51,626 --> 00:43:54,486 We can, let's see what Lowell House has to say 977 00:43:54,486 --> 00:43:58,726 in Wikipedia...one of the twelve, dat, dat, dat. 978 00:43:58,866 --> 00:44:01,066 It's actually a very nice flattering article. 979 00:44:01,766 --> 00:44:04,556 So [laughter] Lowell House is a little nicer there. 980 00:44:04,556 --> 00:44:08,116 And then finally, did we do anything else? 981 00:44:08,186 --> 00:44:09,196 No. That's enough for now. 982 00:44:09,516 --> 00:44:11,676 So, hopefully, at this point in the story, you've filled 983 00:44:11,676 --> 00:44:13,496 out this form, yea or nay. 984 00:44:13,886 --> 00:44:16,406 So we had a few volunteers from staff, 985 00:44:16,406 --> 00:44:19,426 so could our staff contestants come on up? 986 00:44:19,876 --> 00:44:24,826 A few faces may look quite familiar, and really any 987 00:44:24,826 --> 00:44:26,556 of the staff who are seated here are welcome to come 988 00:44:26,556 --> 00:44:30,336 up on stage-the more the merrier, and now we need 989 00:44:30,336 --> 00:44:33,166 at least two, maybe three, of those less comfortable, 990 00:44:33,166 --> 00:44:36,186 more comfortable, or somewhere in between 991 00:44:36,376 --> 00:44:40,366 to take the remaining chairs up here for our finale quiz show 992 00:44:40,366 --> 00:44:42,646 of sorts, for which you, hopefully, 993 00:44:42,646 --> 00:44:43,556 just wrote the questions. 994 00:44:44,816 --> 00:44:51,376 Any volunteers who would like to match wits with the staff? 995 00:44:51,376 --> 00:44:51,906 >> Down here. 996 00:44:51,906 --> 00:44:52,146 >> David: Yep. 997 00:44:52,146 --> 00:44:52,776 Ok. Come on. 998 00:44:52,776 --> 00:44:55,946 Ok. You, too, and three, and is there someone down here? 999 00:44:56,346 --> 00:44:57,376 Four. Come on down. 1000 00:44:57,666 --> 00:44:58,646 All right. 1001 00:44:58,646 --> 00:45:00,226 I think we have enough chairs for everyone. 1002 00:45:00,386 --> 00:45:01,106 Oh we have five. 1003 00:45:01,166 --> 00:45:02,396 Fifth, fifth contestant? 1004 00:45:02,506 --> 00:45:04,016 Oh, ok. Five and six. 1005 00:45:04,046 --> 00:45:04,946 Come on up. 1006 00:45:04,946 --> 00:45:05,626 All right. 1007 00:45:05,626 --> 00:45:07,596 So it's now six versus four. 1008 00:45:08,066 --> 00:45:11,036 Let me go ahead and ask Jansu and the remaining TF's 1009 00:45:11,036 --> 00:45:12,746 who are a little too shy apparently to come on up. 1010 00:45:12,956 --> 00:45:15,216 Could you guys just collect the forms that people have filled 1011 00:45:15,216 --> 00:45:17,826 out and bring them on up front, ideally flipping them 1012 00:45:17,826 --> 00:45:19,716 for the right side based on what's been filled out? 1013 00:45:20,306 --> 00:45:21,206 Come on up. 1014 00:45:21,286 --> 00:45:22,086 That's very nice. 1015 00:45:28,136 --> 00:45:28,606 Oscar. [Background noise] All right. 1016 00:45:29,006 --> 00:45:30,676 So, can you grab a couple, two chairs? 1017 00:45:33,306 --> 00:45:36,336 In just a moment, you'll see another website we've been 1018 00:45:36,336 --> 00:45:39,636 working on which looks a little like this. 1019 00:45:40,416 --> 00:45:42,736 Very high tech. 1020 00:45:43,606 --> 00:45:45,496 This is all HTML based, 1021 00:45:46,636 --> 00:45:49,946 and in just...this is the biggest Jeopardy competition 1022 00:45:49,946 --> 00:45:50,456 we've ever had. 1023 00:45:50,456 --> 00:45:59,746 Ok. So in just a moment, we will have the following. 1024 00:45:59,746 --> 00:46:05,746 >> And now here is the host of Jeopardy. 1025 00:46:05,846 --> 00:46:06,266 And now here... 1026 00:46:06,266 --> 00:46:06,333 >> David: Oh. 1027 00:46:06,333 --> 00:46:07,206 My iPod is on loop. 1028 00:46:07,326 --> 00:46:08,826 Awkward. All right. 1029 00:46:10,026 --> 00:46:11,226 Normally that sounds better. 1030 00:46:11,266 --> 00:46:11,676 All right. 1031 00:46:11,856 --> 00:46:12,256 Here we go. 1032 00:46:12,256 --> 00:46:15,386 >> [Background noise] This is Jeopardy. 1033 00:46:17,306 --> 00:46:18,736 >> David: Thank you. 1034 00:46:19,436 --> 00:46:19,816 [Background noise] Thank you. 1035 00:46:21,436 --> 00:46:21,656 Any [inaudible]? 1036 00:46:21,656 --> 00:46:22,326 All right. 1037 00:46:22,676 --> 00:46:25,576 So ok you don't have to stand there awkwardly. 1038 00:46:25,576 --> 00:46:26,316 You may take your seats. 1039 00:46:27,556 --> 00:46:29,456 So we have just a few minutes before we adjourn 1040 00:46:29,456 --> 00:46:30,946 to some cake downstairs. 1041 00:46:30,946 --> 00:46:37,506 What you have in front of you are two huge teams...oh no. 1042 00:46:37,506 --> 00:46:41,136 We can get another...oh, get a chair. 1043 00:46:41,266 --> 00:46:43,956 Yeah. Thank you. 1044 00:46:45,566 --> 00:46:47,236 Thank you. 1045 00:46:48,176 --> 00:46:52,796 Ok. So, why don't we very quickly go down the row here 1046 00:46:52,866 --> 00:46:56,096 and say who you are and say one interesting thing. 1047 00:46:56,096 --> 00:46:57,346 Interpret as you will. 1048 00:46:57,626 --> 00:47:01,226 You. Oh, and be sure to speak very deliberately 1049 00:47:01,226 --> 00:47:01,856 into the speakers. 1050 00:47:02,776 --> 00:47:09,546 >> Matthew: My name's Matthew [inaudible], and I'm a CS50 TF 1051 00:47:10,046 --> 00:47:14,906 >> Rose: Hi, I'm Rose Cowl, and I'm also a CS50 TF. 1052 00:47:15,376 --> 00:47:16,056 >> David: Excellent. 1053 00:47:16,356 --> 00:47:18,016 [Laughter] Keep it going. 1054 00:47:18,416 --> 00:47:18,686 >> Mike: Hi. 1055 00:47:18,686 --> 00:47:20,116 Mike, and I'm also a CS50 TF. 1056 00:47:20,116 --> 00:47:23,656 >> David: Ok, this is no longer interesting. 1057 00:47:23,656 --> 00:47:23,723 [Laughter] 1058 00:47:23,723 --> 00:47:28,446 >> Greg: Hey, I'm Greg, and I enjoy making juice. 1059 00:47:28,736 --> 00:47:32,626 >> Kevin: Hi, I'm Kevin, and I'm Greg's roommate. 1060 00:47:34,326 --> 00:47:35,406 >> Robert: Hi, I'm Robert, 1061 00:47:35,706 --> 00:47:38,116 and I thought it was really interesting how today 1062 00:47:38,116 --> 00:47:42,646 in EC10 Professor Mankiw alluded to a set with measure zero. 1063 00:47:42,646 --> 00:47:43,596 [Laughter] 1064 00:47:43,596 --> 00:47:45,976 >> John: Hi, I'm John. 1065 00:47:46,016 --> 00:47:48,146 I'm from Liver House. 1066 00:47:48,146 --> 00:47:49,486 >> Michael: Hi, I'm Michael. 1067 00:47:50,066 --> 00:47:53,216 I'm an econ concentrator who hates econ. 1068 00:47:53,216 --> 00:47:53,496 [Laughter] 1069 00:47:53,496 --> 00:47:55,856 >> Josh: Hi, I'm Josh. 1070 00:47:56,046 --> 00:47:58,326 I have conducted an orchestra while wearing a gorilla suit. 1071 00:47:58,326 --> 00:47:58,946 [Laughter] 1072 00:47:58,946 --> 00:48:00,516 >> I'm [inaudible.] I'm from New Mexico, 1073 00:48:00,736 --> 00:48:04,596 and some people don't realize it's part of the United States. 1074 00:48:04,596 --> 00:48:05,086 [Laughter] 1075 00:48:05,086 --> 00:48:05,276 >> Anna: I'm Anna. 1076 00:48:05,366 --> 00:48:08,476 I'm from Utah, which used 1077 00:48:08,476 --> 00:48:09,936 to not want any part of the United States. 1078 00:48:09,936 --> 00:48:10,516 [Laughter] 1079 00:48:10,516 --> 00:48:11,646 >> David: Very nice. 1080 00:48:11,646 --> 00:48:13,496 And we have Jensu [inaudible] who's going 1081 00:48:13,496 --> 00:48:15,556 to run our scoreboard here. 1082 00:48:15,556 --> 00:48:17,616 We'll have the staff score on the left, 1083 00:48:17,616 --> 00:48:19,196 the students' score on the right. 1084 00:48:19,456 --> 00:48:21,846 We did a little coin toss before class, 1085 00:48:22,116 --> 00:48:23,536 and the students won the toss, 1086 00:48:23,756 --> 00:48:25,856 which means you students have control of the board. 1087 00:48:25,856 --> 00:48:29,236 We're kind of going to butcher the logistics of Jeopardy here 1088 00:48:29,236 --> 00:48:31,116 and kind of just go with what works. 1089 00:48:31,116 --> 00:48:33,726 So, with that said, go ahead and pick a category. 1090 00:48:33,986 --> 00:48:35,566 If you need a little cheat sheet, 1091 00:48:35,596 --> 00:48:38,886 you probably...we'll get you some blank sheets of paper, 1092 00:48:38,886 --> 00:48:39,886 so you know what week was what. 1093 00:48:40,116 --> 00:48:43,446 Go ahead and pick a week and a dollar amount. 1094 00:48:43,926 --> 00:48:45,106 Anyone on the students' team. 1095 00:48:45,626 --> 00:48:48,236 >> Week 2, 1000. 1096 00:48:48,646 --> 00:48:51,676 >> Week 2 for 1000, going in strong. 1097 00:48:52,066 --> 00:48:58,956 So your question for week 2-should've said write legibly. 1098 00:48:58,956 --> 00:49:04,496 Your question for week 2...ok we'll start off with this. 1099 00:49:05,036 --> 00:49:07,876 Rock[assumed spelling] 13 plus rock 13 equals...first hand 1100 00:49:07,876 --> 00:49:08,316 up gets it. 1101 00:49:09,196 --> 00:49:09,906 Ok, students? 1102 00:49:10,436 --> 00:49:11,026 >> Rock zero. 1103 00:49:12,346 --> 00:49:13,916 >> David: Actually the answer is awesomeness. 1104 00:49:17,696 --> 00:49:18,786 [Laughter] We'll give it to them. 1105 00:49:18,786 --> 00:49:19,936 So Jansen will be our judge. 1106 00:49:19,936 --> 00:49:21,426 A thousand dollars to the students. 1107 00:49:21,426 --> 00:49:24,046 Ok, and you're still in control of the board. 1108 00:49:27,476 --> 00:49:29,696 We came prepared with this. 1109 00:49:30,916 --> 00:49:31,496 [Applause] Very nice. 1110 00:49:32,776 --> 00:49:33,836 Ok, you're in control. 1111 00:49:33,836 --> 00:49:35,776 What would you like next? 1112 00:49:35,876 --> 00:49:37,666 [Background noise] IQuality [assumed spelling] is 1113 00:49:37,666 --> 00:49:40,056 on automatic play now. 1114 00:49:40,106 --> 00:49:44,996 What the? [Background noise] Not very good with technology. 1115 00:49:44,996 --> 00:49:49,366 Ok, students, what would you like? 1116 00:49:49,986 --> 00:49:50,836 >> Week 3, 800 1117 00:49:50,996 --> 00:49:52,396 >> David: Oh wait, I'm not doing this right, am I? 1118 00:49:52,836 --> 00:49:55,046 Ok. Week 2, what? 1119 00:49:55,166 --> 00:49:55,546 Sorry? 1120 00:49:55,856 --> 00:49:56,876 >> Week 3, 1000. 1121 00:49:57,216 --> 00:49:58,456 >> David: Week 3 for 1000? 1122 00:49:58,946 --> 00:50:00,036 Ok. Week 3. 1123 00:50:00,036 --> 00:50:06,136 Your question is what is the lower bound 1124 00:50:06,136 --> 00:50:08,426 on the running time of bubble sort? 1125 00:50:09,236 --> 00:50:09,356 Matt. 1126 00:50:09,956 --> 00:50:11,266 >> Matt: Omega of N. 1127 00:50:11,436 --> 00:50:15,656 >> David: Omega of N. Audience, what do you think? 1128 00:50:17,196 --> 00:50:18,836 [Background noise] Who's going to answer? 1129 00:50:20,006 --> 00:50:22,386 Yes? No? Ok, yes. 1130 00:50:23,156 --> 00:50:25,686 Do we want this to evolve into one of these things where we... 1131 00:50:26,036 --> 00:50:30,366 [Background noise] Uh, all right. 1132 00:50:31,306 --> 00:50:32,856 Sanders has never been so proud. 1133 00:50:32,906 --> 00:50:34,216 All right. 1134 00:50:34,386 --> 00:50:35,486 TF's, you are in control. 1135 00:50:35,486 --> 00:50:36,836 What category would you like? 1136 00:50:39,496 --> 00:50:42,676 >> Week 4 for 1000. 1137 00:50:42,676 --> 00:50:45,096 >> David: Week 4 for 1000. 1138 00:50:45,486 --> 00:50:47,716 What happens if you don't allocate memory 1139 00:50:47,716 --> 00:50:49,396 before signing...Robert? 1140 00:50:49,831 --> 00:50:51,831 >> [inaudible] 1141 00:50:52,266 --> 00:50:53,066 >> David: Bad things. 1142 00:50:55,596 --> 00:50:58,896 [Laughter] Very good for 1000. 1143 00:50:58,956 --> 00:51:00,106 Students are in control. 1144 00:51:02,346 --> 00:51:05,916 Oh, sorry...I'm not...there we go. 1145 00:51:06,186 --> 00:51:06,686 What's left? 1146 00:51:06,686 --> 00:51:09,736 Everything except those 2. 1147 00:51:10,056 --> 00:51:12,286 Higher? Oh, was it week 4? 1148 00:51:12,416 --> 00:51:13,066 All right. 1149 00:51:13,066 --> 00:51:14,866 Well, there's no week 3 for 1000 any more. 1150 00:51:16,066 --> 00:51:16,626 User error. 1151 00:51:19,036 --> 00:51:21,576 >> Week 0 for 1000. 1152 00:51:21,576 --> 00:51:23,966 >> David: Well 0 for 1000. 1153 00:51:24,026 --> 00:51:24,476 All right. 1154 00:51:24,856 --> 00:51:27,446 So, oh my goodness. 1155 00:51:27,906 --> 00:51:31,506 What is...this is really not week 0 material, but ok. 1156 00:51:31,506 --> 00:51:34,476 What is the ASCII value of the open curly brace? 1157 00:51:34,816 --> 00:51:41,606 [Laughter] No, funnier is, who knows this? 1158 00:51:41,726 --> 00:51:42,176 Yes, students. 1159 00:51:42,406 --> 00:51:46,566 >> Cast, open curly brace. 1160 00:51:46,566 --> 00:51:46,633 >> David: Ooh. 1161 00:51:47,636 --> 00:51:49,256 >> No. 1162 00:51:50,216 --> 00:51:50,646 >> David: No? 1163 00:51:51,136 --> 00:51:54,306 Rejected, so that's minus 1000 for students. 1164 00:51:54,306 --> 00:51:55,266 It's been rejected. 1165 00:51:56,756 --> 00:52:01,586 Audience? [Background noise] 198? 1166 00:52:01,906 --> 00:52:03,816 Is that...90? 1167 00:52:03,816 --> 00:52:05,056 No? I don't think so. 1168 00:52:05,336 --> 00:52:06,266 Minus 1000. 1169 00:52:07,096 --> 00:52:08,556 [Laughter] Anyone? 1170 00:52:09,046 --> 00:52:09,856 Who wrote the question? 1171 00:52:09,856 --> 00:52:10,626 Come on, fess up. 1172 00:52:10,626 --> 00:52:12,616 >> One, two, three. 1173 00:52:12,896 --> 00:52:14,676 >> David: Oh, wait. 1174 00:52:15,416 --> 00:52:18,236 Huh? What's the answer? 1175 00:52:18,436 --> 00:52:21,616 123 is in fact...I'm not going 1176 00:52:21,616 --> 00:52:23,306 to throw correctly, but here you go. 1177 00:52:24,326 --> 00:52:30,776 Wow. [Applause] Nice. 1178 00:52:32,016 --> 00:52:34,186 Um, yeah I think we should take off the points. 1179 00:52:34,476 --> 00:52:36,136 Yeah, yeah, they were wrong. 1180 00:52:36,986 --> 00:52:38,656 So it's tied at 1000. 1181 00:52:38,656 --> 00:52:40,976 We have time for a couple more questions in Single Jeopardy. 1182 00:52:40,976 --> 00:52:44,666 What would you like your next category to be? 1183 00:52:45,336 --> 00:52:47,556 >> 1000. 1184 00:52:48,366 --> 00:52:50,486 >> David: Week 1 for 1000. 1185 00:52:50,486 --> 00:52:56,486 Your question here is, oh...what does GCC stand for? 1186 00:52:57,306 --> 00:52:59,336 Greg's hand went up first and then went down quickly. 1187 00:52:59,336 --> 00:52:59,536 [Laughter] 1188 00:52:59,536 --> 00:53:03,806 >> GNU Compilation Compiler...GNU C Compiler. 1189 00:53:04,306 --> 00:53:04,606 >> David: Audience? 1190 00:53:05,676 --> 00:53:11,246 [Background noise] Did you know that though? 1191 00:53:11,666 --> 00:53:13,936 Yes it's true, so, 1000, that is correct. 1192 00:53:13,936 --> 00:53:17,866 The GNU C Compiler, so extra credit if you go figure 1193 00:53:17,866 --> 00:53:19,666 out what the GNU stands for some day. 1194 00:53:20,286 --> 00:53:21,086 >> GNU's not UNIX. 1195 00:53:21,766 --> 00:53:23,616 >> David: Ok, you're all very smart now. 1196 00:53:23,616 --> 00:53:24,486 All right. 1197 00:53:25,216 --> 00:53:27,186 Ok, staff is in the lead by 2000. 1198 00:53:27,186 --> 00:53:28,996 We have time for one more single Jeopardy question. 1199 00:53:28,996 --> 00:53:30,256 What's it going to be, staff? 1200 00:53:30,966 --> 00:53:31,736 >> Something 800. 1201 00:53:31,836 --> 00:53:33,236 Week 4, 800. 1202 00:53:33,236 --> 00:53:33,736 >> David: Oh sorry. 1203 00:53:34,366 --> 00:53:37,526 >> Week 4, 800. 1204 00:53:37,526 --> 00:53:37,726 >> David: What? 1205 00:53:37,726 --> 00:53:38,936 Week 4 for 800. 1206 00:53:38,936 --> 00:53:43,486 So week 4 for 800, and your question's going 1207 00:53:43,556 --> 00:53:48,156 to be...week 4 for 800. 1208 00:53:49,156 --> 00:53:50,926 Blank. Week. 1209 00:53:51,056 --> 00:53:53,896 What? I do need help. 1210 00:53:53,896 --> 00:53:59,456 What, oh, what is the name...we're going 1211 00:53:59,456 --> 00:54:00,436 to take today very seriously... 1212 00:54:00,536 --> 00:54:04,256 what is the name of the pointer video we watched from Stanford? 1213 00:54:04,996 --> 00:54:07,116 [Laughter] I saw Rose's hand. 1214 00:54:07,966 --> 00:54:08,726 Yep? 1215 00:54:09,946 --> 00:54:11,726 >> Blinky's Pointer Fun? 1216 00:54:11,726 --> 00:54:13,226 >> David: Judges? 1217 00:54:13,226 --> 00:54:15,076 [Background noise] Rejected for minus 800. 1218 00:54:15,616 --> 00:54:16,306 Students? 1219 00:54:17,926 --> 00:54:20,976 >> Fun with pointers? 1220 00:54:20,976 --> 00:54:21,616 >> David: No. 1221 00:54:22,676 --> 00:54:27,826 [Laughter] And the answer was Pointer Fun with Blinky. 1222 00:54:28,076 --> 00:54:30,756 Who knows that? 1223 00:54:30,756 --> 00:54:31,836 All right. 1224 00:54:31,906 --> 00:54:35,226 So now we transition to Double Jeopardy 1225 00:54:35,226 --> 00:54:37,516 where the scores on the board double. 1226 00:54:37,776 --> 00:54:39,136 Why don't we take a moment 1227 00:54:39,136 --> 00:54:43,176 to ask students how's the game going for you thus far? 1228 00:54:43,176 --> 00:54:45,636 If you'd like to step up and field this kind of question. 1229 00:54:46,676 --> 00:54:48,056 What's your strategy moving forward? 1230 00:54:48,486 --> 00:54:48,716 >> Sudoku? 1231 00:54:49,186 --> 00:54:51,216 >> David: What was that? 1232 00:54:52,666 --> 00:54:54,726 >> We'll just write some sudoku? 1233 00:54:56,356 --> 00:54:58,026 >> David: And, staff, what's your strategy 1234 00:54:58,026 --> 00:54:59,296 for taking these guys down? 1235 00:54:59,326 --> 00:55:02,416 >> We're just going to continue dominating, David. 1236 00:55:02,416 --> 00:55:04,566 I think this is working for us pretty well thus far and, 1237 00:55:04,566 --> 00:55:05,846 you know, we're just going to stick to it. 1238 00:55:05,906 --> 00:55:08,566 >> David: Yes, your $200 lead is massive here. 1239 00:55:09,206 --> 00:55:09,676 All right. 1240 00:55:09,676 --> 00:55:11,346 So, let's see. 1241 00:55:11,346 --> 00:55:13,906 I think the staffers still in control? 1242 00:55:13,966 --> 00:55:16,726 So, staff, what's your choice of weeks here? 1243 00:55:17,116 --> 00:55:17,976 New weeks on the board. 1244 00:55:18,516 --> 00:55:27,696 [ Background conversation ] 1245 00:55:28,196 --> 00:55:30,356 Yes, Matt, 2000 it is. 1246 00:55:31,926 --> 00:55:34,276 [Laughter] So, week 10 for 2000. 1247 00:55:34,396 --> 00:55:35,446 Oh, softball. 1248 00:55:35,446 --> 00:55:37,246 What does CPU stand for? 1249 00:55:39,176 --> 00:55:41,396 Jensu picked the students. 1250 00:55:42,176 --> 00:55:43,026 Ok, students? 1251 00:55:43,096 --> 00:55:44,666 >> Central processing unit? 1252 00:55:44,666 --> 00:55:45,036 >> David: Audience? 1253 00:55:45,036 --> 00:55:45,566 >> Yes. 1254 00:55:45,766 --> 00:55:46,216 >> David: Yes. 1255 00:55:46,216 --> 00:55:47,166 Very nicely done. 1256 00:55:47,166 --> 00:55:51,106 So now it's 3000 to 1200, Matt. 1257 00:55:51,426 --> 00:55:52,806 Students, what's it going to be? 1258 00:55:52,806 --> 00:55:55,366 Time for a couple more questions. 1259 00:55:56,546 --> 00:55:58,416 Students? Oh, sorry. 1260 00:55:58,416 --> 00:56:02,736 What's it going to be? 1261 00:56:04,126 --> 00:56:07,106 The one with the... 1262 00:56:07,106 --> 00:56:08,356 [background noise]. 1263 00:56:08,356 --> 00:56:09,806 Oh, you want to know what this is. 1264 00:56:10,256 --> 00:56:11,516 Well, wait, I came prepared. 1265 00:56:11,516 --> 00:56:14,536 That's going to be an audio daily double, 1266 00:56:14,536 --> 00:56:25,856 and that period is my clue to myself to remember that. 1267 00:56:25,856 --> 00:56:26,556 [Laughter] Ok. 1268 00:56:27,106 --> 00:56:28,566 One moment. 1269 00:56:29,276 --> 00:56:32,226 Got to find...ummm. 1270 00:56:32,226 --> 00:56:36,216 Ok. For $1200, who is...let's see. 1271 00:56:36,216 --> 00:56:37,206 This is the students. 1272 00:56:37,806 --> 00:56:38,676 Name this tune. 1273 00:56:38,776 --> 00:56:44,716 [Background noise] I think the students get the chance 1274 00:56:44,716 --> 00:56:45,546 to answer this. 1275 00:56:46,206 --> 00:56:50,506 This is the Hamster Dance for $1200. 1276 00:56:53,446 --> 00:56:55,416 All right we have time for one more question 1277 00:56:55,416 --> 00:56:58,446 before...that's 1200. 1278 00:56:58,826 --> 00:56:59,296 All right. 1279 00:56:59,376 --> 00:57:01,056 Matt, it's time to dominate. 1280 00:57:01,436 --> 00:57:02,526 Students, you are in control. 1281 00:57:04,186 --> 00:57:06,306 >> Week 9, 2000 1282 00:57:06,306 --> 00:57:08,586 >> David: Week 9 for $2000. 1283 00:57:08,586 --> 00:57:13,166 In week 9, your question is going to be...let's see 1284 00:57:13,166 --> 00:57:14,456 if we can pick a winner here. 1285 00:57:14,526 --> 00:57:17,196 Your question is going 1286 00:57:17,376 --> 00:57:22,096 to [laughter]...this is just a question...this is just 1287 00:57:22,216 --> 00:57:23,136 an opinion. 1288 00:57:23,136 --> 00:57:25,796 Is the music played during lecture breaks pseudo random? 1289 00:57:25,856 --> 00:57:27,116 Justify. [Laughter] Ok. 1290 00:57:27,116 --> 00:57:29,266 All right. 1291 00:57:31,066 --> 00:57:35,526 No, that's not the question. 1292 00:57:36,326 --> 00:57:42,506 The question will be...all right...this person drew 1293 00:57:42,506 --> 00:57:47,396 pictures-very well, including a toilet, a hammer, a tree, 1294 00:57:47,396 --> 00:57:49,806 a star, a rainbow, a lollipop. 1295 00:57:51,406 --> 00:57:52,096 That was a [laughter]. 1296 00:57:52,646 --> 00:57:56,776 Ok. Glad you enjoyed the first part of lecture. 1297 00:57:57,136 --> 00:57:57,606 All right. 1298 00:57:57,606 --> 00:57:59,316 Finally, week , what are we in, 9? 1299 00:57:59,766 --> 00:58:01,416 So your question is going 1300 00:58:01,416 --> 00:58:05,456 to be...your question for week 9...ok. 1301 00:58:05,456 --> 00:58:06,776 Perfect. This is quality. 1302 00:58:06,816 --> 00:58:09,896 Week 9. First hand up gets it Ready? 1303 00:58:10,266 --> 00:58:11,876 How awesome is Ajax? 1304 00:58:12,336 --> 00:58:12,886 Max. 1305 00:58:13,116 --> 00:58:14,606 >> Max: Really, really awesome, David. 1306 00:58:14,816 --> 00:58:15,266 >> David: Very. 1307 00:58:15,926 --> 00:58:16,396 [Laughter] That's ok. 1308 00:58:16,646 --> 00:58:26,416 Why don't we go ahead and...why don't we go ahead 1309 00:58:26,416 --> 00:58:29,676 and officially adjourn here after Double Jeopardy 1310 00:58:29,676 --> 00:58:32,486 because yeah...that just...yeah. 1311 00:58:32,606 --> 00:58:34,276 I think it's time for cake. 1312 00:58:34,276 --> 00:58:36,346 Congratulations on a wonderful semester. 1313 00:58:37,866 --> 00:58:40,116 We will see you downstairs in the pub 1314 00:58:40,116 --> 00:58:43,966 if you would like a snack. 1315 00:58:43,966 --> 00:58:44,033 [Applause] 1316 00:58:44,033 --> 00:58:53,000 [ Music ] 1317 00:58:53,516 --> 00:58:55,516 [ Background conversation] 1318 00:58:56,016 --> 00:59:03,006 [ Music ]