1 00:00:00,000 --> 00:00:15,059 >> [MUSIC SVIRA] 2 00:00:15,059 --> 00:00:19,170 >> To je CS50-- Harvard Uvođenje Sveučilišta 3 00:00:19,170 --> 00:00:22,070 za intelektualno poduzeća informatike 4 00:00:22,070 --> 00:00:23,800 i umijeće programiranja. 5 00:00:23,800 --> 00:00:27,020 I moje ime je David Malan i Samo sam razmišljao jutros, 6 00:00:27,020 --> 00:00:33,120 to je bilo nevjerojatno 20 godina i danas otkad sam zadnji put sjeo u kojoj vi sada. 7 00:00:33,120 --> 00:00:33,840 >> Bilo je 1996. 8 00:00:33,840 --> 00:00:37,550 Bio sam student, a ja sam bio uzimajući CS50 za vrlo prvi put. 9 00:00:37,550 --> 00:00:40,890 A nisam ni ustao živac da se to sam prve godine, 10 00:00:40,890 --> 00:00:42,500 dijelom zbog vremena. 11 00:00:42,500 --> 00:00:44,782 Računarstvo mi je vrsta kao što su, meh. 12 00:00:44,782 --> 00:00:46,990 Bio sam malo monstrum raste gore, ali nisam jako 13 00:00:46,990 --> 00:00:49,180 imati bilo koji intelektualni interes za ono što se činilo 14 00:00:49,180 --> 00:00:51,920 da samo biti cijela hrpa ljudi programiranje svih vremena. 15 00:00:51,920 --> 00:00:53,904 >> I ja sam se bojao da budem iskren. 16 00:00:53,904 --> 00:00:56,820 Tijek i informatika više u pravilu imali i do neke mjere, 17 00:00:56,820 --> 00:01:01,230 još uvijek ima taj ugled polja na pazi, ako je samo zato jer mnogi od nas 18 00:01:01,230 --> 00:01:04,410 nisu upoznati s njim i sigurni u to. 19 00:01:04,410 --> 00:01:08,480 I to stvarno nije bilo dok sam kupovala ova klasa koja student fall-- 20 00:01:08,480 --> 00:01:10,880 pa čak i onda, samo sam upisao jer je professor-- 21 00:01:10,880 --> 00:01:13,950 jedan od mojih prvih mentora, Brian Kernighan sada na Princeton-- 22 00:01:13,950 --> 00:01:15,700 mi je dopustio da se u klasi pass uspjeti. 23 00:01:15,700 --> 00:01:18,020 I doista, to je razlog zašto Danas smo omogućiti i poticati 24 00:01:18,020 --> 00:01:20,030 studente da se taj predmet sat / unsat. 25 00:01:20,030 --> 00:01:22,040 >> I tek tada, od strane kraj semestra 26 00:01:22,040 --> 00:01:24,870 shvatila sam kao, wow, ovaj nije tako nepoznato područje. 27 00:01:24,870 --> 00:01:26,850 Doista, to je bio vrlo Osnaživanje polje, 28 00:01:26,850 --> 00:01:28,970 i više uzbudljivo, pogotovo kasnije, 29 00:01:28,970 --> 00:01:32,809 kao što sam uzeo tečajeve Dramska umjetnost 101 i Latinskoj A 30 00:01:32,809 --> 00:01:34,600 i onda na kraju Grad škola arheologija, 31 00:01:34,600 --> 00:01:37,860 jesam li stvarno početi vidjeti sjecišta na ovom području, računala 32 00:01:37,860 --> 00:01:41,979 znanost, s humanističkim, prirodne znanosti, umjetnosti, medicine, 33 00:01:41,979 --> 00:01:42,520 i slično. 34 00:01:42,520 --> 00:01:44,420 I to je ono što je samo tako uredno o računalnoj znanosti 35 00:01:44,420 --> 00:01:46,930 u konačnici, kao što se nadamo da ćete see-- je njegova primjenjivost 36 00:01:46,930 --> 00:01:50,280 s tim drugim područjima, i kako možete uzeti neki od današnjih, a semestra 37 00:01:50,280 --> 00:01:53,070 ideje i praktične vještine natrag na svoju domenu, 38 00:01:53,070 --> 00:01:58,200 i zapravo istraživanje ovog raskrižja od liberalne umjetnosti i znanosti. 39 00:01:58,200 --> 00:02:02,690 >> Dakle, 73% od vas, ako posljednji godine je bilo naznaka, 40 00:02:02,690 --> 00:02:04,390 nikada nisu uzeti CS naravno prije. 41 00:02:04,390 --> 00:02:06,389 Dakle, ako, poput mene, vi ste osjeća malo 42 00:02:06,389 --> 00:02:09,190 prestrašen, ili iskreno nisi stvarno siguran zašto si još ovdje. 43 00:02:09,190 --> 00:02:11,510 Možda ste samo slijedili neke prijatelje na Sanders odmah. 44 00:02:11,510 --> 00:02:12,490 To je potpuno u redu. 45 00:02:12,490 --> 00:02:15,059 Cilj je da se ovdje kuka vi i vas uvjeriti 46 00:02:15,059 --> 00:02:17,100 da, ako ne gledati lijevu i desnu stranu, 47 00:02:17,100 --> 00:02:21,480 ti si idući u vidjeti školske kolege kao malo ili puno iskustva 48 00:02:21,480 --> 00:02:22,890 da vi sami mogli imati. 49 00:02:22,890 --> 00:02:25,280 I doista, mi ćemo podijeliti neke statistike kasnije danas 50 00:02:25,280 --> 00:02:28,120 o tome što je demografiji klasa obično izgledaju. 51 00:02:28,120 --> 00:02:31,440 >> I dok je dodao reassurance-- i mi to mislim jer sam preuzeo tijeku 52 00:02:31,440 --> 00:02:33,252 Nekoliko godina ago-- u Tečaj je nastavni plan i program 53 00:02:33,252 --> 00:02:35,460 je učinimo ono što u konačnici pitanja u ovom kolegiju 54 00:02:35,460 --> 00:02:38,040 nije toliko gdje ćete završiti se u odnosu na svoje kolege, 55 00:02:38,040 --> 00:02:43,110 ali gdje se u 11 tjednu, do kraja semestar, završiti u odnosu na sebe 56 00:02:43,110 --> 00:02:46,280 u tjednu 0, a to je gdje smo danas ovdje. 57 00:02:46,280 --> 00:02:48,704 A to je ono što sam shvatio svih tih godina. 58 00:02:48,704 --> 00:02:50,620 I znam puno nastava ovo reći, ali to je 59 00:02:50,620 --> 00:02:52,450 osobito vrijedi u računalnoj znanosti. 60 00:02:52,450 --> 00:02:55,320 Na kraju krajeva, ovo polje je nepoznat kao što je bio za mene 61 00:02:55,320 --> 00:02:58,590 i može biti za vas, stvarno samo o rješavanju problema. 62 00:02:58,590 --> 00:03:01,324 I kao takva, ona ima to primjenjivost dobiti drugim područjima. 63 00:03:01,324 --> 00:03:03,490 A u stvari, ako ćemo suditi destilirati što to znači, 64 00:03:03,490 --> 00:03:06,897 to je rješavanje problema u svojoj suštini, usuđujem se reći. 65 00:03:06,897 --> 00:03:09,480 Postoji input-- tako da ono što je je da ste pokušavate riješiti. 66 00:03:09,480 --> 00:03:12,264 Postoji izlaz, što je izgledno rješenje za taj problem. 67 00:03:12,264 --> 00:03:14,180 A onda, kao što bismo kažu u računalnoj znanosti, 68 00:03:14,180 --> 00:03:17,310 tu je ova crna kutija u Srednji koje ne moraju nužno 69 00:03:17,310 --> 00:03:19,450 morati brinuti o tome kako se to radi. 70 00:03:19,450 --> 00:03:22,230 Ti si bi na kraju provesti ono što je unutar tog okvira. 71 00:03:22,230 --> 00:03:25,194 No, za današnje potrebe i više općenito u životu, sve što je stalo 72 00:03:25,194 --> 00:03:26,610 je da se ti problemi se rješavaju. 73 00:03:26,610 --> 00:03:29,340 >> A što ovaj tečaj je u konačnici o istražuje 74 00:03:29,340 --> 00:03:31,700 sjecište ti ulazi i izlazi, 75 00:03:31,700 --> 00:03:34,410 a ovi takozvani algoritmi, kao što ćemo uskoro vidjeti, 76 00:03:34,410 --> 00:03:37,450 koje provode ono što je ispod ima, sjenilo. 77 00:03:37,450 --> 00:03:40,487 Ali ti ulazi i to outputs-- Što to zapravo znači? 78 00:03:40,487 --> 00:03:43,570 Pa, na kraju dana, trebamo neki način predstavljanja informacija. 79 00:03:43,570 --> 00:03:46,660 To se posebno odnosi na računalu, koji je kao fancy i kompleksa kao što je 80 00:03:46,660 --> 00:03:48,160 može činiti, je prilično glupa naprava. 81 00:03:48,160 --> 00:03:52,240 Potrebno electricity-- bilo iz kabel ili bateriju kao input-- 82 00:03:52,240 --> 00:03:55,820 a zatim ga proizvodi oko preprogramed odgovori na zaslonu. 83 00:03:55,820 --> 00:03:57,970 >> No, kako smo dobili od početka do kraja tamo? 84 00:03:57,970 --> 00:03:59,470 Pa, što je problem koji treba riješiti? 85 00:03:59,470 --> 00:04:01,050 Pa, možda smo mogli, na početak bilo semestra, 86 00:04:01,050 --> 00:04:02,841 pokušati uzeti prisustvo u sobi kao što je ovaj. 87 00:04:02,841 --> 00:04:04,750 Tako sam mogao učiniti kao jedan, dva, tri. 88 00:04:04,750 --> 00:04:07,060 Ili možda, ako sam to učinio na neki način pratiti 89 00:04:07,060 --> 00:04:10,560 od myself-- pratiti things-- Mogao sam brzo ponestane prstiju. 90 00:04:10,560 --> 00:04:14,650 Dakle, ja mogu samo napraviti hash marks-- jedan osoba, dva, tri, četiri, pet, šest, 91 00:04:14,650 --> 00:04:15,431 sedam, osam. 92 00:04:15,431 --> 00:04:17,930 I svi mi vjerojatno ovo učinio, bilo na rukama 93 00:04:17,930 --> 00:04:19,680 ili na komad papira. 94 00:04:19,680 --> 00:04:22,140 A to je zapravo samo nešto što se zove predznak notation-- 95 00:04:22,140 --> 00:04:26,130 gdje, ako imate samo jedno slovo u svom pismu, jednom ili mljeveno meso 96 00:04:26,130 --> 00:04:29,440 Oznaka u ovom slučaju, za svaki ulaz želite strani, 97 00:04:29,440 --> 00:04:32,330 morate staviti dolje jedan od njih letters-- jedan od tih znakova. 98 00:04:32,330 --> 00:04:32,510 >> U redu. 99 00:04:32,510 --> 00:04:34,790 To je sve u redu i dobro i nije sve što je komplicirano. 100 00:04:34,790 --> 00:04:37,800 No, računala nisu svi da je mnogo komplicirano. 101 00:04:37,800 --> 00:04:40,770 Doista, većina vas vjerojatno znam, čak i ako ste stvarno ne 102 00:04:40,770 --> 00:04:44,080 razmišljao što to znači, da je računala razumiju samo nule 103 00:04:44,080 --> 00:04:45,870 i ones-- tzv binarni sustav. 104 00:04:45,870 --> 00:04:49,390 Mi ljudi, s druge strane, su tako mnogo više sofisticiran mjeri 105 00:04:49,390 --> 00:04:51,770 kao što smo razumjeli nula kroz devetke. 106 00:04:51,770 --> 00:04:55,740 >> No, čak i ako je binarni je, na prvi pogled pogled, nije sve što je poznato, 107 00:04:55,740 --> 00:05:00,330 ispada da je baš kao i sustave i ideje koje znamo. 108 00:05:00,330 --> 00:05:02,420 Tako na primjer, razmislite o ovom. 109 00:05:02,420 --> 00:05:03,896 Ovo je samo slijed simbola. 110 00:05:03,896 --> 00:05:05,770 A sve vas, kad Bacimo li pogled na njega, vjerojatno 111 00:05:05,770 --> 00:05:09,380 mislim 123-- ništa stvarno zanimljivo tamo. 112 00:05:09,380 --> 00:05:11,940 Ali zašto je to taj broj, 123? 113 00:05:11,940 --> 00:05:14,440 To su samo simboli na screen-- samo obrasci 114 00:05:14,440 --> 00:05:16,387 da je netko možda nacrtana ili upisali. 115 00:05:16,387 --> 00:05:18,970 Ali, ako ste poput mene, Vjerojatno se sjećate iz osnovne škole 116 00:05:18,970 --> 00:05:21,610 da postoji neka vrsta stupovi ili mjesta ovdje. 117 00:05:21,610 --> 00:05:25,340 Tu je svoje mjesto i TEN-a mjesto i sto je mjesto. 118 00:05:25,340 --> 00:05:29,820 A razlog da je ovo 123 i ne samo uzorak od tri simbola 119 00:05:29,820 --> 00:05:33,090 je zato, naravno, ako ima jedan u stotinama mjesta, 120 00:05:33,090 --> 00:05:36,610 učiniti math 100 puta jednog, a zatim dva u deset mjesto. 121 00:05:36,610 --> 00:05:41,390 Dakle, to je 10 puta 2, a zatim tri u na svoje mjesto, a to je 1 puta 3. 122 00:05:41,390 --> 00:05:45,670 A kada dodate sve one gore, od Naravno, možete dobiti 100 plus 20 plus 3. 123 00:05:45,670 --> 00:05:48,220 >> Tako smo počeli sa samo uzorkom od symbols-- je alphabet-- 124 00:05:48,220 --> 00:05:51,670 ali onda smo mapirati značenje na to su tim stupcima. 125 00:05:51,670 --> 00:05:54,450 Pa, ispada da računala su se zapravo ne 126 00:05:54,450 --> 00:05:56,300 sve što je drugačije od tebe i mene. 127 00:05:56,300 --> 00:06:01,840 No, umjesto da koristi ovlasti 10, tako speak-- 1, 10, 100, 1000, 128 00:06:01,840 --> 00:06:04,330 10.000 mjesto i tako forth-- oni zapravo 129 00:06:04,330 --> 00:06:08,930 samo koristiti ovlasti 2-- tako da se, 2, 4 i 130 00:06:08,930 --> 00:06:12,810 ako stavimo više znamenki, 8, 16, 32, 64, 128, i tako dalje. 131 00:06:12,810 --> 00:06:16,050 I tako je to kako računalo bi predstavljalo broj 0, 132 00:06:16,050 --> 00:06:17,300 baš kao i mi ljudi. 133 00:06:17,300 --> 00:06:21,660 >> 0, 0, 0-- i vjerojatno možete pogoditi što uzorak nula i jedinica, 134 00:06:21,660 --> 00:06:24,610 Ako računalo može samo govori 0 ili 1-- ono 135 00:06:24,610 --> 00:06:29,110 Uzorak će predstavljati brojčane mi ljudi znaju kao 1? 136 00:06:29,110 --> 00:06:30,590 Yeah-- 0, 0, 1. 137 00:06:30,590 --> 00:06:31,090 U redu. 138 00:06:31,090 --> 00:06:35,900 Dakle, 0, 0, 1 je kako zastupamo 1, tako da se može nagnuti onda 139 00:06:35,900 --> 00:06:39,510 da predstavljaju broj 2, ako imate Četiri su je mjesto, a dva je mjesto 140 00:06:39,510 --> 00:06:48,290 kao jednom mjestu, moglo bi se reći, dobro, ako smo imali 1 u nečije mjesto, 141 00:06:48,290 --> 00:06:50,430 a sada želimo brojati do 2, možda ćete 142 00:06:50,430 --> 00:06:53,310 to učiniti i ostaviti da će to biti nula. 143 00:06:53,310 --> 00:06:56,397 Ali, naravno, to nije način decimalni sustav radi bilo. 144 00:06:56,397 --> 00:06:58,230 Ako stavite jednu brojku oba od tih stupova, 145 00:06:58,230 --> 00:06:59,563 moraš učiniti aritmetiku. 146 00:06:59,563 --> 00:07:01,930 Dakle, što je broj jesam li slučajno upravo predstavlja? 147 00:07:01,930 --> 00:07:06,710 >> Dakle, to je 3, jer je 2 puta 1 plus 1 puta 1, naravno, daje nam tri. 148 00:07:06,710 --> 00:07:08,340 Tako će to biti dva. 149 00:07:08,340 --> 00:07:12,730 Bita vrsta flips, da tako kažemo, kao što je 0 postaje jedan, slično kao i 9 uloga više 150 00:07:12,730 --> 00:07:14,840 i postaje 0 dok nosite 1. 151 00:07:14,840 --> 00:07:16,510 To bi onda bilo tri, naravno. 152 00:07:16,510 --> 00:07:20,170 Four-- još jedan zanimljiv stvar događa, gdje su one prevrnuti 153 00:07:20,170 --> 00:07:21,750 i nosite 1, da tako kažemo. 154 00:07:21,750 --> 00:07:23,320 Dakle, ovo je, naravno, 4. 155 00:07:23,320 --> 00:07:25,160 >> Ali ako brzo naprijed i sada, što je najveći broj ide 156 00:07:25,160 --> 00:07:26,660 se da računalo može predstavljati? 157 00:07:26,660 --> 00:07:30,420 158 00:07:30,420 --> 00:07:32,380 Dakle, to je samo sedam, u ovom slučaju, zar ne? 159 00:07:32,380 --> 00:07:35,570 Budući da imate jedan u četiri, jedan u dva, jedan u jedan. 160 00:07:35,570 --> 00:07:36,900 Dakle, to je 4 plus 2 plus 1. 161 00:07:36,900 --> 00:07:37,972 Tako da vam daje sedam. 162 00:07:37,972 --> 00:07:39,680 I doista, to bi Čini se na prvi pogled 163 00:07:39,680 --> 00:07:43,750 da računala mogu računati ne više od toga. 164 00:07:43,750 --> 00:07:45,210 >> Ali to, naravno, nije istina. 165 00:07:45,210 --> 00:07:48,243 Što mi ljudi rade kad želimo brojati više nego kao 999? 166 00:07:48,243 --> 00:07:51,000 167 00:07:51,000 --> 00:07:53,900 Samo nositi jednu i samo dodati četvrta znamenka s lijeve strane. 168 00:07:53,900 --> 00:07:55,070 I tako doista možemo. 169 00:07:55,070 --> 00:07:57,900 Mogli smo osam-a mjesto i 16. mjesto, 170 00:07:57,900 --> 00:08:02,000 a 32 je mjesto, 64, 128-- i ti mogu samo zadržati ide na do beskonačnosti. 171 00:08:02,000 --> 00:08:04,640 Ali kad su oni nule i ones-- tzv binarni system-- 172 00:08:04,640 --> 00:08:10,290 su ono što računalni znanstvenik općenito nazvati malo, ili binarni broj. 173 00:08:10,290 --> 00:08:13,590 >> Ali sada, kako smo dobili od Pojam ili grafika tih stvari 174 00:08:13,590 --> 00:08:14,620 na stvarnu računalo? 175 00:08:14,620 --> 00:08:17,170 Izgleda da smo preskakanje korak ovdje. 176 00:08:17,170 --> 00:08:20,210 Pa, jedini ulaz na kraju dana, na moj laptop ovdje 177 00:08:20,210 --> 00:08:22,060 je ovaj protok električne energije. 178 00:08:22,060 --> 00:08:24,560 Čak i ako to je bio dugo Vrijeme od vas razmišljao o 179 00:08:24,560 --> 00:08:26,580 ili nikada ne misli o Kako struja radi, 180 00:08:26,580 --> 00:08:30,909 postoji elektroni teku ili van, i to je moja vrsta ulaza. 181 00:08:30,909 --> 00:08:34,659 >> Dakle, ako je to sve što smo uzimajući kao ulaz ovdje 182 00:08:34,659 --> 00:08:36,830 što možemo učiniti s tim informacijama? 183 00:08:36,830 --> 00:08:40,040 Pa, možemo misliti na nulu kao Upravo nedostatak električne energije. 184 00:08:40,040 --> 00:08:42,540 Ništa nije flowinw, ništa nije kreće, ništa se ne događa. 185 00:08:42,540 --> 00:08:44,690 To je samo zadani state-- nula. 186 00:08:44,690 --> 00:08:48,200 Ali ako postoji teče struja, zašto ne samo mi proizvoljno, ali globalno 187 00:08:48,200 --> 00:08:50,250 dosljedno, poziv da se jedan. 188 00:08:50,250 --> 00:08:54,760 >> Tako jednostavno nemajući snage, imamo nulu, da moć, 189 00:08:54,760 --> 00:08:57,520 imamo one-- bez snage, da moć. 190 00:08:57,520 --> 00:09:01,520 I na taj način, koristeći nešto više fizički ili elektronski 191 00:09:01,520 --> 00:09:05,340 možemo početi provoditi taj pojam nešto je ili jedan ili nula. 192 00:09:05,340 --> 00:09:07,230 Zapravo, mogli bismo samo to učiniti ovdje. 193 00:09:07,230 --> 00:09:10,590 Pa evo, nisam tri, ali Osam žarulje, a svaki od njih 194 00:09:10,590 --> 00:09:11,810 ima svoj vlastiti prekidač. 195 00:09:11,810 --> 00:09:15,760 >> I tako, ako sam htjela da predstavljaju broj sedam ovdje 196 00:09:15,760 --> 00:09:18,510 Možda ću uključiti ove tri žarulje. 197 00:09:18,510 --> 00:09:21,470 I doista, unutar moj računalo je milijune, 198 00:09:21,470 --> 00:09:25,650 Milijarde stvari koje su samo manji od toga, zovu tranzistori, 199 00:09:25,650 --> 00:09:27,330 prekidači, da samo uključivanje i isključivanje. 200 00:09:27,330 --> 00:09:30,420 Dakle, to su big-- relativno big-- prebacuje u mojoj laptop-- 201 00:09:30,420 --> 00:09:32,150 mnogo, mnogo, mnogo, mnogo više sklopke. 202 00:09:32,150 --> 00:09:35,160 Ali, svi oni rade upravo that-- okrenuti nešto na okrenite nešto isključiti. 203 00:09:35,160 --> 00:09:38,076 I kao takav, računalo može predstavljati, s tim milijunima ili čak milijardama 204 00:09:38,076 --> 00:09:40,480 tranzistora, puno i puno nula i jedinica. 205 00:09:40,480 --> 00:09:43,160 A tu je i drugi hardver i dalje da omogućuje pohranu informacija dugoročno, 206 00:09:43,160 --> 00:09:45,243 tako da kada se povući plug, ne izgubiti. 207 00:09:45,243 --> 00:09:46,900 Ali to je priča za neki drugi dan. 208 00:09:46,900 --> 00:09:51,170 >> Dakle, ono što možemo učiniti s tim bita? 209 00:09:51,170 --> 00:09:54,309 Možda smo samo da se tlak izvan me-- 210 00:09:54,309 --> 00:09:56,600 Možda netko želi da dođe ovdje i nude se demo? 211 00:09:56,600 --> 00:09:57,516 Vidio sam ovu ruku prvi. 212 00:09:57,516 --> 00:09:58,709 Kako se zoveš? 213 00:09:58,709 --> 00:09:59,250 MADAY: Maday. 214 00:09:59,250 --> 00:10:00,542 DAVID Malan: Maday, hajde gore. 215 00:10:00,542 --> 00:10:01,250 Drago mi je da sam vas upoznala. 216 00:10:01,250 --> 00:10:02,390 MADAY: Drago mi je. 217 00:10:02,390 --> 00:10:02,930 >> DAVID Malan: Dođite na ovaj način. 218 00:10:02,930 --> 00:10:04,182 Neću da te usne gore. 219 00:10:04,182 --> 00:10:04,682 U redu. 220 00:10:04,682 --> 00:10:11,090 Dakle, ovdje imamo, notice-- jedan, two-- ćemo urediti da out-- jedan, dva, četiri, 221 00:10:11,090 --> 00:10:13,350 osam, 16, 32, 64, 128. 222 00:10:13,350 --> 00:10:14,220 To je namjerno. 223 00:10:14,220 --> 00:10:17,370 Postoji osam bitova here-- binarni digits-- nula i jedinica. 224 00:10:17,370 --> 00:10:21,460 A malo je koristan jedinica measure-- ne kao korisna jedinica mjere 225 00:10:21,460 --> 00:10:21,999 na sebi. 226 00:10:21,999 --> 00:10:24,290 Obično želite barem osam od tih stvari, poznatiji 227 00:10:24,290 --> 00:10:24,790 bajt. 228 00:10:24,790 --> 00:10:26,230 Dakle, imamo bajt bitova ovdje. 229 00:10:26,230 --> 00:10:31,130 >> Dakle, ako smo htjeli da vam izazov s, Na primjer, izgovaranja, u binarnom sustavu, 230 00:10:31,130 --> 00:10:33,230 ova vrijednost here-- 42. 231 00:10:33,230 --> 00:10:35,140 Želite da se ubosti na to? 232 00:10:35,140 --> 00:10:36,034 >> MADAY: [nečujan]. 233 00:10:36,034 --> 00:10:38,700 DAVID Malan: Da, samo gurnuti male bijele prekidači ispred. 234 00:10:38,700 --> 00:10:41,290 I želite da čarolija iz 42, te se za dočepa 235 00:10:41,290 --> 00:10:44,061 to CS50 stres Lopta ako se ovo. 236 00:10:44,061 --> 00:10:44,560 U redu. 237 00:10:44,560 --> 00:10:46,420 Dakle, imate 32. 238 00:10:46,420 --> 00:10:48,430 Mi ćemo morati 42. 239 00:10:48,430 --> 00:10:51,410 Dakle, to je osam, tako da je 40. 240 00:10:51,410 --> 00:10:54,160 I excellent-- vrlo lijepo učinili. 241 00:10:54,160 --> 00:10:55,186 Hvala ti. 242 00:10:55,186 --> 00:10:58,790 >> [PLJESAK] 243 00:10:58,790 --> 00:10:59,290 U redu. 244 00:10:59,290 --> 00:11:00,623 Dakle, imamo još jedan stres loptu. 245 00:11:00,623 --> 00:11:03,595 Učinimo to još jednom, ako mogu. 246 00:11:03,595 --> 00:11:05,368 Jedan drugi dobrovoljac? 247 00:11:05,368 --> 00:11:07,970 Besplatno stres loptica, slobodan stres loptica. 248 00:11:07,970 --> 00:11:08,470 U REDU. 249 00:11:08,470 --> 00:11:11,640 Ovamo u sredini, želiš li doći? 250 00:11:11,640 --> 00:11:14,100 U redu. 251 00:11:14,100 --> 00:11:15,552 Znam. 252 00:11:15,552 --> 00:11:16,360 Idemo tamo. 253 00:11:16,360 --> 00:11:20,818 >> Tako su brojevi here-- doći dolje. 254 00:11:20,818 --> 00:11:21,567 Kako se zoveš? 255 00:11:21,567 --> 00:11:21,984 >> Davey: Davey. 256 00:11:21,984 --> 00:11:22,820 >> DAVID Malan: Davey. 257 00:11:22,820 --> 00:11:23,320 U REDU. 258 00:11:23,320 --> 00:11:24,810 Dođi gore, Davey. 259 00:11:24,810 --> 00:11:25,890 Drago mi je da sam vas upoznala. 260 00:11:25,890 --> 00:11:28,639 A što ćemo da ste se spell-- ako bi mogao otezati tamo 261 00:11:28,639 --> 00:11:32,810 za samo jedan moment-- je broj 50. 262 00:11:32,810 --> 00:11:36,293 No, no, no no no to su Škola magneti s razlogom. 263 00:11:36,293 --> 00:11:39,370 264 00:11:39,370 --> 00:11:43,327 Dovoljno je dobio malo teže, u redu? 265 00:11:43,327 --> 00:11:44,160 Ima još osam. 266 00:11:44,160 --> 00:11:46,820 267 00:11:46,820 --> 00:11:47,320 U redu. 268 00:11:47,320 --> 00:11:48,486 Dakle, što imamo tamo? 269 00:11:48,486 --> 00:11:51,356 Imamo 32. 270 00:11:51,356 --> 00:11:54,344 Nice. 271 00:11:54,344 --> 00:11:58,610 32 plus 16 nam daje 48-- tako blizu. 272 00:11:58,610 --> 00:12:00,390 I divno. 273 00:12:00,390 --> 00:12:02,831 Čestitke Davey, kao dobro. 274 00:12:02,831 --> 00:12:05,720 >> [PLJESAK] 275 00:12:05,720 --> 00:12:06,516 >> U redu. 276 00:12:06,516 --> 00:12:09,390 Tako možemo to učiniti tijekom cijelog dana, a to ne bi sve što je mnogo više 277 00:12:09,390 --> 00:12:10,800 Zanimljivo i zahtjevnija. 278 00:12:10,800 --> 00:12:13,250 Ali to je stvarno point-- je kako je relativno jednostavna 279 00:12:13,250 --> 00:12:16,930 to je, na kraju dana, što je Računalo radi za pohranu podataka, 280 00:12:16,930 --> 00:12:21,740 pohraniti ulaza i na kraju pohraniti ili predstavljaju one izlaze. 281 00:12:21,740 --> 00:12:23,750 Ali brojevi sami nisu sve to zanimljivo. 282 00:12:23,750 --> 00:12:26,069 >> Pa ljudi, prije nekoliko godina, odlučila, znaš što? 283 00:12:26,069 --> 00:12:27,860 Bilo bi lijepo ako Računala nisu bili samo 284 00:12:27,860 --> 00:12:31,030 kalkulatori za aritmetičke operacija, ali zapravo mogao 285 00:12:31,030 --> 00:12:35,209 raditi stvari kao što su obrada teksta, ili e-mail, ili više moderne inkarnacije 286 00:12:35,209 --> 00:12:36,500 ove vrste tehnologije. 287 00:12:36,500 --> 00:12:40,680 I tako je svijet odlučio proizvoljno, nego univerzalno, 288 00:12:40,680 --> 00:12:44,380 da, ako želite pohraniti kapitala slovo A u računalu, znate što? 289 00:12:44,380 --> 00:12:47,730 Ajmo svi slažu za pohranu neki uzorak nula i ones-- 290 00:12:47,730 --> 00:12:52,422 bits-- koji u konačnici predstavlja decimalni broj 65. 291 00:12:52,422 --> 00:12:53,630 Samo ćemo svi slažu po tome. 292 00:12:53,630 --> 00:12:56,620 >> 66 bi predstavljao B, 67 bi predstavljao C, 293 00:12:56,620 --> 00:13:00,210 a tu je grozdove drugih obrazaca nula i jedinica, ili temeljni brojevi, 294 00:13:00,210 --> 00:13:02,224 koji bi predstavljati ostala slova mirno. 295 00:13:02,224 --> 00:13:04,390 Dakle, ako ste vrsta psihički apsorbirati taj trenutak, 296 00:13:04,390 --> 00:13:10,900 Namjerno sam stavio gore kroz I, gdje je H 72, a ja 73. 297 00:13:10,900 --> 00:13:15,830 Ako je računalo zatim u kontekstu program za obradu teksta ili e-mail, 298 00:13:15,830 --> 00:13:19,620 otkrila ispod haube imati ovi obrasci bits-- uzorak 299 00:13:19,620 --> 00:13:22,500 bitova koji predstavljaju 72, zatim 73, a zatim 33-- 300 00:13:22,500 --> 00:13:26,640 kakva bi to bila čarolija u tom programu? 301 00:13:26,640 --> 00:13:28,150 >> Pa bok, a zatim nešto. 302 00:13:28,150 --> 00:13:31,460 Mi ne znaju, ali zaista 33-- ne na grafikonu earlier-- 303 00:13:31,460 --> 00:13:33,170 je jednostavno uskličnik. 304 00:13:33,170 --> 00:13:38,870 Dakle, 72 je H, 73 je sam, 33 događa biti uskličnik i dalje. 305 00:13:38,870 --> 00:13:41,719 Ali to je sve u redu i dobro, u stvari danas, umjesto 306 00:13:41,719 --> 00:13:43,760 samo koristiti sedam ili osam bita, zahvaljujući nešto 307 00:13:43,760 --> 00:13:46,530 zove Unicode razliku u ASCII natrag u dan, 308 00:13:46,530 --> 00:13:50,010 mi zapravo može predstavljati još zanimljivi likovi od samih 309 00:13:50,010 --> 00:13:52,980 ovi originalni engleski pristran slova. 310 00:13:52,980 --> 00:13:56,030 Ali, mi također može predstavljati i uredniji stvari kao što su boja. 311 00:13:56,030 --> 00:13:59,750 >> Ako ste ikada čuli akronim RGB, crvena, zelena, plava, da je 312 00:13:59,750 --> 00:14:03,510 samo znači da računalo obično koristi tri seta bits-- 313 00:14:03,510 --> 00:14:06,760 neki broj bitova koji predstavljaju broj za koliko crvena želite, 314 00:14:06,760 --> 00:14:08,940 drugi set bitova za koliko zeleni želite, 315 00:14:08,940 --> 00:14:11,430 i drugi set broj za koliko plavo želite. 316 00:14:11,430 --> 00:14:14,457 Tako veliki broj znači puno crvena, mali broj znači da nema crvene boje. 317 00:14:14,457 --> 00:14:16,290 I tako su ljubazni Srednje vrijednosti ovdje. 318 00:14:16,290 --> 00:14:20,180 >> Pa daj mi neke crvene, daj mi neki zelena, i daj mi malo plave. 319 00:14:20,180 --> 00:14:24,260 A ako miješati ta tri nijanse boje zajedno, u ovom slučaju, 320 00:14:24,260 --> 00:14:26,850 ti ovaj taman nijansu žute ili smeđe. 321 00:14:26,850 --> 00:14:32,330 Ali to uzorak osam plus osam plus eight-- tako 24 bits-- 322 00:14:32,330 --> 00:14:36,550 s lijeva na desno, kako računalo predstavljalo bi tu određenu boju. 323 00:14:36,550 --> 00:14:38,090 Sada je to samo točka na ekranu. 324 00:14:38,090 --> 00:14:42,230 Ako pogledate jako blizu na TV-u svoje računalo, vidjet ćete točkica ili piksela. 325 00:14:42,230 --> 00:14:45,420 A ako imate cijeli mrežu piksela, horizontalno i vertikalno, 326 00:14:45,420 --> 00:14:46,630 imate slike. 327 00:14:46,630 --> 00:14:49,029 I onda ako se uzme slika i onda pranje 328 00:14:49,029 --> 00:14:52,070 pokaži drugu sliku, još jedan slike, druga slika, druga slika, 329 00:14:52,070 --> 00:14:54,760 jako brzo, što naravno ima filmova. 330 00:14:54,760 --> 00:14:56,109 >> I tako primijetiti gdje smo počeli. 331 00:14:56,109 --> 00:14:57,650 Počeli smo s tim nula i jedinica. 332 00:14:57,650 --> 00:15:00,570 Radili smo od tamo u decimalnu brojevi, kako ih predstavljaju. 333 00:15:00,570 --> 00:15:02,070 Sada imamo slova abecede. 334 00:15:02,070 --> 00:15:05,664 No, u drugim kontekstima čekati, možemo koristiti još nekoliko bitova i predstavljaju boje. 335 00:15:05,664 --> 00:15:07,830 Čim imate Sposobnost da predstavljaju boje, 336 00:15:07,830 --> 00:15:11,200 imate mogućnost da predstavljaju fotografije i animirane GIF-ovi 337 00:15:11,200 --> 00:15:13,780 i druge takve znakovi na zaslonu. 338 00:15:13,780 --> 00:15:17,160 A kada imate hrpu Slike leti prema čovjeku odjednom, 339 00:15:17,160 --> 00:15:21,480 to izgleda kao filmove, i na taj način dobili video kao dobro. 340 00:15:21,480 --> 00:15:23,460 >> Dakle, pomoću ove vrlo jednostavni primitivci Da li smo 341 00:15:23,460 --> 00:15:28,070 imaju način predstavljanja na kraju sve ove oblike medija. 342 00:15:28,070 --> 00:15:30,450 A mi smo opet sažeto i opet i opet, sve dok ne 343 00:15:30,450 --> 00:15:33,467 dobiti od najnižoj razini ovoj najvišoj razini. 344 00:15:33,467 --> 00:15:35,550 Dakle, to nam daje ovo Općenito ideja apstrakcije. 345 00:15:35,550 --> 00:15:36,990 Ali počeli smo ovdje. 346 00:15:36,990 --> 00:15:38,790 >> Evo sad, mogli bismo predstavlja u računalu 347 00:15:38,790 --> 00:15:41,920 naši ulaza s nula i jedinica, naši izlazi u nula i jedinica, 348 00:15:41,920 --> 00:15:43,640 ali ono što se događa unutar okvira? 349 00:15:43,640 --> 00:15:46,080 To je mjesto gdje računalo znanost dobiva zanimljiv. 350 00:15:46,080 --> 00:15:49,770 To je mjesto gdje se zapravo ponijeti vlastite misli nositi na rješavanju problema. 351 00:15:49,770 --> 00:15:52,590 Sada možemo odrediti, jer je Ostatak semestra, da. 352 00:15:52,590 --> 00:15:53,870 Znam kako binarni djela. 353 00:15:53,870 --> 00:15:57,942 Sjećam se kako je ASCII ili Unicode-- mapiranje za letters-- djela. 354 00:15:57,942 --> 00:15:59,650 A to svakako stoji da je razlog da smo 355 00:15:59,650 --> 00:16:03,470 mogao bi predstavljati crvene i zelene i plava, a predstavljaju multimedija, kao dobro. 356 00:16:03,470 --> 00:16:05,390 No, to je zanimljiva stvar. 357 00:16:05,390 --> 00:16:09,790 To je ono što čini nekoga sposoban za rješavanje problema. 358 00:16:09,790 --> 00:16:11,980 >> I jedan takav problem smo željeli učiniti, doista, 359 00:16:11,980 --> 00:16:15,345 pokazuje da prisustvo ili to algoritamski. 360 00:16:15,345 --> 00:16:16,470 A opet, možda ću to učiniti. 361 00:16:16,470 --> 00:16:19,580 Možda ću napraviti jedan, dva, tri, četiri pet, šest, sedam, osam i devet. 362 00:16:19,580 --> 00:16:21,520 I ja sam to mogao napisati dolje pratiti njega. 363 00:16:21,520 --> 00:16:23,769 No, to je samo kako bih predstavlja podatke. 364 00:16:23,769 --> 00:16:27,550 Ili sam mogao učiniti faster-- dvije, četiri, šest, osam, deset, 12, 14, 16, 18, 20, 365 00:16:27,550 --> 00:16:30,380 22-- se osjeća kao dva puta tako brzo, ali to je još uvijek 366 00:16:30,380 --> 00:16:32,050 idući u uzeti puno vremena. 367 00:16:32,050 --> 00:16:35,990 >> No, ispostavilo se, ako se još iskoristiti još resource-- i doista računala 368 00:16:35,990 --> 00:16:38,940 ovih dana imaju više procesora ili mozak. 369 00:16:38,940 --> 00:16:41,970 Ispostavilo se računala mogu učiniti puno stvari odjednom, 370 00:16:41,970 --> 00:16:44,460 i zaista mi, u ovoj sobi, može predstavljati upravo to. 371 00:16:44,460 --> 00:16:47,130 >> Dakle, to je malo društveno nespretan, ali ako bi humor me 372 00:16:47,130 --> 00:16:51,550 za samo postupak u tri koraka, neka pitam sve na svom mjestu postoji samo 373 00:16:51,550 --> 00:16:54,640 ustati na trenutak. 374 00:16:54,640 --> 00:16:57,380 Ustani. 375 00:16:57,380 --> 00:17:01,580 Tako da mislim na sebe, broj one-- tako da svatko u ovoj sobi, 376 00:17:01,580 --> 00:17:05,010 osim ljudi koji nisu obvezuje, razmišljaju broj jedan. 377 00:17:05,010 --> 00:17:06,510 Tako da je vaš broj upravo sada. 378 00:17:06,510 --> 00:17:09,399 To je prvi korak, ili kao računalni znanstvenik ili programer 379 00:17:09,399 --> 00:17:11,827 obično će učiniti, idemo za početak brojanja na nuli. 380 00:17:11,827 --> 00:17:14,410 Ako je najmanji broj možemo predstavlja s tim žaruljama 381 00:17:14,410 --> 00:17:17,410 je nula, samo ih ostavljajući sve off, kao što bi i samo 382 00:17:17,410 --> 00:17:19,271 početi brojati od nula je umjesto jednog. 383 00:17:19,271 --> 00:17:21,020 I to je ono računalni znanstvenici. 384 00:17:21,020 --> 00:17:23,750 Dakle, korak nulu, ustati i mislim na broj jedan. 385 00:17:23,750 --> 00:17:26,339 Sljedeći korak je učinimo par off s nekim stajanja 386 00:17:26,339 --> 00:17:27,660 i dodati svoje brojeve zajedno. 387 00:17:27,660 --> 00:17:30,660 388 00:17:30,660 --> 00:17:32,850 Divno. 389 00:17:32,850 --> 00:17:37,640 >> Dakle, u ovom trenutku u vremenu, doslovno svi sudjeluju 390 00:17:37,640 --> 00:17:41,930 misli na broju 2, osim za jednu ak osoba, ako imamo 391 00:17:41,930 --> 00:17:43,450 neparan broj ljudi u sobi. 392 00:17:43,450 --> 00:17:50,640 A sada je treći stupanj ovdje će biti učinimo, jedan od vas treba sjesti. 393 00:17:50,640 --> 00:17:54,490 Jedan od trebali sjesti, a ako ste još uvijek stoji, 394 00:17:54,490 --> 00:17:56,590 povratak na korak jedan. 395 00:17:56,590 --> 00:18:44,799 396 00:18:44,799 --> 00:18:45,790 U redu. 397 00:18:45,790 --> 00:19:00,760 398 00:19:00,760 --> 00:19:01,650 U redu. 399 00:19:01,650 --> 00:19:03,880 Dakle, sve više i više ljudi trebao biti sjeo. 400 00:19:03,880 --> 00:19:08,280 Primijetite da je ovo inducirana loop-- nekakav ciklusa. 401 00:19:08,280 --> 00:19:11,983 Neki od vas bi trebao biti nezgodno zaglavio, ide natrag i naprijed između jedan korak 402 00:19:11,983 --> 00:19:14,180 i dva, jedan i dva, jedan i dva. 403 00:19:14,180 --> 00:19:21,190 404 00:19:21,190 --> 00:19:21,810 To je u redu. 405 00:19:21,810 --> 00:19:22,630 Naš prvi bug. 406 00:19:22,630 --> 00:19:24,740 Mi ćemo se nositi s tim. 407 00:19:24,740 --> 00:19:25,320 U redu. 408 00:19:25,320 --> 00:19:27,370 Dopustite mi da pokušam potaknuti stvari. 409 00:19:27,370 --> 00:19:31,454 >> U teoriji, samo jedna osoba stoji kao i svi i dalje upariti off. 410 00:19:31,454 --> 00:19:33,870 No, dopustite mi ubrzati s ljudima i dalje stoji. 411 00:19:33,870 --> 00:19:35,480 Koji broj se vi mislili? 412 00:19:35,480 --> 00:19:36,070 46. 413 00:19:36,070 --> 00:19:36,570 U REDU. 414 00:19:36,570 --> 00:19:37,820 Idi naprijed i sjesti. 415 00:19:37,820 --> 00:19:39,190 Vi dečki još uvijek stoji. 416 00:19:39,190 --> 00:19:42,130 Tko još uvijek stoji? 417 00:19:42,130 --> 00:19:45,240 Koji broj se vi mislili? 418 00:19:45,240 --> 00:19:46,160 U REDU. 419 00:19:46,160 --> 00:19:47,900 >> Dakle, mi ćemo se vratiti k vama. 420 00:19:47,900 --> 00:19:49,630 U stražnjem? 421 00:19:49,630 --> 00:19:50,790 Što je to? 422 00:19:50,790 --> 00:19:53,100 22. 423 00:19:53,100 --> 00:19:56,540 U redu je netko gore top-- da? 424 00:19:56,540 --> 00:19:57,720 34. 425 00:19:57,720 --> 00:19:58,300 U REDU. 426 00:19:58,300 --> 00:20:02,780 Više ovdje na mom redu-ovdje? 427 00:20:02,780 --> 00:20:06,820 132, jako lijepo. 428 00:20:06,820 --> 00:20:08,380 22? 429 00:20:08,380 --> 00:20:08,990 >> U REDU. 430 00:20:08,990 --> 00:20:10,031 I tko još stoji? 431 00:20:10,031 --> 00:20:11,000 Ovdje? 432 00:20:11,000 --> 00:20:14,520 46, jako lijepo. 433 00:20:14,520 --> 00:20:16,890 72. 434 00:20:16,890 --> 00:20:18,220 Ne mogu odugovlačiti puno duže. 435 00:20:18,220 --> 00:20:20,520 Da? 436 00:20:20,520 --> 00:20:22,490 30, lijepo. 437 00:20:22,490 --> 00:20:24,120 Ovdje? 438 00:20:24,120 --> 00:20:26,200 23? 439 00:20:26,200 --> 00:20:27,270 23. 440 00:20:27,270 --> 00:20:30,920 >> I mislim da je to svima osim vama, bez pritiska. 441 00:20:30,920 --> 00:20:32,860 Čekaj. 442 00:20:32,860 --> 00:20:33,360 28? 443 00:20:33,360 --> 00:20:37,500 444 00:20:37,500 --> 00:20:38,281 Samo osam. 445 00:20:38,281 --> 00:20:38,780 U REDU. 446 00:20:38,780 --> 00:20:41,030 Samo osam. 447 00:20:41,030 --> 00:20:42,580 Ovdje dolje? 448 00:20:42,580 --> 00:20:44,570 30. 449 00:20:44,570 --> 00:20:47,344 23. 450 00:20:47,344 --> 00:20:47,843 24. 451 00:20:47,843 --> 00:20:50,810 452 00:20:50,810 --> 00:20:52,310 18. 453 00:20:52,310 --> 00:20:54,690 Ovo je najgora primjena ovog algoritma ikad. 454 00:20:54,690 --> 00:20:55,190 U REDU. 455 00:20:55,190 --> 00:20:59,760 Dakle, bilo tko drugi? 456 00:20:59,760 --> 00:21:00,421 Itko drugi? 457 00:21:00,421 --> 00:21:00,920 U REDU. 458 00:21:00,920 --> 00:21:03,300 Još jedan. 459 00:21:03,300 --> 00:21:04,400 16? 460 00:21:04,400 --> 00:21:04,900 U REDU. 461 00:21:04,900 --> 00:21:05,510 16. 462 00:21:05,510 --> 00:21:06,010 U redu. 463 00:21:06,010 --> 00:21:09,070 Dakle, ako nisam propustio itko u odsjaj ovdje, kad sam udario Enter, 464 00:21:09,070 --> 00:21:13,091 vidjet ćemo, algoritamski je Ukupan broj ljudi u Sandersa. 465 00:21:13,091 --> 00:21:16,340 Jer opet, to je kao da je svatko kao što je sjeo, prošao svoj broj off 466 00:21:16,340 --> 00:21:19,215 da je netko drugi, netko drugi, da je netko drugi, tako da je u teoriji, 467 00:21:19,215 --> 00:21:22,304 na kraju, samo jedna neugodna osoba koja bi trebala biti lijevo stoji. 468 00:21:22,304 --> 00:21:22,970 No, to je u redu. 469 00:21:22,970 --> 00:21:24,290 ubrzala smo stvari ručno. 470 00:21:24,290 --> 00:21:27,590 To je posebno teško vidjeti u ovom konkretnom prostoru. 471 00:21:27,590 --> 00:21:34,200 >> A ukupan broj ljudi mislimo da postoje ovdje je 546. 472 00:21:34,200 --> 00:21:37,330 Ukupan broj Bio sam rukom po nastavnim bližnjih, 473 00:21:37,330 --> 00:21:40,660 Tko je to učinio stari škola spor način, bio je 820. 474 00:21:40,660 --> 00:21:43,660 >> [SMIJEH] 475 00:21:43,660 --> 00:21:47,170 >> [PLJESAK] 476 00:21:47,170 --> 00:21:48,670 >> To je u redu. 477 00:21:48,670 --> 00:21:50,740 Pa sigurno zatim, tu su ti bugovi. 478 00:21:50,740 --> 00:21:51,460 I to je u redu. 479 00:21:51,460 --> 00:21:53,810 I tako mislim da se na ovom prvi put nešto 480 00:21:53,810 --> 00:21:55,420 što napisati, ne mora raditi. 481 00:21:55,420 --> 00:21:57,620 To mi se dogodilo i ovdje. 482 00:21:57,620 --> 00:22:00,844 Ali neka sada razmislite o tome kako bismo mogli primijeniti tu istu ideju za nešto 483 00:22:00,844 --> 00:22:03,760 možda ste vidjeli prije, što je to stara škola tehnologija here-- 484 00:22:03,760 --> 00:22:05,130 stvarno veliki telefonski imenik. 485 00:22:05,130 --> 00:22:09,380 I pretpostavimo da je ova imeniku ima 1.000 stranica i 1.000 imena 486 00:22:09,380 --> 00:22:11,360 i brojevi abecednom unutar nje. 487 00:22:11,360 --> 00:22:14,860 >> Pa, mogli bismo vrsta primijeniti sličan Ideja da se ovaj vrlo fizički problem, 488 00:22:14,860 --> 00:22:16,270 samo me koristiti. 489 00:22:16,270 --> 00:22:18,810 Ja samo vrsta varao iskorištavanjem sve vas 490 00:22:18,810 --> 00:22:23,240 s puno i puno različitih procesora ili mozak izvršavanju neki algoritam. 491 00:22:23,240 --> 00:22:25,440 Ali ako je samo malo stari mi je, još uvijek mogu 492 00:22:25,440 --> 00:22:29,630 iskoristiti taj isti suštinu ideje podjele i osvajanje taj problem 493 00:22:29,630 --> 00:22:32,970 i opet, pri čemu je polovica vas, pola vas, pola tebi, pola od vas, 494 00:22:32,970 --> 00:22:35,830 teoretski zadržao je sjeo, dok smo ostali, teoretski, 495 00:22:35,830 --> 00:22:36,990 samo s jednom osobom. 496 00:22:36,990 --> 00:22:39,810 >> Dakle, u ovoj staroj školi technology-- mi ne 497 00:22:39,810 --> 00:22:43,030 to treba map-- ovo stara škola tehnologija, 498 00:22:43,030 --> 00:22:47,300 bismo mogli početi u potrazi za nekoga sviđa Mike Smith, jedan po jedan. 499 00:22:47,300 --> 00:22:49,410 A vidim da ne, Mike nije ovdje. 500 00:22:49,410 --> 00:22:51,110 Ja sam još uvijek u odjeljku A. 501 00:22:51,110 --> 00:22:53,900 Na kraju, ne mogu naći ja u odjeljku B. 502 00:22:53,900 --> 00:22:56,910 A to je algorithm-- korak-po-korak upute. 503 00:22:56,910 --> 00:22:59,890 Start na početku i na jednoj stranici u isto vrijeme, u potrazi za Mike Smitha. 504 00:22:59,890 --> 00:23:03,410 Je li to correct-- to Algoritam ili pristup? 505 00:23:03,410 --> 00:23:04,550 >> Da, to je točno. 506 00:23:04,550 --> 00:23:06,840 Ako je Mike ovdje, na kraju Ja ću doći do njega. 507 00:23:06,840 --> 00:23:08,139 Ali to nije učinkovit. 508 00:23:08,139 --> 00:23:09,180 To je očito vrlo sporo. 509 00:23:09,180 --> 00:23:11,340 Dakle, ja mogu poluge Isti twosies pristup. 510 00:23:11,340 --> 00:23:15,350 Ja mogu napraviti kakve dvije, četiri, šest, osam, 10, 12. 511 00:23:15,350 --> 00:23:16,330 To je dvostruko brže. 512 00:23:16,330 --> 00:23:18,290 Idem da se Mikeu brže ako je tamo. 513 00:23:18,290 --> 00:23:20,770 Je li točna? 514 00:23:20,770 --> 00:23:22,320 Da, ali sam čuo little-- NO. 515 00:23:22,320 --> 00:23:24,200 Sad sam čuo ne. 516 00:23:24,200 --> 00:23:24,700 Da. 517 00:23:24,700 --> 00:23:26,190 Postoji bug potencijalno. 518 00:23:26,190 --> 00:23:29,374 Možda Mike samo slučajno dobiva u sendviču između dvije stranice, 519 00:23:29,374 --> 00:23:31,290 jer letim kroz ova dva odjednom. 520 00:23:31,290 --> 00:23:33,580 Tako barem trebamo neke vrsta uvjetnog popraviti. 521 00:23:33,580 --> 00:23:35,330 Moram reći, hej, ako sam pogodio nekoga čija 522 00:23:35,330 --> 00:23:39,190 Naziv počinje sa slovom T umjesto jedne S, Bolje dvostruko vratiti barem jednu stranicu. 523 00:23:39,190 --> 00:23:40,767 Dakle, buggy na početku, ali popravljiv. 524 00:23:40,767 --> 00:23:43,850 No, nitko od nas će tražiti Mike Smith putem telefona na 1000 stranica 525 00:23:43,850 --> 00:23:45,290 Rezervirajte jednu stranicu u isto vrijeme. 526 00:23:45,290 --> 00:23:48,486 Što je normalna osoba će učiniti? 527 00:23:48,486 --> 00:23:50,860 Ti si idući u ići na S-ih, ako je znao gdje je točaka. 528 00:23:50,860 --> 00:23:54,230 Možda ćete otići otprilike na sredini ili malo ukoso prema kraju. 529 00:23:54,230 --> 00:23:56,850 I gledam ovdje i Ja sam u odjeljku M. 530 00:23:56,850 --> 00:23:58,952 Ali što ti znaš o ovom problemu danas, 531 00:23:58,952 --> 00:24:02,160 da nismo nužno znati prije za sve nas koji samo sebe brojanje 532 00:24:02,160 --> 00:24:03,030 ravnopravno? 533 00:24:03,030 --> 00:24:06,010 Pa, Mike je očito ide da se u ovoj polovici knjige 534 00:24:06,010 --> 00:24:07,920 ako je on ovdje uopće jer je riješeno. 535 00:24:07,920 --> 00:24:10,160 >> I tako možete vrlo dramatically-- 536 00:24:10,160 --> 00:24:11,250 >> [DAHTANJE] 537 00:24:11,250 --> 00:24:12,300 >> Znam. 538 00:24:12,300 --> 00:24:16,940 >> [PLJESAK] 539 00:24:16,940 --> 00:24:19,450 >> To je zapravo jako jednostavan, ako to učiniti niz kralježnicu tamo. 540 00:24:19,450 --> 00:24:22,070 No, onda možete baciti pola problema daleko. 541 00:24:22,070 --> 00:24:25,950 Sada, ja sam otišao s istom problem-- naći Mike Smith u telefonu book-- 542 00:24:25,950 --> 00:24:29,610 ali sada je telefonski imenik počinje na M i odlazi do Z, ali je upola velika. 543 00:24:29,610 --> 00:24:30,890 >> No, to je ono što je impresivno. 544 00:24:30,890 --> 00:24:34,170 Baš kao u teoriji, vama, kada svi sjede samo polovicu u isto vrijeme, 545 00:24:34,170 --> 00:24:37,150 Problem je dobio upola velika, upola velika, opet i opet. 546 00:24:37,150 --> 00:24:40,260 Tako je ovaj problem postao Isti problem, ali upola velika. 547 00:24:40,260 --> 00:24:42,670 Sada je problema 250 stranica. 548 00:24:42,670 --> 00:24:45,340 Čim sam shvatio, oh, ja sam u T sekciji slučajno. 549 00:24:45,340 --> 00:24:46,590 Ja sam otišao predaleko. 550 00:24:46,590 --> 00:24:48,500 Ja mogu baciti da je polovina od telefonskog imenika daleko. 551 00:24:48,500 --> 00:24:50,410 Sada, ja sam dolje do Četvrtina problema. 552 00:24:50,410 --> 00:24:53,910 >> A možete ponoviti, ponavljati, ponoviti sve dok se, u teoriji, ti si 553 00:24:53,910 --> 00:24:55,460 napustio sa samo jednom stranicom. 554 00:24:55,460 --> 00:24:59,010 A ako Mike je na toj stranici, Ja sada mogu riješiti ovaj problem. 555 00:24:59,010 --> 00:25:00,810 No, kako brzo sam to riješiti? 556 00:25:00,810 --> 00:25:05,420 U prvom slučaju, to mi je kao možda 1.000 koraka za pronalaženje Mike Smith. 557 00:25:05,420 --> 00:25:09,260 To bi moglo imati uzeti me-- Podigla sam telefonski imenik 558 00:25:09,260 --> 00:25:11,440 i ja počeo gleda jedna stranica u isto vrijeme, 559 00:25:11,440 --> 00:25:13,480 Mike bi moglo biti 1.000 stranica kasnije. 560 00:25:13,480 --> 00:25:16,020 >> Drugi pristup je možda Potrebno mi je 500 koraka, 561 00:25:16,020 --> 00:25:17,960 jer letim kroz dvije u isto vrijeme. 562 00:25:17,960 --> 00:25:21,082 I treći pristup ipak, to je osobito snažan. 563 00:25:21,082 --> 00:25:23,790 Ali neka se uzeti u obzir ono što se zapravo učinio s ovom trećem pristupu. 564 00:25:23,790 --> 00:25:27,590 Morat ću što ću nazvati samo ovi izjave, jednu po jednu. 565 00:25:27,590 --> 00:25:28,560 Javi se telefonski imenik. 566 00:25:28,560 --> 00:25:30,130 Otvorite do sredine telefonskog imenika. 567 00:25:30,130 --> 00:25:31,419 Pogledajte imena. 568 00:25:31,419 --> 00:25:33,960 A onda se stvari malo intelektualno zanimljiv, 569 00:25:33,960 --> 00:25:35,170 Ako još uvijek jednostavan. 570 00:25:35,170 --> 00:25:38,350 Ako Smith je među imena na tom trenutnu stranicu, 571 00:25:38,350 --> 00:25:40,170 onda nešto uvjetno. 572 00:25:40,170 --> 00:25:41,840 To je poput tanjura na cesti. 573 00:25:41,840 --> 00:25:42,660 Poziv Mike. 574 00:25:42,660 --> 00:25:44,930 Ako je Mike je među imenima na toj stranici, zove Mike. 575 00:25:44,930 --> 00:25:49,720 Ali samo da crta i četiri ako linija stablo, ako hoćete, je istina. 576 00:25:49,720 --> 00:25:51,590 Odgovor na to pitanje je potvrdan. 577 00:25:51,590 --> 00:25:55,520 >> Inače, ako Smith je ranije u book-- drugim riječima, ako sam u odjeljku M 578 00:25:55,520 --> 00:25:58,540 i ja sam u potrazi za nekoga da lijevi, onda ono što mi je činiti 579 00:25:58,540 --> 00:26:00,300 je nešto vrlo slično. 580 00:26:00,300 --> 00:26:03,440 Tada sam trebao otvoriti do sredine lijeve polovice knjige. 581 00:26:03,440 --> 00:26:07,930 Na taj način ići lijevo, a zatim povratak na korak dva. 582 00:26:07,930 --> 00:26:09,290 Pogledajte imena tamo. 583 00:26:09,290 --> 00:26:12,779 >> Dakle, drugim riječima, učiniti istu stvar, ali na problem koji je bio prepolovljen. 584 00:26:12,779 --> 00:26:13,570 Znate li što drugo? 585 00:26:13,570 --> 00:26:16,470 Ako Smith je kasnije u knjizi temelji se na stranici gledam, 586 00:26:16,470 --> 00:26:18,790 otvoren sredini desna polovica knjige 587 00:26:18,790 --> 00:26:22,050 a zatim se vratiti opet korak dva, else-- 588 00:26:22,050 --> 00:26:24,000 tu je četvrtina mogućnost ovdje. 589 00:26:24,000 --> 00:26:28,830 Mike je bilo ovdje ili na lijevo ili udesno ili ne postoji. 590 00:26:28,830 --> 00:26:30,570 I ovdje možemo bolje razmisliti o tome. 591 00:26:30,570 --> 00:26:33,360 A u stvari, ako ste ikada imali računalo samo srušiti na vas, 592 00:26:33,360 --> 00:26:36,822 koji je ponekad, ali ne uvijek, Rezultat samo ljudske programer ne 593 00:26:36,822 --> 00:26:39,280 realizirati, oh pucati, tu je zapravo ovo četvrti scenarij. 594 00:26:39,280 --> 00:26:41,650 A ako ne pisati kod nositi taj scenarij, 595 00:26:41,650 --> 00:26:43,220 ponekad ne znam što se računalo moglo učiniti. 596 00:26:43,220 --> 00:26:44,770 I doista program može srušiti. 597 00:26:44,770 --> 00:26:47,550 >> No, u ovom slučaju, mislio sam o tome, a ja sam rekao, drugi zatvoriti, 598 00:26:47,550 --> 00:26:49,850 zato što je to četvrta logično mogući scenarij. 599 00:26:49,850 --> 00:26:51,950 Sada, neka je samo dodati neki riječnik pa smo 600 00:26:51,950 --> 00:26:55,320 može početi bacanje oko pojmova koji se su inače prilično intuitivno. 601 00:26:55,320 --> 00:26:57,870 Sve stvari koje sam upravo označene žutom bojom ovdje 602 00:26:57,870 --> 00:27:00,140 Samo ću na funkcije ili procedure. 603 00:27:00,140 --> 00:27:01,590 To su samo neka vrsta akcije. 604 00:27:01,590 --> 00:27:04,900 Tako pokupiti, otvoren, pogledaj na, poziv, otvoren, otvoren, 605 00:27:04,900 --> 00:27:09,170 quit-- to su samo radnje, ili ćemo poziva ih više formalno, funkcije. 606 00:27:09,170 --> 00:27:11,410 >> U međuvremenu, sada u žuto, Ja sam istaknuo stvari 607 00:27:11,410 --> 00:27:14,084 that-- neka je samo početak poziva im uvjetima ili grane. 608 00:27:14,084 --> 00:27:16,750 To su donositelji točke gdje možete ići na ovaj način, na taj način, 609 00:27:16,750 --> 00:27:18,100 ili neki drugi smjer i dalje. 610 00:27:18,100 --> 00:27:19,430 Dakle, oni će biti uvjeti. 611 00:27:19,430 --> 00:27:20,930 I sad ovo je malo ljubitelj. 612 00:27:20,930 --> 00:27:24,600 Nazovimo ova pitanja Boolean izrazi, 613 00:27:24,600 --> 00:27:26,530 Nakon nekoga s prezimenom bool. 614 00:27:26,530 --> 00:27:28,340 >> I logički izraz je samo nešto 615 00:27:28,340 --> 00:27:30,290 to je bilo istinito ili lažno, da ili ne. 616 00:27:30,290 --> 00:27:35,870 Dakle, to je pitanje čije je odgovor vas je važno, kako bi se u uvjetima 617 00:27:35,870 --> 00:27:39,210 napraviti decision-- vratiti odgovor, a zatim se lijevo ili desno, ili nešto 618 00:27:39,210 --> 00:27:40,450 drugo zajedno. 619 00:27:40,450 --> 00:27:42,860 >> I onda na kraju, to Linije here-- vratiti 620 00:27:42,860 --> 00:27:44,737 korak dva, vrati se na korak two-- smo mogli 621 00:27:44,737 --> 00:27:46,320 implementirati ovu ideju na različite načine. 622 00:27:46,320 --> 00:27:49,028 I onda one od vas s iskustva u programiranju mogao učiniti 623 00:27:49,028 --> 00:27:50,670 ili mogu zamisliti to drugačije. 624 00:27:50,670 --> 00:27:53,170 No, za današnje potrebe, to je samo ideja što je bitno. 625 00:27:53,170 --> 00:27:55,400 To je izazivanje ono mi općenito će nazvati 626 00:27:55,400 --> 00:28:00,110 loop-- nekakav ciklusa, jer To što mi nešto učiniti opet. 627 00:28:00,110 --> 00:28:03,340 >> Tako sada, neka je samo uzeti u obzir kako je dobar ovaj algoritam je. 628 00:28:03,340 --> 00:28:03,899 Točno je. 629 00:28:03,899 --> 00:28:06,940 Ako je Mike-a u knjizi, to je jedan od one četiri i opet scenarios-- 630 00:28:06,940 --> 00:28:08,023 i opet, mi ćemo ga pronaći. 631 00:28:08,023 --> 00:28:08,890 No, kako je to dobro? 632 00:28:08,890 --> 00:28:10,150 Pa, nemamo da se previše formalno ovdje. 633 00:28:10,150 --> 00:28:12,066 Ali neka je samo zemljište nešto, X i Y, da se 634 00:28:12,066 --> 00:28:14,470 osjećaj oblik ovog problema. 635 00:28:14,470 --> 00:28:17,160 >> Na x-osi je ovdje veličina moj problem. 636 00:28:17,160 --> 00:28:20,256 I y-os ovdje će biti vremena da se riješi. 637 00:28:20,256 --> 00:28:21,630 Dakle, možda je to broj stranica. 638 00:28:21,630 --> 00:28:24,400 Možda je to sekundi Stranica turns-- god. 639 00:28:24,400 --> 00:28:27,290 No želite brojati je što to će slika predstavljati. 640 00:28:27,290 --> 00:28:30,630 I to prvi algoritam, idem opisati samo kao ravnoj liniji. 641 00:28:30,630 --> 00:28:33,120 Ako postoji n stranice u telefonski imenik, a zatim ga 642 00:28:33,120 --> 00:28:36,010 Možda me čak kao n koraka kako bi pronašli Mike. 643 00:28:36,010 --> 00:28:38,930 Ako Verizon ili telefon tvrtke dodaje sljedeće godine još jednu stranicu, 644 00:28:38,930 --> 00:28:42,170 to bi mi mogao uzeti još jedan step-- još jedna jedinica vremena kako bi pronašli Mike. 645 00:28:42,170 --> 00:28:44,230 Tako da je samo ovaj jedan na jedan odnos. 646 00:28:44,230 --> 00:28:45,970 To je pravac nagiba. 647 00:28:45,970 --> 00:28:49,110 >> U međuvremenu, kako drugi algorithm-- ako sam 648 00:28:49,110 --> 00:28:51,570 ide dva na time-- dva, četiri, šest, osam ili double-- 649 00:28:51,570 --> 00:28:54,550 Čitajući stranice dvaput u isto vrijeme, istovremeno dva, 650 00:28:54,550 --> 00:28:55,710 to je još uvijek ravna linija. 651 00:28:55,710 --> 00:28:58,720 Tu je sada jedan do dva omjer, ali samo malo niže. 652 00:28:58,720 --> 00:29:02,240 Dakle, ako postoji to mnoge stranice na grafikonu ovdje u žuto, 653 00:29:02,240 --> 00:29:04,800 da bi mi se ovo mnogo koraka ili sekundi, 654 00:29:04,800 --> 00:29:07,980 u suprotnom će me odvesti dvostruko više na crvenom linijom. 655 00:29:07,980 --> 00:29:10,190 >> No, zelena linija je pravi takeaway. 656 00:29:10,190 --> 00:29:12,290 To je ono što mi općenito pozvati logorithm-- dnevnik 657 00:29:12,290 --> 00:29:13,840 n, gdje je n broj stranica. 658 00:29:13,840 --> 00:29:16,450 No, to je oblik koji je bitno danas, jer nemamo 659 00:29:16,450 --> 00:29:17,950 čak i razmišljati o crtanje bodova. 660 00:29:17,950 --> 00:29:19,830 >> Razmislite o ekstremnom scenariju. 661 00:29:19,830 --> 00:29:23,070 Pretpostavimo Verizon sutra udvostručuje broj stranica u tom telefonskom imeniku, 662 00:29:23,070 --> 00:29:24,900 od 1.000 do 2.000. 663 00:29:24,900 --> 00:29:28,440 U prvom algoritmu, ja Možda otpada dodatni 1.000 664 00:29:28,440 --> 00:29:32,080 koraci u potrazi za Mike, samo zato Verizon udvostručio veličinu knjige. 665 00:29:32,080 --> 00:29:34,740 Drugi algorithm-- to bi moglo će mi dodatnih 500 koraka. 666 00:29:34,740 --> 00:29:38,370 Još 1.000 stranica, idem po dvije time-- više 500 koraka za pronalaženje Mike. 667 00:29:38,370 --> 00:29:41,020 >> Ali to treći algoritam je vrsta čaroban. 668 00:29:41,020 --> 00:29:44,270 Verizon udvostručuje broj stranica od 1.000 do 2.000, 669 00:29:44,270 --> 00:29:47,730 No, koliko više koraka radi to uzmi me tražiti Mike? 670 00:29:47,730 --> 00:29:51,220 To je samo jedna, jer ja mogu samo suza u imeniku još jednom 671 00:29:51,220 --> 00:29:55,280 od problema na 2000 stranicu 1000 stranica problema, i voila. 672 00:29:55,280 --> 00:29:57,030 Ive 'uzeti masivni ugriz iz nje. 673 00:29:57,030 --> 00:29:59,405 >> A ako idete stvarno ekstremno, Pretpostavljam da je u imeniku 674 00:29:59,405 --> 00:30:03,600 Tvrtka je imala nešto ludo kao 4 milijarde stranica telefonski imenik. 675 00:30:03,600 --> 00:30:07,020 Pa koliko koraka može trajati naći Mike Smith u 4 milijarde 676 00:30:07,020 --> 00:30:09,990 Stranica telefonski imenik? 677 00:30:09,990 --> 00:30:16,450 To je veliki broj, ali samo 4 milijarde Dvije milijarde do milijarda 500 milijuna, 678 00:30:16,450 --> 00:30:18,720 250 million-- dalje zvuči kao velikim brojevima, 679 00:30:18,720 --> 00:30:20,980 ali sam se vrlo brzo uzimajući u manjim vrijednostima. 680 00:30:20,980 --> 00:30:24,790 >> A u stvari, ako ja učiniti math U redu, ja mogu samo podijeliti 4000000000 681 00:30:24,790 --> 00:30:28,750 od otprilike 32 puta prije Ja bi se na samo jedan. 682 00:30:28,750 --> 00:30:31,640 Dakle, ako je to telefonski imenik bilo 4 milijarde stranica, nije velika stvar. 683 00:30:31,640 --> 00:30:35,270 U roku od nekoliko sekundi, možda i 32 sekundi, mogao bih ga podijeliti na pola 684 00:30:35,270 --> 00:30:39,560 i na kraju naći Mike ili zaključiti da on nije tamo. 685 00:30:39,560 --> 00:30:42,219 I to je suština algorithm-- dobar algoritam. 686 00:30:42,219 --> 00:30:44,260 I to je jedan od Ciljevi klase kao što je ovaj, 687 00:30:44,260 --> 00:30:47,350 pokušava shvatiti kako mogu riješiti problem, ne samo ispravno, 688 00:30:47,350 --> 00:30:52,360 kao što sam uvijek znao kako se to radi jedno Stranica na time-- ali ispravno i dobro. 689 00:30:52,360 --> 00:30:55,034 Kako mogu dizajnirati dobar rješenja problema? 690 00:30:55,034 --> 00:30:57,200 Tako ćemo uzeti trenutak ovdje i vam dati osjećaj sada 691 00:30:57,200 --> 00:31:00,260 od CS50 tečaj itself-- uvesti osoblje Nekoliko naravno je. 692 00:31:00,260 --> 00:31:02,010 Neposredno prije 2:00, mi ćemo kratki predah 693 00:31:02,010 --> 00:31:03,520 tako da oni od vas koji su u kupovinu može 694 00:31:03,520 --> 00:31:05,130 patka van i uzeti pogledajte neke druge klase 695 00:31:05,130 --> 00:31:06,580 i gledati ostatak ove online. 696 00:31:06,580 --> 00:31:09,250 No, za sada, neka mi predstavljamo CS50, sam razred, 697 00:31:09,250 --> 00:31:11,330 a posebno što je novo. 698 00:31:11,330 --> 00:31:13,960 >> Dakle, prošlost proljeće, mi proveo vrlo malo time-- 699 00:31:13,960 --> 00:31:17,911 Tečaj osoblje i I-- razmišljanja o tome što je to što želimo CS50 biti, 700 00:31:17,911 --> 00:31:19,910 i ide natrag u prvi načela, da tako kažemo, 701 00:31:19,910 --> 00:31:22,760 uzeti u obzir ono što je želimo ovaj tečaj izgledati i biti 702 00:31:22,760 --> 00:31:23,740 kao što je po svojim učenicima. 703 00:31:23,740 --> 00:31:26,480 I tako što ćete vidjeti u problemu postaviti na nulu, kao, poziv 704 00:31:26,480 --> 00:31:28,780 da pogledamo kako URL koji sažima 705 00:31:28,780 --> 00:31:33,270 neki od motiva iza Sljedeća karakteristika pada 2016. 706 00:31:33,270 --> 00:31:35,570 >> Dakle, kao što ste možda sakupljen iz TL: DR poklon, 707 00:31:35,570 --> 00:31:39,060 Nastavni plan i danas, kao i iz Katalog Naravno, ove godine u CS50, 708 00:31:39,060 --> 00:31:42,540 ste samo očekuje da prisustvuju today-- tako posao dobro done-- 709 00:31:42,540 --> 00:31:45,960 a posljednji predavanje 21. studenog. 710 00:31:45,960 --> 00:31:49,150 A ti si dobrodošao, ali se ne očekuje da prisustvovati one predavanja u sredini, 711 00:31:49,150 --> 00:31:51,180 jer ono što radimo ove godine, snima 712 00:31:51,180 --> 00:31:52,661 u realnom vremenu materijala tečaja je. 713 00:31:52,661 --> 00:31:54,660 Tako će sve ostati struja i ugraditi 714 00:31:54,660 --> 00:31:57,410 najbolje što can-- aktualnim događajima i razgovore koji ljudi možda 715 00:31:57,410 --> 00:32:00,400 imati u industriji u svijet, ali što taj materijal 716 00:32:00,400 --> 00:32:03,892 dostupni, kao rezultat, čak earlier-- zajedno s cjelovitim transkriptima 717 00:32:03,892 --> 00:32:05,850 i mogućnost pretraživanja i linkove na druge resurse. 718 00:32:05,850 --> 00:32:07,930 >> I doista, mi smo bili tvrdeći neko vrijeme 719 00:32:07,930 --> 00:32:10,830 a mi sada ne vjerujem da je ovo, da možemo stvarati, digitalno, 720 00:32:10,830 --> 00:32:15,170 više potop, više uvjerljiv obrazovno iskustvo, za razliku od 721 00:32:15,170 --> 00:32:19,110 za prikupljanje ovdje neke 23 puta osobno, čuo nekoga poput mene 722 00:32:19,110 --> 00:32:22,925 jednostavno govoriti o računalnoj znanosti, za razliku od aktivnije sudjelovanje. 723 00:32:22,925 --> 00:32:25,800 Dakle, što ćete vidjeti u toku je nastavni plan i program skica semestra ovdje 724 00:32:25,800 --> 00:32:27,840 uz kada Predavanja se snima, na koje ste 725 00:32:27,840 --> 00:32:29,710 dobrodošao, ali se ne očekuje, i kada će 726 00:32:29,710 --> 00:32:31,640 biti objavljen na web stranici tečaja je. 727 00:32:31,640 --> 00:32:34,300 >> A što ćemo raditi ovdje Srijedom počinju sljedeći tjedan, 728 00:32:34,300 --> 00:32:37,362 je puno intimnije, sa samo oni ljudi koji žele sudjelovati, 729 00:32:37,362 --> 00:32:39,820 je tzv šetnja, gdje sam i glave toku je 730 00:32:39,820 --> 00:32:41,730 zapravo će stvari malo intimniji 731 00:32:41,730 --> 00:32:44,313 ovdje u orkestru dio, još uvijek imaju neku tehnologiju 732 00:32:44,313 --> 00:32:46,365 i šetnja kroz tekuće tjedan Problem set, 733 00:32:46,365 --> 00:32:50,020 i ponuditi vam particularly-- ako među onima manje comfortable-- sve više 734 00:32:50,020 --> 00:32:52,790 smjernice koje možda želite ili potreba za tjedan izazov. 735 00:32:52,790 --> 00:32:55,820 A isto tako, za one koji ne mogu prisustvovati oni osobno, nije velika stvar. 736 00:32:55,820 --> 00:32:58,486 Tu će se na sličan način na čelu jedan od tečaja je višeg osoblja, 737 00:32:58,486 --> 00:33:02,650 Zamalya, ista prilika ugrađen u problem se postavlja. 738 00:33:02,650 --> 00:33:04,960 >> Problem postavlja ove godine bit će objavljen petkom 739 00:33:04,960 --> 00:33:08,080 i više ne činiti sedam dana kasnije, ali 10 dana later-- namjerno 740 00:33:08,080 --> 00:33:10,910 preklapanje sa svakim problemom postaviti, kako bi se bolje primiti, 741 00:33:10,910 --> 00:33:13,050 nadamo se, oseka i protok u studentskim rasporedi, 742 00:33:13,050 --> 00:33:16,550 pogotovo kad midterms ili atletika ili znanstvenici ili extracurriculars 743 00:33:16,550 --> 00:33:18,465 imaju tendenciju da dolaze i odlaze osobito sredinom semestra. 744 00:33:18,465 --> 00:33:21,340 To bi trebalo dati malo više diskrecija je li ti prednji 745 00:33:21,340 --> 00:33:25,690 učitati svoj tjedan s CS50 ili leđima tereta to na sljedeći vikend umjesto. 746 00:33:25,690 --> 00:33:28,817 Dakle, izgleda da je tečaj u nastavni plan i program ovdje zbog istog rasporeda. 747 00:33:28,817 --> 00:33:30,900 A vi ćete primijetiti previše među promjene u ovoj godini, 748 00:33:30,900 --> 00:33:34,082 za one koji više upoznat s programiranje u prošlosti, 749 00:33:34,082 --> 00:33:36,290 ćemo početi semestru mi ćemo danas u nule, 750 00:33:36,290 --> 00:33:39,730 usredotočiti posebno na jeziku zove C, a onda ne prijelaz 751 00:33:39,730 --> 00:33:43,430 u PHP, ali se jezik zove Python prema kraju semestra 752 00:33:43,430 --> 00:33:46,565 u kontekstu web programiranje, uz SQL i JavaScript, 753 00:33:46,565 --> 00:33:48,930 HTML, CSS i još više. 754 00:33:48,930 --> 00:33:51,790 >> A u odgovoru na jedan FAQ, to je doista slučaj 755 00:33:51,790 --> 00:33:55,520 da je CS nije tako strašno kao što sam nekoć mislio da je, ali to je kao puno posla 756 00:33:55,520 --> 00:33:57,280 kao što sam čuo da bi moglo biti. 757 00:33:57,280 --> 00:34:03,210 No, to je recimo da ovdje su neke statistike od jeseni 2015. studentskog tijela, 758 00:34:03,210 --> 00:34:06,460 pri čemu vodoravne plave linije predstavlja prosječan broj sati 759 00:34:06,460 --> 00:34:06,960 prijavljen. 760 00:34:06,960 --> 00:34:10,570 I vidjet ćete prosječno šest do 10 do 12-- možda 16 761 00:34:10,570 --> 00:34:14,580 ili tako i tako dalje, ali visoke varijanca da bude jasno. 762 00:34:14,580 --> 00:34:18,570 I tako shvatiti da ne postoji samo studenti udobnije i manje 763 00:34:18,570 --> 00:34:22,150 ugodno u tijeku, ali odgovara za podršku 764 00:34:22,150 --> 00:34:25,699 Struktura da se one studente kroz semestar uspješno. 765 00:34:25,699 --> 00:34:29,409 >> Doista, u odgovoru na jedan FAQ, trebali uzmete CS50 kao prvoj godini? 766 00:34:29,409 --> 00:34:30,139 Apsolutno. 767 00:34:30,139 --> 00:34:32,690 A u stvari, ja ne žalim što nije pronašao put 768 00:34:32,690 --> 00:34:35,170 ili pronašao novo područje da prva godina kao dobro. 769 00:34:35,170 --> 00:34:39,149 I treba li se CS50 sa drugi tečajevi, sigurno su well-- 770 00:34:39,149 --> 00:34:41,940 a opći savjet bismo mogli dati učenicima, koji CS50 je vjerojatno 771 00:34:41,940 --> 00:34:44,929 nije vrsta klasu ili intro klase da bi trebali ponijeti sa tri 772 00:34:44,929 --> 00:34:47,199 druge ili četiri p-set klase. 773 00:34:47,199 --> 00:34:50,583 Ali, ako ste uzimanje druge dvije p-set klase, nešto drugo, i CS50, 774 00:34:50,583 --> 00:34:51,499 apsolutno rukovanje. 775 00:34:51,499 --> 00:34:54,900 Ja sam imao mnogo učenika u prošlosti učinili prilično uspješno. 776 00:34:54,900 --> 00:34:57,490 >> A da bi vas ka da je ciljnu liniju uspješno, 777 00:34:57,490 --> 00:35:00,260 ne naravno ima sections-- različitih pjesama za učenike 778 00:35:00,260 --> 00:35:03,100 manje udoban, udobnije, a negdje između, 779 00:35:03,100 --> 00:35:04,850 pri čemu u tijeku je Prvi problem set, 780 00:35:04,850 --> 00:35:06,360 vas će se tražiti da opišu sebe. 781 00:35:06,360 --> 00:35:09,151 A ako ste među onima manje udoban, to je vrsta stvar 782 00:35:09,151 --> 00:35:10,420 da ste upravo prije znali. 783 00:35:10,420 --> 00:35:13,010 I doista, to je bio raste demografske u CS50 784 00:35:13,010 --> 00:35:14,090 za prilično nekoliko godina. 785 00:35:14,090 --> 00:35:17,680 >> Kao što je od prošle jeseni za Primjerice, 58% klase 786 00:35:17,680 --> 00:35:20,560 sebe opisao kao među onima manje udoban, 787 00:35:20,560 --> 00:35:23,210 9% među onima više udoban, a onda 788 00:35:23,210 --> 00:35:25,900 ostali studenti vani u crvena opisujući sebe 789 00:35:25,900 --> 00:35:27,890 kao što je negdje između. 790 00:35:27,890 --> 00:35:31,980 I vidjet ćete ovdje teme ukupni i raspored sekcije, od kojih su svi 791 00:35:31,980 --> 00:35:34,820 nude se u osobi, u u realnom vremenu, uz naravno a 792 00:35:34,820 --> 00:35:38,320 Nevjerojatno osoblje nastavnih bližnjima i naravno pomoćnici, od kojih su neki 793 00:35:38,320 --> 00:35:39,660 upoznat ćete u samo jednom trenutku. 794 00:35:39,660 --> 00:35:42,993 >> same sekcije, kao što ćete vidjeti, volju se ponedjeljkom i utorkom i srijedom, 795 00:35:42,993 --> 00:35:45,910 kako bi se omogućilo da se roniti u nakon odabira, ako tako 796 00:35:45,910 --> 00:35:48,110 birati, u tijeku je predavanje je ranije tog tjedna. 797 00:35:48,110 --> 00:35:51,420 A zatim radno vrijeme, koje svakako, sa svakim godine, 798 00:35:51,420 --> 00:35:54,110 su ne manje od a izazov za tečaj. 799 00:35:54,110 --> 00:35:57,040 I ove godine, mi ne planiramo samo za držanje ured hours-- jedan 800 00:35:57,040 --> 00:36:00,300 na jednoj mogućnosti za pomoć za studenti srijedom četvrtkom 801 00:36:00,300 --> 00:36:03,790 i nedjeljom, posljednji od onih što je u poslijepodnevnim satima po dizajnu 802 00:36:03,790 --> 00:36:06,910 smanjiti neke od stresa koji uvijek javlja s kasno u noć 803 00:36:06,910 --> 00:36:10,180 p-settting s rokom looming-- ali radno vrijeme će biti ponuđena 804 00:36:10,180 --> 00:36:14,920 ponedjeljkom i utorkom i Srijedom i petkom i subotom, 805 00:36:14,920 --> 00:36:17,080 zahvaljujući našim prijateljima u HSA. 806 00:36:17,080 --> 00:36:20,330 >> CS50 sada ima svoj vlastiti prostor za studente i osoblje CS50, 807 00:36:20,330 --> 00:36:23,070 na vrhu 67. planini Auburn ulici, upravo u Harvard Squareu. 808 00:36:23,070 --> 00:36:26,340 Vizija za to je da CS50-a TFS i CAS tijekom tjedna, 809 00:36:26,340 --> 00:36:29,052 prilično je gotovo cijele dana, bit će tu za podršku. 810 00:36:29,052 --> 00:36:30,760 Dakle, ako imaš neki Pitanje na p-set 811 00:36:30,760 --> 00:36:33,093 ili ste osjećaj malo blokiran ili malo zbunjen, 812 00:36:33,093 --> 00:36:35,640 i pakao, imaš jedan sat ili pola sata između klasa, 813 00:36:35,640 --> 00:36:38,920 posebno u square-- možete pop i imaju na to pitanje odgovorio 814 00:36:38,920 --> 00:36:41,720 od imati tu zbrku clarified-- itekako u duhu, 815 00:36:41,720 --> 00:36:45,490 ste upoznati, u matematici odjel vlastiti math pitanja centar, 816 00:36:45,490 --> 00:36:49,300 ali prilično mnogo oko sat po [? Gcal?] Da ćemo objaviti na internetu. 817 00:36:49,300 --> 00:36:52,400 >> Poduke je također dostupna za one učenika, slobodno iz predmeta a 818 00:36:52,400 --> 00:36:54,750 vlastito osoblje, ako želite intimniji jedan na jedan, 819 00:36:54,750 --> 00:36:58,940 ili samo dva ili tri kolege iz razreda, koji rade s jednim od članova osoblja tečaja je. 820 00:36:58,940 --> 00:37:02,320 I doista, ovo ovdje su samo neki od članova osoblja tečaja je, 821 00:37:02,320 --> 00:37:04,120 Neke od koga ćete susret u samo jednom trenutku. 822 00:37:04,120 --> 00:37:07,440 U stvari, CS50 vlastiti demonstrator glava, 823 00:37:07,440 --> 00:37:09,790 i glavu Naravno asistent i učitelj, 824 00:37:09,790 --> 00:37:12,998 mogao doći na gore, dopustiti da ih pozdravi. 825 00:37:12,998 --> 00:37:22,498 >> [PLJESAK] 826 00:37:22,498 --> 00:37:23,456 GLAS 1: [nečujan]. 827 00:37:23,456 --> 00:37:51,842 828 00:37:51,842 --> 00:37:57,856 >> [PLJESAK] 829 00:37:57,856 --> 00:37:58,814 GLAS 2: [nečujan]. 830 00:37:58,814 --> 00:38:17,240 831 00:38:17,240 --> 00:38:27,238 >> [PLJESAK] 832 00:38:27,238 --> 00:38:28,196 GLAS 3: [nečujan]. 833 00:38:28,196 --> 00:38:58,951 834 00:38:58,951 --> 00:39:03,120 >> [PLJESAK] 835 00:39:03,120 --> 00:39:06,740 >> DAVID Malan: i omogućiti nam da dovesti na brodu dva od CS50-a najviše 836 00:39:06,740 --> 00:39:09,730 viši stožerni, Rob i Zamayla kao dobro. 837 00:39:09,730 --> 00:39:15,120 >> [PLJESAK] 838 00:39:15,120 --> 00:39:17,226 >> Doista, i Rob i Zamayla su s nama 839 00:39:17,226 --> 00:39:19,940 tako dugo, da sam bio u mogućnosti ići u CS50 arhive 840 00:39:19,940 --> 00:39:22,470 i naći ovaj vrlo SD snimke od njih sudjeluju 841 00:39:22,470 --> 00:39:25,402 na sebe pozornici prije nekoliko godina. 842 00:39:25,402 --> 00:39:26,110 ROB: [nečujan]. 843 00:39:26,110 --> 00:39:53,660 844 00:39:53,660 --> 00:39:59,247 >> [PLJESAK] 845 00:39:59,247 --> 00:40:00,080 ZAMAYLA: [nečujan] 846 00:40:00,080 --> 00:40:50,888 847 00:40:50,888 --> 00:40:52,467 >> [PLJESAK] 848 00:40:52,467 --> 00:40:53,425 DAVID Malan: Hvala. 849 00:40:53,425 --> 00:40:56,160 850 00:40:56,160 --> 00:40:58,030 Dakle, osim ovih članovi tima ovdje, 851 00:40:58,030 --> 00:41:01,662 CS50 ima tim od gotovo 100 osoblje, svi od kojih 852 00:41:01,662 --> 00:41:04,370 će biti dostupan za dijelove a radno vrijeme i još mnogo toga. 853 00:41:04,370 --> 00:41:06,920 I kao što je Rob kaže previše, ovo je najznačajniji remont 854 00:41:06,920 --> 00:41:09,534 od CS50 u 10 godina da Ja sam bio u [nečujan]. 855 00:41:09,534 --> 00:41:12,200 [Nečujan] usmjerena posebno u pružanju struktura za podršku, 856 00:41:12,200 --> 00:41:14,050 obrezivanje daleko puno većina koja je bila 857 00:41:14,050 --> 00:41:16,870 akumulirana u 10 godina iterativnog razvoja 858 00:41:16,870 --> 00:41:18,120 na stazi je problematična setovima. 859 00:41:18,120 --> 00:41:21,470 >> Tako je ove godine, ne samo u razredu, ali također u obliku problema tečaja je 860 00:41:21,470 --> 00:41:24,800 setovi, treba da se nalaze stvari se više uravnotežen, trimer, mnogo 861 00:41:24,800 --> 00:41:26,700 za rukovanje od u posljednjih godina, kao što smo 862 00:41:26,700 --> 00:41:31,330 prolio neke od prtljage koja je razvijen od strane prirode razvija godine 863 00:41:31,330 --> 00:41:32,970 Nakon godinu dana i koje se ponavljaju. 864 00:41:32,970 --> 00:41:35,110 Dakle, novi i poboljšani počinje danas. 865 00:41:35,110 --> 00:41:37,860 >> Vi ćete upoznati neke više od Osoblje naravno je u izborniku [nečujan] 866 00:41:37,860 --> 00:41:40,186 u 2:30, gdje se služimo, kao tradicije, torte. 867 00:41:40,186 --> 00:41:42,060 Tu je malo više kolača od toga, ali ćete 868 00:41:42,060 --> 00:41:44,690 susreću Erin i Tobias i drugi i dalje. 869 00:41:44,690 --> 00:41:46,470 I dopustite mi da vam dati obilazak prije nego što čujemo 870 00:41:46,470 --> 00:41:49,600 iz neke od drugih članova osoblja u klasi, što čeka kao dobro. 871 00:41:49,600 --> 00:41:52,730 U stvari, mi uvijek početi CS50-a semestar ovaj dolazak u subotu, 872 00:41:52,730 --> 00:41:54,330 s onim što se zove CS50 Puzzle dan. 873 00:41:54,330 --> 00:41:56,710 >> To nema nikakve veze s informatika per se, 874 00:41:56,710 --> 00:41:58,669 ali o problemu rješavanje općenito. 875 00:41:58,669 --> 00:42:01,210 A ako tako odlučite sudjelovati, po nekim pozivima, 876 00:42:01,210 --> 00:42:03,460 možda ste vidjeli vrata pao ili na pozornici ovdje 877 00:42:03,460 --> 00:42:05,830 to je prilika u timovima dva ili tri ili četiri, 878 00:42:05,830 --> 00:42:10,680 sudjelovati na zagonetke i pizzu i nagrade i more-- ove subote, 879 00:42:10,680 --> 00:42:12,560 Stay tuned za više. 880 00:42:12,560 --> 00:42:15,082 >> Naći ćete također da svaki Petak, na vatre i leda, 881 00:42:15,082 --> 00:42:16,790 ne CS50 donijeti cijela hrpa studenata 882 00:42:16,790 --> 00:42:19,100 na ručak, da bi veliki Klasa osjećaju intimniji, 883 00:42:19,100 --> 00:42:21,820 i općenito okupiti bivših i prijatelji iz industrije 884 00:42:21,820 --> 00:42:24,710 razgovarati o tome što rade bio do još od diplome. 885 00:42:24,710 --> 00:42:27,820 Isto tako, ove godine ćemo i mi inaugurirati prvi ikad CS50 50 886 00:42:27,820 --> 00:42:31,390 kodiranje contest-- srednju semestar prilika kako bi se omogućilo svima 887 00:42:31,390 --> 00:42:35,430 na opt u osnovi, da imaju Izazov wits protiv razredu, 888 00:42:35,430 --> 00:42:39,250 opet u timovima po dvoje ili troje ili četiri, koristeći samo da je programiranje 889 00:42:39,250 --> 00:42:41,920 pamet da onda su pod pojas nakon samo šest ili sedam 890 00:42:41,920 --> 00:42:44,710 tjedana klase, te sudjeluje u ovoj vrsti natjecanja 891 00:42:44,710 --> 00:42:50,261 online-- ako želite brusiti svoj vlastiti vještina sve više u taj izazov. 892 00:42:50,261 --> 00:42:52,760 Na kraju semestra je tzv CS50 Hackathon-- 893 00:42:52,760 --> 00:42:56,970 prilika da počinje u 7:00 PM završava u 7.00 sati, a usput 894 00:42:56,970 --> 00:43:01,900 12 večernjim satima u kojima roniti u završnoj project-- toku je 895 00:43:01,900 --> 00:43:04,820 prilika da dizajn i provoditi najviše ništa od interesa 896 00:43:04,820 --> 00:43:06,980 za vas sa svojim nastave Fellow Vodstvo. 897 00:43:06,980 --> 00:43:09,600 Oko 9:00 Da li mi obično služe pizzu, 1:00, 898 00:43:09,600 --> 00:43:13,210 Philippe-a, a neki od nas koji su još budni u 5:00 sati, 899 00:43:13,210 --> 00:43:16,310 su shuttle bussed dolje Put do IHOP za doručak. 900 00:43:16,310 --> 00:43:19,340 >> A onda nekoliko dana kasnije je tzv CS50 fare-- 901 00:43:19,340 --> 00:43:23,450 kraj semestra izložbi u Proslava koliko daleko toliko 902 00:43:23,450 --> 00:43:28,200 od CS50 učenici su došli iz tjedan nula pa sve do tjedan dana, 903 00:43:28,200 --> 00:43:32,610 i imajući u vidu da 73% onih kolege i tvoje i ove godine imaju 904 00:43:32,610 --> 00:43:34,840 nikad uzeti CS razred prije. 905 00:43:34,840 --> 00:43:39,226 U stvari, da reemphasize koliko ovdje je još nekoliko lica iz CS50 osoblja. 906 00:43:39,226 --> 00:43:40,184 GLAS 4: [nečujan]. 907 00:43:40,184 --> 00:43:45,909 908 00:43:45,909 --> 00:43:46,867 GLAS 5: [nečujan]. 909 00:43:46,867 --> 00:43:51,332 910 00:43:51,332 --> 00:43:52,290 GLAS 6: [nečujan]. 911 00:43:52,290 --> 00:43:55,276 912 00:43:55,276 --> 00:43:56,234 GLAS 7: [nečujan]. 913 00:43:56,234 --> 00:44:01,727 914 00:44:01,727 --> 00:44:02,643 GLAS 8: [nečujan] 915 00:44:02,643 --> 00:44:10,066 916 00:44:10,066 --> 00:44:11,024 GLAS 9: [nečujan]. 917 00:44:11,024 --> 00:44:14,475 918 00:44:14,475 --> 00:44:15,461 >> GLAS 4: [nečujan]. 919 00:44:15,461 --> 00:44:16,461 >> GLAS 10: [nečujan]. 920 00:44:16,461 --> 00:44:21,456 921 00:44:21,456 --> 00:44:23,438 GLAS 11: [nečujan]. 922 00:44:23,438 --> 00:44:24,438 GLAS 12: [nečujan]. 923 00:44:24,438 --> 00:44:30,438 924 00:44:30,438 --> 00:44:31,396 GLAS 13: [nečujan] 925 00:44:31,396 --> 00:44:37,360 926 00:44:37,360 --> 00:44:40,342 >> GLAS 14: [nečujan]. 927 00:44:40,342 --> 00:44:42,863 >> GLAS 13: [nečujan]. 928 00:44:42,863 --> 00:44:43,821 GLAS 15: [nečujan] 929 00:44:43,821 --> 00:44:48,785 930 00:44:48,785 --> 00:44:49,785 GLAS 16: [nečujan]. 931 00:44:49,785 --> 00:44:53,761 932 00:44:53,761 --> 00:44:55,252 >> GLAS 11: [nečujan] 933 00:44:55,252 --> 00:44:57,773 934 00:44:57,773 --> 00:44:58,731 GLAS 5: [nečujan]. 935 00:44:58,731 --> 00:45:11,250 936 00:45:11,250 --> 00:45:15,130 DAVID Malan: Neke momčadi su i sami u kupovinu klase. 937 00:45:15,130 --> 00:45:17,760 Ali ako one članove od CS50 osoblje su tu, 938 00:45:17,760 --> 00:45:19,230 mogao doći na gore samo na trenutak. 939 00:45:19,230 --> 00:45:23,450 CS50-a TFS i CAS-a i [? osoblja?] Članovi here-- to su samo neki 940 00:45:23,450 --> 00:45:28,880 od faces-- jednog od koga ste upravo vidio, a nekoliko other-- i još nekoliko osoba 941 00:45:28,880 --> 00:45:30,020 još. 942 00:45:30,020 --> 00:45:33,242 Zašto ne ići naprijed i omogućiti dečki pet minuta pauze. 943 00:45:33,242 --> 00:45:35,450 Ako trebate patka na trgovina klase, to je u redu. 944 00:45:35,450 --> 00:45:38,900 A za pet minuta, mi ćemo nastaviti, uzimanje pogledati Scratch-- je prvi 945 00:45:38,900 --> 00:45:42,420 našeg programskog jezika, upoznati Osoblje toku je ovdje neki više, 946 00:45:42,420 --> 00:45:45,020 i usredotočiti se na kraju o problemu postavili na nulu. 947 00:45:45,020 --> 00:45:46,710 Tako ćemo se vratiti za pet minuta. 1 00:45:46,864 --> 00:45:47,370 >> U redu. 2 00:45:47,370 --> 00:45:48,590 Dakle, mi smo natrag. 3 00:45:48,590 --> 00:45:51,330 I u našem preostalo Vrijeme danas, cilj 4 00:45:51,330 --> 00:45:54,320 je da se na razini igralište u smislu neke terminologije, 5 00:45:54,320 --> 00:45:55,297 u smislu nekih ideja. 6 00:45:55,297 --> 00:45:57,380 Jer doista, kao i po neke od karata ranije, 7 00:45:57,380 --> 00:46:00,130 tu će biti raspon razina iskustva u razredu, 8 00:46:00,130 --> 00:46:03,210 čiji su studenti imaju uzeti neko programiranje i prije, 9 00:46:03,210 --> 00:46:04,200 od kojih neki nisu. 10 00:46:04,200 --> 00:46:07,430 I tako ovaj prvi problem set i sa ovom prvom jeziku 11 00:46:07,430 --> 00:46:10,830 imamo priliku za početak uzeti zdravo za gotovo nakon današnjeg dana 12 00:46:10,830 --> 00:46:12,960 neka zajednička terminologija i ideja. 13 00:46:12,960 --> 00:46:15,590 >> A mi ćemo to učiniti putem Tečaj prvi languages-- 14 00:46:15,590 --> 00:46:21,070 osim C i Python i JavaScript i SQL i HTML i CSS, 15 00:46:21,070 --> 00:46:24,450 ćemo se usredotočiti na početku i samo za problema postaviti na nulu 16 00:46:24,450 --> 00:46:28,160 na ovom grafičkom jeziku, pod nazivom Scratch, razvijen od strane MIT Media Laba 17 00:46:28,160 --> 00:46:30,880 niz cestu, kako bi studenti i djeca posebno 18 00:46:30,880 --> 00:46:35,070 izražavaju algorithmically-- na neki način više u skladu s onim 19 00:46:35,070 --> 00:46:37,300 bismo mogli nazvati računalne razmišljanja. 20 00:46:37,300 --> 00:46:40,985 >> I to je koristan jezik, jer vrlo brzo se sljedećeg tjedna u tjedan dana, 21 00:46:40,985 --> 00:46:44,360 ćemo prijeći na više Tradicionalni i kompliciranih jezik zove 22 00:46:44,360 --> 00:46:46,370 C, koji je čisto tekstualno. 23 00:46:46,370 --> 00:46:48,930 Vi samo koristiti tipkovnicu na Kako bi se napisati upute 24 00:46:48,930 --> 00:46:50,230 poput ovih na ekranu. 25 00:46:50,230 --> 00:46:52,840 No, čak i ako ste nikada nije vidio programski jezik prije, 26 00:46:52,840 --> 00:46:55,170 u samo pogledavši to, sve se to zagonetan, 27 00:46:55,170 --> 00:47:00,010 vjerojatno možete pogoditi da Vjerojatno će ispisati Hello World. 28 00:47:00,010 --> 00:47:02,050 No, tu je mnogo sintaktička iznad glave tamo. 29 00:47:02,050 --> 00:47:05,770 Tu je čudno hash simbol ili hash tag do vrha. 30 00:47:05,770 --> 00:47:08,900 Postoji ove zgrade, neki zagrade, vitičastim zagradama, polu-colon-- 31 00:47:08,900 --> 00:47:11,880 postoji samo toliko vizualno sintaksa koja dobiva na putu. 32 00:47:11,880 --> 00:47:13,940 Mi smo započeli tečaj s Blok kako bi dobili 33 00:47:13,940 --> 00:47:17,600 pored svih onih intelektualno nezanimljiv nesuglasice, 34 00:47:17,600 --> 00:47:20,290 i umjesto toga usredotočiti na ideje. 35 00:47:20,290 --> 00:47:22,540 >> U stvari, to može biti i prije. 36 00:47:22,540 --> 00:47:24,830 To je, za to, tjedan će biti poslije. 37 00:47:24,830 --> 00:47:26,760 To je, u ovom grafičkom jezik Scratch, 38 00:47:26,760 --> 00:47:29,870 kako bi implementirati iste program-- program koji kada pokrenuti, 39 00:47:29,870 --> 00:47:31,340 jednostavno kaže Hello World. 40 00:47:31,340 --> 00:47:34,740 A što je lijepo o Scratch je da je ovo grafički programiranje 41 00:47:34,740 --> 00:47:38,780 okruženje koje koristi slagalice ili blokovi, da samo sni zajedno 42 00:47:38,780 --> 00:47:40,440 ako to čini logično smisla da to učini. 43 00:47:40,440 --> 00:47:43,810 A s nule možete razviti animacije i interaktivnih igara 44 00:47:43,810 --> 00:47:47,270 i umjetnost, i bilo koji broj stvari koje možete zamisliti u svom vlastitom umu, 45 00:47:47,270 --> 00:47:51,200 i provesti ih jednostavno povlačenjem i ispuštanjem slagalice. 46 00:47:51,200 --> 00:47:54,265 >> I doista, ćemo imati sposobnost izraziti neke od istih ideja 47 00:47:54,265 --> 00:47:56,890 da sam samo spomenuo trenutak Prije u kontekstu Mike Smith 48 00:47:56,890 --> 00:48:00,670 i traži stvari telefonski book-- kao funkcija, samo akcije, 49 00:48:00,670 --> 00:48:03,070 stvari kao što su petlje koji ne stvari opet i opet, 50 00:48:03,070 --> 00:48:05,170 varijable, što je nešto što ćemo uvesti, 51 00:48:05,170 --> 00:48:08,086 ali to je poznato možda iz algebra-- samo neka vrsta rezervirano mjesto 52 00:48:08,086 --> 00:48:10,840 pohraniti neku vrijednost koju bi moglo potrebno later-- Boolean izrazi, 53 00:48:10,840 --> 00:48:13,720 gdje su oni da ne ili istina lažno pitanja od prije. 54 00:48:13,720 --> 00:48:17,117 Uvjeti su ti vilice u road-- one grane da tako kažemo. 55 00:48:17,117 --> 00:48:19,700 A onda postoje neki ljubitelj Značajke Vidjet ćemo i danas, 56 00:48:19,700 --> 00:48:22,850 zovu polja i teme i događaje, da ćemo tada ponovno iznad 57 00:48:22,850 --> 00:48:24,460 Vrijeme na različitim jezicima. 58 00:48:24,460 --> 00:48:26,790 No, Blok nam omogućuje istražiti sve to. 59 00:48:26,790 --> 00:48:30,779 Dakle, ovdje u nule, ova ljubičasta Blok je ono funkcija se obično 60 00:48:30,779 --> 00:48:31,570 će izgledati. 61 00:48:31,570 --> 00:48:35,620 Ova ljubičasta puzzle komad koji ima neke Riječ kao recimo, što je akcija, 62 00:48:35,620 --> 00:48:38,490 a onda bi to moglo imati rasprava ili parameter-- neki način 63 00:48:38,490 --> 00:48:41,140 od vrste prilagodbe što je blok radi 64 00:48:41,140 --> 00:48:45,182 tako da to nije unaprijed određen MIT što ovaj ljubičasti blok govori. 65 00:48:45,182 --> 00:48:47,390 U stvari, vidjet ćete u Trenutak koji sam mogao upisati 66 00:48:47,390 --> 00:48:49,931 riječi poput Pozdrav svijetu, ili Pozdrav David, ili zdravo Zamayla, 67 00:48:49,931 --> 00:48:53,750 ili što god želim, u argumentu na tu zagonetku piece-- bijeli okvir 68 00:48:53,750 --> 00:48:54,251 tamo. 69 00:48:54,251 --> 00:48:57,166 U međuvremenu, ako želim petlju, mi ćemo vidjeti da postoji slagalice koji 70 00:48:57,166 --> 00:48:58,640 izgleda malo naranču ovako. 71 00:48:58,640 --> 00:49:01,690 A njihov oblik vrsta sugerira da nešto i opet se dogodi 72 00:49:01,690 --> 00:49:02,680 u ciklusu. 73 00:49:02,680 --> 00:49:06,800 >> Dakle, ako sam omotati pozdraviti svjetski blok sa zauvijek blokirati u nule, 74 00:49:06,800 --> 00:49:10,307 to samo će zadržati govoreći zdravo svijet zauvijek, doslovno. 75 00:49:10,307 --> 00:49:12,390 U međuvremenu, postoji još jedan vrsta petlje u nule 76 00:49:12,390 --> 00:49:14,348 da ćemo see-- reprizu block-- gdje je, ako vas 77 00:49:14,348 --> 00:49:17,940 unaprijed znati koliko puta želite da se petlja izvršiti 78 00:49:17,940 --> 00:49:21,850 konačan broj puta vas fact-- može odrediti da se upišete u nizu 79 00:49:21,850 --> 00:49:25,380 ili čak priključiti varijable, kao što su X i Y kao što ćemo vidjeti. 80 00:49:25,380 --> 00:49:27,690 >> U stvari, varijable poput I u ovom slučaju, što 81 00:49:27,690 --> 00:49:30,109 je zajednički naziv za cjelobrojna varijabla koja 82 00:49:30,109 --> 00:49:31,900 Samo pohranjuje number-- cijeli broj može biti, 83 00:49:31,900 --> 00:49:35,470 koristiti ovaj narančasti blok ovdje da biste postavite varijablu kao da sam na nulu. 84 00:49:35,470 --> 00:49:38,900 Evo primjera u zelenom A. Logički izraz u nule. 85 00:49:38,900 --> 00:49:43,700 Iako ovo izgleda kao matematika formula, matematičke nejednakosti kao što je ovaj 86 00:49:43,700 --> 00:49:45,320 Stvarno su Boolean izrazi. 87 00:49:45,320 --> 00:49:46,570 Ovo je ili istinita ili lažna. 88 00:49:46,570 --> 00:49:48,300 I je manje od 50 godina. 89 00:49:48,300 --> 00:49:51,815 To je bilo da ili ne odgovor ili true ili false odgovor. 90 00:49:51,815 --> 00:49:53,940 A mi ćemo se općenito nazvati ti Boolean izraza. 91 00:49:53,940 --> 00:49:55,148 I to ne mora biti 50. 92 00:49:55,148 --> 00:49:57,970 To može biti x manja od y, veći od y, jednako y-- 93 00:49:57,970 --> 00:50:00,020 bilo koji broj ostalih pitanja mogu biti pitani. 94 00:50:00,020 --> 00:50:03,250 >> Sada, na prvi pogled, ovo bi moglo izgledati iznenada prilično hrabar ovdje, i to je to. 95 00:50:03,250 --> 00:50:06,540 Ali koncept pametno, to je prilično poznato od prije. 96 00:50:06,540 --> 00:50:09,370 Ako je x manje od y, nego reci koliko. 97 00:50:09,370 --> 00:50:12,230 Inače, ako je x veći od y, onda reci koliko. 98 00:50:12,230 --> 00:50:14,260 Inače kažu x je jednako y. 99 00:50:14,260 --> 00:50:17,220 Tako imamo primjer Postoji treće scenario-- 100 00:50:17,220 --> 00:50:20,600 jedino treći possibility-- x je bilo veće od, manje od ili jednake. 101 00:50:20,600 --> 00:50:22,420 Dakle, imamo tri puta raskrižje. 102 00:50:22,420 --> 00:50:26,290 >> A primijetiti što je cool here-- ispočetka, čini se, ima samo jednu zagonetku 103 00:50:26,290 --> 00:50:28,840 komad, u ovom slučaju, u ako drugi blok. 104 00:50:28,840 --> 00:50:32,090 Pa ipak, da bi se činiti da vam podrazumijevaju se samo da imaju dva put raskrižje. 105 00:50:32,090 --> 00:50:34,631 Možete ići lijevo ili desno, ali što o toj trećoj scenarij? 106 00:50:34,631 --> 00:50:35,760 Što ako je x jednak y? 107 00:50:35,760 --> 00:50:36,500 Ništa posebno. 108 00:50:36,500 --> 00:50:39,640 Uzmi jedan dio slagalice, staviti još jedan unutar nje 109 00:50:39,640 --> 00:50:45,759 stvoriti semantički ekvivalent odnosno ako, drugo ako else-- a sada ti 110 00:50:45,759 --> 00:50:47,300 imati svoj trostruki raskrižje. 111 00:50:47,300 --> 00:50:49,091 I kao što ćemo vidjeti, Blok slagalice 112 00:50:49,091 --> 00:50:51,820 može biti rastegnut i rastu, tako kao strpati više stvari u njima. 113 00:50:51,820 --> 00:50:54,420 Ne morate da stane sve u svoje zadane veličine. 114 00:50:54,420 --> 00:50:56,690 >> To je nešto što ćete uskoro se naziva polje. 115 00:50:56,690 --> 00:51:00,880 To je kao list-- neki način pohranjivanje više podataka 116 00:51:00,880 --> 00:51:02,886 u varijabli, a ne samo broj. 117 00:51:02,886 --> 00:51:05,760 To ćemo vidjeti predstavnik nešto što se zove multi-threading. 118 00:51:05,760 --> 00:51:08,280 U stvari, sve svoje Macove i računala ovih dana 119 00:51:08,280 --> 00:51:10,810 podržavaju multi-threading, što znači da možete doslovno 120 00:51:10,810 --> 00:51:12,390 raditi više stvari u isto vrijeme. 121 00:51:12,390 --> 00:51:15,390 Možete imati Microsoft Word se u prvom planu, radeći na nekom eseju. 122 00:51:15,390 --> 00:51:17,160 Možda ćete imati preglednik u otvor pozadini 123 00:51:17,160 --> 00:51:18,720 G-mail ili Facebook ili slično. 124 00:51:18,720 --> 00:51:22,730 Vaše računalo može raditi više stvari danas jer je multi-navojem, 125 00:51:22,730 --> 00:51:26,390 a programi su u u Posebno su multi-navojem. 126 00:51:26,390 --> 00:51:28,970 >> Ima stvari koje se nazivaju događaji kao dobro u svijetu ispočetka, 127 00:51:28,970 --> 00:51:32,640 a zatim tu je način previše, kako bi naše vlastite prilagođene slagalice, ako stvari 128 00:51:32,640 --> 00:51:34,810 zapravo ne postoje unaprijed. 129 00:51:34,810 --> 00:51:38,260 Tako ćemo potaknuti na sljedeći način. 130 00:51:38,260 --> 00:51:40,580 Prije nekoliko godina, kad sam prvi otkrio nule, 131 00:51:40,580 --> 00:51:43,530 kad sam bio zapravo Grad student na MIT-u, mi 132 00:51:43,530 --> 00:51:45,640 sami su zadatak napraviti domaću zadaću. 133 00:51:45,640 --> 00:51:47,614 A ja implemented-- koji je, u retrospektivi, 134 00:51:47,614 --> 00:51:50,780 bio je vrlo lošu odluku, jer to je najviše furioznog pjesma na svijetu 135 00:51:50,780 --> 00:51:53,321 slušati za osam sati dok je radio na svom homework-- 136 00:51:53,321 --> 00:51:57,180 ali nešto sam nazvao Oscar vrijeme, što je možda poznato pjesma. 137 00:51:57,180 --> 00:51:59,820 >> CS50s posjedovati Jordan Hayashi, jedan od naši višeg djelatnika, 138 00:51:59,820 --> 00:52:03,920 to je nadograđen za 2015. godinu i Sada 2016, jer natrag u dan, 139 00:52:03,920 --> 00:52:06,610 imala sam sve samo ide u Oscar kantu za smeće. 140 00:52:06,610 --> 00:52:09,320 Sada smo podržati recikliranje i kompostiranje. 141 00:52:09,320 --> 00:52:12,050 >> No, da se bojite sliku od onoga što možemo učiniti ovdje 142 00:52:12,050 --> 00:52:14,130 te motivirati neke primjeri nižoj razini, 143 00:52:14,130 --> 00:52:16,400 Možemo li dobiti jednu drugu dobrovoljac samo da dođe gore 144 00:52:16,400 --> 00:52:18,331 i igra moj prvi domaći zadatak ikad? 145 00:52:18,331 --> 00:52:18,830 Dođi gore. 146 00:52:18,830 --> 00:52:19,250 Kako se zoveš? 147 00:52:19,250 --> 00:52:20,030 >> HENRY: Henry. 148 00:52:20,030 --> 00:52:22,660 >> DAVID Malan: Henry, dođe gore. 149 00:52:22,660 --> 00:52:24,190 Dođi gore. 150 00:52:24,190 --> 00:52:27,070 Glava u oba smjera, a vidjet ćete u jednom trenutku, 151 00:52:27,070 --> 00:52:29,870 Ja ću ići naprijed i pogoditi zelena zastava u gornjem desnom rukom 152 00:52:29,870 --> 00:52:31,100 kutak, što znači ići. 153 00:52:31,100 --> 00:52:33,320 Ikona malo stop znak će reći stop, 154 00:52:33,320 --> 00:52:35,490 a to je kada se pokrene i zaustaviti program. 155 00:52:35,490 --> 00:52:36,450 Drago mi je da sam vas upoznala. 156 00:52:36,450 --> 00:52:36,950 U redu. 157 00:52:36,950 --> 00:52:39,100 Tako ćemo vidjeti upute na zaslonu u samo jednom trenutku. 158 00:52:39,100 --> 00:52:41,450 I samo igrajući ovu igru za neke seconds-- povjerenja u mene, 159 00:52:41,450 --> 00:52:43,670 nećemo se žele igrati sve do end-- CETE 160 00:52:43,670 --> 00:52:45,470 dobili osjećaj o tome što program radi. 161 00:52:45,470 --> 00:52:49,170 I više nego samo fokusirati na Henryja dobra ili loša u ovoj igri, fokus 162 00:52:49,170 --> 00:52:52,600 i kako je proveden po meni izvorno i Jordan. 163 00:52:52,600 --> 00:52:54,640 Drugim riječima, u kojima su varijable? 164 00:52:54,640 --> 00:52:55,520 Gdje su petlje? 165 00:52:55,520 --> 00:52:56,520 Gdje su funkcije? 166 00:52:56,520 --> 00:53:00,700 A vidjet ćemo, ako ne vidimo one ispod haube. 167 00:53:00,700 --> 00:53:03,660 >> Samo kliknite i povucite smeće na odgovarajući smeće. 168 00:53:03,660 --> 00:54:02,100 >> [MUSIC SVIRA] 169 00:54:02,100 --> 00:54:02,600 U redu. 170 00:54:02,600 --> 00:54:03,160 To je jako dobro. 171 00:54:03,160 --> 00:54:04,286 Zašto ne bismo ga zaustaviti. 172 00:54:04,286 --> 00:54:04,786 Hvala ti. 173 00:54:04,786 --> 00:54:05,830 Čestitamo Henry. 174 00:54:05,830 --> 00:54:07,002 Hvala ti. 175 00:54:07,002 --> 00:54:10,690 >> [PLJESAK] 176 00:54:10,690 --> 00:54:12,450 >> Zamislite pogrešaka taj program. 177 00:54:12,450 --> 00:54:15,880 Ako postoji problem dvije minuti song--, ali tako 178 00:54:15,880 --> 00:54:17,430 Što se ovdje događa zapravo? 179 00:54:17,430 --> 00:54:20,900 Kao što je komplicirano kao što se moglo početi činiti da se s vremenom, 180 00:54:20,900 --> 00:54:22,910 zaista sve više i više stvari počela padati, 181 00:54:22,910 --> 00:54:25,370 ono što je zanimljivo o tome ova vrsta example-- 182 00:54:25,370 --> 00:54:27,270 pa ćemo vidjeti neke others-- je da ako 183 00:54:27,270 --> 00:54:30,416 izgledaju prošlosti složenosti ili sofisticiranost u igri, 184 00:54:30,416 --> 00:54:33,040 tu je vrlo jednostavna građevina blokovi koji play-- svi koji, 185 00:54:33,040 --> 00:54:35,840 ako ih destilirati onima izgrađeni su vrlo pristupačne 186 00:54:35,840 --> 00:54:37,401 i provedive k sebi. 187 00:54:37,401 --> 00:54:39,150 Primjerice, to je je neko vrijeme, ali ja sam 188 00:54:39,150 --> 00:54:42,900 prilično siguran što sam u početku činio kad što ovu igru ​​po prvi put 189 00:54:42,900 --> 00:54:44,787 Bio sam potpuno nalik procrastinated. 190 00:54:44,787 --> 00:54:47,120 Nisam se usredotočiti na sve na logika ili slagalice, 191 00:54:47,120 --> 00:54:50,810 Usredotočila sam se na grafiku i nalaz ulica post i smeće 192 00:54:50,810 --> 00:54:51,540 i sve to. 193 00:54:51,540 --> 00:54:53,456 Ali oni su bili uvjet Sastojci na prvom mjestu. 194 00:54:53,456 --> 00:54:57,220 I jednom sam završio procrastinating i postavljanje sveobuhvatni okvir, 195 00:54:57,220 --> 00:55:00,337 Odlučio sam, neka mi samo napraviti jedan komad smeća pada s neba. 196 00:55:00,337 --> 00:55:02,170 A vidjet ćemo Scratch podržava stvari zove 197 00:55:02,170 --> 00:55:06,386 sprites-- znakova koji se mogu imaju različite kostime na tako da oni 198 00:55:06,386 --> 00:55:07,010 izgledaju drugačije. 199 00:55:07,010 --> 00:55:09,660 >> I tako sam stavio smeće kostim na jednoj takvoj duh. 200 00:55:09,660 --> 00:55:12,007 I samo je bila potrebna pasti s neba. 201 00:55:12,007 --> 00:55:14,590 I tako ispada, Scratch, kao i većina programskih jezika, 202 00:55:14,590 --> 00:55:18,099 podržava slučajnih brojeva ili tehnički pseudokod slučajnih brojeva, 203 00:55:18,099 --> 00:55:20,390 tako da povučete i ispuštajući neke slagalice, 204 00:55:20,390 --> 00:55:22,890 Sam bio u mogućnosti da imaju smeće dolaze s lijeva na prvom mjestu. 205 00:55:22,890 --> 00:55:25,580 I onda sljedeći put je pao, iz pravo, a potom od sredine. 206 00:55:25,580 --> 00:55:28,060 I sve je igra nije bila baš imaju smeće pada s neba. 207 00:55:28,060 --> 00:55:29,770 Niste mogli ukazati na to, ili kliknuti na njega. 208 00:55:29,770 --> 00:55:31,103 Ne mogu otvoriti kantu za smeće. 209 00:55:31,103 --> 00:55:32,160 Ne mogu ništa učiniti. 210 00:55:32,160 --> 00:55:34,450 Ali to je bio beba koraka prema mom krajnji vid. 211 00:55:34,450 --> 00:55:36,720 >> A nakon toga, ja zapravo provodi neka vrsta 212 00:55:36,720 --> 00:55:41,230 od istraživanja, tako da ako je kliknuti i povucite na komad smeća 213 00:55:41,230 --> 00:55:44,350 nad kantu za smeće, Oscar-a Poklopac će se otvoriti i zatvoriti. 214 00:55:44,350 --> 00:55:47,650 Ništa se ne bi dogodilo u smeće, ali barem poklopac otvoriti i zatvoriti. 215 00:55:47,650 --> 00:55:49,642 Pa onda provjeriti, korak dva od dva. 216 00:55:49,642 --> 00:55:52,100 A to je ono što će biti Ključ u oba problema postaviti na nulu 217 00:55:52,100 --> 00:55:55,970 te u programiranju općenito, jest uzeti ove vrlo namjerno male korake. 218 00:55:55,970 --> 00:55:59,390 Jer ne samo da vam omogućiti da osjećati iskreno postigao mnogo više 219 00:55:59,390 --> 00:56:01,250 quickly-- to je najgora stvar na svijetu 220 00:56:01,250 --> 00:56:06,149 pokušati implementirati sve Oscar vremena, zatim sata kasnije pogodio zelenu zastavu, 221 00:56:06,149 --> 00:56:08,440 a ništa ne radi kao što se očekivalo jer gdje ti se čak i 222 00:56:08,440 --> 00:56:11,150 početi ispravljanje ili otkloniti taj program? 223 00:56:11,150 --> 00:56:12,470 To je samo neodoljiv. 224 00:56:12,470 --> 00:56:16,792 >> I tako zaista prihvaćaju tu ideju uzimanja steps-- male korake opet 225 00:56:16,792 --> 00:56:19,000 i again-- izgradnji nešto što je, na kraju, 226 00:56:19,000 --> 00:56:23,672 zaista impresivna i složen, ali u početku, nije ni približno toliko. 227 00:56:23,672 --> 00:56:24,630 U stvari, učinimo to. 228 00:56:24,630 --> 00:56:28,989 Pusti me naprijed and-- se Scratch postoji na webu na Scratch.MIT.edu, 229 00:56:28,989 --> 00:56:30,780 a vi ćete se javi kao koliko opet u problemu 230 00:56:30,780 --> 00:56:34,200 postaviti na nulu, Specifikacija koji je već na CS50 web stranici. 231 00:56:34,200 --> 00:56:35,725 >> No, to je ono što Scratch je sama po sebi. 232 00:56:35,725 --> 00:56:38,210 I tu je zapravo samo Tri glavna područja. 233 00:56:38,210 --> 00:56:40,980 U gornjem lijevom kutu tamo je tzv fazi. 234 00:56:40,980 --> 00:56:41,810 To je ispočetka. 235 00:56:41,810 --> 00:56:43,710 Zadana kostim je mačka. 236 00:56:43,710 --> 00:56:46,950 I ovo je pravokutnog svijet koje možete move-- gore, dolje, lijevo, 237 00:56:46,950 --> 00:56:48,130 Pravo i neke druge stvari. 238 00:56:48,130 --> 00:56:51,839 U sredini ovdje su naši kategorije ili naše palete slagalice, 239 00:56:51,839 --> 00:56:53,630 i različite boje značiti različite stvari. 240 00:56:53,630 --> 00:56:56,520 A ako malo pročačkati, vidjet ćete stvari kao što su petlje i uvjetima 241 00:56:56,520 --> 00:56:58,160 te varijable i drugih sastojaka. 242 00:56:58,160 --> 00:57:00,060 >> I onda ovdje je skripta područje. 243 00:57:00,060 --> 00:57:03,020 Ovo je mjesto gdje se mogu povući i ispustiti one slagalice raditi stvari. 244 00:57:03,020 --> 00:57:04,690 Tako ćemo napraviti jednu takvu stvar. 245 00:57:04,690 --> 00:57:06,630 Pusti me naprijed and-- i znam gdje je. 246 00:57:06,630 --> 00:57:10,110 Zato ću odmah kliknite na gdje Znam da su spremni da se, 247 00:57:10,110 --> 00:57:13,140 ali pokazuje i klikom i poking okolo su neizbježne. 248 00:57:13,140 --> 00:57:15,320 Dakle, kada zelena zastava pritisne, ono što želim učiniti? 249 00:57:15,320 --> 00:57:17,100 Idem to učiniti. 250 00:57:17,100 --> 00:57:20,699 Idem povući ovu ljubičastu zagonetku komad, pozdravi dvije sekunde, 251 00:57:20,699 --> 00:57:21,490 i neka mi zumirati. 252 00:57:21,490 --> 00:57:23,865 >> I ja ću da se to promijeni biti ono što ja želim da be-- 253 00:57:23,865 --> 00:57:26,471 Hello World dvije sekunde je u redu. 254 00:57:26,471 --> 00:57:28,970 Sada ću kliknuti zelena zastava, ili ako sam stvarno želite, 255 00:57:28,970 --> 00:57:31,820 I pun mogu zaslon, a zatim se vratiti. 256 00:57:31,820 --> 00:57:34,060 To će samo zadržati sve u jednom prozoru. 257 00:57:34,060 --> 00:57:36,141 Zelena flag-- Hello World. 258 00:57:36,141 --> 00:57:36,640 U redu. 259 00:57:36,640 --> 00:57:38,789 Nije sve to zanimljivo. 260 00:57:38,789 --> 00:57:40,080 Pa neka mi ići naprijed i učiniti. 261 00:57:40,080 --> 00:57:41,038 Pokušat ću još jednom. 262 00:57:41,038 --> 00:57:44,740 Kada zelena zastava clicked-- neka je učiniti nešto poput zvuka. 263 00:57:44,740 --> 00:57:46,880 I primijetiti da iz kutija za besplatno dobiti 264 00:57:46,880 --> 00:57:49,910 je mačka zvuk, kao što je zadana Duh. 265 00:57:49,910 --> 00:57:52,380 Pa sad neka mi ići naprijed i hit zelenu zastavu sada. 266 00:57:52,380 --> 00:57:53,224 >> [Mijaukati] 267 00:57:53,224 --> 00:57:54,490 >> Aw. 268 00:57:54,490 --> 00:57:55,370 To je sladak. 269 00:57:55,370 --> 00:57:57,040 Ja programiranje. 270 00:57:57,040 --> 00:57:58,550 Pa što sam učinio? 271 00:57:58,550 --> 00:58:00,430 To je ekvivalent programa. 272 00:58:00,430 --> 00:58:01,600 Očito je super jednostavna. 273 00:58:01,600 --> 00:58:05,300 To nije stvarno poduzeti sve što je mnogo trud i MIT učinio najveći dio posla, 274 00:58:05,300 --> 00:58:07,890 ali sam nazvao funkcija. 275 00:58:07,890 --> 00:58:08,940 Imam koristi funkciju. 276 00:58:08,940 --> 00:58:12,480 Ja sam napravio neke akcije, koristeći samo da je jedan ljubičasti zagonetka komad. 277 00:58:12,480 --> 00:58:15,960 >> Pa, ako želim napraviti Tri Meows u nizu? 278 00:58:15,960 --> 00:58:18,570 Dopustite mi ići naprijed i učiniti dva i tri. 279 00:58:18,570 --> 00:58:20,910 A primijetiti da kada vas lebdjeti u blizini jedan dio slagalice, 280 00:58:20,910 --> 00:58:22,970 Čini se malo bijele linije vrsta magnetski, 281 00:58:22,970 --> 00:58:25,190 i to će puknuti zajedno kada se otpusti. 282 00:58:25,190 --> 00:58:26,600 Idemo vidjeti što se ovdje događa. 283 00:58:26,600 --> 00:58:27,920 >> [Mijaukati] 284 00:58:27,920 --> 00:58:32,390 285 00:58:32,390 --> 00:58:34,510 >> Postoji bug. 286 00:58:34,510 --> 00:58:35,650 Samo sam čuo jednu Mijau. 287 00:58:35,650 --> 00:58:37,440 Zašto bi to bio? 288 00:58:37,440 --> 00:58:39,001 Da? 289 00:58:39,001 --> 00:58:39,500 Da. 290 00:58:39,500 --> 00:58:41,650 Mi stvarno ne čuju, ali to je dobro intuicija. 291 00:58:41,650 --> 00:58:43,400 Svi oni igraju u isto vrijeme. 292 00:58:43,400 --> 00:58:44,000 Zašto? 293 00:58:44,000 --> 00:58:46,587 Pa, računalo samo ide učiniti ono što ga kažem. 294 00:58:46,587 --> 00:58:48,670 Dakle, ako ti kažeš, igrati zvuk, igrati zvuk, igrati zvuk, 295 00:58:48,670 --> 00:58:52,887 ali ga ne reci igrati do gotovi ste, igrati dok ste učinili, 296 00:58:52,887 --> 00:58:54,970 to će puhati kroz program jako brzo 297 00:58:54,970 --> 00:58:56,830 a ne samo ono što ga kažem. 298 00:58:56,830 --> 00:58:59,040 >> Tako sam zapravo treba popraviti to u nekoliko načina. 299 00:58:59,040 --> 00:59:00,623 Ja samo mogu to učiniti, dobili osloboditi od toga. 300 00:59:00,623 --> 00:59:04,180 Pokušat ću ovu drugu zagonetku piece-- igrati zvuk Mijau dok učinili, 301 00:59:04,180 --> 00:59:07,072 a zatim povucite tri tih i kliknite Play. 302 00:59:07,072 --> 00:59:09,430 >> [Mijaukati] 303 00:59:09,430 --> 00:59:13,350 >> To baš i nije very-- Hvala you-- vrlo prirodno. 304 00:59:13,350 --> 00:59:16,590 Pa zašto ne I-- neka da odem u kontrolu ovdje. 305 00:59:16,590 --> 00:59:17,090 Nice. 306 00:59:17,090 --> 00:59:22,230 Pričekajte jednu sekundu, a sada pusti me vrati na zvukove i reproducirati zvuk dok radi, 307 00:59:22,230 --> 00:59:24,620 a onda neka mi se čekati jednu sekundu. 308 00:59:24,620 --> 00:59:28,692 A onda me pusti i dobiti jedan više zvuka, a ovdje mi ići. 309 00:59:28,692 --> 00:59:31,350 >> [Mijaukati] 310 00:59:31,350 --> 00:59:35,930 >> Malo više prirodno, ali to nije vrlo učinkovit. 311 00:59:35,930 --> 00:59:39,830 Kao što sam bio uzimajući dosadno, a sve se nakratko, pa natrag i naprijed 312 00:59:39,830 --> 00:59:42,724 i stvarno umnožavanje mi po našem mišljenju prilično mnogo kopiranje i lijepljenje. 313 00:59:42,724 --> 00:59:44,640 Doista, ako sam Kontrola klikne ili desnom kliknuli, 314 00:59:44,640 --> 00:59:46,500 Mogao sam samo kopirati i zalijepiti. 315 00:59:46,500 --> 00:59:49,870 Što bi bilo bolje izgraditi za korištenje? 316 00:59:49,870 --> 00:59:51,090 Što je ideja od prije? 317 00:59:51,090 --> 00:59:51,990 >> Da, tako petlja. 318 00:59:51,990 --> 00:59:54,580 A u stvari, ako poked oko sebe, bismo mogli naći upravo to. 319 00:59:54,580 --> 00:59:57,730 Pusti me da Događanja odnosno kontrole. 320 00:59:57,730 --> 00:59:59,650 Tako repeat-- ja ne želim da bude 10 puta. 321 00:59:59,650 --> 01:00:01,370 To je idući u dobiti neugodno brzo. 322 01:00:01,370 --> 01:00:03,380 Ali, ja ću ponoviti tri puta. 323 01:00:03,380 --> 01:00:06,355 Pusti me da se vratim na zvuk i reproducirati zvuk dok se to radi. 324 01:00:06,355 --> 01:00:08,480 Pusti me da se vratim na kontrolu i samo čekati jednu sekundu. 325 01:00:08,480 --> 01:00:10,271 I napomena, možda ćete mislim da to ne odgovara, 326 01:00:10,271 --> 01:00:13,520 ali opet, ako magnetski li ga pustiti ugriz na mjestu, to će rasti ispuniti. 327 01:00:13,520 --> 01:00:14,971 Što je to igra sada? 328 01:00:14,971 --> 01:00:18,500 >> [Mijaukati] 329 01:00:18,500 --> 01:00:19,000 U REDU. 330 01:00:19,000 --> 01:00:19,660 Nice. 331 01:00:19,660 --> 01:00:22,540 A to je ono što bi se moglo nazvati program koji je također točno. 332 01:00:22,540 --> 01:00:27,590 To meowed tri puta prilično naravno, ali bolje je dizajniran. 333 01:00:27,590 --> 01:00:29,580 Ja sam koristeći manje redundancije. 334 01:00:29,580 --> 01:00:30,970 Nisam kopirati i zalijepiti ništa. 335 01:00:30,970 --> 01:00:32,470 Upravo sam se bolju ideju. 336 01:00:32,470 --> 01:00:35,340 >> Sada, to je još uvijek nije sve što je Zanimljivo s Scratch ne radi 337 01:00:35,340 --> 01:00:35,930 bilo što. 338 01:00:35,930 --> 01:00:37,388 Dakle, neka je učiniti nešto drugo umjesto toga. 339 01:00:37,388 --> 01:00:38,670 Učinimo nešto zauvijek. 340 01:00:38,670 --> 01:00:39,420 I znate što? 341 01:00:39,420 --> 01:00:40,470 Zahtjev se čini zanimljivo. 342 01:00:40,470 --> 01:00:45,760 Idemo ga premjestiti 10 koraci i pogodak igrati sada. 343 01:00:45,760 --> 01:00:46,570 >> U REDU. 344 01:00:46,570 --> 01:00:49,300 Pa možemo vrsta otpora ga natrag, i on je još uvijek 345 01:00:49,300 --> 01:00:51,250 pokrenut zato što je to zauvijek. 346 01:00:51,250 --> 01:00:53,150 Tako se petlja radi ono što je rekao za napraviti, 347 01:00:53,150 --> 01:00:54,650 ali to nije sve što je zanimljivo. 348 01:00:54,650 --> 01:00:55,310 Napravimo to. 349 01:00:55,310 --> 01:00:59,870 Dopustite mi dodati upravljački blok, i koristiti jednu od tih uvjeta po prvi puta. 350 01:00:59,870 --> 01:01:03,119 >> Dakle, to će pomaknuti 10 steps-- 10 točaka, 10 piksela na screen-- 351 01:01:03,119 --> 01:01:04,660 onda će se pitati to pitanje. 352 01:01:04,660 --> 01:01:09,340 Ako je nešto istina, onda nešto u tom bloku. 353 01:01:09,340 --> 01:01:13,060 Tako ispada osjetilni ima cjelinu hrpa Boolean expressions-- 354 01:01:13,060 --> 01:01:16,580 Pitanja iz DA NE ili istina lažna form-- neka mi to učiniti. 355 01:01:16,580 --> 01:01:19,260 >> Ako touching-- a zatim tu je ovaj mali padajući izbornik. 356 01:01:19,260 --> 01:01:20,410 Mogu ga parametriranje. 357 01:01:20,410 --> 01:01:23,010 Ako dodirivanjem edge-- neka je učiniti nešto takvo. 358 01:01:23,010 --> 01:01:27,310 Dakle, ako dira edge-- neka mi se vratiti u pokretu. 359 01:01:27,310 --> 01:01:32,281 A zašto ne bismo samo okrenuti za 180 stupnjeva? 360 01:01:32,281 --> 01:01:32,780 U redu. 361 01:01:32,780 --> 01:01:35,070 Dakle, zauvijek, pomaknuti 10 koraka. 362 01:01:35,070 --> 01:01:37,670 Ako ste dodirivanjem rub, okrenuti za 180 stupnjeva. 363 01:01:37,670 --> 01:01:39,720 I to nije kraj programa jer ste u zauvijek blokirati, 364 01:01:39,720 --> 01:01:42,053 tako da će ići opet i opet i opet i opet. 365 01:01:42,053 --> 01:01:43,980 Tako ćemo vidjeti što će se dogoditi. 366 01:01:43,980 --> 01:01:44,785 U REDU. 367 01:01:44,785 --> 01:01:48,270 Malo lud, ali nekako cool. 368 01:01:48,270 --> 01:01:51,710 >> I možemo dodati da to neke gluposti da nisu sve što je intelektualno 369 01:01:51,710 --> 01:01:52,270 zanimljiv. 370 01:01:52,270 --> 01:01:57,210 Ali ako se ostvario taj mali Mikrofon button-- jao. 371 01:01:57,210 --> 01:01:58,480 Pusti me očistiti ovo gore. 372 01:01:58,480 --> 01:02:01,540 Dopustite mi da bi se poboljšala to kao oni bi rekli na TV-u. 373 01:02:01,540 --> 01:02:05,400 Čist da se, Save i sada ići do skripte. 374 01:02:05,400 --> 01:02:07,500 >> A sada, pustite me na zvuk. 375 01:02:07,500 --> 01:02:09,002 Dopustite mi dati joj ime. 376 01:02:09,002 --> 01:02:12,440 Nazvat ću ovo jao. 377 01:02:12,440 --> 01:02:13,840 A sada igrati zvuk jao. 378 01:02:13,840 --> 01:02:16,520 Obavijest se pojavljuje u Malo padajući izbornik. 379 01:02:16,520 --> 01:02:17,612 Da vidimo. 380 01:02:17,612 --> 01:02:20,444 >> [JOJ] 381 01:02:20,444 --> 01:02:24,377 >> [SMIJEH] 382 01:02:24,377 --> 01:02:25,835 Ali možemo promijeniti t svojima u letu. 383 01:02:25,835 --> 01:02:28,106 Možemo biti dvostruko neugodno. 384 01:02:28,106 --> 01:02:31,760 >> [JOJ] 385 01:02:31,760 --> 01:02:35,332 >> Ili, ako mi to napraviti u obliku 1.000 koraka na prvi time-- 386 01:02:35,332 --> 01:02:39,900 387 01:02:39,900 --> 01:02:40,670 >> U REDU. 388 01:02:40,670 --> 01:02:42,295 Tako ćemo ostaviti na miru. 389 01:02:42,295 --> 01:02:45,290 Pa opet, zgrada blocks-- I započeo s nečim super jednostavan, 390 01:02:45,290 --> 01:02:47,930 i onda sam dodao značajku, dodao značajku, dodao značajku. 391 01:02:47,930 --> 01:02:50,721 A ja više ne moraju brinuti o kako je prvi od tih značajki 392 01:02:50,721 --> 01:02:53,690 proveden je kao što sam i dalje na sloj stvari na vrhu. 393 01:02:53,690 --> 01:02:55,430 Tako je, u stvari, neka mi učiniti nešto drugo ovdje. 394 01:02:55,430 --> 01:03:00,580 Dopustite mi ići naprijed i otvoriti datoteku koja Donio sam unaprijed, pod nazivom Ovce. 395 01:03:00,580 --> 01:03:03,970 >> Dakle, to je malo drugačiji lik koji izgleda ovako. 396 01:03:03,970 --> 01:03:07,370 I daj da vidim ako ne mogu nešto pomoću brojača 397 01:03:07,370 --> 01:03:09,310 u ovom case-- tzv varijablu. 398 01:03:09,310 --> 01:03:15,540 Ja ću ići naprijed i pod Events-- neka mi se zelena zastava kliknuli. 399 01:03:15,540 --> 01:03:19,030 Onda me pusti da se podatci, što ja znam od samo igranje okolo i prije, 400 01:03:19,030 --> 01:03:20,214 gdje su varijable. 401 01:03:20,214 --> 01:03:21,880 I ja ću ići naprijed i povucite ovo. 402 01:03:21,880 --> 01:03:25,144 >> Dakle, varijabla zove brojač, a Idem za inicijalizaciju na nulu. 403 01:03:25,144 --> 01:03:27,560 Mogu ga nazvati anything-- x ili y ili z-- ali u programiranju, 404 01:03:27,560 --> 01:03:30,410 pozivajući nešto u semantički koristan način, kao što je brojač, 405 01:03:30,410 --> 01:03:34,540 koji opisuje što je to, to je Puno je lakše pročitati svoj kod kasnije. 406 01:03:34,540 --> 01:03:37,460 Pusti me naprijed i dobiti zauvijek blokirati ovdje. 407 01:03:37,460 --> 01:03:41,289 I da me pusti da izgleda stranica i napraviti Say blok. 408 01:03:41,289 --> 01:03:44,330 No, ono što je cool o varijablama je sam ne moraju samo upisati nešto 409 01:03:44,330 --> 01:03:47,850 kao pozdrav svijetu, što smo već učinio sam umjesto toga može ići podataka 410 01:03:47,850 --> 01:03:50,690 i povucite moj varijablu, pa čak i iako se oblik ne baš 411 01:03:50,690 --> 01:03:53,000 izgleda kao da bi trebao stati, ona će rasti ispuniti. 412 01:03:53,000 --> 01:03:58,396 A ja ću samo reći brojač za jedan second-- spoiler-- on će brojati. 413 01:03:58,396 --> 01:04:00,380 Mi ćemo to reći za jednu sekundu. 414 01:04:00,380 --> 01:04:02,840 Onda ću otići i imaju ga čekati za jednu sekundu, 415 01:04:02,840 --> 01:04:04,650 tako da se ne računa se prebrzo. 416 01:04:04,650 --> 01:04:08,430 I onda na kraju, promijeniti brojača by one-- drugim riječima, 417 01:04:08,430 --> 01:04:13,520 povećajte brojač po jedan Dodatnu vrijednost i to zauvijek. 418 01:04:13,520 --> 01:04:16,129 >> Dakle, ovce također, poput programer, broji od 0. 419 01:04:16,129 --> 01:04:20,350 420 01:04:20,350 --> 01:04:23,740 A ako ćemo čekati dovoljno dugo, on će to učiniti zauvijek. 421 01:04:23,740 --> 01:04:27,740 Ali to baš i nije istina, jer u stvari, kao što ćemo otkriti u jednom tjednu, 422 01:04:27,740 --> 01:04:31,871 integers i računala općenitije, tehnički imaju tek finite-- dobro, 423 01:04:31,871 --> 01:04:33,829 umjesto računala, kada oni predstavljaju cijele brojeve, 424 01:04:33,829 --> 01:04:35,670 samo imaju ograničen broj bitova. 425 01:04:35,670 --> 01:04:37,860 Ti žarulje tamo može samo računati tako visoko 426 01:04:37,860 --> 01:04:39,239 prije nego što ste se žarulja. 427 01:04:39,239 --> 01:04:41,590 I računalo također, samo da ima toliko memorije, 428 01:04:41,590 --> 01:04:44,640 ima samo toliko tranzistora, tako da samo može računati tako visoka. 429 01:04:44,640 --> 01:04:47,409 >> Tako ispada da se ovce, Mislim, mogu računati na 2 milijarde 430 01:04:47,409 --> 01:04:48,409 ili nešto prilično velika. 431 01:04:48,409 --> 01:04:50,325 Dakle, nećemo se čekati da se to dogodi. 432 01:04:50,325 --> 01:04:54,850 No, na kraju su neki bug će se dogoditi koji mogu imati neke vrlo stvarni svijet 433 01:04:54,850 --> 01:04:55,970 posljedice. 434 01:04:55,970 --> 01:04:58,861 No, iza ovaca, koje Samo uvodi varijablu. 435 01:04:58,861 --> 01:05:01,110 Idemo naprijed i otvoriti nešto što sam napravio unaprijed 436 01:05:01,110 --> 01:05:07,430 ovdje se zove Pet the Cat-- Five Mačka ovamo. 437 01:05:07,430 --> 01:05:10,420 A primjetiti ovdje je to malo blokovi, ali kad zelena zastava 438 01:05:10,420 --> 01:05:12,474 kliknuo, zauvijek na sljedeći način. 439 01:05:12,474 --> 01:05:15,265 Ako ste dira miš pointer-- pa se pokazivač na zaslonu, 440 01:05:15,265 --> 01:05:18,529 arrow-- igrati zvuk mijau a zatim čekati dvije sekunde. 441 01:05:18,529 --> 01:05:19,570 I upravo to zauvijek. 442 01:05:19,570 --> 01:05:22,619 Samo stalno čekati da li je pointer-- 443 01:05:22,619 --> 01:05:24,710 ako je mačka dodiruje pokazivač. 444 01:05:24,710 --> 01:05:26,060 >> Tako sam pogodak igrati. 445 01:05:26,060 --> 01:05:26,920 Ništa se događa. 446 01:05:26,920 --> 01:05:28,980 No, kao što sam pomaknite pokazivač preko mačka, 447 01:05:28,980 --> 01:05:31,960 >> [Mijaukati] 448 01:05:31,960 --> 01:05:34,750 >> I ako sam ga odmaknuti, a ne petting mačku više. 449 01:05:34,750 --> 01:05:38,090 Dakle, neki uvjetno logike uklopljeni unutar petlje. 450 01:05:38,090 --> 01:05:43,070 Kako o ovom primjeru, namjerno pod nazivom Ne primaju se kućni Mačka? 451 01:05:43,070 --> 01:05:45,253 Što je to sad? 452 01:05:45,253 --> 01:05:47,880 >> [Mijaukati] 453 01:05:47,880 --> 01:05:50,215 >> Zašto ne bi trebao ljubimac mačka? 454 01:05:50,215 --> 01:05:59,440 >> [Mijaukati] 455 01:05:59,440 --> 01:06:00,699 >> U REDU. 456 01:06:00,699 --> 01:06:03,880 Dakle, ovo je primjer if drugdje. 457 01:06:03,880 --> 01:06:06,482 To je točka odluke i jer je sjedio u petlji, 458 01:06:06,482 --> 01:06:07,690 oboje su uzimajući ček. 459 01:06:07,690 --> 01:06:08,280 Je li to istina? 460 01:06:08,280 --> 01:06:08,760 Je li to istina? 461 01:06:08,760 --> 01:06:09,250 Je li to istina? 462 01:06:09,250 --> 01:06:09,791 Je li to istina? 463 01:06:09,791 --> 01:06:11,880 I eventualno, jedan od oni će se primjenjivati 464 01:06:11,880 --> 01:06:16,480 pa čuješ se ili Mijau ili grmljavina lava u tom slučaju. 465 01:06:16,480 --> 01:06:21,400 >> Pa, neka je učiniti nešto više zavoljeti jedno da sam unaprijed too-- niti. 466 01:06:21,400 --> 01:06:25,210 Dakle, nit je samo jedan Ono što računalo može učiniti. 467 01:06:25,210 --> 01:06:29,349 Dakle, multi-navojem program je program koji mogu raditi više stvari odjednom. 468 01:06:29,349 --> 01:06:31,140 I sve ove primjere do sada su imali 469 01:06:31,140 --> 01:06:35,980 Samo je jedan original, tako da speak-- jedan program kao što je ovaj ovdje. 470 01:06:35,980 --> 01:06:38,810 Ali primijetite ovaj program ima Dva duhovi, dva znaka. 471 01:06:38,810 --> 01:06:40,020 Jedna je ptica. 472 01:06:40,020 --> 01:06:40,870 Jedna je mačka. 473 01:06:40,870 --> 01:06:45,080 >> A primijetila kada sam kliknite na ove dolje lijevo, svaki od njih ima svoje vlastite skripte 474 01:06:45,080 --> 01:06:47,120 ili programe povezane s njima. 475 01:06:47,120 --> 01:06:49,420 A kako onih programi, obavijesti, start 476 01:06:49,420 --> 01:06:52,600 sa kada zelene zastave clicked-- Pogledajmo na cat-- 477 01:06:52,600 --> 01:06:54,030 kad zelena zastava kliknuli. 478 01:06:54,030 --> 01:06:58,220 I tako doista, kad sam udario igrati sada, Dvije stvari će se dogoditi odjednom. 479 01:06:58,220 --> 01:07:01,750 Mačka i ptica su oba će raditi istovremeno 480 01:07:01,750 --> 01:07:03,815 stvoriti taj efekt. 481 01:07:03,815 --> 01:07:05,440 I što bi mogli zamisliti što se događa. 482 01:07:05,440 --> 01:07:08,340 Tu je petlja i ptica a mačka se u petlji. 483 01:07:08,340 --> 01:07:11,270 Ptica je samo odbija kao Bio sam prije kad sam rekao jao. 484 01:07:11,270 --> 01:07:13,040 No, mačka očito ima prednost. 485 01:07:13,040 --> 01:07:16,040 Postoji još jedan osjetilni blok koja pokazuje mačka namjerno 486 01:07:16,040 --> 01:07:19,836 za ptice u ovom slučaju ovdje. 487 01:07:19,836 --> 01:07:22,960 Tako smo mogli zafrkavati, osim, gledajući preko tih blokova, što se događa. 488 01:07:22,960 --> 01:07:25,460 No, ključni sastojak ovdje je jedan. 489 01:07:25,460 --> 01:07:28,520 Ptica, tako da je ova igra nije potpuno boring-- ili ovo animation-- 490 01:07:28,520 --> 01:07:30,060 počinje na slučajnom smjeru. 491 01:07:30,060 --> 01:07:32,890 I računalo je branje broj između 90 i 180 492 01:07:32,890 --> 01:07:36,110 u biti, tako da je to malo različiti animacijski svaki put. 493 01:07:36,110 --> 01:07:39,480 >> A onda primjetiti ovdje, ako je mačka dodiruje pticu, a onda 494 01:07:39,480 --> 01:07:42,030 igrati lava četiri sound-- šum. 495 01:07:42,030 --> 01:07:46,330 No, u međuvremenu je u Ptičje paleta, imamo ovo. 496 01:07:46,330 --> 01:07:49,229 Zauvijek, ako ne dira mačku, samo držati se kreće u tri koraka. 497 01:07:49,229 --> 01:07:50,770 A onda evo još jedan zagonetka komad. 498 01:07:50,770 --> 01:07:52,030 Ako ste na rubu, odbijaju. 499 01:07:52,030 --> 01:07:54,840 Dakle, ptica je samo vrsta skrb vlastiti posao, 500 01:07:54,840 --> 01:07:57,330 samo leti okolo i odskakanje, i to je stvarno 501 01:07:57,330 --> 01:08:01,780 je mačka koja je imala uvjetno logike kako bi se utvrdilo da ga je uhvatio pticu. 502 01:08:01,780 --> 01:08:02,280 U redu. 503 01:08:02,280 --> 01:08:08,800 Tako ćemo učiniti nešto drugo ovdje, ovo se zove Hi Hi Hi. 504 01:08:08,800 --> 01:08:15,100 A ovaj ovdje samo radi to u zauvijek petlji. 505 01:08:15,100 --> 01:08:18,925 Ali notice-- kako ćemo zaustaviti to je vrlo neugodno programa? 506 01:08:18,925 --> 01:08:21,600 507 01:08:21,600 --> 01:08:22,640 Hit razmaknicu. 508 01:08:22,640 --> 01:08:27,990 Jer, ako to učinim, lijeva ruka program-- 509 01:08:27,990 --> 01:08:31,550 primijetiti da je stalno listening-- je ključ prostor press. 510 01:08:31,550 --> 01:08:34,090 Ako razmaknicu pritisnuta, i ako je tako, što učiniti? 511 01:08:34,090 --> 01:08:35,980 To čini vrlo čest tehniku. 512 01:08:35,980 --> 01:08:38,590 On postavlja varijablu jednaku vrijednost. 513 01:08:38,590 --> 01:08:39,741 Ali to prebacuje tu vrijednost. 514 01:08:39,741 --> 01:08:41,490 [? Dakle, izgled?] na temelju shape-- I 515 01:08:41,490 --> 01:08:43,160 imaju varijablu da sam napisao je unaprijed zove 516 01:08:43,160 --> 01:08:44,770 Isključen, što samo govori da ili ne. 517 01:08:44,770 --> 01:08:45,880 Je li zvuk isključen ili nije? 518 01:08:45,880 --> 01:08:46,990 Istina ili laž? 519 01:08:46,990 --> 01:08:51,580 I napomena, govorim učinimo, ako isključen je nula, a zatim promijeniti jedan, 520 01:08:51,580 --> 01:08:53,840 drugi set nijemi je na nulu. 521 01:08:53,840 --> 01:08:55,540 Dakle, samo flip vrijednost od nula do jedan. 522 01:08:55,540 --> 01:08:58,320 Mogao sam done-- ga promijeniti od dva do tri i tri na dva 523 01:08:58,320 --> 01:09:00,162 ili četiri do pet ili četiri do šest. 524 01:09:00,162 --> 01:09:01,870 No, to nije važno što brojevi koristim, 525 01:09:01,870 --> 01:09:04,090 tako dugo dok držim mijenja ga suprotno. 526 01:09:04,090 --> 01:09:07,290 >> I što je bilo koji programer bi samo izabrati nule i one-- lažno i istinito, 527 01:09:07,290 --> 01:09:09,510 off i on-- da predstavlja to. 528 01:09:09,510 --> 01:09:10,930 A to je još u tijeku. 529 01:09:10,930 --> 01:09:12,190 Ako sam opet pogodio razmaknicu 530 01:09:12,190 --> 01:09:13,590 >> [SEAL ZVUKOVI] 531 01:09:13,590 --> 01:09:15,440 >> Program je još u tijeku. 532 01:09:15,440 --> 01:09:18,400 Budući da je ovo drugo pismo koji kaže, zauvijek učinite sljedeće. 533 01:09:18,400 --> 01:09:21,390 534 01:09:21,390 --> 01:09:24,770 Ako je isključen varijabla jednaka zero-- pa ako niste isključen 535 01:09:24,770 --> 01:09:29,609 je logic-- ako je lažna ili ne, onda igrati zvuk, 536 01:09:29,609 --> 01:09:30,650 jer ti ne stišava. 537 01:09:30,650 --> 01:09:33,358 Te bi trebao igrati zvuk, a zatim mislim hi hi hi dvije sekunde 538 01:09:33,358 --> 01:09:35,790 a onda čekati, i to opet i opet i opet. 539 01:09:35,790 --> 01:09:40,760 >> I tako na ovaj način imamo način za ljudi to-- za programe za interakciju. 540 01:09:40,760 --> 01:09:43,120 I oni ne moraju se kao datum kao i drugi. 541 01:09:43,120 --> 01:09:46,280 U stvari, poking around-- bez sakrivenog intended-- 542 01:09:46,280 --> 01:09:49,250 netko je proveo veliku količinu Vrijeme na internetu provedbenim 543 01:09:49,250 --> 01:09:51,580 PokemonGo u nule. 544 01:09:51,580 --> 01:09:55,440 To čak vam geolocates u Cambridge ili Allston ovdje. 545 01:09:55,440 --> 01:10:03,120 Dakle, ako želite vidjeti previše što ljudi možete učiniti je učinimo vrlo fancy izbornika. 546 01:10:03,120 --> 01:10:04,780 Kliknite na ovdje. 547 01:10:04,780 --> 01:10:07,430 >> Ovo sam ja sa svojim strelicama sada. 548 01:10:07,430 --> 01:10:09,446 Ja ću ići nakon toga. 549 01:10:09,446 --> 01:10:09,946 Klik. 550 01:10:09,946 --> 01:10:12,949 551 01:10:12,949 --> 01:10:14,240 A sada kliknete PokeBall. 552 01:10:14,240 --> 01:10:17,130 553 01:10:17,130 --> 01:10:20,260 Mislim, ja mislim da si ti trebala kliknite PokeBall. 554 01:10:20,260 --> 01:10:20,760 U redu. 555 01:10:20,760 --> 01:10:22,680 Tako sam to učinio. 556 01:10:22,680 --> 01:10:23,950 Ja mogu ići ovdje. 557 01:10:23,950 --> 01:10:27,790 A ta osoba provodi nešto više PokeBalls preko here-- tri PokeBalls. 558 01:10:27,790 --> 01:10:29,950 >> Mi ćemo objaviti link na ovu online, tako da možete igrati. 559 01:10:29,950 --> 01:10:32,364 Ali Obavijest postoji samo neke osnovne izgrađeni. 560 01:10:32,364 --> 01:10:33,780 Izgleda puno ljubitelj, i to je to. 561 01:10:33,780 --> 01:10:35,905 To je impresivan i više nego što bi obično 562 01:10:35,905 --> 01:10:37,740 očekivati, svakako za problema postaviti na nulu. 563 01:10:37,740 --> 01:10:40,809 Nemam pojma koliko dugo ta osoba provela na internetu. 564 01:10:40,809 --> 01:10:41,850 Ali to je sve samo petlje. 565 01:10:41,850 --> 01:10:43,180 Tu je zvuk svira. 566 01:10:43,180 --> 01:10:44,850 Postoji neka vrsta petlje osluškujući da li sam 567 01:10:44,850 --> 01:10:47,558 udaranje strelicu gore ili prema dolje strelica ili lijeva i desna, 568 01:10:47,558 --> 01:10:49,834 i onda ako je tako, to je kretanje to neki broj piksela. 569 01:10:49,834 --> 01:10:51,750 A onda kada se klikne na još jedan sprite, postoji 570 01:10:51,750 --> 01:10:53,390 nekakva Ako stanje tamo. 571 01:10:53,390 --> 01:10:54,806 Da, to je previše intenzivan. 572 01:10:54,806 --> 01:10:56,100 Idemo da se zaustavi. 573 01:10:56,100 --> 01:10:57,750 To je sve te osnovne građevne blokove. 574 01:10:57,750 --> 01:11:01,530 Ne postoje drugi sastojci ostali od onih koje smo gledali na već. 575 01:11:01,530 --> 01:11:04,670 >> A ipak, evo, neka mi to jedan završni skup primjera 576 01:11:04,670 --> 01:11:06,960 koja daje sliku previše o tome što možete učiniti ovdje. 577 01:11:06,960 --> 01:11:10,481 Ovdje je vrlo jednostavan program koji samo ne učinimo, kašalj, kašalj, kašalj. 578 01:11:10,481 --> 01:11:12,480 I samo na temelju smo pogledali do sada, 579 01:11:12,480 --> 01:11:14,570 gdje je očito prilika za poboljšanje. 580 01:11:14,570 --> 01:11:15,570 Ovaj program je ispravno. 581 01:11:15,570 --> 01:11:17,980 Ona kašlje tri puta, što je ono što sam namjeravao. 582 01:11:17,980 --> 01:11:19,650 Ali to slabo se provode. 583 01:11:19,650 --> 01:11:20,600 To je loše dizajnirana. 584 01:11:20,600 --> 01:11:22,000 Zašto? 585 01:11:22,000 --> 01:11:22,500 Da. 586 01:11:22,500 --> 01:11:23,230 To nije petlje. 587 01:11:23,230 --> 01:11:24,610 I to ne toliko da to nije petlje, 588 01:11:24,610 --> 01:11:26,400 to je da ima puno redundancije. 589 01:11:26,400 --> 01:11:28,830 Tu se kopira i zalijepljen broj, da se tako izrazim. 590 01:11:28,830 --> 01:11:31,830 I otopina je vjerojatno je doista petlje. 591 01:11:31,830 --> 01:11:34,350 Pa neka mi ići naprijed i poboljšati na to. 592 01:11:34,350 --> 01:11:36,250 A ja ću povući to ovdje. 593 01:11:36,250 --> 01:11:39,986 Pusti me naprijed i dobiti reprizu blok, promijeniti to na tri. 594 01:11:39,986 --> 01:11:41,860 Idem baciti neke od tih blokova. 595 01:11:41,860 --> 01:11:43,150 >> A vi ćete primijetiti da je prilično intuitivno. 596 01:11:43,150 --> 01:11:45,691 Vi povucite i ispustite i stvari pojavljuju i nestaju s vremenom. 597 01:11:45,691 --> 01:11:49,170 A ja mogu samo povući ovaj ovdje, i sada imam čišću verziju dalje. 598 01:11:49,170 --> 01:11:50,730 Ali znate što? 599 01:11:50,730 --> 01:11:52,940 Tu je ovo prilika sada abstraction-- 600 01:11:52,940 --> 01:11:56,350 za početak definirati novi rječnik da MIT nije očekivao. 601 01:11:56,350 --> 01:11:59,110 Tu je čekati i ponovite i zauvijek i ako, 602 01:11:59,110 --> 01:12:02,590 ali što ako želim predstaviti Riječ kašalj kao blok? 603 01:12:02,590 --> 01:12:06,230 Što ako želim puzzle komad čija je svrha u životu je da kašlje? 604 01:12:06,230 --> 01:12:10,720 >> Pa, pogledajmo ovu verziju ovdje, što sam na ovaj način. 605 01:12:10,720 --> 01:12:13,579 Čudesnom, ja sam stvorio Ova zagonetka komad ovdje, 606 01:12:13,579 --> 01:12:14,870 koji Scratch vam omogućuje da učinite. 607 01:12:14,870 --> 01:12:16,787 I doista C i Python i JavaScript su 608 01:12:16,787 --> 01:12:18,370 će vam omogućiti da to učiniti kao dobro. 609 01:12:18,370 --> 01:12:21,830 Možete napraviti svoj vlastiti prilagođeni komada koje nazivamo ono što želite. 610 01:12:21,830 --> 01:12:24,890 U ovom slučaju, kašalj osjeća kao razumna definicija. 611 01:12:24,890 --> 01:12:27,880 A onda s tim komadima dolje Ovdje možete odrediti što to znači. 612 01:12:27,880 --> 01:12:30,290 >> vukao sam i ispao iz Ova paleta here-- više 613 01:12:30,290 --> 01:12:33,500 blocks-- to velika ljubičasta blok, gdje sam upisali u kašalj 614 01:12:33,500 --> 01:12:35,290 kao ime mog novog dio slagalice. 615 01:12:35,290 --> 01:12:39,920 I onda sam rekao svaki put kad korisnik zove ovaj novi kašalj slagalice, 616 01:12:39,920 --> 01:12:41,770 ne reći i čekati. 617 01:12:41,770 --> 01:12:46,160 I tako ovdje u mom ponavljanja bloka, Mogu samo kašalj tri puta. 618 01:12:46,160 --> 01:12:49,972 >> A ja bih rekao, pogotovo ako sad sakriti taj detalj. 619 01:12:49,972 --> 01:12:51,430 Koga briga kako se kašalj se provodi? 620 01:12:51,430 --> 01:12:54,390 Sve mi je stalo kao programer da mogu kašljati. 621 01:12:54,390 --> 01:12:56,280 Ne zanima me kako kažu provodi. 622 01:12:56,280 --> 01:12:58,620 Ja samo stalo da mačka može nešto reći. 623 01:12:58,620 --> 01:13:02,720 Ja mogu apstraktno daleko da detaljno i samo se usredotočiti na ono što je na ekranu ovdje. 624 01:13:02,720 --> 01:13:04,400 Ali mogu učiniti i korak dalje. 625 01:13:04,400 --> 01:13:08,070 >> Uočite da ovdje imam provodi se petlja tri puta. 626 01:13:08,070 --> 01:13:11,560 No, što ako umjesto toga sam zgrabiti ovu verziju? 627 01:13:11,560 --> 01:13:14,640 A što ako se umjesto u ovoj verziji ovdje 628 01:13:14,640 --> 01:13:18,730 Samo sam promijeniti svoj dio slagalice uzeti argument i unos k sebi? 629 01:13:18,730 --> 01:13:21,100 I da se unos može biti broj kao i tri. 630 01:13:21,100 --> 01:13:24,580 Pa sad, ako ja pišem program i želim je mačka na kašalj, 631 01:13:24,580 --> 01:13:28,270 Ja zapravo mogu reći puzzle komad koliko puta na kašalj, 632 01:13:28,270 --> 01:13:31,990 jer je na dnu tu, ljubitelj verzija ovih prilagođenih slagalice 633 01:13:31,990 --> 01:13:34,500 Dopušta mi navesti da kašalj zapravo traje 634 01:13:34,500 --> 01:13:36,951 input-- uzima jedan argument ovako. 635 01:13:36,951 --> 01:13:37,700 I znate što? 636 01:13:37,700 --> 01:13:38,890 Možda sam shvatio, čekaj malo. 637 01:13:38,890 --> 01:13:40,680 Kašalj je same-- to je bitno 638 01:13:40,680 --> 01:13:42,120 ista ideja kao i kihanje. 639 01:13:42,120 --> 01:13:44,040 To je samo drugačiji Riječ na ekranu. 640 01:13:44,040 --> 01:13:46,550 Ja mogu apstraktno daleko dalje i provesti 641 01:13:46,550 --> 01:13:48,750 ovo konačna verzija kašalj, koji na prvi pogled 642 01:13:48,750 --> 01:13:50,660 je način složeniji izgleda. 643 01:13:50,660 --> 01:13:52,140 Ali primijetiti što sam učinio. 644 01:13:52,140 --> 01:13:55,930 Imam sada generalized-- genericized really-- ovaj dio slagalice 645 01:13:55,930 --> 01:13:59,900 zvati reći riječ n puta. 646 01:13:59,900 --> 01:14:04,410 >> I sad imam dva nova slagalice ovdje definirati kašalj n puta. 647 01:14:04,410 --> 01:14:06,790 A što je funkcija kašalj učiniti? 648 01:14:06,790 --> 01:14:08,420 Što je moj običaj zagonetka komad učiniti? 649 01:14:08,420 --> 01:14:11,996 To jednostavno naziva recimo blok, prolaze u riječi želim reći, 650 01:14:11,996 --> 01:14:13,870 prolazi u broju puta želim reći. 651 01:14:13,870 --> 01:14:18,210 Zato sada mogu implementirati kihanje, jednostavno govoreći achoo, 652 01:14:18,210 --> 01:14:20,320 u ovom slučaju, neki broj puta. 653 01:14:20,320 --> 01:14:22,360 >> I tako sam raslojavanje i raslojavanje. 654 01:14:22,360 --> 01:14:25,690 I opet, ključ je da se ovdje ne kako sam ga provode, ali činjenica 655 01:14:25,690 --> 01:14:28,070 da, ako sam samo doslovno premjestiti ove off zaslonu, 656 01:14:28,070 --> 01:14:31,280 pogledaj kako jednostavan, ako se ne prilično moj program sada izgleda. 657 01:14:31,280 --> 01:14:33,930 Budući da čini ono što kaže, ja sam sažeto 658 01:14:33,930 --> 01:14:37,640 daleko ono što je u toj crnoj kutiji. to će se dogoditi da bude ljubičasta kutija ovdje 659 01:14:37,640 --> 01:14:41,430 ali sam opstruirao daleko što je unutra jer ne zanima me kako se to radi. 660 01:14:41,430 --> 01:14:43,650 Ja samo briga sad da radi. 661 01:14:43,650 --> 01:14:46,375 >> I doista, u problemu postavljen nula, to je točno 662 01:14:46,375 --> 01:14:49,250 vrsta raslojavanje ideja da ćete imati priliku da istražite. 663 01:14:49,250 --> 01:14:53,510 To je upravo prilika da se primijeniti tehnike rješavanja problema, 664 01:14:53,510 --> 01:14:55,550 na ono što je vjerojatno nepoznato okruženje. 665 01:14:55,550 --> 01:14:57,890 I da li ste ne programirano prije ili programirana prije, 666 01:14:57,890 --> 01:14:59,500 vidjet ćete da postoji malo nešto 667 01:14:59,500 --> 01:15:00,874 u ovom okruženju za sve. 668 01:15:00,874 --> 01:15:02,770 A s problemom set jedan u tjedan dana, 669 01:15:02,770 --> 01:15:06,630 mi ćemo biti prebačen na fokusiranje na višoj razini jezika pod nazivom 670 01:15:06,630 --> 01:15:09,290 C-- odnosno niža Razina jezik zove 671 01:15:09,290 --> 01:15:11,347 C-- to je čak i više moćna, iako je 672 01:15:11,347 --> 01:15:12,930 malo više zagonetan na prvi pogled. 673 01:15:12,930 --> 01:15:16,740 >> I shvatit ćete po današnjem TL: DR, da taj problem postavljen je kraći 674 01:15:16,740 --> 01:15:19,880 vremensko razdoblje od budućih one, jednostavno zato treba naći pravedno 675 01:15:19,880 --> 01:15:20,420 dostupan. 676 01:15:20,420 --> 01:15:22,211 I ne brinite, ako dodate razred kasno. 677 01:15:22,211 --> 01:15:23,920 Mi ćemo se riješiti prije dugo. 678 01:15:23,920 --> 01:15:28,480 I prije nego što smo odgoditi za torte, neka je završiti sa samo dvije minute izgled 679 01:15:28,480 --> 01:15:30,500 na ono što vas čeka ovdje u CS50. 680 01:15:30,500 --> 01:15:40,950 681 01:15:40,950 --> 01:17:20,803 [MUSIC SVIRA] 682 01:17:20,803 --> 01:17:21,302 U redu. 683 01:17:21,302 --> 01:17:22,690 To je to za CS50. 684 01:17:22,690 --> 01:17:23,650 Mi ćemo vas vidjeti uskoro. 685 01:17:23,650 --> 01:17:25,526 Torta je sada služio. 686 01:17:25,526 --> 01:17:28,998 687 01:17:28,998 --> 01:18:14,267 [MUSIC SVIRA] 688 01:18:14,267 --> 01:18:16,350 GLAS 17: Jeste li čuli od dopusta, šefe? 689 01:18:16,350 --> 01:18:29,490 690 01:18:29,490 --> 01:18:31,920 GLAS 18: Možda postoji više ispod haube. 691 01:18:31,920 --> 01:18:38,279