1 00:00:01,491 --> 00:01:38,659 [Powered by Google Translate] [Musikk spilles] 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 der du er nå noen år siden. 4 00:05:23,610 --> 00:05:27,850 Og da jeg var førsteårsstudent på den tiden, var jeg egentlig ikke på 5 00:05:27,850 --> 00:05:30,350 denne veien for å gjøre computer science, for å gjøre engineering. 6 00:05:30,350 --> 00:05:33,650 Faktisk kom jeg inn i dette stedet som en regjering konsentratoren. 7 00:05:33,650 --> 00:05:35,430 Jeg hadde vært i videregående skole, en gutt som 8 00:05:35,430 --> 00:05:36,770 likte ting som historie. 9 00:05:36,770 --> 00:05:39,350 Jeg likte statsrett, slag av engelsk og matematikk. 10 00:05:39,350 --> 00:05:41,300 Det er som en slags godt avrundet, men ikke 11 00:05:41,300 --> 00:05:43,290 nødvendigvis vet ting som jeg ikke hadde vært 12 00:05:43,290 --> 00:05:44,380 undervist i videregående skole. 13 00:05:44,380 --> 00:05:47,060 Og så freshman år, hadde jeg denne trepidation der selv 14 00:05:47,060 --> 00:05:49,730 selv om jeg likte datamaskiner, spilte dataspill og 15 00:05:49,730 --> 00:05:52,080 liker, jeg absolutt aldri tenkt på meg selv som en 16 00:05:52,080 --> 00:05:54,830 datamaskin person, en datamaskin vitenskapsmann. 17 00:05:54,830 --> 00:05:56,705 Og ærlig, jeg trodde mine venner i videregående skole som 18 00:05:56,705 --> 00:06:01,840 tok informatikk var litt av en geeks. 19 00:06:01,840 --> 00:06:04,910 Og likevel, når jeg kom hit på campus, var det 20 00:06:04,910 --> 00:06:06,240 dette kurset, CS50. 21 00:06:06,240 --> 00:06:09,640 >> Og på den tiden, hadde det dette ryktet av å virkelig være 22 00:06:09,640 --> 00:06:10,480 noe å være oppmerksom. 23 00:06:10,480 --> 00:06:11,560 Det var en god kurs. 24 00:06:11,560 --> 00:06:13,425 Det var en morsom kurset. 25 00:06:13,425 --> 00:06:16,850 Men du måtte faktisk få den foten i døren. 26 00:06:16,850 --> 00:06:19,950 Og selv jeg ikke krysse at terskelen freshman year. 27 00:06:19,950 --> 00:06:23,330 Og jeg gikk på min måte å være en regjering konsentrator, går 28 00:06:23,330 --> 00:06:25,190 gjennom så mange av forutsetningene som jeg kunne, 29 00:06:25,190 --> 00:06:28,010 kryss-telle ting for gen ed eller kjerne og lignende. 30 00:06:28,010 --> 00:06:30,290 Og så sophomore året, for noen grunn, jeg fikk opp 31 00:06:30,290 --> 00:06:33,450 nerve til trinn fot i Science Center B, der CS50 var. 32 00:06:33,450 --> 00:06:36,150 En svært kjent datamaskin vitenskapsmann ved navn Brian 33 00:06:36,150 --> 00:06:38,530 Kernighan lærte her det året. 34 00:06:38,530 --> 00:06:42,490 Og selv da var jeg bare villig til å faktisk fylle ut 35 00:06:42,490 --> 00:06:45,600 min studie kortet ved å ta denne klassen bestått / ikke bestått. 36 00:06:45,600 --> 00:06:47,590 Jeg så rundt meg og jeg skjønte alle i dette ens 37 00:06:47,590 --> 00:06:49,550 må vite mye mer om informatikk, om 38 00:06:49,550 --> 00:06:50,750 programmering, om datamaskiner. 39 00:06:50,750 --> 00:06:52,370 Alle må man være programmering, i dette rommet, 40 00:06:52,370 --> 00:06:53,510 siden de var 12. 41 00:06:53,510 --> 00:06:55,330 Men, ja, det var ikke tilfelle. 42 00:06:55,330 --> 00:06:58,660 Og så den aller siste dagen, den femte mandag av semesteret, 43 00:06:58,660 --> 00:07:01,410 gjorde jeg ta dette spranget og endring fra bestått / ikke bestått til en 44 00:07:01,410 --> 00:07:04,120 bokstavkarakter og endte opp med å endre konsentrasjonen min som 45 00:07:04,120 --> 00:07:05,330 samme dag til informatikk. 46 00:07:05,330 --> 00:07:07,870 >> Nå, det er ikke vårt mål i denne klassen, for å slå dere alle 47 00:07:07,870 --> 00:07:10,500 inn informatikk konsentratorer, men virkelig å 48 00:07:10,500 --> 00:07:13,420 foreslår at det er en mulighet i dette feltet, og 49 00:07:13,420 --> 00:07:16,500 i andre felt som du kan være ganske ukjent 50 00:07:16,500 --> 00:07:18,750 gitt at videregående skoler vanligvis følger en ganske 51 00:07:18,750 --> 00:07:23,140 standard curricular banen, men venture i, i CS50, inn 52 00:07:23,140 --> 00:07:24,030 nye farvann. 53 00:07:24,030 --> 00:07:27,040 Og hvis du sitter her i dag tenker du ikke 54 00:07:27,040 --> 00:07:31,130 faktisk tilhører, så gjør de fleste til høyre og 55 00:07:31,130 --> 00:07:31,980 til venstre. 56 00:07:31,980 --> 00:07:36,640 Faktisk, i fjor, hadde 76% av elevene i denne klassen ikke 57 00:07:36,640 --> 00:07:37,840 tidligere erfaring. 58 00:07:37,840 --> 00:07:40,550 Så i motsetning til hva du kanskje tror, ​​de fleste 59 00:07:40,550 --> 00:07:43,630 sitter rundt her i dag ikke, faktisk, har noen forutgående 60 00:07:43,630 --> 00:07:44,970 erfaring. 61 00:07:44,970 --> 00:07:49,890 18% har tatt en CS klasse, og 6% har tatt to eller flere. 62 00:07:49,890 --> 00:07:52,440 I mellomtiden ber vi våre studenter hvert år for å beskrive 63 00:07:52,440 --> 00:07:54,440 seg i form av komfort. 64 00:07:54,440 --> 00:07:56,870 Og det er ingen definisjon av dette. 65 00:07:56,870 --> 00:07:58,730 Du bare slags vite det hvis du ikke er veldig 66 00:07:58,730 --> 00:08:00,340 komfortable i CS50. 67 00:08:00,340 --> 00:08:04,270 Og i fjor hadde vi 55% i denne grønne pie stykke her 68 00:08:04,270 --> 00:08:06,720 selvbeskrivende som mindre komfortable, studenter som 69 00:08:06,720 --> 00:08:09,390 ærlig hadde ingen anelse om hvorfor de hadde selv handlet kurset på 70 00:08:09,390 --> 00:08:10,340 den første dagen. 71 00:08:10,340 --> 00:08:14,010 Men det samme 55% forble med oss ​​til begrepet slutt, som gjorde 72 00:08:14,010 --> 00:08:17,770 35% som var et sted i mellom de mer komfortabel 73 00:08:17,770 --> 00:08:19,960 og de mindre komfortable. 74 00:08:19,960 --> 00:08:21,350 >> Så, hva er informatikk? 75 00:08:21,350 --> 00:08:23,680 Vel i videregående skole, og egentlig mer generelt ut 76 00:08:23,680 --> 00:08:25,670 det i disse dager, er det denne oppfatningen eller denne 77 00:08:25,670 --> 00:08:28,260 misforståelse at informatikk er programmering. 78 00:08:28,260 --> 00:08:30,700 Og det er absolutt en del av informatikk. 79 00:08:30,700 --> 00:08:33,100 Men programmering, uansett språk er, er egentlig bare en 80 00:08:33,100 --> 00:08:35,760 verktøy som dataforskere bruke for å løse problemer, enten 81 00:08:35,760 --> 00:08:38,710 i domenet av informatikk eller stadig disse 82 00:08:38,710 --> 00:08:41,710 dager i den fysiske fag, naturvitenskap, i 83 00:08:41,710 --> 00:08:45,180 medisin, i humaniora, for å analysere store datasett. 84 00:08:45,180 --> 00:08:47,660 Anywhere nå er det datamaskin og data, er det en 85 00:08:47,660 --> 00:08:52,250 mulighet til å søke lærdom i en klasse som CS50. 86 00:08:52,250 --> 00:08:55,050 >> Så la oss løse et problem at en datamaskin vitenskapsmann kan gå 87 00:08:55,050 --> 00:08:58,760 om å løse og prøve å sette noen sjargong, sette noen 88 00:08:58,760 --> 00:09:01,750 konseptuelt rammeverk, kan rundt hva ellers være noen 89 00:09:01,750 --> 00:09:03,250 ganske 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 ser ikke disse tingene for ofte, selv om høgskolen 92 00:09:07,100 --> 00:09:09,690 fortsatt synes å ha disse i hus og sovesaler. 93 00:09:09,690 --> 00:09:11,940 Men tilbake i dag når du ønsker å bruke en telefon som 94 00:09:11,940 --> 00:09:13,880 dette var det ingen elektronisk adressebok 95 00:09:13,880 --> 00:09:14,620 i din mobiltelefon. 96 00:09:14,620 --> 00:09:16,130 Snarere, trakk deg opp noe 97 00:09:16,130 --> 00:09:17,330 kjent som en telefonbok. 98 00:09:17,330 --> 00:09:20,970 Og disse telefonen bøker hadde ca 1000 sider, typisk. 99 00:09:20,970 --> 00:09:23,800 De ble sortert fra A til Å. Og du bare måtte finne 100 00:09:23,800 --> 00:09:26,390 høyre side for å finne den personen du leter etter for å 101 00:09:26,390 --> 00:09:28,890 finne deres navn og deres telefonnummer. 102 00:09:28,890 --> 00:09:30,060 Nå hvordan går du om å se opp 103 00:09:30,060 --> 00:09:31,000 noen i denne boken? 104 00:09:31,000 --> 00:09:33,670 >> Anta mitt mål er å gi min venn, Mike Smith, en samtale. 105 00:09:33,670 --> 00:09:35,680 Vel, hvordan går jeg om å finne Mike Smith? 106 00:09:35,680 --> 00:09:38,840 Vel, en svært fornuftig tilnærming, hvis naiv og 107 00:09:38,840 --> 00:09:42,080 ineffektiv, ville begynne her og begynne å bla til 108 00:09:42,080 --> 00:09:46,630 side 4 side 5 side 6, og til slags lineært sammen 109 00:09:46,630 --> 00:09:48,490 en rett linje, gå gjennom denne telefonboken. 110 00:09:48,490 --> 00:09:50,920 Og selv om det skal bli utrolig kjedelig, hvis Mike 111 00:09:50,920 --> 00:09:53,550 Smith er i denne boken, er jeg omsider skal nå ham 112 00:09:53,550 --> 00:09:56,660 når jeg endelig vende til S delen av denne boken. 113 00:09:56,660 --> 00:09:58,670 Nå selvfølgelig, trenger du ikke å være en datamaskin vitenskapsmann å 114 00:09:58,670 --> 00:10:00,840 vet at dette er en dum måte å løse dette problemet. 115 00:10:00,840 --> 00:10:02,350 Hva ville en typisk menneske gjøre? 116 00:10:06,310 --> 00:10:07,550 Godt gjort. 117 00:10:07,550 --> 00:10:09,230 Så du ville vende til midten, til høyre. 118 00:10:09,230 --> 00:10:12,050 Så du vil vende omtrent til midten, se her, og jeg synes 119 00:10:12,050 --> 00:10:14,520 å finne meg selv i M-delen. 120 00:10:14,520 --> 00:10:17,710 OK, så M er helt klart ikke det jeg leter etter. 121 00:10:17,710 --> 00:10:20,070 Og Mikes til høyre, så å si, i denne delen. 122 00:10:20,070 --> 00:10:22,930 Og som noen av dere har sett før, kan vi bokstavelig talt nå 123 00:10:22,930 --> 00:10:26,670 fortsette å rive dette problemet i to. 124 00:10:26,670 --> 00:10:31,720 >> [Applaus] 125 00:10:31,720 --> 00:10:32,930 Du bør ikke være så imponert. 126 00:10:32,930 --> 00:10:34,820 Rive det ned sømmen er faktisk ikke så vanskelig. 127 00:10:34,820 --> 00:10:36,040 De virkelige mennesker gjør det på denne måten. 128 00:10:36,040 --> 00:10:39,510 Men, ned sømmen, har vi nå to problemer, hver av 129 00:10:39,510 --> 00:10:40,360 som er halvparten så stor. 130 00:10:40,360 --> 00:10:43,430 Og vi kan bokstavelig talt kaste at halvparten av problemet borte. 131 00:10:43,430 --> 00:10:46,450 Nå er vi igjen ikke med 1.000 sider, men, sier, 500. 132 00:10:46,450 --> 00:10:47,450 Så nå hva gjør jeg? 133 00:10:47,450 --> 00:10:50,080 Godt, vil en typisk menneske gå omtrent i midten igjen. 134 00:10:50,080 --> 00:10:52,000 Og jeg finner meg selv en R-delen. 135 00:10:52,000 --> 00:10:52,950 Så ikke helt der. 136 00:10:52,950 --> 00:10:55,890 Så igjen, kan jeg rive dette problemet i to. 137 00:10:55,890 --> 00:10:56,395 [Applaus] 138 00:10:56,395 --> 00:10:57,645 Takk. 139 00:10:59,870 --> 00:11:03,260 Så nå har jeg bare rundt 250 sider. 140 00:11:03,260 --> 00:11:05,580 Og jeg kan gjøre dette igjen og igjen og igjen og gå fra 141 00:11:05,580 --> 00:11:09,200 125 ned til omtrent 60 til 30 til 15 og så videre. 142 00:11:09,200 --> 00:11:13,880 Og til slutt vil jeg få redusert til en av S sidene på 143 00:11:13,880 --> 00:11:17,370 som, hvis han er i telefonboken, bør Mike Smith være. 144 00:11:17,370 --> 00:11:19,980 >> Nå, det er en åpenbart ganske rimelig algoritme, 145 00:11:19,980 --> 00:11:22,200 og det er en engangs-bruk algoritmen i dette tilfellet. 146 00:11:22,200 --> 00:11:24,790 Men hva kan vi liksom ta bort fra det? 147 00:11:24,790 --> 00:11:27,640 Vel, den første tilnærmingen, korrigere hvis naiv om det 148 00:11:27,640 --> 00:11:30,130 ble, kan beskrives av denne rette linje. 149 00:11:30,130 --> 00:11:32,920 Så hvis du er på x-aksen her vi si dette er størrelsen på 150 00:11:32,920 --> 00:11:36,240 problem, slik som x-aksen går til høyre, den 151 00:11:36,240 --> 00:11:37,400 problemet blir større. 152 00:11:37,400 --> 00:11:38,940 Hva betyr det å være større i 153 00:11:38,940 --> 00:11:40,140 sammenheng med dette problemet? 154 00:11:40,140 --> 00:11:41,750 Flere sider i telefonboken. 155 00:11:41,750 --> 00:11:43,750 Det er mer noe vi kan måle. 156 00:11:43,750 --> 00:11:45,530 På y-aksen, tid til å løse. 157 00:11:45,530 --> 00:11:49,650 Så som aksen går opp, tar det antagelig mer tid. 158 00:11:49,650 --> 00:11:52,640 Slik at første tilnærming lineært søker fra side 1 159 00:11:52,640 --> 00:11:57,050 til prikk dot dot side 1000 er en lineær prosedyre, en lineær 160 00:11:57,050 --> 00:11:59,020 algoritme eller prosess. 161 00:11:59,020 --> 00:12:00,990 Og vi kan beskrive det med denne rett linje. 162 00:12:00,990 --> 00:12:04,050 Hvis jeg legger flere sider i telefonlisten, det kommer til, i 163 00:12:04,050 --> 00:12:06,630 verste fall ta meg flere sider flip 164 00:12:06,630 --> 00:12:07,810 å finne Mike Smith. 165 00:12:07,810 --> 00:12:11,700 Hvis jeg legger 100 sider, flips 100 mer eller enheter av gangen. 166 00:12:11,700 --> 00:12:13,210 >> Nå kan jeg være litt flink med dette. 167 00:12:13,210 --> 00:12:15,410 Jeg trenger ikke å virkelig slå den én side av gangen. 168 00:12:15,410 --> 00:12:18,060 Jeg kan gjøre ting som 2 om gangen eller 4 gangen. 169 00:12:18,060 --> 00:12:20,220 Men selv det er ikke alle som fundamentalt bedre. 170 00:12:20,220 --> 00:12:23,030 Selv om det er to om gangen, ja, beveger den slags dette 171 00:12:23,030 --> 00:12:27,410 linje ned litt, og det betyr at det tar mindre tid gitt 172 00:12:27,410 --> 00:12:28,730 samme antall 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 hva gjorde vi bare gjøre, og hva gjorde dere alle gjør 175 00:12:33,080 --> 00:12:34,160 instinktivt? 176 00:12:34,160 --> 00:12:37,350 Du faktisk oppnådd en litt noe sånt 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 kostnaden ved å løse det problemet, tiden 179 00:12:45,210 --> 00:12:47,330 kreves for å løse det problemet, ikke 180 00:12:47,330 --> 00:12:49,270 vokse nesten like fort. 181 00:12:49,270 --> 00:12:52,880 Dette ville være en logaritmisk kurve, logg av n, hvor n er 182 00:12:52,880 --> 00:12:55,480 bare størrelsen på problemet, antall sider i denne 183 00:12:55,480 --> 00:12:56,180 telefonboken. 184 00:12:56,180 --> 00:12:57,650 Og hva betyr dette i praksis? 185 00:12:57,650 --> 00:13:00,500 Vel, hvis vi har som 500 personer i dette rommet akkurat nå, 186 00:13:00,500 --> 00:13:02,330 eller rettere sagt, hvis vi har - 187 00:13:02,330 --> 00:13:05,520 miksing metafor, gjorde ikke det eksemplet ennå i år - 188 00:13:05,520 --> 00:13:08,900 så hvis vi har 500 sider i telefonboken, og vi doble det til 189 00:13:08,900 --> 00:13:12,660 1000, i dette mer intelligent modellen av bla 190 00:13:12,660 --> 00:13:15,370 til midten, hvor mange flere sider tårer det ta å gå 191 00:13:15,370 --> 00:13:17,390 fra 500 sider til 1000? 192 00:13:17,390 --> 00:13:19,510 Vel, bare en ekstra side tåre. 193 00:13:19,510 --> 00:13:22,440 Hvis du ga meg en 2000 side telefonbok, ingen 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å i korte, kan størrelsen av problemet vokse mye raskere 196 00:13:28,860 --> 00:13:30,650 enn kostnaden for faktisk å løse det. 197 00:13:30,650 --> 00:13:32,890 Nå er dette bare en slik algoritme. 198 00:13:32,890 --> 00:13:35,480 Det finnes andre vi kan løse på samme måte. 199 00:13:35,480 --> 00:13:36,630 Og så hvorfor ikke vi gjøre dette? 200 00:13:36,630 --> 00:13:39,650 Hvis du vil humor meg, riktignok klønete her i Sanders, gå 201 00:13:39,650 --> 00:13:42,950 fremover, alle, hvis du kan og stå opp i stedet. 202 00:13:46,420 --> 00:13:49,040 Som du ser på skjermen her, dette er en algoritme, en 203 00:13:49,040 --> 00:13:52,110 prosessen, et dataprogram hvis du vil, for å bli henrettet av 204 00:13:52,110 --> 00:13:53,850 mennesker som har bare 3 trinn. 205 00:13:53,850 --> 00:13:55,010 Vi er allerede på trinn 1. 206 00:13:55,010 --> 00:13:55,840 Du har stått opp. 207 00:13:55,840 --> 00:13:58,120 Og nå tenke deg selv nummer 1. 208 00:13:58,120 --> 00:13:59,310 Det er din nåværende tall. 209 00:13:59,310 --> 00:14:00,990 Alle her er nummer 1. 210 00:14:00,990 --> 00:14:04,360 Trinn 2, pare seg med noen stående, legge tallene 211 00:14:04,360 --> 00:14:07,155 sammen, og deretter vedta summen som det nye nummeret. 212 00:14:15,760 --> 00:14:18,730 En av dere bør sette seg ned, og gjenta. 213 00:14:29,260 --> 00:14:33,715 >> SPEAKER 1: 205. 214 00:14:33,715 --> 00:14:34,210 DAVID J. MALAN: Hva 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: Ja. 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: All right. 226 00:15:09,110 --> 00:15:11,965 På dette punktet, bør færre og færre mennesker bli stående. 227 00:15:14,690 --> 00:15:17,860 Det er der det blir mer vanskelig. 228 00:15:17,860 --> 00:15:18,660 Noen her. 229 00:15:18,660 --> 00:15:19,910 Her. 230 00:15:28,490 --> 00:15:31,170 Det verste er at du også nødt til å veldig verbalt gjøre 231 00:15:31,170 --> 00:15:33,830 aritmetiske foran hundrevis av 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 Litt av en bug her. 235 00:15:43,140 --> 00:15:43,490 Okay. 236 00:15:43,490 --> 00:15:44,490 Hva er nummeret ditt? 237 00:15:44,490 --> 00:15:45,390 SPEAKER 6: Nine. 238 00:15:45,390 --> 00:15:45,815 DAVID J. MALAN: Hva 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 Hva er nummeret ditt? 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 Bra. 247 00:15:56,470 --> 00:15:57,280 Så 188. 248 00:15:57,280 --> 00:15:58,430 Så dere kan sitte ned. 249 00:15:58,430 --> 00:15:59,090 Hva er nummeret ditt? 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 Noen smarte undergrad begynne å gjøre regnestykket. 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 Hva annet har vi? 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 Som lærere, som gir oss 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 faktisk akkurat riktig. 266 00:16:35,060 --> 00:16:36,970 Nei, vi var faktisk litt av det. 267 00:16:36,970 --> 00:16:40,435 >> Men hvordan skal dette ha fungert? 268 00:16:40,435 --> 00:16:41,940 Hva burde skjedde? 269 00:16:41,940 --> 00:16:45,560 Så, på hver iterasjon av denne algoritmen, vi startet med 270 00:16:45,560 --> 00:16:48,000 et antall mennesker stående, og det var 271 00:16:48,000 --> 00:16:49,350 totalt antall n først. 272 00:16:49,350 --> 00:16:51,750 Enn halvparten av dere satte seg, og vi gikk til n over 2. 273 00:16:51,750 --> 00:16:52,830 Enn halvparten av dere satte seg. 274 00:16:52,830 --> 00:16:56,310 Vi gikk til n over 4, n over 8, n over 16, og så videre, 275 00:16:56,310 --> 00:16:59,080 inntil, selv om den slags disintegrerte det på 276 00:16:59,080 --> 00:17:02,000 slutt, i teorien, alle hadde koblet sammen i balkong og 277 00:17:02,000 --> 00:17:05,780 mezzanine og orkester her, ville vi ha hatt bare en ensom 278 00:17:05,780 --> 00:17:11,790 person står med en total verdi, i dette tilfellet, av 705. 279 00:17:11,790 --> 00:17:14,460 Nå hva betyr, men for kjøretiden? 280 00:17:14,460 --> 00:17:16,829 Vel tenke på om jeg som menneske hadde gjort dette manuelt. 281 00:17:16,829 --> 00:17:19,819 Jeg ville ha startet ganske naivt, men riktig 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 Tar ganske lang tid. 284 00:17:24,920 --> 00:17:25,980 Så jeg kan gjøre bedre, ikke sant? 285 00:17:25,980 --> 00:17:27,690 I grunnskolen, trenger du ikke bare telle i seg. 286 00:17:27,690 --> 00:17:28,109 Du teller i toere. 287 00:17:28,109 --> 00:17:30,050 SO 2, 4, 6, 8, 10, 12. 288 00:17:30,050 --> 00:17:31,630 Og det blir mye raskere. 289 00:17:31,630 --> 00:17:34,620 Men nå fundamentalt, ved å utnytte den kollektive 290 00:17:34,620 --> 00:17:37,070 intelligens til alle i dette rommet, kan vi oppnå en 291 00:17:37,070 --> 00:17:40,660 dempe mye mer som dette, hvor nå nummeret på 292 00:17:40,660 --> 00:17:42,450 personer i dette rommet kan doble. 293 00:17:42,450 --> 00:17:45,940 En annen 700 personer gå inn i dette rommet for 1400 mennesker, 294 00:17:45,940 --> 00:17:49,680 men det ville bare ta oss en mer gjentakelse av dette 295 00:17:49,680 --> 00:17:50,880 algoritmen for å løse. 296 00:17:50,880 --> 00:17:53,170 >> Og så, i økende grad i disse dager, når vi har disse enorme 297 00:17:53,170 --> 00:17:55,860 datasett i Facebook og Google og lignende, er det 298 00:17:55,860 --> 00:17:58,710 løse problemer med litt innsikt, denne biten av 299 00:17:58,710 --> 00:18:02,280 kløkt, som er slik at vi i økende grad til å gjøre mye, mye 300 00:18:02,280 --> 00:18:05,150 kraftigere ting med datamaskiner i dag. 301 00:18:05,150 --> 00:18:07,340 Hvis du liker slike ting, har du kanskje sett på 302 00:18:07,340 --> 00:18:10,650 Facebook CS50 egen Puzzle Day kommer opp førstkommende lørdag. 303 00:18:10,650 --> 00:18:12,580 Hvis du ønsker å delta i noe sånt 304 00:18:12,580 --> 00:18:17,010 Dette innebærer at du, i 2 eller 3 eller 4 lag på 4, ønsker å 305 00:18:17,010 --> 00:18:20,820 løse noen gåter som dette, vil du stå en sjanse 306 00:18:20,820 --> 00:18:23,510 å vinne noen flotte premier, blant disse er en Wii og noen 307 00:18:23,510 --> 00:18:25,900 gavekort eller annen Facebook Swag. 308 00:18:25,900 --> 00:18:28,660 Denne lørdagen, middag til 03:00, gå til 309 00:18:28,660 --> 00:18:33,440 cs50.net/rsvp for slike. 310 00:18:33,440 --> 00:18:35,940 Og dette bildet er på nettet hvis du ønsker å leke seg. 311 00:18:35,940 --> 00:18:38,010 Problemene i år skal være nye. 312 00:18:38,010 --> 00:18:40,210 >> Du kan legge merke til i klasserommet, også, desto mer 313 00:18:40,210 --> 00:18:41,210 kameraer i år. 314 00:18:41,210 --> 00:18:45,180 Så ikke bare vil kurset bli filmet på vanlig måte, CS50 315 00:18:45,180 --> 00:18:47,760 kan også ta del i en dokumentar om høyere 316 00:18:47,760 --> 00:18:50,370 utdanning som ser på transformative erfaring 317 00:18:50,370 --> 00:18:53,000 at en student kan ha i disse dager i en lavere 318 00:18:53,000 --> 00:18:53,870 studium. 319 00:18:53,870 --> 00:18:56,990 Så mot disse, så vil vi ikke bare være filming for 320 00:18:56,990 --> 00:19:00,170 det, vil vi bli filme også for stadig vår 321 00:19:00,170 --> 00:19:03,670 online publikum, så vel som på denne anledningen publikum her. 322 00:19:03,670 --> 00:19:05,880 Så vi velkommen til klassen i år vår Harvard 323 00:19:05,880 --> 00:19:08,190 Extension School studenter, Graduate School of Design, 324 00:19:08,190 --> 00:19:10,470 Utdanning, handelshøyskole, Kennedy School, 325 00:19:10,470 --> 00:19:12,970 loven skolen, samt en rekke studenter fra 326 00:19:12,970 --> 00:19:16,140 Belmont, Lexington, Newton, og Watertown videregående skoler. 327 00:19:16,140 --> 00:19:17,120 Velkommen til dere alle. 328 00:19:17,120 --> 00:19:20,070 I tillegg dette året, har du kanskje hørt, Harvard og MIT, 329 00:19:20,070 --> 00:19:22,500 og Berkeley nå har inngått et samarbeidsprosjekt 330 00:19:22,500 --> 00:19:26,020 partnerskap, et initiativ kalt EDX, som er en 331 00:19:26,020 --> 00:19:28,650 initiativ til å åpne opp utdanning til alle mer 332 00:19:28,650 --> 00:19:31,210 folk på nettet og fundamentalt begynne å gjøre 333 00:19:31,210 --> 00:19:34,400 forskning på et mye bredere skala med hensyn til hvordan folk lærer. 334 00:19:34,400 --> 00:19:36,920 Og så CS50 vil være høgskolens første kurs 335 00:19:36,920 --> 00:19:38,790 deltar i dette initiativet samt. 336 00:19:38,790 --> 00:19:41,320 Hvilket betyr at du vil ha tilgang til alle de flere verktøy, 337 00:19:41,320 --> 00:19:44,020 desto mer pensum innhold, desto mer video 338 00:19:44,020 --> 00:19:48,190 innhold som et resultat, i tillegg, som ig morgen, 339 00:19:48,190 --> 00:19:52,210 53019 personer som har registrert for å ta CS50 sammen 340 00:19:52,210 --> 00:19:55,290 med deg i år på internett. 341 00:19:55,290 --> 00:19:56,530 Så uten - 342 00:19:56,530 --> 00:20:03,800 [Applaus] 343 00:20:03,800 --> 00:20:05,680 Så hva dette betyr, spesielt, er at 344 00:20:05,680 --> 00:20:07,770 lærere og jeg har brukt ganske mye tid på 345 00:20:07,770 --> 00:20:10,600 sommer forbereder for høsten, både på campus og på, slik 346 00:20:10,600 --> 00:20:13,580 at vi kan begynne å bygge opp et korpus av interessant, av 347 00:20:13,580 --> 00:20:16,130 overbevisende, å engasjere pedagogisk innhold som 348 00:20:16,130 --> 00:20:22,490 fokuserer særlig på mer intime transportmidler av 349 00:20:22,490 --> 00:20:23,960 ganske komplisert materiale. 350 00:20:23,960 --> 00:20:26,210 >> Så i tillegg til kursets forelesninger og seksjoner og 351 00:20:26,210 --> 00:20:28,300 ting som kalles walkthroughs, som vi vil se i bare en 352 00:20:28,300 --> 00:20:31,620 bit, vil vi også ha disse shorts i år som gjør at 353 00:20:31,620 --> 00:20:33,570 du å engasjere seg med kurs fra en annen vinkel 354 00:20:33,570 --> 00:20:34,520 helt. 355 00:20:34,520 --> 00:20:36,540 Så la oss bruke dette som en mulighet til å ta en rask 356 00:20:36,540 --> 00:20:38,905 titt på en som diskuterer dette begrepet binærfiler. 357 00:20:38,905 --> 00:20:42,220 >> Så i informatikk, er det ting som kalles algoritmer - 358 00:20:42,220 --> 00:20:44,610 to av dem vi bare tok en titt på - disse prosedyrene for 359 00:20:44,610 --> 00:20:45,690 løse problemer. 360 00:20:45,690 --> 00:20:46,770 Men på slutten av dagen, må du 361 00:20:46,770 --> 00:20:48,730 representerer informasjon eller annen måte. 362 00:20:48,730 --> 00:20:51,640 Og du trenger å representere den på en måte som en datamaskin kan 363 00:20:51,640 --> 00:20:52,400 forstå. 364 00:20:52,400 --> 00:20:54,940 Og selv om du egentlig ikke forstår datamaskiner og 365 00:20:54,940 --> 00:20:58,150 du er i at 76% akkurat nå, har du sannsynligvis noen vage 366 00:20:58,150 --> 00:21:01,860 forstand at datamaskiner liksom avtale i 0'er og 1'ere, det binære 367 00:21:01,860 --> 00:21:03,160 system, så å si. 368 00:21:03,160 --> 00:21:04,480 Nå hvorfor er det slik? 369 00:21:04,480 --> 00:21:07,060 Vel, det viser seg når datamaskiner første kom, hvis 370 00:21:07,060 --> 00:21:09,400 du trengte å representere informasjon, kan du gjøre det 371 00:21:09,400 --> 00:21:10,600 med elektrisitet. 372 00:21:10,600 --> 00:21:13,460 Og selv om dette er litt av en overforenkling, en svært 373 00:21:13,460 --> 00:21:16,190 enkel måte å registrere informasjon er enten ved 374 00:21:16,190 --> 00:21:18,000 snu den strøm på - 375 00:21:18,000 --> 00:21:20,460 en 1 i binær, så å si - eller snu 376 00:21:20,460 --> 00:21:22,100 at elektrisitet av. 377 00:21:22,100 --> 00:21:24,080 >> Så hvis Barry, hvis du ikke har noe imot, kunne vi dempe lysene 378 00:21:24,080 --> 00:21:26,000 fullt for bare et øyeblikk? 379 00:21:26,000 --> 00:21:29,730 Dette her er en veldig umotivert binær 0. 380 00:21:29,730 --> 00:21:33,830 Hvis vi slår av lysene opp igjen, nå Sanders Theatre er 381 00:21:33,830 --> 00:21:35,860 representerer den binære verdien av en. 382 00:21:35,860 --> 00:21:38,710 Dessverre, med bare en bit, med bare ett sett med 383 00:21:38,710 --> 00:21:41,070 lys, kan vi bare representere to tall 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 fint om datamaskiner kunne telle en 386 00:21:44,470 --> 00:21:45,340 litt høyere enn det. 387 00:21:45,340 --> 00:21:46,370 Men faktisk de kan. 388 00:21:46,370 --> 00:21:49,230 Så la meg trekke opp på skjermen her vår venn Nate Hardison 389 00:21:49,230 --> 00:21:52,000 som vil gi oss en rask titt i løpet av bare noen få 390 00:21:52,000 --> 00:21:54,680 minutter på denne oppfatningen av binære. 391 00:21:54,680 --> 00:22:01,870 >> [VIDEOAVSPILLING] 392 00:22:01,870 --> 00:22:03,450 NATE Hardison: Tilbake når du lærte å lese og skrive 393 00:22:03,450 --> 00:22:08,450 tall, lærte du om sifrene 0-9. 394 00:22:08,450 --> 00:22:10,840 Å skrive hele tall større enn 9, lærte du at alle 395 00:22:10,840 --> 00:22:13,830 du måtte gjøre var å bruke en kombinasjon av disse sifrene, 396 00:22:13,830 --> 00:22:21,000 som i 52 og 437. 397 00:22:21,000 --> 00:22:23,220 Så har denne måten å skrive tallene en 398 00:22:23,220 --> 00:22:25,620 navn, titallssystemet. 399 00:22:25,620 --> 00:22:26,690 Hvorfor desimal? 400 00:22:26,690 --> 00:22:30,340 Vel, betyr det latinske roten av en desimal, desem, 10. 401 00:22:30,340 --> 00:22:33,190 Og når du har 10 siffer i notasjonssystem, 10 402 00:22:33,190 --> 00:22:35,290 blir en ganske spesiell nummer. 403 00:22:35,290 --> 00:22:38,950 La oss se på antall 437 skrevet i titallssystemet 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 bryte opp 437 i 400 pluss 30 pluss 7. 406 00:22:50,200 --> 00:22:56,050 Vi kan ta den fra hverandre enda mer slik at vi har 4 ganger 100 407 00:22:56,050 --> 00:23:02,990 pluss 3 ganger 10 pluss 7 ganger en. 408 00:23:02,990 --> 00:23:05,970 Husk å lære om de sted, titalls sted, 409 00:23:05,970 --> 00:23:08,050 det hundrevis sted, og så videre? 410 00:23:08,050 --> 00:23:10,990 Dette er akkurat der det kommer fra. 411 00:23:10,990 --> 00:23:14,150 Og til slutt, kan vi se at vi har en haug med krefter 10 412 00:23:14,150 --> 00:23:15,770 innebygd i her. 413 00:23:15,770 --> 00:23:25,330 Vi har fire ganger 10 til 2 pluss 3 ganger 10 til 1 pluss 414 00:23:25,330 --> 00:23:29,580 7 ganger 10 i 0. 415 00:23:29,580 --> 00:23:31,330 Så nå kan du se hvorfor 10 er en spesiell 416 00:23:31,330 --> 00:23:33,240 antall titallssystemet. 417 00:23:33,240 --> 00:23:35,240 Faktisk har vi et navn for det. 418 00:23:35,240 --> 00:23:38,170 Det kalles basen siden det er i bunnen av eksponent 419 00:23:38,170 --> 00:23:39,960 i aritmetikk her. 420 00:23:39,960 --> 00:23:43,190 >> Titallssystemet er ikke den eneste måten å representere tall. 421 00:23:43,190 --> 00:23:48,020 Faktisk, selv om vi blir kvitt sifrene 2 til 9, kan vi 422 00:23:48,020 --> 00:23:49,610 fortsatt representerer alle de tallene som 423 00:23:49,610 --> 00:23:51,620 vi kunne med desimal. 424 00:23:51,620 --> 00:23:56,220 Så nå har vi to siffer, 0 og 1, 2 er vår spesielle 425 00:23:56,220 --> 00:23:59,070 nummer, bunnen av vårt notasjonssystem. 426 00:23:59,070 --> 00:24:02,340 Navnet på denne notasjonen system kalles binære siden 427 00:24:02,340 --> 00:24:04,890 prefikset "bi" betyr to. 428 00:24:04,890 --> 00:24:08,130 Så i stedet nå for å ha en som sted og titalls sted og 429 00:24:08,130 --> 00:24:11,950 så videre, har vi nå en de sted, et toere sted, en firere 430 00:24:11,950 --> 00:24:15,420 sted, og så videre, går opp med potenser av 2. 431 00:24:15,420 --> 00:24:17,320 Så la oss se dette ved å gjøre noen telling. 432 00:24:17,320 --> 00:24:22,790 Så, er 0 fortsatt 0, og 1 er fremdeles en. 433 00:24:22,790 --> 00:24:25,700 Men nå som vi har fått en toere sted i stedet for de ti 434 00:24:25,700 --> 00:24:31,070 sted, representerer 10 tallet 2. 435 00:24:31,070 --> 00:24:36,240 Å få 3, legger vi en til det og få 11. 436 00:24:36,240 --> 00:24:38,310 4, siden det er nå en fire sted, er 437 00:24:38,310 --> 00:24:42,520 representert 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, igjen, har sin egen plass. 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 tar poenget. 444 00:25:01,750 --> 00:25:03,510 [END VIDEOAVSPILLING] 445 00:25:03,510 --> 00:25:06,900 >> DAVID J. MALAN: Så dette er å si, hva datamaskiner gjør og 446 00:25:06,900 --> 00:25:09,650 hva binær er er faktisk ikke så ulik fra hva 447 00:25:09,650 --> 00:25:12,260 vi har tatt for gitt i noen år, ikke sant? 448 00:25:12,260 --> 00:25:14,330 Du regner grunnskolen lærte du å telle i nøyaktig 449 00:25:14,330 --> 00:25:16,310 mote som Nate foreslått. 450 00:25:16,310 --> 00:25:18,250 Men du sannsynligvis ikke har egentlig tenkt på det siden, 451 00:25:18,250 --> 00:25:19,990 det faktum at det er dette som sted, titalls sted, og 452 00:25:19,990 --> 00:25:20,490 hundrevis sted. 453 00:25:20,490 --> 00:25:21,185 Og det er ganske vilkårlig. 454 00:25:21,185 --> 00:25:24,090 Og faktisk, datamaskiner rett og slett bruke denne annen base. 455 00:25:24,090 --> 00:25:27,430 Men på slutten av dagen, å faktisk fysisk representere 456 00:25:27,430 --> 00:25:30,100 denne oppfatningen av en 0 og 1, du åpenbart ikke bare slå 457 00:25:30,100 --> 00:25:31,630 lysene på og av nødvendigvis. 458 00:25:31,630 --> 00:25:33,960 Du trenger å gjøre det på en mye finere kornet skala. 459 00:25:33,960 --> 00:25:36,240 Og ved finere kornet, kan du huske dette dum 460 00:25:36,240 --> 00:25:38,990 lite leketøy fra barndommen, Woolly Willy og disse små 461 00:25:38,990 --> 00:25:40,360 magnetiske partikler. 462 00:25:40,360 --> 00:25:43,830 >> Så magnetiske partikler er noe som du kan justere 463 00:25:43,830 --> 00:25:45,720 i et par forskjellige retninger, kanskje 464 00:25:45,720 --> 00:25:47,780 nord-sør eller sør-nord. 465 00:25:47,780 --> 00:25:50,340 Og så mange fysiske inkarnasjoner av teknologi 466 00:25:50,340 --> 00:25:53,410 disse dager som bruker binære, som bruker 0'er og 1'ere, bare 467 00:25:53,410 --> 00:25:58,190 har magnetisme på innsiden som justerer ting, opp-ned eller 468 00:25:58,190 --> 00:26:01,970 ned-opp, med dermed representerer en 0 eller en 1, 469 00:26:01,970 --> 00:26:02,750 henholdsvis. 470 00:26:02,750 --> 00:26:05,360 Så ja, la oss gå bort fra det abstrakte her og 471 00:26:05,360 --> 00:26:07,580 se på innsiden av hva som er en mer tradisjonell 472 00:26:07,580 --> 00:26:08,640 datamaskinens harddisk. 473 00:26:08,640 --> 00:26:10,980 Dette skjer for å være litt større på skjermen i at det er 474 00:26:10,980 --> 00:26:12,420 fra en stasjonær datamaskin. 475 00:26:12,420 --> 00:26:15,670 Men bærbare datamaskiner i dag har fortsatt den samme teknologien, men er 476 00:26:15,670 --> 00:26:18,190 gradvis blir erstattet av mer avanserte ting som 477 00:26:18,190 --> 00:26:20,490 har faktisk ingen bevegelige deler. 478 00:26:20,490 --> 00:26:22,440 Innsiden, da, av en harddisk. 479 00:26:22,440 --> 00:26:23,610 >> [VIDEOAVSPILLING] 480 00:26:23,610 --> 00:26:26,320 SPEAKER 12: Harddisken er der PC lagrer mesteparten av 481 00:26:26,320 --> 00:26:27,870 sine faste data. 482 00:26:27,870 --> 00:26:31,600 For å gjøre det, reiser data fra RAM sammen med programvare 483 00:26:31,600 --> 00:26:35,290 signaler som forteller harddisken hvordan du kan lagre disse dataene. 484 00:26:35,290 --> 00:26:38,000 Harddisken kretser oversette disse signalene til 485 00:26:38,000 --> 00:26:40,130 spenningsvariasjoner. 486 00:26:40,130 --> 00:26:43,700 Disse igjen kontrollere harddisken bevegelige deler, noen av 487 00:26:43,700 --> 00:26:46,750 de få bevegelige deler igjen i den moderne datamaskinen. 488 00:26:46,750 --> 00:26:49,460 Noen av de signaler styrer en motor som spinner 489 00:26:49,460 --> 00:26:51,300 metall-belagt fat. 490 00:26:51,300 --> 00:26:54,670 Dine data er faktisk lagret på disse platene. 491 00:26:54,670 --> 00:26:57,810 Andre signaler flytter lese-skrive-hodet til å lese eller 492 00:26:57,810 --> 00:26:59,900 skrive data på platene. 493 00:26:59,900 --> 00:27:03,520 Denne maskinen er så presis at et hårstrå kunne ikke 494 00:27:03,520 --> 00:27:06,470 selv passere mellom hodene og spinning fat. 495 00:27:06,470 --> 00:27:08,780 Men det virker alt til veldig bra hastigheter. 496 00:27:08,780 --> 00:27:09,520 [END VIDEOAVSPILLING] 497 00:27:09,520 --> 00:27:11,410 >> DAVID J. MALAN: Så hvis vi nå zoome inn på det som faktisk er 498 00:27:11,410 --> 00:27:14,300 skjer på toppen av disse platestabel i form av 499 00:27:14,300 --> 00:27:17,470 magnetisme, har vi denne andre av to utseende. 500 00:27:17,470 --> 00:27:17,755 >> [VIDEOAVSPILLING] 501 00:27:17,755 --> 00:27:20,820 SPEAKER 13: La oss se på hva vi nettopp så i slow-motion. 502 00:27:20,820 --> 00:27:23,300 Når en kort puls av elektrisitet er sendt til 503 00:27:23,300 --> 00:27:26,520 lese-skrive-hodet, knipser den på en liten elektromagnet for en 504 00:27:26,520 --> 00:27:28,110 brøkdelen av et sekund. 505 00:27:28,110 --> 00:27:31,320 Magneten skaper et felt som endrer polariteten 506 00:27:31,320 --> 00:27:34,280 en liten, liten del av metallpartikler som strøk 507 00:27:34,280 --> 00:27:35,790 hver tallerken overflate. 508 00:27:35,790 --> 00:27:39,090 Et mønster serie av disse bittesmå ladet opp områder på disken 509 00:27:39,090 --> 00:27:41,650 representerer en enkelt bit av data i det binære tallet 510 00:27:41,650 --> 00:27:43,680 Systemet brukes av datamaskiner. 511 00:27:43,680 --> 00:27:45,977 Nå, hvis strømmen er sendt en vei gjennom lese-skrive 512 00:27:45,977 --> 00:27:49,030 hode, området polarisert i en retning. 513 00:27:49,030 --> 00:27:51,110 Hvis gjeldende ligger i motsatt retning, den 514 00:27:51,110 --> 00:27:53,070 polarisering er reversert. 515 00:27:53,070 --> 00:27:55,540 Hvordan får du data utenfor harddisken? 516 00:27:55,540 --> 00:27:57,270 Bare reversere prosessen. 517 00:27:57,270 --> 00:27:59,670 Så det er partiklene på disken som får strøm i 518 00:27:59,670 --> 00:28:01,190 lese-skrive-hodet i bevegelse. 519 00:28:01,190 --> 00:28:04,090 Sett sammen millioner av disse magnetisert segmenter, og du har 520 00:28:04,090 --> 00:28:05,300 fikk en fil. 521 00:28:05,300 --> 00:28:08,600 Nå kan deler av en enkelt fil bli spredt over hele 522 00:28:08,600 --> 00:28:11,140 en stasjon i platters, type som rotet av 523 00:28:11,140 --> 00:28:13,140 papirer på pulten din. 524 00:28:13,140 --> 00:28:16,680 Så en spesiell ekstra fil holder oversikt over hvor alt er. 525 00:28:16,680 --> 00:28:18,560 Tror ikke du ønske du hadde noe sånt? 526 00:28:18,560 --> 00:28:19,990 [END VIDEOAVSPILLING] 527 00:28:19,990 --> 00:28:21,200 >> DAVID J. MALAN: Virkelig. 528 00:28:21,200 --> 00:28:25,420 Så har vi denne muligheten til å representere informasjon, tall 529 00:28:25,420 --> 00:28:26,310 på et svært lavt nivå. 530 00:28:26,310 --> 00:28:29,920 Vi har en fysisk måte å representere det samme. 531 00:28:29,920 --> 00:28:32,710 Men vi kan ikke gjøre så mye av interesse ennå 532 00:28:32,710 --> 00:28:34,580 annet enn kanskje noen aritmetiske og matematikk. 533 00:28:34,580 --> 00:28:37,660 Vi har ingen måte å representere hittil ting som 534 00:28:37,660 --> 00:28:40,310 alfabetiske bokstaver slik at vi mennesker kan kommunisere 535 00:28:40,310 --> 00:28:41,970 bruker de samme enhetene. 536 00:28:41,970 --> 00:28:45,710 Men heldigvis finnes det kodinger, mønstre av 0s og 537 00:28:45,710 --> 00:28:49,240 1s, som representerer høyere nivå konstruerer som a og b 538 00:28:49,240 --> 00:28:52,740 og c og hele setninger og avsnitt og lignende. 539 00:28:52,740 --> 00:28:56,070 Og så ASCII, som er et akronym som refererer til denne 540 00:28:56,070 --> 00:29:00,410 kodesystem hvorved en tall representerer en gitt bokstav. 541 00:29:00,410 --> 00:29:04,580 >> For eksempel er antallet som vi kjenner som desimalverdi 65 542 00:29:04,580 --> 00:29:06,980 kjent som den store bokstaven A til datamaskiner. 543 00:29:06,980 --> 00:29:10,700 Desimalverdien av 97 i datamaskiner er kjent som en 544 00:29:10,700 --> 00:29:11,980 små bokstaver en. 545 00:29:11,980 --> 00:29:13,070 Og hva betyr det egentlig? 546 00:29:13,070 --> 00:29:15,520 Vel, selv om Nate et øyeblikk siden var det bare telles opp 547 00:29:15,520 --> 00:29:20,460 0-8, hvis vi skulle fortsette å telle opp til 65 eller 548 00:29:20,460 --> 00:29:24,180 videre til 97, mønsteret av 0'er og 1'ere at han ville ha 549 00:29:24,180 --> 00:29:27,810 trukket på skjermen ville være nøyaktig hva en datamaskin bruker 550 00:29:27,810 --> 00:29:30,300 å representere bokstaven A i alle caps eller 551 00:29:30,300 --> 00:29:32,470 bokstaven a med små bokstaver. 552 00:29:32,470 --> 00:29:35,460 Og ja, det er en hel ordning på dette. 553 00:29:35,460 --> 00:29:38,170 Dette er en, ved første øyekast, overveldende diagram av 554 00:29:38,170 --> 00:29:41,150 kodinger, men hvis du fokuserer bare på høyre halvdel her, 555 00:29:41,150 --> 00:29:45,820 merke til i denne midterste kolonnen har vi denne oppfatningen av tall 556 00:29:45,820 --> 00:29:46,860 etterfulgt av bokstaver. 557 00:29:46,860 --> 00:29:48,640 Og på toppen har vi 32. 558 00:29:48,640 --> 00:29:53,270 Og karakteren, røye, som 32, heltallet, refererer 559 00:29:53,270 --> 00:29:55,220 er tilsynelatende Space Bar karakter. 560 00:29:55,220 --> 00:29:57,350 Når du treffer Space Bar tegnet på den bærbare datamaskinen, 561 00:29:57,350 --> 00:30:00,110 vel, hva du egentlig sender er et tall, et mønster 562 00:30:00,110 --> 00:30:02,620 av 0'er og 1'ere, en strøm av elektrisitet hvis du vil, 563 00:30:02,620 --> 00:30:05,630 representerer de 0'er og 1'ere at datamaskinen da 564 00:30:05,630 --> 00:30:08,190 tolker som et mellomrom på skjermen. 565 00:30:08,190 --> 00:30:10,070 Et utropstegn er 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 bla nedover her over til høyre, ser vi at 568 00:30:14,890 --> 00:30:18,840 65 er faktisk A, og 97 er små bokstaver faktisk en. 569 00:30:18,840 --> 00:30:21,690 >> Og så nå som vi har denne kodeskjema, kan vi begynne 570 00:30:21,690 --> 00:30:22,920 å stave ting ut. 571 00:30:22,920 --> 00:30:27,180 Faktisk, datamaskiner vanligvis uttrykker seg i standard 572 00:30:27,180 --> 00:30:29,980 enheter, ikke med en individuell bit, som igjen er ikke alle 573 00:30:29,980 --> 00:30:33,630 det nyttig å bare representere 0 eller 1, lys på eller av, men 574 00:30:33,630 --> 00:30:35,390 heller bruke sekvenser av bits. 575 00:30:35,390 --> 00:30:37,610 Og den vanligste måleenheten, som du sikkert vet 576 00:30:37,610 --> 00:30:39,370 og eller i det minste utledes, er en byte. 577 00:30:39,370 --> 00:30:43,820 En byte er bare åtte biter, åtte 0s eller 1s på rad. 578 00:30:43,820 --> 00:30:45,950 Så vi kan begynne å stave ting ut. 579 00:30:45,950 --> 00:30:48,990 Og så, hvis vi kunne, hvorfor ikke prøve dette litt 580 00:30:48,990 --> 00:30:50,440 kollektivt her. 581 00:30:50,440 --> 00:30:53,630 Er det åtte personer i dette rommet som ville være villig til å 582 00:30:53,630 --> 00:30:54,660 komme opp på scenen? 583 00:30:54,660 --> 00:30:57,790 Du må være komfortabel vises på kameraet, men du 584 00:30:57,790 --> 00:30:59,860 egentlig ikke trenger å vite, ellers, hva er 585 00:30:59,860 --> 00:31:01,550 skjer ennå. 586 00:31:01,550 --> 00:31:05,080 Jeg ser en person som blir frivillig over her. 587 00:31:05,080 --> 00:31:16,220 To, tre, fire, fem, seks, syv, og hvordan om åtte. 588 00:31:16,220 --> 00:31:16,800 Kom opp. 589 00:31:16,800 --> 00:31:20,390 >> Så du er i ferd med å representere en byte av mennesker. 590 00:31:20,390 --> 00:31:26,750 La meg være du har den 128 plass, du 64 plass, du 591 00:31:26,750 --> 00:31:28,050 32 plass. 592 00:31:28,050 --> 00:31:30,530 Men vi skal veldig raskt å reversere dette. 593 00:31:30,530 --> 00:31:33,030 Så la meg møte dere alle der. 594 00:31:33,030 --> 00:31:37,230 Og du bør være i den 128 plass hele veien hit. 595 00:31:37,230 --> 00:31:39,500 Mye som hundrevis sted og tusenvis sted ville 596 00:31:39,500 --> 00:31:42,050 være lenger til venstre, vil vi den største plassholder 597 00:31:42,050 --> 00:31:43,600 å være her på venstre som også. 598 00:31:43,600 --> 00:31:53,090 Vi har 64s er 32, 16 s, 8-tallet, 4s, 2'S, og 1-ere. 599 00:31:53,090 --> 00:31:53,900 Utmerket. 600 00:31:53,900 --> 00:31:56,090 Så nå har vi - 601 00:31:56,090 --> 00:31:58,050 OK, kan du hjelpe meg. 602 00:31:58,050 --> 00:32:00,085 Så nå har vi - hva heter du? 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 skal nå gi råd disse gutta om hvordan vi 606 00:32:04,100 --> 00:32:05,860 kan gå om stavekontroll noe ut. 607 00:32:05,860 --> 00:32:07,730 Så på ryggen av sine ark, de har en 608 00:32:07,730 --> 00:32:10,160 lite jukse ark som kommer til å fortelle dem om 609 00:32:10,160 --> 00:32:12,590 de representerer en 0 eller en 1. 610 00:32:12,590 --> 00:32:15,870 Og hvorfor ikke for enkelhet, vil vi representere 0 ved bare 611 00:32:15,870 --> 00:32:17,440 står der klønete. 612 00:32:17,440 --> 00:32:18,220 Veldig bra. 613 00:32:18,220 --> 00:32:22,060 Eller en 1 ved å heve hånden, som representerer en 1. 614 00:32:22,060 --> 00:32:25,430 Og la oss se om vi ikke kan stave ut en fire karakter 615 00:32:25,430 --> 00:32:26,250 setning her. 616 00:32:26,250 --> 00:32:30,930 >> Så, gå fremover nå, frivillige, og utføre round én etter 617 00:32:30,930 --> 00:32:33,390 heve hånden din hvis du er en 1 eller holde den 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å nå som vi har disse tre hender opp, hvilket nummer, 620 00:32:42,280 --> 00:32:45,670 alle andre, de er faktisk representerer? 621 00:32:45,670 --> 00:32:45,950 OK. 622 00:32:45,950 --> 00:32:46,290 67 år. 623 00:32:46,290 --> 00:32:46,910 Hvorfor? 624 00:32:46,910 --> 00:32:47,830 Vel, rask forstanden sjekk. 625 00:32:47,830 --> 00:32:53,200 64 plass, fordi det er en 1, er at som en ganger 64 pluss 1 626 00:32:53,200 --> 00:32:56,565 2 ganger, slik at det er 66 pluss 1 ganger 1. 627 00:32:56,565 --> 00:32:58,470 Det er pluss 1, så 67 år. 628 00:32:58,470 --> 00:33:01,020 Så nå er disse gutta er samlet representerer 67 629 00:33:01,020 --> 00:33:04,110 som representerer tilsynelatende hva her i ASCII? 630 00:33:04,110 --> 00:33:04,380 OK. 631 00:33:04,380 --> 00:33:05,140 Så en c. 632 00:33:05,140 --> 00:33:05,510 OK. 633 00:33:05,510 --> 00:33:07,400 Så la oss nå gå videre til runde to. 634 00:33:07,400 --> 00:33:08,940 Alle starter med hendene ned. 635 00:33:08,940 --> 00:33:10,590 Og i runde to - 636 00:33:10,590 --> 00:33:12,410 det finnes faktisk ikke mye av en rolle her, antar jeg, men 637 00:33:12,410 --> 00:33:13,130 vi vil late. 638 00:33:13,130 --> 00:33:17,690 Så runde to, heve eller senke hendene. 639 00:33:17,690 --> 00:33:18,380 >> OK. 640 00:33:18,380 --> 00:33:22,700 Publikum, hva er vi nå uttrykker er 83. 641 00:33:22,700 --> 00:33:23,910 Så du kan gjøre matematikk. 642 00:33:23,910 --> 00:33:27,000 Men for alle som har hånd er opp, legger du inn nummeret som 643 00:33:27,000 --> 00:33:27,670 de representerer. 644 00:33:27,670 --> 00:33:29,470 Så nå har vi 83. 645 00:33:29,470 --> 00:33:32,140 La oss utvide jukse ark litt, og vi har nå -? 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 opplagt hvor vi skal her, men 649 00:33:36,740 --> 00:33:40,080 likevel, runde tre. 650 00:33:40,080 --> 00:33:40,455 OK. 651 00:33:40,455 --> 00:33:41,730 Runde tre er godt å gå ned dit. 652 00:33:41,730 --> 00:33:44,450 Så runde tre, hvilket nummer er disse gutta nå 653 00:33:44,450 --> 00:33:45,700 representerer? 654 00:33:47,940 --> 00:33:48,200 OK. 655 00:33:48,200 --> 00:33:51,770 Jeg hørte 53, som nå representerer? 656 00:33:51,770 --> 00:33:54,550 Interessant. 657 00:33:54,550 --> 00:33:58,630 Nå hvorfor denne typen counter intuitive resultat, ikke sant? 658 00:33:58,630 --> 00:34:00,890 Hvis vi ønsker å representere 5 - vi alle sikkert vet 659 00:34:00,890 --> 00:34:01,770 hvor dette går - 660 00:34:01,770 --> 00:34:05,230 hvorfor jeg ikke bare heve 4 plass og en plass? 661 00:34:05,230 --> 00:34:07,340 >> Vel, skjønner at det er en forskjell, fundamentalt, 662 00:34:07,340 --> 00:34:09,630 mellom hvordan en datamaskin tolker disse bitene. 663 00:34:09,630 --> 00:34:13,030 Hvis du prøver å representere nummer 5, så absolutt, 664 00:34:13,030 --> 00:34:16,199 vi bare heve hånden nummer 4 og heve hånden nummer 1. 665 00:34:16,199 --> 00:34:17,880 Men vi representerer tall her. 666 00:34:17,880 --> 00:34:20,710 Sammenheng her på scenen er at vi representerer 667 00:34:20,710 --> 00:34:22,300 tegn, eller tegn. 668 00:34:22,300 --> 00:34:25,139 Og i denne sammenheng datamaskinen må innse at, 669 00:34:25,139 --> 00:34:28,780 oh, er dette mønsteret biter ikke et nummer alene, er det 670 00:34:28,780 --> 00:34:31,620 faktisk representerer et høyere nivå konsept, i dette tilfellet en 671 00:34:31,620 --> 00:34:32,840 alfabetisk brev. 672 00:34:32,840 --> 00:34:36,600 Så det faktum at det nå er som representerer antall 5 med 673 00:34:36,600 --> 00:34:40,550 verdien 53 er fordi i ASCII ting vi 674 00:34:40,550 --> 00:34:44,280 estetisk ser som nummer 5 i seg selv trenger en 675 00:34:44,280 --> 00:34:45,290 mønster av biter. 676 00:34:45,290 --> 00:34:46,080 Fordi hvorfor? 677 00:34:46,080 --> 00:34:48,780 Vel, verden nettopp besluttet å bruke lavere tall, 0, 678 00:34:48,780 --> 00:34:51,989 1, 2, 3, for hva ser til å være ganske kryptiske ting. 679 00:34:51,989 --> 00:34:54,070 Og faktisk er det disse tegnene som ikke er på en 680 00:34:54,070 --> 00:34:56,870 tastatur, spesielle uttrykk som du trenger i en datamaskin til 681 00:34:56,870 --> 00:34:58,800 gjøre interessante ting, men mennesker aldri 682 00:34:58,800 --> 00:34:59,880 faktisk skrive dem. 683 00:34:59,880 --> 00:35:02,080 Så 53 representerer faktisk 5. 684 00:35:02,080 --> 00:35:08,320 Nå, akkurat som en siste tilregnelighet sjekk, hvilket nummer skal de 685 00:35:08,320 --> 00:35:10,356 representerer en liten stund? 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 Så 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 pluss 32 er faktisk 48. 692 00:35:20,540 --> 00:35:22,830 Og så en stor applaus, hvis vi kunne, for vår 693 00:35:22,830 --> 00:35:25,382 åtte frivillige her. 694 00:35:25,382 --> 00:35:25,870 Takk. 695 00:35:25,870 --> 00:35:27,822 Du kan holde denne. 696 00:35:27,822 --> 00:35:29,286 Hvis du - 697 00:35:29,286 --> 00:35:30,536 Veldig godt gjort. 698 00:35:33,140 --> 00:35:34,360 Noen retning er fine. 699 00:35:34,360 --> 00:35:37,950 >> Så har vi nå en måte ikke bare å tenke på hvordan du 700 00:35:37,950 --> 00:35:40,810 representere data og faktisk representerer det fysisk, 701 00:35:40,810 --> 00:35:43,650 men også gjør på høyere nivå ting på toppen av det. 702 00:35:43,650 --> 00:35:45,640 Faktisk er dette kommer til å bli et tema i hele datamaskin 703 00:35:45,640 --> 00:35:48,630 vitenskapen om å bygge mer og mer interessant kompleks 704 00:35:48,630 --> 00:35:52,170 ting på toppen av ganske enkle ideer, i dette 705 00:35:52,170 --> 00:35:54,040 tilfelle bare 0'er og 1'ere. 706 00:35:54,040 --> 00:35:57,270 I forhold til hvorfor dette er nyttig, godt selv om det i en 707 00:35:57,270 --> 00:35:59,760 kurs som dette vil vi fokusere på grunnleggende og på 708 00:35:59,760 --> 00:36:03,120 programmering og på å løse problemer, kan du gå av i 709 00:36:03,120 --> 00:36:04,970 informatikk i en rekke retninger. 710 00:36:04,970 --> 00:36:07,600 I dette tilfellet her, dette er et diagram som du har på 711 00:36:07,600 --> 00:36:11,120 baksiden av din uoffisielle guide til CS ved Harvard, en av 712 00:36:11,120 --> 00:36:12,450 i dag er to utskrifter. 713 00:36:12,450 --> 00:36:14,270 Dette tyder de mange forskjellige retninger som 714 00:36:14,270 --> 00:36:16,270 du kan gå etter et kurs som dette. 715 00:36:16,270 --> 00:36:19,170 Lære om kunstig intelligens, om grafikk, 716 00:36:19,170 --> 00:36:22,230 om maskinlæring, om språket selv. 717 00:36:22,230 --> 00:36:23,975 Innser også at det er ennå andre baner. 718 00:36:23,975 --> 00:36:26,550 Det er mer matematiske stier i informatikk. 719 00:36:26,550 --> 00:36:29,020 Hvis du ikke selv i stand til å ta noe sånt CS50 dette 720 00:36:29,020 --> 00:36:30,930 falle, er det innføringskurs i våren. 721 00:36:30,930 --> 00:36:33,420 Datamaskin Science 1, for eksempel, er enda et 722 00:36:33,420 --> 00:36:35,920 på rampen til denne nye verden. 723 00:36:35,920 --> 00:36:38,230 >> Nå som en side av hensyn til å løse problemer 724 00:36:38,230 --> 00:36:41,380 knyttet til kurs, innser at CS50 sett ut litt tid 725 00:36:41,380 --> 00:36:44,405 siden for å prøve å løse en av disse problemene, problemet kjent 726 00:36:44,405 --> 00:36:47,500 som my.harvard, som mange av dere kanskje bruker til å faktisk 727 00:36:47,500 --> 00:36:48,480 handle for kurs. 728 00:36:48,480 --> 00:36:51,900 Men hvis ikke, sjekk ut et verktøy som dette, samt andre 729 00:36:51,900 --> 00:36:54,130 etterkommere at noen av våre tidligere studenter 730 00:36:54,130 --> 00:36:55,660 og ansatte har skapt. 731 00:36:55,660 --> 00:36:57,970 Men i Harvard Kurs, som er et web-basert verktøy - 732 00:36:57,970 --> 00:37:00,680 noe som du vil være i stand til å utforme og 733 00:37:00,680 --> 00:37:04,610 distribusjon selv, samt likevel andre ting også, ved 734 00:37:04,610 --> 00:37:05,920 slutten av semesteret. 735 00:37:05,920 --> 00:37:08,890 Innse at dette bygger på en åpen datasett, i dette tilfellet 736 00:37:08,890 --> 00:37:11,350 en kurskatalog, og tillater elevene i dette tilfellet til 737 00:37:11,350 --> 00:37:14,180 utforske en ganske kompleks datasett. 738 00:37:14,180 --> 00:37:16,710 >> Vi gravde opp i går kveld noen statistikk basert på de få 739 00:37:16,710 --> 00:37:18,200 tusen folk som har brukt dette over 740 00:37:18,200 --> 00:37:19,380 de siste dagene. 741 00:37:19,380 --> 00:37:22,630 Hvis du har vært nysgjerrig på å vite hvor mange kurs vennene dine 742 00:37:22,630 --> 00:37:25,900 faktisk har en tendens til å handle, vel, i dag er det data tyder på at 743 00:37:25,900 --> 00:37:29,260 7,6 er gjennomsnittlig antall kurs på 744 00:37:29,260 --> 00:37:30,470 noens handleliste. 745 00:37:30,470 --> 00:37:33,730 Og nå skal jeg gi deg, også, statistikken av de mest 746 00:37:33,730 --> 00:37:36,500 rekke kurs i noens handleliste. 747 00:37:36,500 --> 00:37:38,220 Og vi alle kjenner sikkert noen som dette. 748 00:37:41,700 --> 00:37:44,610 201 er årets posten. 749 00:37:44,610 --> 00:37:47,220 Nå noen av våre tidligere studenter og ansatte faktisk 750 00:37:47,220 --> 00:37:52,210 sette sammen et klipp for å male et bilde for deg om hva dette 751 00:37:52,210 --> 00:37:55,220 banen i informatikk og CS50 selv er. 752 00:37:55,220 --> 00:37:58,350 La meg gå videre og trekke opp, takket være Mr. Hahvahd her, en 753 00:37:58,350 --> 00:38:02,390 video produsert av noen av dine forgjengere. 754 00:38:02,390 --> 00:38:04,680 Hvis vi kunne holde lysene opp for dette. 755 00:38:07,860 --> 00:39:08,101 [VIDEOAVSPILLING] 756 00:39:08,101 --> 00:39:11,987 [END VIDEOAVSPILLING] 757 00:39:11,987 --> 00:39:14,160 >> SPEAKER 14: (sang) Vi tar vår tid med noen riper, 758 00:39:14,160 --> 00:39:17,410 for looper, hendelser, kan vi matche, kompilering bruke vår 759 00:39:17,410 --> 00:39:20,370 bash, vil dette begrepet ikke være en boring. 760 00:39:20,370 --> 00:39:23,970 Hacking moro, noen gratis måltider, forelesninger er rett og slett uvirkelig, 761 00:39:23,970 --> 00:39:28,200 vår rettferdige er en så stor avtale, det er så mye å elske. 762 00:39:28,200 --> 00:39:29,784 Gå, David Malan. 763 00:39:29,784 --> 00:39:31,810 Walkthroughs, jeg er ikke bailing. 764 00:39:31,810 --> 00:39:33,794 Kontortid, er ingen sviktende. 765 00:39:33,794 --> 00:39:36,274 Hvor du tror du koding, baby? 766 00:39:36,274 --> 00:39:40,242 Hei, jeg bare møtt deg og dette er gal, 767 00:39:40,242 --> 00:39:42,226 men her er vår grunn. 768 00:39:42,226 --> 00:39:44,210 Ta CS50. 769 00:39:44,210 --> 00:39:48,674 Det er vanskelig å kode rett uten deg, baby. 770 00:39:48,674 --> 00:39:50,658 Men her er vår grunn. 771 00:39:50,658 --> 00:39:52,146 Ta CS50. 772 00:39:52,146 --> 00:39:56,610 Hei, jeg bare møtt deg og dette er gal, 773 00:39:56,610 --> 00:39:58,098 men her er vår grunn. 774 00:39:58,098 --> 00:40:00,082 Ta CS50. 775 00:40:00,082 --> 00:40:06,530 Og hver stjerne firmaet ønsker å ansette meg, en annen grunn. 776 00:40:06,530 --> 00:40:08,018 Ta CS50. 777 00:40:08,018 --> 00:40:12,978 Før du kom inn i livet mitt, kodet jeg så ille, kodet jeg så 778 00:40:12,978 --> 00:40:15,954 dårlig, kodet jeg så, så ille. 779 00:40:15,954 --> 00:40:19,922 Før du kom inn i livet mitt, kodet jeg så ille 780 00:40:19,922 --> 00:40:22,402 og jeg kan ikke gå tilbake. 781 00:40:22,402 --> 00:40:37,410 Ta CS50. 782 00:40:37,410 --> 00:40:40,490 >> DAVID J. MALAN: Jeg hadde ingen anelse om at skulle skje. 783 00:40:40,490 --> 00:40:44,030 Så, ligger en mer alvorlig titt på hva som kommer. 784 00:40:44,030 --> 00:40:45,980 Så i forhold til forventningene dette kurset, 785 00:40:45,980 --> 00:40:48,490 du faktisk ventet å delta eller se på kursets 786 00:40:48,490 --> 00:40:51,600 forelesninger, sende et problem sett, ta to spørrekonkurranser, sende 787 00:40:51,600 --> 00:40:52,590 et avsluttende prosjekt. 788 00:40:52,590 --> 00:40:56,250 I form av karakterer, innse at min kommentar ved åpningen 789 00:40:56,250 --> 00:40:58,190 om bestått / ikke bestått, noe som vi veldig mye å ta til 790 00:40:58,190 --> 00:40:59,310 hjertet i CS50. 791 00:40:59,310 --> 00:41:02,970 Det er ikke på langt nær nok for en kultur ved Harvard for å prøve 792 00:41:02,970 --> 00:41:04,940 noe og risikere å mislykkes. 793 00:41:04,940 --> 00:41:07,010 Faktisk hadde vi antall studenter, og meg selv, i 794 00:41:07,010 --> 00:41:09,910 Spesielt ble som bekymret sårer din GPA eller 795 00:41:09,910 --> 00:41:13,170 få en B i noe sånt CS50. 796 00:41:13,170 --> 00:41:16,250 Og muligheten til å ta et kurs som dette, og andre 797 00:41:16,250 --> 00:41:19,080 gateway kurs på innføringsnivå, bestått / ikke bestått 798 00:41:19,080 --> 00:41:22,190 er en svært dårlig utnyttede muligheter på dette college, 799 00:41:22,190 --> 00:41:22,620 generelt. 800 00:41:22,620 --> 00:41:25,420 Og så skal du vite selv jeg deltok i dette kurset 801 00:41:25,420 --> 00:41:28,430 utgangspunktet for bestått / ikke bestått kreditt alene. 802 00:41:28,430 --> 00:41:30,710 Og selv om jeg gjorde bryteren på slutten av dagen, var det 803 00:41:30,710 --> 00:41:33,280 de fem første ukene, opp til den femte mandag hele 804 00:41:33,280 --> 00:41:36,020 semester som er cutoff, som tillot meg å faktisk 805 00:41:36,020 --> 00:41:39,270 sette foten inn i disse nye farvann og faktisk prøve noe 806 00:41:39,270 --> 00:41:41,520 veldig uvant og svært ubehagelig 807 00:41:41,520 --> 00:41:43,400 for meg på den tiden. 808 00:41:43,400 --> 00:41:47,130 >> Så i form nå, av hvilken rolle de ulike vinkler via hvilke 809 00:41:47,130 --> 00:41:50,630 du kan nærme dette kurset tjene, så forelesninger, er det opp til 810 00:41:50,630 --> 00:41:53,330 deg hvis du delta med oss ​​i person på dette sted. 811 00:41:53,330 --> 00:41:57,590 Faktisk vet vi statistisk at omtrent 40% av dere vil 812 00:41:57,590 --> 00:41:59,530 slags komme og gå i løpet av semesteret. 813 00:41:59,530 --> 00:42:03,000 Og 10% av dere, vi vil aldri se igjen etter i dag. 814 00:42:03,000 --> 00:42:05,400 Og det er helt greit, for å være ærlig. 815 00:42:05,400 --> 00:42:07,810 En av de kjennetegner CS50 er 816 00:42:07,810 --> 00:42:10,160 at det er disse utallige ressurser, noen av 817 00:42:10,160 --> 00:42:12,570 som vi vil skrangle gjennom i løpet av et øyeblikk, inkludert 818 00:42:12,570 --> 00:42:15,320 forelesninger og seksjoner og ting kalt walkthroughs og 819 00:42:15,320 --> 00:42:16,720 kontortid og lignende. 820 00:42:16,720 --> 00:42:18,890 Og det er mer ressurser enn den typiske studenten 821 00:42:18,890 --> 00:42:21,580 må eller kunne fysisk dra nytte av. 822 00:42:21,580 --> 00:42:23,650 Men det er fordi de ulike læringsstiler som 823 00:42:23,650 --> 00:42:25,370 enhver student body manifesterer. 824 00:42:25,370 --> 00:42:28,120 Og så i forelesninger, den primære rolle, slik jeg ser det, er 825 00:42:28,120 --> 00:42:31,650 ikke å verbalt presse ut ganske komplisert materiale og til 826 00:42:31,650 --> 00:42:34,670 nødvendigvis levere alle vanskelighetene med 827 00:42:34,670 --> 00:42:36,910 grunnleggende at vi vil utforske dette semesteret, men 828 00:42:36,910 --> 00:42:39,530 heller å gjøre ting som vi har gjort så langt allerede, 829 00:42:39,530 --> 00:42:42,350 disse eksemplene, som involverer mennesker på scenen, prøver å 830 00:42:42,350 --> 00:42:45,340 male et mentalt bilde, og også opprette, tør jeg si, noen 831 00:42:45,340 --> 00:42:46,450 av disse minneverdige øyeblikkene. 832 00:42:46,450 --> 00:42:49,200 Slik at selv som du sliter med visse emner, har du 833 00:42:49,200 --> 00:42:51,770 disse minnene liker, oh, selv om det var ganske 834 00:42:51,770 --> 00:42:54,770 abstrakt, matte, jeg har mistet med å bære en, som det 835 00:42:54,770 --> 00:42:57,510 virkelig, på slutten av dagen, er ikke alt som ulikt 836 00:42:57,510 --> 00:42:58,920 noe jeg allerede vet. 837 00:42:58,920 --> 00:43:01,590 Og så den rollen som forelesninger vil tjene, enten personlig 838 00:43:01,590 --> 00:43:05,120 her i Sanders eller online på video, er virkelig å sette 839 00:43:05,120 --> 00:43:08,170 iscenesette mentalt for deg hver uke for de ulike konseptene 840 00:43:08,170 --> 00:43:10,240 og problemer som vi vil være dykking inn. 841 00:43:10,240 --> 00:43:13,790 >> I form av høyt nivå konsepter, de fleste av disse ordene 842 00:43:13,790 --> 00:43:16,340 kan flyte over hodet for øyeblikket, og det er fint. 843 00:43:16,340 --> 00:43:18,495 For de av dere som kommer inn i kurset mer komfortabel 844 00:43:18,495 --> 00:43:20,150 vil vite av noen av disse temaene. 845 00:43:20,150 --> 00:43:23,150 Men vanligvis for at 10% av den klassen som de har 846 00:43:23,150 --> 00:43:25,810 mye mer bakgrunn, tar AP informatikk, 847 00:43:25,810 --> 00:43:28,200 programmering siden de var 12, innser at det vil være 848 00:43:28,200 --> 00:43:31,230 muligheter i seksjoner og i problemet setter å gå hele 849 00:43:31,230 --> 00:43:34,240 mer i dybden i ulike temaer, fylle i hva 850 00:43:34,240 --> 00:43:36,710 hull du kan ha fra videregående skole eller før 851 00:43:36,710 --> 00:43:37,460 bakgrunn. 852 00:43:37,460 --> 00:43:39,930 I form av språk, innser at det språket vi 853 00:43:39,930 --> 00:43:42,550 bruke i CS50 er i stor grad irrelevant i 854 00:43:42,550 --> 00:43:43,220 slutten av dagen. 855 00:43:43,220 --> 00:43:47,090 Vi måtte bruke, først og fremst, kalt et språk C. Mot 856 00:43:47,090 --> 00:43:49,010 slutten av semesteret, innfører vi web-sentriske 857 00:43:49,010 --> 00:43:51,110 språk som PHP og JavaScript. 858 00:43:51,110 --> 00:43:54,280 Men vi og andre kunne lære et kurs som dette i de fleste helst 859 00:43:54,280 --> 00:43:55,610 moderne høynivåspråk. 860 00:43:55,610 --> 00:43:58,520 Python og Ruby og andre er ganske populært i disse dager. 861 00:43:58,520 --> 00:44:00,970 Fordi realisere på slutten av dagen, du er ikke lærer 862 00:44:00,970 --> 00:44:04,180 i dette kurset C. ikke Dere lærer PHP eller JavaScript. 863 00:44:04,180 --> 00:44:07,140 Du lærer hvordan du kan løse problemer, enten web-basert, 864 00:44:07,140 --> 00:44:10,480 PC-basert, eller data-orientert seg selv, ved hjelp av 865 00:44:10,480 --> 00:44:12,700 disse bare som verktøy. 866 00:44:12,700 --> 00:44:14,730 >> Nå, i form av logistikk, vil du bruke 867 00:44:14,730 --> 00:44:16,670 noe, til slutt, kalt CS50 Appliance. 868 00:44:16,670 --> 00:44:19,350 Spiller ingen rolle om du har en Mac, en PC, en Linux-datamaskin, 869 00:44:19,350 --> 00:44:20,010 eller lignende. 870 00:44:20,010 --> 00:44:22,510 Du vil ha fritt tilgjengelig programvare som starter neste uke 871 00:44:22,510 --> 00:44:25,460 som å bruke CS50 Appliance, en virtuell 872 00:44:25,460 --> 00:44:28,020 miljø som du vil bruke på din egen datamaskin, slik at du 873 00:44:28,020 --> 00:44:31,120 og alle dine klassekamerater har en uniform Linux desktop 874 00:44:31,120 --> 00:44:31,890 i dette tilfellet. 875 00:44:31,890 --> 00:44:34,390 Det er problemet sett, skjønt, hvor du virkelig får 876 00:44:34,390 --> 00:44:35,780 hendene skitne på kurset. 877 00:44:35,780 --> 00:44:37,630 Og på slutten av dagen, er det de oppgavesett, jeg 878 00:44:37,630 --> 00:44:39,680 tror, ​​som virkelig definerer en elevs 879 00:44:39,680 --> 00:44:41,380 oppleve i dette kurset. 880 00:44:41,380 --> 00:44:43,460 Innse at mange av oppgavesett vil bli utgitt 881 00:44:43,460 --> 00:44:46,430 i to utgaver, en standard tillegg som vi forventer og 882 00:44:46,430 --> 00:44:49,550 oppmuntre 90% av klassen til å dykke inn. 883 00:44:49,550 --> 00:44:51,620 Men vi har også slippe noen problemområder sett i 884 00:44:51,620 --> 00:44:52,920 såkalte hacker tilføyelser. 885 00:44:52,920 --> 00:44:54,900 Og du vet at det er hacker tillegg fordi på hver side 886 00:44:54,900 --> 00:44:57,840 med et vannmerke sier det hacker tillegg på den. 887 00:44:57,840 --> 00:45:00,000 Og det er for denne demografiske av dere som har AP 888 00:45:00,000 --> 00:45:02,890 informatikk med 10 års programmering under beltet 889 00:45:02,890 --> 00:45:05,640 og ønsker å fylle disse hullene og å ha mer formell, 890 00:45:05,640 --> 00:45:07,370 snarere enn selvlært, opplæring, kanskje. 891 00:45:07,370 --> 00:45:10,410 Innser at det er en meget betydelig demografiske i 892 00:45:10,410 --> 00:45:13,090 klasse som har nettopp den samme målet. 893 00:45:13,090 --> 00:45:14,320 Du har fem sent dager. 894 00:45:14,320 --> 00:45:16,490 Oppgavesett er vanligvis på grunn på torsdager, men du kan 895 00:45:16,490 --> 00:45:18,440 utvide fem av disse fristene å bruke disse 896 00:45:18,440 --> 00:45:19,700 ting som kalles sent dager. 897 00:45:19,700 --> 00:45:22,590 Og vi vil også slippe laveste score på slutten av 898 00:45:22,590 --> 00:45:25,400 semester per opplysningene i pensum. 899 00:45:25,400 --> 00:45:27,800 >> Men en annen særtrekk ved CS50 løpet 900 00:45:27,800 --> 00:45:29,830 årene har blitt kontortid. 901 00:45:29,830 --> 00:45:32,720 Det er en mulighet som du så visuelt i bilder litt 902 00:45:32,720 --> 00:45:35,850 siden, hvor vi samles - tidligere i huset servering 903 00:45:35,850 --> 00:45:37,780 haller, før det i kjelleren i Science 904 00:45:37,780 --> 00:45:40,310 Sentrum, og i år i Annenberg Hall - fire netter en 905 00:45:40,310 --> 00:45:43,330 uke 20:00 til 11:00 der du vil ha dette veldig 906 00:45:43,330 --> 00:45:46,320 mye delte erfaringer med å jobbe på, sliter 907 00:45:46,320 --> 00:45:49,300 gjennom, visse problemer, men med en betydelig støtte 908 00:45:49,300 --> 00:45:50,380 strukturen på plass. 909 00:45:50,380 --> 00:45:53,180 Faktisk er måten dette vil fungere vil ankomme Annenberg 910 00:45:53,180 --> 00:45:55,160 hvis du har noen spørsmål i løpet av uken, vil du få 911 00:45:55,160 --> 00:45:58,060 den bærbare datamaskinen, vil du sitte ned, hente noe mat, og du vil logge 912 00:45:58,060 --> 00:46:01,520 inn CS50 Diskuter, en web-basert verktøy som undervisningen 913 00:46:01,520 --> 00:46:04,480 ansatte har utviklet som vil tillate deg å legge inn spørsmål 914 00:46:04,480 --> 00:46:07,910 og se oppfølging i en typisk diskusjonsforum 915 00:46:07,910 --> 00:46:10,550 forstand, bruk av etiketter og lignende og automatisk fylle ut til 916 00:46:10,550 --> 00:46:11,680 søke i data. 917 00:46:11,680 --> 00:46:14,850 Men du vil også være i stand til, i løpet av timer av kontoret 918 00:46:14,850 --> 00:46:16,980 timer, har dine spørsmål videresendt til 919 00:46:16,980 --> 00:46:18,360 virkelige mennesker. 920 00:46:18,360 --> 00:46:21,430 Faktisk er målet til slutt slik at man begynner vi å bygge 921 00:46:21,430 --> 00:46:24,040 opp i løpet av semesteret et korpus av forhåpentligvis 922 00:46:24,040 --> 00:46:26,970 virkelig nyttig informasjon, felles svar på felles 923 00:46:26,970 --> 00:46:29,640 spørsmål, slik at du selv kan løse problemer 924 00:46:29,640 --> 00:46:33,490 og få unstuck så raskt som mulig, men samtidig ha den 925 00:46:33,490 --> 00:46:37,210 lærere, vanligvis 20 til 30 av undervisningen stipendiater og 926 00:46:37,210 --> 00:46:39,660 kurs assistenter, i staben på en gang. 927 00:46:39,660 --> 00:46:42,420 >> Vi vil ha det som kalles CS50 Greeter i Annenberg. 928 00:46:42,420 --> 00:46:46,710 Og når vi finner ut at, vet du hva, dette spørsmålet, 929 00:46:46,710 --> 00:46:48,780 Vi kan egentlig ikke svare effektivt på nettet. 930 00:46:48,780 --> 00:46:49,800 Vi trenger å se datamaskinen din. 931 00:46:49,800 --> 00:46:50,710 Vi ønsker å snakke med deg en-mot-en. 932 00:46:50,710 --> 00:46:51,340 På den ene. 933 00:46:51,340 --> 00:46:53,400 Du virkelig sliter, og du derfor ønsker å snakke 934 00:46:53,400 --> 00:46:56,010 one-on-one sammen noen, vil du bli sendt til 935 00:46:56,010 --> 00:46:58,730 CS50 Greeter, et undervisningsopplegg stipendiat holding, bokstavelig talt, en 936 00:46:58,730 --> 00:47:01,770 iPad som har elevenes navn på den ene siden, undervisning ansatte 937 00:47:01,770 --> 00:47:02,790 Navnene på den andre. 938 00:47:02,790 --> 00:47:04,760 Vi vil klikke navnet ditt etterfulgt av navnet på en 939 00:47:04,760 --> 00:47:06,860 lærere, og dataskjermen vil starte 940 00:47:06,860 --> 00:47:11,170 blinker si vennligst gå se Alice eller gå se Bob på 941 00:47:11,170 --> 00:47:11,980 ansatte tabellen. 942 00:47:11,980 --> 00:47:14,450 Og så på denne måten, vil vi være i stand til å sende ting som 943 00:47:14,450 --> 00:47:17,610 effektivt som mulig, samt veilede deg mot 944 00:47:17,610 --> 00:47:19,910 løsninger alle lettere. 945 00:47:19,910 --> 00:47:22,970 I seksjoner, og disse vil være muligheter for mer 946 00:47:22,970 --> 00:47:25,570 intime hands-on muligheter med en av 947 00:47:25,570 --> 00:47:29,040 undervisning stipendiater og 12 til 16 eller så av dine klassekamerater i 948 00:47:29,040 --> 00:47:31,900 som hver uke vil vi ha problemer i oppgavesettet 949 00:47:31,900 --> 00:47:33,800 som spør en rekke konseptuelle spørsmål og en 950 00:47:33,800 --> 00:47:35,740 antall bit-sized programmering spørsmål som du 951 00:47:35,740 --> 00:47:37,690 kunne finne ut på egen hånd, og du kan jobbe på din 952 00:47:37,690 --> 00:47:40,020 hånd, men i sammenheng med delen der vi jobber gjennom 953 00:47:40,020 --> 00:47:42,870 kollektivt noen av disse problemene, og gå hvor 954 00:47:42,870 --> 00:47:44,570 annen samtale tar oss. 955 00:47:44,570 --> 00:47:48,010 >> I tillegg vil i avsnitt har du muligheter til å 956 00:47:48,010 --> 00:47:50,450 gjennomgå innsending av lekser som du har gjort, din 957 00:47:50,450 --> 00:47:53,620 klassekamerater, noen ganger anonymisert, alltid via opt-in 958 00:47:53,620 --> 00:47:55,810 Hvis du ønsker å dele det arbeidet som du har sendt inn. 959 00:47:55,810 --> 00:47:58,030 Så det vil virkelig være en toveis samtale, 960 00:47:58,030 --> 00:48:00,840 en mulighet til å vurdere eget arbeid i en mye mer 961 00:48:00,840 --> 00:48:04,080 dynamisk forstand, snarere enn bare å se på en PDF-fil eller en 962 00:48:04,080 --> 00:48:06,920 utskriften og tenke på det i noen sekunder, og ikke 963 00:48:06,920 --> 00:48:08,920 nødvendigvis absorberende tilbakemelding om at undervisningen 964 00:48:08,920 --> 00:48:10,150 ansatte har gitt. 965 00:48:10,150 --> 00:48:12,540 Og du vil bruke et verktøy her kalt CS50 Spaces. 966 00:48:12,540 --> 00:48:15,670 For de som ikke kjenner, er dette språket kjent som C øverst 967 00:48:15,670 --> 00:48:17,500 venstre, og du får vite dette over tid. 968 00:48:17,500 --> 00:48:19,640 Men dette er en web-basert verktøy som vi skal bruke i 969 00:48:19,640 --> 00:48:22,310 del som vil gi deg og din 15 eller så klassekamerater 970 00:48:22,310 --> 00:48:24,100 logge inn med din undervisning stipendiat ved 971 00:48:24,100 --> 00:48:24,980 forsiden av rommet. 972 00:48:24,980 --> 00:48:26,750 Du vil være i stand til å skrive kode i dette vinduet. 973 00:48:26,750 --> 00:48:28,720 Du vil være i stand til å chatte elektronisk, hvis du ikke 974 00:48:28,720 --> 00:48:30,930 faktisk på seksjonen på det aktuelle øyeblikket. 975 00:48:30,930 --> 00:48:33,940 Og undervisning kar, når det gjelder tid til å diskutere 976 00:48:33,940 --> 00:48:38,645 Alice eller Bob løsning i klassen, undervisning fellow kan 977 00:48:38,645 --> 00:48:41,380 Klikk på en knapp og voila, prosjekt på skjermen, 978 00:48:41,380 --> 00:48:44,250 hva som studenten har jobbet med i det aktuelle 979 00:48:44,250 --> 00:48:44,990 tidspunkt. 980 00:48:44,990 --> 00:48:47,130 Så for de av dere som har venner som har tatt CS50 i 981 00:48:47,130 --> 00:48:49,750 Tidligere innse at deler har vært vesentlig 982 00:48:49,750 --> 00:48:52,600 restartet i år for å være enda mer aktive, desto mer 983 00:48:52,600 --> 00:48:55,960 dynamisk, og virkelig en toveis samtale mellom undervisning 984 00:48:55,960 --> 00:48:58,190 ansatte og studenter. 985 00:48:58,190 --> 00:48:59,020 >> Og gjennomgang. 986 00:48:59,020 --> 00:49:01,560 Så for disse problemområdene setter vi også tilby ikke bare 987 00:49:01,560 --> 00:49:04,210 spesifikasjon selv, som er generelt en ganske detaljert 988 00:49:04,210 --> 00:49:07,380 PDF, men også ting som kalles walkthroughs der man 989 00:49:07,380 --> 00:49:11,000 medlem av undervisningspersonalet vil føre en ukentlig økt 990 00:49:11,000 --> 00:49:13,210 som går bokstavelig talt deg gjennom oppgavesettet, noe som gir 991 00:49:13,210 --> 00:49:15,720 deg hint og råd og utgangspunkt og er ment 992 00:49:15,720 --> 00:49:17,250 å spørre veldig ofte spurt 993 00:49:17,250 --> 00:49:19,360 spørsmålet, hvor skal jeg begynne? 994 00:49:19,360 --> 00:49:21,990 Vel, begynner du enten ved å dykke ned i spec på sin 995 00:49:21,990 --> 00:49:25,100 egen eller ved å delta eller se på disse walkthroughs. 996 00:49:25,100 --> 00:49:27,420 Den første gjennomgang, faktisk, blir dette fredag. 997 00:49:27,420 --> 00:49:29,520 De vil være på fredager, ikke så mye fordi vi tror det vil være 998 00:49:29,520 --> 00:49:32,160 en populær tid, men fordi vi da kan filme dem veldig tidlig 999 00:49:32,160 --> 00:49:34,380 i uken for å få dem på nettet av helgen, slik at du 1000 00:49:34,380 --> 00:49:37,670 har så mange dager som mulig å faktisk drive det 1001 00:49:37,670 --> 00:49:38,390 innhold i tillegg. 1002 00:49:38,390 --> 00:49:40,900 Men mer om det i foredraget denne fredagen. 1003 00:49:40,900 --> 00:49:43,620 >> Nå i form av bærekonstruksjonen, mest 1004 00:49:43,620 --> 00:49:46,430 betydelig statistikk er kanskje den 108 undervisning 1005 00:49:46,430 --> 00:49:47,950 stipendiater og kurs assistenter som dette 1006 00:49:47,950 --> 00:49:49,730 Kurset har i dag. 1007 00:49:49,730 --> 00:49:52,030 Hvis noen av dere som ikke har motstridende klasser ønsker 1008 00:49:52,030 --> 00:49:55,070 å bli med meg opp her på scenen, er det disse gutta som vil 1009 00:49:55,070 --> 00:49:57,990 slutt virkelig definere din erfaring i faget. 1010 00:50:06,750 --> 00:50:09,290 Jeg hadde mye undervisning stipendiater undervise meg klasser i 1011 00:50:09,290 --> 00:50:11,650 dagen, og jeg husker svært få av dem ærlig. 1012 00:50:11,650 --> 00:50:15,590 Men til dags dato, jeg husker blant de få, min CS50 TF 1013 00:50:15,590 --> 00:50:18,100 som virkelig hjalp meg å svare på spørsmål, som virkelig hjalp 1014 00:50:18,100 --> 00:50:20,690 meg når jeg slet, og var virkelig en partner i dette 1015 00:50:20,690 --> 00:50:23,630 opplevelsen av å lære et svært ny verden. 1016 00:50:23,630 --> 00:50:26,410 I en liten bit, vil alle disse gutta bli med deg utenfor for 1017 00:50:26,410 --> 00:50:29,010 kake, som er en tradisjon for CS50, i tverrskipet av 1018 00:50:29,010 --> 00:50:30,030 Memorial Hall. 1019 00:50:30,030 --> 00:50:32,320 >> Men la meg først til å introdusere deg til Nate 1020 00:50:32,320 --> 00:50:35,820 Hardison, igjen, Rob Bowden, og Tommy MacWilliam, dette 1021 00:50:35,820 --> 00:50:37,460 årets kurs leder. 1022 00:50:37,460 --> 00:50:39,250 Hvis dere vil bli med meg her i midten. 1023 00:50:45,250 --> 00:50:47,910 De har alle forberedt noen inspirerende bemerkninger. 1024 00:50:51,540 --> 00:50:52,550 >> TOMMY MACWILLIAM: jeg ikke forberede alt 1025 00:50:52,550 --> 00:50:53,665 inspirerende. 1026 00:50:53,665 --> 00:50:55,020 Men mitt 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 informatikk. 1029 00:50:57,325 --> 00:50:59,490 Jeg er virkelig glade for å være på hekken team og går 1030 00:50:59,490 --> 00:51:01,365 gjennom CS50 reise med deg. 1031 00:51:01,365 --> 00:51:04,010 Hva jeg elsker om CS50 er hvordan det egentlig lærer deg 1032 00:51:04,010 --> 00:51:06,040 å tenke på problemer på en ny måte. 1033 00:51:06,040 --> 00:51:08,570 Dette er virkelig en ferdighet som kommer til å bli uvurderlig uansett 1034 00:51:08,570 --> 00:51:09,950 hvilket felt du gå inn. 1035 00:51:09,950 --> 00:51:12,660 Og ikke bare det, men vi tilbyr mer gratis godteri enn noen 1036 00:51:12,660 --> 00:51:13,910 andre kurs på campus. 1037 00:51:20,088 --> 00:51:22,210 Ja, og så jeg ser virkelig frem til å se hva 1038 00:51:22,210 --> 00:51:23,560 alle bygger dette semesteret. 1039 00:51:23,560 --> 00:51:25,730 Og hvis noen har noen spørsmål nå eller hele 1040 00:51:25,730 --> 00:51:27,770 semesteret, definitivt gjerne nå ut til meg og 1041 00:51:27,770 --> 00:51:29,020 Jeg vil være glad for å hjelpe. 1042 00:51:31,450 --> 00:51:31,780 >> Rob Bowden: Hei. 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 riktig. 1046 00:51:39,760 --> 00:51:41,930 Vi er alle veldig glade for dette neste semester. 1047 00:51:41,930 --> 00:51:43,230 Vi håper du alle glade. 1048 00:51:47,710 --> 00:51:49,410 Jeg hadde ikke ventet det. 1049 00:51:49,410 --> 00:51:50,390 Ja. 1050 00:51:50,390 --> 00:51:52,200 Så vi legger så mye arbeid i å gjøre dette 1051 00:51:52,200 --> 00:51:53,370 semester virkelig flott. 1052 00:51:53,370 --> 00:51:55,960 Og så lenge du er villig til å sette i arbeid, er det 1053 00:51:55,960 --> 00:51:57,840 så mye du kan få ut av dette kurset. 1054 00:51:57,840 --> 00:52:00,130 Ah, vi - 1055 00:52:00,130 --> 00:52:01,380 ja. 1056 00:52:04,640 --> 00:52:08,300 Du kan få mye moro ut av dette kurset. 1057 00:52:08,300 --> 00:52:10,500 Vi ville ikke ha en stab på 108 hvis du ikke kunne få en mye 1058 00:52:10,500 --> 00:52:11,370 moro ut av det. 1059 00:52:11,370 --> 00:52:15,300 Så, bare prøve å bli involvert, og du vil ikke angre. 1060 00:52:23,190 --> 00:52:23,890 >> NATE Hardison: Hei, folkens. 1061 00:52:23,890 --> 00:52:24,800 Jeg er Nate. 1062 00:52:24,800 --> 00:52:27,570 Jeg er veileder for kurset. 1063 00:52:27,570 --> 00:52:29,060 Jeg er virkelig glad for å være her også. 1064 00:52:29,060 --> 00:52:30,960 Dette er mitt første år her. 1065 00:52:30,960 --> 00:52:34,210 Jeg håper dere alle ta dette kurset og nyte det så mye som 1066 00:52:34,210 --> 00:52:35,820 Jeg har hatt det så langt. 1067 00:52:35,820 --> 00:52:38,570 Og hvis du noen gang ønsker å lære å telle til 9 eller 10 i 1068 00:52:38,570 --> 00:52:41,730 binære, komme til å snakke til meg. 1069 00:52:41,730 --> 00:52:43,760 >> DAVID J. MALAN: Så på risikoen for å forlate disse gutta her på 1070 00:52:43,760 --> 00:52:46,980 iscenesette en litt klønete, la oss virvle gjennom bare noen av 1071 00:52:46,980 --> 00:52:49,370 de tingene som venter før vi utsette for kake. 1072 00:52:49,370 --> 00:52:50,580 Hva er det som ligger foran oss? 1073 00:52:50,580 --> 00:52:53,490 Vel, hvis vi tar en rask titt tilbake på i fjor, i problemet 1074 00:52:53,490 --> 00:52:56,010 angir 0, due dine forgjengere i en programmering 1075 00:52:56,010 --> 00:52:58,700 språk kalt Scratch, en grafisk programmeringsspråk 1076 00:52:58,700 --> 00:53:01,220 du skal bruke i de første dagene av kurset starter denne 1077 00:53:01,220 --> 00:53:04,390 Fredag ​​å lære noen begreper ukjente for noen av dere. 1078 00:53:04,390 --> 00:53:06,750 Men innser det vil være en avansert aspekt av dette for 1079 00:53:06,750 --> 00:53:08,950 de av dere med tidligere bakgrunn. 1080 00:53:08,950 --> 00:53:11,450 >> I fjorårets problem sett 2, due studenter inn i 1081 00:53:11,450 --> 00:53:14,780 verden av kryptografi, kunsten enciphering eller scrambling 1082 00:53:14,780 --> 00:53:17,770 informasjon, implementering programmer som krypterte data. 1083 00:53:17,770 --> 00:53:21,490 Og i hacker tillegg fjor gjorde elevene fortsette 1084 00:53:21,490 --> 00:53:24,570 å sprekke eller dekode passord i en typisk 1085 00:53:24,570 --> 00:53:28,090 datamaskinens xe passord fil ved å komme opp med algoritmer og 1086 00:53:28,090 --> 00:53:31,810 heuristikk for brute force finne ut hva noen er 1087 00:53:31,810 --> 00:53:33,640 passord på et datasystem var. 1088 00:53:33,640 --> 00:53:36,630 I fjor også, i oppgavesettet 3, gjorde elevene implikasjoner - i 1089 00:53:36,630 --> 00:53:37,680 Problemet sett 4 - gjorde elevene 1090 00:53:37,680 --> 00:53:39,280 gjennomføre spillet Sudoku. 1091 00:53:39,280 --> 00:53:42,250 Og i hacker tillegg det året gjorde elevene ikke 1092 00:53:42,250 --> 00:53:45,650 bare gjennomføre hvordan du spiller spillet, men faktisk en Solver 1093 00:53:45,650 --> 00:53:47,800 der datamaskinen kan gi deg, menneske, med 1094 00:53:47,800 --> 00:53:50,130 hint av raskere enn du har løse 1095 00:53:50,130 --> 00:53:51,420 det aktuelle problemet. 1096 00:53:51,420 --> 00:53:54,130 >> I oppgavesettet 5, gjorde vi dataanalyse, denne kunsten 1097 00:53:54,130 --> 00:53:57,020 utvinne informasjon som var et uhell eller svært 1098 00:53:57,020 --> 00:53:59,320 bevisst slettet fra en datamaskin. 1099 00:53:59,320 --> 00:54:02,100 I fjor ruslet det pedagogiske personalet og jeg rundt campus 1100 00:54:02,100 --> 00:54:04,990 ta bilder av mennesker, steder og ting, og deretter 1101 00:54:04,990 --> 00:54:07,830 uhell formatert mediekortet på våre kamera som 1102 00:54:07,830 --> 00:54:08,900 hadde alle disse bildene. 1103 00:54:08,900 --> 00:54:09,650 Men ikke noe problem. 1104 00:54:09,650 --> 00:54:13,780 Vi har gjort en rettsmedisinsk bilde av dette mediekort, ga den ut 1105 00:54:13,780 --> 00:54:16,320 til alle elevene i klassen, og utfordret dem til å skrive 1106 00:54:16,320 --> 00:54:20,110 programmer som utvinnes alle JPEG fra dette kortet. 1107 00:54:20,110 --> 00:54:22,010 Og dette er faktisk en av våre favoritt oppgavesett. 1108 00:54:22,010 --> 00:54:24,680 >> Og jeg gravde opp i en e-post fra en av dine forgjengere, 1109 00:54:24,680 --> 00:54:27,270 som var mye moro å lese en gang siden. 1110 00:54:27,270 --> 00:54:30,240 Han skrev - dette er fra Matt - kjære David, går min 1111 00:54:30,240 --> 00:54:33,710 søster tilfeldigvis formatert henne kameraet SD-kort og tapte 1112 00:54:33,710 --> 00:54:35,630 et år igjen av minneverdige bilder. 1113 00:54:35,630 --> 00:54:38,710 Hun er dessverre ikke best på å sikkerhetskopiere sine data. 1114 00:54:38,710 --> 00:54:41,230 Men denne situasjonen minnet meg pset 5, så jeg tenkte jeg 1115 00:54:41,230 --> 00:54:44,260 ville prøve å kjøre henne SD-kort gjennom recover program 1116 00:54:44,260 --> 00:54:46,310 at jeg skrev hele veien tilbake i oktober. 1117 00:54:46,310 --> 00:54:48,550 Så etter fire timer med å finne ut hvordan du oppretter en 1118 00:54:48,550 --> 00:54:51,210 rå bilde fra formatert SD-kort - 1119 00:54:51,210 --> 00:54:53,370 Google viste seg å være ganske unhelpful i denne forbindelse til 1120 00:54:53,370 --> 00:54:55,480 ironisk jeg tilfeldigvis kommer over dine instruksjoner om 1121 00:54:55,480 --> 00:54:58,070 Internett - 1122 00:54:58,070 --> 00:55:00,490 etter fiksing og triksing rundt med noen av kommando argumenter, 1123 00:55:00,490 --> 00:55:02,320 Jeg klarte å lage den rettsmedisinske bildet. 1124 00:55:02,320 --> 00:55:04,490 Og etter installasjon og konfigurering av CS50 1125 00:55:04,490 --> 00:55:07,520 Appliance, klarte jeg å kjøre den rettsmedisinske bildet gjennom min 1126 00:55:07,520 --> 00:55:13,110 programmere og gjenopprette alle 1027 av min søster fotografier. 1127 00:55:13,110 --> 00:55:14,340 Høyre, Matt. 1128 00:55:14,340 --> 00:55:15,165 >> Så i siste year's - 1129 00:55:15,165 --> 00:55:23,080 [Applaus] 1130 00:55:23,080 --> 00:55:25,680 I fjorårets oppgavesettet 6, ga vi elevene en 1131 00:55:25,680 --> 00:55:29,910 ordbok på 150.000 engelske ord og utfordret dem til å 1132 00:55:29,910 --> 00:55:32,570 skrive en stavekontroll som svarte spørringer på formen 1133 00:55:32,570 --> 00:55:33,930 er dette ordet stavet riktig eller 1134 00:55:33,930 --> 00:55:35,705 feilaktig så fort som mulig. 1135 00:55:35,705 --> 00:55:38,470 Og i en opt-in basis var studenter lov til å så 1136 00:55:38,470 --> 00:55:41,290 utfordre klassekamerater ved å publisere sine resultater, 1137 00:55:41,290 --> 00:55:44,200 mengde RAM som de brukte, antall CPU-sykluser eller 1138 00:55:44,200 --> 00:55:46,910 sekunder som de brukte, slik at studentene ble deretter rangert 1139 00:55:46,910 --> 00:55:47,900 på kurset hjemmeside. 1140 00:55:47,900 --> 00:55:51,170 Nytt, rent valgfri del av det, men mye moro i det 1141 00:55:51,170 --> 00:55:54,540 svært ofte vil en student få å plassere nummer 10 eller så på 1142 00:55:54,540 --> 00:55:57,210 den store bord på nettstedet, kan du gå av til middag, og deretter 1143 00:55:57,210 --> 00:55:59,920 komme tilbake og innse sin romkamerat hadde nettopp falt i 1144 00:55:59,920 --> 00:56:03,270 foran ham eller henne på store bord, og dermed helle en annen 1145 00:56:03,270 --> 00:56:07,170 to eller tre timer bare til ett opp hans eller hennes romkamerat. 1146 00:56:07,170 --> 00:56:08,550 >> Så vi ser frem til noe lignende 1147 00:56:08,550 --> 00:56:09,580 i år også. 1148 00:56:09,580 --> 00:56:12,140 I problemet sett 7 vi styre i banens 1149 00:56:12,140 --> 00:56:14,840 programmering, faktisk løse problemer i den stadig 1150 00:56:14,840 --> 00:56:18,170 stadig vanligere miljøet til en nettleser. 1151 00:56:18,170 --> 00:56:20,900 Vet decreasingly laste vi programvare på Mac-er og 1152 00:56:20,900 --> 00:56:23,650 PCer, men i økende grad gjør vi alt innen web. 1153 00:56:23,650 --> 00:56:27,530 >> Og faktisk i fjor, noen 88% av studentenes endelige prosjekter i 1154 00:56:27,530 --> 00:56:29,660 kurset var web-basert. 1155 00:56:29,660 --> 00:56:32,020 Og de også er ferdigheter som du vil utlede fra dette 1156 00:56:32,020 --> 00:56:33,230 klasse ved kursets slutt. 1157 00:56:33,230 --> 00:56:36,090 Fordi hva som venter på kursets slutt er det CS50 Fair, 1158 00:56:36,090 --> 00:56:39,060 denne utstillingen som er basert på ideen om en science fair. 1159 00:56:39,060 --> 00:56:41,750 Men i denne versjonen av en rettferdig gjøre alle elevene i klassen 1160 00:56:41,750 --> 00:56:45,400 bringe sine bærbare datamaskiner og deres venner og familie og andre 1161 00:56:45,400 --> 00:56:48,310 til Nordvest Science, en stor bygning på campus, satt opp 1162 00:56:48,310 --> 00:56:51,030 sin laptop, få litt mat, få litt popcorn og drikke, 1163 00:56:51,030 --> 00:56:53,990 og deretter vise sine siste prosjekter for alle de i 1164 00:56:53,990 --> 00:56:57,210 frammøte som i fjor talte noen 2500 deltakere 1165 00:56:57,210 --> 00:56:58,320 fra hele campus. 1166 00:56:58,320 --> 00:57:02,100 Og uttrykk som dette og som dette var ikke 1167 00:57:02,100 --> 00:57:03,370 uvanlig på messen. 1168 00:57:03,370 --> 00:57:06,590 >> Frem til messen er den CS50 hackathon, en mulighet 1169 00:57:06,590 --> 00:57:09,350 å hoppe på en Harvard shuttle, hodet ned gaten til 1170 00:57:09,350 --> 00:57:12,700 Microsoft på 8:00, og ikke gå hjem før 07:00. 1171 00:57:12,700 --> 00:57:16,280 Vi serverer første middag på 8:00, andre middag på 1:00, 1172 00:57:16,280 --> 00:57:18,900 og for de som fortsatt står ved 05:00, behandler vi til 1173 00:57:18,900 --> 00:57:20,400 pannekaker på IHOP. 1174 00:57:20,400 --> 00:57:23,470 Og hackathon er en mulighet, som avbildet her, 1175 00:57:23,470 --> 00:57:25,930 å dykke inn i dine endelige prosjekter, enten du arbeider på 1176 00:57:25,930 --> 00:57:29,470 egen hånd eller med venner i et samarbeidsmiljø, 1177 00:57:29,470 --> 00:57:31,970 der hele lærerstaben fungerer godt i 1178 00:57:31,970 --> 00:57:35,430 natt med en rikelig tilførsel av Hong Kong kinesisk mat. 1179 00:57:35,430 --> 00:57:39,550 På 5:00 vil slike bilder som disse være ganske vanlig dette 1180 00:57:39,550 --> 00:57:40,940 år også. 1181 00:57:40,940 --> 00:57:44,390 >> Slik som vi utsette et øyeblikk for kake, husk at 1182 00:57:44,390 --> 00:57:48,500 76% av folket i dette rommet har ingen tidligere erfaring. 1183 00:57:48,500 --> 00:57:51,090 Og som per pensum, det som teller til slutt i dette 1184 00:57:51,090 --> 00:57:53,740 Kurset er ikke så mye hvor du ender opp i forhold til din 1185 00:57:53,740 --> 00:57:57,400 klassekamerater, men hvor du i uke 11 ende opp i forhold til 1186 00:57:57,400 --> 00:57:59,400 selv i uke 0. 1187 00:57:59,400 --> 00:58:01,850 Dette er CS50.