1 00:00:01,491 --> 00:01:38,659 [Powered by Google Translate] [Musik spiller] 2 00:05:18,350 --> 00:05:20,630 David J. Malan: Dette er CS50. 3 00:05:20,630 --> 00:05:23,610 Så jeg var hvor du er nu nogle år siden. 4 00:05:23,610 --> 00:05:27,850 Og da jeg var en freshman dengang, jeg var egentlig ikke på 5 00:05:27,850 --> 00:05:30,350 denne vej at gøre datalogi, at gøre teknik. 6 00:05:30,350 --> 00:05:33,650 Faktisk kom jeg på denne plads som en regering koncentrator. 7 00:05:33,650 --> 00:05:35,430 Jeg havde været i high school, et barn, der 8 00:05:35,430 --> 00:05:36,770 kunne lide ting som historien. 9 00:05:36,770 --> 00:05:39,350 Jeg kunne godt lide forfatningsret slags engelsk og matematik. 10 00:05:39,350 --> 00:05:41,300 Det er ligesom slags godt afrundet, men gjorde ikke 11 00:05:41,300 --> 00:05:43,290 nødvendigvis vide ting, som jeg ikke havde været 12 00:05:43,290 --> 00:05:44,380 underviste i gymnasiet. 13 00:05:44,380 --> 00:05:47,060 Og så freshman år havde jeg denne bæven, hvorved selv 14 00:05:47,060 --> 00:05:49,730 selvom jeg kunne godt lide computere, spillede computerspil og de 15 00:05:49,730 --> 00:05:52,080 gerne, jeg helt sikkert aldrig tænkt på mig selv som en 16 00:05:52,080 --> 00:05:54,830 computer person, en datalog. 17 00:05:54,830 --> 00:05:56,705 Og helt ærligt, jeg troede mine venner i gymnasiet, som 18 00:05:56,705 --> 00:06:01,840 tog datalogi var lidt af et nørder. 19 00:06:01,840 --> 00:06:04,910 Og dog, da jeg kom her på campus, var der 20 00:06:04,910 --> 00:06:06,240 dette kursus, CS50. 21 00:06:06,240 --> 00:06:09,640 >> Og på det tidspunkt, havde det denne ry for virkelig at være 22 00:06:09,640 --> 00:06:10,480 noget at passe på. 23 00:06:10,480 --> 00:06:11,560 Det var et godt kursus. 24 00:06:11,560 --> 00:06:13,425 Det var en sjov kursus. 25 00:06:13,425 --> 00:06:16,850 Men skulle du faktisk få at foden i døren. 26 00:06:16,850 --> 00:06:19,950 Og selv jeg ikke krydse denne tærskel freshman år. 27 00:06:19,950 --> 00:06:23,330 Og jeg gik på min måde at være en regering koncentrator, går 28 00:06:23,330 --> 00:06:25,190 gennem så mange af forudsætningerne, som jeg kunne, 29 00:06:25,190 --> 00:06:28,010 cross-tælle ting for gen ed eller kerne og lignende. 30 00:06:28,010 --> 00:06:30,290 Og så sophomore år, af en eller anden grund, fik jeg op 31 00:06:30,290 --> 00:06:33,450 nerve til trin fod i Science Center B, hvor CS50 var. 32 00:06:33,450 --> 00:06:36,150 En meget berømt datalog ved navn Brian 33 00:06:36,150 --> 00:06:38,530 Kernighan underviste her dette år. 34 00:06:38,530 --> 00:06:42,490 Og selv da jeg var kun villig til rent faktisk at udfylde 35 00:06:42,490 --> 00:06:45,600 mit studiekort ved at tage denne klasse bestået / ikke bestået. 36 00:06:45,600 --> 00:06:47,590 Jeg kiggede mig omkring, og jeg regnede alle i denne ens 37 00:06:47,590 --> 00:06:49,550 må kende måde mere om datalogi, om 38 00:06:49,550 --> 00:06:50,750 programmering, om computere. 39 00:06:50,750 --> 00:06:52,370 Alle skal man være programmering, i dette rum, 40 00:06:52,370 --> 00:06:53,510 da de var 12. 41 00:06:53,510 --> 00:06:55,330 Men, ja, det var ikke tilfældet. 42 00:06:55,330 --> 00:06:58,660 Og så den allersidste dag, den femte mandag i semesteret, 43 00:06:58,660 --> 00:07:01,410 har jeg tage dette spring og ændring fra bestået / ikke til en 44 00:07:01,410 --> 00:07:04,120 brev klasse og endte med at ændre min koncentration, at 45 00:07:04,120 --> 00:07:05,330 Samme dag til datalogi. 46 00:07:05,330 --> 00:07:07,870 >> Nu, det er ikke vores mål i denne klasse, at vende jer alle 47 00:07:07,870 --> 00:07:10,500 i datalogi koncentratorer, men virkelig til 48 00:07:10,500 --> 00:07:13,420 foreslår, at der er en mulighed på dette område og 49 00:07:13,420 --> 00:07:16,500 på andre områder, som du kan være helt ukendt 50 00:07:16,500 --> 00:07:18,750 da gymnasierne typisk følge en temmelig 51 00:07:18,750 --> 00:07:23,140 standard læseplaner sti, men vove sig i, i CS50, i 52 00:07:23,140 --> 00:07:24,030 nye farvande. 53 00:07:24,030 --> 00:07:27,040 Og hvis du sidder her i dag tænker du ikke 54 00:07:27,040 --> 00:07:31,130 faktisk tilhører, så gør de fleste af de folk til højre og 55 00:07:31,130 --> 00:07:31,980 til venstre. 56 00:07:31,980 --> 00:07:36,640 Faktisk sidste år, 76% af eleverne i denne klasse ikke havde nogen 57 00:07:36,640 --> 00:07:37,840 tidligere erfaring. 58 00:07:37,840 --> 00:07:40,550 Så i modsætning til hvad du måske tror, ​​de fleste af de mennesker 59 00:07:40,550 --> 00:07:43,630 sidde her i dag, ikke i virkeligheden have nogen forudgående 60 00:07:43,630 --> 00:07:44,970 erfaringer. 61 00:07:44,970 --> 00:07:49,890 18% har taget en CS klasse, og 6% har taget to eller flere. 62 00:07:49,890 --> 00:07:52,440 I mellemtiden beder vi vores studerende hvert år for at beskrive 63 00:07:52,440 --> 00:07:54,440 selv i komfort niveau. 64 00:07:54,440 --> 00:07:56,870 Og der er ingen definition af dette. 65 00:07:56,870 --> 00:07:58,730 Du skal bare slags vide det, hvis du ikke er meget 66 00:07:58,730 --> 00:08:00,340 komfortabel i CS50. 67 00:08:00,340 --> 00:08:04,270 Og sidste år havde vi 55% i denne grønne pie skive her 68 00:08:04,270 --> 00:08:06,720 selvbeskrivende som mindre komfortable, studerende, der 69 00:08:06,720 --> 00:08:09,390 ærligt havde ingen anelse om, hvorfor de ville endda handlet kurset på 70 00:08:09,390 --> 00:08:10,340 denne første dag. 71 00:08:10,340 --> 00:08:14,010 Men det samme 55% forblev hos os indtil udtryk udgang, og det samme gjorde 72 00:08:14,010 --> 00:08:17,770 35%, der var et sted i mellem de mere komfortable 73 00:08:17,770 --> 00:08:19,960 og dem mindre behagelig. 74 00:08:19,960 --> 00:08:21,350 >> Så hvad er datalogi? 75 00:08:21,350 --> 00:08:23,680 Godt i high school, og virkelig mere generelt ud 76 00:08:23,680 --> 00:08:25,670 der i disse dage, der er denne opfattelse eller denne 77 00:08:25,670 --> 00:08:28,260 misforståelse, at datalogi er programmering. 78 00:08:28,260 --> 00:08:30,700 Og det er absolut et aspekt af datalogi. 79 00:08:30,700 --> 00:08:33,100 Men programmering, uanset hvilket sprog er, er egentlig bare en 80 00:08:33,100 --> 00:08:35,760 værktøj, dataloger bruger til at løse problemer, enten 81 00:08:35,760 --> 00:08:38,710 på området for datalogi eller stigende disse 82 00:08:38,710 --> 00:08:41,710 dage i de fysiske videnskaber, naturvidenskab, i 83 00:08:41,710 --> 00:08:45,180 medicin, i humaniora, analysere store datasæt. 84 00:08:45,180 --> 00:08:47,660 Anywhere nu er der computer og data, der er en 85 00:08:47,660 --> 00:08:52,250 mulighed for at anvende erfaringerne i en klasse som CS50. 86 00:08:52,250 --> 00:08:55,050 >> Så lad os løse et problem, at en datalog kunne gå 87 00:08:55,050 --> 00:08:58,760 om at løse og forsøge at sætte nogle jargon, sætte nogle 88 00:08:58,760 --> 00:09:01,750 begrebsramme, kan omkring hvad ellers være nogle 89 00:09:01,750 --> 00:09:03,250 temmelig abstrakt idé. 90 00:09:03,250 --> 00:09:05,170 Så dette er en telefon. 91 00:09:05,170 --> 00:09:07,100 Du behøver ikke se disse ting for ofte, selvom kollegiet 92 00:09:07,100 --> 00:09:09,690 stadig synes at have disse i husene og sovesale. 93 00:09:09,690 --> 00:09:11,940 Men tilbage i dag, når du ønskede at bruge en telefon som 94 00:09:11,940 --> 00:09:13,880 dette var der ingen elektronisk adressebog 95 00:09:13,880 --> 00:09:14,620 i din mobiltelefon. 96 00:09:14,620 --> 00:09:16,130 Snarere, du trak op noget 97 00:09:16,130 --> 00:09:17,330 kendt som en telefonbog. 98 00:09:17,330 --> 00:09:20,970 Og disse telefonbøger havde omkring 1.000 sider, typisk. 99 00:09:20,970 --> 00:09:23,800 De blev sorteret fra A til Z. Og du simpelthen nødt til at finde den 100 00:09:23,800 --> 00:09:26,390 højre side for at finde den person, du leder efter, for at 101 00:09:26,390 --> 00:09:28,890 finde deres navn og deres telefonnummer. 102 00:09:28,890 --> 00:09:30,060 Nu hvordan kan du gå om at se op 103 00:09:30,060 --> 00:09:31,000 nogen i denne bog? 104 00:09:31,000 --> 00:09:33,670 >> Antag mit mål er at give min ven, Mike Smith, et opkald. 105 00:09:33,670 --> 00:09:35,680 Nå, hvordan kan jeg gå om at finde Mike Smith? 106 00:09:35,680 --> 00:09:38,840 Tja, en meget fornuftig tilgang, hvis naive og 107 00:09:38,840 --> 00:09:42,080 ineffektiv, ville starte her og begynde at spejlvende til 108 00:09:42,080 --> 00:09:46,630 side 4 til side 5 til side 6, og at slags lineært sammen 109 00:09:46,630 --> 00:09:48,490 en lige linje, gå gennem denne telefonbogen. 110 00:09:48,490 --> 00:09:50,920 Og selvom det bliver utrolig kedelig, hvis Mike 111 00:09:50,920 --> 00:09:53,550 Smith er i denne bog, jeg sidst vil nå ham 112 00:09:53,550 --> 00:09:56,660 når jeg endelig vende til S afsnit af denne bog. 113 00:09:56,660 --> 00:09:58,670 Nu naturligvis, behøver du ikke at være en datalog til 114 00:09:58,670 --> 00:10:00,840 ved, at dette er en dum måde at løse dette problem. 115 00:10:00,840 --> 00:10:02,350 Hvad ville en typisk menneske gøre? 116 00:10:06,310 --> 00:10:07,550 Godt klaret. 117 00:10:07,550 --> 00:10:09,230 Så du ville vende til midten, til højre. 118 00:10:09,230 --> 00:10:12,050 Så du ville vende nogenlunde til midten, se her, og jeg synes 119 00:10:12,050 --> 00:10:14,520 at finde mig i M sektionen. 120 00:10:14,520 --> 00:10:17,710 OK, så M er tydeligvis ikke hvad jeg leder efter. 121 00:10:17,710 --> 00:10:20,070 Og Mikes til højre, så at sige, i dette afsnit. 122 00:10:20,070 --> 00:10:22,930 Og som nogle af jer har set før, kan vi bogstavelig talt nu 123 00:10:22,930 --> 00:10:26,670 Fortsæt at rive dette problem i halve. 124 00:10:26,670 --> 00:10:31,720 >> [Bifald] 125 00:10:31,720 --> 00:10:32,930 Du burde virkelig ikke være så imponeret. 126 00:10:32,930 --> 00:10:34,820 Rive det ned sømmen er faktisk ikke så svært. 127 00:10:34,820 --> 00:10:36,040 De virkelige mennesker gør det på denne måde. 128 00:10:36,040 --> 00:10:39,510 Men ned sømmen, vi nu har to problemer, der hver 129 00:10:39,510 --> 00:10:40,360 der er halvt så stor. 130 00:10:40,360 --> 00:10:43,430 Og vi kan bogstaveligt talt kaste at halvdelen af ​​problemet væk. 131 00:10:43,430 --> 00:10:46,450 Nu er vi tilbage ikke med 1.000 sider Men, siger, 500. 132 00:10:46,450 --> 00:10:47,450 Så nu hvad skal jeg gøre? 133 00:10:47,450 --> 00:10:50,080 Nå, vil et typisk menneske gå nogenlunde i midten igen. 134 00:10:50,080 --> 00:10:52,000 Og jeg finder mig selv en R-sektion. 135 00:10:52,000 --> 00:10:52,950 Så ikke helt der. 136 00:10:52,950 --> 00:10:55,890 Så igen, kan jeg rive dette problem i halve. 137 00:10:55,890 --> 00:10:56,395 [Bifald] 138 00:10:56,395 --> 00:10:57,645 Tak. 139 00:10:59,870 --> 00:11:03,260 Så nu har jeg kun omkring 250 sider. 140 00:11:03,260 --> 00:11:05,580 Og jeg kan gøre det igen og igen og igen og gå fra 141 00:11:05,580 --> 00:11:09,200 125 til ca 60 til 30 til 15 og så videre. 142 00:11:09,200 --> 00:11:13,880 Og endelig vil jeg blive skåret ned til en af ​​de S-sider på 143 00:11:13,880 --> 00:11:17,370 som, hvis han er i telefonbogen, bør Mike Smith være. 144 00:11:17,370 --> 00:11:19,980 >> Se, det er en naturligvis temmelig rimelig algoritme, 145 00:11:19,980 --> 00:11:22,200 og det er en engangs-anvendelse algoritme i dette tilfælde. 146 00:11:22,200 --> 00:11:24,790 Men hvad kan vi sortere i tage væk fra det? 147 00:11:24,790 --> 00:11:27,640 Nå, den første tilgang, rette hvis naive selvom det 148 00:11:27,640 --> 00:11:30,130 blev, kan beskrives ved den lige linje. 149 00:11:30,130 --> 00:11:32,920 Så hvis på x-aksen her vi siger, det er størrelsen af 150 00:11:32,920 --> 00:11:36,240 problem, så x-aksen går til højre, 151 00:11:36,240 --> 00:11:37,400 Problemet bliver større. 152 00:11:37,400 --> 00:11:38,940 Hvad betyder det at være større i 153 00:11:38,940 --> 00:11:40,140 forbindelse med dette problem? 154 00:11:40,140 --> 00:11:41,750 Flere sider i telefonbogen. 155 00:11:41,750 --> 00:11:43,750 Der er mere noget, vi kan kvantificere. 156 00:11:43,750 --> 00:11:45,530 På y-aksen, tidspunkt for at løse. 157 00:11:45,530 --> 00:11:49,650 Således aksen går op, er det formentlig tager længere tid. 158 00:11:49,650 --> 00:11:52,640 Så det første tilgang af lineært søge fra side 1 159 00:11:52,640 --> 00:11:57,050 til dot dot dot side 1.000 kr. er en lineær procedure, en lineær 160 00:11:57,050 --> 00:11:59,020 algoritme eller proces. 161 00:11:59,020 --> 00:12:00,990 Og vi kan beskrive det ved denne lige linje. 162 00:12:00,990 --> 00:12:04,050 Hvis jeg tilføje endnu en side til telefonbogen, går det til, i 163 00:12:04,050 --> 00:12:06,630 værste fald, tag mig endnu en side flip 164 00:12:06,630 --> 00:12:07,810 at finde Mike Smith. 165 00:12:07,810 --> 00:12:11,700 Hvis jeg tilføjer 100 sider, 100 mere flips eller tidsenheder. 166 00:12:11,700 --> 00:12:13,210 >> Nu kan jeg være lidt smart med dette. 167 00:12:13,210 --> 00:12:15,410 Jeg behøver ikke at virkelig slå det én side ad gangen. 168 00:12:15,410 --> 00:12:18,060 Jeg kan gøre ting som 2 ad gangen eller 4 ad gangen. 169 00:12:18,060 --> 00:12:20,220 Men selv det er ikke alle, der fundamentalt bedre. 170 00:12:20,220 --> 00:12:23,030 Selvom det er 2 ad gangen, yeah, den slags bevæger denne 171 00:12:23,030 --> 00:12:27,410 linje ned en smule, og det betyder, at det tager mindre tid 172 00:12:27,410 --> 00:12:28,730 det samme antal sider. 173 00:12:28,730 --> 00:12:30,430 Men det er ikke fundamentalt bedre. 174 00:12:30,430 --> 00:12:33,080 Men hvad gjorde vi bare gøre, og hvad gjorde alle du gør 175 00:12:33,080 --> 00:12:34,160 instinktivt? 176 00:12:34,160 --> 00:12:37,350 Du faktisk opnåede en lidt noget som dette, 177 00:12:37,350 --> 00:12:42,020 logaritmisk tid, hvorved problemet kan vokse og vokse og 178 00:12:42,020 --> 00:12:45,210 vokse, men omkostningerne ved at løse dette problem har tid 179 00:12:45,210 --> 00:12:47,330 kræves til at løse dette problem, ikke 180 00:12:47,330 --> 00:12:49,270 vokse næsten lige så hurtigt. 181 00:12:49,270 --> 00:12:52,880 Dette ville være en logaritmisk kurve, log af n, hvor n er 182 00:12:52,880 --> 00:12:55,480 bare størrelsen af ​​problemet, er antallet af sider i denne 183 00:12:55,480 --> 00:12:56,180 telefonbogen. 184 00:12:56,180 --> 00:12:57,650 Og hvad betyder det reelt? 185 00:12:57,650 --> 00:13:00,500 Tja, hvis vi har ligesom 500 mennesker i dette rum lige nu, 186 00:13:00,500 --> 00:13:02,330 eller rettere, hvis vi har - 187 00:13:02,330 --> 00:13:05,520 blanding metafor, ikke gjorde det eksempel endnu i år - 188 00:13:05,520 --> 00:13:08,900 så hvis vi har 500 sider i telefonbogen, og vi fordoble det til 189 00:13:08,900 --> 00:13:12,660 1000, i dette mere intelligent model for flipping 190 00:13:12,660 --> 00:13:15,370 til midten, hvordan mange flere sider tårer det tage at gå 191 00:13:15,370 --> 00:13:17,390 fra 500 sider til 1.000? 192 00:13:17,390 --> 00:13:19,510 Nå, bare en ekstra side tåre. 193 00:13:19,510 --> 00:13:22,440 Hvis du gav mig en 2.000 side telefonbog, no big deal. 194 00:13:22,440 --> 00:13:25,070 Jeg bare rive det en ekstra gang. 195 00:13:25,070 --> 00:13:28,860 >> Så kort kan størrelsen af ​​problemet vokser meget hurtigere 196 00:13:28,860 --> 00:13:30,650 end prisen på faktisk at løse det. 197 00:13:30,650 --> 00:13:32,890 Nu dette er blot én sådan algoritme. 198 00:13:32,890 --> 00:13:35,480 Der er andre, vi kan løse på samme måde. 199 00:13:35,480 --> 00:13:36,630 Og så hvorfor gør vi ikke det? 200 00:13:36,630 --> 00:13:39,650 Hvis du vil humor mig, omend akavet her i Sanders, gå 201 00:13:39,650 --> 00:13:42,950 forude, alle, hvis du kunne og stå op på plads. 202 00:13:46,420 --> 00:13:49,040 Som du kan se på skærmen her, det er en algoritme, en 203 00:13:49,040 --> 00:13:52,110 proces, et edb-program, hvis du vil, der skal udføres af 204 00:13:52,110 --> 00:13:53,850 mennesker, der har kun 3 trin. 205 00:13:53,850 --> 00:13:55,010 Vi er allerede på trin 1. 206 00:13:55,010 --> 00:13:55,840 Du har stået op. 207 00:13:55,840 --> 00:13:58,120 Og nu spørger du dig selv det nummer 1. 208 00:13:58,120 --> 00:13:59,310 Det er dit nuværende nummer. 209 00:13:59,310 --> 00:14:00,990 Alle her er nummer 1. 210 00:14:00,990 --> 00:14:04,360 Trin 2, parre ud med nogen stående, tilføje dine numre 211 00:14:04,360 --> 00:14:07,155 sammen, og derefter vedtage beløb, som dit nye nummer. 212 00:14:15,760 --> 00:14:18,730 En af jer skal sidde ned, og derefter gentage. 213 00:14:29,260 --> 00:14:33,715 >> SPEAKER 1: 205. 214 00:14:33,715 --> 00:14:34,210 DAVID J. Malan: Hvad er det? 215 00:14:34,210 --> 00:14:35,200 SPEAKER 1: 205. 216 00:14:35,200 --> 00:14:36,450 DAVID J. Malan: OK. 217 00:14:43,120 --> 00:14:44,605 SPEAKER 2: Han har de andre. 218 00:14:58,120 --> 00:14:58,780 David J. Malan: 205? 219 00:14:58,780 --> 00:14:59,666 SPEAKER 3: Yeah. 220 00:14:59,666 --> 00:15:00,092 DAVID J. Malan: OK. 221 00:15:00,092 --> 00:15:00,518 3. 222 00:15:00,518 --> 00:15:02,040 SPEAKER 4: 400. 223 00:15:02,040 --> 00:15:02,350 SPEAKER 5: 5. 224 00:15:02,350 --> 00:15:04,640 700. 225 00:15:04,640 --> 00:15:05,890 DAVID J. Malan: Okay. 226 00:15:09,110 --> 00:15:11,965 På dette punkt, bør færre og færre mennesker blive stående. 227 00:15:14,690 --> 00:15:17,860 Det er her, det bliver mere akavet. 228 00:15:17,860 --> 00:15:18,660 Nogen her. 229 00:15:18,660 --> 00:15:19,910 Her. 230 00:15:28,490 --> 00:15:31,170 Den værste del er du også nødt til meget verbalt gøre 231 00:15:31,170 --> 00:15:33,830 aritmetik foran hundredvis af Harvard 232 00:15:33,830 --> 00:15:35,080 undergrads. 233 00:15:40,790 --> 00:15:41,820 OK. 234 00:15:41,820 --> 00:15:43,140 Bit af en bug her. 235 00:15:43,140 --> 00:15:43,490 Okay. 236 00:15:43,490 --> 00:15:44,490 Hvad er dit nummer? 237 00:15:44,490 --> 00:15:45,390 SPEAKER 6: Nine. 238 00:15:45,390 --> 00:15:45,815 DAVID J. Malan: Hvad er det? 239 00:15:45,815 --> 00:15:46,330 SPEAKER 6: Nine. 240 00:15:46,330 --> 00:15:47,040 DAVID J. Malan: Nine. 241 00:15:47,040 --> 00:15:49,740 Okay. 242 00:15:49,740 --> 00:15:52,388 Hvad er dit nummer? 243 00:15:52,388 --> 00:15:53,780 SPEAKER 7: 179. 244 00:15:53,780 --> 00:15:55,570 David J. Malan: 179? 245 00:15:55,570 --> 00:15:56,330 Okay. 246 00:15:56,330 --> 00:15:56,470 Godt. 247 00:15:56,470 --> 00:15:57,280 Så 188. 248 00:15:57,280 --> 00:15:58,430 Så du fyre kan sidde ned. 249 00:15:58,430 --> 00:15:59,090 Hvad er dit nummer? 250 00:15:59,090 --> 00:16:00,090 SPEAKER 8: 118. 251 00:16:00,090 --> 00:16:02,260 David J. Malan: 118. 252 00:16:02,260 --> 00:16:05,310 Nogle smarte undergrad begynder at gøre det math. 253 00:16:05,310 --> 00:16:05,590 Okay. 254 00:16:05,590 --> 00:16:07,050 118, 188. 255 00:16:07,050 --> 00:16:10,022 Hvad har vi ellers? 256 00:16:10,022 --> 00:16:10,990 SPEAKER 9: 71. 257 00:16:10,990 --> 00:16:13,884 David J. Malan: 71. 258 00:16:13,884 --> 00:16:14,310 SPEAKER 10: 79. 259 00:16:14,310 --> 00:16:15,510 David J. Malan: 79. 260 00:16:15,510 --> 00:16:17,100 Okay. 261 00:16:17,100 --> 00:16:18,080 SPEAKER 11: 47. 262 00:16:18,080 --> 00:16:19,100 David J. Malan: 47. 263 00:16:19,100 --> 00:16:21,100 Hvilket laerere, der giver os, hvor mange? 264 00:16:24,100 --> 00:16:27,690 705 er svaret. 265 00:16:27,690 --> 00:16:29,905 Og det er i virkeligheden helt korrekt. 266 00:16:35,060 --> 00:16:36,970 Nej, vi var faktisk en smule off der. 267 00:16:36,970 --> 00:16:40,435 >> Men hvordan skal dette har fungeret? 268 00:16:40,435 --> 00:16:41,940 Hvad skulle have skete der lige? 269 00:16:41,940 --> 00:16:45,560 Så på hver iteration af denne algoritme, vi startede med 270 00:16:45,560 --> 00:16:48,000 nogle antallet af mennesker stående, og det var 271 00:16:48,000 --> 00:16:49,350 samlede antal n at starte med. 272 00:16:49,350 --> 00:16:51,750 Så halvdelen af ​​jer satte sig ned, og vi gik til n over 2. 273 00:16:51,750 --> 00:16:52,830 Så halvdelen af ​​jer sad. 274 00:16:52,830 --> 00:16:56,310 Vi gik til n over 4, n over 8, n over 16 og så videre, 275 00:16:56,310 --> 00:16:59,080 indtil, selv om den slags sønderdelt der ved 276 00:16:59,080 --> 00:17:02,000 ende, i teorien, havde alle parret ud i balkon og 277 00:17:02,000 --> 00:17:05,780 mezzanin og orkester her, ville vi have haft bare én enlig 278 00:17:05,780 --> 00:17:11,790 person, der står til en samlet værdi, i dette tilfælde, på 705. 279 00:17:11,790 --> 00:17:14,460 Nu, hvad betyder, men for den løbende tid? 280 00:17:14,460 --> 00:17:16,829 Tja tænke på, hvis jeg som menneske havde gjort dette manuelt. 281 00:17:16,829 --> 00:17:19,819 Jeg ville have startet temmelig naivt, men korrekt med 1, 282 00:17:19,819 --> 00:17:23,740 2, 3, 4, 5, 6, 7, 8 og så videre. 283 00:17:23,740 --> 00:17:24,920 Tager lang tid. 284 00:17:24,920 --> 00:17:25,980 Så jeg kan gøre det bedre, ikke? 285 00:17:25,980 --> 00:17:27,690 I folkeskolen, behøver du ikke bare tælle i dem. 286 00:17:27,690 --> 00:17:28,109 Du tæller i toere. 287 00:17:28,109 --> 00:17:30,050 Så 2, 4, 6, 8, 10, 12. 288 00:17:30,050 --> 00:17:31,630 Og det bliver meget hurtigere. 289 00:17:31,630 --> 00:17:34,620 Men nu fundamentalt, ved at udnytte den kollektive 290 00:17:34,620 --> 00:17:37,070 intelligens for alle i dette rum, kan vi opnå en 291 00:17:37,070 --> 00:17:40,660 bremse meget mere som denne, hvorved nu antallet af 292 00:17:40,660 --> 00:17:42,450 mennesker i dette rum kunne fordoble. 293 00:17:42,450 --> 00:17:45,940 Yderligere 700 mennesker går ind i dette rum til 1.400 mennesker, 294 00:17:45,940 --> 00:17:49,680 men det ville kun tage os endnu en iteration af dette 295 00:17:49,680 --> 00:17:50,880 algoritme til at løse. 296 00:17:50,880 --> 00:17:53,170 >> Og så, i stigende grad i disse dage, når vi har disse enorme 297 00:17:53,170 --> 00:17:55,860 datasæt i Facebook og Google og lignende, er det 298 00:17:55,860 --> 00:17:58,710 Løsning af problemer med en smule indsigt, denne bit af 299 00:17:58,710 --> 00:18:02,280 Klogskab, det er giver os i stigende grad at gøre meget, meget 300 00:18:02,280 --> 00:18:05,150 mere kraftfulde ting med computere i dag. 301 00:18:05,150 --> 00:18:07,340 Hvis du kan lide den slags ting, du måske har set på 302 00:18:07,340 --> 00:18:10,650 Facebook CS50 egen Puzzle Day kommer op denne lørdag. 303 00:18:10,650 --> 00:18:12,580 Hvis du ønsker at deltage i noget lignende 304 00:18:12,580 --> 00:18:17,010 dette, hvor du, i 2 eller 3 eller 4 hold af 4, gerne ville til 305 00:18:17,010 --> 00:18:20,820 løse nogle gåder som denne, du står en chance 306 00:18:20,820 --> 00:18:23,510 at vinde nogle fantastiske præmier, blandt hvilke er en Wii, og nogle 307 00:18:23,510 --> 00:18:25,900 gavekort eller en anden Facebook Swag. 308 00:18:25,900 --> 00:18:28,660 Denne lørdag middag til 3:00 PM, skal du gå til 309 00:18:28,660 --> 00:18:33,440 cs50.net/rsvp for denne. 310 00:18:33,440 --> 00:18:35,940 Og dette dias er online, hvis du ønsker at spille rundt. 311 00:18:35,940 --> 00:18:38,010 De problemer, dette år skal være nye. 312 00:18:38,010 --> 00:18:40,210 >> Du vil måske bemærke i klasseværelset, også så meget desto mere 313 00:18:40,210 --> 00:18:41,210 kameraer i år. 314 00:18:41,210 --> 00:18:45,180 Så ikke blot vil naturligvis blive filmet på den sædvanlige måde, CS50 315 00:18:45,180 --> 00:18:47,760 kan også deltage i en dokumentarfilm om højere 316 00:18:47,760 --> 00:18:50,370 uddannelse, der kigger på den transformative oplevelse 317 00:18:50,370 --> 00:18:53,000 at en studerende kan have i disse dage i en bachelor 318 00:18:53,000 --> 00:18:53,870 studieforløb. 319 00:18:53,870 --> 00:18:56,990 Så mod disse, så vil vi ikke blot blive filmet for 320 00:18:56,990 --> 00:19:00,170 dette, vil vi blive filme så godt for stadig vores 321 00:19:00,170 --> 00:19:03,670 online publikum, samt lejlighedsvis dette publikum her. 322 00:19:03,670 --> 00:19:05,880 Så vi velkommen til klassen i år vores Harvard 323 00:19:05,880 --> 00:19:08,190 Extension Skoleelever, Graduate School of Design, 324 00:19:08,190 --> 00:19:10,470 Uddannelse, den business school, Kennedy School, 325 00:19:10,470 --> 00:19:12,970 loven skole, samt et antal studerende fra 326 00:19:12,970 --> 00:19:16,140 Belmont, Lexington, Newton, og Watertown gymnasier. 327 00:19:16,140 --> 00:19:17,120 Velkommen til jer alle. 328 00:19:17,120 --> 00:19:20,070 Hertil kommer i år, har du måske hørt, Harvard og MIT, 329 00:19:20,070 --> 00:19:22,500 og Berkeley nu, har indgået et samarbejde 330 00:19:22,500 --> 00:19:26,020 partnerskab, et initiativ kaldet EDX, hvilket er en 331 00:19:26,020 --> 00:19:28,650 initiativ til at åbne uddannelse til alle mere 332 00:19:28,650 --> 00:19:31,210 folk online og fundamentalt begynde at gøre 333 00:19:31,210 --> 00:19:34,400 forskning på et meget bredere skala, hvordan mennesker lærer. 334 00:19:34,400 --> 00:19:36,920 Og så CS50 vil være skolens første kursus 335 00:19:36,920 --> 00:19:38,790 deltager i dette initiativ så godt. 336 00:19:38,790 --> 00:19:41,320 Hvilket betyder, at du vil have adgang til alle de flere værktøjer, 337 00:19:41,320 --> 00:19:44,020 desto mere uddannelsestilbuddet, desto mere video 338 00:19:44,020 --> 00:19:48,190 indhold som et resultat, så godt, som i går morges, den 339 00:19:48,190 --> 00:19:52,210 53.019 mennesker, der har registreret at tage CS50 langs 340 00:19:52,210 --> 00:19:55,290 med dig i år på internettet. 341 00:19:55,290 --> 00:19:56,530 Så uden - 342 00:19:56,530 --> 00:20:03,800 [Bifald] 343 00:20:03,800 --> 00:20:05,680 Så hvad det betyder, i særdeleshed, er, at 344 00:20:05,680 --> 00:20:07,770 lærerpersonalet og jeg har tilbragt en hel del tid dette 345 00:20:07,770 --> 00:20:10,600 sommer forberedelserne til efteråret, både på campus og fra, så 346 00:20:10,600 --> 00:20:13,580 at vi kan begynde at opbygge et korpus af interessante, af 347 00:20:13,580 --> 00:20:16,130 overbevisende, at engagere pædagogiske indhold, 348 00:20:16,130 --> 00:20:22,490 fokuserer især på mere intime transportmidler af 349 00:20:22,490 --> 00:20:23,960 temmelig komplekst materiale. 350 00:20:23,960 --> 00:20:26,210 >> Så udover kursets forelæsninger og sektioner og 351 00:20:26,210 --> 00:20:28,300 ting kaldet walkthroughs, som vi vil revidere i blot et 352 00:20:28,300 --> 00:20:31,620 bit, vil vi også have disse shorts i år, der giver mulighed 353 00:20:31,620 --> 00:20:33,570 dig til at engagere sig i forløbet fra en anden vinkel 354 00:20:33,570 --> 00:20:34,520 helt. 355 00:20:34,520 --> 00:20:36,540 Så lad os bruge dette som en mulighed for at tage en hurtig 356 00:20:36,540 --> 00:20:38,905 kig på en, der diskuterer dette begreb binære filer. 357 00:20:38,905 --> 00:20:42,220 >> Så i datalogi, er der ting, der kaldes algoritmer - 358 00:20:42,220 --> 00:20:44,610 hvoraf to vi tog bare et kig på - disse procedurer for 359 00:20:44,610 --> 00:20:45,690 løse problemer. 360 00:20:45,690 --> 00:20:46,770 Men i slutningen af ​​dagen, er du nødt til 361 00:20:46,770 --> 00:20:48,730 repræsentere information eller anden måde. 362 00:20:48,730 --> 00:20:51,640 Og du har brug for at repræsentere det på en måde, som en computer kan 363 00:20:51,640 --> 00:20:52,400 forstå. 364 00:20:52,400 --> 00:20:54,940 Og selvom du ikke rigtig forstår computere og 365 00:20:54,940 --> 00:20:58,150 du er i, at 76% lige nu, har du sandsynligvis har nogle vage 366 00:20:58,150 --> 00:21:01,860 forstand, at computere eller anden måde beskæftige sig 0'er og 1-taller, det binære 367 00:21:01,860 --> 00:21:03,160 system, så at sige. 368 00:21:03,160 --> 00:21:04,480 Men hvorfor er det sådan? 369 00:21:04,480 --> 00:21:07,060 Tja, det viser sig når computere først kom omkring, hvis 370 00:21:07,060 --> 00:21:09,400 du behov for at repræsentere information, kan du gøre det 371 00:21:09,400 --> 00:21:10,600 med elektricitet. 372 00:21:10,600 --> 00:21:13,460 Og selvom dette er lidt af en forsimpling, en meget 373 00:21:13,460 --> 00:21:16,190 nem måde at registrering af oplysninger er enten 374 00:21:16,190 --> 00:21:18,000 drejning, at elektricitet på - 375 00:21:18,000 --> 00:21:20,460 en 1 i binær, så at sige - eller dreje 376 00:21:20,460 --> 00:21:22,100 at elektricitet off. 377 00:21:22,100 --> 00:21:24,080 >> Så hvis Barry, hvis du ikke har noget imod, kunne vi dæmpe lyset 378 00:21:24,080 --> 00:21:26,000 fuldt ud for bare et øjeblik? 379 00:21:26,000 --> 00:21:29,730 Det her er en meget umotiveret binær 0. 380 00:21:29,730 --> 00:21:33,830 Hvis vi tænde lyset tilbage op, nu Sanders Theatre er 381 00:21:33,830 --> 00:21:35,860 repræsenterer den binære værdi af 1. 382 00:21:35,860 --> 00:21:38,710 Desværre, med blot én bit, med blot ét sæt 383 00:21:38,710 --> 00:21:41,070 lys, kan vi kun repræsentere to numre i 384 00:21:41,070 --> 00:21:42,690 verden, 0 og 1. 385 00:21:42,690 --> 00:21:44,470 Og det ville være rart, hvis computere kunne tælle en 386 00:21:44,470 --> 00:21:45,340 smule højere end det. 387 00:21:45,340 --> 00:21:46,370 Men faktisk de kan. 388 00:21:46,370 --> 00:21:49,230 Så lad mig trække op på skærmen her vores ven Nate Hardison 389 00:21:49,230 --> 00:21:52,000 der vil give os et hurtigt kig i løbet af blot et par 390 00:21:52,000 --> 00:21:54,680 minutter ved denne opfattelse af binære. 391 00:21:54,680 --> 00:22:01,870 >> [VIDEO PLAYBACK] 392 00:22:01,870 --> 00:22:03,450 NATE Hardison: Tilbage, når du lærte at læse og skrive 393 00:22:03,450 --> 00:22:08,450 numre, du har lært om tallene 0 til 9. 394 00:22:08,450 --> 00:22:10,840 At skrive hele tal større end 9, lærte du, at alle 395 00:22:10,840 --> 00:22:13,830 du havde at gøre, var bruge en kombination af disse cifre, 396 00:22:13,830 --> 00:22:21,000 som i 52 og 437. 397 00:22:21,000 --> 00:22:23,220 Så denne måde at skrive numre har en 398 00:22:23,220 --> 00:22:25,620 navn, decimal notation. 399 00:22:25,620 --> 00:22:26,690 Hvorfor decimal? 400 00:22:26,690 --> 00:22:30,340 Nå, det latinske rod af en decimal, decem betyder 10. 401 00:22:30,340 --> 00:22:33,190 Og når du har 10 cifre i dit notation system, 10 402 00:22:33,190 --> 00:22:35,290 bliver en temmelig speciel nummer. 403 00:22:35,290 --> 00:22:38,950 Lad os se på antallet 437 skrevet i decimal notation til 404 00:22:38,950 --> 00:22:40,340 forstå hvorfor. 405 00:22:40,340 --> 00:22:50,200 >> Vi kan først opdele 437 i 400 plus 30 plus 7. 406 00:22:50,200 --> 00:22:56,050 Vi kan tage det fra hinanden endnu mere, så vi har fået 4 gange 100 407 00:22:56,050 --> 00:23:02,990 plus 3 gange 10 plus 7 gange 1. 408 00:23:02,990 --> 00:23:05,970 Husk at lære om dem sted, tiere sted, 409 00:23:05,970 --> 00:23:08,050 det hundredvis sted, og så videre? 410 00:23:08,050 --> 00:23:10,990 Dette er præcis, hvor det kommer fra. 411 00:23:10,990 --> 00:23:14,150 Og endelig kan vi se, at vi har fået en masse kræfter på 10 412 00:23:14,150 --> 00:23:15,770 indlejret i her. 413 00:23:15,770 --> 00:23:25,330 Vi har 4 gange 10 til 2 plus 3 gange 10 til 1 plus 414 00:23:25,330 --> 00:23:29,580 7 gange 10 til 0. 415 00:23:29,580 --> 00:23:31,330 Så nu kan du se hvorfor 10 er et særligt 416 00:23:31,330 --> 00:23:33,240 Antallet af decimal notation. 417 00:23:33,240 --> 00:23:35,240 Faktisk har vi et navn til det. 418 00:23:35,240 --> 00:23:38,170 Det hedder basen, da det er bunden af ​​eksponenten 419 00:23:38,170 --> 00:23:39,960 i vores aritmetiske her. 420 00:23:39,960 --> 00:23:43,190 >> Decimal notation er ikke den eneste måde at repræsentere tal. 421 00:23:43,190 --> 00:23:48,020 I virkeligheden, selv om vi slippe af med cifrene 2 til 9 vi kan 422 00:23:48,020 --> 00:23:49,610 stadig repræsentere alle de numre, 423 00:23:49,610 --> 00:23:51,620 vi kunne med decimal. 424 00:23:51,620 --> 00:23:56,220 Så nu har vi to cifre, 0 og 1, 2 er vores særlige 425 00:23:56,220 --> 00:23:59,070 nummer, grundlaget for vores notation system. 426 00:23:59,070 --> 00:24:02,340 Navnet på denne notation system kaldes binær siden 427 00:24:02,340 --> 00:24:04,890 præfikset "bi" betyder 2. 428 00:24:04,890 --> 00:24:08,130 Så i stedet nu for at have en dem sted og titusinder sted og 429 00:24:08,130 --> 00:24:11,950 så videre, har vi nu et dem plads, et toere sted, en fours 430 00:24:11,950 --> 00:24:15,420 sted, og så videre, går op af potenser af 2. 431 00:24:15,420 --> 00:24:17,320 Så lad os se dette ved at gøre nogle tælling. 432 00:24:17,320 --> 00:24:22,790 Således, 0 stadig 0, og 1 er stadig 1. 433 00:24:22,790 --> 00:24:25,700 Men nu, hvor vi har fået en toere sted i stedet for de titusinder 434 00:24:25,700 --> 00:24:31,070 sted, 10 repræsenterer antallet 2. 435 00:24:31,070 --> 00:24:36,240 For at få 3, tilføjer vi en til det og få 11. 436 00:24:36,240 --> 00:24:38,310 4, da der nu en fire sted, er 437 00:24:38,310 --> 00:24:42,520 ved 100. 438 00:24:42,520 --> 00:24:47,280 Fem er 101. 439 00:24:47,280 --> 00:24:50,610 6 er 110. 440 00:24:50,610 --> 00:24:54,470 7 er 111. 441 00:24:54,470 --> 00:24:56,330 8, igen, har sin egen plads. 442 00:24:56,330 --> 00:25:00,650 Så det er 1000. 443 00:25:00,650 --> 00:25:01,750 Og jeg tror du får det punkt. 444 00:25:01,750 --> 00:25:03,510 [END VIDEO PLAYBACK] 445 00:25:03,510 --> 00:25:06,900 >> DAVID J. Malan: Så det vil sige, hvad computere gør og 446 00:25:06,900 --> 00:25:09,650 hvad binære er faktisk ikke så forskellige fra hvad 447 00:25:09,650 --> 00:25:12,260 vi har taget for givet i nogle år, right? 448 00:25:12,260 --> 00:25:14,330 Tror du, folkeskolen, du lærte at tælle i netop 449 00:25:14,330 --> 00:25:16,310 den måde, at Nate foreslået. 450 00:25:16,310 --> 00:25:18,250 Men du sandsynligvis har ikke rigtig tænkt over det siden, 451 00:25:18,250 --> 00:25:19,990 , at der er dette dem sted, tiere sted, og 452 00:25:19,990 --> 00:25:20,490 hundredvis sted. 453 00:25:20,490 --> 00:25:21,185 Og det er temmelig vilkårlig. 454 00:25:21,185 --> 00:25:24,090 Og ja, computere blot bruge denne anden base. 455 00:25:24,090 --> 00:25:27,430 Men i slutningen af ​​dagen, at rent fysisk repræsentere 456 00:25:27,430 --> 00:25:30,100 Denne opfattelse af et 0 og 1, du tydeligvis ikke bare dreje 457 00:25:30,100 --> 00:25:31,630 og slukker lyset nødvendigvis. 458 00:25:31,630 --> 00:25:33,960 Du er nødt til at gøre det på en meget mere finkornet skala. 459 00:25:33,960 --> 00:25:36,240 Og ved mere finkornet, kan du huske dette tåbelige 460 00:25:36,240 --> 00:25:38,990 lille legetøj fra barndommen, Woolly Willy og disse lidt 461 00:25:38,990 --> 00:25:40,360 magnetiske partikler. 462 00:25:40,360 --> 00:25:43,830 >> Så magnetiske partikler er noget, som du kan justere 463 00:25:43,830 --> 00:25:45,720 i et par af forskellige retninger, måske 464 00:25:45,720 --> 00:25:47,780 nord-syd eller syd-nord. 465 00:25:47,780 --> 00:25:50,340 Og så en masse fysiske inkarnationer af teknologi 466 00:25:50,340 --> 00:25:53,410 disse dage, der bruger binære, der bruger 0'er og 1'ere, simpelthen 467 00:25:53,410 --> 00:25:58,190 har magnetisme på indersiden, der bringer tingene, op-ned eller 468 00:25:58,190 --> 00:26:01,970 down-up, med hvilket repræsenterer et 0 eller et 1, 469 00:26:01,970 --> 00:26:02,750 hhv. 470 00:26:02,750 --> 00:26:05,360 Så ja, lad os komme væk fra det abstrakte her og 471 00:26:05,360 --> 00:26:07,580 se på indersiden af ​​hvad der er en mere traditionel 472 00:26:07,580 --> 00:26:08,640 computerens harddisk. 473 00:26:08,640 --> 00:26:10,980 Denne ene sker for at være en smule større på skærmen i, at det er 474 00:26:10,980 --> 00:26:12,420 fra en stationær computer. 475 00:26:12,420 --> 00:26:15,670 Men bærbare computere i dag stadig have den samme teknologi, men er 476 00:26:15,670 --> 00:26:18,190 gradvis erstattet af mere avancerede ting, som 477 00:26:18,190 --> 00:26:20,490 har faktisk ingen bevægelige dele. 478 00:26:20,490 --> 00:26:22,440 Indersiden så med en harddisk. 479 00:26:22,440 --> 00:26:23,610 >> [VIDEO PLAYBACK] 480 00:26:23,610 --> 00:26:26,320 SPEAKER 12: Harddisken er der, hvor din pc gemmer det meste af 481 00:26:26,320 --> 00:26:27,870 dets permanente data. 482 00:26:27,870 --> 00:26:31,600 At gøre det, at data bevæger sig fra RAM sammen med software 483 00:26:31,600 --> 00:26:35,290 signaler, som fortæller harddisken, hvordan man opbevarer disse data. 484 00:26:35,290 --> 00:26:38,000 De hårde drivkredse oversætte disse signaler til 485 00:26:38,000 --> 00:26:40,130 spændingsudsving. 486 00:26:40,130 --> 00:26:43,700 Disse til gengæld styre harddiskens bevægelige dele, nogle af 487 00:26:43,700 --> 00:26:46,750 de få bevægelige dele tilbage i den moderne computer. 488 00:26:46,750 --> 00:26:49,460 Nogle af de signaler styrer en motor, som roterer 489 00:26:49,460 --> 00:26:51,300 metal-coatede plader. 490 00:26:51,300 --> 00:26:54,670 Dine data er faktisk gemt på disse plader. 491 00:26:54,670 --> 00:26:57,810 Andre signaler flytter læse-skrive hoved til at læse eller 492 00:26:57,810 --> 00:26:59,900 skrive data på pladerne. 493 00:26:59,900 --> 00:27:03,520 Denne maskine er så præcis, at et menneskehår kunne ikke 494 00:27:03,520 --> 00:27:06,470 endda passere mellem hoved og spinning fade. 495 00:27:06,470 --> 00:27:08,780 Men det hele fungerer på forrygende hastigheder. 496 00:27:08,780 --> 00:27:09,520 [END VIDEO PLAYBACK] 497 00:27:09,520 --> 00:27:11,410 >> DAVID J. Malan: Så hvis vi nu zoome ind på, hvad der er faktisk 498 00:27:11,410 --> 00:27:14,300 sker på toppen af ​​disse plader i forhold til 499 00:27:14,300 --> 00:27:17,470 magnetisme, har vi denne anden af ​​to udseende. 500 00:27:17,470 --> 00:27:17,755 >> [VIDEO PLAYBACK] 501 00:27:17,755 --> 00:27:20,820 SPEAKER 13: Lad os se på, hvad vi lige har set i slow-motion. 502 00:27:20,820 --> 00:27:23,300 Når en kort impuls af elektricitet sendes til 503 00:27:23,300 --> 00:27:26,520 læse-skrive hoved, vender den på en lille elektromagnet for en 504 00:27:26,520 --> 00:27:28,110 brøkdel af et sekund. 505 00:27:28,110 --> 00:27:31,320 Magneten skaber et felt, som ændrer polaritet 506 00:27:31,320 --> 00:27:34,280 en lille, lille del af de metalpartikler, der frakke 507 00:27:34,280 --> 00:27:35,790 hver plade overflade. 508 00:27:35,790 --> 00:27:39,090 Et mønster serie af disse små debiteret op områder på disken 509 00:27:39,090 --> 00:27:41,650 repræsenterer en enkelt bit af data i det binære tal 510 00:27:41,650 --> 00:27:43,680 der bruges af computere. 511 00:27:43,680 --> 00:27:45,977 Nu, hvis strømmen er sendt en vej gennem læse-skrive 512 00:27:45,977 --> 00:27:49,030 hoved, området er polariseret i en retning. 513 00:27:49,030 --> 00:27:51,110 Hvis strømmen er justeret i den modsatte retning, det 514 00:27:51,110 --> 00:27:53,070 polarisering vendes. 515 00:27:53,070 --> 00:27:55,540 Hvordan får man data fra harddisken? 516 00:27:55,540 --> 00:27:57,270 Bare vende processen. 517 00:27:57,270 --> 00:27:59,670 Så det er partiklerne på disken, der får strøm i 518 00:27:59,670 --> 00:28:01,190 den læse-skrive hovedet bevæger sig. 519 00:28:01,190 --> 00:28:04,090 Sammensæt millioner af disse magnetized segmenter og du har 520 00:28:04,090 --> 00:28:05,300 fik en fil. 521 00:28:05,300 --> 00:28:08,600 Nu kan stykker af en enkelt fil blive spredt over hele 522 00:28:08,600 --> 00:28:11,140 en drevets fade, lidt ligesom det rod af 523 00:28:11,140 --> 00:28:13,140 papirer på dit skrivebord. 524 00:28:13,140 --> 00:28:16,680 Så en ekstra fil holder styr på hvor alt er. 525 00:28:16,680 --> 00:28:18,560 Må ikke du ønsker du havde sådan noget? 526 00:28:18,560 --> 00:28:19,990 [END VIDEO PLAYBACK] 527 00:28:19,990 --> 00:28:21,200 >> DAVID J. Malan: Sandelig. 528 00:28:21,200 --> 00:28:25,420 Så har vi denne evne til at repræsentere information, tal 529 00:28:25,420 --> 00:28:26,310 på et meget lavt niveau. 530 00:28:26,310 --> 00:28:29,920 Vi har en fysisk måde at repræsentere det samme. 531 00:28:29,920 --> 00:28:32,710 Men vi kan ikke rigtig gøre så meget af interesse endnu 532 00:28:32,710 --> 00:28:34,580 bortset fra måske nogle regning og matematik. 533 00:28:34,580 --> 00:28:37,660 Vi har ingen måde at repræsentere således langt ting som 534 00:28:37,660 --> 00:28:40,310 alfabetiske bogstaver, så vi mennesker kan kommunikere 535 00:28:40,310 --> 00:28:41,970 ved hjælp af de samme enheder. 536 00:28:41,970 --> 00:28:45,710 Men heldigvis findes der kodninger, mønstre for 0'er og 537 00:28:45,710 --> 00:28:49,240 1s, der repræsenterer højere niveau konstruktioner som a og b 538 00:28:49,240 --> 00:28:52,740 og c og hele sætninger og afsnit og lignende. 539 00:28:52,740 --> 00:28:56,070 Og så ASCII, som er en forkortelse, der refererer til dette 540 00:28:56,070 --> 00:29:00,410 kodningssystem hvor en række svarer til en bestemt bogstav. 541 00:29:00,410 --> 00:29:04,580 >> For eksempel er det nummer, vi kender som decimalværdi 65 542 00:29:04,580 --> 00:29:06,980 kendt som det store bogstav A til computere. 543 00:29:06,980 --> 00:29:10,700 Decimalværdien af ​​97 i computere er kendt som en 544 00:29:10,700 --> 00:29:11,980 små bogstaver a. 545 00:29:11,980 --> 00:29:13,070 Og hvad betyder det egentlig? 546 00:29:13,070 --> 00:29:15,520 Tja, selvom Nate et øjeblik siden kun talt op 547 00:29:15,520 --> 00:29:20,460 0 til 8, hvis vi skulle fortsætte med at tælle op til 65 eller 548 00:29:20,460 --> 00:29:24,180 yderligere til 97, mønstret af 0'er og 1-taller, at han ville have 549 00:29:24,180 --> 00:29:27,810 tegnes på skærmen ville være præcis, hvad en computer bruger 550 00:29:27,810 --> 00:29:30,300 at repræsentere bogstavet A i alle hætter eller 551 00:29:30,300 --> 00:29:32,470 bogstavet a med små bogstaver. 552 00:29:32,470 --> 00:29:35,460 Og ja, der er en hel ordning til dette. 553 00:29:35,460 --> 00:29:38,170 Dette er en, ved første øjekast, overvældende diagram over 554 00:29:38,170 --> 00:29:41,150 kodninger, men hvis du nøjes med at fokusere på den højre halvdel her, 555 00:29:41,150 --> 00:29:45,820 bemærke i denne midterste kolonne har vi denne opfattelse af tal 556 00:29:45,820 --> 00:29:46,860 efterfulgt af bogstaver. 557 00:29:46,860 --> 00:29:48,640 Og øverst har vi 32. 558 00:29:48,640 --> 00:29:53,270 Og figuren, char, hvortil 32, det hele tal henviser 559 00:29:53,270 --> 00:29:55,220 er tilsyneladende Space Bar karakter. 560 00:29:55,220 --> 00:29:57,350 Når du rammer Space Bar karakter på din bærbare computer, 561 00:29:57,350 --> 00:30:00,110 godt, hvad du virkelig sender er et tal, et mønster 562 00:30:00,110 --> 00:30:02,620 af 0'er og 1-taller, et flow af elektricitet, hvis du vil, 563 00:30:02,620 --> 00:30:05,630 repræsenterer de 0'er og 1-taller, at computeren og derefter 564 00:30:05,630 --> 00:30:08,190 tolker som et rum karakter på skærmen. 565 00:30:08,190 --> 00:30:10,070 Et udråbstegn 33. 566 00:30:10,070 --> 00:30:11,210 Anførselstegn er 34. 567 00:30:11,210 --> 00:30:14,890 Og hvis vi rulle ned her over til højre, ser vi, at 568 00:30:14,890 --> 00:30:18,840 65 er faktisk A, og 97 er faktisk små bogstaver en. 569 00:30:18,840 --> 00:30:21,690 >> Og så nu, at vi har dette kodningsskema, kan vi begynde 570 00:30:21,690 --> 00:30:22,920 at stave ting ud. 571 00:30:22,920 --> 00:30:27,180 Faktisk computere typisk udtrykker sig i standard 572 00:30:27,180 --> 00:30:29,980 enheder, der ikke bruger en enkelt bit, som igen er ikke alle 573 00:30:29,980 --> 00:30:33,630 at nyttige for bare repræsentere 0 eller 1, lys tændt eller slukket, men 574 00:30:33,630 --> 00:30:35,390 snarere ved hjælp af sekvenser af bits. 575 00:30:35,390 --> 00:30:37,610 Og den mest almindelige måleenhed, som du sikkert ved 576 00:30:37,610 --> 00:30:39,370 og eller i det mindste udledes, er en byte. 577 00:30:39,370 --> 00:30:43,820 En byte er kun otte bits, otte 0'er eller 1s i træk. 578 00:30:43,820 --> 00:30:45,950 Så vi kan begynde at stave ting ud. 579 00:30:45,950 --> 00:30:48,990 Og så, hvis vi kunne, hvorfor så ikke prøve dette en lille smule 580 00:30:48,990 --> 00:30:50,440 kollektivt her. 581 00:30:50,440 --> 00:30:53,630 Er der otte mennesker i dette rum, der ville være villige til at 582 00:30:53,630 --> 00:30:54,660 komme op på scenen? 583 00:30:54,660 --> 00:30:57,790 Du er nødt til at være komfortable optræder på kamera, men du 584 00:30:57,790 --> 00:30:59,860 ikke rigtig brug for at vide, ellers, hvad er 585 00:30:59,860 --> 00:31:01,550 foregår endnu. 586 00:31:01,550 --> 00:31:05,080 Jeg ser en person, der meldte sig herovre. 587 00:31:05,080 --> 00:31:16,220 To, tre, fire, fem, seks, syv, og hvordan omkring otte. 588 00:31:16,220 --> 00:31:16,800 Kom nu op. 589 00:31:16,800 --> 00:31:20,390 >> Så du er ved at repræsentere en byte af mennesker. 590 00:31:20,390 --> 00:31:26,750 Lad mig har du være 128 plads, du den 64 plads, du 591 00:31:26,750 --> 00:31:28,050 32 plads. 592 00:31:28,050 --> 00:31:30,530 Men vi skal meget hurtigt nødt til at vende denne. 593 00:31:30,530 --> 00:31:33,030 Så lad mig møde jer alle derovre. 594 00:31:33,030 --> 00:31:37,230 Og du skal være i 128 plads hele vejen herover. 595 00:31:37,230 --> 00:31:39,500 Meget ligesom hundreder sted og tusinder sted ville 596 00:31:39,500 --> 00:31:42,050 være længere til venstre, ønsker vi den største pladsholderen 597 00:31:42,050 --> 00:31:43,600 at være her til venstre så godt. 598 00:31:43,600 --> 00:31:53,090 Vi har 64s s 32, 16 s, 8 s, 4 s, 2 s, og 1-taller. 599 00:31:53,090 --> 00:31:53,900 Excellent. 600 00:31:53,900 --> 00:31:56,090 Så nu har vi - 601 00:31:56,090 --> 00:31:58,050 OK, kan du hjælpe mig. 602 00:31:58,050 --> 00:32:00,085 Så nu har vi - hvad er dit navn? 603 00:32:00,085 --> 00:32:00,420 JOANNE: Joanne. 604 00:32:00,420 --> 00:32:00,830 DAVID J. Malan: Joanne. 605 00:32:00,830 --> 00:32:04,100 Så Joanne og jeg nu kommer til at rådgive disse fyre om, hvordan vi 606 00:32:04,100 --> 00:32:05,860 kan gå om stavning noget ud. 607 00:32:05,860 --> 00:32:07,730 Så på ryggen af ​​deres ark papir, har de en 608 00:32:07,730 --> 00:32:10,160 lidt snyde ark, der kommer til at fortælle dem, om 609 00:32:10,160 --> 00:32:12,590 de repræsenterer et 0 eller et 1. 610 00:32:12,590 --> 00:32:15,870 Og hvorfor ikke for nemheds skyld, vil vi betegne 0 ved blot 611 00:32:15,870 --> 00:32:17,440 stod der kejtet. 612 00:32:17,440 --> 00:32:18,220 Meget godt. 613 00:32:18,220 --> 00:32:22,060 Eller en 1 ved at hæve din hånd, svarende til en 1. 614 00:32:22,060 --> 00:32:25,430 Og lad os se om vi ikke kan stave en fire tegn 615 00:32:25,430 --> 00:32:26,250 sætning her. 616 00:32:26,250 --> 00:32:30,930 >> Så gå videre nu, frivillige, og udføre runde af 617 00:32:30,930 --> 00:32:33,390 hæve din hånd, hvis du er en 1 eller holde det 618 00:32:33,390 --> 00:32:36,820 ned, hvis du er en 0. 619 00:32:36,820 --> 00:32:42,280 Så nu hvor vi har disse tre hænder op, hvilket nummer, 620 00:32:42,280 --> 00:32:45,670 alle andre, er de faktisk repræsenterer? 621 00:32:45,670 --> 00:32:45,950 OK. 622 00:32:45,950 --> 00:32:46,290 67. 623 00:32:46,290 --> 00:32:46,910 Hvorfor? 624 00:32:46,910 --> 00:32:47,830 Nå, hurtig tilregnelighed kontrollere. 625 00:32:47,830 --> 00:32:53,200 64 plads, fordi det er et 1, det er ligesom 1 gange 64 plus 1 626 00:32:53,200 --> 00:32:56,565 gange 2, så det er 66 plus 1 gange 1. 627 00:32:56,565 --> 00:32:58,470 Det er plus 1, så 67. 628 00:32:58,470 --> 00:33:01,020 Så nu er disse fyre er kollektivt repræsenterer 67 629 00:33:01,020 --> 00:33:04,110 som tilsyneladende svarer til, hvad her i ASCII? 630 00:33:04,110 --> 00:33:04,380 OK. 631 00:33:04,380 --> 00:33:05,140 Så en ca. 632 00:33:05,140 --> 00:33:05,510 Ok. 633 00:33:05,510 --> 00:33:07,400 Så lad os nu gå videre til runde to. 634 00:33:07,400 --> 00:33:08,940 Alle starter med hænderne ned. 635 00:33:08,940 --> 00:33:10,590 Og i runde to - 636 00:33:10,590 --> 00:33:12,410 faktisk er der ikke meget af en rolle her, jeg formoder, men 637 00:33:12,410 --> 00:33:13,130 vi vil foregive. 638 00:33:13,130 --> 00:33:17,690 Så runde to, hæve eller sænke dine hænder. 639 00:33:17,690 --> 00:33:18,380 >> Ok. 640 00:33:18,380 --> 00:33:22,700 Audience, hvad skal vi nu udtrykker, er 83. 641 00:33:22,700 --> 00:33:23,910 Så du kan gøre matematik. 642 00:33:23,910 --> 00:33:27,000 Men for enhver, hvis hånd er op, tilføje dig i antallet at 643 00:33:27,000 --> 00:33:27,670 de repræsenterer. 644 00:33:27,670 --> 00:33:29,470 Så nu har vi 83. 645 00:33:29,470 --> 00:33:32,140 Lad os udvide snyde ark en lille smule, og vi har nu -? 646 00:33:32,140 --> 00:33:34,340 [Uhørlig] 647 00:33:34,340 --> 00:33:35,370 DAVID J. Malan: OK. 648 00:33:35,370 --> 00:33:36,740 Dette kan være indlysende hvor vi skal hen her, men 649 00:33:36,740 --> 00:33:40,080 ikke desto mindre runde tre. 650 00:33:40,080 --> 00:33:40,455 OK. 651 00:33:40,455 --> 00:33:41,730 Runde tre er god til at gå derned. 652 00:33:41,730 --> 00:33:44,450 Så runde tre, er, hvad nummer disse fyre nu 653 00:33:44,450 --> 00:33:45,700 repræsenterer? 654 00:33:47,940 --> 00:33:48,200 OK. 655 00:33:48,200 --> 00:33:51,770 Jeg hørte 53, som nu repræsenterer? 656 00:33:51,770 --> 00:33:54,550 Interessant. 657 00:33:54,550 --> 00:33:58,630 Nu hvorfor denne form for counter intuitive resultat, right? 658 00:33:58,630 --> 00:34:00,890 Hvis vi ønsker at repræsentere 5 - vi alle kender sikkert 659 00:34:00,890 --> 00:34:01,770 hvor dette foregår - 660 00:34:01,770 --> 00:34:05,230 hvorfor jeg ikke bare hæve 4 plads og 1 plads? 661 00:34:05,230 --> 00:34:07,340 >> Nå, indse, at der er en forskel, fundamentalt, 662 00:34:07,340 --> 00:34:09,630 mellem, hvordan en computer fortolker disse bits. 663 00:34:09,630 --> 00:34:13,030 Hvis du forsøger at repræsentere tallet 5, så absolut, 664 00:34:13,030 --> 00:34:16,199 vi bare hæve hånd nummer 4 og hæve hånd nummer 1. 665 00:34:16,199 --> 00:34:17,880 Men vi er ikke repræsenterer numre her. 666 00:34:17,880 --> 00:34:20,710 Konteksten her på scenen, er, at vi repræsenterer 667 00:34:20,710 --> 00:34:22,300 tegn eller specialtegn. 668 00:34:22,300 --> 00:34:25,139 Og i denne sammenhæng, at computeren har at indse, at 669 00:34:25,139 --> 00:34:28,780 åh, dette mønster af bits er ikke et tal alene, det er 670 00:34:28,780 --> 00:34:31,620 faktisk repræsenterer et højere niveau koncept, i dette tilfælde en 671 00:34:31,620 --> 00:34:32,840 bogstav. 672 00:34:32,840 --> 00:34:36,600 Så det faktum, at det nu er, der repræsenterer antallet 5 med 673 00:34:36,600 --> 00:34:40,550 værdien af ​​53 er fordi i ASCII de ting, vi 674 00:34:40,550 --> 00:34:44,280 æstetisk ser som nummer 5 selv har brug for en 675 00:34:44,280 --> 00:34:45,290 mønster af bits. 676 00:34:45,290 --> 00:34:46,080 Fordi hvorfor? 677 00:34:46,080 --> 00:34:48,780 Nå, verden netop besluttet at bruge de lavere tal, 0, 678 00:34:48,780 --> 00:34:51,989 1, 2, 3, for hvad ser at være temmelig kryptiske ting. 679 00:34:51,989 --> 00:34:54,070 Og ja, det er de tegn, der ikke på et 680 00:34:54,070 --> 00:34:56,870 tastatur, særlige udtryk, du har brug for i en computer til 681 00:34:56,870 --> 00:34:58,800 gøre interessante ting, men mennesker aldrig 682 00:34:58,800 --> 00:34:59,880 faktisk skriver dem. 683 00:34:59,880 --> 00:35:02,080 Så 53 faktisk udgør 5. 684 00:35:02,080 --> 00:35:08,320 Nu, lige som en endelig tilregnelighed check, hvad skal nummer, de 685 00:35:08,320 --> 00:35:10,356 repræsentere på bare et øjeblik? 686 00:35:10,356 --> 00:35:10,752 PUBLIKUM: 48. 687 00:35:10,752 --> 00:35:11,150 DAVID J. Malan: OK. 688 00:35:11,150 --> 00:35:11,920 So 48. 689 00:35:11,920 --> 00:35:12,770 Og ja, gå videre. 690 00:35:12,770 --> 00:35:14,020 Runde fire. 691 00:35:16,510 --> 00:35:20,540 16 plus 32 er faktisk 48. 692 00:35:20,540 --> 00:35:22,830 Og så en stor runde af bifald, hvis vi kunne, for vores 693 00:35:22,830 --> 00:35:25,382 otte frivillige her. 694 00:35:25,382 --> 00:35:25,870 Tak. 695 00:35:25,870 --> 00:35:27,822 Du kan holde denne ene. 696 00:35:27,822 --> 00:35:29,286 Hvis du - 697 00:35:29,286 --> 00:35:30,536 Meget godt klaret. 698 00:35:33,140 --> 00:35:34,360 Helst retning er fint. 699 00:35:34,360 --> 00:35:37,950 >> Så har vi nu en måde ikke blot at tænke på, hvordan man 700 00:35:37,950 --> 00:35:40,810 repræsentere data, og faktisk repræsenterer det fysisk, 701 00:35:40,810 --> 00:35:43,650 men også gør højere niveau ting på toppen af ​​det. 702 00:35:43,650 --> 00:35:45,640 Faktisk er dette vil være et tema i hele computer 703 00:35:45,640 --> 00:35:48,630 videnskab for at bygge mere og mere interessant kompleks 704 00:35:48,630 --> 00:35:52,170 ting på toppen af ​​forholdsvis enkle ideer, i dette 705 00:35:52,170 --> 00:35:54,040 tilfælde bare 0'er og 1'ere. 706 00:35:54,040 --> 00:35:57,270 Med hensyn til hvorfor dette er nyttigt, godt, selvom i en 707 00:35:57,270 --> 00:35:59,760 kursus som dette vil vi fokusere på fundamentals og på 708 00:35:59,760 --> 00:36:03,120 programmering og om løsningen af ​​problemer, kan du gå ud i 709 00:36:03,120 --> 00:36:04,970 datalogi i et vilkårligt antal retninger. 710 00:36:04,970 --> 00:36:07,600 I dette tilfælde her, er dette et diagram, som du har i 711 00:36:07,600 --> 00:36:11,120 bagsiden af ​​din uofficielle guide til CS på Harvard, en af 712 00:36:11,120 --> 00:36:12,450 i dag er to udskrifter. 713 00:36:12,450 --> 00:36:14,270 Dette tyder på mange forskellige retninger, hvor 714 00:36:14,270 --> 00:36:16,270 kan du gå efter et kursus som dette. 715 00:36:16,270 --> 00:36:19,170 Læring om kunstig intelligens, om grafik, 716 00:36:19,170 --> 00:36:22,230 om machine learning. omkring selve sproget 717 00:36:22,230 --> 00:36:23,975 Indser også, at der findes endnu andre veje. 718 00:36:23,975 --> 00:36:26,550 Der er mere matematiske stier i datalogi. 719 00:36:26,550 --> 00:36:29,020 Hvis du ikke selv i stand til at tage noget som CS50 denne 720 00:36:29,020 --> 00:36:30,930 falde, er der introduktionskurser i foråret. 721 00:36:30,930 --> 00:36:33,420 Computer Science 1, for eksempel, er endnu et 722 00:36:33,420 --> 00:36:35,920 on-rampe til denne nye verden. 723 00:36:35,920 --> 00:36:38,230 >> Nu som en sidebemærkning af hensyn til at løse problemer 724 00:36:38,230 --> 00:36:41,380 relateret til kurser, indse, at CS50 fastsat nogen tid 725 00:36:41,380 --> 00:36:44,405 siden at forsøge at løse et af disse problemer, kendt problem 726 00:36:44,405 --> 00:36:47,500 som my.harvard, som mange af jer bruger måske til rent faktisk at 727 00:36:47,500 --> 00:36:48,480 shop for kurser. 728 00:36:48,480 --> 00:36:51,900 Men hvis ikke, så tjek et værktøj som dette, samt andre 729 00:36:51,900 --> 00:36:54,130 efterkommere, at nogle af vores tidligere studerende 730 00:36:54,130 --> 00:36:55,660 og personale har oprettet. 731 00:36:55,660 --> 00:36:57,970 Men i Harvard Kurser, der er et web-baseret værktøj - 732 00:36:57,970 --> 00:37:00,680 noget, som du vil være i stand til at designe og 733 00:37:00,680 --> 00:37:04,610 indsætte dig selv, såvel som endnu andre ting så godt, ved 734 00:37:04,610 --> 00:37:05,920 I slutningen af ​​semesteret. 735 00:37:05,920 --> 00:37:08,890 Indse, at dette sker på en åben datasæt, i dette tilfælde 736 00:37:08,890 --> 00:37:11,350 et kursus katalog, og giver eleverne mulighed for i dette tilfælde 737 00:37:11,350 --> 00:37:14,180 udforske en temmelig kompliceret datasæt. 738 00:37:14,180 --> 00:37:16,710 >> Vi gravede op i går aftes et par statistikker baseret på de få 739 00:37:16,710 --> 00:37:18,200 tusind mennesker, der har brugt dette over 740 00:37:18,200 --> 00:37:19,380 de sidste par dage. 741 00:37:19,380 --> 00:37:22,630 Hvis du har været nysgerrig efter at vide, hvor mange kurser dine venner 742 00:37:22,630 --> 00:37:25,900 faktisk en tendens til at shoppe, ja, i dag er det data tyder på, at 743 00:37:25,900 --> 00:37:29,260 7,6 er det gennemsnitlige antal kurser på 744 00:37:29,260 --> 00:37:30,470 andens indkøbsliste. 745 00:37:30,470 --> 00:37:33,730 Og nu vil jeg give dig, også, at statistik over de mest 746 00:37:33,730 --> 00:37:36,500 række kurser på en eller andens indkøbsliste. 747 00:37:36,500 --> 00:37:38,220 Og vi ved alle kender sikkert nogen, som denne. 748 00:37:41,700 --> 00:37:44,610 201 er dette års rekord. 749 00:37:44,610 --> 00:37:47,220 Nu nogle af vores tidligere studerende og ansatte faktisk 750 00:37:47,220 --> 00:37:52,210 sammensætte et klip for at male et billede til dig, hvad denne 751 00:37:52,210 --> 00:37:55,220 vej datalogi og CS50 selv er. 752 00:37:55,220 --> 00:37:58,350 Lad mig gå videre og trække op, takket være Mr. Hahvahd her, en 753 00:37:58,350 --> 00:38:02,390 video produceret af nogle af dine forgængere. 754 00:38:02,390 --> 00:38:04,680 Hvis vi kunne holde lysene op for dette. 755 00:38:07,860 --> 00:39:08,101 [VIDEO PLAYBACK] 756 00:39:08,101 --> 00:39:11,987 [END VIDEO PLAYBACK] 757 00:39:11,987 --> 00:39:14,160 >> SPEAKER 14: (sang) Vi tager vores tid med nogle ridser, 758 00:39:14,160 --> 00:39:17,410 for loops, events, kan vi matche, kompilering ved hjælp af vores 759 00:39:17,410 --> 00:39:20,370 bash, vil denne periode ikke være en boring. 760 00:39:20,370 --> 00:39:23,970 Hacking sjov, nogle gratis måltider, foredrag er simpelthen uvirkeligt, 761 00:39:23,970 --> 00:39:28,200 vores fair er sådan en big deal, der er så meget at tilbede. 762 00:39:28,200 --> 00:39:29,784 Go, David Malan. 763 00:39:29,784 --> 00:39:31,810 Walkthroughs, jeg ikke øse. 764 00:39:31,810 --> 00:39:33,794 Kontortid, er der ingen mangel. 765 00:39:33,794 --> 00:39:36,274 Hvor tror du, du kodning, baby? 766 00:39:36,274 --> 00:39:40,242 Hey, jeg har lige mødt dig, og det er vanvittigt, 767 00:39:40,242 --> 00:39:42,226 men her er vores grund. 768 00:39:42,226 --> 00:39:44,210 Tag CS50. 769 00:39:44,210 --> 00:39:48,674 Det er svært at kode højre uden dig, skat. 770 00:39:48,674 --> 00:39:50,658 Men her er vores grund. 771 00:39:50,658 --> 00:39:52,146 Tag CS50. 772 00:39:52,146 --> 00:39:56,610 Hey, jeg har lige mødt dig, og det er vanvittigt, 773 00:39:56,610 --> 00:39:58,098 men her er vores grund. 774 00:39:58,098 --> 00:40:00,082 Tag CS50. 775 00:40:00,082 --> 00:40:06,530 Og hver stjerne firma ønsker at ansætte mig, en anden grund. 776 00:40:06,530 --> 00:40:08,018 Tag CS50. 777 00:40:08,018 --> 00:40:12,978 Før du kom ind i mit liv, jeg kodet så slemt, jeg kodet så 778 00:40:12,978 --> 00:40:15,954 dårligt, jeg kodet så, så slemt. 779 00:40:15,954 --> 00:40:19,922 Før du kom ind i mit liv, jeg kodet så slemt 780 00:40:19,922 --> 00:40:22,402 og jeg kan ikke gå tilbage. 781 00:40:22,402 --> 00:40:37,410 Tag CS50. 782 00:40:37,410 --> 00:40:40,490 >> DAVID J. Malan: Jeg havde ingen idé om, at der skulle ske. 783 00:40:40,490 --> 00:40:44,030 Så en mere alvorlig kig på hvad der ligger forude. 784 00:40:44,030 --> 00:40:45,980 Så i forhold til de forventninger til dette kursus, 785 00:40:45,980 --> 00:40:48,490 du faktisk forventes at deltage eller se kursets 786 00:40:48,490 --> 00:40:51,600 forelæsninger, indsende et problem sæt, tag to quizzer, indsende 787 00:40:51,600 --> 00:40:52,590 et afsluttende projekt. 788 00:40:52,590 --> 00:40:56,250 Med hensyn til karakterer, indse, at min kommentar ved åbningen 789 00:40:56,250 --> 00:40:58,190 om bestået / ikke bestået, noget, som vi i høj grad tage til 790 00:40:58,190 --> 00:40:59,310 hjerte i CS50. 791 00:40:59,310 --> 00:41:02,970 Der er ikke nær nok af en kultur på Harvard for at forsøge 792 00:41:02,970 --> 00:41:04,940 noget og risikere fiasko. 793 00:41:04,940 --> 00:41:07,010 Faktisk havde vi antal studerende, og jeg selv, i 794 00:41:07,010 --> 00:41:09,910 Specielt blev der bekymrede såre din GPA eller 795 00:41:09,910 --> 00:41:13,170 at få en B i noget lignende CS50. 796 00:41:13,170 --> 00:41:16,250 Og mulighed for at tage et kursus som dette, og andre 797 00:41:16,250 --> 00:41:19,080 gateway kurser på indledende niveau, bestået / ikke bestået 798 00:41:19,080 --> 00:41:22,190 er en meget uudnyttede muligheder på dette kollegium, 799 00:41:22,190 --> 00:41:22,620 i almindelighed. 800 00:41:22,620 --> 00:41:25,420 Og så skal du vide selv jeg tilmeldt dette kursus 801 00:41:25,420 --> 00:41:28,430 i første omgang til bestået / ikke bestået kredit alene. 802 00:41:28,430 --> 00:41:30,710 Og selv om jeg gjorde kontakten ved slutningen af ​​dagen, var det 803 00:41:30,710 --> 00:41:33,280 de fem første uger, op til den femte mandag i 804 00:41:33,280 --> 00:41:36,020 semester, der er cutoff, der tillod mig at der faktisk 805 00:41:36,020 --> 00:41:39,270 sætte foden i disse nye farvande og faktisk prøve noget 806 00:41:39,270 --> 00:41:41,520 meget uvant og meget ubehageligt 807 00:41:41,520 --> 00:41:43,400 for mig på det tidspunkt. 808 00:41:43,400 --> 00:41:47,130 >> Så vidt angår, nu om, hvilken rolle de forskellige vinkler, via hvilke 809 00:41:47,130 --> 00:41:50,630 du kan nærme sig dette kursus tjene, så foredrag, det er op til 810 00:41:50,630 --> 00:41:53,330 dig, hvis du engagere sig med os i person på dette sted. 811 00:41:53,330 --> 00:41:57,590 Faktisk ved vi statistisk, at omkring 40% af jer vil 812 00:41:57,590 --> 00:41:59,530 slags kommer og går i løbet af semesteret. 813 00:41:59,530 --> 00:42:03,000 Og 10% af dig, vil vi aldrig se igen efter i dag. 814 00:42:03,000 --> 00:42:05,400 Og det er helt fint, at være ærlig. 815 00:42:05,400 --> 00:42:07,810 Et af de vigtigste kendetegn ved CS50 er 816 00:42:07,810 --> 00:42:10,160 at der er disse utallige midler, hvoraf nogle 817 00:42:10,160 --> 00:42:12,570 som vi vil rasle igennem på bare et øjeblik, herunder 818 00:42:12,570 --> 00:42:15,320 foredrag og sektioner og ting kaldet walkthroughs og 819 00:42:15,320 --> 00:42:16,720 åbningstid og lignende. 820 00:42:16,720 --> 00:42:18,890 Og det er flere ressourcer end den typiske studerende skal 821 00:42:18,890 --> 00:42:21,580 nødt til eller kan fysisk drage fordel af. 822 00:42:21,580 --> 00:42:23,650 Men det er på grund af de forskellige læringsstile, at 823 00:42:23,650 --> 00:42:25,370 enhver studerende manifesterer. 824 00:42:25,370 --> 00:42:28,120 Og så i forelæsninger, den primære rolle, som jeg ser det, er 825 00:42:28,120 --> 00:42:31,650 ikke at verbalt skubbe ud temmelig komplekst materiale og til 826 00:42:31,650 --> 00:42:34,670 nødvendigvis levere alle de snørklede af 827 00:42:34,670 --> 00:42:36,910 fundamentals, som vi vil udforske dette semester, men 828 00:42:36,910 --> 00:42:39,530 snarere at gøre ting som vi har gjort hidtil allerede, 829 00:42:39,530 --> 00:42:42,350 disse eksempler, der involverer mennesker på scenen, forsøger at 830 00:42:42,350 --> 00:42:45,340 male et mentalt billede, og også oprette, tør jeg sige, nogle 831 00:42:45,340 --> 00:42:46,450 af disse mindeværdige øjeblikke. 832 00:42:46,450 --> 00:42:49,200 Så det selv som du kæmper med bestemte emner, du har 833 00:42:49,200 --> 00:42:51,770 disse erindringer kan lide, oh, selvom det var temmelig 834 00:42:51,770 --> 00:42:54,770 abstrakt, matematik, fik jeg tabt med at bære 1, ligesom det 835 00:42:54,770 --> 00:42:57,510 virkelig, ved slutningen af ​​dagen, er ikke så ulig 836 00:42:57,510 --> 00:42:58,920 noget, jeg allerede kender. 837 00:42:58,920 --> 00:43:01,590 Og så den rolle, foredrag vil tjene, enten personligt 838 00:43:01,590 --> 00:43:05,120 her i Sanders eller online på video, er virkelig at indstille 839 00:43:05,120 --> 00:43:08,170 iscenesætte mentalt for dig hver uge for de forskellige begreber 840 00:43:08,170 --> 00:43:10,240 og problemer, som vi vil være dykning i. 841 00:43:10,240 --> 00:43:13,790 >> Med hensyn til de højt niveau begreber, de fleste af disse ord 842 00:43:13,790 --> 00:43:16,340 kan flyde over dit hoved for øjeblikket, og det er fint. 843 00:43:16,340 --> 00:43:18,495 For dem af jer, der kommer ind i kurset mere komfortabel 844 00:43:18,495 --> 00:43:20,150 vil vide af nogle af disse emner. 845 00:43:20,150 --> 00:43:23,150 Men typisk for at 10% af den klasse, hvortil de er 846 00:43:23,150 --> 00:43:25,810 meget mere baggrund, idet AP datalogi, 847 00:43:25,810 --> 00:43:28,200 programmering, siden de var 12, indse, at der vil være 848 00:43:28,200 --> 00:43:31,230 muligheder i sektioner og i problem indstiller til at gå hele 849 00:43:31,230 --> 00:43:34,240 mere i dybden i forskellige emner, påfyldning uanset 850 00:43:34,240 --> 00:43:36,710 huller, du måtte have fra din high school eller forudgående 851 00:43:36,710 --> 00:43:37,460 baggrund. 852 00:43:37,460 --> 00:43:39,930 Med hensyn til de sprog, indse, at hvad sprog vi 853 00:43:39,930 --> 00:43:42,550 brug i CS50 er stort set irrelevant i 854 00:43:42,550 --> 00:43:43,220 slutningen af ​​dagen. 855 00:43:43,220 --> 00:43:47,090 Vi tilfældigvis til at bruge, først og fremmest, et sprog kaldet C. Mod 856 00:43:47,090 --> 00:43:49,010 slutningen af ​​semestret, vi indfører web-centreret 857 00:43:49,010 --> 00:43:51,110 sprog som PHP og JavaScript. 858 00:43:51,110 --> 00:43:54,280 Men vi og andre kunne lære et kursus som dette i de fleste enhver 859 00:43:54,280 --> 00:43:55,610 moderne højniveausprog. 860 00:43:55,610 --> 00:43:58,520 Python og Ruby og andre er meget populære i disse dage. 861 00:43:58,520 --> 00:44:00,970 Fordi realisere ved slutningen af ​​dagen, er du ikke lærer 862 00:44:00,970 --> 00:44:04,180 i dette kursus C. Du er ikke lærer PHP eller JavaScript. 863 00:44:04,180 --> 00:44:07,140 Du lære at løse problemer, hvad enten web-baseret, 864 00:44:07,140 --> 00:44:10,480 computer-baseret, eller data-orienterede selv, ved hjælp af 865 00:44:10,480 --> 00:44:12,700 disse blot som værktøjer. 866 00:44:12,700 --> 00:44:14,730 >> Nu, med hensyn til logistik, skal du bruge 867 00:44:14,730 --> 00:44:16,670 noget i sidste ende, kaldet CS50 Appliance. 868 00:44:16,670 --> 00:44:19,350 Gør ikke noget hvis du har en Mac, en pc, en Linux-computer, 869 00:44:19,350 --> 00:44:20,010 eller lignende. 870 00:44:20,010 --> 00:44:22,510 Du har frit tilgængelig software starter i næste uge 871 00:44:22,510 --> 00:44:25,460 med til at bruge den CS50 Appliance, et virtuelt 872 00:44:25,460 --> 00:44:28,020 miljø, som du vil bruge på din egen computer, så du 873 00:44:28,020 --> 00:44:31,120 og alle dine klassekammerater har en ensartet Linux desktop 874 00:44:31,120 --> 00:44:31,890 i dette tilfælde. 875 00:44:31,890 --> 00:44:34,390 Det er problemet sæt, selv om, hvor du virkelig får 876 00:44:34,390 --> 00:44:35,780 dine hænder beskidte i løbet. 877 00:44:35,780 --> 00:44:37,630 Og i slutningen af ​​dagen, er det problemet sæt, jeg 878 00:44:37,630 --> 00:44:39,680 tror, ​​der virkelig definerer en elevs 879 00:44:39,680 --> 00:44:41,380 opleve i dette kursus. 880 00:44:41,380 --> 00:44:43,460 Indse, at mange af de problematiske sæt vil blive frigivet 881 00:44:43,460 --> 00:44:46,430 i to udgaver, at en standard tilsætning vi forventer og 882 00:44:46,430 --> 00:44:49,550 tilskynde 90% af klassen til at dykke ned. 883 00:44:49,550 --> 00:44:51,620 Men vi har også frigive nogle problematiske apparater i 884 00:44:51,620 --> 00:44:52,920 såkaldt hacker tilføjelser. 885 00:44:52,920 --> 00:44:54,900 Og du ved, det er hacker tilsætning fordi på hver side 886 00:44:54,900 --> 00:44:57,840 med et vandmærke det siger hacker tilsætning på det. 887 00:44:57,840 --> 00:45:00,000 Og det er for denne demografiske af jer, der har AP 888 00:45:00,000 --> 00:45:02,890 datalogi med 10 års programmering under dit bælte 889 00:45:02,890 --> 00:45:05,640 og søger at udfylde disse huller og have mere formel, 890 00:45:05,640 --> 00:45:07,370 snarere end autodidakt, uddannelse, måske. 891 00:45:07,370 --> 00:45:10,410 Indse, at der er en meget betydelig demografisk i 892 00:45:10,410 --> 00:45:13,090 klasse, der har præcis det samme mål. 893 00:45:13,090 --> 00:45:14,320 Du vil have fem sene dage. 894 00:45:14,320 --> 00:45:16,490 Problem sæt skyldes generelt om torsdagen, men du kan 895 00:45:16,490 --> 00:45:18,440 udvide fem af disse frister ved hjælp af disse 896 00:45:18,440 --> 00:45:19,700 ting kaldet sene dage. 897 00:45:19,700 --> 00:45:22,590 Og vi vil også falde din laveste score ved slutningen af ​​den 898 00:45:22,590 --> 00:45:25,400 semester pr oplysningerne i pensum. 899 00:45:25,400 --> 00:45:27,800 >> Men en anden kendetegn ved CS50 forhold 900 00:45:27,800 --> 00:45:29,830 årene er blevet kontortid. 901 00:45:29,830 --> 00:45:32,720 Det er en mulighed, at du så visuelt på fotos lidt 902 00:45:32,720 --> 00:45:35,850 siden, hvor vi samles - tidligere i hus spisning 903 00:45:35,850 --> 00:45:37,780 haller, før det i kælderen af ​​Science 904 00:45:37,780 --> 00:45:40,310 Center og i år i Annenberg Hall - fire aftener om 905 00:45:40,310 --> 00:45:43,330 uge fra 20:00 til 11:00, hvor du vil have det meget 906 00:45:43,330 --> 00:45:46,320 meget delte erfaring med at arbejde, kæmper 907 00:45:46,320 --> 00:45:49,300 igennem, visse problemer, men med en væsentlig støtte 908 00:45:49,300 --> 00:45:50,380 struktur på plads. 909 00:45:50,380 --> 00:45:53,180 Faktisk den måde, dette vil fungere, er du ankomme til Annenberg 910 00:45:53,180 --> 00:45:55,160 hvis du har nogle spørgsmål i løbet af ugen, vil du bringe 911 00:45:55,160 --> 00:45:58,060 din bærbare computer, vil du sidde ned, Grib nogle fødevarer, og du vil logge 912 00:45:58,060 --> 00:46:01,520 i CS50 Diskuter, en web-baseret hjælpeprogram, at undervisningen 913 00:46:01,520 --> 00:46:04,480 Personalet har udviklet, som vil give dig mulighed for at stille spørgsmål 914 00:46:04,480 --> 00:46:07,910 og se opfølgninger i en typisk diskussionsforum 915 00:46:07,910 --> 00:46:10,550 forstand ved hjælp af etiketter og lignende, og auto-fuldførelse til 916 00:46:10,550 --> 00:46:11,680 søgning i oplysningerne. 917 00:46:11,680 --> 00:46:14,850 Men du vil også være i stand til i løbet af de timer af kontor 918 00:46:14,850 --> 00:46:16,980 timer har dine spørgsmål eskaleret til 919 00:46:16,980 --> 00:46:18,360 virkelige mennesker. 920 00:46:18,360 --> 00:46:21,430 Faktisk målet sidste ende er således at én, vi begynder at bygge 921 00:46:21,430 --> 00:46:24,040 op i løbet af semestret et korpus af forhåbentlig 922 00:46:24,040 --> 00:46:26,970 virkelig nyttige oplysninger, fælles svar på fælles 923 00:46:26,970 --> 00:46:29,640 spørgsmål, så du selv kan løse problemerne 924 00:46:29,640 --> 00:46:33,490 og komme galt så hurtigt som muligt, men samtidig have den 925 00:46:33,490 --> 00:46:37,210 lærere, normalt 20 til 30 af de pædagogiske stipendiater og 926 00:46:37,210 --> 00:46:39,660 kursus assistenter, på personale på én gang. 927 00:46:39,660 --> 00:46:42,420 >> Vi vil have det, der kaldes CS50 Greeter i Annenberg. 928 00:46:42,420 --> 00:46:46,710 Og når vi afgør det, ved du hvad, dette spørgsmål, 929 00:46:46,710 --> 00:46:48,780 vi kan ikke rigtig svare effektivt online. 930 00:46:48,780 --> 00:46:49,800 Vi er nødt til at se din computer. 931 00:46:49,800 --> 00:46:50,710 Vi vil gerne tale med dig one-on-one. 932 00:46:50,710 --> 00:46:51,340 På den ene. 933 00:46:51,340 --> 00:46:53,400 Du er virkelig kæmper, og du derfor ønsker at tale 934 00:46:53,400 --> 00:46:56,010 one-on-one sammen med nogen, vil du blive sendt til den 935 00:46:56,010 --> 00:46:58,730 CS50 Greeter, en undervisning fyr bedrift, bogstaveligt talt, en 936 00:46:58,730 --> 00:47:01,770 iPad, der har elevernes navne på den ene side, undervisning personalets 937 00:47:01,770 --> 00:47:02,790 navnene på den anden. 938 00:47:02,790 --> 00:47:04,760 Vi vil klikke på dit navn efterfulgt af navnet på en 939 00:47:04,760 --> 00:47:06,860 undervisere, og computerskærmen starter 940 00:47:06,860 --> 00:47:11,170 blinker siger please gå se Alice eller gå venligst se Bob på 941 00:47:11,170 --> 00:47:11,980 personale bordet. 942 00:47:11,980 --> 00:47:14,450 Og så på den måde vil vi være i stand til at sende ting som 943 00:47:14,450 --> 00:47:17,610 effektivt som muligt, samt guide dig mod 944 00:47:17,610 --> 00:47:19,910 opløsninger desto lettere. 945 00:47:19,910 --> 00:47:22,970 I afsnit vil disse være muligheder for mere 946 00:47:22,970 --> 00:47:25,570 intime hands-on muligheder med en af ​​de 947 00:47:25,570 --> 00:47:29,040 undervisning stipendiater og 12 til 16 eller deromkring af dine klassekammerater i 948 00:47:29,040 --> 00:47:31,900 som hver uge vil vi få problemer i det problem sæt 949 00:47:31,900 --> 00:47:33,800 at stille en række principielle spørgsmål og en 950 00:47:33,800 --> 00:47:35,740 Antallet af bit-størrelse programmering spørgsmål, som du 951 00:47:35,740 --> 00:47:37,690 kunne finde ud af på egen hånd, og du kan arbejde på din 952 00:47:37,690 --> 00:47:40,020 egne, men i sammenhæng med afsnittet, hvor vi arbejder igennem 953 00:47:40,020 --> 00:47:42,870 kollektivt nogle af disse problemer og gå, hvor den 954 00:47:42,870 --> 00:47:44,570 anderledes samtale tager os. 955 00:47:44,570 --> 00:47:48,010 >> Derudover vil i sektion har du mulighed for at 956 00:47:48,010 --> 00:47:50,450 gennemgå indlæg af lektier, som du har lavet, din 957 00:47:50,450 --> 00:47:53,620 klassekammerater, nogle gange anonymiseres, altid via opt-in 958 00:47:53,620 --> 00:47:55,810 hvis du gerne vil dele det arbejde, du har indsendt. 959 00:47:55,810 --> 00:47:58,030 Så det vil virkelig være en to-vejs samtale, 960 00:47:58,030 --> 00:48:00,840 lejlighed til at gennemgå dit eget arbejde i en langt mere 961 00:48:00,840 --> 00:48:04,080 dynamisk forstand, snarere end blot at kigge på en PDF-fil eller en 962 00:48:04,080 --> 00:48:06,920 udskrift og tænke over det i et par sekunder og ikke 963 00:48:06,920 --> 00:48:08,920 nødvendigvis absorbere den feedback, at undervisningen 964 00:48:08,920 --> 00:48:10,150 Personalet har givet. 965 00:48:10,150 --> 00:48:12,540 Og du vil bruge et værktøj her kaldet CS50 Spaces. 966 00:48:12,540 --> 00:48:15,670 For dem bekendt, er dette sprog er kendt som C ved top 967 00:48:15,670 --> 00:48:17,500 til venstre, og du vil få at vide dette over tid. 968 00:48:17,500 --> 00:48:19,640 Men dette er et web-baseret værktøj, som vi vil bruge i 969 00:48:19,640 --> 00:48:22,310 sektion, der vil give dig og din 15 eller så klassekammerater 970 00:48:22,310 --> 00:48:24,100 at logge ind med din undervisning stipendiat ved 971 00:48:24,100 --> 00:48:24,980 forreste del af rummet. 972 00:48:24,980 --> 00:48:26,750 Du vil være i stand til at skrive kode i dette vindue. 973 00:48:26,750 --> 00:48:28,720 Du vil være i stand til at chatte elektronisk, hvis du ikke er 974 00:48:28,720 --> 00:48:30,930 faktisk ved snittet på det pågældende tidspunkt. 975 00:48:30,930 --> 00:48:33,940 Og din undervisning fyr, når det drejer sig tid til at diskutere 976 00:48:33,940 --> 00:48:38,645 Alices eller Bobs løsning i klassen, undervisning fyr kan 977 00:48:38,645 --> 00:48:41,380 klik på en knap og voila, projekt på skærmen, 978 00:48:41,380 --> 00:48:44,250 uanset at studerende har arbejdet på på det pågældende 979 00:48:44,250 --> 00:48:44,990 tidspunkt. 980 00:48:44,990 --> 00:48:47,130 Så for dem af jer, der har venner, der har taget CS50 i 981 00:48:47,130 --> 00:48:49,750 fortiden, indser, at sektionerne har været væsentligt 982 00:48:49,750 --> 00:48:52,600 genstartet i år til at være endnu mere aktive, desto mere 983 00:48:52,600 --> 00:48:55,960 dynamisk, og virkelig en tovejs samtale mellem undervisning 984 00:48:55,960 --> 00:48:58,190 medarbejdere og studerende. 985 00:48:58,190 --> 00:48:59,020 >> Og walkthroughs. 986 00:48:59,020 --> 00:49:01,560 Så for disse problemområder sæt, tilbyder vi også ikke blot 987 00:49:01,560 --> 00:49:04,210 specifikation selv, som generelt er en temmelig detaljeret 988 00:49:04,210 --> 00:49:07,380 PDF, men også ting kaldet walkthroughs, hvorved en 989 00:49:07,380 --> 00:49:11,000 medlem af lærerstaben vil føre en ugentlig session 990 00:49:11,000 --> 00:49:13,210 der bogstaveligt fører dig gennem problemet sæt, som giver 991 00:49:13,210 --> 00:49:15,720 dig tips og råd og udgangspunkter og menes 992 00:49:15,720 --> 00:49:17,250 at spørge meget ofte spurgt 993 00:49:17,250 --> 00:49:19,360 spørgsmål, hvor skal jeg begynde? 994 00:49:19,360 --> 00:49:21,990 Nå, du begynder enten ved at dykke ned i spec på sin 995 00:49:21,990 --> 00:49:25,100 egen eller ved at deltage eller se disse walkthroughs. 996 00:49:25,100 --> 00:49:27,420 Den første gennemgang, faktisk være vil denne fredag. 997 00:49:27,420 --> 00:49:29,520 De vil være om fredagen, ikke så meget fordi vi tror, ​​det vil være 998 00:49:29,520 --> 00:49:32,160 en populær tid, men fordi vi så kan filme dem meget tidligt 999 00:49:32,160 --> 00:49:34,380 i ugen for at få dem online af weekenden, så du 1000 00:49:34,380 --> 00:49:37,670 har så mange dage som muligt rent faktisk at engagere sig i det 1001 00:49:37,670 --> 00:49:38,390 indhold så godt. 1002 00:49:38,390 --> 00:49:40,900 Men mere om det i forelæsning på fredag. 1003 00:49:40,900 --> 00:49:43,620 >> Nu med hensyn til støttestrukturen, det mest 1004 00:49:43,620 --> 00:49:46,430 signifikant statistik er måske den 108 undervisning 1005 00:49:46,430 --> 00:49:47,950 stipendiater og kursus assistenter, at dette 1006 00:49:47,950 --> 00:49:49,730 kursus har. 1007 00:49:49,730 --> 00:49:52,030 Hvis nogle af jer, der ikke har modstridende klasser ville gerne 1008 00:49:52,030 --> 00:49:55,070 at slutte sig til mig heroppe på scenen, er det disse fyre, der vil 1009 00:49:55,070 --> 00:49:57,990 i sidste ende virkelig definere din oplevelse i kurset. 1010 00:50:06,750 --> 00:50:09,290 Jeg havde en masse undervisning stipendiater lære mig klasser i 1011 00:50:09,290 --> 00:50:11,650 dagen, og jeg husker meget få af dem ærligt. 1012 00:50:11,650 --> 00:50:15,590 Men til dato, jeg husker stadig blandt de få, min CS50 TF 1013 00:50:15,590 --> 00:50:18,100 som virkelig hjalp mig svare på spørgsmål, som virkelig har hjulpet 1014 00:50:18,100 --> 00:50:20,690 mig, når jeg kæmpede, og virkelig var en partner i denne 1015 00:50:20,690 --> 00:50:23,630 erfaring med at lære en meget ny verden. 1016 00:50:23,630 --> 00:50:26,410 I en lille smule, vil alle disse fyre slutte sig til dig uden for 1017 00:50:26,410 --> 00:50:29,010 kage, der er en tradition for CS50, i tværskib af 1018 00:50:29,010 --> 00:50:30,030 Memorial Hall. 1019 00:50:30,030 --> 00:50:32,320 >> Men tillad mig først at introducere dig til Nate 1020 00:50:32,320 --> 00:50:35,820 Hardison, igen, Rob Bowden, og Tommy MacWilliam, dette 1021 00:50:35,820 --> 00:50:37,460 års kursus hoveder. 1022 00:50:37,460 --> 00:50:39,250 Hvis du fyre ville slutte mig her i midten. 1023 00:50:45,250 --> 00:50:47,910 De har alle udarbejdet nogle inspirerende bemærkninger. 1024 00:50:51,540 --> 00:50:52,550 >> TOMMY MACWILLIAM: Jeg har ikke forberede noget 1025 00:50:52,550 --> 00:50:53,665 inspirerende. 1026 00:50:53,665 --> 00:50:55,020 Men mit navn er Tommy. 1027 00:50:55,020 --> 00:50:56,140 Jeg er en senior i Mather. 1028 00:50:56,140 --> 00:50:57,325 Jeg studerer datalogi. 1029 00:50:57,325 --> 00:50:59,490 Jeg er virkelig glade for at være på hækken team og går 1030 00:50:59,490 --> 00:51:01,365 gennem CS50 rejse med dig. 1031 00:51:01,365 --> 00:51:04,010 Hvad jeg virkelig elsker ved CS50 er, hvordan det virkelig lærer dig 1032 00:51:04,010 --> 00:51:06,040 at tænke om problemer på en ny måde. 1033 00:51:06,040 --> 00:51:08,570 Dette er virkelig en færdighed, der er gonna være uvurderlige ligegyldigt 1034 00:51:08,570 --> 00:51:09,950 hvad felt, du går ind. 1035 00:51:09,950 --> 00:51:12,660 Og ikke nok med det, men vi tilbyder mere fri slik end nogen 1036 00:51:12,660 --> 00:51:13,910 anden kursus på campus. 1037 00:51:20,088 --> 00:51:22,210 Ja, og så jeg ser virkelig frem til at se hvad 1038 00:51:22,210 --> 00:51:23,560 alle bygger dette semester. 1039 00:51:23,560 --> 00:51:25,730 Og hvis nogen har nogen spørgsmål nu eller i hele 1040 00:51:25,730 --> 00:51:27,770 semestret, absolut velkommen til at nå ud til mig og 1041 00:51:27,770 --> 00:51:29,020 Jeg ville være glad for at hjælpe. 1042 00:51:31,450 --> 00:51:31,780 >> ROB BOWDEN: Hej. 1043 00:51:31,780 --> 00:51:32,530 Jeg er Rob Bowden. 1044 00:51:32,530 --> 00:51:33,780 Jeg er en senior i Kirkland. 1045 00:51:37,900 --> 00:51:39,760 Ja, det er rigtigt. 1046 00:51:39,760 --> 00:51:41,930 Vi er alle virkelig glade for denne næste semester. 1047 00:51:41,930 --> 00:51:43,230 Vi håber, du er alle glade. 1048 00:51:47,710 --> 00:51:49,410 Jeg havde ikke ventet det. 1049 00:51:49,410 --> 00:51:50,390 Yeah. 1050 00:51:50,390 --> 00:51:52,200 Så vi lagt så meget arbejde i at gøre dette 1051 00:51:52,200 --> 00:51:53,370 semester virkelig stor. 1052 00:51:53,370 --> 00:51:55,960 Og så længe du er villig til at sætte i den indsats, der er 1053 00:51:55,960 --> 00:51:57,840 så meget du kan få ud af dette kursus. 1054 00:51:57,840 --> 00:52:00,130 Ah, vi - 1055 00:52:00,130 --> 00:52:01,380 yeah. 1056 00:52:04,640 --> 00:52:08,300 Du kan få en masse sjov ud af dette kursus. 1057 00:52:08,300 --> 00:52:10,500 Vi ville ikke have en stab på 108, hvis du ikke kunne få en masse 1058 00:52:10,500 --> 00:52:11,370 af sjov ud af det. 1059 00:52:11,370 --> 00:52:15,300 Så bare forsøge at være involveret, og du vil ikke fortryde det. 1060 00:52:23,190 --> 00:52:23,890 >> NATE Hardison: Hej, gutter. 1061 00:52:23,890 --> 00:52:24,800 Jeg er Nate. 1062 00:52:24,800 --> 00:52:27,570 Jeg er preceptor for kurset. 1063 00:52:27,570 --> 00:52:29,060 Jeg er virkelig spændt på at være her så godt. 1064 00:52:29,060 --> 00:52:30,960 Dette er mit første år her. 1065 00:52:30,960 --> 00:52:34,210 Jeg håber I alle tage dette kursus og nyde det så meget som 1066 00:52:34,210 --> 00:52:35,820 Jeg har nydt det indtil videre. 1067 00:52:35,820 --> 00:52:38,570 Og hvis du nogensinde ønsker at lære at tælle til 9 eller 10 i 1068 00:52:38,570 --> 00:52:41,730 binære, komme og tale med mig. 1069 00:52:41,730 --> 00:52:43,760 >> DAVID J. Malan: Så med risiko for at forlade disse fyre her på 1070 00:52:43,760 --> 00:52:46,980 iscenesætte en smule akavet, lad os hvirvle gennem blot nogle få af 1071 00:52:46,980 --> 00:52:49,370 de ting, der venter, før vi afbryder for kage. 1072 00:52:49,370 --> 00:52:50,580 Hvad er det, der ligger forude? 1073 00:52:50,580 --> 00:52:53,490 Tja, hvis vi tager et hurtigt kig tilbage på sidste år, problem 1074 00:52:53,490 --> 00:52:56,010 sat til 0, Deres forgængere dove i et programmeringssprog 1075 00:52:56,010 --> 00:52:58,700 sprog kaldes Scratch, en grafisk programmeringssprog 1076 00:52:58,700 --> 00:53:01,220 du vil bruge i de første dage af kurset begynder denne 1077 00:53:01,220 --> 00:53:04,390 Fredag ​​til at lære nogle begreber ukendte for nogle af jer. 1078 00:53:04,390 --> 00:53:06,750 Men indse, der vil være en avanceret aspekt af dette for 1079 00:53:06,750 --> 00:53:08,950 dem af jer med forudgående baggrund. 1080 00:53:08,950 --> 00:53:11,450 >> I sidste års problem sæt 2, studerende dykkede ned i 1081 00:53:11,450 --> 00:53:14,780 verden for kryptografi, kunsten enciphering eller forvanske 1082 00:53:14,780 --> 00:53:17,770 information, gennemføre programmer, der krypterede data. 1083 00:53:17,770 --> 00:53:21,490 Og i hacker tilsætning sidste år blev eleverne fortsætte 1084 00:53:21,490 --> 00:53:24,570 til at revne eller afkode passwords i en typisk 1085 00:53:24,570 --> 00:53:28,090 computerens xe password fil ved at komme op med algoritmer og 1086 00:53:28,090 --> 00:53:31,810 heuristikker for brute force regne ud, hvad nogen er 1087 00:53:31,810 --> 00:53:33,640 adgangskode på et edb-system var. 1088 00:53:33,640 --> 00:53:36,630 Sidste år, også i problemer sæt 3, gjorde de studerende implicerede i - i 1089 00:53:36,630 --> 00:53:37,680 problem sat 4 - gjorde studerende 1090 00:53:37,680 --> 00:53:39,280 gennemføre spil Sudoku. 1091 00:53:39,280 --> 00:53:42,250 Og i hacker tilføjelse, at året har de studerende ikke 1092 00:53:42,250 --> 00:53:45,650 bare gennemføre, hvordan man spiller spillet, men faktisk en solver 1093 00:53:45,650 --> 00:53:47,800 hvorved computeren kan give dig, den menneskelige, med 1094 00:53:47,800 --> 00:53:50,130 hints med mere hurtigere end du har løse 1095 00:53:50,130 --> 00:53:51,420 dette særlige problem. 1096 00:53:51,420 --> 00:53:54,130 >> I problem set 5, gjorde vi retsvidenskab, denne kunst af 1097 00:53:54,130 --> 00:53:57,020 inddrive oplysninger, der var et uheld eller meget 1098 00:53:57,020 --> 00:53:59,320 bevidst slettet fra en computer. 1099 00:53:59,320 --> 00:54:02,100 Sidste år lærergruppen og jeg bartenderen omkring campus 1100 00:54:02,100 --> 00:54:04,990 tage billeder af mennesker, steder og ting, og derefter 1101 00:54:04,990 --> 00:54:07,830 uheld formateret mediekortet på vores kamera, 1102 00:54:07,830 --> 00:54:08,900 havde alle de billeder. 1103 00:54:08,900 --> 00:54:09,650 Men ikke noget problem. 1104 00:54:09,650 --> 00:54:13,780 Vi har lavet en retsmedicinsk billede af denne mediekort, rakte det ud 1105 00:54:13,780 --> 00:54:16,320 til alle elever i klassen, og udfordrede dem til at skrive 1106 00:54:16,320 --> 00:54:20,110 programmer, der genvundet alle de JPEG fra det kort. 1107 00:54:20,110 --> 00:54:22,010 Og det er faktisk en af ​​vores foretrukne problem sæt. 1108 00:54:22,010 --> 00:54:24,680 >> Og jeg gravede op i en e-mail fra en af ​​dine forgængere, 1109 00:54:24,680 --> 00:54:27,270 som var sjovt at læse engang siden. 1110 00:54:27,270 --> 00:54:30,240 Han skrev - dette er fra Matt - kære David, går min 1111 00:54:30,240 --> 00:54:33,710 søster uheld formateret hendes kameras SD-kort og tabte 1112 00:54:33,710 --> 00:54:35,630 et års forbrug af mindeværdige billeder. 1113 00:54:35,630 --> 00:54:38,710 Hun er desværre ikke den bedste til at sikkerhedskopiere sine data. 1114 00:54:38,710 --> 00:54:41,230 Men denne situation mindede mig om Pset 5, så jeg tænkte jeg 1115 00:54:41,230 --> 00:54:44,260 ville forsøge at køre hende SD-kort gennem genindvindingsværdien program 1116 00:54:44,260 --> 00:54:46,310 at jeg skrev helt tilbage i oktober. 1117 00:54:46,310 --> 00:54:48,550 Så efter fire timers finde ud af, hvordan du opretter en 1118 00:54:48,550 --> 00:54:51,210 rå billede fra formateret SD-kort - 1119 00:54:51,210 --> 00:54:53,370 Google viste sig at være temmelig uhensigtsmæssigt i denne henseende indtil 1120 00:54:53,370 --> 00:54:55,480 ironisk jeg sket til at komme på tværs af dine anvisninger på 1121 00:54:55,480 --> 00:54:58,070 Internettet - 1122 00:54:58,070 --> 00:55:00,490 efter at fifle rundt med nogle af de kommando argumenter, 1123 00:55:00,490 --> 00:55:02,320 Jeg formået at skabe den retsmedicinske billede. 1124 00:55:02,320 --> 00:55:04,490 Og efter installation og konfiguration af CS50 1125 00:55:04,490 --> 00:55:07,520 Appliance, jeg formåede at køre retsmedicinsk billede gennem min 1126 00:55:07,520 --> 00:55:13,110 programmere og gendanne hele 1.027 af min søsters fotografier. 1127 00:55:13,110 --> 00:55:14,340 Højre, Matt. 1128 00:55:14,340 --> 00:55:15,165 >> Så i sidste year's - 1129 00:55:15,165 --> 00:55:23,080 [Bifald] 1130 00:55:23,080 --> 00:55:25,680 I sidste års problem sæt 6, gav vi de studerende et 1131 00:55:25,680 --> 00:55:29,910 ordbog på 150.000 engelske ord og udfordrede dem til at 1132 00:55:29,910 --> 00:55:32,570 skrive en stavekontrol, der besvarede spørgsmål af formen 1133 00:55:32,570 --> 00:55:33,930 er dette ord stavet rigtigt eller 1134 00:55:33,930 --> 00:55:35,705 fejlagtigt så hurtigt som muligt. 1135 00:55:35,705 --> 00:55:38,470 Og i en opt-in var studerende lov til at så 1136 00:55:38,470 --> 00:55:41,290 udfordre klassekammerater ved at sende deres resultater, 1137 00:55:41,290 --> 00:55:44,200 mængde RAM, at de brugte, antallet af CPU cycles eller 1138 00:55:44,200 --> 00:55:46,910 sekunder, som de brugte, så de studerende blev derefter rangeret 1139 00:55:46,910 --> 00:55:47,900 på kursets hjemmeside. 1140 00:55:47,900 --> 00:55:51,170 Igen rent fakultativ aspekt af det, men sjovt i det 1141 00:55:51,170 --> 00:55:54,540 meget ofte vil en elev komme til at positionere nummer 10 eller deromkring på 1142 00:55:54,540 --> 00:55:57,210 den store bestyrelse på hjemmesiden, gå ud til middag, og derefter 1143 00:55:57,210 --> 00:55:59,920 komme tilbage og indse hans værelseskammerat havde lige kanter i 1144 00:55:59,920 --> 00:56:03,270 foran ham eller hende på den store bord, hvilket hælde en anden 1145 00:56:03,270 --> 00:56:07,170 to eller tre timer bare til en op hans eller hendes værelseskammerat. 1146 00:56:07,170 --> 00:56:08,550 >> Så vi ser frem til noget lignende 1147 00:56:08,550 --> 00:56:09,580 i år så godt. 1148 00:56:09,580 --> 00:56:12,140 I problem indstille 7 har vi styre i banens 1149 00:56:12,140 --> 00:56:14,840 programmering, faktisk løse problemer i den stadigt 1150 00:56:14,840 --> 00:56:18,170 mere almindeligt miljø i en webbrowser. 1151 00:56:18,170 --> 00:56:20,900 Kend mindre og mindre vi henter software på Mac-computere og 1152 00:56:20,900 --> 00:56:23,650 Pc'er, men i stigende grad gør vi det hele inden i banen. 1153 00:56:23,650 --> 00:56:27,530 >> Og faktisk sidste år, omkring 88% af de studerendes afsluttende projekter i 1154 00:56:27,530 --> 00:56:29,660 kurset var webbaseret. 1155 00:56:29,660 --> 00:56:32,020 Og dem, også er færdigheder, som du vil udlede af dette 1156 00:56:32,020 --> 00:56:33,230 klasse ved kursets afslutning. 1157 00:56:33,230 --> 00:56:36,090 Fordi hvad der venter ved kursets afslutning er det CS50 Fair, 1158 00:56:36,090 --> 00:56:39,060 denne udstilling, der er baseret på ideen om en videnskab fair. 1159 00:56:39,060 --> 00:56:41,750 Men i denne version af en retfærdig gøre alle elever i klassen 1160 00:56:41,750 --> 00:56:45,400 bringe deres bærbare computere og deres venner og familie og andre 1161 00:56:45,400 --> 00:56:48,310 til Northwest Science, en stor bygning på campus, der er nedsat 1162 00:56:48,310 --> 00:56:51,030 deres laptop, få noget mad, få nogle popcorn og drikke, 1163 00:56:51,030 --> 00:56:53,990 og derefter udstiller deres afgangsprojekter for alle dem i 1164 00:56:53,990 --> 00:56:57,210 fremmøde, der sidste år talte omkring 2.500 deltagere 1165 00:56:57,210 --> 00:56:58,320 fra hele campus. 1166 00:56:58,320 --> 00:57:02,100 Og udtryk som dette, og som denne ikke var 1167 00:57:02,100 --> 00:57:03,370 ualmindeligt på messen. 1168 00:57:03,370 --> 00:57:06,590 >> Op til messen er CS50 hackathon, en mulighed 1169 00:57:06,590 --> 00:57:09,350 at hoppe på en Harvard shuttle, hoved ned på gaden til 1170 00:57:09,350 --> 00:57:12,700 Microsoft kl 8:00 PM, og ikke gå hjem indtil 7:00 AM. 1171 00:57:12,700 --> 00:57:16,280 Vi serverer første middag kl 8:00 PM, anden middag på 1:00 AM, 1172 00:57:16,280 --> 00:57:18,900 og for dem, der stadig står på 5:00 AM, behandler vi til 1173 00:57:18,900 --> 00:57:20,400 pandekager på IHOP. 1174 00:57:20,400 --> 00:57:23,470 Og hackathon er en mulighed, som afbilledet her, 1175 00:57:23,470 --> 00:57:25,930 at dykke ned i dine endelige projekter, uanset om de arbejder på 1176 00:57:25,930 --> 00:57:29,470 din egen eller med venner i et samarbejdsmiljø, 1177 00:57:29,470 --> 00:57:31,970 hvor hele lærergruppen fungerer godt ind i 1178 00:57:31,970 --> 00:57:35,430 nat med en rigelig forsyning af Hong Kong kinesisk mad. 1179 00:57:35,430 --> 00:57:39,550 Kl 5:00, vil sådanne billeder som disse være ganske almindelig dette 1180 00:57:39,550 --> 00:57:40,940 år også. 1181 00:57:40,940 --> 00:57:44,390 >> Så som vi afbryder i et øjeblik for kage, skal du huske at 1182 00:57:44,390 --> 00:57:48,500 76% af de mennesker i dette rum har nogen forudgående erfaring. 1183 00:57:48,500 --> 00:57:51,090 Og som pr pensum, der i sidste ende betyder noget i denne 1184 00:57:51,090 --> 00:57:53,740 Kurset er ikke så meget, hvor du ender i forhold til din 1185 00:57:53,740 --> 00:57:57,400 klassekammerater, men hvor man i uge 11 ender i forhold til 1186 00:57:57,400 --> 00:57:59,400 selv i uge 0. 1187 00:57:59,400 --> 00:58:01,850 Det er CS50.