· 7 years ago · Feb 20, 2019, 02:06 AM
11
200:00:19,994 --> 00:00:22,760
3SPEAKER 1: This is CS 50.
4
52
600:00:22,760 --> 00:00:27,120
7So I was where you are now some years ago, and when I was of freshman at the
8
93
1000:00:27,120 --> 00:00:32,000
11time, I wasn't really on this path of doing computers science, of doing
12
134
1400:00:32,000 --> 00:00:32,490
15engineering.
16
175
1800:00:32,490 --> 00:00:35,780
19Indeed, I came into this place as a government concentrator.
20
216
2200:00:35,780 --> 00:00:38,910
23I'd been in high school, a kid who liked things like history.
24
257
2600:00:38,910 --> 00:00:41,940
27I liked constitutional law, kind of English and math, so kind of
28
298
3000:00:41,940 --> 00:00:45,840
31well-rounded, but didn't necessarily know things that I hadn't been taught
32
339
3400:00:45,840 --> 00:00:46,520
35in high school.
36
3710
3800:00:46,520 --> 00:00:49,570
39And so freshman year, I had this trepidation, whereby even though I
40
4111
4200:00:49,570 --> 00:00:53,400
43liked computers, play computer games and the like, I certainly never
44
4512
4600:00:53,400 --> 00:00:57,120
47thought of myself as a computer person, a computer scientist, and
48
4913
5000:00:57,120 --> 00:00:59,610
51frankly, I thought my friends in high school who were taking computer
52
5314
5400:00:59,610 --> 00:01:03,990
55science were a bit of geeks.
56
5715
5800:01:03,990 --> 00:01:08,880
59>> And yet, when I got here on campus, there was this course, CS 50, and at
60
6116
6200:01:08,880 --> 00:01:12,620
63the time, it had this reputation of really being something to beware.
64
6517
6600:01:12,620 --> 00:01:13,690
67It was a good course.
68
6918
7000:01:13,690 --> 00:01:15,360
71It was a fun course.
72
7319
7400:01:15,360 --> 00:01:18,970
75But you had to actually get that foot in the door.
76
7720
7800:01:18,970 --> 00:01:22,090
79And even I did not cross that threshold freshman year.
80
8121
8200:01:22,090 --> 00:01:25,590
83And I went on my way being a government concentrator, going through
84
8522
8600:01:25,590 --> 00:01:28,787
87as many of the prerequisites as I could, cross counting things for gen
88
8923
9000:01:28,787 --> 00:01:32,340
91ed or core and the like, and then sophomore year, for some reason, I got
92
9324
9400:01:32,340 --> 00:01:35,580
95up the nerve to step foot in science center B, where CS 50.
96
9725
9800:01:35,580 --> 00:01:38,970
99A very famous computer scientist by the name of Brian Kernighan was
100
10126
10200:01:38,970 --> 00:01:44,020
103teaching here that year, and even then, I was only willing to actually
104
10527
10600:01:44,020 --> 00:01:47,720
107fill out my study card by taking this class pass-fail.
108
10928
11000:01:47,720 --> 00:01:50,140
111I looked around me, and I figured everyone in this room's got to know
112
11329
11400:01:50,140 --> 00:01:52,880
115way more about computer science, about programming, about computers.
116
11730
11800:01:52,880 --> 00:01:56,090
119Everyone must be programming in this room since they were 12, but indeed,
120
12131
12200:01:56,090 --> 00:01:57,470
123that wasn't the case.
124
12532
12600:01:57,470 --> 00:02:01,600
127And so the very last day, the fifth Monday of the semester that I take
128
12933
13000:02:01,600 --> 00:02:05,300
131this leap and change from pass-fail to a letter grade, and end up changing my
132
13334
13400:02:05,300 --> 00:02:07,730
135concentration that same day to computer science.
136
13735
13800:02:07,730 --> 00:02:10,630
139>> Now that's not our objective in this class, to turn you all into computer
140
14136
14200:02:10,630 --> 00:02:14,600
143science concentrators, but really, to propose that there's this opportunity
144
14537
14600:02:14,600 --> 00:02:18,630
147in this field and in other fields with which you might be quite unfamiliar,
148
14938
15000:02:18,630 --> 00:02:21,920
151given that high schools typically follow a fairly standard curricular
152
15339
15400:02:21,920 --> 00:02:26,170
155path, but to venture in, in CS 50, into new waters.
156
15740
15800:02:26,170 --> 00:02:30,460
159And if you are sitting here today, thinking you don't actually belong, so
160
16141
16200:02:30,460 --> 00:02:34,110
163do most of the people to your right and to your left.
164
16542
16600:02:34,110 --> 00:02:39,970
167Indeed, last year, 76% of the students in this class had no prior experience.
168
16943
17000:02:39,970 --> 00:02:43,510
171So contrary to what you might think, most of the people sitting around you
172
17344
17400:02:43,510 --> 00:02:47,130
175today do not, in fact, have any prior experience.
176
17745
17800:02:47,130 --> 00:02:52,030
17918% have taken one CS class, and 6% have taken two or more.
180
18146
18200:02:52,030 --> 00:02:55,300
183Meanwhile, we ask out students every year to describe themselves in terms
184
18547
18600:02:55,300 --> 00:02:57,760
187of comfort level, and this is--
188
18948
19000:02:57,760 --> 00:02:59,010
191there's no one definition of this.
192
19349
19400:02:59,010 --> 00:03:02,480
195You just kind of know it, if you're not very comfortable in CS 50.
196
19750
19800:03:02,480 --> 00:03:07,250
199And last year, we had 55% in this green pie slice here, self-describing
200
20151
20200:03:07,250 --> 00:03:10,640
203as less comfortable students who frankly, we had no idea why'd they
204
20552
20600:03:10,640 --> 00:03:14,800
207shop the course on that first day, but the same 55% remained with us until
208
20953
21000:03:14,800 --> 00:03:19,270
211term's end, as did 35%, who were somewhere in between those more
212
21354
21400:03:19,270 --> 00:03:22,100
215comfortable and those less comfortable.
216
21755
21800:03:22,100 --> 00:03:23,490
219>> So what is computer science?
220
22156
22200:03:23,490 --> 00:03:26,630
223Well, in high school, and really, more generally out there these days,
224
22557
22600:03:26,630 --> 00:03:29,740
227there's this perception or this misconception that computer science is
228
22958
23000:03:29,740 --> 00:03:30,400
231programming.
232
23359
23400:03:30,400 --> 00:03:33,550
235And that's absolutely one aspect of computer science, but programming,
236
23760
23800:03:33,550 --> 00:03:36,490
239whatever the language is, is really just a tool that computer scientists
240
24161
24200:03:36,490 --> 00:03:39,890
243use to solve problems, either in the domain of computer science, or
244
24562
24600:03:39,890 --> 00:03:42,990
247increasingly these days, in the physical sciences, the natural
248
24963
25000:03:42,990 --> 00:03:45,890
251sciences, in medicine, in the humanities, to analyze
252
25364
25400:03:45,890 --> 00:03:47,320
255large sets of data.
256
25765
25800:03:47,320 --> 00:03:51,070
259Anywhere now there is computer and data, there's an opportunity to apply
260
26166
26200:03:51,070 --> 00:03:54,400
263lessons learned in a class like CS 50.
264
26567
26600:03:54,400 --> 00:03:57,490
267>> So let's solve a problem that a computer scientist might go about
268
26968
27000:03:57,490 --> 00:04:02,370
271solving, and try to put some jargon, put some conceptual framework around
272
27369
27400:04:02,370 --> 00:04:05,420
275what might otherwise be some fairly abstract ideas.
276
27770
27800:04:05,420 --> 00:04:07,370
279So this is a telephone.
280
28171
28200:04:07,370 --> 00:04:08,840
283You don't see these things too often.
284
28572
28600:04:08,840 --> 00:04:11,910
287The college still seems to have these in the houses and dormitories, but
288
28973
29000:04:11,910 --> 00:04:14,970
291back in the day, when you wanted to use a phone like this, there was no
292
29374
29400:04:14,970 --> 00:04:16,760
295electronic address book in your cell phone.
296
29775
29800:04:16,760 --> 00:04:20,250
299Rather, you pulled up something known as a phone book, and these phone books
300
30176
30200:04:20,250 --> 00:04:23,110
303had about 1,000 pages typically.
304
30577
30600:04:23,110 --> 00:04:26,850
307They were sorted from A to Z, and you simply had to find the right page to
308
30978
31000:04:26,850 --> 00:04:30,150
311find the person you're looking for in order to find their name and their
312
31379
31400:04:30,150 --> 00:04:31,020
315telephone number.
316
31780
31800:04:31,020 --> 00:04:33,120
319Now how do you go about looking up someone in this book?
320
32181
32200:04:33,120 --> 00:04:35,800
323>> Suppose my goal is to give my friend Mike Smith a call.
324
32582
32600:04:35,800 --> 00:04:37,820
327Well, how do I go about finding Mike Smith?
328
32983
33000:04:37,820 --> 00:04:42,370
331Well, a very reasonable approach, if naive and inefficient, would be start
332
33384
33400:04:42,370 --> 00:04:47,690
335here, and start flipping to page four, to page five, to page six, and to sort
336
33785
33800:04:47,690 --> 00:04:50,930
339of linearly, along a straight line, go through this phone book, and even
340
34186
34200:04:50,930 --> 00:04:54,010
343though it's going to be incredibly tedious, if Mike Smith is in this
344
34587
34600:04:54,010 --> 00:04:57,480
347book, I'm eventually going to reach him when I finally flip to the S
348
34988
35000:04:57,480 --> 00:04:58,790
351section of this book.
352
35389
35400:04:58,790 --> 00:05:01,240
355Now, of course, you don't need to be a computer scientist to know that this
356
35790
35800:05:01,240 --> 00:05:02,980
359is a stupid way of solving this problem.
360
36191
36200:05:02,980 --> 00:05:04,620
363What would a typical human being do?
364
36592
36600:05:08,430 --> 00:05:09,330
367Well done.
368
36993
37000:05:09,330 --> 00:05:11,370
371So you would flip to the middle, right?
372
37394
37400:05:11,370 --> 00:05:14,970
375So you'd flip roughly to the middle, look here, and I seem to find myself
376
37795
37800:05:14,970 --> 00:05:16,660
379in the M section.
380
38196
38200:05:16,660 --> 00:05:19,880
383OK, so M is clearly not what I'm looking for.
384
38597
38600:05:19,880 --> 00:05:23,150
387Mike's to the right, so to speak, of this section, and as some of you have
388
38998
39000:05:23,150 --> 00:05:27,740
391seen before, we can literally now proceed to tear this
392
39399
39400:05:27,740 --> 00:05:28,990
395problem in a half.
396
397100
39800:05:33,870 --> 00:05:35,060
399>> You really shouldn't be that impressed.
400
401101
40200:05:35,060 --> 00:05:36,990
403Tearing it down the seam is actually not that hard.
404
405102
40600:05:36,990 --> 00:05:40,040
407The real people do it this way, but down the seam, we
408
409103
41000:05:40,040 --> 00:05:41,400
411now have two problems.
412
413104
41400:05:41,400 --> 00:05:44,800
415Each of which is half as big, and we can literally throw that half of the
416
417105
41800:05:44,800 --> 00:05:45,560
419problem away.
420
421106
42200:05:45,560 --> 00:05:48,590
423Now we're left not with 1,000 pages, but say, 500.
424
425107
42600:05:48,590 --> 00:05:49,580
427So now what do I do?
428
429108
43000:05:49,580 --> 00:05:53,030
431Well, typical human will go roughly in the middle again, and I find myself at
432
433109
43400:05:53,030 --> 00:05:55,080
435the R section, so not quite there.
436
437110
43800:05:55,080 --> 00:05:58,380
439So again, I can tear this problem in half.
440
441111
44200:05:58,380 --> 00:05:59,630
443Thank you.
444
445112
44600:06:02,000 --> 00:06:07,050
447So now I only have some 250 pages, and I can do this again, and again, and
448
449113
45000:06:07,050 --> 00:06:11,340
451again, and go from 125 down to roughly 60, to 30, to 15, and so forth.
452
453114
45400:06:11,340 --> 00:06:16,680
455And finally, I'll get whittled down to one of the S pages, on which, if he's
456
457115
45800:06:16,680 --> 00:06:19,510
459in the phone book, Mike Smith should be.
460
461116
46200:06:19,510 --> 00:06:22,720
463>> Now that's an obviously fairly reasonable algorithm, and it's a
464
465117
46600:06:22,720 --> 00:06:25,395
467one-time use algorithm in this case, but what can we sort of
468
469118
47000:06:25,395 --> 00:06:26,920
471take away from that?
472
473119
47400:06:26,920 --> 00:06:30,750
475Well, the first approach, correct, if naive, though, it was, can be
476
477120
47800:06:30,750 --> 00:06:32,270
479described by this straight line.
480
481121
48200:06:32,270 --> 00:06:35,740
483So if on the x-axis, here we say, this is the size of the problem.
484
485122
48600:06:35,740 --> 00:06:39,530
487So as the x-axis goes to the right, the problem gets bigger.
488
489123
49000:06:39,530 --> 00:06:40,870
491What does it mean to be bigger?
492
493124
49400:06:40,870 --> 00:06:43,920
495In the context of this problem, more pages in the phone book.
496
497125
49800:06:43,920 --> 00:06:45,860
499There's more something we can quantify.
500
501126
50200:06:45,860 --> 00:06:47,660
503On the y-axis, time to solve.
504
505127
50600:06:47,660 --> 00:06:51,790
507So as the axis goes up, we presume it presumably takes more time.
508
509128
51000:06:51,790 --> 00:06:56,960
511So that first approach of linearly searching from page one to page 1,000
512
513129
51400:06:56,960 --> 00:07:01,480
515is a linear procedure, a linear algorithm or process, and we can
516
517130
51800:07:01,480 --> 00:07:03,120
519describe it by this straight line.
520
521131
52200:07:03,120 --> 00:07:06,560
523If I add one more page to the phone book, it's going to, in the worst
524
525132
52600:07:06,560 --> 00:07:09,950
527case, take me one more page flip to find Mike Smith.
528
529133
53000:07:09,950 --> 00:07:13,840
531If I add 100 pages, 100 more flips, or units of time.
532
533134
53400:07:13,840 --> 00:07:15,350
535>> Now I can be a little clever with this.
536
537135
53800:07:15,350 --> 00:07:17,550
539I don't need to really turn it one page at a time.
540
541136
54200:07:17,550 --> 00:07:21,110
543I can do things like two at a time or four at a time, but even that's not
544
545137
54600:07:21,110 --> 00:07:22,350
547all that fundamentally better.
548
549138
55000:07:22,350 --> 00:07:26,540
551Even if it's two at a time, yeah, that kind of moves this line down a bit,
552
553139
55400:07:26,540 --> 00:07:31,010
555and it means that it takes less time, given the same number of pages, but
556
557140
55800:07:31,010 --> 00:07:32,570
559it's not fundamentally better.
560
561141
56200:07:32,570 --> 00:07:36,290
563But what do we just do, and what did all of you do instinctively?
564
565142
56600:07:36,290 --> 00:07:41,210
567You actually achieved a little something like this, logarithmic time,
568
569143
57000:07:41,210 --> 00:07:46,540
571whereby the problem can grow and grow and grow, but the cost of solving that
572
573144
57400:07:46,540 --> 00:07:49,460
575problem, the time required to solve that problem, does not
576
577145
57800:07:49,460 --> 00:07:51,460
579grow nearly as fast.
580
581146
58200:07:51,460 --> 00:07:55,930
583This would be a logarithmic curve, log of n, where n is just in the size of
584
585147
58600:07:55,930 --> 00:07:58,310
587the problem, the number of pages in this phone book.
588
589148
59000:07:58,310 --> 00:07:59,780
591And what does this mean in real terms?
592
593149
59400:07:59,780 --> 00:08:02,630
595Well, if we have, like, 500 people in this room right now--
596
597150
59800:08:02,630 --> 00:08:04,470
599or rather, if we have--
600
601151
60200:08:04,470 --> 00:08:06,020
603mixing metaphor--
604
605152
60600:08:06,020 --> 00:08:09,870
607didn't do that example yet this year-- so if we have 500 pages in the phone
608
609153
61000:08:09,870 --> 00:08:14,450
611book, and we double it to 1,000, in this more intelligent model of
612
613154
61400:08:14,450 --> 00:08:17,670
615flipping to the middle, how many more page-tearers does it take to go from
616
617155
61800:08:17,670 --> 00:08:19,520
619500 pages to 1,000?
620
621156
62200:08:19,520 --> 00:08:21,650
623Well, just one additional page-tearer.
624
625157
62600:08:21,650 --> 00:08:24,580
627If you handed me a 2,000 page phone book, no big deal.
628
629158
63000:08:24,580 --> 00:08:27,200
631I'd just tear it one additional time.
632
633159
63400:08:27,200 --> 00:08:31,780
635>> So in short, the size of the problem can grow much faster than the cost of
636
637160
63800:08:31,780 --> 00:08:32,780
639actually solving it.
640
641161
64200:08:32,780 --> 00:08:35,030
643Now this is just one such algorithm.
644
645162
64600:08:35,030 --> 00:08:37,610
647There are others we can solve in this same way.
648
649163
65000:08:37,610 --> 00:08:40,730
651And so why don't we do this-- if you would humor me, albeit awkwardly here
652
653164
65400:08:40,730 --> 00:08:45,085
655in Sanders, go ahead, everyone, if you could, and stand up in place.
656
657165
65800:08:48,550 --> 00:08:52,440
659As you see on the screen here, this is an algorithm, a process, a computer
660
661166
66200:08:52,440 --> 00:08:55,980
663program, if you will, to be executed by humans, that has just three steps.
664
665167
66600:08:55,980 --> 00:08:57,980
667We're already on step one, you've stood up.
668
669168
67000:08:57,980 --> 00:09:00,260
671And now think to yourself the number one.
672
673169
67400:09:00,260 --> 00:09:01,450
675That is your current number.
676
677170
67800:09:01,450 --> 00:09:03,120
679Everyone here is number one.
680
681171
68200:09:03,120 --> 00:09:07,160
683Step two, pair up with someone standing and your numbers together,
684
685172
68600:09:07,160 --> 00:09:09,345
687and then adopt this sum as your new number.
688
689173
69000:09:17,470 --> 00:09:20,830
691One of you should sit down, then repeat.
692
693174
69400:10:11,330 --> 00:10:14,100
695>> At this point, fewer and fewer people should be standing.
696
697175
69800:10:16,820 --> 00:10:20,030
699This is where it gets more awkward.
700
701176
70200:10:20,030 --> 00:10:21,280
703Someone here, here.
704
705177
70600:10:30,620 --> 00:10:34,180
707The worst part is, you also have to very verbally do arithmetic in front
708
709178
71000:10:34,180 --> 00:10:36,310
711of hundreds of Harvard undergrads.
712
713179
71400:10:42,920 --> 00:10:45,280
715OK, bit of a bug here.
716
717180
71800:10:45,280 --> 00:10:48,470
719OK, what's your number?
720
721181
72200:10:48,470 --> 00:10:49,170
723Nine.
724
725182
72600:10:49,170 --> 00:10:51,880
727OK.
728
729183
73000:10:51,880 --> 00:10:53,130
731What's your number?
732
733184
73400:10:55,920 --> 00:10:57,710
735179.
736
737185
73800:10:57,710 --> 00:10:58,470
739OK, good.
740
741186
74200:10:58,470 --> 00:10:59,420
743So 188.
744
745187
74600:10:59,420 --> 00:11:00,570
747So you guys can sit down.
748
749188
75000:11:00,570 --> 00:11:02,320
751What's your number?
752
753189
75400:11:02,320 --> 00:11:04,420
755118.
756
757190
75800:11:04,420 --> 00:11:07,440
759Some smart undergrad start doing the math.
760
761191
76200:11:07,440 --> 00:11:09,180
763OK, 118, 188.
764
765192
76600:11:09,180 --> 00:11:10,430
767What else we got?
768
769193
77000:11:13,120 --> 00:11:16,450
77171.
772
773194
77400:11:16,450 --> 00:11:17,650
77579.
776
777195
77800:11:17,650 --> 00:11:18,260
779OK.
780
781196
78200:11:18,260 --> 00:11:20,220
783And?
784
785197
78600:11:20,220 --> 00:11:23,240
78747, which, teaching staff, that gives us how many?
788
789198
79000:11:26,250 --> 00:11:29,830
791705 is the answer.
792
793199
79400:11:29,830 --> 00:11:32,045
795And that's, in fact, exactly correct.
796
797200
79800:11:37,250 --> 00:11:40,080
799>> No, we were actually a little bit off there, but how
800
801201
80200:11:40,080 --> 00:11:41,220
803should this have worked?
804
805202
80600:11:41,220 --> 00:11:44,080
807What should have just happened?
808
809203
81000:11:44,080 --> 00:11:48,270
811So on every iteration of this algorithm, we started with some number
812
813204
81400:11:48,270 --> 00:11:51,480
815of people standing, and that was the total number, n, at first.
816
817205
81800:11:51,480 --> 00:11:53,880
819Then half of you sat down, and we went to n over two.
820
821206
82200:11:53,880 --> 00:11:57,570
823Then half of you sat down, we went to n over four, n over eight, over 16,
824
825207
82600:11:57,570 --> 00:12:01,220
827and so forth, until, even though it kind of disintegrated there at the
828
829208
83000:12:01,220 --> 00:12:04,760
831end, in theory, had everyone paired off in balcony, and mezzanine, and
832
833209
83400:12:04,760 --> 00:12:10,180
835orchestra here, we would have had just one lone person standing, with a total
836
837210
83800:12:10,180 --> 00:12:13,930
839value, in this case, of 705.
840
841211
84200:12:13,930 --> 00:12:16,600
843Now what does that mean, though, for the running time?
844
845212
84600:12:16,600 --> 00:12:18,960
847Well, think about if I, as the human, had done this manually.
848
849213
85000:12:18,960 --> 00:12:22,602
851I would have started fairly naively but correctly with one, two, three,
852
853214
85400:12:22,602 --> 00:12:27,060
855four, five, six, seven, eight, and so forth takes quite some time.
856
857215
85800:12:27,060 --> 00:12:28,120
859So I can do better, right?
860
861216
86200:12:28,120 --> 00:12:29,830
863In grade school, you don't just count in ones.
864
865217
86600:12:29,830 --> 00:12:30,580
867You count in two.
868
869218
87000:12:30,580 --> 00:12:32,190
871So two, four, six, eight, 10, 12.
872
873219
87400:12:32,190 --> 00:12:36,210
875And that gets much faster, but now fundamentally, by leveraging the
876
877220
87800:12:36,210 --> 00:12:39,710
879collective intelligence of everyone in this room, we can achieve a curve much
880
881221
88200:12:39,710 --> 00:12:43,750
883more like this, whereby now, the number of the people in this room
884
885222
88600:12:43,750 --> 00:12:48,570
887could double, another 700 people walk into this room for 1,400 people, but
888
889223
89000:12:48,570 --> 00:12:53,010
891it would only take us one more iteration of this algorithm to solve.
892
893224
89400:12:53,010 --> 00:12:55,970
895>> And so increasingly, these days, when we have these huge data sets in
896
897225
89800:12:55,970 --> 00:12:59,690
899Facebook, and Google, and the like, it's solving problems with this bit of
900
901226
90200:12:59,690 --> 00:13:04,060
903insight, this bit of cleverness that's allowing us increasingly to do much,
904
905227
90600:13:04,060 --> 00:13:07,290
907much more powerful things with computers today.
908
909228
91000:13:07,290 --> 00:13:10,440
911If you like these kinds of things, you might have seen on Facebook CS 50's
912
913229
91400:13:10,440 --> 00:13:12,990
915own puzzle day, coming up this Saturday.
916
917230
91800:13:12,990 --> 00:13:15,860
919If you would like to participate in something like this, whereby you and
920
921231
92200:13:15,860 --> 00:13:20,470
923two, or three, or four teams of four would like to solve some puzzles such
924
925232
92600:13:20,470 --> 00:13:25,030
927as this one, you stand a chance to win some fabulous prize, among which is a
928
929233
93000:13:25,030 --> 00:13:29,130
931Wii, and some gift cards, and some other Facebook swag this Saturday,
932
933234
93400:13:29,130 --> 00:13:30,770
935noon to 3:00 PM.
936
937235
93800:13:30,770 --> 00:13:35,590
939Go to CS50.net/rsvp for such.
940
941236
94200:13:35,590 --> 00:13:38,070
943And this slide is online if you'd like to play around.
944
945237
94600:13:38,070 --> 00:13:40,170
947The puzzles this year shall be new.
948
949238
95000:13:40,170 --> 00:13:43,350
951>> You may notice in the classroom, too, all the more cameras this year.
952
953239
95400:13:43,350 --> 00:13:47,950
955So not only will the course be filmed in the usual way, CS50 may also be
956
957240
95800:13:47,950 --> 00:13:51,230
959taking part in a documentary on higher education that's looking at the
960
961241
96200:13:51,230 --> 00:13:54,460
963transformative experience that a student can have these days in an
964
965242
96600:13:54,460 --> 00:13:56,010
967undergraduate course of study.
968
969243
97000:13:56,010 --> 00:14:00,340
971So toward these end, not only we will be filming for that, we'll be filming
972
973244
97400:14:00,340 --> 00:14:04,700
975as well for, increasingly, our online audience, as well as, on occasion,
976
977245
97800:14:04,700 --> 00:14:05,810
979this audience here.
980
981246
98200:14:05,810 --> 00:14:09,120
983So we welcome to the class this year our Harvard extension school students,
984
985247
98600:14:09,120 --> 00:14:12,060
987graduate school of design, education, the business school, the Kennedy
988
989248
99000:14:12,060 --> 00:14:15,600
991School, the law school, as well as a number of students from Belmont,
992
993249
99400:14:15,600 --> 00:14:18,280
995Lexington, Newton, and Watertown High Schools.
996
997250
99800:14:18,280 --> 00:14:19,250
999Welcome to you all.
1000
1001251
100200:14:19,250 --> 00:14:22,330
1003In addition, this year, as you may have heard, Harvard, and MIT, and
1004
1005252
100600:14:22,330 --> 00:14:25,740
1007Berkeley now have entered into a collaborative partnership on an
1008
1009253
101000:14:25,740 --> 00:14:30,490
1011initiative called EdX, which is an initiative to open up education to all
1012
1013254
101400:14:30,490 --> 00:14:34,010
1015the more people online, and fundamentally, start doing research on
1016
1017255
101800:14:34,010 --> 00:14:36,530
1019a much broader scale as to how people learn.
1020
1021256
102200:14:36,530 --> 00:14:39,960
1023And so CS50 will be the college's first course participating in that
1024
1025257
102600:14:39,960 --> 00:14:42,960
1027initiative, as well, which means you will have access to all the more
1028
1029258
103000:14:42,960 --> 00:14:46,890
1031tools, all the more curricular content, all the more video content as
1032
1033259
103400:14:46,890 --> 00:14:52,410
1035a result, as well as of yesterday morning, the 53,019 people who have
1036
1037260
103800:14:52,410 --> 00:14:56,825
1039registered to take CS50 along with you this year on the internet.
1040
1041261
104200:15:05,940 --> 00:15:08,830
1043So what this means, in particular, is that the teaching staff and I have
1044
1045262
104600:15:08,830 --> 00:15:12,080
1047spent quite a bit of time this summer preparing for the fall, both on campus
1048
1049263
105000:15:12,080 --> 00:15:15,720
1051and off, so that we can begin to build up a corpus of interesting, of
1052
1053264
105400:15:15,720 --> 00:15:20,760
1055compelling, of engaging educational content, that focuses in particular on
1056
1057265
105800:15:20,760 --> 00:15:26,090
1059more intimate conveyances of fairly complex material.
1060
1061266
106200:15:26,090 --> 00:15:28,540
1063>> So in addition to the course's lectures, and sections, and things
1064
1065267
106600:15:28,540 --> 00:15:31,810
1067called walkthroughs, which we'll revisit in just a bit, we'll also have
1068
1069268
107000:15:31,810 --> 00:15:35,090
1071these shorts this year that allow you to engage with the course from a
1072
1073269
107400:15:35,090 --> 00:15:36,660
1075different angle all together.
1076
1077270
107800:15:36,660 --> 00:15:39,610
1079So let's use this as an opportunity to take a quick peek at one that
1080
1081271
108200:15:39,610 --> 00:15:41,460
1083discusses this notion of binary.
1084
1085272
108600:15:41,460 --> 00:15:44,890
1087>> So in computer science there are things called algorithms, two of which
1088
1089273
109000:15:44,890 --> 00:15:47,870
1091we just took a look at-- these procedures for solving problems.
1092
1093274
109400:15:47,870 --> 00:15:51,060
1095But at the end of the day, you need to represent information somehow, and you
1096
1097275
109800:15:51,060 --> 00:15:54,540
1099need to represent it in a way that a computer can understand.
1100
1101276
110200:15:54,540 --> 00:15:57,330
1103And even if you don't really understand computers, and you're in
1104
1105277
110600:15:57,330 --> 00:16:01,470
1107that 76% right now, you probably have some vague sense that computers
1108
1109278
111000:16:01,470 --> 00:16:05,300
1111somehow deal in zeros and ones, the binary system, so to speak.
1112
1113279
111400:16:05,300 --> 00:16:06,630
1115Now why is that the case?
1116
1117280
111800:16:06,630 --> 00:16:10,120
1119Well, turns out when computers first came about, if you needed to represent
1120
1121281
112200:16:10,120 --> 00:16:13,810
1123information, you could do it with electricity, and though this is a bit
1124
1125282
112600:16:13,810 --> 00:16:18,140
1127of an oversimplification, a very easy way of recording information is either
1128
1129283
113000:16:18,140 --> 00:16:22,600
1131by turning that electricity on, a one in binary, so to speak, or turning
1132
1133284
113400:16:22,600 --> 00:16:24,290
1135that electricity off.
1136
1137285
113800:16:24,290 --> 00:16:26,210
1139>> So Barry, if you wouldn't mind, could we dim the lights
1140
1141286
114200:16:26,210 --> 00:16:28,140
1143fully for just a moment?
1144
1145287
114600:16:28,140 --> 00:16:31,750
1147This here is a very gratuitous binary zero.
1148
1149288
115000:16:31,750 --> 00:16:35,960
1151All right, if we turn the lights back up, now Sanders Theatre is
1152
1153289
115400:16:35,960 --> 00:16:37,990
1155representing the binary value of one.
1156
1157290
115800:16:37,990 --> 00:16:41,860
1159Unfortunately, with just one bit, with just one set of lights, we can only
1160
1161291
116200:16:41,860 --> 00:16:45,770
1163represent two numbers in the world, zero and one, and it'd be nice if
1164
1165292
116600:16:45,770 --> 00:16:48,510
1167computers could count a bit higher than that, but indeed, they can.
1168
1169293
117000:16:48,510 --> 00:16:52,170
1171So let me pull up on screen here our friend, Nate Hardison, who will give
1172
1173294
117400:16:52,170 --> 00:16:54,980
1175us a quick look over the course of just a few minutes at
1176
1177295
117800:16:54,980 --> 00:16:56,505
1179this notion of binary.
1180
1181296
118200:17:03,526 --> 00:17:06,550
1183>> NATE HARDISON: Back when you learned how to read and write numbers, you
1184
1185297
118600:17:06,550 --> 00:17:10,589
1187learned about the digits zero to nine.
1188
1189298
119000:17:10,589 --> 00:17:13,589
1191To write whole numbers larger than nine, you learn that all you had to do
1192
1193299
119400:17:13,589 --> 00:17:23,130
1195was use some combination of these digits, as in 52, and 437.
1196
1197300
119800:17:23,130 --> 00:17:27,760
1199So this way of writing numbers has a name, decimal notation.
1200
1201301
120200:17:27,760 --> 00:17:28,830
1203Why decimal?
1204
1205302
120600:17:28,830 --> 00:17:33,630
1207Well, the Latin root of decimal, deca, means 10, and when you have 10 digits
1208
1209303
121000:17:33,630 --> 00:17:37,420
1211in your notation system, 10 becomes a rather special number.
1212
1213304
121400:17:37,420 --> 00:17:42,480
1215Let's look at the number 437 written in decimal notation to understand why.
1216
1217305
121800:17:42,480 --> 00:17:52,330
1219>> We can first break up 437 into 400 plus 30 plus 7.
1220
1221306
122200:17:52,330 --> 00:18:00,260
1223We can take it apart even more, so that we've got four times 100 plus 3
1224
1225307
122600:18:00,260 --> 00:18:05,120
1227times 10 plus 7 times 1.
1228
1229308
123000:18:05,120 --> 00:18:08,580
1231remember learning about the ones place, the 10s place, the hundreds
1232
1233309
123400:18:08,580 --> 00:18:10,190
1235place, and so on?
1236
1237310
123800:18:10,190 --> 00:18:13,120
1239This is exactly where that comes from.
1240
1241311
124200:18:13,120 --> 00:18:15,870
1243And finally, we can see how we've got a bunch of powers of
1244
1245312
124600:18:15,870 --> 00:18:17,900
124710 embedded in here.
1248
1249313
125000:18:17,900 --> 00:18:28,820
1251We've got 4 times 10 to the 2 plus 3 times 10 to the 1 plus 7
1252
1253314
125400:18:28,820 --> 00:18:31,720
1255times 10 to the zero.
1256
1257315
125800:18:31,720 --> 00:18:35,390
1259So now you see why 10 is a special number in decimal notation.
1260
1261316
126200:18:35,390 --> 00:18:37,370
1263In fact, we've got a name for it.
1264
1265317
126600:18:37,370 --> 00:18:40,420
1267It's called the base, since it's the base of the exponent in
1268
1269318
127000:18:40,420 --> 00:18:42,100
1271our arithmetic here.
1272
1273319
127400:18:42,100 --> 00:18:45,320
1275>> Decimal notation is not the only way to represent numbers.
1276
1277320
127800:18:45,320 --> 00:18:50,480
1279In fact, even if we get rid of the digits two through nine, we can still
1280
1281321
128200:18:50,480 --> 00:18:53,740
1283represent all of the numbers that we could with decimal.
1284
1285322
128600:18:53,740 --> 00:18:58,910
1287So now that we have two digits, zero and one, two is our special number,
1288
1289323
129000:18:58,910 --> 00:19:01,210
1291the base of our notation system.
1292
1293324
129400:19:01,210 --> 00:19:04,580
1295The name of this notation system is called binary, since the
1296
1297325
129800:19:04,580 --> 00:19:07,030
1299prefix bi means two.
1300
1301326
130200:19:07,030 --> 00:19:11,190
1303So instead, now, of having a ones place, and 10s place, and so on, we
1304
1305327
130600:19:11,190 --> 00:19:15,900
1307now have a ones place, a twos place, a fours place, and so on, going up by
1308
1309328
131000:19:15,900 --> 00:19:17,550
1311powers of two.
1312
1313329
131400:19:17,550 --> 00:19:19,450
1315So let's see this by doing some counting.
1316
1317330
131800:19:19,450 --> 00:19:24,940
1319So zero is still zero, and one is still one.
1320
1321331
132200:19:24,940 --> 00:19:31,050
1323However, now that we've got a twos place instead of a 10s place, 10
1324
1325332
132600:19:31,050 --> 00:19:33,190
1327represents the number two.
1328
1329333
133000:19:33,190 --> 00:19:38,386
1331To get three, we add one to that, and get 11.
1332
1333334
133400:19:38,386 --> 00:19:44,660
1335Four, since there's now a fours place, is represented by 100.
1336
1337335
133800:19:44,660 --> 00:19:49,410
1339Five is 101.
1340
1341336
134200:19:49,410 --> 00:19:53,642
1343Six is 110.
1344
1345337
134600:19:53,642 --> 00:19:56,610
1347Seven is 111.
1348
1349338
135000:19:56,610 --> 00:19:58,470
1351Eight, again, has its own place.
1352
1353339
135400:19:58,470 --> 00:20:02,790
1355So it's 1000.
1356
1357340
135800:20:02,790 --> 00:20:05,201
1359And I think you get the point.
1360
1361341
136200:20:05,201 --> 00:20:09,800
1363>> SPEAKER 1: So this is to say what computers do and what binary is is
1364
1365342
136600:20:09,800 --> 00:20:13,690
1367actually not that dissimilar from what we've been taking for granted for some
1368
1369343
137000:20:13,690 --> 00:20:14,560
1371years, right?
1372
1373344
137400:20:14,560 --> 00:20:17,097
1375Back in grade school, you learned to count precisely in precisely the
1376
1377345
137800:20:17,097 --> 00:20:19,970
1379fashion that Nate proposed, but you probably haven't really thought about
1380
1381346
138200:20:19,970 --> 00:20:22,440
1383it since, the fact that there is this ones place, 10s place, and hundreds
1384
1385347
138600:20:22,440 --> 00:20:23,315
1387place, and that's pretty arbitrary.
1388
1389348
139000:20:23,315 --> 00:20:26,210
1391And indeed, computers simply use this different base.
1392
1393349
139400:20:26,210 --> 00:20:30,160
1395But at the end of the day, to actually physically represent this notion of a
1396
1397350
139800:20:30,160 --> 00:20:33,130
1399zero and one, you obviously don't just turn the lights on and off
1400
1401351
140200:20:33,130 --> 00:20:33,445
1403necessarily.
1404
1405352
140600:20:33,445 --> 00:20:36,100
1407You need to do it on a much finer grain scale.
1408
1409353
141000:20:36,100 --> 00:20:39,990
1411And by finer grain, you might remember this silly little toy from childhood,
1412
1413354
141400:20:39,990 --> 00:20:42,570
1415Woolly Willy and these little magnetic particles.
1416
1417355
141800:20:42,570 --> 00:20:46,440
1419>> So magnetic particles are something that you can align in a couple of
1420
1421356
142200:20:46,440 --> 00:20:49,920
1423different directions, perhaps north-south or south-north.
1424
1425357
142600:20:49,920 --> 00:20:53,470
1427And so a lot of physical incarnations of technology these days that use
1428
1429358
143000:20:53,470 --> 00:20:57,690
1431binary, that use zeros and ones, simply have magnetism on the inside
1432
1433359
143400:20:57,690 --> 00:21:04,110
1435that aligns things up-down or down-up, thereby representing a zero or a one,
1436
1437360
143800:21:04,110 --> 00:21:04,890
1439respectively.
1440
1441361
144200:21:04,890 --> 00:21:08,930
1443So indeed, let's move away from the abstract here, and look at the inside
1444
1445362
144600:21:08,930 --> 00:21:10,780
1447of what's a more traditional computer hard drive.
1448
1449363
145000:21:10,780 --> 00:21:13,840
1451This one happens to be a bit larger on screen, in that it's from a desktop
1452
1453364
145400:21:13,840 --> 00:21:18,310
1455computer, but laptops today still have this same technology, but is gradually
1456
1457365
145800:21:18,310 --> 00:21:22,140
1459being replaced by more sophisticated things that have actually no moving
1460
1461366
146200:21:22,140 --> 00:21:25,275
1463parts-- the inside, then, of a hard drive.
1464
1465367
146600:21:25,275 --> 00:21:28,450
1467>> SPEAKER 2: The hard drive is where your PC stores most of
1468
1469368
147000:21:28,450 --> 00:21:29,990
1471its permanent data.
1472
1473369
147400:21:29,990 --> 00:21:34,710
1475To do that, the data travels from RAM along with software signals that tell
1476
1477370
147800:21:34,710 --> 00:21:37,420
1479the hard drive how to store that data.
1480
1481371
148200:21:37,420 --> 00:21:40,720
1483The hard drive circuits translate those signals into voltage
1484
1485372
148600:21:40,720 --> 00:21:42,270
1487fluctuations.
1488
1489373
149000:21:42,270 --> 00:21:46,290
1491These, in turn, control the hard drive's moving parts, some of the few
1492
1493374
149400:21:46,290 --> 00:21:48,890
1495moving parts left in the modern computer.
1496
1497375
149800:21:48,890 --> 00:21:53,400
1499Some of the signals control a motor, which schools metal coated platters.
1500
1501376
150200:21:53,400 --> 00:21:56,810
1503Your data is actually stored on these platters.
1504
1505377
150600:21:56,810 --> 00:21:59,940
1507Other signals move the read-write heads to read or
1508
1509378
151000:21:59,940 --> 00:22:02,030
1511write data on the platters.
1512
1513379
151400:22:02,030 --> 00:22:06,710
1515This machinery is so precise that a human hair couldn't even pass between
1516
1517380
151800:22:06,710 --> 00:22:11,390
1519the heads of spinning platters, yet it all works at terrific speeds.
1520
1521381
152200:22:11,390 --> 00:22:15,120
1523>> SPEAKER 1: So we now zoom in on what's actually happening on top of these
1524
1525382
152600:22:15,120 --> 00:22:19,620
1527platters in terms of the magnetism, we have this second of two looks.
1528
1529383
153000:22:19,620 --> 00:22:22,940
1531>> SPEAKER 3: Let's look at what we just saw in slow motion.
1532
1533384
153400:22:22,940 --> 00:22:27,010
1535When a brief pulse of electricity is sent to the read-write head, it flips
1536
1537385
153800:22:27,010 --> 00:22:30,390
1539on a tiny electromagnetic for a fraction of a second.
1540
1541386
154200:22:30,390 --> 00:22:34,280
1543The magnet creates a field, which changes the polarity of a tiny, tiny
1544
1545387
154600:22:34,280 --> 00:22:37,995
1547portion of the metal particles which coat each platter's surface.
1548
1549388
155000:22:37,995 --> 00:22:41,810
1551A pattern series of these tiny charged up areas on the disk represents a
1552
1553389
155400:22:41,810 --> 00:22:45,820
1555single bit of data in a binary number system used by computers.
1556
1557390
155800:22:45,820 --> 00:22:49,430
1559Now if the current is sent one way through the read-write head, the area
1560
1561391
156200:22:49,430 --> 00:22:51,170
1563is polarized in one direction.
1564
1565392
156600:22:51,170 --> 00:22:53,250
1567If the current is sent in the opposite direction, the
1568
1569393
157000:22:53,250 --> 00:22:55,220
1571polarization is reversed.
1572
1573394
157400:22:55,220 --> 00:22:57,680
1575How do you get data off the hard disk?
1576
1577395
157800:22:57,680 --> 00:22:59,400
1579Just reverse the process.
1580
1581396
158200:22:59,400 --> 00:23:02,050
1583So it's the particles on the disk that get the current and the read-write
1584
1585397
158600:23:02,050 --> 00:23:03,340
1587head moving.
1588
1589398
159000:23:03,340 --> 00:23:06,010
1591Put together millions of these magnetized segments, and
1592
1593399
159400:23:06,010 --> 00:23:07,440
1595you've got a file.
1596
1597400
159800:23:07,440 --> 00:23:12,240
1599Now the pieces of a single file may be scattered all over a drive's platters,
1600
1601401
160200:23:12,240 --> 00:23:15,270
1603kind of like the mess of papers on your desk.
1604
1605402
160600:23:15,270 --> 00:23:18,800
1607So a special extra file keeps track of where everything is.
1608
1609403
161000:23:18,800 --> 00:23:21,640
1611Don't you wish you had something like that?
1612
1613404
161400:23:21,640 --> 00:23:23,340
1615>> SPEAKER 1: Indeed.
1616
1617405
161800:23:23,340 --> 00:23:27,560
1619So we have this ability to represent this information, numbers
1620
1621406
162200:23:27,560 --> 00:23:28,440
1623at a very low level.
1624
1625407
162600:23:28,440 --> 00:23:32,730
1627We have a physical way of representing that same thing, but we can't really
1628
1629408
163000:23:32,730 --> 00:23:36,440
1631do all that much of interest yet, other than perhaps some arithmetic and
1632
1633409
163400:23:36,440 --> 00:23:36,940
1635mathematics.
1636
1637410
163800:23:36,940 --> 00:23:40,830
1639We have no way of representing thus far things like alphabetical letters,
1640
1641411
164200:23:40,830 --> 00:23:44,100
1643so that we humans can communicate, using these same devices.
1644
1645412
164600:23:44,100 --> 00:23:48,240
1647But thankfully, there exists encodings, patterns of zeros and ones
1648
1649413
165000:23:48,240 --> 00:23:52,920
1651that represent higher level constructs like A, and B, and C, and entire
1652
1653414
165400:23:52,920 --> 00:23:54,880
1655sentences, and paragraphs, and the like.
1656
1657415
165800:23:54,880 --> 00:24:00,300
1659And so ASCII, which is an acronym that refers to this coding system whereby
1660
1661416
166200:24:00,300 --> 00:24:04,350
1663one number represents a given letter-- for instance, the number that we know
1664
1665417
166600:24:04,350 --> 00:24:09,120
1667as decimal value 65 is known as the capital letter A to computers.
1668
1669418
167000:24:09,120 --> 00:24:13,670
1671The decimal value of 97 in computers is known as a lowercase a.
1672
1673419
167400:24:13,670 --> 00:24:15,210
1675And what does that really mean?
1676
1677420
167800:24:15,210 --> 00:24:19,510
1679Well, even though Nate, a moment ago, only counted up from zero to eight, if
1680
1681421
168200:24:19,510 --> 00:24:24,910
1683we were to continue counting up to 65, or further, to 97, the pattern of
1684
1685422
168600:24:24,910 --> 00:24:28,440
1687zeros and ones that he would have drawn on the screen would be exactly
1688
1689423
169000:24:28,440 --> 00:24:33,420
1691what a computer uses to represent the letter A in all caps, or the letter a
1692
1693424
169400:24:33,420 --> 00:24:34,610
1695in lowercase.
1696
1697425
169800:24:34,610 --> 00:24:36,690
1699And indeed, there's a whole scheme to this.
1700
1701426
170200:24:36,690 --> 00:24:41,570
1703This is, at first glance, overwhelming chart of encodings, but if you focus
1704
1705427
170600:24:41,570 --> 00:24:46,210
1707just on the right half here, notice in this middle column, we have this
1708
1709428
171000:24:46,210 --> 00:24:49,010
1711notion of numbers followed by letters.
1712
1713429
171400:24:49,010 --> 00:24:53,830
1715And at top, we have 32, and the character char, to which 32, the
1716
1717430
171800:24:53,830 --> 00:24:57,360
1719integer, now refers, is apparently the space bar character.
1720
1721431
172200:24:57,360 --> 00:25:00,720
1723When you get the space bar character on your laptop, what you're really
1724
1725432
172600:25:00,720 --> 00:25:04,160
1727sending is a number, a pattern of zeros and ones, a flow of electricity,
1728
1729433
173000:25:04,160 --> 00:25:07,770
1731if you will, representing those zeros and ones, that the computer then
1732
1733434
173400:25:07,770 --> 00:25:10,330
1735interprets as a space character on the screen.
1736
1737435
173800:25:10,330 --> 00:25:12,210
1739An exclamation point is 33.
1740
1741436
174200:25:12,210 --> 00:25:13,345
1743Double quotes is 34.
1744
1745437
174600:25:13,345 --> 00:25:18,945
1747And if we scroll down here over to the right, we see that 65 is indeed A, and
1748
1749438
175000:25:18,945 --> 00:25:21,290
175197 is indeed lowercase a.
1752
1753439
175400:25:21,290 --> 00:25:23,910
1755>> So now that we have this encoding scheme, we can start to
1756
1757440
175800:25:23,910 --> 00:25:25,080
1759spell things out.
1760
1761441
176200:25:25,080 --> 00:25:30,170
1763Indeed, computers typically express themselves in standard units, not
1764
1765442
176600:25:30,170 --> 00:25:33,020
1767using an individual bit, which again, is not all that useful to just
1768
1769443
177000:25:33,020 --> 00:25:36,600
1771represent zero or one, lights on or off, but rather, using
1772
1773444
177400:25:36,600 --> 00:25:37,530
1775sequences of bits.
1776
1777445
177800:25:37,530 --> 00:25:40,100
1779And the most common unit of measure, as you probably know, or at least
1780
1781446
178200:25:40,100 --> 00:25:41,810
1783inferred, is a bite.
1784
1785447
178600:25:41,810 --> 00:25:45,960
1787A bite is just eight bits, eight zeroes or ones in a row.
1788
1789448
179000:25:45,960 --> 00:25:48,090
1791So we can start spelling things out.
1792
1793449
179400:25:48,090 --> 00:25:52,580
1795And so if we could, why not try this a little bit collectively here?
1796
1797450
179800:25:52,580 --> 00:25:55,670
1799Are there eight people in this room who would be willing
1800
1801451
180200:25:55,670 --> 00:25:56,870
1803to come up on stage?
1804
1805452
180600:25:56,870 --> 00:26:00,880
1807You have to be comfortable appearing on camera, but you don't really need
1808
1809453
181000:26:00,880 --> 00:26:03,690
1811to know otherwise what's going on just yet.
1812
1813454
181400:26:03,690 --> 00:26:07,240
1815I see one person being volunteered over here.
1816
1817455
181800:26:07,240 --> 00:26:18,380
1819Two, three, four, five, six, seven, and how about eight?
1820
1821456
182200:26:18,380 --> 00:26:18,920
1823Come on up.
1824
1825457
182600:26:18,920 --> 00:26:22,550
1827>> So you are about to represent a bite of people.
1828
1829458
183000:26:22,550 --> 00:26:30,190
1831Let me have you been the 128s place, you the 64s place, you the 32s place.
1832
1833459
183400:26:30,190 --> 00:26:32,720
1835But we're going to very rapidly have to reverse this.
1836
1837460
183800:26:32,720 --> 00:26:35,170
1839So let me meet you all over there.
1840
1841461
184200:26:35,170 --> 00:26:39,840
1843And you should be in the 128s place all the way over, here much like the
1844
1845462
184600:26:39,840 --> 00:26:43,080
1847hundreds place or the thousands place would be farther to the left, we want
1848
1849463
185000:26:43,080 --> 00:26:45,740
1851the biggest placeholder to be here on the left as well.
1852
1853464
185400:26:45,740 --> 00:26:55,230
1855We have 64s, 32, 16s, eights, fours, twos, and ones--
1856
1857465
185800:26:55,230 --> 00:26:56,030
1859excellent.
1860
1861466
186200:26:56,030 --> 00:26:58,100
1863So now we have--
1864
1865467
186600:26:58,100 --> 00:27:00,190
1867okay, you can help me.
1868
1869468
187000:27:00,190 --> 00:27:01,890
1871So now we have-- what's your name?
1872
1873469
187400:27:01,890 --> 00:27:02,560
1875JOANNE: Joanne.
1876
1877470
187800:27:02,560 --> 00:27:06,240
1879SPEAKER 1: So Joanne and I are now going to advise these guys on how we
1880
1881471
188200:27:06,240 --> 00:27:07,850
1883can go about spelling something out.
1884
1885472
188600:27:07,850 --> 00:27:10,640
1887So on the backs of their sheets of paper, they have a little cheat sheet
1888
1889473
189000:27:10,640 --> 00:27:14,720
1891that's going to tell them whether they were representing a zero or a one.
1892
1893474
189400:27:14,720 --> 00:27:18,000
1895And why don't, for simplicity, we'll represent zero by just
1896
1897475
189800:27:18,000 --> 00:27:19,580
1899standing there awkwardly.
1900
1901476
190200:27:19,580 --> 00:27:20,360
1903Very good.
1904
1905477
190600:27:20,360 --> 00:27:24,200
1907Or a one by raising your hand, representing a one.
1908
1909478
191000:27:24,200 --> 00:27:28,380
1911And let's see if we can't spell out a four character phrase here.
1912
1913479
191400:27:28,380 --> 00:27:33,870
1915>> So go ahead now, volunteers, and execute round one by raising your hand
1916
1917480
191800:27:33,870 --> 00:27:38,940
1919if you're a one, or keeping it down if you're a zero.
1920
1921481
192200:27:38,940 --> 00:27:45,550
1923So now that we have these three hands up, what number, everyone else, are
1924
1925482
192600:27:45,550 --> 00:27:47,800
1927they actually representing?
1928
1929483
193000:27:47,800 --> 00:27:48,760
1931OK, 67.
1932
1933484
193400:27:48,760 --> 00:27:49,040
1935Why?
1936
1937485
193800:27:49,040 --> 00:27:49,970
1939Well, quick sanity check.
1940
1941486
194200:27:49,970 --> 00:27:51,910
194364s place, because it's a one.
1944
1945487
194600:27:51,910 --> 00:27:58,870
1947That's like one times 64, plus 1 times two, so that's 66, plus 1 times 1.
1948
1949488
195000:27:58,870 --> 00:28:00,610
1951That's plus 1, so 67.
1952
1953489
195400:28:00,610 --> 00:28:03,740
1955So now these guys are collectively representing 67, which apparently
1956
1957490
195800:28:03,740 --> 00:28:06,240
1959represents what here in ASCII?
1960
1961491
196200:28:06,240 --> 00:28:06,510
1963OK,
1964
1965492
196600:28:06,510 --> 00:28:07,650
1967so a C. All right.
1968
1969493
197000:28:07,650 --> 00:28:09,530
1971So now let's proceed to round two.
1972
1973494
197400:28:09,530 --> 00:28:12,735
1975Everyone starting with their hands down, and then round two.
1976
1977495
197800:28:12,735 --> 00:28:15,260
1979Actually, there's not much of a role here, I suppose, but we'll pretend.
1980
1981496
198200:28:15,260 --> 00:28:19,820
1983So round two, raise or lower your hands.
1984
1985497
198600:28:19,820 --> 00:28:20,530
1987>> All right.
1988
1989498
199000:28:20,530 --> 00:28:23,230
1991Audience, what are we now?
1992
1993499
199400:28:23,230 --> 00:28:24,860
1995Expressing is 83.
1996
1997500
199800:28:24,860 --> 00:28:26,050
1999So you can do the mathematics.
2000
2001501
200200:28:26,050 --> 00:28:29,810
2003But for anyone whose hand is up, you add in the number that they represent.
2004
2005502
200600:28:29,810 --> 00:28:31,610
2007So now we have 83.
2008
2009503
201000:28:31,610 --> 00:28:36,510
2011Let's expand the cheat sheet a little bit, and we now have--
2012
2013504
201400:28:36,510 --> 00:28:38,890
2015this might be obvious where we're going here, but
2016
2017505
201800:28:38,890 --> 00:28:42,220
2019nonetheless, round three.
2020
2021506
202200:28:42,220 --> 00:28:45,870
2023OK, round three's good to go down there, so round three, what number are
2024
2025507
202600:28:45,870 --> 00:28:47,120
2027these guys now representing?
2028
2029508
203000:28:50,090 --> 00:28:56,690
2031Okay, I heard 53, which now represents interesting.
2032
2033509
203400:28:56,690 --> 00:29:00,770
2035Now why this sort of counter-intuitive result, right?
2036
2037510
203800:29:00,770 --> 00:29:02,910
2039If we want to represent five--
2040
2041511
204200:29:02,910 --> 00:29:03,900
2043we all probably know where this is going--
2044
2045512
204600:29:03,900 --> 00:29:07,360
2047why don't I just raise the fours place and the ones place?
2048
2049513
205000:29:07,360 --> 00:29:10,060
2051>> Well, we realize that there's a difference, fundamentally, between how
2052
2053514
205400:29:10,060 --> 00:29:11,760
2055a computer interprets these bits.
2056
2057515
205800:29:11,760 --> 00:29:15,470
2059If you're trying to represent the number five, then absolutely, we just
2060
2061516
206200:29:15,470 --> 00:29:18,330
2063raise your hand number four and raise hand number one.
2064
2065517
206600:29:18,330 --> 00:29:20,010
2067But we're not representing numbers here.
2068
2069518
207000:29:20,010 --> 00:29:23,690
2071The context here on stage is that we're representing characters or
2072
2073519
207400:29:23,690 --> 00:29:28,110
2075chars, and in this context, the computer has to realize that, oh, this
2076
2077520
207800:29:28,110 --> 00:29:30,720
2079pattern of bits is not a number alone.
2080
2081521
208200:29:30,720 --> 00:29:33,210
2083It's actually representing a higher level concept.
2084
2085522
208600:29:33,210 --> 00:29:35,010
2087In this case, an alphabetical letter.
2088
2089523
209000:29:35,010 --> 00:29:38,820
2091So the fact that it is now representing the number five with the
2092
2093524
209400:29:38,820 --> 00:29:44,290
2095value 53 is because in ASCII, the thing we aesthetically see as the
2096
2097525
209800:29:44,290 --> 00:29:48,200
2099number five itself needs a pattern of bits-- because why?
2100
2101526
210200:29:48,200 --> 00:29:51,310
2103Well, the world just decided to use the lower numbers, zero, one, two,
2104
2105527
210600:29:51,310 --> 00:29:54,130
2107three for what looked to be fairly cryptic things.
2108
2109528
211000:29:54,130 --> 00:29:56,830
2111And indeed, these are the characters that aren't on a keyboard.
2112
2113529
211400:29:56,830 --> 00:30:00,330
2115Special expressions that you need in a computer to do interesting things, but
2116
2117530
211800:30:00,330 --> 00:30:02,010
2119humans never actually type them.
2120
2121531
212200:30:02,010 --> 00:30:04,220
2123So 53, indeed, represents five.
2124
2125532
212600:30:04,220 --> 00:30:10,460
2127Now just as a final sanity check, what number should they
2128
2129533
213000:30:10,460 --> 00:30:12,880
2131represent in just a moment?
2132
2133534
213400:30:12,880 --> 00:30:14,060
2135Okay, so 48.
2136
2137535
213800:30:14,060 --> 00:30:15,720
2139And indeed, go ahead, round four.
2140
2141536
214200:30:18,650 --> 00:30:22,680
214316 plus 32 is indeed 48.
2144
2145537
214600:30:22,680 --> 00:30:26,510
2147And so a big round of applause, if we could, for our eight volunteers here.
2148
2149538
215000:30:31,410 --> 00:30:32,660
2151Very well done.
2152
2153539
215400:30:35,290 --> 00:30:36,490
2155Any direction is fine.
2156
2157540
215800:30:36,490 --> 00:30:41,050
2159>> So we now have a way not only of thinking about how to represent data,
2160
2161541
216200:30:41,050 --> 00:30:44,120
2163and actually representing it physically, but also doing higher
2164
2165542
216600:30:44,120 --> 00:30:45,710
2167level things on top of.
2168
2169543
217000:30:45,710 --> 00:30:48,430
2171And indeed, this is going to be a theme throughout computer science of
2172
2173544
217400:30:48,430 --> 00:30:52,410
2175building more and more interesting and complex things on top of
2176
2177545
217800:30:52,410 --> 00:30:54,030
2179fairly simple ideas--
2180
2181546
218200:30:54,030 --> 00:30:56,170
2183in this case, just zeros and ones.
2184
2185547
218600:30:56,170 --> 00:31:00,120
2187In terms of why this is useful, well, even though in a course like this,
2188
2189548
219000:31:00,120 --> 00:31:03,810
2191we'll focus on fundamentals, and on programming, and on solving of
2192
2193549
219400:31:03,810 --> 00:31:07,050
2195problems, you can go off in computer science in any number of directions.
2196
2197550
219800:31:07,050 --> 00:31:10,950
2199In this case here, this is a chart that you have at the back page of your
2200
2201551
220200:31:10,950 --> 00:31:14,580
2203unofficial guide to CS at Harvard, one of today's two printouts.
2204
2205552
220600:31:14,580 --> 00:31:17,450
2207This suggests the many different directions in which you can go after a
2208
2209553
221000:31:17,450 --> 00:31:18,400
2211course like this0--
2212
2213554
221400:31:18,400 --> 00:31:21,530
2215learning about artificial intelligence, about graphics, about
2216
2217555
221800:31:21,530 --> 00:31:24,370
2219machine learning, about language itself.
2220
2221556
222200:31:24,370 --> 00:31:26,410
2223Realize, too, that there are yet other paths.
2224
2225557
222600:31:26,410 --> 00:31:28,670
2227There are more mathematical paths in computer science.
2228
2229558
223000:31:28,670 --> 00:31:31,740
2231If you're not even able to take something like CS50 this fall, there's
2232
2233559
223400:31:31,740 --> 00:31:35,070
2235introductory courses in the spring, Computer Science 1, for instance, is
2236
2237560
223800:31:35,070 --> 00:31:38,050
2239yet another on ramp to this new world.
2240
2241561
224200:31:38,050 --> 00:31:41,600
2243>> Now as an aside, in the interest of solving problems related to courses,
2244
2245562
224600:31:41,600 --> 00:31:46,050
2247realize CS50 set out some time ago to try to solve one of these problems, a
2248
2249563
225000:31:46,050 --> 00:31:49,640
2251problem known as my.harvard, which many of you might be using to actually
2252
2253564
225400:31:49,640 --> 00:31:54,040
2255shop for courses, but if not, check out a tool like this, as well as other
2256
2257565
225800:31:54,040 --> 00:31:57,800
2259descendants that some of our past students and staff have created.
2260
2261566
226200:31:57,800 --> 00:32:00,770
2263But in Harvard Courses, which is a web-based tool, something that you
2264
2265567
226600:32:00,770 --> 00:32:05,510
2267will be capable of designing and deploying yourselves, as well as yet
2268
2269568
227000:32:05,510 --> 00:32:09,210
2271other things as well by the end of the semester, realize that this builds
2272
2273569
227400:32:09,210 --> 00:32:10,590
2275upon an open data set.
2276
2277570
227800:32:10,590 --> 00:32:13,490
2279In this case, of course, catalog, and allows students in this case to
2280
2281571
228200:32:13,490 --> 00:32:16,320
2283explore a fairly complex data set.
2284
2285572
228600:32:16,320 --> 00:32:19,495
2287>> We dug up last night a few statistics based on the few thousand folks who
2288
2289573
229000:32:19,495 --> 00:32:21,530
2291have been using this over the past few days.
2292
2293574
229400:32:21,530 --> 00:32:25,260
2295If you've been curious to know how many courses your friends actually
2296
2297575
229800:32:25,260 --> 00:32:29,720
2299tend to shop, well, today this data suggests that 7.6 is the average
2300
2301576
230200:32:29,720 --> 00:32:32,610
2303number of courses on someone's shopping list.
2304
2305577
230600:32:32,610 --> 00:32:36,350
2307And now I'll give you also the statistic of the most number of
2308
2309578
231000:32:36,350 --> 00:32:39,550
2311courses on someone's shopping list-- and we all probably know
2312
2313579
231400:32:39,550 --> 00:32:40,800
2315someone like this.
2316
2317580
231800:32:43,820 --> 00:32:46,740
2319201 is this year's record.
2320
2321581
232200:32:46,740 --> 00:32:52,320
2323Now some of our former students and staff actually put together a clip to
2324
2325582
232600:32:52,320 --> 00:32:55,560
2327paint a picture for you of what this path of computer science
2328
2329583
233000:32:55,560 --> 00:32:57,360
2331and CS50 itself is.
2332
2333584
233400:32:57,360 --> 00:33:02,060
2335Let me go ahead and pull up, thanks to Mr. Harvard here, a video produced by
2336
2337585
233800:33:02,060 --> 00:33:06,825
2339some of your predecessors, if we could keep the lights up for this.
2340
2341586
234200:33:10,980 --> 00:35:39,126
2343[MUSIC PLAYING]
2344
2345587
234600:35:39,126 --> 00:35:42,630
2347>> SPEAKER 1: I had no idea that was going to happen.
2348
2349588
235000:35:42,630 --> 00:35:46,170
2351So a more serious look at what lies ahead.
2352
2353589
235400:35:46,170 --> 00:35:49,060
2355So in terms of the expectations of this course, you're indeed expected to
2356
2357590
235800:35:49,060 --> 00:35:52,817
2359attend or watch the course's lecture, submit eight problem sets, take two
2360
2361591
236200:35:52,817 --> 00:35:54,720
2363quizzes, submit a final project.
2364
2365592
236600:35:54,720 --> 00:35:58,640
2367In terms of grades, realize that my comments at the opening about
2368
2369593
237000:35:58,640 --> 00:36:02,380
2371pass-fail, something that we very much take to heart in CS50-- there is not
2372
2373594
237400:36:02,380 --> 00:36:05,110
2375nearly enough of a culture at Harvard of trying
2376
2377595
237800:36:05,110 --> 00:36:07,080
2379something and risking failure.
2380
2381596
238200:36:07,080 --> 00:36:09,870
2383Indeed, we had numbers of students, and myself in particular, who was
2384
2385597
238600:36:09,870 --> 00:36:15,310
2387worried about hurting your GPA, or getting a B in something like CS50,
2388
2389598
239000:36:15,310 --> 00:36:19,222
2391and the opportunity to take a course like this and other gateway courses at
2392
2393599
239400:36:19,222 --> 00:36:23,950
2395the introductory level pass-fail is a very underutilized opportunity at this
2396
2397600
239800:36:23,950 --> 00:36:24,740
2399college in general.
2400
2401601
240200:36:24,740 --> 00:36:29,750
2403And so please know, even I enrolled in this course initially for pass-fail
2404
2405602
240600:36:29,750 --> 00:36:32,840
2407credit alone, and even though I did switch at the end of the day, it was
2408
2409603
241000:36:32,840 --> 00:36:36,170
2411those five initial weeks, up to the fifth Monday of the semester, which is
2412
2413604
241400:36:36,170 --> 00:36:39,700
2415the cutoff, that allowed me to actually put foot into these new
2416
2417605
241800:36:39,700 --> 00:36:43,660
2419waters, and actually try something very unfamiliar and very uncomfortable
2420
2421606
242200:36:43,660 --> 00:36:45,540
2423for me at the time.
2424
2425607
242600:36:45,540 --> 00:36:49,440
2427>> So in terms now of what role the various angles by which you can
2428
2429608
243000:36:49,440 --> 00:36:51,530
2431approach this course serve--
2432
2433609
243400:36:51,530 --> 00:36:53,080
2435so lectures, It's up to you.
2436
2437610
243800:36:53,080 --> 00:36:56,550
2439If you engage with us in person at this venue, indeed, we know
2440
2441611
244200:36:56,550 --> 00:37:00,920
2443statistically that roughly 40% of you will kind of come and go over the
2444
2445612
244600:37:00,920 --> 00:37:05,140
2447course of the semester, and 10% of you we will never see again after today.
2448
2449613
245000:37:05,140 --> 00:37:07,540
2451And that's perfectly fine, to be honest.
2452
2453614
245400:37:07,540 --> 00:37:10,470
2455One of the defining characteristics of CS50 is that there are these
2456
2457615
245800:37:10,470 --> 00:37:14,220
2459innumerable resources, some of which we'll rattle through in just a moment,
2460
2461616
246200:37:14,220 --> 00:37:17,890
2463including lectures and sections, and things called walkthroughs, and office
2464
2465617
246600:37:17,890 --> 00:37:20,850
2467hours, and the like, and it's more resources than the typical student
2468
2469618
247000:37:20,850 --> 00:37:24,400
2471should have to or could physically take advantage of, but that's because
2472
2473619
247400:37:24,400 --> 00:37:27,510
2475of the disparate learning styles that any student body manifests.
2476
2477620
247800:37:27,510 --> 00:37:31,590
2479And so in lectures, the primary role as I see it is not to verbally push
2480
2481621
248200:37:31,590 --> 00:37:35,360
2483out fairly complex material and to necessarily deliver all of the
2484
2485622
248600:37:35,360 --> 00:37:39,040
2487intricacies of the fundamentals that we'll explore this semester, but
2488
2489623
249000:37:39,040 --> 00:37:42,430
2491rather, to do things like we've been doing thus far already, these examples
2492
2493624
249400:37:42,430 --> 00:37:46,480
2495involving humans on stage trying to paint a mental picture, and also
2496
2497625
249800:37:46,480 --> 00:37:49,430
2499create, dare I say, some of these memorable moments, so that even as you
2500
2501626
250200:37:49,430 --> 00:37:53,280
2503struggle with certain topics, you have these memories, like oh, even though
2504
2505627
250600:37:53,280 --> 00:37:56,740
2507that was fairly abstractly, the math, I got lost with carrying a one, like,
2508
2509628
251000:37:56,740 --> 00:38:00,260
2511it really, at the end of the day, is not all that dissimilar to something I
2512
2513629
251400:38:00,260 --> 00:38:01,060
2515already know.
2516
2517630
251800:38:01,060 --> 00:38:04,560
2519And so the role that lectures will serve either in person here in Sanders
2520
2521631
252200:38:04,560 --> 00:38:09,040
2523or online on video is really to set the stage mentally for you each week
2524
2525632
252600:38:09,040 --> 00:38:12,370
2527for the various concepts and problems that we'll be diving into.
2528
2529633
253000:38:12,370 --> 00:38:16,800
2531>> In terms of the high level concepts, most of these words might flow over
2532
2533634
253400:38:16,800 --> 00:38:17,670
2535your head for the moment.
2536
2537635
253800:38:17,670 --> 00:38:18,680
2539And that's fine.
2540
2541636
254200:38:18,680 --> 00:38:21,210
2543Those of you who will come into the course more comfortable will know of
2544
2545637
254600:38:21,210 --> 00:38:24,870
2547some of these topics, but typically for that 10% of the class for which
2548
2549638
255000:38:24,870 --> 00:38:28,600
2551they have much more background, taking AP computer science, programming since
2552
2553639
255400:38:28,600 --> 00:38:31,850
2555they were 12, realize that there will be opportunities in sections and
2556
2557640
255800:38:31,850 --> 00:38:36,030
2559problem sets to go all the more depth into various topics, filling in
2560
2561641
256200:38:36,030 --> 00:38:39,590
2563whatever gaps you might have from your high school or prior background.
2564
2565642
256600:38:39,590 --> 00:38:43,440
2567In terms of the languages, realize that what language we use in CS50 is
2568
2569643
257000:38:43,440 --> 00:38:45,360
2571largely irrelevant at the end of the day.
2572
2573644
257400:38:45,360 --> 00:38:49,500
2575We happen to use primarily a language called C. Toward the end of the
2576
2577645
257800:38:49,500 --> 00:38:53,260
2579semester, we introduce web-centric languages, like PHP and JavaScript.
2580
2581646
258200:38:53,260 --> 00:38:56,800
2583But we and others could teach a course like this in most any modern
2584
2585647
258600:38:56,800 --> 00:38:57,740
2587high-level language--
2588
2589648
259000:38:57,740 --> 00:39:01,710
2591Python, and Ruby, and others are quite popular these days, because realize,
2592
2593649
259400:39:01,710 --> 00:39:04,350
2595at the end of the day, you're not learning in this C. You're not
2596
2597650
259800:39:04,350 --> 00:39:06,310
2599learning PHP or JavaScript.
2600
2601651
260200:39:06,310 --> 00:39:10,190
2603You're learning how to solve problems, whether web-based, computer-based, or
2604
2605652
260600:39:10,190 --> 00:39:14,810
2607data-oriented itself, using these simply as tools.
2608
2609653
261000:39:14,810 --> 00:39:17,910
2611>> Now in terms of the logistics, you'll use something eventually called the
2612
2613654
261400:39:17,910 --> 00:39:18,810
2615CS50 appliance.
2616
2617655
261800:39:18,810 --> 00:39:22,150
2619Does not matter if you have a Mac, a PC, a Linux computer, or the like,
2620
2621656
262200:39:22,150 --> 00:39:25,740
2623you'll have freely available software starting next week with which to use
2624
2625657
262600:39:25,740 --> 00:39:28,890
2627the CS50 appliance, a virtual environment that you'll use on your
2628
2629658
263000:39:28,890 --> 00:39:32,720
2631own computer, so that you and all of your classmates have a uniform Linux
2632
2633659
263400:39:32,720 --> 00:39:34,220
2635desktop in this case.
2636
2637660
263800:39:34,220 --> 00:39:37,010
2639It's the problem sets, though, in which you'll really get your hands
2640
2641661
264200:39:37,010 --> 00:39:37,910
2643dirty in the course.
2644
2645662
264600:39:37,910 --> 00:39:40,820
2647And at the end of the day, it's the problem sets, I think, that really
2648
2649663
265000:39:40,820 --> 00:39:43,510
2651define a student's experience in this course.
2652
2653664
265400:39:43,510 --> 00:39:46,660
2655Realize that many of the problem sets will be released in two editions--
2656
2657665
265800:39:46,660 --> 00:39:50,140
2659a standard edition that we expect and encourage 90% of the
2660
2661666
266200:39:50,140 --> 00:39:51,690
2663class to dive into.
2664
2665667
266600:39:51,690 --> 00:39:55,255
2667But we also released some problem sets in so-called hacker editions, and you
2668
2669668
267000:39:55,255 --> 00:39:58,110
2671know it's the hacker edition, because on every page with a watermark, it
2672
2673669
267400:39:58,110 --> 00:39:59,970
2675says hacker edition on it.
2676
2677670
267800:39:59,970 --> 00:40:03,390
2679And that's for this demographic of you who have AP computer science with 10
2680
2681671
268200:40:03,390 --> 00:40:06,500
2683years of programming under your belt, and are looking to fill in those gaps,
2684
2685672
268600:40:06,500 --> 00:40:10,170
2687and to have more formal, rather than self-taught training perhaps, realize
2688
2689673
269000:40:10,170 --> 00:40:13,420
2691that there is a very substantial demographic in the class that has
2692
2693674
269400:40:13,420 --> 00:40:15,230
2695precisely that same goal.
2696
2697675
269800:40:15,230 --> 00:40:16,460
2699You'll have five late days.
2700
2701676
270200:40:16,460 --> 00:40:19,380
2703Problem sets are generally due on Thursdays, but you can extend five of
2704
2705677
270600:40:19,380 --> 00:40:22,900
2707those deadlines using these things called late days, and we'll also drop
2708
2709678
271000:40:22,900 --> 00:40:25,520
2711your lowest score at the end of the semester, per the
2712
2713679
271400:40:25,520 --> 00:40:27,540
2715particulars in the syllabus.
2716
2717680
271800:40:27,540 --> 00:40:31,630
2719>> But another defining characteristic of CS50 over the years has become office
2720
2721681
272200:40:31,630 --> 00:40:36,060
2723hours, an opportunity that you saw visually in photos a bit ago in which
2724
2725682
272600:40:36,060 --> 00:40:39,090
2727we gather previously in the house dining halls, prior to that, in the
2728
2729683
273000:40:39,090 --> 00:40:42,120
2731basement of the science center, and this year in Annenberg Hall, four
2732
2733684
273400:40:42,120 --> 00:40:45,670
2735nights a week from 8 PM to 11:00 PM, where you'll have this very much
2736
2737685
273800:40:45,670 --> 00:40:49,810
2739shared experience of working on, struggling through certain problems,
2740
2741686
274200:40:49,810 --> 00:40:52,520
2743but with a substantial support structure in place.
2744
2745687
274600:40:52,520 --> 00:40:55,780
2747Indeed, the way this will work is you'll arrive at Annenberg if you have
2748
2749688
275000:40:55,780 --> 00:40:56,950
2751some question during the week.
2752
2753689
275400:40:56,950 --> 00:41:00,190
2755You'll bring your laptop, you'll sit down, grab some food, and you'll log
2756
2757690
275800:41:00,190 --> 00:41:04,100
2759in to CS50 discuss, a web-based utility that the teaching staff has
2760
2761691
276200:41:04,100 --> 00:41:07,860
2763developed that will allow you to post questions and see followups in a
2764
2765692
276600:41:07,860 --> 00:41:12,590
2767typical discussion forum sense, using labels and the like, and auto-complete
2768
2769693
277000:41:12,590 --> 00:41:13,790
2771to search the data.
2772
2773694
277400:41:13,790 --> 00:41:17,950
2775But you'll also be able to, during the hours of office hours, have your
2776
2777695
277800:41:17,950 --> 00:41:20,490
2779questions escalated to actual human beings.
2780
2781696
278200:41:20,490 --> 00:41:24,000
2783Indeed, the goal ultimately is so that one, we begin to build up over the
2784
2785697
278600:41:24,000 --> 00:41:27,740
2787course of the semester, a corpus of hopefully really useful information,
2788
2789698
279000:41:27,740 --> 00:41:31,770
2791common answers to common questions, so that you yourself can solve problems
2792
2793699
279400:41:31,770 --> 00:41:35,980
2795and get unstuck as quickly as possible, while having the teaching
2796
2797700
279800:41:35,980 --> 00:41:40,320
2799staff-- usually 20% to 30% of the teaching Fellows and course assistants
2800
2801701
280200:41:40,320 --> 00:41:41,780
2803on staff at once.
2804
2805702
280600:41:41,780 --> 00:41:45,150
2807>> We will have what's called the CS50 greeter in Annenberg, and when we
2808
2809703
281000:41:45,150 --> 00:41:46,610
2811determine that, you know what?
2812
2813704
281400:41:46,610 --> 00:41:50,900
2815This question, we really answer effectively online.
2816
2817705
281800:41:50,900 --> 00:41:51,930
2819We need to see your computer.
2820
2821706
282200:41:51,930 --> 00:41:53,470
2823We want to talk to you one on one.
2824
2825707
282600:41:53,470 --> 00:41:56,060
2827You're really struggling, and you therefore want to talk one on one
2828
2829708
283000:41:56,060 --> 00:41:59,160
2831alongside someone, you'll be dispatched to the CS50 greater, a
2832
2833709
283400:41:59,160 --> 00:42:02,700
2835teaching fellow holding, literally, an iPod that has students' names on one
2836
2837710
283800:42:02,700 --> 00:42:04,880
2839side, teaching staffs names on the other.
2840
2841711
284200:42:04,880 --> 00:42:07,900
2843We will collect your name, followed by the name of a teaching staff, and your
2844
2845712
284600:42:07,900 --> 00:42:12,020
2847computer screen will start blinking, saying, please go see Alice, or please
2848
2849713
285000:42:12,020 --> 00:42:14,110
2851go see Bob at the staff table.
2852
2853714
285400:42:14,110 --> 00:42:17,240
2855And so in this way, we'll be able to dispatch things as efficiently as
2856
2857715
285800:42:17,240 --> 00:42:22,030
2859possible, as well as guide you toward solutions all the more readily.
2860
2861716
286200:42:22,030 --> 00:42:25,900
2863In sections, these will be opportunities for more intimate hands
2864
2865717
286600:42:25,900 --> 00:42:30,080
2867on opportunities with one of the teaching Fellows and 12 to 16 or so of
2868
2869718
287000:42:30,080 --> 00:42:34,020
2871your classmates, in which each week, we'll have problems in the problem set
2872
2873719
287400:42:34,020 --> 00:42:36,750
2875that ask a number of conceptual questions, and a number of bite-sized
2876
2877720
287800:42:36,750 --> 00:42:39,180
2879programming questions that you could figure out on your own, and you could
2880
2881721
288200:42:39,180 --> 00:42:42,140
2883work on your own, but in the context of section, we'll work through
2884
2885722
288600:42:42,140 --> 00:42:45,230
2887collectively some of those problems, and go where the
2888
2889723
289000:42:45,230 --> 00:42:46,700
2891conversation takes us.
2892
2893724
289400:42:46,700 --> 00:42:51,340
2895>> In addition, in section, will you have opportunities to review submissions of
2896
2897725
289800:42:51,340 --> 00:42:54,470
2899homework that you've made, your classmates, sometimes anonymized,
2900
2901726
290200:42:54,470 --> 00:42:56,780
2903always by an opt-in, if you would like to share the
2904
2905727
290600:42:56,780 --> 00:42:57,930
2907work that you've submitted.
2908
2909728
291000:42:57,930 --> 00:43:00,890
2911So it'll really be a two-directional conversation, and opportunity to
2912
2913729
291400:43:00,890 --> 00:43:05,050
2915review your own work in a much more dynamic sense, rather than simply
2916
2917730
291800:43:05,050 --> 00:43:08,620
2919looking at a PDF or printout, and thinking about it for a few seconds,
2920
2921731
292200:43:08,620 --> 00:43:10,760
2923and not necessarily absorbing the feedback that the
2924
2925732
292600:43:10,760 --> 00:43:12,270
2927teaching staff have provided.
2928
2929733
293000:43:12,270 --> 00:43:14,670
2931And you'll use a tool here called CS50 spaces.
2932
2933734
293400:43:14,670 --> 00:43:18,165
2935For those unfamiliar, this is the language known as C at top left, and
2936
2937735
293800:43:18,165 --> 00:43:21,360
2939you'll get to know this over time, but this is a web-based utility that we'll
2940
2941736
294200:43:21,360 --> 00:43:25,350
2943use in section that will allow you and your 15 or so classmates to login with
2944
2945737
294600:43:25,350 --> 00:43:27,120
2947your teaching fellow at the front of the room.
2948
2949738
295000:43:27,120 --> 00:43:28,890
2951You'll be able to write code in this window.
2952
2953739
295400:43:28,890 --> 00:43:31,800
2955You'll be able to chat electronically if you're not actually at section at
2956
2957740
295800:43:31,800 --> 00:43:35,300
2959that particular moment, and your teaching fellow, when it comes time to
2960
2961741
296200:43:35,300 --> 00:43:41,295
2963discuss Alice or Bob's solution in class, the teaching fellow can click a
2964
2965742
296600:43:41,295 --> 00:43:45,210
2967button, and voila, project onto the screen whatever that student has been
2968
2969743
297000:43:45,210 --> 00:43:47,120
2971working on at that particular point in time.
2972
2973744
297400:43:47,120 --> 00:43:50,400
2975So for those of you have friends who have taken CS50 in the past, realize
2976
2977745
297800:43:50,400 --> 00:43:53,790
2979that sections have been significantly rebooted this year to be all the more
2980
2981746
298200:43:53,790 --> 00:43:57,700
2983active, all the more dynamic, and really, a two-way conversation between
2984
2985747
298600:43:57,700 --> 00:44:00,300
2987teaching staff and students.
2988
2989748
299000:44:00,300 --> 00:44:01,160
2991>> And walkthroughs.
2992
2993749
299400:44:01,160 --> 00:44:04,520
2995So for these problem sets, we also offer not only the specification
2996
2997750
299800:44:04,520 --> 00:44:08,110
2999itself, which is generally a fairly detailed PDF, but also, things known
3000
3001751
300200:44:08,110 --> 00:44:12,070
3003as walkthroughs, whereby one member of the teaching staff will lead a weekly
3004
3005752
300600:44:12,070 --> 00:44:15,460
3007session that literally walks you through the problem set, giving you
3008
3009753
301000:44:15,460 --> 00:44:18,700
3011hints, and advice, and starting points, and is meant to ask the very
3012
3013754
301400:44:18,700 --> 00:44:21,370
3015frequently asked question, where do I begin?
3016
3017755
301800:44:21,370 --> 00:44:25,550
3019Well, you begin either by diving into the spec on its own, or by attending
3020
3021756
302200:44:25,550 --> 00:44:27,230
3023or watching these walkthroughs.
3024
3025757
302600:44:27,230 --> 00:44:29,550
3027The first walkthrough, in fact, will be this Friday.
3028
3029758
303000:44:29,550 --> 00:44:32,120
3031They'll be on Fridays, not so much because we think it'll be a popular
3032
3033759
303400:44:32,120 --> 00:44:34,940
3035time, but because we can then film them very early in the week, and get
3036
3037760
303800:44:34,940 --> 00:44:38,410
3039them online by the weekend so that you have as many days as possible to
3040
3041761
304200:44:38,410 --> 00:44:40,530
3043actually engage in that content as well.
3044
3045762
304600:44:40,530 --> 00:44:43,050
3047But more on that in lecture this Friday.
3048
3049763
305000:44:43,050 --> 00:44:46,930
3051>> Now in terms of the support structure, the most significant statistic is
3052
3053764
305400:44:46,930 --> 00:44:50,600
3055perhaps the 108 teaching Fellows and course assistants that this course
3056
3057765
305800:44:50,600 --> 00:44:51,870
3059currently has.
3060
3061766
306200:44:51,870 --> 00:44:54,490
3063If some of you who don't have conflicting classes would like to join
3064
3065767
306600:44:54,490 --> 00:44:58,900
3067me up here on stage, it is these guys who will ultimately really define your
3068
3069768
307000:44:58,900 --> 00:45:00,150
3071experience in the course.
3072
3073769
307400:45:08,890 --> 00:45:11,870
3075I had a lot of teaching Fellows teaching me classes in the day, and I
3076
3077770
307800:45:11,870 --> 00:45:15,650
3079remember very few of those, frankly, but to date, I still remember among
3080
3081771
308200:45:15,650 --> 00:45:19,990
3083those few my CS50 TF. who really helped me answer questions, who really
3084
3085772
308600:45:19,990 --> 00:45:22,830
3087helped me when I was struggling, and really was a partner in this
3088
3089773
309000:45:22,830 --> 00:45:25,770
3091experience of learning a very new world.
3092
3093774
309400:45:25,770 --> 00:45:29,100
3095In a little bit, all of these guys will join you outside for cake, which
3096
3097775
309800:45:29,100 --> 00:45:32,560
3099is a tradition of CS50, in the transept of Memorial Hall, but let me
3100
3101776
310200:45:32,560 --> 00:45:36,980
3103first introduce you to Nate Hardison again, Rob Boden, and Tommy
3104
3105777
310600:45:36,980 --> 00:45:39,370
3107MacWilliams, this year's course heads.
3108
3109778
311000:45:39,370 --> 00:45:41,385
3111If you guys would join me here in the middle.
3112
3113779
311400:45:47,380 --> 00:45:50,045
3115They have all prepared some inspirational remarks.
3116
3117780
311800:45:53,212 --> 00:45:55,775
3119>> TOMMY MACWILLIAMS: I didn't prepare anything inspirational.
3120
3121781
312200:45:55,775 --> 00:45:57,170
3123But my name is Tommy.
3124
3125782
312600:45:57,170 --> 00:45:58,370
3127I'm a senior in Mather.
3128
3129783
313000:45:58,370 --> 00:46:01,620
3131I'm studying computer science, really excited to be on the heads team, and
3132
3133784
313400:46:01,620 --> 00:46:03,720
3135going through the CS50 journey with you.
3136
3137785
313800:46:03,720 --> 00:46:06,750
3139What I really love about CS50 is how it really teaches you to think about
3140
3141786
314200:46:06,750 --> 00:46:08,180
3143problems in a new way.
3144
3145787
314600:46:08,180 --> 00:46:11,170
3147This is really a skill that's going to be invaluable, no matter what field
3148
3149788
315000:46:11,170 --> 00:46:12,090
3151you go into.
3152
3153789
315400:46:12,090 --> 00:46:14,800
3155And not only that, but we offer more free candy than any
3156
3157790
315800:46:14,800 --> 00:46:16,050
3159other course on campus.
3160
3161791
316200:46:22,730 --> 00:46:24,350
3163So I'm just really looking forward to seeing what
3164
3165792
316600:46:24,350 --> 00:46:25,645
3167everyone builds this semester.
3168
3169793
317000:46:25,645 --> 00:46:28,860
3171And if anyone has any questions now or throughout the semester, definitely
3172
3173794
317400:46:28,860 --> 00:46:32,976
3175feel free to reach out to me, and I'd be happy to help.
3176
3177795
317800:46:32,976 --> 00:46:33,920
3179>> ROB BODEN: Hi.
3180
3181796
318200:46:33,920 --> 00:46:34,670
3183I'm Rob Boden.
3184
3185797
318600:46:34,670 --> 00:46:35,920
3187I'm a senior in Kirkland.
3188
3189798
319000:46:40,030 --> 00:46:41,890
3191Yeah, that's right.
3192
3193799
319400:46:41,890 --> 00:46:44,070
3195We're all really excited for this next semester.
3196
3197800
319800:46:44,070 --> 00:46:45,325
3199We hope you're all excited.
3200
3201801
320200:46:49,850 --> 00:46:51,580
3203I wasn't expecting that.
3204
3205802
320600:46:51,580 --> 00:46:52,530
3207Yeah.
3208
3209803
321000:46:52,530 --> 00:46:56,030
3211So we put so much effort into making this semester really great, and as
3212
3213804
321400:46:56,030 --> 00:46:58,830
3215long as you're willing to put in the effort, there's so much you can get
3216
3217805
321800:46:58,830 --> 00:47:00,080
3219out of this course.
3220
3221806
322200:47:06,810 --> 00:47:10,470
3223You can get a lot of fun out of this course.
3224
3225807
322600:47:10,470 --> 00:47:13,510
3227We wouldn't have a staff of 108 if you couldn't get a lot of fun out of it,
3228
3229808
323000:47:13,510 --> 00:47:17,450
3231so just try to be involved, and you won't regret it.
3232
3233809
323400:47:24,815 --> 00:47:26,020
3235>> NATE HARDISON: Hi, guys.
3236
3237810
323800:47:26,020 --> 00:47:26,930
3239I'm Nate.
3240
3241811
324200:47:26,930 --> 00:47:29,700
3243I'm the preceptor for the course.
3244
3245812
324600:47:29,700 --> 00:47:31,200
3247I'm really excited to be here as well.
3248
3249813
325000:47:31,200 --> 00:47:33,100
3251This is my first year here.
3252
3253814
325400:47:33,100 --> 00:47:36,520
3255I hope you all take this course, and enjoy it as much as I've
3256
3257815
325800:47:36,520 --> 00:47:37,960
3259enjoyed it so far.
3260
3261816
326200:47:37,960 --> 00:47:41,520
3263And if you ever want to learn how to come to nine or ten in binary, come
3264
3265817
326600:47:41,520 --> 00:47:43,351
3267talk to me.
3268
3269818
327000:47:43,351 --> 00:47:46,480
3271>> SPEAKER 1: So at the risk of leaving these guys here on stage a bit
3272
3273819
327400:47:46,480 --> 00:47:50,330
3275awkwardly, let's whirl through just a few of the things that await before we
3276
3277820
327800:47:50,330 --> 00:47:51,500
3279adjourn for cake.
3280
3281821
328200:47:51,500 --> 00:47:52,980
3283What is it that lies ahead?
3284
3285822
328600:47:52,980 --> 00:47:56,410
3287Well, if we take a quick look back at last year, in problems set zero, your
3288
3289823
329000:47:56,410 --> 00:47:59,960
3291predecessors dove into a programming language called Scratch, a graphical
3292
3293824
329400:47:59,960 --> 00:48:03,160
3295programming language you'll use in the first days of the course, starting
3296
3297825
329800:48:03,160 --> 00:48:07,080
3299this Friday, to learn some concepts unfamiliar to some of you, but realize
3300
3301826
330200:48:07,080 --> 00:48:10,330
3303there will be an advanced aspect of this for those of you with prior
3304
3305827
330600:48:10,330 --> 00:48:11,070
3307background.
3308
3309828
331000:48:11,070 --> 00:48:14,082
3311>> In last year's problem set two, students dove into the world of
3312
3313829
331400:48:14,082 --> 00:48:17,740
3315cryptography, the art of enciphering or scrambling information,
3316
3317830
331800:48:17,740 --> 00:48:21,310
3319implementing programs that encrypted data, and in the hacker edition last
3320
3321831
332200:48:21,310 --> 00:48:26,710
3323year, did students proceed to crack or decode the passwords in a typical
3324
3325832
332600:48:26,710 --> 00:48:31,190
3327computer's EXE password file by coming up with algorithms and heuristics for
3328
3329833
333000:48:31,190 --> 00:48:34,980
3331brute force figuring out what someone's password on a computer
3332
3333834
333400:48:34,980 --> 00:48:35,770
3335system was.
3336
3337835
333800:48:35,770 --> 00:48:39,820
3339Last year or two, in problem set four did students
3340
3341836
334200:48:39,820 --> 00:48:41,420
3343implement the game of Sudoku.
3344
3345837
334600:48:41,420 --> 00:48:45,180
3347And the hacker edition that your did students not just implement how to
3348
3349838
335000:48:45,180 --> 00:48:49,360
3351play the game, but actually a solver, whereby the computer can provide you,
3352
3353839
335400:48:49,360 --> 00:48:52,260
3355the human, with hints, by more rapidly than you solving
3356
3357840
335800:48:52,260 --> 00:48:53,550
3359that particular problem.
3360
3361841
336200:48:53,550 --> 00:48:57,420
3363>> In problem set five, we did forensics, this art of recovering information
3364
3365842
336600:48:57,420 --> 00:49:00,160
3367that was accidentally or very deliberately
3368
3369843
337000:49:00,160 --> 00:49:01,450
3371deleted from the computer.
3372
3373844
337400:49:01,450 --> 00:49:04,530
3375Last year, the teaching staff and I strolled around campus taking
3376
3377845
337800:49:04,530 --> 00:49:07,780
3379photographs of people, places, and things, and then accidentally
3380
3381846
338200:49:07,780 --> 00:49:10,900
3383formatted the media card on our camera that had all those photos.
3384
3385847
338600:49:10,900 --> 00:49:15,920
3387But no problem, we made a forensics image of this media card, handed out
3388
3389848
339000:49:15,920 --> 00:49:19,410
3391to all students in the class, and challenged them to write programs that
3392
3393849
339400:49:19,410 --> 00:49:22,240
3395recovered all of the JPEGs from that card.
3396
3397850
339800:49:22,240 --> 00:49:24,720
3399And this is actually one of our favorite problem sets, and I dug up an
3400
3401851
340200:49:24,720 --> 00:49:27,750
3403old email from one of your predecessors which was great fun to
3404
3405852
340600:49:27,750 --> 00:49:29,940
3407read sometime ago.
3408
3409853
341000:49:29,940 --> 00:49:31,270
3411>> This is from Matt.
3412
3413854
341400:49:31,270 --> 00:49:34,970
3415Dear David, yesterday my sister accidentally formatted her camera's SD
3416
3417855
341800:49:34,970 --> 00:49:37,770
3419card and lost a year's worth of memorable photos.
3420
3421856
342200:49:37,770 --> 00:49:40,830
3423She unfortunately isn't the best of backing up her data.
3424
3425857
342600:49:40,830 --> 00:49:43,780
3427But this situation reminded me of P set five so I thought I would try to
3428
3429858
343000:49:43,780 --> 00:49:47,620
3431run her SD card through the recover program that I wrote all the way back
3432
3433859
343400:49:47,620 --> 00:49:48,180
3435in October.
3436
3437860
343800:49:48,180 --> 00:49:51,660
3439So after four hours of figuring out how to create a raw image from the
3440
3441861
344200:49:51,660 --> 00:49:53,350
3443formatted SD card--
3444
3445862
344600:49:53,350 --> 00:49:56,050
3447Google prove to be pretty helpful in this regard, until I ironically
3448
3449863
345000:49:56,050 --> 00:50:00,140
3451happened to come across your instructions on the internet--
3452
3453864
345400:50:00,140 --> 00:50:03,080
3455after tinkering around with some of the command line arguments, I managed
3456
3457865
345800:50:03,080 --> 00:50:06,020
3459to create the forensic image, and after installing and configuring the
3460
3461866
346200:50:06,020 --> 00:50:10,600
3463CS50 appliance, I managed to run the forensic image through my program, and
3464
3465867
346600:50:10,600 --> 00:50:16,065
3467recover all 1,027 of my sister's photographs, writes Matt.
3468
3469868
347000:50:25,210 --> 00:50:28,600
3471>> In last year's problem set six, we gave the students a dictionary of
3472
3473869
347400:50:28,600 --> 00:50:33,350
3475150,000 English words, and challenged them to write a spell checker that
3476
3477870
347800:50:33,350 --> 00:50:36,870
3479answered queries of the form, is this word spelled correctly or incorrectly
3480
3481871
348200:50:36,870 --> 00:50:38,150
3483as fast as possible.
3484
3485872
348600:50:38,150 --> 00:50:41,900
3487And on opt-in basis were students allowed to then challenge classmates
3488
3489873
349000:50:41,900 --> 00:50:45,220
3491by posting their results, the amount of RAM that they use, the number of
3492
3493874
349400:50:45,220 --> 00:50:49,190
3495CPU cycles or seconds that they used, so that students were then ranked on
3496
3497875
349800:50:49,190 --> 00:50:53,010
3499the course's website-- again, purely optional aspect of it, but great fun
3500
3501876
350200:50:53,010 --> 00:50:56,970
3503in that very often would a student get to position number 10 or so on the big
3504
3505877
350600:50:56,970 --> 00:51:00,370
3507board, on the website, go off to dinner and then come back, and realize
3508
3509878
351000:51:00,370 --> 00:51:04,340
3511his roommate had just edged in front of him or her on the big board,
3512
3513879
351400:51:04,340 --> 00:51:07,620
3515thereby pouring another two or three hours just to one
3516
3517880
351800:51:07,620 --> 00:51:09,300
3519up his or her roommate.
3520
3521881
352200:51:09,300 --> 00:51:11,730
3523>> So we look forward to something similar this year as well.
3524
3525882
352600:51:11,730 --> 00:51:15,400
3527In problem set 7, did we steer in the direction of web programming, actually
3528
3529883
353000:51:15,400 --> 00:51:19,320
3531solving problems in the ever-increasingly common environment
3532
3533884
353400:51:19,320 --> 00:51:20,300
3535of a web browser.
3536
3537885
353800:51:20,300 --> 00:51:23,670
3539Know in decreasingly do we download software on Macs and PCs, but
3540
3541886
354200:51:23,670 --> 00:51:25,790
3543increasingly, do we do it all within the web.
3544
3545887
354600:51:25,790 --> 00:51:30,140
3547>> And indeed, last year, some 88% of students' final projects in the course
3548
3549888
355000:51:30,140 --> 00:51:31,790
3551were web-based.
3552
3553889
355400:51:31,790 --> 00:51:34,670
3555And those, too, are skills that you will derive from this class by
3556
3557890
355800:51:34,670 --> 00:51:38,410
3559course's end, because what awaits at course's end is the CS50 Fair, this
3560
3561891
356200:51:38,410 --> 00:51:42,100
3563exhibition that's based on the idea of a science fair, but in this version of
3564
3565892
356600:51:42,100 --> 00:51:45,370
3567a fair do all students in the class bring their laptops, and their
3568
3569893
357000:51:45,370 --> 00:51:49,720
3571friends, and family, and others to Northwest Science, a large building on
3572
3573894
357400:51:49,720 --> 00:51:53,420
3575campus, set up their laptop, get some food, get some popcorn and drink, and
3576
3577895
357800:51:53,420 --> 00:51:57,180
3579then exhibit their final projects for all those in attendance, who last year
3580
3581896
358200:51:57,180 --> 00:52:01,510
3583numbered some 2,500 attendees from across campus, and expressions like
3584
3585897
358600:52:01,510 --> 00:52:05,510
3587this, and like this were not uncommon at the fair.
3588
3589898
359000:52:05,510 --> 00:52:09,660
3591>> Leading up to the fair is the CS50 Hackathon, an opportunity to hop on a
3592
3593899
359400:52:09,660 --> 00:52:13,610
3595Harvard shuttle, head down the street to Microsoft at 8 PM, and not go home
3596
3597900
359800:52:13,610 --> 00:52:14,810
3599until 7 AM.
3600
3601901
360200:52:14,810 --> 00:52:19,040
3603We serve first dinner at 8 PM, second dinner at 1 AM, and for those still
3604
3605902
360600:52:19,040 --> 00:52:22,540
3607standing at 5 AM, do we treat to pancakes at IHOP.
3608
3609903
361000:52:22,540 --> 00:52:26,580
3611And the Hackathon is an opportunity, as pictured here, to dive into your
3612
3613904
361400:52:26,580 --> 00:52:30,470
3615final projects, whether working on your own or with friends in a
3616
3617905
361800:52:30,470 --> 00:52:33,770
3619collaborative environment, where the entire teaching staff is working well
3620
3621906
362200:52:33,770 --> 00:52:37,560
3623into the night with an ample supply of Hong Kong Chinese food.
3624
3625907
362600:52:37,560 --> 00:52:43,070
3627At 5 AM will such images as these be quite common this year as well.
3628
3629908
363000:52:43,070 --> 00:52:48,170
3631>> So as we adjourn in a moment for cake, keep in mind that 76% percent of the
3632
3633909
363400:52:48,170 --> 00:52:51,720
3635people in this room have no prior experience, and as per the syllabus,
3636
3637910
363800:52:51,720 --> 00:52:55,300
3639what ultimately matters in this course is not so much where you end up
3640
3641911
364200:52:55,300 --> 00:52:59,540
3643relative to your classmates, but where you, in week 11, end up relative to
3644
3645912
364600:52:59,540 --> 00:53:01,540
3647yourself in week zero.
3648
3649913
365000:53:01,540 --> 00:53:03,690
3651This is CS50.