1 00:00:00,000 --> 00:00:03,440 >> [Muziciranja] 2 00:00:03,440 --> 00:01:57,217 3 00:01:57,217 --> 00:02:00,710 >> [Pljesak] 4 00:02:00,710 --> 00:02:05,700 5 00:02:05,700 --> 00:02:09,669 >> DAVID J. Malan: Ovo je CS50, Sveučilištu Harvard uvod 6 00:02:09,669 --> 00:02:12,370 za intelektualno poduzeća informatike 7 00:02:12,370 --> 00:02:14,180 i umijeće programiranja. 8 00:02:14,180 --> 00:02:17,530 Sada, ako ste među onima koji svake godine se sjedi ovdje 9 00:02:17,530 --> 00:02:21,450 s malo živaca u vašem umu, kao što da ne mislite da pripadam ovdje, 10 00:02:21,450 --> 00:02:24,270 mislite da je većina tko sjedi oko vas 11 00:02:24,270 --> 00:02:27,730 zna daleko više od tebe, uistinu udobnije od vas na računalu 12 00:02:27,730 --> 00:02:30,430 znanost ili računala općenitije, shvatite 13 00:02:30,430 --> 00:02:36,140 da je 78% učenika koji su sada potrajati CS50 nemaju prethodnog iskustva. 14 00:02:36,140 --> 00:02:39,570 >> Doista, postoji 100 točaka postoji na zaslonu, od kojih je 78 15 00:02:39,570 --> 00:02:43,540 su svijetli zeleno, što ti znači, Ako ste među tom demografske, 16 00:02:43,540 --> 00:02:46,420 su u vrlo dobrom društvu ovdje na van. 17 00:02:46,420 --> 00:02:50,320 A ako ste umjesto među 22% CS50 studenata koji to uistinu 18 00:02:50,320 --> 00:02:53,920 imaju prethodno iskustvo, bilo u visoka škola ili neki drugi program, 19 00:02:53,920 --> 00:02:56,430 shvatite da vas, također, će biti izazvan u tijeku. 20 00:02:56,430 --> 00:02:59,930 >> Ne samo da imamo različite pjesme za studente manje ugodno i više 21 00:02:59,930 --> 00:03:03,789 ugodno podjednako u sekcijama, mi također su tzv hakerski izdanja 22 00:03:03,789 --> 00:03:06,080 većine problema postavlja da će izazov one studente 23 00:03:06,080 --> 00:03:09,650 s tim dodatnim iskustvom istražiti sličan materijal 24 00:03:09,650 --> 00:03:12,140 ali s više sofisticiran perspektive. 25 00:03:12,140 --> 00:03:13,900 >> No, ono što je informatika? 26 00:03:13,900 --> 00:03:17,750 Pa, na kraju krajeva, što će se obzira na to što ste istražiti ovo područje nije 27 00:03:17,750 --> 00:03:20,500 toliko toga gdje ćete završiti u odnosu na svoje kolege iz razreda, 28 00:03:20,500 --> 00:03:25,350 ali gdje ste sami završiti u 12 tjedna u odnosu na kojoj se početi ovdje 29 00:03:25,350 --> 00:03:26,720 U tjednu nula. 30 00:03:26,720 --> 00:03:31,850 Sada računalo science-- dobro, neka je nazvati ga znanost computation-- 31 00:03:31,850 --> 00:03:35,910 gdje računanja je zapravo samo fancy način govoreći, uzimanje nekih ulaz, 32 00:03:35,910 --> 00:03:39,460 proizvoditi neki izlaz, a Pritom pokretanjem algoritama, 33 00:03:39,460 --> 00:03:43,700 seta uputa za rješavanje neki problem na tim ulazima 34 00:03:43,700 --> 00:03:48,460 kako bi se proizvesti neki izlaz ili Rješenje u kojem ste zainteresirani. 35 00:03:48,460 --> 00:03:51,310 >> Tako smo nedavno imali Povod za putovanje izvan 36 00:03:51,310 --> 00:03:53,170 u Kaliforniju u susret s alumna. 37 00:03:53,170 --> 00:03:54,650 Njezino ime je Susan Wojcicki. 38 00:03:54,650 --> 00:03:57,190 A ona bih razgovarati da ste ovdje na videu 39 00:03:57,190 --> 00:04:01,690 da svjedoče koliko je primjenjivo čak i samo okus računala 40 00:04:01,690 --> 00:04:03,770 znanosti na Uvodni razini može biti. 41 00:04:03,770 --> 00:04:06,870 Čak i ako ne ide na potjeru računalnih znanosti kao polje, 42 00:04:06,870 --> 00:04:09,330 ili čak i inženjering, ili matičnih općenitije, 43 00:04:09,330 --> 00:04:12,360 vidjet ćete, u stvari, kako je određena Naravno, tako utjecalo na njezin život. 44 00:04:12,360 --> 00:04:16,630 A ona je samo samo ga je uzeo kad je bio viši ovdje na Harvard College. 45 00:04:16,630 --> 00:04:19,482 >> Ako smo mogli prigušiti svjetla za Susan. 46 00:04:19,482 --> 00:04:20,690 SUSAN Wójcicki: Zdravo, svijete. 47 00:04:20,690 --> 00:04:22,100 Ja sam Susan Wojcicki. 48 00:04:22,100 --> 00:04:24,110 Ja sam predsjednik Uprave YouTube. 49 00:04:24,110 --> 00:04:29,150 I ja sam uzeo CS50 kada sam bio viši na Harvardu 1990. 50 00:04:29,150 --> 00:04:31,220 Bio sam zapravo povijest i književnost veliki. 51 00:04:31,220 --> 00:04:36,760 >> I moj mlađi ljeta, Shvatio sam da je možda sam 52 00:04:36,760 --> 00:04:39,060 htjela naučiti nešto o računalima. 53 00:04:39,060 --> 00:04:40,930 I tako, sam se vratio. 54 00:04:40,930 --> 00:04:42,500 Uzeo sam CS50. 55 00:04:42,500 --> 00:04:46,940 Bilo je teško, ali to je bio Najviše nevjerojatna klasa sam uzeo. 56 00:04:46,940 --> 00:04:49,630 >> To je promijenilo kako sam razmišljati o svemu. 57 00:04:49,630 --> 00:04:55,810 I kad sam diplomirala na Harvardu 1990, otišao sam u Silicijskoj dolini. 58 00:04:55,810 --> 00:04:57,140 I ja sam dobio posao. 59 00:04:57,140 --> 00:05:00,150 I ja sam radio u tech otkad. 60 00:05:00,150 --> 00:05:02,650 DAVID J. Malan: Što sad Susan nije spomenuo u ovom videu, 61 00:05:02,650 --> 00:05:05,340 da je zapravo u njoj garaža da Google je sama 62 00:05:05,340 --> 00:05:07,420 osnovali Larry i Sergey. 63 00:05:07,420 --> 00:05:11,169 >> Sada smo i posegnuo za našim prijateljima na code.org, organizacije koja 64 00:05:11,169 --> 00:05:13,460 u proteklih godinu dana nije bilo uzimajući narod osobito 65 00:05:13,460 --> 00:05:16,520 uzbuđen o računalnoj znanosti i programiranje, posebno. 66 00:05:16,520 --> 00:05:20,590 Ali, to je vrijedno napomenuti da je programiranje Nije informatike po sebi. 67 00:05:20,590 --> 00:05:22,090 Računarstvo nije programiranje. 68 00:05:22,090 --> 00:05:24,560 Umjesto programiranje je samo tool-- s kojim sve vas 69 00:05:24,560 --> 00:05:27,510 će biti predobro poznato po semestru je end-- 70 00:05:27,510 --> 00:05:30,650 tako da možete primijeniti ne Samo budućim tečajevima u CS 71 00:05:30,650 --> 00:05:33,670 ali što god poljima odakle ideš, u humanističkim znanostima, 72 00:05:33,670 --> 00:05:36,090 društvene znanosti, prirodne znanosti, ili slično. 73 00:05:36,090 --> 00:05:39,740 >> Doista, dopustiti neke druge bivših i njihovi kolege 74 00:05:39,740 --> 00:05:43,400 govoriti o primjenjivosti polja koja čeka. 75 00:05:43,400 --> 00:05:52,340 76 00:05:52,340 --> 00:05:57,350 >> Bill Gates: Bio sam 13 kad sam Prvi je dobio pristup računalu. 77 00:05:57,350 --> 00:06:00,485 >> JACK Dorsey: Moji roditelji Kupio mi Macintosh 1984 78 00:06:00,485 --> 00:06:01,640 kad sam bio osam godina star. 79 00:06:01,640 --> 00:06:02,990 >> Mark Zuckerberg: Ja sam bio u šestom razredu. 80 00:06:02,990 --> 00:06:04,670 >> Zvučnik 1: Naučio sam da kod na faksu. 81 00:06:04,670 --> 00:06:09,080 >> RUCHI SANGHVI: prve godine, prvi semestar, Uvod u računalne znanosti. 82 00:06:09,080 --> 00:06:11,850 >> Bill Gates: Napisao sam program da je igrao Tic-Tac-nožni prst. 83 00:06:11,850 --> 00:06:14,100 >> DREW HOUSTON: Mislim da je to bio prilično skromnih početaka. 84 00:06:14,100 --> 00:06:16,370 Mislim da je prvi program Napisao sam pitao stvari poput, 85 00:06:16,370 --> 00:06:17,820 koja je tvoja najdraža boja? 86 00:06:17,820 --> 00:06:18,696 Ili koliko ti je godina? 87 00:06:18,696 --> 00:06:21,070 ELENA SILENOK: Prvi put sam saznao kako napraviti zeleni krug 88 00:06:21,070 --> 00:06:23,670 i Crveni trg se pojaviti na zaslonu. 89 00:06:23,670 --> 00:06:25,420 Gabe NEWELL: Prvi Vrijeme i zapravo je 90 00:06:25,420 --> 00:06:27,360 nešto smisliti i reći zdravo, svijete. 91 00:06:27,360 --> 00:06:29,710 I sam je napravio računalo učiniti. 92 00:06:29,710 --> 00:06:30,850 To je bio samo zapanjujuće. 93 00:06:30,850 --> 00:06:33,224 >> Mark Zuckerberg: Učenje kako na programu nije Krenuti 94 00:06:33,224 --> 00:06:35,450 kao žele naučiti sve informatike 95 00:06:35,450 --> 00:06:38,630 ili pokušavaju svladati to disciplina ili bilo što slično. 96 00:06:38,630 --> 00:06:41,591 To samo započela jer sam želio učiniti jednu jednostavnu stvar. 97 00:06:41,591 --> 00:06:44,340 Htjela sam napraviti nešto što Bilo je zabavno za mene i moje sestre. 98 00:06:44,340 --> 00:06:46,399 >> I sam je napisao ovaj mali program. 99 00:06:46,399 --> 00:06:48,440 I onda zapravo samo dodao malo na njega. 100 00:06:48,440 --> 00:06:49,930 I onda kad mi je trebalo naučiti nešto novo, 101 00:06:49,930 --> 00:06:52,210 Ga pogledao sam prema gore, bilo u Knjiga ili na internetu, 102 00:06:52,210 --> 00:06:53,240 a zatim je dodao malo na njega. 103 00:06:53,240 --> 00:06:56,300 >> DREW HOUSTON: To je stvarno ne razlikuje sviranje instrumenta ili nešto 104 00:06:56,300 --> 00:07:00,007 ili igrati sport. 105 00:07:00,007 --> 00:07:01,090 DAVID J. Malan: U redu. 106 00:07:01,090 --> 00:07:04,120 Tako nam neka sada zapravo zaroniti u malo dublje. 107 00:07:04,120 --> 00:07:07,430 Što su ti ulazi i izlazi da mi ovdje govorimo o? 108 00:07:07,430 --> 00:07:09,110 >> Pa kako o nečemu jednostavnom? 109 00:07:09,110 --> 00:07:12,120 Vi vjerojatno znate, čak i ako imate Ne poznavanje informatike 110 00:07:12,120 --> 00:07:16,570 god, da računala na neki način koristiti i razumije samo nula i jedinica. 111 00:07:16,570 --> 00:07:20,500 No, kako se to može eventualno biti s obzirom kako Mnogo je današnja stolna i prijenosna računala podjednako 112 00:07:20,500 --> 00:07:21,280 mogu učiniti? 113 00:07:21,280 --> 00:07:24,310 >> DNK dana, samo Abeceda da oni razumiju 114 00:07:24,310 --> 00:07:26,410 je nula ili jedan. 115 00:07:26,410 --> 00:07:27,470 Pa, razmislite o ovom. 116 00:07:27,470 --> 00:07:30,840 Mi, ljudi, imaju tendenciju da koriste decimalni sustav. "Prosinca", što znači 10. 117 00:07:30,840 --> 00:07:33,970 I to je 10, jer imamo 10 znamenaka, 0 do devet. 118 00:07:33,970 --> 00:07:36,180 >> Sada računala, s druge strane, imaju tendenciju da koriste binarni. 119 00:07:36,180 --> 00:07:37,270 "Bi", što znači dva. 120 00:07:37,270 --> 00:07:39,560 Dakle, oni imaju tendenciju da se koristiti samo nula i jedan. 121 00:07:39,560 --> 00:07:42,680 No, ispostavilo se, da je čak i Upravo s nula i jedinica, odnosno 122 00:07:42,680 --> 00:07:45,900 je dovoljno velika abeceda s kojim se predstavljaju većinu 123 00:07:45,900 --> 00:07:48,490 bilo podatak želite, da li je broj, 124 00:07:48,490 --> 00:07:52,100 da li je to pismo, da li je grafički ili video na zaslonu. 125 00:07:52,100 --> 00:07:57,140 >> Razmotrite, na primjer, kako smo ljude obično tumače taj broj ovdje. 126 00:07:57,140 --> 00:08:00,010 Ovo je samo tri znamenki, jedan, dva, tri. 127 00:08:00,010 --> 00:08:04,570 Ali mi znamo taj broj urođeno sada kao 123. 128 00:08:04,570 --> 00:08:05,510 Ali zašto je to tako? 129 00:08:05,510 --> 00:08:07,570 >> Pa, ako mislite vratiti da možda osnovnoj školi, 130 00:08:07,570 --> 00:08:11,700 si vjerojatno naučio razmišljati o ti brojevi kao da su u kolonama, 131 00:08:11,700 --> 00:08:14,700 gdje je netko u stotinama mjesto, dva je na desetke mjesta, 132 00:08:14,700 --> 00:08:16,360 a tri je onih mjestu. 133 00:08:16,360 --> 00:08:17,790 Zašto je to zapravo korisni? 134 00:08:17,790 --> 00:08:19,665 Pa, razmislite o super jednostavna aritmetika 135 00:08:19,665 --> 00:08:22,219 da smo svi bili radi već godinama. 136 00:08:22,219 --> 00:08:24,510 Efektivno, ako imaš jedan u stotinama mjestu, 137 00:08:24,510 --> 00:08:29,610 što učiniti brzo matematiku 100 puta 1 plus 10 puta 2-- 138 00:08:29,610 --> 00:08:33,059 jer dva je u nekoliko desetaka mjesto-- plus 1 puta 3-- 139 00:08:33,059 --> 00:08:34,830 jer je u tri onih mjestu. 140 00:08:34,830 --> 00:08:37,039 Dakle, naravno, ako smo zapravo množite ovo, 141 00:08:37,039 --> 00:08:39,600 ono što mi predstavlja s ovim pattern-- jednom 142 00:08:39,600 --> 00:08:46,150 dva three-- je 100 plus 20 plus 3, koji je, naravno, 123. 143 00:08:46,150 --> 00:08:51,130 >> Sada binarno, i računala zapravo, temeljno govore istim jezikom 144 00:08:51,130 --> 00:08:51,680 što nam je činiti. 145 00:08:51,680 --> 00:08:53,400 Oni samo imaju manji abecedu. 146 00:08:53,400 --> 00:08:57,100 Tako računala samo nula i one na raspolaganju. 147 00:08:57,100 --> 00:09:02,500 Dakle, dok mi ljudi imaju bitno Ovlasti 10 u svakoj od tih places-- 148 00:09:02,500 --> 00:09:06,810 10 do 10 za nulu, jedan, deset do dva, dajući vam 110 i 100 149 00:09:06,810 --> 00:09:07,700 respektivno. 150 00:09:07,700 --> 00:09:12,140 >> Jer samo računala imaju dvije vrijednosti oni mogu razumjeti, nula i jedan, 151 00:09:12,140 --> 00:09:16,600 oni moraju koristiti različite vrijednosti u ovim stupcima, jedan, dva, četiri. 152 00:09:16,600 --> 00:09:20,480 A ako mi čuva ide, osam, 16, 32, 64, i tako dalje. 153 00:09:20,480 --> 00:09:24,220 No, uzorak i mentalitet je isti. 154 00:09:24,220 --> 00:09:27,340 >> Dakle, po toj logici, tko, kako bi Idem oko predstavlja broj 155 00:09:27,340 --> 00:09:28,530 jedan u binarnom? 156 00:09:28,530 --> 00:09:33,080 Ako ste nikada nije ni razmišljao o tome to prije, što se vaše crijevo reći? 157 00:09:33,080 --> 00:09:33,777 >> PUBLIKA: Jedan. 158 00:09:33,777 --> 00:09:34,610 DAVID J. Malan: Jedan. 159 00:09:34,610 --> 00:09:35,660 Točno. 160 00:09:35,660 --> 00:09:38,100 Potrebna je samo jedan u Ones mjesto, jer je nula 161 00:09:38,100 --> 00:09:40,610 dovoljan da nam se dati ni četiri niti dva. 162 00:09:40,610 --> 00:09:42,440 Dakle, jedan puta jedan jednako jedan. 163 00:09:42,440 --> 00:09:43,940 Sada se stvari malo zanimljiva. 164 00:09:43,940 --> 00:09:46,830 Ako želim predstavljati u Binary broj two--, ali, 165 00:09:46,830 --> 00:09:49,790 opet, čak i ako ste nikada govori taj jezik i prije, 166 00:09:49,790 --> 00:09:54,680 kako ćemo predstavljati u binarnom vrijednosti koju ljudi znaju kao dva? 167 00:09:54,680 --> 00:09:55,570 Nula jedan nula. 168 00:09:55,570 --> 00:09:57,620 Samo stavite jedan u Kolona da ga želite. 169 00:09:57,620 --> 00:09:59,560 >> Sada postaje prilično lako vjerojatno sada. 170 00:09:59,560 --> 00:10:02,950 Dakle, ako želim predstavljati three-- Nema tri stup. 171 00:10:02,950 --> 00:10:06,770 Dakle, opet, ja mogu sada dodati ove vrijednosti zajedno stavljanjem jedan ovdje. 172 00:10:06,770 --> 00:10:10,320 Dakle 2 puta 1 plus 1 1 puta je, naravno, 3. 173 00:10:10,320 --> 00:10:13,480 >> Sada se stvari malo zabave u da su one sada postaju nule. 174 00:10:13,480 --> 00:10:15,480 I da predstavljaju četiri, ja ovo. 175 00:10:15,480 --> 00:10:19,310 A ako mi se polako povećavati ovdje-- da će biti pet. 176 00:10:19,310 --> 00:10:20,700 To će biti šest. 177 00:10:20,700 --> 00:10:22,100 To će biti sedam. 178 00:10:22,100 --> 00:10:25,310 >> Ali sada sam čini se da su naiđete na problem. 179 00:10:25,310 --> 00:10:30,520 Kako bih mogao ići oko zastupanje eight-- će biti sljedeći vrijednost. 180 00:10:30,520 --> 00:10:31,900 Da, tako da nam je potrebna nova bitova. 181 00:10:31,900 --> 00:10:33,899 I, doista, ako ste čuli ovu rečenicu prije, 182 00:10:33,899 --> 00:10:37,380 bita, to je samo kratko za binarna znamenka, nula ili jedan. 183 00:10:37,380 --> 00:10:41,520 >> I tako sam se dogoditi da se predstavlja samo tri takva bita ovdje. 184 00:10:41,520 --> 00:10:44,900 Ali, ako sam imao način pohranjivanja ne tri različite bita, ali četiri, 185 00:10:44,900 --> 00:10:47,250 Ja sigurno mogu predstavljati osam, a zatim devet, a potom 186 00:10:47,250 --> 00:10:49,400 10, pa čak i veći i veći. 187 00:10:49,400 --> 00:10:52,140 >> Ali to onda zove u pitanje kako možemo 188 00:10:52,140 --> 00:10:54,540 ići oko njih predstavlja stvari na prvom mjestu. 189 00:10:54,540 --> 00:10:56,950 To je jedna stvar za crtanje ih ovdje na slajdu, 190 00:10:56,950 --> 00:11:00,660 ali kako ćete ih predstavljaju ako si mehanički uređaj? 191 00:11:00,660 --> 00:11:04,390 Što je računalo radi na predstavlja ulaza i izlaza koji 192 00:11:04,390 --> 00:11:09,020 fundamentalno definirati računanje Na kraju krajeva? 193 00:11:09,020 --> 00:11:12,090 >> Pa, što o nečemu super jednostavna ovako? 194 00:11:12,090 --> 00:11:13,200 To je samo žarulja. 195 00:11:13,200 --> 00:11:15,460 I ja mogu biti okidač žarulja ići na 196 00:11:15,460 --> 00:11:17,920 okretanjem neke struje na i omogućuju elektroni 197 00:11:17,920 --> 00:11:22,585 teći kroz koji mijenja svoj država ili njezina vrijednost, da se tako izrazim. 198 00:11:22,585 --> 00:11:24,460 Na primjer, to stara škola stolna svjetiljka 199 00:11:24,460 --> 00:11:27,250 ovdje jedan takav žarulja unutar nje. 200 00:11:27,250 --> 00:11:29,940 I sada to nije stvarno rade ništa korisno. 201 00:11:29,940 --> 00:11:32,680 No, čim sam ga priključite u električnu utičnicu 202 00:11:32,680 --> 00:11:36,390 a zatim koristite ovu switch-- ili možemo čak nazvati ga tranzistor 203 00:11:36,390 --> 00:11:39,970 ili mislite o njemu kao such-- Ja sada mogu predstavljati bilo 204 00:11:39,970 --> 00:11:44,120 Ova vrijednost, gdje je žarulja je Očito off, ili ta vrijednost. 205 00:11:44,120 --> 00:11:46,060 Ova vrijednost ili ta vrijednost. 206 00:11:46,060 --> 00:11:47,520 Ova vrijednost i tako dalje. 207 00:11:47,520 --> 00:11:51,220 >> Dakle, unutar računala, vjerojatno, puno su manji komadi hardvera, 208 00:11:51,220 --> 00:11:52,970 a da na kraju dana jednostavno imati 209 00:11:52,970 --> 00:11:55,360 koristiti electricity-- Možda it-- snimiti 210 00:11:55,360 --> 00:11:59,730 a zatim ih zadržati nešto ili bi nešto off. 211 00:11:59,730 --> 00:12:02,021 Naravno, to nije Posebno je zanimljivo to učiniti 212 00:12:02,021 --> 00:12:03,270 sa samo jednim žarulja. 213 00:12:03,270 --> 00:12:06,726 >> Zapravo, koliko visoko mogu računati u binarni s ovim stolnu lampu ovdje? 214 00:12:06,726 --> 00:12:07,420 >> PUBLIKA: Jedan. 215 00:12:07,420 --> 00:12:08,545 >> DAVID J. Malan: Jedan, zar ne? 216 00:12:08,545 --> 00:12:11,020 Trebam još stolnih svjetiljki, ako sam zapravo žele brojati više. 217 00:12:11,020 --> 00:12:12,210 Ali možemo napraviti bolje od toga. 218 00:12:12,210 --> 00:12:14,460 Budući da su žarulje koje smo stavili u tim stvarima 219 00:12:14,460 --> 00:12:17,730 su zapravo ljubitelj žarulje nego prošla godina bi omogućilo. 220 00:12:17,730 --> 00:12:20,310 I oni su zapravo umreženih žarulje. 221 00:12:20,310 --> 00:12:23,160 A trsovi tvrtki napraviti ove stvari ovih dana. 222 00:12:23,160 --> 00:12:25,190 >> No, ispada da ovo posebno 223 00:12:25,190 --> 00:12:27,680 dolazi s značajka pri čemu možete promijeniti svoje boje. 224 00:12:27,680 --> 00:12:30,810 Tako, primjerice, ako krase svoj spavaonica 225 00:12:30,810 --> 00:12:33,200 s nekoliko tih svjetlosti žarulje, ovisno o raspoloženju, 226 00:12:33,200 --> 00:12:35,366 ovisno o tome tko dolazi u, ovisno o vremenskim uvjetima, 227 00:12:35,366 --> 00:12:37,360 ovisno o vremenu dana, možete zapravo 228 00:12:37,360 --> 00:12:40,300 promjenu boje lukovice u svoju sobu. 229 00:12:40,300 --> 00:12:43,740 A to je zato što ta svjetla žarulje i drugi poput njega imaju ono što je 230 00:12:43,740 --> 00:12:48,010 pozvao API, primjena sučelje za programiranje, koji 231 00:12:48,010 --> 00:12:50,920 je tema s kojom ćete biti dobro poznaje do kraja semestra je. 232 00:12:50,920 --> 00:12:53,710 >> A to je samo fantazija, zagonetan način govoreći, 233 00:12:53,710 --> 00:12:57,570 možete programirati ove svjetlo Žarulje učiniti vaš ponudu. 234 00:12:57,570 --> 00:13:00,360 Možete im poslati poruke baš kao i vi, ljudi, 235 00:13:00,360 --> 00:13:03,640 Možete poslati poruku na web poslužitelju govoreći, daj mi današnje vijesti 236 00:13:03,640 --> 00:13:05,110 ili mi dati svoj e-mail. 237 00:13:05,110 --> 00:13:08,010 >> Možete poslati više kompliciranih Poruke na ta žarulja 238 00:13:08,010 --> 00:13:09,700 Naime, uključivanje i isključivanje. 239 00:13:09,700 --> 00:13:11,370 No, to nije sve što je zanimljivo. 240 00:13:11,370 --> 00:13:14,280 Možete reći, uključite crvena, uključite zeleni, uključite plava, 241 00:13:14,280 --> 00:13:15,990 sve s istim žarulje. 242 00:13:15,990 --> 00:13:20,990 A možete i, s malo više pamet, kažu, uključite se u plavu 243 00:13:20,990 --> 00:13:24,710 kad je tmurno dan izvana, na primjer. 244 00:13:24,710 --> 00:13:27,910 To zapravo može zakrpati u Vrijeme API i saznajte 245 00:13:27,910 --> 00:13:32,260 ono vrijeme, ili vrijeme dana, ili druge takve okidače. 246 00:13:32,260 --> 00:13:35,550 >> Dakle, u stvari, dva Vlastitih djelatnika CS50-a, 247 00:13:35,550 --> 00:13:38,827 Dan Bradley i Ansel Duff je ovdje, ljubazno nabavljati 248 00:13:38,827 --> 00:13:40,410 nas cijela hrpa tih žarulja. 249 00:13:40,410 --> 00:13:42,910 I oni su izgradili CS50-a Prva ikada binarni žarulje, 250 00:13:42,910 --> 00:13:46,850 gdje smo zastupljeni ovdje-- s tim razigranim malo magnets-- 251 00:13:46,850 --> 00:13:49,780 razni rezerviranih mi aludirala samo malo prije. 252 00:13:49,780 --> 00:13:52,572 >> Dakle način ovdje je Ones mjesto, dva, četiri. 253 00:13:52,572 --> 00:13:54,030 I nismo vidjeli više od toga. 254 00:13:54,030 --> 00:13:55,613 Ali, naravno, oni su ovlasti dva. 255 00:13:55,613 --> 00:13:59,490 Osam, 16, 32, 64 i 128. 256 00:13:59,490 --> 00:14:03,320 Dakle, ako ja sada želim biti malo ljubitelj nego koristeći ovaj stari školski prekidač, 257 00:14:03,320 --> 00:14:07,310 Imam ovdje na ovom iPad Super jednostavno sučelje 258 00:14:07,310 --> 00:14:10,440 da je Dan Bradley, bivši Student a sada podučava kolega, 259 00:14:10,440 --> 00:14:13,510 programirana koristeći neki HTML i JavaScript, koja 260 00:14:13,510 --> 00:14:15,685 su označavanje i programiranje jezici respektivno. 261 00:14:15,685 --> 00:14:17,560 I vjerojatno možete vidjeti-- čak iu back-- 262 00:14:17,560 --> 00:14:21,670 Tu je veliki plus i veliki minus, plus jedan gumb za svaki od tih žarulja. 263 00:14:21,670 --> 00:14:25,740 A što je ovo će mi omogućiti da to je, primjerice, kliknite plus 264 00:14:25,740 --> 00:14:28,250 a sada predstavljaju, od Naravno, ono broj? 265 00:14:28,250 --> 00:14:28,750 Jedan. 266 00:14:28,750 --> 00:14:30,220 I ja mogu ga opet udariti. 267 00:14:30,220 --> 00:14:31,480 Dva. 268 00:14:31,480 --> 00:14:32,800 Tri. 269 00:14:32,800 --> 00:14:33,950 Četiri. 270 00:14:33,950 --> 00:14:35,200 Pet. 271 00:14:35,200 --> 00:14:36,360 Šest. 272 00:14:36,360 --> 00:14:36,880 Sedam. 273 00:14:36,880 --> 00:14:40,740 >> I evo sada smo dobili da rollover, ali imamo i četvrtu malo tog vremena, 274 00:14:40,740 --> 00:14:42,180 tako da sada imamo osam. 275 00:14:42,180 --> 00:14:44,000 Tako bismo mogli to učiniti za neko vrijeme. 276 00:14:44,000 --> 00:14:46,530 U stvari, kao što je na stranu, koliko visoko možemo računati? 277 00:14:46,530 --> 00:14:48,318 Svatko? 278 00:14:48,318 --> 00:14:49,270 >> PUBLIKA: 255. 279 00:14:49,270 --> 00:14:51,420 >> DAVID J. Malan: 255, zar ne? 280 00:14:51,420 --> 00:14:54,900 Ne brinite previše o matematici za sada, ali to je prilično pristojan broj. 281 00:14:54,900 --> 00:14:59,140 No, to zapravo ne veže samo koliko komada informacija, 282 00:14:59,140 --> 00:15:01,760 kao pismo, ili grafički da bismo mogli predstavljati. 283 00:15:01,760 --> 00:15:02,697 >> No, bez obzira na to za sada. 284 00:15:02,697 --> 00:15:04,530 Ja ću ići naprijed i pretvoriti ih sve off. 285 00:15:04,530 --> 00:15:09,670 I kad bih mogao, ja bih pitati za volonter, naš prvi volunteer-- 286 00:15:09,670 --> 00:15:11,342 Oh, hello-- na pozornici. 287 00:15:11,342 --> 00:15:14,050 Kvaka je da morate biti udobno se pojavljuju, kao što je vama jasno 288 00:15:14,050 --> 00:15:17,421 su pred svim svojim kolegama, , kao i na internetu. 289 00:15:17,421 --> 00:15:20,420 I neka mi izgleda malo izvan do- o tome kako ovdje u bijelu košulju? 290 00:15:20,420 --> 00:15:20,920 A ruku. 291 00:15:20,920 --> 00:15:22,071 Dođi gore. 292 00:15:22,071 --> 00:15:22,820 Koje je tvoje ime? 293 00:15:22,820 --> 00:15:23,760 >> PUBLIKA: Jackie. 294 00:15:23,760 --> 00:15:24,718 >> DAVID J. Malan: Jackie. 295 00:15:24,718 --> 00:15:25,820 Jackie, dođi gore. 296 00:15:25,820 --> 00:15:29,820 Dakle, ono što postoji i na taj iPad je gumb pod nazivom Game način. 297 00:15:29,820 --> 00:15:32,570 A to je Igrači Mod će me pustiti da se ulaz 298 00:15:32,570 --> 00:15:35,780 unaprijed određeni decimalni broj, brojevi su mi ljudi 299 00:15:35,780 --> 00:15:36,760 poznaju. 300 00:15:36,760 --> 00:15:39,820 A onda će biti izazvan Ovdje se koristiti gumbe 301 00:15:39,820 --> 00:15:42,140 na top-- jedan za svaki od tih bulbs-- 302 00:15:42,140 --> 00:15:45,050 zapravo shvatiti uzorak žarulja 303 00:15:45,050 --> 00:15:46,970 koji predstavlja broj u pitanju. 304 00:15:46,970 --> 00:15:47,790 >> I žao mi je, što se zoveš? 305 00:15:47,790 --> 00:15:48,250 >> PUBLIKA: Jackie. 306 00:15:48,250 --> 00:15:48,620 >> DAVID J. Malan: Jackie. 307 00:15:48,620 --> 00:15:48,920 U redu. 308 00:15:48,920 --> 00:15:49,740 Drago mi je da sam te upoznao. 309 00:15:49,740 --> 00:15:54,580 >> Pa neka mi ići naprijed i program u za svijet da vidi broj 15. 310 00:15:54,580 --> 00:15:56,360 Mi ćemo ga zadržati male isprva ovdje. 311 00:15:56,360 --> 00:15:58,240 I ja ću ići u modu igre. 312 00:15:58,240 --> 00:16:01,160 A ja ću navesti, daju nam broj 15. 313 00:16:01,160 --> 00:16:01,900 >> U redu. 314 00:16:01,900 --> 00:16:05,510 I sada sa svima watching-- ako Želite li možda stati na ovaj način, 315 00:16:05,510 --> 00:16:09,970 jer će se postroje up-- ići naprijed i prebacivanje osam gumbiće duž vrha 316 00:16:09,970 --> 00:16:12,530 pretvoriti žarulje na ili isključiti kao što vidite stane. 317 00:16:12,530 --> 00:16:13,530 >> PUBLIKA: U redu. 318 00:16:13,530 --> 00:16:17,720 >> DAVID J. Malan: I nema varanja skom plus 15 puta. 319 00:16:17,720 --> 00:16:19,275 Oh, mi ćemo to učiniti. 320 00:16:19,275 --> 00:16:20,069 >> PUBLIKA: Oh, čekaj. 321 00:16:20,069 --> 00:16:20,610 Tako mi je žao. 322 00:16:20,610 --> 00:16:22,660 >> DAVID J. Malan: Također možete uključiti žarulje za pojedine 323 00:16:22,660 --> 00:16:24,076 sa svakom od tih gumba na vrhu. 324 00:16:24,076 --> 00:16:24,844 PUBLIKA: Oh, u redu. 325 00:16:24,844 --> 00:16:27,429 Dakle, to bi bilo volimo-članovima 326 00:16:27,429 --> 00:16:28,220 DAVID J. Malan: U redu. 327 00:16:28,220 --> 00:16:29,100 Tako sada imamo osam. 328 00:16:29,100 --> 00:16:31,280 Tako ćemo pauzu za Publika je da se uključe ovdje. 329 00:16:31,280 --> 00:16:34,300 Koji broj je Jackie trenutno predstavlja? 330 00:16:34,300 --> 00:16:34,800 11. 331 00:16:34,800 --> 00:16:35,730 Tako smo stigli. 332 00:16:35,730 --> 00:16:38,360 333 00:16:38,360 --> 00:16:39,630 I izvrsno. 334 00:16:39,630 --> 00:16:41,487 Dakle, mi imamo prvi pobjednik. 335 00:16:41,487 --> 00:16:42,445 Čestitamo. 336 00:16:42,445 --> 00:16:48,200 >> I mislili smo da ćemo imati neki mitski poklonima. 337 00:16:48,200 --> 00:16:50,860 Ako želite biti jedan takav sobi u studentskom domu ovdje na kampusu, 338 00:16:50,860 --> 00:16:56,126 možete i sami imati konačni projekt sada koriste taj API, zahvaljujući Jackie. 339 00:16:56,126 --> 00:16:57,050 Dakle now-- 340 00:16:57,050 --> 00:16:58,902 >> [Pljesak] 341 00:16:58,902 --> 00:17:01,690 342 00:17:01,690 --> 00:17:04,839 >> --if smo mogli, još jedan kao oko toga. 343 00:17:04,839 --> 00:17:07,690 Oh, sada svatko želi neke žarulje. 344 00:17:07,690 --> 00:17:11,790 Za tzv hakerske izdanju, ćemo ga rampu A- Oh, 345 00:17:11,790 --> 00:17:12,770 Da, suzdržan. 346 00:17:12,770 --> 00:17:16,010 Mislim da ste došli do sada ako je tvoja ruka ide prema dolje. 347 00:17:16,010 --> 00:17:16,800 Koje je tvoje ime? 348 00:17:16,800 --> 00:17:17,424 >> PUBLIKA: Alex. 349 00:17:17,424 --> 00:17:19,440 DAVID J. Malan: Alex, dođi ovamo. 350 00:17:19,440 --> 00:17:26,190 Tako je za Alex, mi smo idući u Program u nešto većem broju. 351 00:17:26,190 --> 00:17:27,790 Možda bi. 352 00:17:27,790 --> 00:17:29,110 Broj 50. 353 00:17:29,110 --> 00:17:29,744 >> PUBLIKA: U redu. 354 00:17:29,744 --> 00:17:31,660 DAVID J. Malan: Ali, kao što je Ja said-- i možda 355 00:17:31,660 --> 00:17:33,580 Želite stajati ovdje, pa da su tipke postroje 356 00:17:33,580 --> 00:17:37,115 kao što bi expect--, ali jesam pozvati ovaj haker izdanje. 357 00:17:37,115 --> 00:17:47,125 So-- sretno! 358 00:17:47,125 --> 00:17:48,416 >> [Smijeh] 359 00:17:48,416 --> 00:17:58,570 360 00:17:58,570 --> 00:18:02,050 >> Vi ćete biti u mogućnosti da se ih se, ako ti-- redu. 361 00:18:02,050 --> 00:18:02,880 Izvrsno. 362 00:18:02,880 --> 00:18:03,675 Wonderful. 363 00:18:03,675 --> 00:18:04,341 Čestitamo. 364 00:18:04,341 --> 00:18:08,730 >> [Pljesak] 365 00:18:08,730 --> 00:18:10,355 Pretpostavljam da bih trebao platiti. 366 00:18:10,355 --> 00:18:11,830 Čestitke Alex kao dobro. 367 00:18:11,830 --> 00:18:12,330 U redu. 368 00:18:12,330 --> 00:18:15,550 >> Dakle, krajnji takeaway evo nadam se, iskreno, 369 00:18:15,550 --> 00:18:18,109 simplicity-- jednostavnost 370 00:18:18,109 --> 00:18:20,650 možete dobiti neke lijepe svjetlo žarulje, očito u [nečujan]. 371 00:18:20,650 --> 00:18:23,000 Ali oni predstavljaju, u konačnici, iste ideje 372 00:18:23,000 --> 00:18:26,310 s kojima mi ljudi su već sve previše upoznat. 373 00:18:26,310 --> 00:18:28,660 Dakle, što bi iduće korak se u progresiji 374 00:18:28,660 --> 00:18:30,920 pokušava nešto napraviti Zanimljivo s podacima 375 00:18:30,920 --> 00:18:34,950 i predstavlja ulaza koji su ne samo brojevi, ali su možda i slova ili više? 376 00:18:34,950 --> 00:18:37,820 >> Pa, ispada da računalni svijet, već dugi niz godina, 377 00:18:37,820 --> 00:18:43,300 jednostavno usvojili proizvoljna, ali dosljedni standard koji mapira brojeve 378 00:18:43,300 --> 00:18:44,610 do slova abecede. 379 00:18:44,610 --> 00:18:47,120 Na primjer, ovdje je izvadak iz tog mapiranja. 380 00:18:47,120 --> 00:18:48,350 To se zove ASCII. 381 00:18:48,350 --> 00:18:53,220 -S-C-I-I. I to je jednostavno Tablica koja preslikava veliko letters-- 382 00:18:53,220 --> 00:18:56,600 u ovom case-- u decimalne brojeve. 383 00:18:56,600 --> 00:18:57,890 >> No, ono što je dublji smisao? 384 00:18:57,890 --> 00:19:01,090 Pa, ako stvarno želiš da predstavlja nešto poput e-mail ili neki tekst 385 00:19:01,090 --> 00:19:03,310 na web stranici, očito žele pokazati 386 00:19:03,310 --> 00:19:06,100 ljudska pisma abeceda, a ne brojevi. 387 00:19:06,100 --> 00:19:09,140 Dakle, ovisno o kontekst programa 388 00:19:09,140 --> 00:19:12,600 da korisnik koristi, ako je to web preglednik ili e-mail klijent, 389 00:19:12,600 --> 00:19:16,090 Brojevi svakako može biti tumačiti kao slova. 390 00:19:16,090 --> 00:19:20,290 To će reći, obrasci bitova može lako može protumačiti kao slova. 391 00:19:20,290 --> 00:19:24,700 >> I tako ono što može imati je pismo biće 392 00:19:24,700 --> 00:19:28,410 predstavljeni kao 65, B koji se predstavljao kao 66. 393 00:19:28,410 --> 00:19:30,900 Dakle, ako imamo super Ukratko riječ, kao i bok, 394 00:19:30,900 --> 00:19:35,740 ono što računalo bi u konačnici dućan u decimale, ali stvarno u binarnom, 395 00:19:35,740 --> 00:19:40,070 koristite neki slijed bitova, utjecati malo električne energije na neki način, 396 00:19:40,070 --> 00:19:44,010 će biti dva broja 72 i 73. 397 00:19:44,010 --> 00:19:46,780 >> Ali uzorak bitova koji predstavlja one vrijednosti. 398 00:19:46,780 --> 00:19:49,820 Dakle, to su onda kako možemo zastupati naše ulaze i izlaze. 399 00:19:49,820 --> 00:19:52,630 A dovoljno je reći, možemo učiniti više složenih reprezentacije 400 00:19:52,630 --> 00:19:56,450 u konačnici sa stvarima kao što su grafika, video, glazba, i još mnogo toga 401 00:19:56,450 --> 00:19:58,190 kao što ćemo vidjeti kasnije ovaj pojam. 402 00:19:58,190 --> 00:20:00,630 >> Tako da samo ostavlja onda algoritmi, ove garniture 403 00:20:00,630 --> 00:20:03,490 uputa kojom mi smo rješavanje stvarnih problema. 404 00:20:03,490 --> 00:20:05,820 Mi smo se u prolazu ulaza na algoritmima. 405 00:20:05,820 --> 00:20:09,630 A ti algoritmi se proizvoditi izlaza, nadamo se ispraviti izlaza 406 00:20:09,630 --> 00:20:14,160 i nadamo se, također, učinkovito okupili izlaza. 407 00:20:14,160 --> 00:20:16,890 Drugim riječima, to je jedna stvar pravilno provesti nešto. 408 00:20:16,890 --> 00:20:20,790 To je još jedna stvar za provedbu nešto dobro ili učinkovito. 409 00:20:20,790 --> 00:20:23,690 >> Na primjer, jedan dokaz da smo draga u tijeku 410 00:20:23,690 --> 00:20:24,460 je ovo jedan. 411 00:20:24,460 --> 00:20:26,345 Ali te stvari su uzimajući sve teže pronaći. 412 00:20:26,345 --> 00:20:28,930 No, to je doista stara škola telefonski imenik, od kojih je unutar 413 00:20:28,930 --> 00:20:32,580 su 1.000 plus stranice Imena i telefonski brojevi. 414 00:20:32,580 --> 00:20:34,830 A ako sam htio pogledati netko u tom telefonskom imeniku, 415 00:20:34,830 --> 00:20:38,640 Jednostavno sam mogao učiniti vrlo naivno algoritam. 416 00:20:38,640 --> 00:20:42,150 Ja mogu otvoriti na prvu stranicu, a Mogao bih početi tražiti, recimo, netko 417 00:20:42,150 --> 00:20:43,130 po imenu Mike Smith. 418 00:20:43,130 --> 00:20:46,160 A ako on nije na prvi stranica, sam napredak na drugo, 419 00:20:46,160 --> 00:20:49,120 i onda se treći, a zatim na četvrtom mjestu, i tako dalje, 420 00:20:49,120 --> 00:20:51,430 dok sam konačno naći Mike Smith. 421 00:20:51,430 --> 00:20:53,010 >> Sada je to algoritam točno? 422 00:20:53,010 --> 00:20:53,896 >> PUBLIKA: Da. 423 00:20:53,896 --> 00:20:54,248 >> DAVID J. Malan: Da. 424 00:20:54,248 --> 00:20:56,039 Ako je on tamo, ja ću na kraju su ga pronašli. 425 00:20:56,039 --> 00:20:58,820 No, to je vjerojatno nije jako učinkovit, pogotovo ne brzo, 426 00:20:58,820 --> 00:21:01,200 jer, Bože moj, zašto sam ja gubim vrijeme pečenje 427 00:21:01,200 --> 00:21:04,500 kroz sve ove stranice, kada sam mogao svakako to učinite fizički brže? 428 00:21:04,500 --> 00:21:08,210 >> Pa, blagi optimizacije, tako da se govore, možda ne za jednu stranicu u isto vrijeme, 429 00:21:08,210 --> 00:21:11,610 ali dvije, četiri, šest, osam, 10. 430 00:21:11,610 --> 00:21:12,725 Još uvijek u pravu? 431 00:21:12,725 --> 00:21:14,030 >> PUBLIKA: Ne 432 00:21:14,030 --> 00:21:17,040 >> DAVID J. Malan: Pa ne, ako sam za instanca preskočiti Mike Smith. 433 00:21:17,040 --> 00:21:20,530 Ali tako dugo dok sam natrag papučicu jednu stranicu, ako sam ga preletjeti, 434 00:21:20,530 --> 00:21:25,240 Možda bismo mogli ispraviti ono što bi u protivnom biti Jesam. 435 00:21:25,240 --> 00:21:26,020 >> No, je li bolje? 436 00:21:26,020 --> 00:21:27,469 Je li to brže? 437 00:21:27,469 --> 00:21:28,010 Mislim, da. 438 00:21:28,010 --> 00:21:30,950 To je doslovno dva puta brže ako sam napraviti dvije stranice u isto vrijeme. 439 00:21:30,950 --> 00:21:35,720 Dakle, ako sam izvorno imao 1.000 stranica, Sada imam samo za okretanje 500 puta, 440 00:21:35,720 --> 00:21:39,429 nije u potpunosti 1.000 stranica da bi dobili potencijalno u najgorem slučaju 441 00:21:39,429 --> 00:21:41,220 na kraj telefona Knjiga, u kojoj je netko 442 00:21:41,220 --> 00:21:44,380 kao što je Mike Smith ili netko s kasnije ime zapravo moglo biti. 443 00:21:44,380 --> 00:21:46,540 >> No, naravno, mi ljudi sigurno nisu 444 00:21:46,540 --> 00:21:49,250 će se taj događaj, zasigurno Ne u ovom trenutku u našim životima. 445 00:21:49,250 --> 00:21:51,454 Što je razumno Ljudsko vjerojatno će učiniti? 446 00:21:51,454 --> 00:21:52,870 PUBLIKA: Idite ravno do the9 S-ih. 447 00:21:52,870 --> 00:21:53,860 DAVID J. Malan: Idi ravno sa S-ih? 448 00:21:53,860 --> 00:21:55,563 Kako mogu ići ravno na S-ih? 449 00:21:55,563 --> 00:21:57,342 >> PUBLIKA: Rip ga na pola. 450 00:21:57,342 --> 00:21:59,050 DAVID J. Malan: Pa, nema tragova. 451 00:21:59,050 --> 00:22:02,116 Dakle, da, ako je bilo uistinu naljepnice ili ljepljive karticu za S, 452 00:22:02,116 --> 00:22:03,240 smo trebali skočiti tamo. 453 00:22:03,240 --> 00:22:05,420 No, to je prilično bezazleno. 454 00:22:05,420 --> 00:22:08,480 Dakle, najbolje što možete učiniti je grubo na S dijelu ili možda grubo 455 00:22:08,480 --> 00:22:09,650 u sredini. 456 00:22:09,650 --> 00:22:12,110 No, ključna takeaway now-- i intuicija 457 00:22:12,110 --> 00:22:14,430 da ste uzeti za odobren godinama probably-- 458 00:22:14,430 --> 00:22:17,103 je li to ono što ti se sada znate o ovom problemu? 459 00:22:17,103 --> 00:22:19,320 >> PUBLIKA: [nečujan] 460 00:22:19,320 --> 00:22:22,290 >> DAVID J. Malan: Mike Smith je zasigurno ne lopte problema 461 00:22:22,290 --> 00:22:25,600 jer Smith dolazi nakon sredine što je otprilike području M 462 00:22:25,600 --> 00:22:26,510 čini se da je. 463 00:22:26,510 --> 00:22:30,340 Dakle, kao što ste mogli vidjeti na Visitas, možemo sada doslovno 464 00:22:30,340 --> 00:22:31,737 suza taj problem na pola. 465 00:22:31,737 --> 00:22:32,320 PUBLIKA: Woo! 466 00:22:32,320 --> 00:22:33,690 DAVID J. Malan: To je sve lakše i lakše. 467 00:22:33,690 --> 00:22:34,666 [Pljesak] 468 00:22:34,666 --> 00:22:36,618 Postoji li ići. 469 00:22:36,618 --> 00:22:39,060 [Smijeh] 470 00:22:39,060 --> 00:22:41,870 I sada iz temelja imaju isti problem, 471 00:22:41,870 --> 00:22:43,866 ali to je doslovno upola velika. 472 00:22:43,866 --> 00:22:45,240 Ja sam još uvijek u potrazi za Mike Smith. 473 00:22:45,240 --> 00:22:47,950 I usuđujem se reći, još uvijek mogu tražiti za njega na isti način, 474 00:22:47,950 --> 00:22:51,200 cijepanje problem u polovici opet, suzenje problem opet 475 00:22:51,200 --> 00:22:54,140 na pola, što me sada ostavlja s Problem četvrtina veličine, 476 00:22:54,140 --> 00:22:58,710 dramatično baciti da je polovica daleko, a ponovite postupak i opet 477 00:22:58,710 --> 00:23:01,150 i opet, gledajući prema dolje u svakom trenutku vidjeti 478 00:23:01,150 --> 00:23:03,400 ako je Mike Smith je na Stranica je u pitanju. 479 00:23:03,400 --> 00:23:06,190 >> Sada, ako ja to pravo, konačnici ću se naći 480 00:23:06,190 --> 00:23:11,085 sa samo jedne stranice na kojoj je Mike Smith je li on doista u telefonskom imeniku. 481 00:23:11,085 --> 00:23:13,510 Naravno, nisam mogao nikada više nazvati Mike. 482 00:23:13,510 --> 00:23:18,800 No, poanta je da ako smo počeli sa 1.000 stranica, moj prvi algoritam, 483 00:23:18,800 --> 00:23:21,620 okrenuti stranicu, možda i 1.000 times-- definitivno manje jer je 484 00:23:21,620 --> 00:23:26,430 Naziv S a ne ime Z, ali kao čak 1.000 stranica potencijalno. 485 00:23:26,430 --> 00:23:27,590 >> Drugi algoritam, to bolje. 486 00:23:27,590 --> 00:23:28,480 500 stranica. 487 00:23:28,480 --> 00:23:31,230 Treće algoritam, međutim, koliko koraka bilo bi 488 00:23:31,230 --> 00:23:35,520 se podijeliti na 1.000 stranica telefonski imenik na pola kao što je to? 489 00:23:35,520 --> 00:23:37,000 10, dati ili uzeti. 490 00:23:37,000 --> 00:23:40,770 Dakle, samo flipping kroz koje telefonski imenik, ronjenje i osvajati, 491 00:23:40,770 --> 00:23:46,130 da se tako izrazim, 10 puta, učinit ću moj put prema dolje na samo jedan stranici. 492 00:23:46,130 --> 00:23:48,880 >> I tako bismo mogli snimiti ovaj intuiciju sad malo grafički 493 00:23:48,880 --> 00:23:51,320 ako samo razmislite Ovaj super jednostavan graf. 494 00:23:51,320 --> 00:23:55,470 Mi smo na x-osi, ili vodoravna osi, je veličina mog problema, 495 00:23:55,470 --> 00:23:57,100 broj stranica u telefonskom imeniku. 496 00:23:57,100 --> 00:23:59,040 I računalni znanstvenici općenito vole zvati 497 00:23:59,040 --> 00:24:02,180 veličina problema n, gdje je n je samo neka varijabla koja 498 00:24:02,180 --> 00:24:04,310 represents-- u to case-- broj stranica. 499 00:24:04,310 --> 00:24:07,412 >> Vertikalni ili y-os, ovdje je će biti vremena za rješavanje, 500 00:24:07,412 --> 00:24:09,870 Možda broj stranica okreta, Možda broj sekundi 501 00:24:09,870 --> 00:24:11,960 ili minuta, bez obzira na Vaša jedinica mjere je. 502 00:24:11,960 --> 00:24:14,337 I tako je ova crvena linija predstavlja prvi algoritam, 503 00:24:14,337 --> 00:24:16,670 jer postoji jedna do jedan Odnos između broja 504 00:24:16,670 --> 00:24:18,880 stranica i količinu vremena koje je potrebno. 505 00:24:18,880 --> 00:24:22,240 >> Ako Verizon udvostručuje broj Članci u telefonskom imeniku iduće godine, 506 00:24:22,240 --> 00:24:24,590 moj hod put-- Vrijeme potrebno za izvršavanje 507 00:24:24,590 --> 00:24:27,610 da je prvi algorithm-- parovima u najgorem slučaju. 508 00:24:27,610 --> 00:24:30,690 No, drugi algoritam, gdje sam preklapanje po dva, 509 00:24:30,690 --> 00:24:33,650 zahtijeva manje vremena za Navedeni problem veličina. 510 00:24:33,650 --> 00:24:36,090 Dakle, ako sam to mnogi stranica su ovdje-- obavijest 511 00:24:36,090 --> 00:24:38,870 da žute crte predlaže manje vremena za rješavanje. 512 00:24:38,870 --> 00:24:42,490 I doista, ona predstavlja, ćemo reći, n više od dva. 513 00:24:42,490 --> 00:24:47,717 >> No, ono što je oblik treće i konačna krivulja će izgledati? 514 00:24:47,717 --> 00:24:50,800 Da, to je doista ide na look-- I Ne znam što si htio reći. 515 00:24:50,800 --> 00:24:52,300 No, da vidimo što što si htio reći. 516 00:24:52,300 --> 00:24:53,280 >> PUBLIKA: Kao da je. 517 00:24:53,280 --> 00:24:57,060 >> DAVID J. Malan: Bit će to izgledati to, logaritamska slope-- exactly-- 518 00:24:57,060 --> 00:24:59,770 pri čemu imate ovu neobičnu padinu. 519 00:24:59,770 --> 00:25:01,235 To više nije ravna crta. 520 00:25:01,235 --> 00:25:05,000 A što je uvjerljiv o tome da je iako graf sada je odsječen, 521 00:25:05,000 --> 00:25:07,790 možete ekstrapolirati u vašem umu da je zelena linija nije 522 00:25:07,790 --> 00:25:10,060 će se povećati u Visina sve što je puno 523 00:25:10,060 --> 00:25:13,500 kao što nastavite dalje dolje da horizontalnoj osi. 524 00:25:13,500 --> 00:25:15,890 >> Doista, Verizon, za instanca, mogla udvostručiti 525 00:25:15,890 --> 00:25:19,100 broj stranica u telefonu Knjiga između ove godine i iduće godine 526 00:25:19,100 --> 00:25:22,140 od 1.000 do 2000 stranicama, ali nije velika stvar. 527 00:25:22,140 --> 00:25:24,960 Uz ovo treći i posljednji, postoji intuitivno algoritam 528 00:25:24,960 --> 00:25:26,209 dijeljenja i osvajanje. 529 00:25:26,209 --> 00:25:29,000 To će me odvesti koliko još korake od iduće godine kako bi pronašli nekoga 530 00:25:29,000 --> 00:25:29,700 Like Mike Smith? 531 00:25:29,700 --> 00:25:30,560 >> PUBLIKA: Jedan. 532 00:25:30,560 --> 00:25:31,230 >> DAVID J. Malan: Postoji samo jedan. 533 00:25:31,230 --> 00:25:34,430 I oni mogu učetverostručiti, to je ide mi se samo još dva koraka 534 00:25:34,430 --> 00:25:35,210 i tako dalje. 535 00:25:35,210 --> 00:25:38,730 I tako je to dokaz koliko su neki oprezni dizajn 536 00:25:38,730 --> 00:25:42,437 a neki zahvalnost za ono što Vaši ulazi su mogu učiniti još boljim. 537 00:25:42,437 --> 00:25:44,270 Sada smo varanje malo u smislu 538 00:25:44,270 --> 00:25:46,350 da smo utjecati pretpostavku. 539 00:25:46,350 --> 00:25:48,500 Ono što je moja pretpostavka o našem telefonskom imeniku 540 00:25:48,500 --> 00:25:52,720 koji mi je dopustio da podijeli pa vladaj u ovom intuitivan i dalje ispravan način? 541 00:25:52,720 --> 00:25:53,705 >> PUBLIKA: [nečujan] 542 00:25:53,705 --> 00:25:54,580 DAVID J. Malan: Da. 543 00:25:54,580 --> 00:25:55,440 Dakle, to je naredio. 544 00:25:55,440 --> 00:25:57,392 To je po abecedi po telefonskog imenika tvrtke. 545 00:25:57,392 --> 00:26:00,100 Ako je to bilo u slučajnim redoslijedom, da će biti pakao od telefonskog imenika, 546 00:26:00,100 --> 00:26:02,850 ali to sigurno ne bi sama posuditi algoritmu 547 00:26:02,850 --> 00:26:05,950 Koristio sam, jer nikada ne bi samo dogoditi preko Mike Smith 548 00:26:05,950 --> 00:26:09,210 ako je zadržao podjelu u pola na taj način slučajno. 549 00:26:09,210 --> 00:26:12,060 >> Tako ćemo sada formalizirati ono što je jasno intuitivno. 550 00:26:12,060 --> 00:26:13,950 Dakle, nešto što se zove pseudocode je gdje ćemo 551 00:26:13,950 --> 00:26:15,780 početak neke od naših početnih problema. 552 00:26:15,780 --> 00:26:20,410 A to je generički način opisivanja Algoritam ili računalni program, 553 00:26:20,410 --> 00:26:24,150 Ne koristeći C ili C ++, ili Java, ili bilo koji specifičan jezik, 554 00:26:24,150 --> 00:26:27,430 ali samo pomoću engleski, s koji je bilo koje ljudsko bi moglo biti poznato. 555 00:26:27,430 --> 00:26:31,220 >> A mogli bismo napisati pseudocode za ovaj problem na sljedeći način. 556 00:26:31,220 --> 00:26:33,520 Korak jedan, pokupiti telefonski imenik. 557 00:26:33,520 --> 00:26:35,840 Korak dva, otvoren do sredine telefonskom imeniku. 558 00:26:35,840 --> 00:26:37,730 Treći korak, pogledate imena. 559 00:26:37,730 --> 00:26:40,630 Četvrti korak, ako Smith je među names-- 560 00:26:40,630 --> 00:26:42,960 >> I sada je to Zanimljivo konstrukt. 561 00:26:42,960 --> 00:26:44,290 To je točka odluke. 562 00:26:44,290 --> 00:26:47,920 To je raskrižje, ako vas će, grana, da se tako izrazim. 563 00:26:47,920 --> 00:26:50,810 Dakle, ja ću uvući samo po konvenciji step-- 564 00:26:50,810 --> 00:26:53,950 Ne five-- što je recimo, ja ću nazvati Mike. 565 00:26:53,950 --> 00:26:57,290 Dakle, to udubljenje, potpuno proizvoljna ljudska konvencija, ali je 566 00:26:57,290 --> 00:27:01,160 jednostavno značilo prenijeti semantički da, ako Smith je među imenima, 567 00:27:01,160 --> 00:27:03,310 onda sam trebao zvati Mike. 568 00:27:03,310 --> 00:27:06,630 >> U međuvremenu u koraku šest, najave da udubljenje je otišao. 569 00:27:06,630 --> 00:27:10,980 Dakle, ostalo je druga vilica u ceste, druga cesta bih mogao putovati. 570 00:27:10,980 --> 00:27:14,130 Dakle, još ako je Smith ranije u knjizi, što je 571 00:27:14,130 --> 00:27:16,964 Moj sljedeći korak vjerojatno će biti ovdje? 572 00:27:16,964 --> 00:27:18,380 PUBLIKA: Možete ići na lijevoj strani. 573 00:27:18,380 --> 00:27:21,004 DAVID J. Malan: Da, pa ići na lijeva polovica telefonskom imeniku. 574 00:27:21,004 --> 00:27:24,140 Bacite desnu polovicu ako Smith je ranije u knjizi. 575 00:27:24,140 --> 00:27:27,140 Dakle otvoren do sredine lijeva polovica knjige. 576 00:27:27,140 --> 00:27:30,240 >> A onda korak osam, ide da se postroje tri. 577 00:27:30,240 --> 00:27:34,520 A to je znatiželjan petlje sam izazivanje, rekurzija da se tako izrazim. 578 00:27:34,520 --> 00:27:35,990 No, više o tome u budućnosti. 579 00:27:35,990 --> 00:27:39,590 >> Ja sam koristeći moj isti algoritam, moj isto pseudocode, 580 00:27:39,590 --> 00:27:43,020 ponovno riješiti isti problem jer jedino što se promijenilo 581 00:27:43,020 --> 00:27:46,550 je veličina problema, ne moj cilj, a ne osoba 582 00:27:46,550 --> 00:27:47,340 Tražim. 583 00:27:47,340 --> 00:27:51,610 Dakle, ja mogu ponovno koristiti algoritam da sam već definirana. 584 00:27:51,610 --> 00:27:53,580 >> Inače, ako je Smith kasnije u book-- možda ćete 585 00:27:53,580 --> 00:27:56,200 guess-- otvoren do sredine desna polovica knjige. 586 00:27:56,200 --> 00:27:58,350 I opet, idite na liniji tri. 587 00:27:58,350 --> 00:28:01,480 Else-- što je konačna linija U ovom programu će biti? 588 00:28:01,480 --> 00:28:03,580 Ako on nije među imena na stranici Ja sam 589 00:28:03,580 --> 00:28:06,870 na, ako nije ranije u Knjiga, a on je najkasnije 590 00:28:06,870 --> 00:28:09,899 u knjizi, ono što ja znam je istina o Mike Smith je sada? 591 00:28:09,899 --> 00:28:11,190 PUBLIKA: Nije u knjizi. 592 00:28:11,190 --> 00:28:12,731 DAVID J. Malan: Nije u knjizi. 593 00:28:12,731 --> 00:28:16,040 Dakle, najbolje što možete učiniti je jednostavno odustati i zaustaviti ovaj program. 594 00:28:16,040 --> 00:28:16,540 U redu. 595 00:28:16,540 --> 00:28:20,350 Dakle, u ovom trenutku, uzmimo Brzi obilazak nekih od onoga što čeka. 596 00:28:20,350 --> 00:28:23,620 A u stvari, ja sam se pridružio ovdje brojnim CS50 osoblja. 597 00:28:23,620 --> 00:28:26,940 Ako ti ljudi mogli sve pridružite mi se ovdje na pozornici. 598 00:28:26,940 --> 00:28:28,900 >> [Pljesak] 599 00:28:28,900 --> 00:28:35,280 600 00:28:35,280 --> 00:28:38,170 >> Da se podsjetimo, to je samo podskup CS50 osoblja, 601 00:28:38,170 --> 00:28:42,380 jer svake godine imamo gotovo 100 zaposlenika Članovi u ulogama naravno asistenata, 602 00:28:42,380 --> 00:28:44,410 podučava novaka, i još mnogo toga. 603 00:28:44,410 --> 00:28:45,700 Dođi gore. 604 00:28:45,700 --> 00:28:48,820 Dakle, oni će nam se pridružiti ovdje nespretno samo na trenutak 605 00:28:48,820 --> 00:28:54,230 kao što smo dati kovitlac obilazak ono trebali očekivati ​​ovdje u tijeku. 606 00:28:54,230 --> 00:28:59,640 >> Dakle, prije svega, imamo SAT / UNS-a kao ocjenjivanja opciju u tijeku. 607 00:28:59,640 --> 00:29:03,180 To je značilo namjerno biti opcija kojom 608 00:29:03,180 --> 00:29:05,570 Ako ste malo nelagodno na što je u tijeku, 609 00:29:05,570 --> 00:29:09,390 a vi ne bojte se, čak i ako failure-- iskreno neuspjeh znači ranjavanje svoje GPA, 610 00:29:09,390 --> 00:29:13,180 uzimajući B, a ne A- koji je upravo ono što, svakako za pristupnika 611 00:29:13,180 --> 00:29:15,750 Naravno, kao i CS50 i drugi uvodni tečajevi, 612 00:29:15,750 --> 00:29:17,540 ovo ocjenjivanje opcija je značilo dopustiti. 613 00:29:17,540 --> 00:29:19,930 >> Iz sveg srca potaknuti students-- pogotovo 614 00:29:19,930 --> 00:29:23,090 Ako na fence-- za početak Naravno SAT / UNS-a, pa čak i dalje SAT / UNS-a. 615 00:29:23,090 --> 00:29:27,310 Ali sigurno možete prebaciti na slovo stupnja po peti u ponedjeljak u pojam. 616 00:29:27,310 --> 00:29:31,560 >> Iskreno, kad sam bio brucoš u 1995, 617 00:29:31,560 --> 00:29:34,630 Ja osobno nisam ni uzeti CS50 jer nisam mogao se živac 618 00:29:34,630 --> 00:29:36,540 zapravo korak noga u učionici. 619 00:29:36,540 --> 00:29:40,020 Činilo domenu previše upoznati sa mnom, a zapravo samo 620 00:29:40,020 --> 00:29:43,080 za one koji su mi prijatelji, Iskreno, koji je bio programiranje 621 00:29:43,080 --> 00:29:45,570 jer su bili šest- ili možda 10-godina-stari. 622 00:29:45,570 --> 00:29:48,640 I to je samo zato što sam bio mogućnosti da se CS50 u mom danu 623 00:29:48,640 --> 00:29:52,720 u protuvrijednosti verziji SAT / UNS-- pass / fail natrag u day-- 624 00:29:52,720 --> 00:29:53,850 da je čak i sam uzeo 50. 625 00:29:53,850 --> 00:29:57,440 I na neki način, ja sam opet ovdje s vama danas. 626 00:29:57,440 --> 00:30:00,690 >> Sada je u međuvremenu što još treba imati na umu o 50 627 00:30:00,690 --> 00:30:01,910 istovremeni upis. 628 00:30:01,910 --> 00:30:03,785 Suprotno glasinama koje ste možda čuli, 629 00:30:03,785 --> 00:30:07,650 možete, u stvari, istodobno učlaniti u CS50 i druge klase koje 630 00:30:07,650 --> 00:30:12,150 Sastaje se ista ili preklapanja Vrijeme kao CS50 predavanja upravo ovdje. 631 00:30:12,150 --> 00:30:16,420 Pogledajte plan za pojedinosti na njihovu provedbu. 632 00:30:16,420 --> 00:30:19,540 >> Predavanja, u međuvremenu, suprotno što je i službeno u katalogu, 633 00:30:19,540 --> 00:30:22,060 će uglavnom samo susret za samo sat vremena. 634 00:30:22,060 --> 00:30:24,240 U povodu možemo pokrenuti malo dugo. 635 00:30:24,240 --> 00:30:26,800 No, imajte na umu da Cilj u CS50 predavanja 636 00:30:26,800 --> 00:30:28,980 je pružiti vam konceptualni pregled, 637 00:30:28,980 --> 00:30:31,830 nadamo se neke demonstracije, možda čak i neki pokloni, 638 00:30:31,830 --> 00:30:34,390 što čeka za tjedan koji slijedi. 639 00:30:34,390 --> 00:30:37,730 >> I tako na predavanjima, mi ćemo istražiti te teme i primjeri zajedno, 640 00:30:37,730 --> 00:30:41,420 vođenje učenika i studenata na pozornicu, a osoblja na pozornicu, što je češće možemo, 641 00:30:41,420 --> 00:30:43,740 za samo par sati svaki tjedan. 642 00:30:43,740 --> 00:30:47,435 Sekcije, u međuvremenu, bit će nude tih ljudi ovdje-- mnogim 643 00:30:47,435 --> 00:30:50,060 ih podučava novaka, neke od njih, naravno assistants-- volje 644 00:30:50,060 --> 00:30:51,160 se događa jednom tjedno. 645 00:30:51,160 --> 00:30:52,940 >> A ono što je ključno zadržati na umu je da smo 646 00:30:52,940 --> 00:30:55,920 Ne have-- ne za razliku od Prvog Noći, glazba class-- 647 00:30:55,920 --> 00:30:59,220 različitih pjesama odsjeka za studenti manje udobne, više 648 00:30:59,220 --> 00:31:01,150 udobna, a negdje između. 649 00:31:01,150 --> 00:31:03,559 I iskreno, znaš li da si manje ugodno. 650 00:31:03,559 --> 00:31:05,600 A što vjerojatno znate, ako ti si udobnije. 651 00:31:05,600 --> 00:31:09,920 A ako niste sasvim sigurni, vi ste po definiciji negdje između. 652 00:31:09,920 --> 00:31:12,850 Dakle, kada dođe vrijeme da sekciji u tjedan dana ili tako, po nastavnom planu, 653 00:31:12,850 --> 00:31:14,070 ćemo vam postaviti to pitanje. 654 00:31:14,070 --> 00:31:16,890 A možete samostalno odabrati Based na svoju razinu udobnosti 655 00:31:16,890 --> 00:31:22,220 i biti s students-- biti sa zelenim dots-- slični u razini komfora i na vas. 656 00:31:22,220 --> 00:31:25,710 >> U međuvremenu, mi imamo problema postavlja, što će u konačnici 657 00:31:25,710 --> 00:31:28,310 definirati svoje iskustvo u ovom tečaju. 658 00:31:28,310 --> 00:31:30,370 Oni su ponudili obično u više izdanja. 659 00:31:30,370 --> 00:31:34,150 Standardno izdanje koje smo najviše očekivali svaki student u tijeku kako bi se borila 660 00:31:34,150 --> 00:31:37,900 ali i tzv haker izdanje koji nudi nikakav oblik dodatnog kredita 661 00:31:37,900 --> 00:31:41,980 Konačni ali stvarno hvalisanje prava reći da ste pokušali i rješavati 662 00:31:41,980 --> 00:31:45,250 Tečaj je hakerski izdanja koje pristupiti sličan materijal 663 00:31:45,250 --> 00:31:47,370 ali s više sofisticirane kuta. 664 00:31:47,370 --> 00:31:49,480 >> Ono što mi nudimo za standardno izdanje, za, 665 00:31:49,480 --> 00:31:51,420 opet, super većina studenata, nisu 666 00:31:51,420 --> 00:31:54,060 samo hodaju materijale, koji su Video pod vodstvom osoblja Tečaj je 667 00:31:54,060 --> 00:31:57,840 da vas doista provesti kroz Problemi Naravno je i to moguće dizajn 668 00:31:57,840 --> 00:31:58,910 implementacije. 669 00:31:58,910 --> 00:32:01,434 I mi također, nakon što Činjenica, ponuditi postmortems, 670 00:32:01,434 --> 00:32:03,350 pri čemu ako se pitate Kako biste mogli imati 671 00:32:03,350 --> 00:32:05,930 ili su trebali riješiti neke Problem, nastavno osoblje 672 00:32:05,930 --> 00:32:08,640 će vas provesti kroz one koji su na videu, kao dobro. 673 00:32:08,640 --> 00:32:14,350 >> U međuvremenu, što se čeka su previše pet dana kasne i činjenica 674 00:32:14,350 --> 00:32:16,680 da ćemo Baci najniža je problem postaviti rezultat. 675 00:32:16,680 --> 00:32:20,370 Mi svakako cijenimo da je u zamjenu za radno opterećenje koje se očekuje da će 50 676 00:32:20,370 --> 00:32:24,020 od vas, život dobiva na putu Ponekad, ako ne i pet puta. 677 00:32:24,020 --> 00:32:26,150 I tako će to ponuditi ti malo fleksibilnosti, 678 00:32:26,150 --> 00:32:29,400 širi svoj rok od, recimo, Četvrtak u podne do petka u podne. 679 00:32:29,400 --> 00:32:33,150 Pogledajte plan za njihovi detalji provedbe. 680 00:32:33,150 --> 00:32:34,702 >> Sada ono što sada čeka? 681 00:32:34,702 --> 00:32:36,660 I to je samo pojavljuje Sad mi samo koliko dugo 682 00:32:36,660 --> 00:32:38,333 Imam ti dečki ovdje stajati na pozornici. 683 00:32:38,333 --> 00:32:39,060 >> [Smijeh] 684 00:32:39,060 --> 00:32:41,867 >> DAVID J. Malan: Ali, mi ćemo doći do vrhunac završiti prije dugo. 685 00:32:41,867 --> 00:32:43,700 Pa što ga čeka u smislu od problematičnih seta? 686 00:32:43,700 --> 00:32:47,099 Pa, možda i teaser za ono što smo svi i prošle godine sa svojim prethodnicima. 687 00:32:47,099 --> 00:32:49,140 U prvom setu problema prošle godine smo uveli 688 00:32:49,140 --> 00:32:51,630 Scratch, grafički programski jezik koji 689 00:32:51,630 --> 00:32:54,570 omogućuje programirati doslovno strane povučete i ispustite slagalice, 690 00:32:54,570 --> 00:32:57,220 kao što je to, da su podsjeća na konstrukata 691 00:32:57,220 --> 00:32:59,260 će vidjeti samo jedan tjedan Dakle, kad smo se prebacili 692 00:32:59,260 --> 00:33:01,870 na više tradicionalnih jezik, poznat i kao C 693 00:33:01,870 --> 00:33:03,930 >> Prošle godine smo nastavili za ovaj problem skupa, 694 00:33:03,930 --> 00:33:06,720 uključujući za kriptografiju, remećenje informacija 695 00:33:06,720 --> 00:33:10,410 čuvati ga od vladine ili prijatelji ' Oči koje ne žele vidjeti. 696 00:33:10,410 --> 00:33:12,540 Kodirana je ovdje Poruka koja je prije vas 697 00:33:12,540 --> 00:33:15,740 moći će dešifrirati ili de-otimati. 698 00:33:15,740 --> 00:33:17,960 >> Bijeg je problem postavljen prošle godine, pri čemu 699 00:33:17,960 --> 00:33:21,530 koristite te novu pronašao programiranje vještine zapravo provesti 700 00:33:21,530 --> 00:33:24,840 Igra wherein-- kao ti može pozvati iz childhood-- 701 00:33:24,840 --> 00:33:28,040 Cilj je bio da se bash cigle koje su na vrhu zaslona 702 00:33:28,040 --> 00:33:30,190 Ovdje, gomilaju postići na putu, 703 00:33:30,190 --> 00:33:35,460 i provedbi vlastite algoritme s kojima je ovo rješenje u konačnici 704 00:33:35,460 --> 00:33:37,357 vam omogućuje da igraju igru. 705 00:33:37,357 --> 00:33:39,440 U međuvremenu, kasnije u semestar, mi ćemo vam dati 706 00:33:39,440 --> 00:33:43,470 rječnik od 143.091 engleskih riječi. 707 00:33:43,470 --> 00:33:46,300 A što će biti izazvan napisati program koji 708 00:33:46,300 --> 00:33:50,260 piše čekove, dokumente, po loading da mnoge riječi u memoriju 709 00:33:50,260 --> 00:33:52,300 što je učinkovitije moguće. 710 00:33:52,300 --> 00:33:54,240 Općenito ti rupičaste protiv svojih kolega 711 00:33:54,240 --> 00:33:56,610 Ako ste se odlučili na malo izazov vođa odbora 712 00:33:56,610 --> 00:34:00,090 da se vidi tko može koristiti najmanji sekundi vrijeme rada, 713 00:34:00,090 --> 00:34:03,550 i manjem broju od megabajta memorije, 714 00:34:03,550 --> 00:34:08,659 i zapravo fino ugađanje programa biti nevjerojatno štedljivih ne 715 00:34:08,659 --> 00:34:09,820 Samo vrijeme. 716 00:34:09,820 --> 00:34:13,239 >> Prošle godine, također, gledali smo na kraju od semestra na web programiranja. 717 00:34:13,239 --> 00:34:16,230 I doista, mi ćemo to učiniti i ove godine s više problematičnih setovima, 718 00:34:16,230 --> 00:34:20,290 vas uvodi u tehnike i razmišljanje s kojim se možete prijaviti 719 00:34:20,290 --> 00:34:23,489 ove vještine programiranja do web stranice, dinamičke web stranice, 720 00:34:23,489 --> 00:34:26,639 Web stranice koje zapravo riješiti Problemi i ponašaju drugačije 721 00:34:26,639 --> 00:34:30,620 i nisu samo statične mjesta s statičke informacije. 722 00:34:30,620 --> 00:34:32,854 >> Završni projekt u konačnici definirat će, ipak, 723 00:34:32,854 --> 00:34:34,770 Vrhunac tečaja za studente, u kojoj 724 00:34:34,770 --> 00:34:37,228 vi ćete biti izazvani da provede najviše bilo od interesa 725 00:34:37,228 --> 00:34:40,590 za vas, tako dugo dok to nekako oslanja lekcije tečaja je. 726 00:34:40,590 --> 00:34:42,930 >> I kao što ste vidjeli u Video na početku, 727 00:34:42,930 --> 00:34:47,340 ćemo zaključiti semestar s CS50 Hackathon, što ako, upoznati, 728 00:34:47,340 --> 00:34:51,420 počet će u 7:00 sati jedne noći i završiti u 7:00 ujutro sljedećeg jutra. 729 00:34:51,420 --> 00:34:53,614 Oko 21:00, mi ćemo Kako bi se u prvoj večeri. 730 00:34:53,614 --> 00:34:55,489 Oko 01:00, mi ćemo Kako bi se u drugoj večeri. 731 00:34:55,489 --> 00:34:57,490 A ako ste još uvijek stoji na 05:00, što 732 00:34:57,490 --> 00:35:00,320 će shuttle bus ti da IHOP za doručak. 733 00:35:00,320 --> 00:35:04,980 >> CS50 sajam, u međuvremenu, je događaj kojemu 2.000 plus fakulteta, studenti, 734 00:35:04,980 --> 00:35:07,850 i osoblje iz cijele kampusu će došao vidjeti svoje uspjehe 735 00:35:07,850 --> 00:35:10,150 u tijeku i konačni projekti i kreacije 736 00:35:10,150 --> 00:35:14,960 koji ste stvorili na svojim prijenosnim računalima, stolna računala, ili možda čak i žarulje. 737 00:35:14,960 --> 00:35:17,340 >> U međuvremenu, radno vrijeme i potporna struktura. 738 00:35:17,340 --> 00:35:20,480 I sada bi bilo bolja vremena za sve vas dovesti do. 739 00:35:20,480 --> 00:35:24,310 >> Radno vrijeme održat će se četiri noći tjedno za više sati svake noći 740 00:35:24,310 --> 00:35:27,710 s uglavnom od 20 do 30 Osoblje naravno o dužnosti odjednom 741 00:35:27,710 --> 00:35:31,240 pružiti vam intimni jedan-na-jedan prilike za podršku 742 00:35:31,240 --> 00:35:33,790 Uz naravno problem setovima. 743 00:35:33,790 --> 00:35:36,120 Poduke također će biti dostupni, posebno 744 00:35:36,120 --> 00:35:39,630 za studente manje comfortable-- ili Usudio bih se reći barem comfortable-- za koga 745 00:35:39,630 --> 00:35:41,869 Radno vrijeme nisu najviše njegovanje okoliša 746 00:35:41,869 --> 00:35:43,660 i sigurno nisu najčešće bez stresa. 747 00:35:43,660 --> 00:35:47,430 Pogotovo kada su rokovi pritiskom, Aktivno će vam upariti sebe 748 00:35:47,430 --> 00:35:51,440 s član osoblja za rad s na nekom redovitom rasporedu kao i svoje potrebe 749 00:35:51,440 --> 00:35:53,850 i njihov raspored dopušta. 750 00:35:53,850 --> 00:35:55,260 >> I osoblje. 751 00:35:55,260 --> 00:36:01,020 Dopustite mi da vas upoznam Davon, Rob, Gabriel, ovogodišnji glave. 752 00:36:01,020 --> 00:36:02,370 Ako bi svatko želio say-- 753 00:36:02,370 --> 00:36:03,349 >> [Pljesak] 754 00:36:03,349 --> 00:36:03,849 -A riječ. 755 00:36:03,849 --> 00:36:05,328 [Pljesak] 756 00:36:05,328 --> 00:36:10,270 757 00:36:10,270 --> 00:36:13,220 Davon ovdje je Voditelj tečaja, a koje se 758 00:36:13,220 --> 00:36:15,730 znači u svom punom radnom vremenu ulozi on pomaže s izvršenjem 759 00:36:15,730 --> 00:36:18,424 i logistiku CS50. 760 00:36:18,424 --> 00:36:19,340 DAVON: Da, bok, dečki. 761 00:36:19,340 --> 00:36:20,965 Vidjet ćete mi puno u uredovno vrijeme. 762 00:36:20,965 --> 00:36:22,110 Ja ću biti nastave sekcije. 763 00:36:22,110 --> 00:36:25,150 A ako snimate e-mail naprijed, Vjerojatno ću se reagira. 764 00:36:25,150 --> 00:36:27,670 Tako ću vidjeti puno vas sve semestra. 765 00:36:27,670 --> 00:36:29,890 I dobrodošli u CS50. 766 00:36:29,890 --> 00:36:38,330 >> DAVID J. Malan: A sada Gabriel, koji je Sam je bio samo brucoš prošle godine, 767 00:36:38,330 --> 00:36:41,820 ali u posljednjih nekoliko godina ima posluje svoju verziju CS50 768 00:36:41,820 --> 00:36:44,660 u Brazilu, gdje je skinuti sve content-- tečaja je 769 00:36:44,660 --> 00:36:46,890 što je jasno da snimio i stavio online-- 770 00:36:46,890 --> 00:36:51,480 tako da je mogao prevesti do Portugalci i onda naučiti više od 100 771 00:36:51,480 --> 00:36:54,610 njegovih kolega više Naravno za par godina, 772 00:36:54,610 --> 00:36:57,650 nastava u njegovom materinjem jeziku Nastavni plan i program tečaja je. 773 00:36:57,650 --> 00:36:58,964 >> GABRIEL: Pozdrav. 774 00:36:58,964 --> 00:37:00,912 >> [Pljesak] 775 00:37:00,912 --> 00:37:06,669 776 00:37:06,669 --> 00:37:07,710 GABRIEL: Bok, ja sam Gabriela. 777 00:37:07,710 --> 00:37:09,340 Ja sam šef TF tečaja. 778 00:37:09,340 --> 00:37:10,780 I nadam se da će vam se svidjeti CS50. 779 00:37:10,780 --> 00:37:12,830 Ovo je CS50. 780 00:37:12,830 --> 00:37:14,697 >> DAVID J. Malan: Sada za Rob. 781 00:37:14,697 --> 00:37:15,780 Ma, što želite uvod? 782 00:37:15,780 --> 00:37:16,696 >> ROB: Ne, ne znam. 783 00:37:16,696 --> 00:37:18,225 [Smijeh] 784 00:37:18,225 --> 00:37:19,475 DAVID J. Malan: A Rob Boden. 785 00:37:19,475 --> 00:37:22,300 [Smijeh] 786 00:37:22,300 --> 00:37:23,800 ROB: Bok, ja sam Rob. 787 00:37:23,800 --> 00:37:27,220 Ovo je moja peta godina uključen u tijeku. 788 00:37:27,220 --> 00:37:29,220 Svake godine, to je samo bolje i bolje klase, 789 00:37:29,220 --> 00:37:31,550 Dakle, vi ste očito će biti strašan. 790 00:37:31,550 --> 00:37:33,181 Nadam se da ćete se zabaviti s njom. 791 00:37:33,181 --> 00:37:34,430 Ja ću se zabaviti s njom. 792 00:37:34,430 --> 00:37:36,670 Dakle, vidjet ćemo se. 793 00:37:36,670 --> 00:37:38,445 >> DAVID J. Malan: I Vrijeme neće dopustiti us-- 794 00:37:38,445 --> 00:37:39,670 >> [Pljesak] 795 00:37:39,670 --> 00:37:41,661 >> Vrijeme nam neće dopustiti uvesti svima 796 00:37:41,661 --> 00:37:44,660 na pozornici i sve svoje kolege koji su u kupovinu nastavu danas. 797 00:37:44,660 --> 00:37:47,390 No, dopustite mi da vas upoznam Belinda i CS50 Puzzle 798 00:37:47,390 --> 00:37:49,550 Dan, koji čeka ovo dolazi u subotu, što 799 00:37:49,550 --> 00:37:51,800 je prvi od Naravno velikih razmjera događaja. 800 00:37:51,800 --> 00:37:54,300 >> To je jedan posebno namijenjen čekić Početna točka 801 00:37:54,300 --> 00:37:57,580 da je računalna znanost je u konačnici Ne radi se o programiranju, nego 802 00:37:57,580 --> 00:37:59,280 o rješavanju općenito problem. 803 00:37:59,280 --> 00:38:01,450 I Puzzle dan, kao što ćete vidi, će vas dovesti 804 00:38:01,450 --> 00:38:04,207 i tvoji kolege together-- nadamo se ove subote. 805 00:38:04,207 --> 00:38:04,961 >> Belinda: U redu. 806 00:38:04,961 --> 00:38:05,750 Bok, dečki. 807 00:38:05,750 --> 00:38:06,740 Dakle, hvala. 808 00:38:06,740 --> 00:38:10,120 Dakle, kao što je naš kapetan slavan , rekao je, moje ime je Belinda. 809 00:38:10,120 --> 00:38:12,100 Ja sam student na Quincy House. 810 00:38:12,100 --> 00:38:15,730 >> I, baš kao i ti dečki, uzeo CS50 prošle godine, jako je voljela. 811 00:38:15,730 --> 00:38:17,960 Imam soft spot za ti dečki u trećem redu. 812 00:38:17,960 --> 00:38:21,384 I ja sam ponosni reći, ja sam sada u počinio odnos 813 00:38:21,384 --> 00:38:22,300 s CS50 [nečujan]. 814 00:38:22,300 --> 00:38:22,799 U redu. 815 00:38:22,799 --> 00:38:26,140 To je bio moj jadan verzija šala. 816 00:38:26,140 --> 00:38:28,320 >> U svakom slučaju, pa se kreće na, Samo je htjela pozvati 817 00:38:28,320 --> 00:38:31,439 vi svi na I-laboratoriju ili HBS košnica. 818 00:38:31,439 --> 00:38:33,730 Mi ćemo imati Male dan od 12:00 do 03:00. 819 00:38:33,730 --> 00:38:37,680 I to je velika prilika za vas Dečki zadovoljiti svoje kolege CS prijatelje, 820 00:38:37,680 --> 00:38:42,780 riješiti neke ne-CS zagonetke, poput kapetana spomenuto, ali i jesti neke besplatna hrana, 821 00:38:42,780 --> 00:38:46,910 zaraditi neki strašan nagrade, kao što su poklon kartice, 75 dolara po osobi, 822 00:38:46,910 --> 00:38:48,400 i also-- što je to? 823 00:38:48,400 --> 00:38:49,540 Wii U ili nešto? 824 00:38:49,540 --> 00:38:50,333 Wii U? 825 00:38:50,333 --> 00:38:51,040 Da. 826 00:38:51,040 --> 00:38:52,330 Za našu tombolu. 827 00:38:52,330 --> 00:38:52,830 Strašan. 828 00:38:52,830 --> 00:38:54,310 Dakle, ja ću ostati ovdje nakon nastave. 829 00:38:54,310 --> 00:38:56,770 A ako vi imate bilo pitanja, javite mi. 830 00:38:56,770 --> 00:38:59,980 >> DAVID J. Malan: I vidjet ćete, s onu stranu to postoji ništa učiniti danas. 831 00:38:59,980 --> 00:39:01,920 Prvi problem postavljen će izaći petka. 832 00:39:01,920 --> 00:39:05,420 No, kako bi nas dovesti kući i danas, ja bih Vas upoznati s posebno još jedan 833 00:39:05,420 --> 00:39:09,080 član osoblja, Colton Ogden ovdje, čije ruke su sada 834 00:39:09,080 --> 00:39:12,250 zaštićeni iznad vas to MIDI kontroler 835 00:39:12,250 --> 00:39:15,170 čekić dom točka dalje da je računalna znanost, također, 836 00:39:15,170 --> 00:39:19,130 ima primjenjivost daleko izvan inženjering i matičnih i informatika sama po sebi, 837 00:39:19,130 --> 00:39:22,890 proteže čak i na takvim područjima glazbe. 838 00:39:22,890 --> 00:39:30,590 >> Colton je ljubazno offered-- sam mislio jedan od njih je bio idući popraviti fokus. 839 00:39:30,590 --> 00:39:34,400 Andrew, ako smo mogli pozvati fokusu ovamo na trenutak. 840 00:39:34,400 --> 00:39:36,780 >> Što Colton je učinio Unaprijed je Program 841 00:39:36,780 --> 00:39:40,345 Ovaj uređaj, to slabljenja gumba koju vidite na slici gore, 842 00:39:40,345 --> 00:39:42,470 kao MIDI kontroler, pri čemu svaka od ovih tipki 843 00:39:42,470 --> 00:39:47,080 je priključena na određenu glazbene note ili zvuk, općenito snimanje, 844 00:39:47,080 --> 00:39:50,445 tako da igrajući uzorke tih tipke, baš kao uzorke bitova, 845 00:39:50,445 --> 00:39:52,620 može predstavljati drugi viši pojmovi razini. 846 00:39:52,620 --> 00:39:56,750 Hoće li on biti u mogućnosti u konačnici kako bi nas odvesti kući danas ovdje? 847 00:39:56,750 --> 00:39:59,540 Bez dodatnih teškoća, ako bismo mogli prigušiti svjetla, 848 00:39:59,540 --> 00:40:03,145 i okrenuti na zaslonu iza Colton. 849 00:40:03,145 --> 00:40:03,865 >> PUBLIKA: Woo! 850 00:40:03,865 --> 00:40:06,090 >> DAVID J. Malan: Ovo je CS50. 851 00:40:06,090 --> 00:40:10,518 >> [Muziciranja] 852 00:40:10,518 --> 00:42:46,018 853 00:42:46,018 --> 00:42:49,420 >> [Pljesak] 854 00:42:49,420 --> 00:42:54,766 855 00:42:54,766 --> 00:42:56,450 >> To je to za CS50. 856 00:42:56,450 --> 00:42:57,950 Mi ćemo vas vidjeti u petak. 857 00:42:57,950 --> 00:42:59,890 Neki kolač vas čeka u transepta. 858 00:42:59,890 --> 00:43:04,046 859 00:43:04,046 --> 00:43:08,850 >> [Muziciranja] 860 00:43:08,850 --> 00:45:49,227