1 00:00:00,000 --> 00:00:15,059 >> [GLASBA] 2 00:00:15,059 --> 00:00:19,170 >> To je CS50-- Harvard Uvedba univerze 3 00:00:19,170 --> 00:00:22,070 do intelektualne podjetja računalništva 4 00:00:22,070 --> 00:00:23,800 in umetnost programiranja. 5 00:00:23,800 --> 00:00:27,020 In moje ime je David Malan, in Razmišljal sem zjutraj, 6 00:00:27,020 --> 00:00:33,120 to je bilo neverjetno 20 let danes odkar sem nazadnje sedel v kateri vi sedaj storiti. 7 00:00:33,120 --> 00:00:33,840 >> To je bilo 1996. 8 00:00:33,840 --> 00:00:37,550 Bil sem letniku in sem ob CS50 za zelo prvič. 9 00:00:37,550 --> 00:00:40,890 In nisem še prišel do živca da ga bo sam brucka, 10 00:00:40,890 --> 00:00:42,500 delno zaradi časa. 11 00:00:42,500 --> 00:00:44,782 Računalništva z mano je nekako všeč, meh. 12 00:00:44,782 --> 00:00:46,990 Bil sem malo geek narašča gor, ampak nisem zares 13 00:00:46,990 --> 00:00:49,180 imajo vse pravice intelektualne Zanimanje za kar je bilo videti 14 00:00:49,180 --> 00:00:51,920 samo je cel kup ljudje programskih ves čas. 15 00:00:51,920 --> 00:00:53,904 >> In sem se prestrašil, da je pošten. 16 00:00:53,904 --> 00:00:56,820 Tečaj in računalništva več na splošno so imeli in do neke mere 17 00:00:56,820 --> 00:01:01,230 še vedno ta sloves polja do pazi, če je le zato, ker tako mnogi od nas 18 00:01:01,230 --> 00:01:04,410 so seznanjeni z njim in prepričani o tem. 19 00:01:04,410 --> 00:01:08,480 In res ni bilo, dokler nisem nakupovali ta razred, ki letniku fall-- 20 00:01:08,480 --> 00:01:10,880 in še to, sem se vpisal le ker je professor-- 21 00:01:10,880 --> 00:01:13,950 ena mojih prvih mentorjev, Brian Kernighan zdaj Princeton-- 22 00:01:13,950 --> 00:01:15,700 dovoli mi, da bo razred akcije ne. 23 00:01:15,700 --> 00:01:18,020 In res, da je zato danes omogočajo in spodbujajo 24 00:01:18,020 --> 00:01:20,030 študente, da sprejme ta razred sat / unsat. 25 00:01:20,030 --> 00:01:22,040 >> In šele potem, z konec semestra 26 00:01:22,040 --> 00:01:24,870 sem zavedaš kot, wow, to ni bil tako neznan polje. 27 00:01:24,870 --> 00:01:26,850 Pravzaprav, to je bila zelo pooblastitvi polje, 28 00:01:26,850 --> 00:01:28,970 in bolj vznemirljivo, zlasti kasneje, 29 00:01:28,970 --> 00:01:32,809 kot sem tečaje Dramatic Arts 101 in Latinski A 30 00:01:32,809 --> 00:01:34,600 in nato sčasoma grad šola arheologije, 31 00:01:34,600 --> 00:01:37,860 sem res začel videti križišč tem področju, računalnik 32 00:01:37,860 --> 00:01:41,979 znanosti, s humanistiko, naravoslovne znanosti, umetnosti, medicine, 33 00:01:41,979 --> 00:01:42,520 in podobni. 34 00:01:42,520 --> 00:01:44,420 In tako, da je tisto, kar je prav tako gladka o računalništvu 35 00:01:44,420 --> 00:01:46,930 na koncu, kot upamo, da boste see-- je njegova uporabnost 36 00:01:46,930 --> 00:01:50,280 teh drugih področjih, in kako lahko da nekateri današnji in semester je 37 00:01:50,280 --> 00:01:53,070 idej in praktičnih spretnosti nazaj na svojo lastno domeno, 38 00:01:53,070 --> 00:01:58,200 in dejansko raziskovanje tega križišča svobodnih umetnosti in znanosti. 39 00:01:58,200 --> 00:02:02,690 >> Torej 73% od vas, če zadnji leto je znamenje, 40 00:02:02,690 --> 00:02:04,390 nikoli sprejela CS seveda prej. 41 00:02:04,390 --> 00:02:06,389 Torej, če, kot sem jaz, si občutek malo 42 00:02:06,389 --> 00:02:09,190 strah, ali odkrito nisi prepričani, zakaj ste še tu. 43 00:02:09,190 --> 00:02:11,510 Morda si sledijo nekatere prijatelji prav zdaj več do Sanders. 44 00:02:11,510 --> 00:02:12,490 To je povsem v redu. 45 00:02:12,490 --> 00:02:15,059 Cilj tega je, da priključite vas in vas pomirili 46 00:02:15,059 --> 00:02:17,100 da če ne videti, da levo in desno, 47 00:02:17,100 --> 00:02:21,480 boste videli sošolci z kot malo ali veliko izkušenj 48 00:02:21,480 --> 00:02:22,890 da vas morda sami imajo. 49 00:02:22,890 --> 00:02:25,280 In res, bomo delili nekateri statistični podatki kasneje danes 50 00:02:25,280 --> 00:02:28,120 kot s tem, kar demografiji razred ponavadi izgledal. 51 00:02:28,120 --> 00:02:31,440 >> In kot je bil dodan reassurance-- in to mi to pomeni, saj sem tekom 52 00:02:31,440 --> 00:02:33,252 Nekaj ​​let ago-- v Tečaj je učni načrt 53 00:02:33,252 --> 00:02:35,460 je this-- da je tisto, kar v končni fazi zadeve v tem predmetu 54 00:02:35,460 --> 00:02:38,040 ni tako veliko, če boste na koncu se glede na sošolci, 55 00:02:38,040 --> 00:02:43,110 ampak, če si v 11. tednu, končni cilj semester, na koncu glede na sebe 56 00:02:43,110 --> 00:02:46,280 V tednom 0, ki je kje smo danes tukaj. 57 00:02:46,280 --> 00:02:48,704 In to je tisto, kar sem spoznala vse tiste pred leti. 58 00:02:48,704 --> 00:02:50,620 In vem, da veliko Razredi to reči, ampak to je 59 00:02:50,620 --> 00:02:52,450 še posebej velja na področju računalništva. 60 00:02:52,450 --> 00:02:55,320 Na koncu dneva, to polje je ne poznajo, saj je bilo z mano 61 00:02:55,320 --> 00:02:58,590 in je lahko za vas, je res gre le za reševanje problemov. 62 00:02:58,590 --> 00:03:01,324 In kot tak, pa ima ta uporabnost, da bi dobili na drugih področjih. 63 00:03:01,324 --> 00:03:03,490 In v resnici, če bomo poskušali destilirati, kaj to pomeni, 64 00:03:03,490 --> 00:03:06,897 To je reševanje problemov V svojem bistvu, upam si reči. 65 00:03:06,897 --> 00:03:09,480 Tam je input-- tako karkoli že je je, da ste poskušali rešiti. 66 00:03:09,480 --> 00:03:12,264 Tam je izhod, ki je upajmo rešitev za ta problem. 67 00:03:12,264 --> 00:03:14,180 In potem, ko smo bi pravijo v računalništvu, 68 00:03:14,180 --> 00:03:17,310 tam je ta črna škatla v sredina, da vam ni nujno 69 00:03:17,310 --> 00:03:19,450 treba skrbeti, kako to deluje. 70 00:03:19,450 --> 00:03:22,230 Sami sčasoma morda izvaja, kaj je v tem polju. 71 00:03:22,230 --> 00:03:25,194 Ampak za današnje namene in več na splošno v življenju, vse, kar skrbi 72 00:03:25,194 --> 00:03:26,610 je, da se te težave rešiti. 73 00:03:26,610 --> 00:03:29,340 >> In kaj gre v tem predmetu končni cilj je raziskati 74 00:03:29,340 --> 00:03:31,700 presečišče Ti vhodi in izhodi, 75 00:03:31,700 --> 00:03:34,410 in to tako imenovane algoritmi, kot bomo kmalu videli, 76 00:03:34,410 --> 00:03:37,450 da izvajajo tisto, kar je pod tam, pokrov motorja. 77 00:03:37,450 --> 00:03:40,487 Ampak ti vložki in ti outputs-- Kaj to dejansko pomeni? 78 00:03:40,487 --> 00:03:43,570 No, na koncu dneva moramo nek način predstavlja informacije. 79 00:03:43,570 --> 00:03:46,660 To še posebej velja v računalniku, ki je kot modno in kompleksno kot to 80 00:03:46,660 --> 00:03:48,160 Morda se zdi, je precej neumna naprava. 81 00:03:48,160 --> 00:03:52,240 To traja electricity-- ali iz kabel ali baterijo, kot input-- 82 00:03:52,240 --> 00:03:55,820 in potem daje nekaj preprogramed odzivi na zaslonu. 83 00:03:55,820 --> 00:03:57,970 >> Toda kako priti iz začnejo tam konča? 84 00:03:57,970 --> 00:03:59,470 No, kaj je problem treba rešiti? 85 00:03:59,470 --> 00:04:01,050 No, mogoče bi lahko, na začetek vsakem semestru, 86 00:04:01,050 --> 00:04:02,841 poskusite, da prisotnost v prostoru, kot je ta. 87 00:04:02,841 --> 00:04:04,750 Torej lahko jaz kot ena, dva, tri. 88 00:04:04,750 --> 00:04:07,060 Ali pa morda, če sem to storil da nekako slediti 89 00:04:07,060 --> 00:04:10,560 od myself-- slediti things-- Sem lahko hitro zmanjka prstov. 90 00:04:10,560 --> 00:04:14,650 Tako da sem lahko samo, da hash marks-- eno Oseba, dva, tri, štiri, pet, šest, 91 00:04:14,650 --> 00:04:15,431 sedem, osem. 92 00:04:15,431 --> 00:04:17,930 In vsi imajo verjetno to storil, bodisi v vaših rokah 93 00:04:17,930 --> 00:04:19,680 ali na list papirja. 94 00:04:19,680 --> 00:04:22,140 In to je dejansko samo nekaj, kar se imenuje unarni notation-- 95 00:04:22,140 --> 00:04:26,130 kjer, če imate samo eno črko v abecedo, eno ali hašiš 96 00:04:26,130 --> 00:04:29,440 znamka v tem primeru, za vsak vhod želite prešteti, 97 00:04:29,440 --> 00:04:32,330 boste morali dati dol eno od teh letters-- enega od teh znamk. 98 00:04:32,330 --> 00:04:32,510 >> V redu. 99 00:04:32,510 --> 00:04:34,790 To je vse lepo in prav in sploh ni tako zapletena. 100 00:04:34,790 --> 00:04:37,800 Toda računalniki niso vsi da je veliko bolj zapletena. 101 00:04:37,800 --> 00:04:40,770 Dejansko je večina od vas verjetno vem, tudi če ste v resnici ne 102 00:04:40,770 --> 00:04:44,080 šteje, kaj to pomeni, da je računalniki razumejo le ničle 103 00:04:44,080 --> 00:04:45,870 in ones-- tako imenovanem binarnega sistema. 104 00:04:45,870 --> 00:04:49,390 Smo ljudje, nasprotno, so tako veliko bolj zapletene, če 105 00:04:49,390 --> 00:04:51,770 kot smo razumeli ničle preko devetk. 106 00:04:51,770 --> 00:04:55,740 >> Pa tudi če je binarni sprva pogled, ni vse, kar poznajo, 107 00:04:55,740 --> 00:05:00,330 Izkazalo se je, tako kot sistemi in ideje, ki smo že vedeli. 108 00:05:00,330 --> 00:05:02,420 Tako, na primer, da je to. 109 00:05:02,420 --> 00:05:03,896 To je samo zaporedje simbolov. 110 00:05:03,896 --> 00:05:05,770 In vse vas, ko Že pogled na to, verjetno 111 00:05:05,770 --> 00:05:09,380 mislim 123-- nič Res zanimivo tam. 112 00:05:09,380 --> 00:05:11,940 Ampak zakaj je ta številka, 123? 113 00:05:11,940 --> 00:05:14,440 To so le pismenke na screen-- le vzorci 114 00:05:14,440 --> 00:05:16,387 da nekdo bi lahko pripravijo ali vnesli. 115 00:05:16,387 --> 00:05:18,970 Ampak, če ste kot jaz, boste Verjetno se spomnite iz osnovne šole 116 00:05:18,970 --> 00:05:21,610 da obstaja vrsta stolpce ali mesta tukaj. 117 00:05:21,610 --> 00:05:25,340 Tam je tisti, za kraj in TEN kraj in sto v mesto. 118 00:05:25,340 --> 00:05:29,820 In razlog, da je to 123 in ne gre le za vzorec treh simbolov 119 00:05:29,820 --> 00:05:33,090 Kajti, seveda, če želimo imajo eno na stotine mestu, 120 00:05:33,090 --> 00:05:36,610 vam matematika 100-krat eno, in potem sta v desetih kraja. 121 00:05:36,610 --> 00:05:41,390 Torej, to je 10-krat 2, nato pa tri leta The One je mesto in to je 1 krat 3. 122 00:05:41,390 --> 00:05:45,670 In ko boste dodali vse tiste gor, od Seveda, boste dobili 100 plus 20 plus 3. 123 00:05:45,670 --> 00:05:48,220 >> Tako smo začeli z enim samim vzorcem od symbols-- je alphabet-- 124 00:05:48,220 --> 00:05:51,670 potem pa smo se preslika pomen na je s pomočjo teh stolpcih. 125 00:05:51,670 --> 00:05:54,450 No, se izkaže, da računalniki so res ni 126 00:05:54,450 --> 00:05:56,300 vse, kar se razlikuje od tebe in mene. 127 00:05:56,300 --> 00:06:01,840 Toda namesto da bi uporabila pristojnosti 10, tako speak-- 1, 10, 100, 1000, 128 00:06:01,840 --> 00:06:04,330 10.000 mesto in tako forth-- dejansko 129 00:06:04,330 --> 00:06:08,930 samo uporabo pooblastil 2-- tako on, 2, 4 in nato 130 00:06:08,930 --> 00:06:12,810 če bi dal več cifer, 8, 16, 32, 64, 128, in tako naprej. 131 00:06:12,810 --> 00:06:16,050 In tako je to, kako računalnik bi predstavljajo število 0, 132 00:06:16,050 --> 00:06:17,300 tako kot smo ljudje. 133 00:06:17,300 --> 00:06:21,660 >> 0, 0, 0-- in si verjetno lahko uganiti kaj vzorec ničel in enic, 134 00:06:21,660 --> 00:06:24,610 Če računalnik lahko le govorijo 0 ali 1-- kaj 135 00:06:24,610 --> 00:06:29,110 Vzorec se dogaja, da predstavlja številko, ki jo ljudje poznamo kot 1? 136 00:06:29,110 --> 00:06:30,590 Yeah-- 0, 0, 1. 137 00:06:30,590 --> 00:06:31,090 V redu. 138 00:06:31,090 --> 00:06:35,900 Torej, 0, 0, 1, kako jih predstavljamo 1, tako da boste lahko nagnjena nato 139 00:06:35,900 --> 00:06:39,510 da predstavlja številko 2, če imate štirih je kraj in dveh v mesto 140 00:06:39,510 --> 00:06:48,290 kot enem mestu, bi lahko rekli, dobro, če bi imeli 1 v eni kraja, 141 00:06:48,290 --> 00:06:50,430 in sedaj želimo štetje do 2, boste morda 142 00:06:50,430 --> 00:06:53,310 to stori, in pustimo, da je to nič. 143 00:06:53,310 --> 00:06:56,397 Seveda to ni, kako decimalni sistem deluje niti. 144 00:06:56,397 --> 00:06:58,230 Če si dal cifro oba od teh stolpcev 145 00:06:58,230 --> 00:06:59,563 moraš storiti aritmetično. 146 00:06:59,563 --> 00:07:01,930 Torej, kaj več sem po nesreči samo predstavlja? 147 00:07:01,930 --> 00:07:06,710 >> Torej je 3, ker je 2-krat 1 plus 1 krat 1, seveda, daje nam tri. 148 00:07:06,710 --> 00:07:08,340 Torej bi bilo to dva. 149 00:07:08,340 --> 00:07:12,730 Bit nekako obrne, tako rekoč, kot je 0 postane eden, podobno kot 9 vlog več 150 00:07:12,730 --> 00:07:14,840 in postane 0, ko nosijo 1. 151 00:07:14,840 --> 00:07:16,510 To bi potem tri seveda. 152 00:07:16,510 --> 00:07:20,170 Four-- druge zanimive stvari se zgodi, če je tisti, prevračanje 153 00:07:20,170 --> 00:07:21,750 in nosite 1, tako rekoč. 154 00:07:21,750 --> 00:07:23,320 Torej to je seveda 4. 155 00:07:23,320 --> 00:07:25,160 >> Ampak, če si hiter naprej zdaj, kaj je največja številka bo 156 00:07:25,160 --> 00:07:26,660 se, da lahko računalnik predstavlja? 157 00:07:26,660 --> 00:07:30,420 158 00:07:30,420 --> 00:07:32,380 Torej, to je samo sedem v tem primeru, kajne? 159 00:07:32,380 --> 00:07:35,570 Ker imate enega v štirih, ena v dveh, ena v enem. 160 00:07:35,570 --> 00:07:36,900 Torej, to je 4 plus 2 plus 1. 161 00:07:36,900 --> 00:07:37,972 Tako, da vam sedem. 162 00:07:37,972 --> 00:07:39,680 In res, bi to zdi na prvi pogled 163 00:07:39,680 --> 00:07:43,750 da lahko računalniki računajo ne več kot to. 164 00:07:43,750 --> 00:07:45,210 >> Ampak to seveda ni res. 165 00:07:45,210 --> 00:07:48,243 Kaj smo ljudje storiti, če hočemo da računajo več kot kot 999? 166 00:07:48,243 --> 00:07:51,000 167 00:07:51,000 --> 00:07:53,900 Samo nosijo eno in samo dodamo četrto cifro na levi strani. 168 00:07:53,900 --> 00:07:55,070 In tako v resnici smo lahko. 169 00:07:55,070 --> 00:07:57,900 Lahko bi imeli osem-jev kraj in kraj, iz 16. je, 170 00:07:57,900 --> 00:08:02,000 in 32 je mesto, 64, 128-- in vi lahko samo nadaljuj naprej do neskončnosti. 171 00:08:02,000 --> 00:08:04,640 Torej te ničle in ones-- ti binarni system-- 172 00:08:04,640 --> 00:08:10,290 so tisto, kar bi računalniški znanstvenik običajno zahtevajo malo ali binarno številko. 173 00:08:10,290 --> 00:08:13,590 >> Toda zdaj, kako smo dobili od koncept ali grafika teh stvari 174 00:08:13,590 --> 00:08:14,620 na dejansko računalnik? 175 00:08:14,620 --> 00:08:17,170 Se zdi, da se preskoči korak tukaj. 176 00:08:17,170 --> 00:08:20,210 No, samo vhodni konec dneva, na moj laptop tukaj 177 00:08:20,210 --> 00:08:22,060 je ta tok električne energije. 178 00:08:22,060 --> 00:08:24,560 Tudi če je bil dolg časa, odkar ste mislili o 179 00:08:24,560 --> 00:08:26,580 ali nikoli pomislil kako elektrika deluje, 180 00:08:26,580 --> 00:08:30,909 tam je elektroni, ki izhajajo iz ali ven, in to je moj tip vhoda. 181 00:08:30,909 --> 00:08:34,659 >> Torej, če je to vse, kar smo dobili kot vhod tukaj, 182 00:08:34,659 --> 00:08:36,830 kaj lahko naredimo s to informacijo? 183 00:08:36,830 --> 00:08:40,040 No, morda mislite iz nič, kot samo odsotnost električne energije. 184 00:08:40,040 --> 00:08:42,540 Nič ni flowinw, nič ni premika, se nič ne dogaja. 185 00:08:42,540 --> 00:08:44,690 To je samo privzeta state-- nič. 186 00:08:44,690 --> 00:08:48,200 Toda, če je elektrika teče, zakaj ne bomo samo arbitrarno, ampak po vsem svetu 187 00:08:48,200 --> 00:08:50,250 dosledno zahtevajo, da je eden. 188 00:08:50,250 --> 00:08:54,760 >> Torej, preprosto tako, da nima moči, imamo nično, ja moč, 189 00:08:54,760 --> 00:08:57,520 imamo one-- brez moči, ja moč. 190 00:08:57,520 --> 00:09:01,520 In na ta način s pomočjo nekaj več fizični ali elektronski 191 00:09:01,520 --> 00:09:05,340 smo začeli izvajati ta pojem nekaj ali pa eno ali nič. 192 00:09:05,340 --> 00:09:07,230 Dejansko bi lahko samo to tukaj. 193 00:09:07,230 --> 00:09:10,590 Torej, tukaj imam ne tri, ampak Osem žarnic, od katerih je vsaka 194 00:09:10,590 --> 00:09:11,810 ima lasten stikalo. 195 00:09:11,810 --> 00:09:15,760 >> In zato, če sem hotel, da predstavlja številka sedem tod 196 00:09:15,760 --> 00:09:18,510 Sem lahko vklopite teh treh žarnic. 197 00:09:18,510 --> 00:09:21,470 In res, znotraj moj računalnik je na milijone, 198 00:09:21,470 --> 00:09:25,650 milijard stvari, ki so prav manjša od tiste, ki se imenuje tranzistorji, 199 00:09:25,650 --> 00:09:27,330 stikala, ki ste ga pravkar vklop in izklop. 200 00:09:27,330 --> 00:09:30,420 Torej, to so big-- relativno big-- stikala znotraj mojega laptop-- 201 00:09:30,420 --> 00:09:32,150 veliko, veliko, veliko, veliko več stikal. 202 00:09:32,150 --> 00:09:35,160 Toda vsi ti je točno that-- obrniti kaj na zavijemo nekaj off. 203 00:09:35,160 --> 00:09:38,076 In kot taka lahko računalnik predstavljata s temi milijonov, milijard 204 00:09:38,076 --> 00:09:40,480 tranzistorjev, serij in veliko ničel in enic. 205 00:09:40,480 --> 00:09:43,160 In tam je druga strojna oprema še vedno, da je vam omogoča shranjevanje informacij dolgoročno, 206 00:09:43,160 --> 00:09:45,243 tako, da ko si potegnite vtič, ga ne izgubijo. 207 00:09:45,243 --> 00:09:46,900 Ampak to je zgodba za drug dan. 208 00:09:46,900 --> 00:09:51,170 >> Torej, kaj lahko naredimo s temi bitov? 209 00:09:51,170 --> 00:09:54,309 Mogoče smo samo, da se pritisk off me-- 210 00:09:54,309 --> 00:09:56,600 morda kdo želel priti tu in darovati demo? 211 00:09:56,600 --> 00:09:57,516 prvič sem videl to roko. 212 00:09:57,516 --> 00:09:58,709 Kako ti je ime? 213 00:09:58,709 --> 00:09:59,250 MADAY: MADAY. 214 00:09:59,250 --> 00:10:00,542 DAVID Malan: MADAY, pridi gor. 215 00:10:00,542 --> 00:10:01,250 Lepo te je bilo srečati. 216 00:10:01,250 --> 00:10:02,390 MADAY: Me veseli. 217 00:10:02,390 --> 00:10:02,930 >> DAVID Malan: Pridite na ta način. 218 00:10:02,930 --> 00:10:04,182 Ne bom moral ustnice navzgor. 219 00:10:04,182 --> 00:10:04,682 V redu. 220 00:10:04,682 --> 00:10:11,090 Torej, tukaj imamo, notice-- eno, dvo bomo uredili, da out-- en, dva, štiri, 221 00:10:11,090 --> 00:10:13,350 osem, 16, 32, 64, 128. 222 00:10:13,350 --> 00:10:14,220 To je namerno. 223 00:10:14,220 --> 00:10:17,370 Obstaja osem bitov here-- binarni digits-- ničle in narave. 224 00:10:17,370 --> 00:10:21,460 In malo je uporaben enota measure-- ni koristno merska enota 225 00:10:21,460 --> 00:10:21,999 na sebi. 226 00:10:21,999 --> 00:10:24,290 Ponavadi si želijo vsaj osem od teh stvari, alias 227 00:10:24,290 --> 00:10:24,790 bajt. 228 00:10:24,790 --> 00:10:26,230 Torej imamo bajt bitov tukaj. 229 00:10:26,230 --> 00:10:31,130 >> Torej, če bi želeli, da vas izziv s, na primer, razloženi v binarno, 230 00:10:31,130 --> 00:10:33,230 ta vrednost here-- 42. 231 00:10:33,230 --> 00:10:35,140 Želite, da stab na to? 232 00:10:35,140 --> 00:10:36,034 >> MADAY: [neslišno]. 233 00:10:36,034 --> 00:10:38,700 DAVID Malan: Ja, samo potisnite malo bele stikala na sprednji strani. 234 00:10:38,700 --> 00:10:41,290 In želite urok od 42, in za zagrabi 235 00:10:41,290 --> 00:10:44,061 je to CS50 stres žoga, če dobiš to. 236 00:10:44,061 --> 00:10:44,560 V redu. 237 00:10:44,560 --> 00:10:46,420 Torej imate 32. 238 00:10:46,420 --> 00:10:48,430 Bomo potrebovali 42. 239 00:10:48,430 --> 00:10:51,410 Torej, to je osem, tako da je 40. 240 00:10:51,410 --> 00:10:54,160 In excellent-- zelo lepo naredil. 241 00:10:54,160 --> 00:10:55,186 Hvala. 242 00:10:55,186 --> 00:10:58,790 >> [Aplavz] 243 00:10:58,790 --> 00:10:59,290 V redu. 244 00:10:59,290 --> 00:11:00,623 Torej imamo še en stres žogo. 245 00:11:00,623 --> 00:11:03,595 Naredimo to še enkrat, če bi lahko. 246 00:11:03,595 --> 00:11:05,368 Ena druga prostovoljec? 247 00:11:05,368 --> 00:11:07,970 Prosti stres žogo, brez stresa žogo. 248 00:11:07,970 --> 00:11:08,470 V REDU. 249 00:11:08,470 --> 00:11:11,640 Tukaj v sredini, hočeš priti dol? 250 00:11:11,640 --> 00:11:14,100 V redu. 251 00:11:14,100 --> 00:11:15,552 Vem. 252 00:11:15,552 --> 00:11:16,360 No pa gremo. 253 00:11:16,360 --> 00:11:20,818 >> Torej številke here-- pridi dol. 254 00:11:20,818 --> 00:11:21,567 Kako ti je ime? 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 V REDU. 258 00:11:23,320 --> 00:11:24,810 Pridi gor, Davey. 259 00:11:24,810 --> 00:11:25,890 Lepo te je bilo srečati. 260 00:11:25,890 --> 00:11:28,639 In kaj bomo, da ste spell-- če bi tam ostajal 261 00:11:28,639 --> 00:11:32,810 za samo eno moment-- je številka 50. 262 00:11:32,810 --> 00:11:36,293 Vendar, ampak toda toda vendar so ti Šola magneti za razlog. 263 00:11:36,293 --> 00:11:39,370 264 00:11:39,370 --> 00:11:43,327 Pravkar dobil malo težje, v redu? 265 00:11:43,327 --> 00:11:44,160 Še vedno osem. 266 00:11:44,160 --> 00:11:46,820 267 00:11:46,820 --> 00:11:47,320 V redu. 268 00:11:47,320 --> 00:11:48,486 Torej, kaj imamo tam? 269 00:11:48,486 --> 00:11:51,356 Imamo 32. 270 00:11:51,356 --> 00:11:54,344 Lepo. 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 In čudovito. 273 00:12:00,390 --> 00:12:02,831 Čestitke Davey, kot tudi. 274 00:12:02,831 --> 00:12:05,720 >> [Aplavz] 275 00:12:05,720 --> 00:12:06,516 >> V redu. 276 00:12:06,516 --> 00:12:09,390 Tako smo lahko to ves dan, in da ne bi dobili vse, da je veliko bolj 277 00:12:09,390 --> 00:12:10,800 zanimivo in bolj zahtevna. 278 00:12:10,800 --> 00:12:13,250 Ampak to je res Point-- je, kako relativno enostavna 279 00:12:13,250 --> 00:12:16,930 je ob koncu dneva, kar je računalnik ne za shranjevanje podatkov, 280 00:12:16,930 --> 00:12:21,740 za shranjevanje vložkov in na koncu shranjevanje ali predstavljajo tiste izhode. 281 00:12:21,740 --> 00:12:23,750 Toda same številke niso vse to zanimivo. 282 00:12:23,750 --> 00:12:26,069 >> Torej ljudi, pred nekaj leti, odločila, veš kaj? 283 00:12:26,069 --> 00:12:27,860 Bilo bi lepo, če računalniki niso samo 284 00:12:27,860 --> 00:12:31,030 računala za aritmetično operacije, ampak dejansko lahko 285 00:12:31,030 --> 00:12:35,209 stvari, kot so obdelava besedila, ali email, ali bolj moderno inkarnacije 286 00:12:35,209 --> 00:12:36,500 tovrstnih tehnologij. 287 00:12:36,500 --> 00:12:40,680 In tako se je svet odločil, poljubno, ampak splošno, 288 00:12:40,680 --> 00:12:44,380 da, če želite shraniti kapitala črke A v računalniku, veš kaj? 289 00:12:44,380 --> 00:12:47,730 Naj samo se vsi strinjamo, da shranite nekateri vzorec ničel in ones-- 290 00:12:47,730 --> 00:12:52,422 bits--, ki na koncu predstavlja decimalno številko 65. 291 00:12:52,422 --> 00:12:53,630 Bomo le vsi se strinjajo o tem. 292 00:12:53,630 --> 00:12:56,620 >> 66 bi predstavljalo B, 67 bi predstavljalo C, 293 00:12:56,620 --> 00:13:00,210 in tam je grozde drugih vzorcev ničle in tisti, ali osnovne številke, 294 00:13:00,210 --> 00:13:02,224 bi to pomenilo druge črke še. 295 00:13:02,224 --> 00:13:04,390 Torej, če ste nekako duševno absorbirajo to za trenutek, 296 00:13:04,390 --> 00:13:10,900 Namenoma sem dal gor skozi I, pri čemer je 73 H 72 in I. 297 00:13:10,900 --> 00:13:15,830 Če računalnik dobi, v okviru program za urejanje besedil ali e-mail, 298 00:13:15,830 --> 00:13:19,620 razkrila pod pokrovom imeti Ti vzorci bits-- vzorca 299 00:13:19,620 --> 00:13:22,500 bitov, ki predstavljajo 72, nato 73, nato 33-- 300 00:13:22,500 --> 00:13:26,640 Kaj bi to pomenilo v tem programu? 301 00:13:26,640 --> 00:13:28,150 >> Torej hi, in potem je nekaj. 302 00:13:28,150 --> 00:13:31,460 Ne nujno, vem, ampak res 33-- ne na grafikonu earlier-- 303 00:13:31,460 --> 00:13:33,170 je le klicaj. 304 00:13:33,170 --> 00:13:38,870 Tako 72 je H, 73 je I, 33 zgodi biti klicaj vedno. 305 00:13:38,870 --> 00:13:41,719 Ampak to je vse lepo in prav, in v resnici danes, namesto 306 00:13:41,719 --> 00:13:43,760 samo uporabo sedem ali osem bitov, zaradi nečesa 307 00:13:43,760 --> 00:13:46,530 imenuje Unicode v nasprotju na ASCII nazaj v dan, 308 00:13:46,530 --> 00:13:50,010 lahko dejansko predstavljajo še bolj zanimivih znakov kot samo 309 00:13:50,010 --> 00:13:52,980 to izvirno angleško pristranski črke. 310 00:13:52,980 --> 00:13:56,030 Vendar pa lahko predstavljajo tudi celo bolj urejen stvari, kot so barve. 311 00:13:56,030 --> 00:13:59,750 >> Če ste kdaj slišali za kratico RGB, rdeča, zelena, modra, da 312 00:13:59,750 --> 00:14:03,510 samo pomeni, da računalnik običajno uporablja tri sklope bits-- 313 00:14:03,510 --> 00:14:06,760 nekateri število bitov, ki predstavljajo številko za koliko rdeče hočeš, 314 00:14:06,760 --> 00:14:08,940 drugi niz bitov za koliko zelena hočeš, 315 00:14:08,940 --> 00:14:11,430 in še en set številka koliko blue hočeš. 316 00:14:11,430 --> 00:14:14,457 Tako velika številka pomeni veliko rdeče, majhno število pomeni, da ni rdeče. 317 00:14:14,457 --> 00:14:16,290 In tako da so prijazni o srednji vrednosti tukaj. 318 00:14:16,290 --> 00:14:20,180 >> Torej daj mi nekaj rdeče, daj mi nekaj zelena, in mi malo modre. 319 00:14:20,180 --> 00:14:24,260 In če se pomešajo te tri odtenke barve skupaj, v tem primeru, 320 00:14:24,260 --> 00:14:26,850 dobiš to Taman odtenek rumene ali rjave barve. 321 00:14:26,850 --> 00:14:32,330 Ampak to vzorec osmih plus osem plus eight-- tako 24. bits-- 322 00:14:32,330 --> 00:14:36,550 od leve proti desni, je, kako računalnik bi pomenilo, da se posebno barvo. 323 00:14:36,550 --> 00:14:38,090 Zdaj je to le pika na zaslonu. 324 00:14:38,090 --> 00:14:42,230 Če pogledaš res blizu na vašem TV si računalnik, boste videli pik ali pik. 325 00:14:42,230 --> 00:14:45,420 In če imate celotno mrežo pik, vodoravno in navpično, 326 00:14:45,420 --> 00:14:46,630 imate slike. 327 00:14:46,630 --> 00:14:49,029 In potem, če ste vzeli sliko in nato pranje 328 00:14:49,029 --> 00:14:52,070 kažejo si drugo sliko, drugo slika, druga slika, druga slika, 329 00:14:52,070 --> 00:14:54,760 zelo hitro, boste seveda morali filmov. 330 00:14:54,760 --> 00:14:56,109 >> In tako opazili, kjer smo začeli. 331 00:14:56,109 --> 00:14:57,650 Začeli smo s temi ničel in enic. 332 00:14:57,650 --> 00:15:00,570 Delali smo od tam v desetiški številke, kako smo jih zastopajo. 333 00:15:00,570 --> 00:15:02,070 Zdaj imamo črke abecede. 334 00:15:02,070 --> 00:15:05,664 Toda v drugih kontekstih čakati, lahko uporabimo nekaj več bitov in predstavljajo barve. 335 00:15:05,664 --> 00:15:07,830 Takoj, ko imate sposobnost, da zastopajo barve, 336 00:15:07,830 --> 00:15:11,200 imate možnost, da predstavljajo fotografije in animirane gif 337 00:15:11,200 --> 00:15:13,780 in druge podobne znake na zaslonu. 338 00:15:13,780 --> 00:15:17,160 In ko imaš cel kup slike letijo človeka naenkrat, 339 00:15:17,160 --> 00:15:21,480 izgleda, da filmov, in tako boste dobili video posnetke, kot tudi. 340 00:15:21,480 --> 00:15:23,460 >> Torej, z uporabo teh zelo preprostih primitivnih kajne 341 00:15:23,460 --> 00:15:28,070 imajo način predstavljajo končno vse te oblike medijev. 342 00:15:28,070 --> 00:15:30,450 In smo spet odvzete in znova in znova, dokler ne bomo 343 00:15:30,450 --> 00:15:33,467 dobili od najnižje ravni na ta najvišji ravni. 344 00:15:33,467 --> 00:15:35,550 Tako, da nam je to Osnovna ideja abstrakcije. 345 00:15:35,550 --> 00:15:36,990 Ampak smo začeli tukaj. 346 00:15:36,990 --> 00:15:38,790 >> Zdaj tukaj, smo morda predstavljata v računalniku 347 00:15:38,790 --> 00:15:41,920 naši vložki z ničel in enic, naši rezultati v ničel in enic, 348 00:15:41,920 --> 00:15:43,640 ampak, kaj se dogaja v škatli? 349 00:15:43,640 --> 00:15:46,080 To je, če računalnik znanost postane zanimivo. 350 00:15:46,080 --> 00:15:49,770 To je, če ste dejansko prinesete lastne misli, da nosi za reševanje problemov. 351 00:15:49,770 --> 00:15:52,590 Sedaj lahko določajo, za Preostali del semestra, ja. 352 00:15:52,590 --> 00:15:53,870 Vem, kako binarnih del. 353 00:15:53,870 --> 00:15:57,942 Spomnim se, kako ASCII ali Unicode-- preslikava na letters-- dela. 354 00:15:57,942 --> 00:15:59,650 In to zagotovo stoji Razumno, da smo 355 00:15:59,650 --> 00:16:03,470 lahko predstavljajo rdeča in zelena in modre in predstavljajo multimedijske kot dobro. 356 00:16:03,470 --> 00:16:05,390 Toda to je zanimive stvari. 357 00:16:05,390 --> 00:16:09,790 To je tisto, kar nekoga sposoben reševanja problemov. 358 00:16:09,790 --> 00:16:11,980 >> In en tak problem želimo narediti, res, 359 00:16:11,980 --> 00:16:15,345 je ob prisotnosti ali tem algoritmom. 360 00:16:15,345 --> 00:16:16,470 In še enkrat, jaz bi to naredil. 361 00:16:16,470 --> 00:16:19,580 Jaz bi naredil eno, dve, tri, štiri pet, šest, sedem, osem devet. 362 00:16:19,580 --> 00:16:21,520 In lahko sem ga napisal navzdol, da bi spremljali to. 363 00:16:21,520 --> 00:16:23,769 Ampak to je samo, kako bi predstavljajo podatke. 364 00:16:23,769 --> 00:16:27,550 Ali sem lahko naredil to faster-- dva, štiri, šest, osem, deset, 12, 14, 16, 18, 20, 365 00:16:27,550 --> 00:16:30,380 22-- je občutek dvakrat tako hitro, vendar je še vedno 366 00:16:30,380 --> 00:16:32,050 bo trajalo veliko časa. 367 00:16:32,050 --> 00:16:35,990 >> Ampak se je izkazalo, če vzvoda še še resource-- in dejansko računalniki 368 00:16:35,990 --> 00:16:38,940 Te dni imajo več procesorjev ali možgane. 369 00:16:38,940 --> 00:16:41,970 Izkazalo se je, računalnike lahko narediti veliko stvari naenkrat, 370 00:16:41,970 --> 00:16:44,460 in res smo v tej sobi, lahko predstavljajo prav to. 371 00:16:44,460 --> 00:16:47,130 >> Tako da je malo socialno nerodno, če pa bi humor me 372 00:16:47,130 --> 00:16:51,550 za samo proces v treh korakih, naj me vprašajte vsi v mestu je le 373 00:16:51,550 --> 00:16:54,640 da stojijo za trenutek. 374 00:16:54,640 --> 00:16:57,380 Vstani. 375 00:16:57,380 --> 00:17:01,580 Tako da mislim, da si, število one-- tako da vsi v tej sobi, 376 00:17:01,580 --> 00:17:05,010 razen oseb, ki niso oblige, razmišlja številka ena. 377 00:17:05,010 --> 00:17:06,510 Tako, da je vaša številka zdaj. 378 00:17:06,510 --> 00:17:09,399 To je prvi korak, ali kot računalniški znanstvenik ali programer 379 00:17:09,399 --> 00:17:11,827 Običajno bi to storili, bomo da začnemo na nič. 380 00:17:11,827 --> 00:17:14,410 Če Najmanj, kar lahko predstavljajo s temi žarnicami 381 00:17:14,410 --> 00:17:17,410 nič, da jih preprosto odhodna vse off, bom morda tudi samo 382 00:17:17,410 --> 00:17:19,271 začnemo z ničelni je namesto enega. 383 00:17:19,271 --> 00:17:21,020 In tako, da je kaj računalniški znanstveniki storiti. 384 00:17:21,020 --> 00:17:23,750 Torej korak nič, vstane in pomislimo na številka ena. 385 00:17:23,750 --> 00:17:26,339 Naslednji korak je this-- par off z nekom položaj 386 00:17:26,339 --> 00:17:27,660 in dodate številke skupaj. 387 00:17:27,660 --> 00:17:30,660 388 00:17:30,660 --> 00:17:32,850 Čudovito. 389 00:17:32,850 --> 00:17:37,640 >> Tako da v tem trenutku, dobesedno vsi, ki sodelujejo 390 00:17:37,640 --> 00:17:41,930 razmišlja o številu 2, razen za eno nenavadno osebo, če imamo 391 00:17:41,930 --> 00:17:43,450 liho število ljudi v prostoru. 392 00:17:43,450 --> 00:17:50,640 In zdaj tretji korak v to smer se bo se this-- od vas bi moral sesti. 393 00:17:50,640 --> 00:17:54,490 Eden izmed morate usesti, in če ste še vedno stoji, 394 00:17:54,490 --> 00:17:56,590 vrnite na korak enega. 395 00:17:56,590 --> 00:18:44,799 396 00:18:44,799 --> 00:18:45,790 V redu. 397 00:18:45,790 --> 00:19:00,760 398 00:19:00,760 --> 00:19:01,650 V redu. 399 00:19:01,650 --> 00:19:03,880 Torej več ljudi naj bi sedel. 400 00:19:03,880 --> 00:19:08,280 Opazimo, da je ta povzročil loop-- nekakšen cikel. 401 00:19:08,280 --> 00:19:11,983 Nekateri od vas bi moralo biti nerodno zaljubljen, gredo naprej in nazaj med koraku 402 00:19:11,983 --> 00:19:14,180 in dve, ena in dva, ena in dva. 403 00:19:14,180 --> 00:19:21,190 404 00:19:21,190 --> 00:19:21,810 V redu je. 405 00:19:21,810 --> 00:19:22,630 Naš prvi bug. 406 00:19:22,630 --> 00:19:24,740 Bomo ukvarjajo s tem. 407 00:19:24,740 --> 00:19:25,320 V redu. 408 00:19:25,320 --> 00:19:27,370 Naj poskusim, da bi pospešila stvari skupaj. 409 00:19:27,370 --> 00:19:31,454 >> V teoriji, je le ena oseba stoji kot vsi še naprej par off. 410 00:19:31,454 --> 00:19:33,870 Ampak naj pospešijo stvari z ljudmi, še vedno stoji. 411 00:19:33,870 --> 00:19:35,480 Kaj več si mislil? 412 00:19:35,480 --> 00:19:36,070 46. 413 00:19:36,070 --> 00:19:36,570 V REDU. 414 00:19:36,570 --> 00:19:37,820 Pojdi naprej in sedi. 415 00:19:37,820 --> 00:19:39,190 Vi še vedno stoji. 416 00:19:39,190 --> 00:19:42,130 Kdo še stoji? 417 00:19:42,130 --> 00:19:45,240 Kaj več si mislil? 418 00:19:45,240 --> 00:19:46,160 V REDU. 419 00:19:46,160 --> 00:19:47,900 >> Torej se bomo vrnili k tebi. 420 00:19:47,900 --> 00:19:49,630 Zadaj? 421 00:19:49,630 --> 00:19:50,790 Kaj je to? 422 00:19:50,790 --> 00:19:53,100 22. 423 00:19:53,100 --> 00:19:56,540 OK, nekdo drug se top-- ja? 424 00:19:56,540 --> 00:19:57,720 34. 425 00:19:57,720 --> 00:19:58,300 V REDU. 426 00:19:58,300 --> 00:20:02,780 Tukaj na moji right-- tukaj gor? 427 00:20:02,780 --> 00:20:06,820 132, zelo lepo. 428 00:20:06,820 --> 00:20:08,380 22? 429 00:20:08,380 --> 00:20:08,990 >> V REDU. 430 00:20:08,990 --> 00:20:10,031 In kdo je še vedno stoji? 431 00:20:10,031 --> 00:20:11,000 Tukaj? 432 00:20:11,000 --> 00:20:14,520 46, zelo lepo. 433 00:20:14,520 --> 00:20:16,890 72. 434 00:20:16,890 --> 00:20:18,220 Ne morem stojnici veliko dlje. 435 00:20:18,220 --> 00:20:20,520 Ja? 436 00:20:20,520 --> 00:20:22,490 30, lepo. 437 00:20:22,490 --> 00:20:24,120 Tukaj? 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 >> In mislim, da je vsakdo razen vaju, brez pritiska. 441 00:20:30,920 --> 00:20:32,860 Oh počakaj. 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 osem. 445 00:20:38,281 --> 00:20:38,780 V REDU. 446 00:20:38,780 --> 00:20:41,030 Samo osem. 447 00:20:41,030 --> 00:20:42,580 Tu spodaj? 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 To je najslabši izvajanje tega algoritma doslej. 454 00:20:54,690 --> 00:20:55,190 V REDU. 455 00:20:55,190 --> 00:20:59,760 Torej, še kdo? 456 00:20:59,760 --> 00:21:00,421 Še kdo? 457 00:21:00,421 --> 00:21:00,920 V REDU. 458 00:21:00,920 --> 00:21:03,300 Še en. 459 00:21:03,300 --> 00:21:04,400 16? 460 00:21:04,400 --> 00:21:04,900 V REDU. 461 00:21:04,900 --> 00:21:05,510 16. 462 00:21:05,510 --> 00:21:06,010 V redu. 463 00:21:06,010 --> 00:21:09,070 Torej, če nisem zamudil kdo v bleščanje tukaj, ko sem zadeti nastopiti, 464 00:21:09,070 --> 00:21:13,091 bomo videli, z algoritmom je skupno število ljudi v Sanders. 465 00:21:13,091 --> 00:21:16,340 Ker še enkrat, to je kot da bi vsi kot si sedel, opravili svojo številko off 466 00:21:16,340 --> 00:21:19,215 nekomu drugemu, nekomu drugemu, nekomu drugemu, tako da v teoriji, 467 00:21:19,215 --> 00:21:22,304 na koncu le eno nerodno oseba, je treba pustiti stanje. 468 00:21:22,304 --> 00:21:22,970 Ampak to je v redu. 469 00:21:22,970 --> 00:21:24,290 sped smo stvari ročno. 470 00:21:24,290 --> 00:21:27,590 To je še posebej težko videti V tem prostoru. 471 00:21:27,590 --> 00:21:34,200 >> In skupno število ljudi mislimo, da so tukaj je 546. 472 00:21:34,200 --> 00:21:37,330 Skupno število sem roko ga učnih štipendistov, 473 00:21:37,330 --> 00:21:40,660 Kdo je bil stari šola počasen način, je bilo 820. 474 00:21:40,660 --> 00:21:43,660 >> [Smeh] 475 00:21:43,660 --> 00:21:47,170 >> [Aplavz] 476 00:21:47,170 --> 00:21:48,670 >> V redu je. 477 00:21:48,670 --> 00:21:50,740 Torej zagotovo potem pa so te napake. 478 00:21:50,740 --> 00:21:51,460 In to je v redu. 479 00:21:51,460 --> 00:21:53,810 In tako mislim nazaj na to prvič nekaj 480 00:21:53,810 --> 00:21:55,420 ste napisali ne pomeni nujno delati. 481 00:21:55,420 --> 00:21:57,620 To se mi je zgodilo tudi tukaj. 482 00:21:57,620 --> 00:22:00,844 Ampak kaj je zdaj razmisliti, kako bi lahko velja to isto idejo, da nekaj 483 00:22:00,844 --> 00:22:03,760 ste morda videli, kar je to stara šola tehnologija here-- 484 00:22:03,760 --> 00:22:05,130 res velik telefonski imenik. 485 00:22:05,130 --> 00:22:09,380 In domnevam, da je ta imenik ima 1.000 strani in 1.000 imen 486 00:22:09,380 --> 00:22:11,360 in številke abecedi znotraj njega. 487 00:22:11,360 --> 00:22:14,860 >> No, lahko bi nekako velja podobno ideja, da bi to zelo telesno motnjo, 488 00:22:14,860 --> 00:22:16,270 samo mi uporabo. 489 00:22:16,270 --> 00:22:18,810 Sem nekako goljufal z izkoriščanjem vseh vas 490 00:22:18,810 --> 00:22:23,240 z veliko in veliko različnih CPU ali možgani izvršitve nekaj algoritem. 491 00:22:23,240 --> 00:22:25,440 Ampak, če je le malo old me, da lahko še vedno 492 00:22:25,440 --> 00:22:29,630 vzvoda, da je isto bistvo ideje delitve in osvajanja, da je problem 493 00:22:29,630 --> 00:22:32,970 znova in znova, pri čemer polovica od vas, polovica od vas, polovica vas, polovica od vas, 494 00:22:32,970 --> 00:22:35,830 teoretično vodi sedel, dokler smo pustili, teoretično, 495 00:22:35,830 --> 00:22:36,990 s samo eno osebo. 496 00:22:36,990 --> 00:22:39,810 >> Torej, v tej stari šoli technology-- ne bomo 497 00:22:39,810 --> 00:22:43,030 Potrebuješ map-- to stara šola tehnologija, 498 00:22:43,030 --> 00:22:47,300 bomo morda začeli iskati nekoga všeč Mike Smith, eno stran naenkrat. 499 00:22:47,300 --> 00:22:49,410 In vidim, da Mike ni tukaj ni. 500 00:22:49,410 --> 00:22:51,110 Še vedno sem v oddelku A. 501 00:22:51,110 --> 00:22:53,900 Sčasoma, se mi zdi Sam v poglavju B. 502 00:22:53,900 --> 00:22:56,910 In to je algorithm-- korak-po-korak navodili. 503 00:22:56,910 --> 00:22:59,890 Začnite na strani za začetek in eno v času, poglej za Mike Smith. 504 00:22:59,890 --> 00:23:03,410 Je to correct-- to algoritem ali pristop? 505 00:23:03,410 --> 00:23:04,550 >> Ja, to je res. 506 00:23:04,550 --> 00:23:06,840 Če Mike je tukaj, na koncu Bom z njim. 507 00:23:06,840 --> 00:23:08,139 Ampak to ni učinkovito. 508 00:23:08,139 --> 00:23:09,180 To je seveda zelo počasi. 509 00:23:09,180 --> 00:23:11,340 Tako sem lahko vzvod Isti twosies pristop. 510 00:23:11,340 --> 00:23:15,350 Ne morem narediti neke dveh, štiri, šest, osem, 10, 12. 511 00:23:15,350 --> 00:23:16,330 To je dvakrat hitreje. 512 00:23:16,330 --> 00:23:18,290 Jaz bom dobil Mike hitreje, če je tam. 513 00:23:18,290 --> 00:23:20,770 Ali je pravilno? 514 00:23:20,770 --> 00:23:22,320 Da, vendar sem slišal little--, št. 515 00:23:22,320 --> 00:23:24,200 Zdaj sem slišala, št. 516 00:23:24,200 --> 00:23:24,700 Ja. 517 00:23:24,700 --> 00:23:26,190 Tam je napaka potencialno. 518 00:23:26,190 --> 00:23:29,374 Mogoče Mike samo po naključju dobi stisnjena med dvema stranema, 519 00:23:29,374 --> 00:23:31,290 ker letim skozi Ta dva naenkrat. 520 00:23:31,290 --> 00:23:33,580 Tako vsaj moramo nekaj vrsta pogojnega popraviti. 521 00:23:33,580 --> 00:23:35,330 Moram reči, hej, če sem udaril nekoga, čigar 522 00:23:35,330 --> 00:23:39,190 ime se začne s T namesto črke S, Bolje dvojno nazaj vsaj eno stran. 523 00:23:39,190 --> 00:23:40,767 Torej buggy na prvi, ampak je moč fiksirati. 524 00:23:40,767 --> 00:23:43,850 Ampak nihče od nas gre iskati Mike Smith prek 1000 strani telefona 525 00:23:43,850 --> 00:23:45,290 Rezervirajte eno stran naenkrat. 526 00:23:45,290 --> 00:23:48,486 Kaj je normalen človek bo naredil? 527 00:23:48,486 --> 00:23:50,860 Boste šli v S-ih, če bi vedeli, kjer je S-jev. 528 00:23:50,860 --> 00:23:54,230 Morda gre približno na sredini ali rahlo nagnjen proti koncu. 529 00:23:54,230 --> 00:23:56,850 Pogledal sem dol in Sem v oddelku M. 530 00:23:56,850 --> 00:23:58,952 Ampak kaj veš o tem problemu zdaj, 531 00:23:58,952 --> 00:24:02,160 da nismo nujno vedeti, preden z vsemi nami samo štetje sami 532 00:24:02,160 --> 00:24:03,030 ekvivalentno? 533 00:24:03,030 --> 00:24:06,010 No, Mike je jasno bo da je v tej polovici knjige 534 00:24:06,010 --> 00:24:07,920 če je tukaj sploh zato, ker je to urejeno. 535 00:24:07,920 --> 00:24:10,160 >> In tako lahko zelo dramatically-- 536 00:24:10,160 --> 00:24:11,250 >> [Zasopel] 537 00:24:11,250 --> 00:24:12,300 >> Vem. 538 00:24:12,300 --> 00:24:16,940 >> [Aplavz] 539 00:24:16,940 --> 00:24:19,450 >> To je pravzaprav zelo preprost, če vam je navzdol hrbtenice tam. 540 00:24:19,450 --> 00:24:22,070 Vendar pa lahko nato vrgel polovica problem proč. 541 00:24:22,070 --> 00:24:25,950 Zdaj sem zapustil z isto problem-- našli Mike Smith v telefonu book-- 542 00:24:25,950 --> 00:24:29,610 zdaj pa je telefon Knjiga se začne na M in gre do Ž, vendar je pol tako velika. 543 00:24:29,610 --> 00:24:30,890 >> Ampak to je tisto, kar je impresivna. 544 00:24:30,890 --> 00:24:34,170 Tako kot v teoriji, vaju, ko vsi sedel samo polovico v času, 545 00:24:34,170 --> 00:24:37,150 problem imam pol tako velika, pol tako velika, znova in znova. 546 00:24:37,150 --> 00:24:40,260 Tako je postal ta problem Isti problem, ampak pol tako velika. 547 00:24:40,260 --> 00:24:42,670 Zdaj je problem 250 strani. 548 00:24:42,670 --> 00:24:45,340 Takoj, ko sem spoznala, oh, sem v oddelku T nenamerno. 549 00:24:45,340 --> 00:24:46,590 Sem šel predaleč. 550 00:24:46,590 --> 00:24:48,500 Sem lahko vrgel, da je polovica telefonskega imenika stran. 551 00:24:48,500 --> 00:24:50,410 Sedaj sem dol k četrtina problema. 552 00:24:50,410 --> 00:24:53,910 >> In lahko ponavljajo, ponavljajo, ponavljati, dokler v teoriji, ste 553 00:24:53,910 --> 00:24:55,460 ostane samo eno stran. 554 00:24:55,460 --> 00:24:59,010 In če Mike je na tej strani, Zdaj lahko rešili ta problem. 555 00:24:59,010 --> 00:25:00,810 Toda, kako hitro sem jo rešiti? 556 00:25:00,810 --> 00:25:05,420 V prvem primeru mi je všeč Mogoče 1.000 korakov, da bi našli Mike Smith. 557 00:25:05,420 --> 00:25:09,260 To bi lahko sprejela me-- Pobral sem telefonski imenik 558 00:25:09,260 --> 00:25:11,440 in sem začel iskati eno stran naenkrat, 559 00:25:11,440 --> 00:25:13,480 Mike je lahko 1.000 strani kasneje. 560 00:25:13,480 --> 00:25:16,020 >> Drugi pristop morda ima me 500 korakov, 561 00:25:16,020 --> 00:25:17,960 ker letim prek dveh naenkrat. 562 00:25:17,960 --> 00:25:21,082 In tretji pristop, čeprav to je še posebej močna. 563 00:25:21,082 --> 00:25:23,790 Ampak kaj je razmisliti, kaj smo dejansko si s tem tretjim pristopom. 564 00:25:23,790 --> 00:25:27,590 Jaz bom, kaj bom poklical samo ti izjave tukaj, enega po enega. 565 00:25:27,590 --> 00:25:28,560 Pick up telefonski imenik. 566 00:25:28,560 --> 00:25:30,130 Odprli sredi imenika. 567 00:25:30,130 --> 00:25:31,419 Poglej imen. 568 00:25:31,419 --> 00:25:33,960 In potem se stvari malo bolj intelektualno zanimiva, 569 00:25:33,960 --> 00:25:35,170 če je še vedno preprosta. 570 00:25:35,170 --> 00:25:38,350 Če je Smith med imena na tem trenutno stran, 571 00:25:38,350 --> 00:25:40,170 naredite nekaj pogojno. 572 00:25:40,170 --> 00:25:41,840 To je kot odcepu. 573 00:25:41,840 --> 00:25:42,660 Pokličite Mike. 574 00:25:42,660 --> 00:25:44,930 Če je Mike med imeni na tej strani, ki se imenuje Mike. 575 00:25:44,930 --> 00:25:49,720 Ampak samo, da linijo štiri, če linija drevo, če hočete, je res. 576 00:25:49,720 --> 00:25:51,590 Odgovor na to vprašanje je pritrdilen. 577 00:25:51,590 --> 00:25:55,520 >> Sicer če Smith je že v book-- z drugimi besedami, če sem v poglavju M 578 00:25:55,520 --> 00:25:58,540 in iščem nekoga, ki bi levo, nato pa kaj je treba storiti 579 00:25:58,540 --> 00:26:00,300 je nekaj zelo podobnega. 580 00:26:00,300 --> 00:26:03,440 Potem bi moral odpreti na sredino na levi polovici knjige. 581 00:26:03,440 --> 00:26:07,930 Torej gre v levo, nato pa nazaj na drugi korak. 582 00:26:07,930 --> 00:26:09,290 Poglej imeni tam. 583 00:26:09,290 --> 00:26:12,779 >> Torej, z drugimi besedami, to isto stvar, vendar pa na problem, ki je bil prepolovila. 584 00:26:12,779 --> 00:26:13,570 Veš kaj? 585 00:26:13,570 --> 00:26:16,470 Če Smith je kasneje v knjigi temelji na stran gledam, 586 00:26:16,470 --> 00:26:18,790 odprt Na sredini Desna polovica knjige 587 00:26:18,790 --> 00:26:22,050 nato pa pojdite nazaj na drugi korak, else-- 588 00:26:22,050 --> 00:26:24,000 tam je četrta možnost tukaj. 589 00:26:24,000 --> 00:26:28,830 Mike je tukaj ali v levo ali desno ali pa ne. 590 00:26:28,830 --> 00:26:30,570 In tukaj smo bolje, da je to. 591 00:26:30,570 --> 00:26:33,360 In v resnici, če ste kdaj imeli računalnik samo crash na vas, 592 00:26:33,360 --> 00:26:36,822 da je včasih, vendar ne vedno, Rezultat le človeškega programer ne 593 00:26:36,822 --> 00:26:39,280 zavedal, oh ustrelil, tam je dejansko je to četrti scenarij. 594 00:26:39,280 --> 00:26:41,650 In če ne napisati kodo ravnati, da scenarij, 595 00:26:41,650 --> 00:26:43,220 Včasih ne veš kaj bi lahko računalnik storiti. 596 00:26:43,220 --> 00:26:44,770 In res program lahko sesuje. 597 00:26:44,770 --> 00:26:47,550 >> Toda v tem primeru, sem mislil o tem, in sem rekel, še nehal, 598 00:26:47,550 --> 00:26:49,850 ker je to četrta logično možen scenarij. 599 00:26:49,850 --> 00:26:51,950 Zdaj pa dodajte nekateri besednjak tako mi 600 00:26:51,950 --> 00:26:55,320 lahko začne Razbacivati ​​okoli pogoji, ki so sicer precej intuitivno. 601 00:26:55,320 --> 00:26:57,870 Vse stvari, ki sem jih pravkar označen z rumeno barvo tukaj, 602 00:26:57,870 --> 00:27:00,140 Jaz sem le, da bo na funkcije ali postopkov. 603 00:27:00,140 --> 00:27:01,590 Oni so samo vrste ukrepov. 604 00:27:01,590 --> 00:27:04,900 Torej pick up, ki je odprt, poglej na, klic, odprta, odprto, 605 00:27:04,900 --> 00:27:09,170 quit-- to so le ukrepi, ali bomo jim pravimo bolj formalno, funkcij. 606 00:27:09,170 --> 00:27:11,410 >> Medtem, zdaj v rumeni barvi, Sem izpostavil stvari 607 00:27:11,410 --> 00:27:14,084 that-- kaj je samo začetek kliče jim razmere ali veje. 608 00:27:14,084 --> 00:27:16,750 Gre za odločitev točke, kjer lahko greš na ta način, na ta način, 609 00:27:16,750 --> 00:27:18,100 ali kakšno drugo smer vedno. 610 00:27:18,100 --> 00:27:19,430 Tisti bo pogoji. 611 00:27:19,430 --> 00:27:20,930 In zdaj ta je malo Ljubitelj. 612 00:27:20,930 --> 00:27:24,600 Recimo ta vprašanja Logični izrazi, 613 00:27:24,600 --> 00:27:26,530 za nekoga s priimkom bool. 614 00:27:26,530 --> 00:27:28,340 >> In logično izraz je le nekaj 615 00:27:28,340 --> 00:27:30,290 To je bodisi resnična ali neresnična, da ali ne. 616 00:27:30,290 --> 00:27:35,870 Torej, to je vprašanje, katerega odgovor vas skrbi, tako da v stanju 617 00:27:35,870 --> 00:27:39,210 narediti decision-- dobil nazaj odgovor, in potem gredo v levo ali desno, ali kaj 618 00:27:39,210 --> 00:27:40,450 drugega v celoti. 619 00:27:40,450 --> 00:27:42,860 >> In potem na koncu, ti linije here-- nazaj 620 00:27:42,860 --> 00:27:44,737 na drugi korak, pojdite nazaj na korak dvo smo lahko 621 00:27:44,737 --> 00:27:46,320 izvajanja te ideje na različne načine. 622 00:27:46,320 --> 00:27:49,028 In potem tisti, ki ste z programiranje izkušnje bi lahko naredili 623 00:27:49,028 --> 00:27:50,670 ali lahko predstavljate tem drugače. 624 00:27:50,670 --> 00:27:53,170 Ampak za današnje namene, to je Samo ideja, da je pomembno. 625 00:27:53,170 --> 00:27:55,400 To je tisto, induciranje bomo na splošno imenujemo 626 00:27:55,400 --> 00:28:00,110 loop-- nekakšen cikel, saj to je da me nekaj storiti še enkrat. 627 00:28:00,110 --> 00:28:03,340 >> Zdaj, kaj je samo upoštevati kako dober je ta algoritem. 628 00:28:03,340 --> 00:28:03,899 To je pravilno. 629 00:28:03,899 --> 00:28:06,940 Če Mike je v knjigi, to je eden od tiste štiri scenarios-- znova in znova 630 00:28:06,940 --> 00:28:08,023 in še enkrat, ga bomo našli. 631 00:28:08,023 --> 00:28:08,890 Toda, kako dobro je to? 632 00:28:08,890 --> 00:28:10,150 No, nimamo preveč formalno tukaj. 633 00:28:10,150 --> 00:28:12,066 Ampak kaj je samo parcelo Nekaj, x in y, da bi dobili 634 00:28:12,066 --> 00:28:14,470 občutek oblike tega problema. 635 00:28:14,470 --> 00:28:17,160 >> Na osi x je tu velikost moj problem. 636 00:28:17,160 --> 00:28:20,256 In Y-os tukaj bo čas za reševanje. 637 00:28:20,256 --> 00:28:21,630 Mogoče je to število strani. 638 00:28:21,630 --> 00:28:24,400 Mogoče je to sekund ali Stran turns-- karkoli. 639 00:28:24,400 --> 00:28:27,290 Vendar pa želite, da računajo, je kaj bo ta slika predstavlja. 640 00:28:27,290 --> 00:28:30,630 In to prvi algoritem, jaz grem opisati kot samo ravne črte. 641 00:28:30,630 --> 00:28:33,120 Če je n strani v telefonski imenik, potem 642 00:28:33,120 --> 00:28:36,010 mi lahko traja toliko kot n korakov, da bi našli Mike. 643 00:28:36,010 --> 00:28:38,930 Če Verizon ali telefonsko podjetje dodaja še eno stran v naslednjem letu, 644 00:28:38,930 --> 00:28:42,170 morda mi bo še en step-- eno enoto časa, da bi našli Mike. 645 00:28:42,170 --> 00:28:44,230 Torej je le ta, da eno razmerje. 646 00:28:44,230 --> 00:28:45,970 To je ravna črta pobočju. 647 00:28:45,970 --> 00:28:49,110 >> Medtem, da drugi algorithm-- če sem 648 00:28:49,110 --> 00:28:51,570 bo dva na time-- dveh, štiri, šest, osem ali double-- 649 00:28:51,570 --> 00:28:54,550 gredo po straneh dvakrat naenkrat, dva naenkrat, 650 00:28:54,550 --> 00:28:55,710 je še vedno ravna črta. 651 00:28:55,710 --> 00:28:58,720 Tam je zdaj ena proti dve Razmerje, ampak samo malo nižje. 652 00:28:58,720 --> 00:29:02,240 Torej, če je to veliko strani na grafikonu tukaj v rumeno, 653 00:29:02,240 --> 00:29:04,800 da mi lahko traja to veliko korakov ali sekund, 654 00:29:04,800 --> 00:29:07,980 sicer pa se dogaja, da me dvakrat toliko na rdečo črto. 655 00:29:07,980 --> 00:29:10,190 >> Toda zelena črta je prava hrana za s seboj. 656 00:29:10,190 --> 00:29:12,290 To je tisto, kar smo na splošno pokličite logorithm-- dnevnik 657 00:29:12,290 --> 00:29:13,840 n, kjer je n število strani. 658 00:29:13,840 --> 00:29:16,450 Ampak to je oblika, ki pomembno danes, ker nimamo 659 00:29:16,450 --> 00:29:17,950 celo razmišljati o ubral točk. 660 00:29:17,950 --> 00:29:19,830 >> Pomisli skrajnem scenariju. 661 00:29:19,830 --> 00:29:23,070 Recimo Verizon jutri podvoji število strani v tem 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 V prvi algoritem, sem lahko odpadke dodatno 1.000 664 00:29:28,440 --> 00:29:32,080 koraki išče Mikea, samo zato, ker Verizon podvojili velikost knjige. 665 00:29:32,080 --> 00:29:34,740 Drugi algorithm-- Morda da mi dodatnih 500 korakov. 666 00:29:34,740 --> 00:29:38,370 1000 več strani, grem dva na time-- 500 več korakov, da bi našli Mike. 667 00:29:38,370 --> 00:29:41,020 >> Ampak, da je tretji algoritem je nekako čarobno. 668 00:29:41,020 --> 00:29:44,270 Verizon podvoji število strani, od 1.000 do 2.000, 669 00:29:44,270 --> 00:29:47,730 ampak koliko korakov naredi trajalo me iskati Mike? 670 00:29:47,730 --> 00:29:51,220 To je samo ena, ker sem lahko samo raztrga telefonski imenik še enkrat 671 00:29:51,220 --> 00:29:55,280 s težavo 2.000 stran 1.000 strani problem, in voila. 672 00:29:55,280 --> 00:29:57,030 Sem sprejela veliko ugriz iz nje. 673 00:29:57,030 --> 00:29:59,405 >> In če greš res ekstremni, Predvidevam, da je telefonski imenik 674 00:29:59,405 --> 00:30:03,600 Podjetje je imelo nekaj norega, kot 4 milijard stran imenika. 675 00:30:03,600 --> 00:30:07,020 No, koliko korakov bo trajalo najti Mike Smith v 4 milijarde 676 00:30:07,020 --> 00:30:09,990 stran imenika? 677 00:30:09,990 --> 00:30:16,450 To je velika številka, vendar le 4 milijarde 2000000000-1000000000 500 milijonov, 678 00:30:16,450 --> 00:30:18,720 250 million-- še Sliši se kot velike številke, 679 00:30:18,720 --> 00:30:20,980 vendar sem zelo hitro pridobivanje manjših vrednosti. 680 00:30:20,980 --> 00:30:24,790 >> In v resnici, če naredim math V redu, lahko razdeli le 4 milijarde 681 00:30:24,790 --> 00:30:28,750 s približno 32-krat, preden Sem dol samo eno. 682 00:30:28,750 --> 00:30:31,640 Torej, če je imenik bilo 4 milijard strani dolg, ni nič takega. 683 00:30:31,640 --> 00:30:35,270 V nekaj sekundah, morda 32 sekund, lahko bi ga razdelili na pol 684 00:30:35,270 --> 00:30:39,560 in na koncu ugotovili, Mike ali sklepati, da ga ni tam. 685 00:30:39,560 --> 00:30:42,219 In to je bistvo algorithm-- dober algoritem. 686 00:30:42,219 --> 00:30:44,260 In to je eden izmed Cilji razreda, kot je ta, 687 00:30:44,260 --> 00:30:47,350 se poskuša ugotoviti, kako naj rešiti problem, ne samo pravilno, 688 00:30:47,350 --> 00:30:52,360 kot sem vedno vedel, kako to storiti eno Stran na time-- ampak pravilno in dobro. 689 00:30:52,360 --> 00:30:55,034 Kako oblikovati dober rešitve za probleme? 690 00:30:55,034 --> 00:30:57,200 Torej, vzemimo trenutek tukaj in vam dajejo občutek zdaj 691 00:30:57,200 --> 00:31:00,260 od CS50 tečaj itself-- uvesti uslužbenci Še nekaj Seveda je. 692 00:31:00,260 --> 00:31:02,010 Tik pred 2:00, bomo premor 693 00:31:02,010 --> 00:31:03,520 tako da tiste, ki ste kdo nakupovanje lahko 694 00:31:03,520 --> 00:31:05,130 raca, in traja poglej kak drug razred 695 00:31:05,130 --> 00:31:06,580 in spremljati ostanek tega na spletu. 696 00:31:06,580 --> 00:31:09,250 Ampak za zdaj, naj vam predstavim CS50, razred sam, 697 00:31:09,250 --> 00:31:11,330 in še posebej, kaj je novega. 698 00:31:11,330 --> 00:31:13,960 >> Torej mimo pomlad, smo preživel zelo malo time-- 699 00:31:13,960 --> 00:31:17,911 Osebje Tečaj in jaz-- razmišljanje o tem, kaj je to želimo CS50 biti, 700 00:31:17,911 --> 00:31:19,910 in vrača v prvo Načela, tako rekoč, 701 00:31:19,910 --> 00:31:22,760 razmisliti, kaj je to želimo To seveda bi izgledal in se 702 00:31:22,760 --> 00:31:23,740 kot za svoje študente. 703 00:31:23,740 --> 00:31:26,480 In zato si lahko ogledate na problem nastavljen nič, kot tudi, vabilo 704 00:31:26,480 --> 00:31:28,780 da si oglejte, da URL, ki povzema 705 00:31:28,780 --> 00:31:33,270 nekateri motivi v ozadju naslednje značilnosti jeseni 2016. 706 00:31:33,270 --> 00:31:35,570 >> Tako kot so se lahko naberejo od TL: DR letaka, 707 00:31:35,570 --> 00:31:39,060 učni načrt je danes, kot tudi iz katalog Seveda, letos v CS50, 708 00:31:39,060 --> 00:31:42,540 si bo udeležilo le today-- tako da delo dobro done-- 709 00:31:42,540 --> 00:31:45,960 in zadnje predavanje na 21. november. 710 00:31:45,960 --> 00:31:49,150 In ste dobrodošli, vendar ni pričakovati, da udeležijo teh predavanj v sredini, 711 00:31:49,150 --> 00:31:51,180 ker kaj delamo letos, je streljanje 712 00:31:51,180 --> 00:31:52,661 v realnem času materialnega predmeta je. 713 00:31:52,661 --> 00:31:54,660 Tako da bo vse, kar je ostal Sedanji in vključiti 714 00:31:54,660 --> 00:31:57,410 kot najboljše, kar can-- aktualnih dogodkov in pogovorov, ki ljudje morda 715 00:31:57,410 --> 00:32:00,400 se ob v industriji v svetu, vendar tako, da material 716 00:32:00,400 --> 00:32:03,892 razpolago kot rezultat, celo earlier-- skupaj s polnimi besedila transkriptov 717 00:32:03,892 --> 00:32:05,850 in možnost iskanja in povezave do drugih virov. 718 00:32:05,850 --> 00:32:07,930 >> In res, ko smo bili preživeti nekaj časa 719 00:32:07,930 --> 00:32:10,830 in mi sedaj verjeti, da lahko ustvarimo, digitalno, 720 00:32:10,830 --> 00:32:15,170 bolj poglobljeno, bolj prepričljivi izkušnja, v nasprotju 721 00:32:15,170 --> 00:32:19,110 za zbiranje tukaj je približno 23-krat osebno, sluha nekdo všeč me 722 00:32:19,110 --> 00:32:22,925 preprosto govorijo o računalništvu, v nasprotju s sodelovanjem več aktivno. 723 00:32:22,925 --> 00:32:25,800 Tako boste videli v učnem načrtu predmeta je skica semestra tukaj, 724 00:32:25,800 --> 00:32:27,840 skupaj s ko predavanja bo posneti, na katerega ste 725 00:32:27,840 --> 00:32:29,710 dobrodošli, vendar ni pričakovati, in ko bo 726 00:32:29,710 --> 00:32:31,640 se sprosti na spletni strani seveda je. 727 00:32:31,640 --> 00:32:34,300 >> In kaj bomo storili tukaj na Sredo se začne prihodnji teden, 728 00:32:34,300 --> 00:32:37,362 je veliko bolj intimno, z le tisti ljudje, ki želijo sodelovati, 729 00:32:37,362 --> 00:32:39,820 je tako imenovani sprehod skozi, kjer sem in vodje tečaja je 730 00:32:39,820 --> 00:32:41,730 bo dejansko narediti stvari malo bolj intimno 731 00:32:41,730 --> 00:32:44,313 tukaj v orkestru del, še vedno nekaj tehnologije 732 00:32:44,313 --> 00:32:46,365 in sprehod skozi tekočega tedna problem set, 733 00:32:46,365 --> 00:32:50,020 in vam ponujajo particularly-- če med tiste manj comfortable-- toliko bolj 734 00:32:50,020 --> 00:32:52,790 smernice, ki bi jih želeli ali potrebovali za izziv na teden. 735 00:32:52,790 --> 00:32:55,820 Podobno velja za tiste, ki ne morejo udeležijo tisti, osebno, ni nič takega. 736 00:32:55,820 --> 00:32:58,486 Tam se bo podobno vodi eden od višjih uslužbencev tečaja je, 737 00:32:58,486 --> 00:33:02,650 Zamalya, enako priložnost vgrajeni V problemu se nastavi. 738 00:33:02,650 --> 00:33:04,960 >> Problem določa letos bo izšla ob petkih 739 00:33:04,960 --> 00:33:08,080 in nič več ne sedem dni kasneje ampak 10 dni later-- namerno 740 00:33:08,080 --> 00:33:10,910 prekriva z vsakim problemom nastavljen, da bi bolje prilagodi, 741 00:33:10,910 --> 00:33:13,050 upamo, plime in oseke V seznamih študentov, 742 00:33:13,050 --> 00:33:16,550 še posebej, če izpitih ali atletiko ali akademiki ali extracurriculars 743 00:33:16,550 --> 00:33:18,465 ponavadi pridejo in gredo še posebej sredi semester. 744 00:33:18,465 --> 00:33:21,340 Da bi vam malo več diskrecijsko pravico glede tega, ali ti spredaj 745 00:33:21,340 --> 00:33:25,690 naložiti teden z CS50 ali nazaj obremenitvi je na namesto naslednji vikend. 746 00:33:25,690 --> 00:33:28,817 Tako da si do učnega načrta predmeta je tukaj za njihovo urnik. 747 00:33:28,817 --> 00:33:30,900 In boste opazili tudi med letos spremembe, 748 00:33:30,900 --> 00:33:34,082 za tiste bolj seznanjeni z programiranje v preteklosti, 749 00:33:34,082 --> 00:33:36,290 bomo začeli semester kot bomo danes v Scratch, 750 00:33:36,290 --> 00:33:39,730 osredotočajo predvsem na jeziku imenovana C, nato pa prehod ne 751 00:33:39,730 --> 00:33:43,430 v PHP, ampak jezik, ki se imenuje Python proti koncu semestra 752 00:33:43,430 --> 00:33:46,565 V okviru spletnega programiranja, skupaj z SQL in JavaScript, 753 00:33:46,565 --> 00:33:48,930 HTML, CSS in še več. 754 00:33:48,930 --> 00:33:51,790 >> In v odgovor na pogosta vprašanja, to je res tako 755 00:33:51,790 --> 00:33:55,520 da se CS ni tako grozno, kot sem nekoč je zdelo, vendar je toliko dela 756 00:33:55,520 --> 00:33:57,280 kot sem slišal, je to lahko. 757 00:33:57,280 --> 00:34:03,210 Toda to je recimo, da tukaj je nekaj Statistika iz jeseni 2015 študentskega telesa, 758 00:34:03,210 --> 00:34:06,460 pri čemer vodoravne modre črte predstavlja povprečno število ur 759 00:34:06,460 --> 00:34:06,960 poročali. 760 00:34:06,960 --> 00:34:10,570 In boste videli povprečno šest do 10 12-- morda 16 761 00:34:10,570 --> 00:34:14,580 ali tako in tako dalje, vendar visoka varianca biti jasno. 762 00:34:14,580 --> 00:34:18,570 In tako spoznali, da ni le študenti bolj udobno in manj 763 00:34:18,570 --> 00:34:22,150 udobno v teku, vendar pa ustrezna podpora 764 00:34:22,150 --> 00:34:25,699 struktura, da bi dobili te študente po uspešno semestra. 765 00:34:25,699 --> 00:34:29,409 >> Dejansko je v odgovor na FAQ, naj ste vzeli CS50 kot prvo leto? 766 00:34:29,409 --> 00:34:30,139 Absolutno. 767 00:34:30,139 --> 00:34:32,690 In v resnici, ne obžalujem da ni našel svojo pot 768 00:34:32,690 --> 00:34:35,170 ali našel novo polje da je prvo leto kot dobro. 769 00:34:35,170 --> 00:34:39,149 In morate vzeti CS50 z drugi predmeti, zagotovo so well-- 770 00:34:39,149 --> 00:34:41,940 in splošni nasvet, morda Študenti, ki CS50 je verjetno 771 00:34:41,940 --> 00:34:44,929 ne vrste razreda ali intro razred da bi morali vzeti s tremi 772 00:34:44,929 --> 00:34:47,199 drugo ali štirje-p nastavite razredi. 773 00:34:47,199 --> 00:34:50,583 Ampak, če ste ob dveh drugih p-set razredi, nekaj drugega, in CS50, 774 00:34:50,583 --> 00:34:51,499 popolnoma obvladljiva. 775 00:34:51,499 --> 00:34:54,900 Sem imel veliko študentov v preteklosti storili precej uspešno. 776 00:34:54,900 --> 00:34:57,490 >> In da boste dobili v smeri, ki dokončati linijo uspešno, 777 00:34:57,490 --> 00:35:00,260 pa seveda še sections-- različne poti za študente 778 00:35:00,260 --> 00:35:03,100 manj udobno, bolj udobno, in nekje vmes, 779 00:35:03,100 --> 00:35:04,850 pri čemer se v tečaj je Prvi problem set, 780 00:35:04,850 --> 00:35:06,360 vas bo prosil, da se opisati. 781 00:35:06,360 --> 00:35:09,151 In če ste med tistimi, ki manj udoben, to je vrsta stvari 782 00:35:09,151 --> 00:35:10,420 da si ne vem. 783 00:35:10,420 --> 00:35:13,010 In res, da je bil narašča demografskih v CS50 784 00:35:13,010 --> 00:35:14,090 za kar nekaj let. 785 00:35:14,090 --> 00:35:17,680 >> Od lanske jeseni za primer, 58% razreda 786 00:35:17,680 --> 00:35:20,560 sami opisani kot med tistimi manj udoben, 787 00:35:20,560 --> 00:35:23,210 z 9%, med tistimi več udobno in nato 788 00:35:23,210 --> 00:35:25,900 Drugi učenci tam v red, ki se opredeljujejo 789 00:35:25,900 --> 00:35:27,890 kot je nekje vmes. 790 00:35:27,890 --> 00:35:31,980 In boste videli tukaj teme na splošno in razpored odsekov, od katerih so vsi 791 00:35:31,980 --> 00:35:34,820 so na voljo osebno, v realnem času, pri čemer je tečaj je 792 00:35:34,820 --> 00:35:38,320 neverjetno osebje učnih štipendistov in seveda pomočniki, nekateri od njih 793 00:35:38,320 --> 00:35:39,660 boste spoznali čez nekaj trenutkov. 794 00:35:39,660 --> 00:35:42,993 >> Oddelki sami, pa boste videli, bo bo ob ponedeljkih in torkih in sredah, 795 00:35:42,993 --> 00:35:45,910 tako, da vam omogočajo, da se potopite In po ukvarjajo, če ste tako 796 00:35:45,910 --> 00:35:48,110 izbrati, v tečaj je predavanje že ta teden. 797 00:35:48,110 --> 00:35:51,420 In nato delovni čas, ki je Vsekakor, z vsakim letom, 798 00:35:51,420 --> 00:35:54,110 so bili ne manj izziv za tečaj. 799 00:35:54,110 --> 00:35:57,040 In v tem letu, smo načrtovanje ni samo, da imajo pisarniški hours-- eno 800 00:35:57,040 --> 00:36:00,300 na eni priložnosti za pomoč za študenti sredah četrtkih 801 00:36:00,300 --> 00:36:03,790 in nedeljah, zadnja od teh da je v popoldanskih urah že pri načrtovanju 802 00:36:03,790 --> 00:36:06,910 zmanjšati nekatere od stresa, ki vedno nastane s pozno ponoči 803 00:36:06,910 --> 00:36:10,180 p-settting z rokom looming-- vendar uradnih ur bo na voljo tudi 804 00:36:10,180 --> 00:36:14,920 ob ponedeljkih in torkih in Sredah in petkih in sobotah, 805 00:36:14,920 --> 00:36:17,080 zahvaljujoč našim prijateljem na HSA. 806 00:36:17,080 --> 00:36:20,330 >> CS50 ima zdaj svoj prostor za študente in osebje CS50, 807 00:36:20,330 --> 00:36:23,070 na vrhu 67 Mount Auburn ulici, tam v Harvard Square. 808 00:36:23,070 --> 00:36:26,340 Vizija, ki je, da CS50 je TFS in CA ves teden, 809 00:36:26,340 --> 00:36:29,052 precej v večini dni, bo tam za podporo. 810 00:36:29,052 --> 00:36:30,760 Torej, če imaš nekaj Vprašanje o p-set 811 00:36:30,760 --> 00:36:33,093 ali ste občutek malo blokiran ali malo zmeden, 812 00:36:33,093 --> 00:36:35,640 in vraga, imaš uro ali pol ure med razredi, 813 00:36:35,640 --> 00:36:38,920 zlasti v square-- lahko pop in so na to vprašanje odgovoril 814 00:36:38,920 --> 00:36:41,720 o imajo to zmedo clarified-- zelo v duhu, 815 00:36:41,720 --> 00:36:45,490 ste seznanjeni, od matematike ministrstva lastno math vprašanja center, 816 00:36:45,490 --> 00:36:49,300 vendar precej štiriindvajset ur na dan na [? GCal?], Da bomo objavili na spletu. 817 00:36:49,300 --> 00:36:52,400 >> Tutorstvo je na voljo tudi za tiste, študente, prosto iz tečaj je 818 00:36:52,400 --> 00:36:54,750 lastno osebje, če bi želeli bolj intimno ena na ena, 819 00:36:54,750 --> 00:36:58,940 ali pa samo dva ali trije sošolci, ki delajo z enim od uslužbencev tečaja je. 820 00:36:58,940 --> 00:37:02,320 In res, to naj omenimo samo nekateri člani osebja tečaja je, 821 00:37:02,320 --> 00:37:04,120 nekaj od tega si bom izpolniti vsak trenutek. 822 00:37:04,120 --> 00:37:07,440 Dejstvo je, CS50 lastne glava poučevanje kolegi, 823 00:37:07,440 --> 00:37:09,790 in vodja tečaj pomočnik in učitelj, 824 00:37:09,790 --> 00:37:12,998 lahko prišel gor, omogočajo jih pozdravi. 825 00:37:12,998 --> 00:37:22,498 >> [Aplavz] 826 00:37:22,498 --> 00:37:23,456 SPEAKER 1: [neslišno]. 827 00:37:23,456 --> 00:37:51,842 828 00:37:51,842 --> 00:37:57,856 >> [Aplavz] 829 00:37:57,856 --> 00:37:58,814 SPEAKER 2: [neslišno]. 830 00:37:58,814 --> 00:38:17,240 831 00:38:17,240 --> 00:38:27,238 >> [Aplavz] 832 00:38:27,238 --> 00:38:28,196 SPEAKER 3: [neslišno]. 833 00:38:28,196 --> 00:38:58,951 834 00:38:58,951 --> 00:39:03,120 >> [Aplavz] 835 00:39:03,120 --> 00:39:06,740 >> DAVID Malan: In nam omogočajo, da prinašajo na krovu dva od CS50 najbolj 836 00:39:06,740 --> 00:39:09,730 odgovorne osebe, Rob in Zamayla kot dobro. 837 00:39:09,730 --> 00:39:15,120 >> [Aplavz] 838 00:39:15,120 --> 00:39:17,226 >> Dejansko sta Rob in Zamayla so bili z nami 839 00:39:17,226 --> 00:39:19,940 tako dolgo, da sem bil sposoben iti v arhivu CS50 je 840 00:39:19,940 --> 00:39:22,470 in zdi zelo SD posnetek od njih sodelujejo 841 00:39:22,470 --> 00:39:25,402 na odru sami pred nekaj leti. 842 00:39:25,402 --> 00:39:26,110 ROB: [neslišno]. 843 00:39:26,110 --> 00:39:53,660 844 00:39:53,660 --> 00:39:59,247 >> [Aplavz] 845 00:39:59,247 --> 00:40:00,080 ZAMAYLA: [neslišno] 846 00:40:00,080 --> 00:40:50,888 847 00:40:50,888 --> 00:40:52,467 >> [Aplavz] 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 Torej, poleg teh člani skupine tukaj, 851 00:40:58,030 --> 00:41:01,662 CS50 je ekipa skoraj 100 uslužbenci, vse od katerih 852 00:41:01,662 --> 00:41:04,370 bo na voljo za dele in uradne ure in še veliko več. 853 00:41:04,370 --> 00:41:06,920 In kot pravi, preveč Rob, to je najpomembnejša prenova 854 00:41:06,920 --> 00:41:09,534 od CS50 v 10 letih Bil sem v [neslišno]. 855 00:41:09,534 --> 00:41:12,200 [Neslišno] osredotočena predvsem pri zagotavljanju podporno konstrukcijo, 856 00:41:12,200 --> 00:41:14,050 obrezovanje stran veliko večina, ki je bila 857 00:41:14,050 --> 00:41:16,870 nabralo v 10 letih za iterativni razvoj 858 00:41:16,870 --> 00:41:18,120 o sklopih problematike predmeta je. 859 00:41:18,120 --> 00:41:21,470 >> Torej v tem letu, ne samo v razredu, ampak tudi v obliki problema tečaja je 860 00:41:21,470 --> 00:41:24,800 sklopov, bi morali najti stvari bolj racionalizirati, robov, veliko 861 00:41:24,800 --> 00:41:26,700 bolj obvladljiv kot V preteklih letih, kot smo 862 00:41:26,700 --> 00:41:31,330 shed nekaj prtljage, ki je po naravi razvijajoče leta razvil 863 00:41:31,330 --> 00:41:32,970 Po letu in ponavljanjem. 864 00:41:32,970 --> 00:41:35,110 Torej nove in izboljšane se začenja danes. 865 00:41:35,110 --> 00:41:37,860 >> Boste spoznali nekaj več od Osebje Seveda je v [neslišno] 866 00:41:37,860 --> 00:41:40,186 ob 2:30, kjer služimo, kot tradicijo, torto. 867 00:41:40,186 --> 00:41:42,060 Tam je malo bolj torto kot to, ampak bom 868 00:41:42,060 --> 00:41:44,690 izpolnjujejo Erin in Tobias in drugi še vedno. 869 00:41:44,690 --> 00:41:46,470 In naj ti dajo ogled pred slišimo 870 00:41:46,470 --> 00:41:49,600 od nekaterih drugih članov osebja v razredu, kaj čaka tudi. 871 00:41:49,600 --> 00:41:52,730 Pravzaprav smo se vedno začne CS50-jev semester tega prihaja v soboto, 872 00:41:52,730 --> 00:41:54,330 s tem, kar se imenuje CS50 Puzzle dan. 873 00:41:54,330 --> 00:41:56,710 >> To nima nič opraviti z računalništva per se, 874 00:41:56,710 --> 00:41:58,669 vendar z okoli problemu reševanju bolj na splošno. 875 00:41:58,669 --> 00:42:01,210 In če se tako odločijo, da sodelujejo, na nekaterih razpisih, 876 00:42:01,210 --> 00:42:03,460 ste morda opazili vrata pade ali na odru tod 877 00:42:03,460 --> 00:42:05,830 to je priložnost v skupinah dveh ali treh ali štirih, 878 00:42:05,830 --> 00:42:10,680 da sodelujejo pri uganke in pice in nagrade in more-- to soboto, 879 00:42:10,680 --> 00:42:12,560 ostanite z nami za več. 880 00:42:12,560 --> 00:42:15,082 >> Boste našli tudi, da je vsak Petek, ob Fire in Ice, 881 00:42:15,082 --> 00:42:16,790 ne CS50 prinašajo cel kup študentov 882 00:42:16,790 --> 00:42:19,100 na kosilo, da bi velika Razred počutijo bolj intimno, 883 00:42:19,100 --> 00:42:21,820 in na splošno združiti alumni in prijatelji iz industrije 884 00:42:21,820 --> 00:42:24,710 govoriti o tem, kaj oni bila do leta diplomiral. 885 00:42:24,710 --> 00:42:27,820 Prav letos bomo Inaugurirati prva CS50 50 886 00:42:27,820 --> 00:42:31,390 kodiranje contest-- je sredi semestra možnost, da bi vse 887 00:42:31,390 --> 00:42:35,430 na opt v osnovi, da imajo Izziv pameti pred sošolci, 888 00:42:35,430 --> 00:42:39,250 spet v skupinah po dva ali tri ali štiri, ki uporabljajo samo, da se načrtovanje 889 00:42:39,250 --> 00:42:41,920 zdrava pamet, da si potem imajo po vaš pas že po šest ali sedem 890 00:42:41,920 --> 00:42:44,710 tednov razreda, in sodelujejo V tej vrsti tekmovanja 891 00:42:44,710 --> 00:42:50,261 online-- če želite Brus svoje sposobnosti toliko v tem izzivu. 892 00:42:50,261 --> 00:42:52,760 Na koncu semestra je ti CS50 Hackathon-- 893 00:42:52,760 --> 00:42:56,970 priložnost, da se začne ob 7:00 PM konča na 7:00, in na poti 894 00:42:56,970 --> 00:43:01,900 12 večerne ure, v katerih se potopite v končni project-- teku je 895 00:43:01,900 --> 00:43:04,820 priložnost za oblikovanje in izvajati skoraj karkoli zanima 896 00:43:04,820 --> 00:43:06,980 za vas s svojim poučevanjem usmerjanje ŠTIPENDIJE. 897 00:43:06,980 --> 00:43:09,600 Okoli 9:00 kajne običajno služijo pice, 1:00 AM, 898 00:43:09,600 --> 00:43:13,210 Philippe je, in nekaj nas ki so še vedno budni ob 5:00 zjutraj, 899 00:43:13,210 --> 00:43:16,310 so shuttle bussed navzdol Pot do IHOP za zajtrk. 900 00:43:16,310 --> 00:43:19,340 >> In potem nekaj dni kasneje je tako imenovani CS50 fare-- 901 00:43:19,340 --> 00:43:23,450 konec razstave semester v Praznovanje kako daleč toliko 902 00:43:23,450 --> 00:43:28,200 od CS50 študenti prihajajo iz ničla teden vse do tedna 903 00:43:28,200 --> 00:43:32,610 in ob upoštevanju, da 73% tistih, ki so sošolci in tvoje letos so 904 00:43:32,610 --> 00:43:34,840 nikoli razred CS prej. 905 00:43:34,840 --> 00:43:39,226 Dejansko bi poudariti je toliko tukaj je nekaj več obrazov iz osebja CS50 je. 906 00:43:39,226 --> 00:43:40,184 SPEAKER 4: [neslišno]. 907 00:43:40,184 --> 00:43:45,909 908 00:43:45,909 --> 00:43:46,867 SPEAKER 5: [neslišno]. 909 00:43:46,867 --> 00:43:51,332 910 00:43:51,332 --> 00:43:52,290 SPEAKER 6: [neslišno]. 911 00:43:52,290 --> 00:43:55,276 912 00:43:55,276 --> 00:43:56,234 SPEAKER 7: [neslišno]. 913 00:43:56,234 --> 00:44:01,727 914 00:44:01,727 --> 00:44:02,643 SPEAKER 8: [neslišno] 915 00:44:02,643 --> 00:44:10,066 916 00:44:10,066 --> 00:44:11,024 SPEAKER 9: [neslišno]. 917 00:44:11,024 --> 00:44:14,475 918 00:44:14,475 --> 00:44:15,461 >> SPEAKER 4: [neslišno]. 919 00:44:15,461 --> 00:44:16,461 >> ZVOČNIK 10: [neslišno]. 920 00:44:16,461 --> 00:44:21,456 921 00:44:21,456 --> 00:44:23,438 ZVOČNIK 11: [neslišno]. 922 00:44:23,438 --> 00:44:24,438 ZVOČNIK 12: [neslišno]. 923 00:44:24,438 --> 00:44:30,438 924 00:44:30,438 --> 00:44:31,396 ZVOČNIK 13: [neslišno] 925 00:44:31,396 --> 00:44:37,360 926 00:44:37,360 --> 00:44:40,342 >> ZVOČNIK 14: [neslišno]. 927 00:44:40,342 --> 00:44:42,863 >> ZVOČNIK 13: [neslišno]. 928 00:44:42,863 --> 00:44:43,821 ZVOČNIK 15: [neslišno] 929 00:44:43,821 --> 00:44:48,785 930 00:44:48,785 --> 00:44:49,785 ZVOČNIK 16: [neslišno]. 931 00:44:49,785 --> 00:44:53,761 932 00:44:53,761 --> 00:44:55,252 >> ZVOČNIK 11: [neslišno] 933 00:44:55,252 --> 00:44:57,773 934 00:44:57,773 --> 00:44:58,731 SPEAKER 5: [neslišno]. 935 00:44:58,731 --> 00:45:11,250 936 00:45:11,250 --> 00:45:15,130 DAVID Malan: Nekatere ekipe same nakupovanje razrede. 937 00:45:15,130 --> 00:45:17,760 Ampak, če ti člani osebja CS50 tukaj, 938 00:45:17,760 --> 00:45:19,230 mogel priti do le za trenutek. 939 00:45:19,230 --> 00:45:23,450 CS50 je TFS in CA in [? osebje?] Člani here-- to so le nekatere 940 00:45:23,450 --> 00:45:28,880 na faces-- enega od katere si videl, in nekaj other-- in nekaj drugih 941 00:45:28,880 --> 00:45:30,020 Še vedno. 942 00:45:30,020 --> 00:45:33,242 Zakaj ne gremo naprej in omogočajo vidva pet minut odmora. 943 00:45:33,242 --> 00:45:35,450 Če morate raca ven trgovina razredi, da je v redu. 944 00:45:35,450 --> 00:45:38,900 In v petih minutah, bomo nadaljevali, ob poglej Scratch-- kot prvo 945 00:45:38,900 --> 00:45:42,420 našega programskega jezika, izpolnjujejo osebje seveda je tukaj nekaj več, 946 00:45:42,420 --> 00:45:45,020 ter se osredotočiti na koncu na problem nastaviti nič. 947 00:45:45,020 --> 00:45:46,710 Torej bomo spet čez pet minut. 1 00:45:46,864 --> 00:45:47,370 >> V redu. 2 00:45:47,370 --> 00:45:48,590 Zato smo nazaj. 3 00:45:48,590 --> 00:45:51,330 In v naši preostali Čas danes je cilj 4 00:45:51,330 --> 00:45:54,320 je, da zagotovimo enake pogoje v smislu neke terminologije, 5 00:45:54,320 --> 00:45:55,297 V smislu nekaterih zamisli. 6 00:45:55,297 --> 00:45:57,380 Ker je res, kot je na nekaj kart prejšnjih, 7 00:45:57,380 --> 00:46:00,130 tam se bo razpon raven izkušenj v razredu, 8 00:46:00,130 --> 00:46:03,210 nekateri od katerih imajo učenci pred njim nekaj programiranja, 9 00:46:03,210 --> 00:46:04,200 nekateri izmed njih še ni. 10 00:46:04,200 --> 00:46:07,430 In tako s tem prvim problemom nastavi in ​​s tem prvi jezik 11 00:46:07,430 --> 00:46:10,830 bomo imeli priložnost za začetek vzeti za samoumevno, ko danes 12 00:46:10,830 --> 00:46:12,960 nekaj skupnega besedišča in ideja. 13 00:46:12,960 --> 00:46:15,590 >> In bomo to storili s pomočjo Prvi languages-- Tečaj je 14 00:46:15,590 --> 00:46:21,070 Poleg C in Python in JavaScript ter SQL in HTML in CSS, 15 00:46:21,070 --> 00:46:24,450 bomo osredotočili na začetku in samo za problem nastaviti nič 16 00:46:24,450 --> 00:46:28,160 o tem grafični jezik, ki se imenuje Scratch, Media Lab MIT razvil 17 00:46:28,160 --> 00:46:30,880 po cesti, da bi pomagali študenti in otroci še posebno 18 00:46:30,880 --> 00:46:35,070 izrazijo algorithmically-- na način, bolj skladno s kakšnimi 19 00:46:35,070 --> 00:46:37,300 smo lahko imenujemo računalniško razmišljanje. 20 00:46:37,300 --> 00:46:40,985 >> In to je koristno, jezik, saj zelo hitro naslednji teden v enem tednu 21 00:46:40,985 --> 00:46:44,360 bomo prehod na bolj tradicionalna in Skrivnosten jezik imenuje 22 00:46:44,360 --> 00:46:46,370 C, ki je zgolj tekstualni. 23 00:46:46,370 --> 00:46:48,930 Uporabljate samo tipkovnico v Da bi napisali navodila 24 00:46:48,930 --> 00:46:50,230 kot ti na zaslonu. 25 00:46:50,230 --> 00:46:52,840 Toda, tudi če še niste videli programski jezik prej, 26 00:46:52,840 --> 00:46:55,170 v samo pogledal na to, vsi se Grobni, 27 00:46:55,170 --> 00:47:00,010 si verjetno lahko uganiti, da Verjetno natisne Hello World. 28 00:47:00,010 --> 00:47:02,050 Ampak tam je veliko skladenjsko režijske tam. 29 00:47:02,050 --> 00:47:05,770 Tam je čudno hash Simbol ali hash tag do vrha. 30 00:47:05,770 --> 00:47:08,900 Tam je kotni nosilci, nekatere oklepaji, zaviti oklepaji, semi-colon-- 31 00:47:08,900 --> 00:47:11,880 tam je samo toliko vizualno sintakso, ki pride na pot. 32 00:47:11,880 --> 00:47:13,940 Začnemo seveda z Praske tako dobili 33 00:47:13,940 --> 00:47:17,600 mimo vseh tistih intelektualno nezanimivi motenj, 34 00:47:17,600 --> 00:47:20,290 in namesto tega osredotočiti na idejah. 35 00:47:20,290 --> 00:47:22,540 >> V bistvu bi to lahko bilo prej. 36 00:47:22,540 --> 00:47:24,830 Ta za to se tednu so kasneje. 37 00:47:24,830 --> 00:47:26,760 To je v tem grafični jezik Scratch, 38 00:47:26,760 --> 00:47:29,870 je, kako bi se izvajala istega program-- program, ko teče, 39 00:47:29,870 --> 00:47:31,340 samo pozdravi svet. 40 00:47:31,340 --> 00:47:34,740 In kaj je lepo o Scratch je da je to grafično programiranje 41 00:47:34,740 --> 00:47:38,780 okolje, ki uporablja kosov sestavljanke ali bloki, da samo sinhronizira skupaj 42 00:47:38,780 --> 00:47:40,440 če to naredi logično smiselno, da to storijo. 43 00:47:40,440 --> 00:47:43,810 In z Scratch lahko razvije animacije in interaktivne igre 44 00:47:43,810 --> 00:47:47,270 in umetnosti, in vse več stvari, ki Lahko si predstavljate, v vaših mislih, 45 00:47:47,270 --> 00:47:51,200 in jih izvajati samo s povleci in spusti kosov sestavljanke. 46 00:47:51,200 --> 00:47:54,265 >> In res, bomo imeli možnost izraziti nekatere iste ideje 47 00:47:54,265 --> 00:47:56,890 da sem omenil trenutek Pred v okviru Mike Smith 48 00:47:56,890 --> 00:48:00,670 in iskanje stvari telefonsko book-- kot funkcije, le ukrepi, 49 00:48:00,670 --> 00:48:03,070 stvari, kot so zanke, ki storijo vedno znova stvari, 50 00:48:03,070 --> 00:48:05,170 spremenljivke, ki je kaj bomo uvesti, 51 00:48:05,170 --> 00:48:08,086 vendar je seznanjen morda iz algebra-- samo nekakšna ogrado 52 00:48:08,086 --> 00:48:10,840 za shranjevanje neko vrednost, ki jo lahko Potrebujemo later-- logičnih izrazov, 53 00:48:10,840 --> 00:48:13,720 kjer tisti, da ne, ali res lažne vprašanja od prej. 54 00:48:13,720 --> 00:48:17,117 Pogoji so te vilice v road-- te podružnice tako rekoč. 55 00:48:17,117 --> 00:48:19,700 In potem obstaja nekaj Ljubitelj funkcije, bomo videli še danes, 56 00:48:19,700 --> 00:48:22,850 imenovane nizi in niti in Dogodki, ki jih bomo nato ponovno čez 57 00:48:22,850 --> 00:48:24,460 čas v različnih jezikih. 58 00:48:24,460 --> 00:48:26,790 Toda Scratch nam omogoča, raziskati vse te. 59 00:48:26,790 --> 00:48:30,779 Torej, tukaj v nič, ta vijolična blok je tisto, funkcija je običajno 60 00:48:30,779 --> 00:48:31,570 bo izgledal. 61 00:48:31,570 --> 00:48:35,620 Ta vijolično puzzle kos, ki ima nekaj beseda, kot recimo, ki je ukrep, 62 00:48:35,620 --> 00:48:38,490 in potem bi bilo imeti argument ali parameter-- na nek način 63 00:48:38,490 --> 00:48:41,140 od vrste prilagajanje kaj, da blok ne 64 00:48:41,140 --> 00:48:45,182 tako da to ni predhodno določil MIT, kaj pravi ta vijolična blok. 65 00:48:45,182 --> 00:48:47,390 V bistvu, boste videli v trenutek, da sem lahko tip 66 00:48:47,390 --> 00:48:49,931 besede, kot so Hello World, ali zdravo David, ali zdravo Zamayla, 67 00:48:49,931 --> 00:48:53,750 ali karkoli hočem, v argumentu s tem puzzle piece-- belo škatlo 68 00:48:53,750 --> 00:48:54,251 tam. 69 00:48:54,251 --> 00:48:57,166 Medtem, če želim zanko, bomo ugotovimo, da je kosov sestavljanke, da 70 00:48:57,166 --> 00:48:58,640 poglej malo oranžno, kot je ta. 71 00:48:58,640 --> 00:49:01,690 In njihova oblika nekako kaže, da nekaj, kar vedno znova zgodi 72 00:49:01,690 --> 00:49:02,680 V ciklu. 73 00:49:02,680 --> 00:49:06,800 >> Torej, če sem zaviti pozdravi svetovno blok z vedno blokirajo v Scratch, 74 00:49:06,800 --> 00:49:10,307 to je le, da bo naprej pozdravljanja svet za vedno, dobesedno. 75 00:49:10,307 --> 00:49:12,390 Medtem pa je še tip zanke v Scratch 76 00:49:12,390 --> 00:49:14,348 da bomo see-- ponovitev block-- kjer, če vas 77 00:49:14,348 --> 00:49:17,940 vnaprej vedeti, koliko krat želite, da se zanka za izvedbo 78 00:49:17,940 --> 00:49:21,850 končna večkrat v vas fact-- lahko določi, da z vnosom številke 79 00:49:21,850 --> 00:49:25,380 ali celo čepi v spremenljivko, kot x in y, kot bomo videli. 80 00:49:25,380 --> 00:49:27,690 >> V bistvu, kot spremenljivke i je v tem primeru, ki je 81 00:49:27,690 --> 00:49:30,109 je skupno ime za celo spremenljivka, ki 82 00:49:30,109 --> 00:49:31,900 Samo shrani number-- celo lahko, 83 00:49:31,900 --> 00:49:35,470 Za uporabo te oranžni blok tukaj nastavite spremenljivko kot sem nič. 84 00:49:35,470 --> 00:49:38,900 Tukaj je primer v zeleni Logični izraz v Scratch. 85 00:49:38,900 --> 00:49:43,700 Čeprav to izgleda kot matematiki formula, matematike neenakosti, kot je to 86 00:49:43,700 --> 00:49:45,320 res Logični izrazi. 87 00:49:45,320 --> 00:49:46,570 To je bodisi resnična ali neresnična. 88 00:49:46,570 --> 00:49:48,300 I je manj kot 50. 89 00:49:48,300 --> 00:49:51,815 To je bodisi da ali ne odgovora ali resnična ali neresnična odgovor. 90 00:49:51,815 --> 00:49:53,940 In bomo na splošno imenujemo ti Logični izrazi. 91 00:49:53,940 --> 00:49:55,148 In ni nujno, da je 50. 92 00:49:55,148 --> 00:49:57,970 Je lahko x manjša od y, večja od y, enako y-- 93 00:49:57,970 --> 00:50:00,020 poljubno število drugih vprašanja bi lahko vprašal. 94 00:50:00,020 --> 00:50:03,250 >> Zdaj, na prvi pogled to morda videti nenadoma precej krepko tukaj, in je. 95 00:50:03,250 --> 00:50:06,540 Toda koncept pametno, da je precej pozna od prej. 96 00:50:06,540 --> 00:50:09,370 Če je x manjši kot y, kot pravijo toliko. 97 00:50:09,370 --> 00:50:12,230 Drugega, če je x večji kot y, nato toliko reči. 98 00:50:12,230 --> 00:50:14,260 Rekli, da je x enak y. 99 00:50:14,260 --> 00:50:17,220 Tako imamo primer je tretje scenario-- 100 00:50:17,220 --> 00:50:20,600 Le tretji possibility-- x bodisi višja od manjša ali enaka. 101 00:50:20,600 --> 00:50:22,420 Torej imamo tri način vilice v cestnem prometu. 102 00:50:22,420 --> 00:50:26,290 >> In opazil, kaj je kul here-- Scratch, se zdi, ima le eno sestavljanko 103 00:50:26,290 --> 00:50:28,840 kosov, v tem primeru v če drugega bloka. 104 00:50:28,840 --> 00:50:32,090 In še, da se zdi, da ti pomeni lahko imajo le dvosmerni vilice v cestnem prometu. 105 00:50:32,090 --> 00:50:34,631 Greste lahko levo ali desno, vendar kaj pa tisti tretji scenarij? 106 00:50:34,631 --> 00:50:35,760 Kaj pa, če je x enak y? 107 00:50:35,760 --> 00:50:36,500 Nič takega. 108 00:50:36,500 --> 00:50:39,640 Vzemite en kos sestavljanke, dal še ena znotraj njega 109 00:50:39,640 --> 00:50:45,759 ustvariti pomensko enakovreden o če je, drugače, če else-- in zdaj vas 110 00:50:45,759 --> 00:50:47,300 imajo svoje trismerni vilice v cestnem prometu. 111 00:50:47,300 --> 00:50:49,091 In kot smo videli je Scratch kosov sestavljanke 112 00:50:49,091 --> 00:50:51,820 se lahko raztegne in raste, tako kot Strpati več stvari v njih. 113 00:50:51,820 --> 00:50:54,420 Nimate, da se prilega vse, kar je v svoji privzeti velikosti. 114 00:50:54,420 --> 00:50:56,690 >> To je nekaj, kar bom kmalu videli, se imenuje polje. 115 00:50:56,690 --> 00:51:00,880 To je kot list-- nek način shranjevanje več informacijam 116 00:51:00,880 --> 00:51:02,886 v spremenljivko, ne samo številka. 117 00:51:02,886 --> 00:51:05,760 To bomo videli predstavnika nekaj, kar se imenuje multi-threading. 118 00:51:05,760 --> 00:51:08,280 V bistvu, vse vaše Mac in računalniki v teh dneh 119 00:51:08,280 --> 00:51:10,810 podporo multi-threading, kar pomeni, da lahko dobesedno 120 00:51:10,810 --> 00:51:12,390 delati več stvari hkrati. 121 00:51:12,390 --> 00:51:15,390 Lahko imate Microsoft Word up v novo znanje, ki delajo na nekem eseju. 122 00:51:15,390 --> 00:51:17,160 Morda imate brskalnik pri odpiranju ozadju 123 00:51:17,160 --> 00:51:18,720 G-pošto ali Facebook ali podobno. 124 00:51:18,720 --> 00:51:22,730 Računalnik lahko naredite več stvari Danes saj je multi-navojem, 125 00:51:22,730 --> 00:51:26,390 in programi, ki jih bo v pri Zlasti so tudi multi-navojem. 126 00:51:26,390 --> 00:51:28,970 >> Tam je stvari imenovane prireditve, kot tudi v svetu Scratch, 127 00:51:28,970 --> 00:51:32,640 in potem je preveč, da bi naše meri kosov sestavljanke, če stvari 128 00:51:32,640 --> 00:51:34,810 pa dejansko ne obstaja vnaprej. 129 00:51:34,810 --> 00:51:38,260 Torej, kaj je motivirati to takole. 130 00:51:38,260 --> 00:51:40,580 Pred nekaj leti, ko sem prvi odkril praske, 131 00:51:40,580 --> 00:51:43,530 ko sem bil pravzaprav grad študent na MIT, smo 132 00:51:43,530 --> 00:51:45,640 sami so nalogo, da bo nalogo. 133 00:51:45,640 --> 00:51:47,614 In sem implemented-- ki je za nazaj, 134 00:51:47,614 --> 00:51:50,780 je bila zelo slaba odločitev, saj je Najbolj Razjarujući pesem na svetu 135 00:51:50,780 --> 00:51:53,321 poslušati osem ur medtem ko delate na vašem homework-- 136 00:51:53,321 --> 00:51:57,180 ampak nekaj sem poklical Oscar čas, ki je morda znana pesem. 137 00:51:57,180 --> 00:51:59,820 >> CS50s lastnik Jordan Hayashi, eden izmed naši več visokih uslužbencev, 138 00:51:59,820 --> 00:52:03,920 ga je nadgraditi za leto 2015 in sedaj 2016, saj je nazaj v dan, 139 00:52:03,920 --> 00:52:06,610 Imel sem vse, kar je le, da bo v Oscar je koš za smeti. 140 00:52:06,610 --> 00:52:09,320 Zdaj podpiramo recikliranja in kompostiranja. 141 00:52:09,320 --> 00:52:12,050 >> Toda slikati sliko o tem, kaj lahko storimo tukaj 142 00:52:12,050 --> 00:52:14,130 in motivirati nekaj nižje primeri nivoja, 143 00:52:14,130 --> 00:52:16,400 bi lahko dobili eno drugo Prostovoljec samo pridi gor 144 00:52:16,400 --> 00:52:18,331 in igra moj prvi domače naloge kdaj? 145 00:52:18,331 --> 00:52:18,830 Pridi gor. 146 00:52:18,830 --> 00:52:19,250 Kako ti je ime? 147 00:52:19,250 --> 00:52:20,030 >> HENRY: Henry. 148 00:52:20,030 --> 00:52:22,660 >> DAVID Malan: Henry, pridi gor. 149 00:52:22,660 --> 00:52:24,190 Pridi gor. 150 00:52:24,190 --> 00:52:27,070 Head eno ali drugo smer, in boste videli v trenutku, 151 00:52:27,070 --> 00:52:29,870 Bom, da gredo naprej in hit zeleno zastavo v zgornjem desnem 152 00:52:29,870 --> 00:52:31,100 kotiček, kar pomeni, da gredo. 153 00:52:31,100 --> 00:52:33,320 znamenje ikona malo stop je reči stop, 154 00:52:33,320 --> 00:52:35,490 in to je, ko začnete in zaustavitev programa. 155 00:52:35,490 --> 00:52:36,450 Lepo te je bilo srečati. 156 00:52:36,450 --> 00:52:36,950 V redu. 157 00:52:36,950 --> 00:52:39,100 Torej bomo videli navodila na zaslonu v samo trenutek. 158 00:52:39,100 --> 00:52:41,450 In samo z igranjem to igro za nekaj seconds-- mi zaupaš, 159 00:52:41,450 --> 00:52:43,670 ne bomo želeli igrati vse tja do end-- boste 160 00:52:43,670 --> 00:52:45,470 dobili občutek, kaj program počne. 161 00:52:45,470 --> 00:52:49,170 In več kot samo osredotočiti na Henry dobra ali slaba v tej igri, osredotočenost 162 00:52:49,170 --> 00:52:52,600 in kako je bil izveden po meni prvotno in Jordanija. 163 00:52:52,600 --> 00:52:54,640 Z drugimi besedami, kjer so spremenljivke? 164 00:52:54,640 --> 00:52:55,520 Kjer so zanke? 165 00:52:55,520 --> 00:52:56,520 Kadar so funkcije? 166 00:52:56,520 --> 00:53:00,700 In bomo videli, če ne bomo videli tistih, ki pod pokrovom. 167 00:53:00,700 --> 00:53:03,660 >> Kliknite in povlecite smeti na ustrezen koš. 168 00:53:03,660 --> 00:54:02,100 >> [GLASBA] 169 00:54:02,100 --> 00:54:02,600 V redu. 170 00:54:02,600 --> 00:54:03,160 To je zelo dobro. 171 00:54:03,160 --> 00:54:04,286 Zakaj ne bi ga ustavili. 172 00:54:04,286 --> 00:54:04,786 Hvala. 173 00:54:04,786 --> 00:54:05,830 Čestitke Henry. 174 00:54:05,830 --> 00:54:07,002 Hvala. 175 00:54:07,002 --> 00:54:10,690 >> [Aplavz] 176 00:54:10,690 --> 00:54:12,450 >> Zamislite si, razhroščevanje ta program. 177 00:54:12,450 --> 00:54:15,880 Če obstaja problem dva minuti song-- vendar tako 178 00:54:15,880 --> 00:54:17,430 kaj se dogaja v resnici? 179 00:54:17,430 --> 00:54:20,900 Kot je zapleteno, kot bi jih lahko začnejo se zdi, da se v daljšem časovnem obdobju, 180 00:54:20,900 --> 00:54:22,910 dejansko bolj stvari začele pada, 181 00:54:22,910 --> 00:54:25,370 kaj je zanimivo ta vrsta example-- 182 00:54:25,370 --> 00:54:27,270 in bomo videli nekaj others-- je, da če vas 183 00:54:27,270 --> 00:54:30,416 poglej mimo kompleksnosti ali sofisticiranosti igre 184 00:54:30,416 --> 00:54:33,040 tam je zelo preprosta stavba blokov, ki play-- kar vse, 185 00:54:33,040 --> 00:54:35,840 če jih strnili na tiste gradniki, so zelo dostopni 186 00:54:35,840 --> 00:54:37,401 in izvedljive sami sebi. 187 00:54:37,401 --> 00:54:39,150 Na primer, da je že nekaj časa, vendar sem 188 00:54:39,150 --> 00:54:42,900 precej prepričan, da tisto, kar sem na začetku naredil, ko ki to igro prvič 189 00:54:42,900 --> 00:54:44,787 Bil sem popolnoma všeč zavlačevali. 190 00:54:44,787 --> 00:54:47,120 Nisem se osredotoči na vse na logika ali kosov sestavljanke, 191 00:54:47,120 --> 00:54:50,810 Sem se osredotočila na grafiko in ugotovitve ulica mesto in koš za smeti 192 00:54:50,810 --> 00:54:51,540 in vse to. 193 00:54:51,540 --> 00:54:53,456 Toda to so bili pogoj Sestavine na prvi. 194 00:54:53,456 --> 00:54:57,220 In ko sem končal odlašanje in ki določa okvir splošen, 195 00:54:57,220 --> 00:55:00,337 Odločil sem se, da mi samo, da eno kos smeti pade z neba. 196 00:55:00,337 --> 00:55:02,170 In bomo videli praske podpira stvari imenovane 197 00:55:02,170 --> 00:55:06,386 sprites-- znakov, ki jih imajo različne kostume na, tako da 198 00:55:06,386 --> 00:55:07,010 videti drugačen. 199 00:55:07,010 --> 00:55:09,660 >> In tako sem dal smeti noša na enem od teh Vilenjak. 200 00:55:09,660 --> 00:55:12,007 In sem potreboval pade z neba. 201 00:55:12,007 --> 00:55:14,590 In tako se je izkazalo, Scratch, kot večina programskih jezikov, 202 00:55:14,590 --> 00:55:18,099 podpira naključnih števil ali tehnično psevdokoda naključnih števil, 203 00:55:18,099 --> 00:55:20,390 tako, da ga povlečete in spuščanje določenih kosov sestavljanke, 204 00:55:20,390 --> 00:55:22,890 Sem lahko, da so smeti prihajajo iz leve na prvi. 205 00:55:22,890 --> 00:55:25,580 In potem naslednjič, ko je padel iz desno in nato od sredine. 206 00:55:25,580 --> 00:55:28,060 In vse igra ni bila ravno imajo smeti padajo z neba. 207 00:55:28,060 --> 00:55:29,770 Nisi mogel opozoriti na to, ali kliknite na njega. 208 00:55:29,770 --> 00:55:31,103 Nisi mogel odpreti smetnjaka. 209 00:55:31,103 --> 00:55:32,160 Vi ne bi mogel storiti ničesar. 210 00:55:32,160 --> 00:55:34,450 Ampak to je korak dojenček proti moji zadnji vid. 211 00:55:34,450 --> 00:55:36,720 >> In po tem, sem dejansko izvajala nekakšna 212 00:55:36,720 --> 00:55:41,230 zaznavanja, tako da če nisi kliknite in povlecite na kos smeti 213 00:55:41,230 --> 00:55:44,350 v koš, Oscar je Pokrov bi odpiranje in zapiranje. 214 00:55:44,350 --> 00:55:47,650 Nič bi se zgodilo v smeti, ampak vsaj bi pokrov odpirati in zapirati. 215 00:55:47,650 --> 00:55:49,642 Torej preveri, drugi korak dveh. 216 00:55:49,642 --> 00:55:52,100 In to je tisto, kar se dogaja, da Ključni tako problem nastaviti nič 217 00:55:52,100 --> 00:55:55,970 in v programiranju bolj splošno, je da te zelo premišljene korake otroka. 218 00:55:55,970 --> 00:55:59,390 Ker ne samo, da vam, da se omogoči čutijo pošteno dosegel veliko več 219 00:55:59,390 --> 00:56:01,250 quickly-- to je najslabša stvar na svetu 220 00:56:01,250 --> 00:56:06,149 da bi poskušali izvesti vse Oscar časa, Nato ur kasneje zadeti zeleno zastavo, 221 00:56:06,149 --> 00:56:08,440 in nič ne dela kot je bilo pričakovano ker, če vas narediti še 222 00:56:08,440 --> 00:56:11,150 začeli odpravljanje napak ali odpraviti ta program? 223 00:56:11,150 --> 00:56:12,470 To je samo velika. 224 00:56:12,470 --> 00:56:16,792 >> In tako resnično sprejemajo to idejo za ponovno ob steps-- korake otroka 225 00:56:16,792 --> 00:56:19,000 in again-- izgradnjo nekaj, kar je na koncu, 226 00:56:19,000 --> 00:56:23,672 res impresiven in zapleten, vendar na prvi, še zdaleč ni tako veliko, tako. 227 00:56:23,672 --> 00:56:24,630 V bistvu, kaj je to. 228 00:56:24,630 --> 00:56:28,989 Naj gredo naprej in-- se Scratch obstaja na spletu na Scratch.MIT.edu, 229 00:56:28,989 --> 00:56:30,780 in boste povedali, kakor veliko spet problem 230 00:56:30,780 --> 00:56:34,200 nastavite nič, specifikacije za ki je že na spletni strani CS50 je. 231 00:56:34,200 --> 00:56:35,725 >> Ampak to je tisto, kar Scratch sama. 232 00:56:35,725 --> 00:56:38,210 In tam je res samo tri osnovne površine. 233 00:56:38,210 --> 00:56:40,980 Na vrh pustil tam je tako imenovani fazi. 234 00:56:40,980 --> 00:56:41,810 To je Scratch. 235 00:56:41,810 --> 00:56:43,710 Privzeto noša je mačka. 236 00:56:43,710 --> 00:56:46,950 In to je pravokotna svetu ki jih lahko move-- gor, dol, levo, 237 00:56:46,950 --> 00:56:48,130 desno in nekatere druge stvari. 238 00:56:48,130 --> 00:56:51,839 V sredini tukaj so naši kategorije ali naše palete kosov sestavljanke, 239 00:56:51,839 --> 00:56:53,630 in različne barve pomeni različne stvari. 240 00:56:53,630 --> 00:56:56,520 In če suniti okrog, boste videli stvari, kot so zanke in pogoji 241 00:56:56,520 --> 00:56:58,160 in spremenljivke in druge sestavine. 242 00:56:58,160 --> 00:57:00,060 >> In potem tukaj je območje skripte. 243 00:57:00,060 --> 00:57:03,020 To je, če sem lahko povlečete in spustite ti kosov sestavljanke delati stvari. 244 00:57:03,020 --> 00:57:04,690 Torej, kaj je naredil eno takšno stvar. 245 00:57:04,690 --> 00:57:06,630 Naj gredo naprej in-- in vem, kje je. 246 00:57:06,630 --> 00:57:10,110 Torej bom takoj kliknite na kjer Vem, da so pripravljeni, da se, 247 00:57:10,110 --> 00:57:13,140 vendar kaže in s klikom in poking okoli so neizogibne. 248 00:57:13,140 --> 00:57:15,320 Torej, ko zelena zastava kliku kaj hočem narediti? 249 00:57:15,320 --> 00:57:17,100 Bom, da to storijo. 250 00:57:17,100 --> 00:57:20,699 Bom vleči to vijolično sestavljanko kos, pozdravi za dve sekundi, 251 00:57:20,699 --> 00:57:21,490 in mi povečavo. 252 00:57:21,490 --> 00:57:23,865 >> In bom to spremeniti to, kar želim, da be-- 253 00:57:23,865 --> 00:57:26,471 zdravo svet za dve sekundi je v redu. 254 00:57:26,471 --> 00:57:28,970 Sedaj bom kliknite zelena zastava, ali če si res želim, 255 00:57:28,970 --> 00:57:31,820 Lahko v celoti ga pregledajo in nato pridejo nazaj. 256 00:57:31,820 --> 00:57:34,060 To bo samo vztrajati vse v enem oknu. 257 00:57:34,060 --> 00:57:36,141 Green flag-- zdravo svet. 258 00:57:36,141 --> 00:57:36,640 V redu. 259 00:57:36,640 --> 00:57:38,789 Ni vse tako zanimivo. 260 00:57:38,789 --> 00:57:40,080 Zato naj gredo naprej in to. 261 00:57:40,080 --> 00:57:41,038 Naj poskusim še enega. 262 00:57:41,038 --> 00:57:44,740 Ko clicked-- zelena zastava dovolimo kaj takega zvoka. 263 00:57:44,740 --> 00:57:46,880 In opazil, da je bilo od polje brezplačno dobite 264 00:57:46,880 --> 00:57:49,910 mačka zvok, kot je privzeta Sprite. 265 00:57:49,910 --> 00:57:52,380 Torej, zdaj mi gredo naprej in zadeti zeleno zastavo zdaj. 266 00:57:52,380 --> 00:57:53,224 >> [MEOWING] 267 00:57:53,224 --> 00:57:54,490 >> Aw. 268 00:57:54,490 --> 00:57:55,370 To je čudovit. 269 00:57:55,370 --> 00:57:57,040 Sem programiranja. 270 00:57:57,040 --> 00:57:58,550 Torej, kaj sem storila? 271 00:57:58,550 --> 00:58:00,430 To je enako programa. 272 00:58:00,430 --> 00:58:01,600 To je seveda zelo preprost. 273 00:58:01,600 --> 00:58:05,300 To ni res bi vse, da je veliko trud in MIT je opravil večino dela, 274 00:58:05,300 --> 00:58:07,890 vendar sem poklical funkcijo. 275 00:58:07,890 --> 00:58:08,940 Imam uporabljajo funkcijo. 276 00:58:08,940 --> 00:58:12,480 Naredil sem nekaj ukrepov, ki uporabljajo samo da je ena vijolična puzzle kos. 277 00:58:12,480 --> 00:58:15,960 >> No, če želim narediti tri mijavkanje zapored? 278 00:58:15,960 --> 00:58:18,570 Naj gredo naprej in ne dva in tri. 279 00:58:18,570 --> 00:58:20,910 In opazil, da ko vas lebdijo v bližini je kos sestavljanke, 280 00:58:20,910 --> 00:58:22,970 Zdi se malo bela črta nekako magnetno, 281 00:58:22,970 --> 00:58:25,190 in bo snap skupaj, ko se spustiš. 282 00:58:25,190 --> 00:58:26,600 Poglejmo, kaj se dogaja tukaj. 283 00:58:26,600 --> 00:58:27,920 >> [MEOWING] 284 00:58:27,920 --> 00:58:32,390 285 00:58:32,390 --> 00:58:34,510 >> Tam je napaka. 286 00:58:34,510 --> 00:58:35,650 Jaz slišim samo en mijav. 287 00:58:35,650 --> 00:58:37,440 Zakaj bi to bilo? 288 00:58:37,440 --> 00:58:39,001 Ja? 289 00:58:39,001 --> 00:58:39,500 Ja. 290 00:58:39,500 --> 00:58:41,650 Mi res ne slišati, ampak to je dobra intuicija. 291 00:58:41,650 --> 00:58:43,400 Oni vsi igranje ob istem času. 292 00:58:43,400 --> 00:58:44,000 Zakaj? 293 00:58:44,000 --> 00:58:46,587 No, računalnik je le, da bo da to, kar je povedal, da storiti. 294 00:58:46,587 --> 00:58:48,670 Torej, če ste rekli, igra zvok, predvajanje zvoka, predvajanje zvoka, 295 00:58:48,670 --> 00:58:52,887 vendar ga ne povem, da igrajo, dokler končate, igrati, dokler ste končali, 296 00:58:52,887 --> 00:58:54,970 da se bo razstrelil skozi program zelo hitro 297 00:58:54,970 --> 00:58:56,830 in ne samo tisto, kar je povedal, da storiti. 298 00:58:56,830 --> 00:58:59,040 >> Tako sem dejansko potrebujejo, da se določi To v nekaj načinov. 299 00:58:59,040 --> 00:59:00,623 Lahko bi pač ta, da se znebite tega. 300 00:59:00,623 --> 00:59:04,180 Naj poskusim to drugo puzzle piece-- predvajanje zvoka mijav, dokler storiti, 301 00:59:04,180 --> 00:59:07,072 in povlecite tri ti in kliknite Predvajaj. 302 00:59:07,072 --> 00:59:09,430 >> [MEOWING] 303 00:59:09,430 --> 00:59:13,350 >> To ni res very-- hvala you-- zelo naravno. 304 00:59:13,350 --> 00:59:16,590 Torej, zakaj ne jaz-- pusti me za nadzor nad igro. 305 00:59:16,590 --> 00:59:17,090 Lepo. 306 00:59:17,090 --> 00:59:22,230 Počakajte eno sekundo, in zdaj me nazaj zvoke, in predvajanje zvoka, dokler storiti, 307 00:59:22,230 --> 00:59:24,620 in kaj mi čakati eno sekundo. 308 00:59:24,620 --> 00:59:28,692 In potem mi gredo in dobili eno več zvoka, in gremo. 309 00:59:28,692 --> 00:59:31,350 >> [MEOWING] 310 00:59:31,350 --> 00:59:35,930 >> Malo bolj naravno, vendar to ni zelo učinkovito. 311 00:59:35,930 --> 00:59:39,830 Kot sem bil dolgčas, vsi na kratko, tako da kliknete naprej in nazaj 312 00:59:39,830 --> 00:59:42,724 in res podvajanje moje work-- precej kopiranje in lepljenje. 313 00:59:42,724 --> 00:59:44,640 Pravzaprav, če sem Control kliknil ali desno kliknili, 314 00:59:44,640 --> 00:59:46,500 Lahko bi samo kopirali in prilepili. 315 00:59:46,500 --> 00:59:49,870 Kaj bi bilo bolje zgraditi za uporabo? 316 00:59:49,870 --> 00:59:51,090 Kaj je ideja od prej? 317 00:59:51,090 --> 00:59:51,990 >> Ja, tako zanka. 318 00:59:51,990 --> 00:59:54,580 In v resnici, če bi si ogledal, bomo morda našli točno to. 319 00:59:54,580 --> 00:59:57,730 Naj gre za dogodke oziroma nadzor. 320 00:59:57,730 --> 00:59:59,650 Torej repeat-- ne vem želijo, da bi bilo 10-krat. 321 00:59:59,650 --> 01:00:01,370 To se dogaja, da bi dobili nadležno hitro. 322 01:00:01,370 --> 01:00:03,380 Ampak bom ponovil trikrat. 323 01:00:03,380 --> 01:00:06,355 Naj grem nazaj na zvok in predvajati zvok, dokler je to storjeno. 324 01:00:06,355 --> 01:00:08,480 Naj grem nazaj na nadzor in počakaj sekundo. 325 01:00:08,480 --> 01:00:10,271 In obvestilo, boste morda mislim, da ne ustreza, 326 01:00:10,271 --> 01:00:13,520 ampak spet, če magnetno jo pustite snap v mestu, bo rasel izpolniti. 327 01:00:13,520 --> 01:00:14,971 Kako se igrajo sedaj? 328 01:00:14,971 --> 01:00:18,500 >> [MEOWING] 329 01:00:18,500 --> 01:00:19,000 V REDU. 330 01:00:19,000 --> 01:00:19,660 Lepo. 331 01:00:19,660 --> 01:00:22,540 In to je tisto, kar bi lahko imenovali program, ki je prav tako pravilna. 332 01:00:22,540 --> 01:00:27,590 To meowed trikrat dokaj seveda, vendar je bolje oblikovan. 333 01:00:27,590 --> 01:00:29,580 Jaz sem z uporabo manj redundance. 334 01:00:29,580 --> 01:00:30,970 Nisem kopiraj in prilepi ničesar. 335 01:00:30,970 --> 01:00:32,470 Pravkar sem uporabil boljšo idejo. 336 01:00:32,470 --> 01:00:35,340 >> Zdaj, to še ni vse, zanimivo z Scratch ne delaš 337 01:00:35,340 --> 01:00:35,930 karkoli. 338 01:00:35,930 --> 01:00:37,388 Torej naredimo nekaj drugega. 339 01:00:37,388 --> 01:00:38,670 Naredimo nekaj za vedno. 340 01:00:38,670 --> 01:00:39,420 In veste kaj? 341 01:00:39,420 --> 01:00:40,470 Predlog se zdi zanimivo. 342 01:00:40,470 --> 01:00:45,760 Pa si ga premakniti 10 koraki in hit igro sedaj. 343 01:00:45,760 --> 01:00:46,570 >> V REDU. 344 01:00:46,570 --> 01:00:49,300 No, bomo lahko nekako upora ga nazaj, in je še vedno 345 01:00:49,300 --> 01:00:51,250 prikazovati, ker je to počne vedno. 346 01:00:51,250 --> 01:00:53,150 Torej zanka počne kaj pa je rekel, da ne, 347 01:00:53,150 --> 01:00:54,650 ampak to še ni vse, da je zanimivo. 348 01:00:54,650 --> 01:00:55,310 Naredimo to. 349 01:00:55,310 --> 01:00:59,870 Naj dodam krmilni blok, in enega od teh pogojev prvič. 350 01:00:59,870 --> 01:01:03,119 >> Tako se dogaja, da se premaknete 10 steps-- 10 pik, 10 pik na screen-- 351 01:01:03,119 --> 01:01:04,660 potem se bo vprašati to vprašanje. 352 01:01:04,660 --> 01:01:09,340 Če je nekaj res, naredite nekaj v tem bloku. 353 01:01:09,340 --> 01:01:13,060 Tako se izkaže, zaznavanje ima celoto kup Boolean expressions-- 354 01:01:13,060 --> 01:01:16,580 vprašanja o ja no, ali res false form-- mi to narediti. 355 01:01:16,580 --> 01:01:19,260 >> Če touching-- in potem je tukaj še ta mali spustnem meniju. 356 01:01:19,260 --> 01:01:20,410 Lahko ga parameterize. 357 01:01:20,410 --> 01:01:23,010 Če se dotaknete edge-- dovolimo kaj takega. 358 01:01:23,010 --> 01:01:27,310 Torej, če se dotaknete edge-- Naj gre nazaj v gibanju. 359 01:01:27,310 --> 01:01:32,281 In zakaj ne bi samo obrnil za 180 stopinj? 360 01:01:32,281 --> 01:01:32,780 V redu. 361 01:01:32,780 --> 01:01:35,070 Torej vedno, premakniti 10 korakov. 362 01:01:35,070 --> 01:01:37,670 Če se dotaknete rob, zavrtite za 180 stopinj. 363 01:01:37,670 --> 01:01:39,720 In to še ni konec programa ker si je z večno blokirati, 364 01:01:39,720 --> 01:01:42,053 tako se dogaja, da gredo spet in znova in znova in znova. 365 01:01:42,053 --> 01:01:43,980 Poglejmo, kaj se zgodi. 366 01:01:43,980 --> 01:01:44,785 V REDU. 367 01:01:44,785 --> 01:01:48,270 Malo buggy, ampak nekako kul. 368 01:01:48,270 --> 01:01:51,710 >> In lahko dodamo, da je to nekaj neumnostmi da niso vsi, ki razumsko 369 01:01:51,710 --> 01:01:52,270 Zanimivo. 370 01:01:52,270 --> 01:01:57,210 Ampak, če smo zadeli ta mali Mikrofon button-- ouch. 371 01:01:57,210 --> 01:01:58,480 Naj čiščenje tole. 372 01:01:58,480 --> 01:02:01,540 Naj okrepiti, da je to pa bi rekel na TV. 373 01:02:01,540 --> 01:02:05,400 Očistiti, Save in Zdaj gredo do skripte. 374 01:02:05,400 --> 01:02:07,500 >> In zdaj, naj gre za zvok. 375 01:02:07,500 --> 01:02:09,002 Naj navedem to ime. 376 01:02:09,002 --> 01:02:12,440 Poklical bom to Au. 377 01:02:12,440 --> 01:02:13,840 In zdaj igrajo dobro Au. 378 01:02:13,840 --> 01:02:16,520 Opazite, da se pojavi v malo spustnem meniju. 379 01:02:16,520 --> 01:02:17,612 Pa poglejmo. 380 01:02:17,612 --> 01:02:20,444 >> [AUČ] 381 01:02:20,444 --> 01:02:24,377 >> [Smeh] 382 01:02:24,377 --> 01:02:25,835 Vendar pa lahko spremenimo T A na letenje. 383 01:02:25,835 --> 01:02:28,106 Mi lahko dvakrat nadležno. 384 01:02:28,106 --> 01:02:31,760 >> [AUČ] 385 01:02:31,760 --> 01:02:35,332 >> Ali pa, če mi bo uspelo, kot 1000 korakov na time-- 386 01:02:35,332 --> 01:02:39,900 387 01:02:39,900 --> 01:02:40,670 >> V REDU. 388 01:02:40,670 --> 01:02:42,295 Torej bomo pusti pri miru, da je eden. 389 01:02:42,295 --> 01:02:45,290 Torej še enkrat, in sicer blocks-- I začela z nekaj super enostaven, 390 01:02:45,290 --> 01:02:47,930 in potem sem dodal funkcijo, dodal funkcijo, dodali funkcijo. 391 01:02:47,930 --> 01:02:50,721 In mi ni treba več skrbeti kako prvo od teh funkcij 392 01:02:50,721 --> 01:02:53,690 je bil izveden, ko sem še naprej na plast stvari na vrhu. 393 01:02:53,690 --> 01:02:55,430 Torej, v resnici, mi naredite nekaj drugega tukaj. 394 01:02:55,430 --> 01:03:00,580 Naj gredo naprej in odpreti datoteko, ki Prinesel sem vnaprej, ki se imenuje ovce. 395 01:03:00,580 --> 01:03:03,970 >> Tako da ima nekoliko drugačen znak, ki izgleda takole. 396 01:03:03,970 --> 01:03:07,370 In da vidim, če ne morem nekaj narediti s pomočjo števca 397 01:03:07,370 --> 01:03:09,310 v tem case-- tako imenovano spremenljivko. 398 01:03:09,310 --> 01:03:15,540 Bom, da gredo naprej in pod Events-- kaj mi kliknili zelena zastava. 399 01:03:15,540 --> 01:03:19,030 Potem pa me, da podatki, ki vem s samo igranje okrog prej, 400 01:03:19,030 --> 01:03:20,214 je, če so spremenljivke. 401 01:03:20,214 --> 01:03:21,880 In bom, da gredo naprej in povlecite to. 402 01:03:21,880 --> 01:03:25,144 >> Tako spremenljivka imenuje števec, in Bom za inicializacijo nič. 403 01:03:25,144 --> 01:03:27,560 Lahko ga pokličete anything-- x ali y ali z-- vendar pri načrtovanju, 404 01:03:27,560 --> 01:03:30,410 kliče kaj je z pomensko uporaben način, kot števec, 405 01:03:30,410 --> 01:03:34,540 ki opisuje, kaj je to, da je veliko lažje brati svojo kodo kasneje. 406 01:03:34,540 --> 01:03:37,460 Naj gredo naprej in se vedno blokira tukaj. 407 01:03:37,460 --> 01:03:41,289 In mi gre na videz stran in narediti Say blok. 408 01:03:41,289 --> 01:03:44,330 Toda kaj je kul spremenljivk I ne bi bilo treba samo tip v nekaj 409 01:03:44,330 --> 01:03:47,850 kot zdravo svet, ki smo jih že storiti, da lahko namesto tega iti podatkov 410 01:03:47,850 --> 01:03:50,690 in povlecite moje spremenljivke, in celo čeprav se oblika ne povsem 411 01:03:50,690 --> 01:03:53,000 videti, kot bi moralo fit, se bo hkrati izpolniti. 412 01:03:53,000 --> 01:03:58,396 In bom rekel, števec za eno second-- spoiler-- se dogaja, da računajo. 413 01:03:58,396 --> 01:04:00,380 Ga bomo rekli za eno sekundo. 414 01:04:00,380 --> 01:04:02,840 Potem bom šel in imajo ga čakati eno sekundo, 415 01:04:02,840 --> 01:04:04,650 tako da ne šteje prehitro. 416 01:04:04,650 --> 01:04:08,430 In potem končno, spremeni števec s one-- z drugimi besedami, 417 01:04:08,430 --> 01:04:13,520 prirastek števec po enega dodatno vrednost in to narediti za vedno. 418 01:04:13,520 --> 01:04:16,129 >> Torej ovce preveč, kot je programer, šteje od 0. 419 01:04:16,129 --> 01:04:20,350 420 01:04:20,350 --> 01:04:23,740 In če bomo čakali dovolj dolgo, on bo to naredil za vedno. 421 01:04:23,740 --> 01:04:27,740 Ampak to ni ravno res, ker v resnici, saj bomo odkrili v enem tednu 422 01:04:27,740 --> 01:04:31,871 cela števila in računalniki bolj na splošno, tehnično imajo le finite-- dobro, 423 01:04:31,871 --> 01:04:33,829 namesto računalnikov, ko predstavljajo cela števila, 424 01:04:33,829 --> 01:04:35,670 le končno število bitov. 425 01:04:35,670 --> 01:04:37,860 Te žarnice tam lahko štejejo le tako visoka 426 01:04:37,860 --> 01:04:39,239 preden ste iz žarnic. 427 01:04:39,239 --> 01:04:41,590 In računalnik preveč, ima le toliko pomnilnika, 428 01:04:41,590 --> 01:04:44,640 ima le toliko tranzistorjev, tako da lahko računajo tako visoka samo. 429 01:04:44,640 --> 01:04:47,409 >> Tako se izkaže, da ovce, Mislim, da lahko računam na 2 milijardi 430 01:04:47,409 --> 01:04:48,409 ali nekaj precej velik. 431 01:04:48,409 --> 01:04:50,325 Da nas ne bo počakajte, da se to zgodi. 432 01:04:50,325 --> 01:04:54,850 Ampak na koncu bo nekaj bug zgodilo da imajo lahko nekaj zelo resničnega sveta 433 01:04:54,850 --> 01:04:55,970 posledice. 434 01:04:55,970 --> 01:04:58,861 Toda po ovac, ki samo uvaja spremenljivko. 435 01:04:58,861 --> 01:05:01,110 Gremo naprej in odprla nekaj, kar je vnaprej 436 01:05:01,110 --> 01:05:07,430 tukaj se imenuje Pet Cat-- Pet Cat tukaj. 437 01:05:07,430 --> 01:05:10,420 In opazil sem, da je nekaj bloki, ko pa zelena zastava 438 01:05:10,420 --> 01:05:12,474 kliknili, vedno počne naslednje. 439 01:05:12,474 --> 01:05:15,265 Če dotika z miško pointer-- tako da se kazalec na zaslonu, 440 01:05:15,265 --> 01:05:18,529 arrow-- predvajanje zvoka mijav in počakajte dve sekundi. 441 01:05:18,529 --> 01:05:19,570 In ravno to narediti za vedno. 442 01:05:19,570 --> 01:05:22,619 Samo nenehno počakajte da vidim, če je pointer-- 443 01:05:22,619 --> 01:05:24,710 če je mačka dotika kazalec. 444 01:05:24,710 --> 01:05:26,060 >> Zato sem udaril igro. 445 01:05:26,060 --> 01:05:26,920 Nič ne dogaja. 446 01:05:26,920 --> 01:05:28,980 Ampak kot sem premakniti kazalec nad mačka, 447 01:05:28,980 --> 01:05:31,960 >> [MEOWING] 448 01:05:31,960 --> 01:05:34,750 >> In če sem jo odmakne, ne ljubkovanje mačko več. 449 01:05:34,750 --> 01:05:38,090 Torej, nekateri pogojno logika ugnezden znotraj zanke. 450 01:05:38,090 --> 01:05:43,070 Kaj pa ta primer, namerno imenovano Ne Pet Cat? 451 01:05:43,070 --> 01:05:45,253 Kaj se bo to naredil? 452 01:05:45,253 --> 01:05:47,880 >> [MEOWING] 453 01:05:47,880 --> 01:05:50,215 >> Zakaj bi ne poboža mačka? 454 01:05:50,215 --> 01:05:59,440 >> [MEOWING] 455 01:05:59,440 --> 01:06:00,699 >> V REDU. 456 01:06:00,699 --> 01:06:03,880 Torej, to je primer if drugega. 457 01:06:03,880 --> 01:06:06,482 To je odločitev, točka in zato, ker je sedel v zanki, 458 01:06:06,482 --> 01:06:07,690 oni so tako dobili preveriti. 459 01:06:07,690 --> 01:06:08,280 Je to res? 460 01:06:08,280 --> 01:06:08,760 Je to res? 461 01:06:08,760 --> 01:06:09,250 Je to res? 462 01:06:09,250 --> 01:06:09,791 Je to res? 463 01:06:09,791 --> 01:06:11,880 In na koncu, eden izmed tistih, ki se dogaja, da pride 464 01:06:11,880 --> 01:06:16,480 in tako slišite bodisi mijav ali Šumenje lev v tej zadevi. 465 01:06:16,480 --> 01:06:21,400 >> No, pa naredimo malo bolj fancy eno da sem vnaprej too-- niti. 466 01:06:21,400 --> 01:06:25,210 Tako da nit je samo eden stvar, ki lahko računalnik storiti. 467 01:06:25,210 --> 01:06:29,349 Torej, multi-navojem program je program, da lahko naredite več stvari hkrati. 468 01:06:29,349 --> 01:06:31,140 In vsi ti primeri Doslej so imeli 469 01:06:31,140 --> 01:06:35,980 samo en scenarij, tako da speak-- en program, kot je ta tukaj. 470 01:06:35,980 --> 01:06:38,810 Ampak obvestilo, ta program je dve sprites, dva znaka. 471 01:06:38,810 --> 01:06:40,020 Eden od njih je ptica. 472 01:06:40,020 --> 01:06:40,870 Eden od njih je mačka. 473 01:06:40,870 --> 01:06:45,080 >> In opazil, ko kliknem na njih navzdol levo, vsaka ima svoje skripte 474 01:06:45,080 --> 01:06:47,120 ali programov, povezanih z njimi. 475 01:06:47,120 --> 01:06:49,420 In oba tistih programi, obvestila, začetek 476 01:06:49,420 --> 01:06:52,600 s ko zeleno clicked-- zastave oglejmo v cat-- 477 01:06:52,600 --> 01:06:54,030 ko je zelena zastava kliknili. 478 01:06:54,030 --> 01:06:58,220 In tako v resnici, ko sem udaril igra zdaj, Dve stvari se bo zgodilo naenkrat. 479 01:06:58,220 --> 01:07:01,750 Mačka in ptič sta dogaja, da delujejo hkrati 480 01:07:01,750 --> 01:07:03,815 ustvariti ta učinek. 481 01:07:03,815 --> 01:07:05,440 In si lahko predstavljate, kaj se dogaja. 482 01:07:05,440 --> 01:07:08,340 Tam je zanka in ptič in mačka sta v zanko. 483 01:07:08,340 --> 01:07:11,270 Ptica je samo odbijal kot Sem bil prej, ko sem rekel av. 484 01:07:11,270 --> 01:07:13,040 Toda mačka ima očitno prednost. 485 01:07:13,040 --> 01:07:16,040 Še en blok zaznavanje ki kaže mačka namerno 486 01:07:16,040 --> 01:07:19,836 ptici v tem primeru tukaj. 487 01:07:19,836 --> 01:07:22,960 Tako smo lahko draži narazen, ki ga je videti preko teh blokov, kaj se dogaja. 488 01:07:22,960 --> 01:07:25,460 Toda ključna sestavina tukaj je ena. 489 01:07:25,460 --> 01:07:28,520 Ptica, tako da je ta igra ni popolnoma boring-- ali to animation-- 490 01:07:28,520 --> 01:07:30,060 začne na naključno smer. 491 01:07:30,060 --> 01:07:32,890 In računalnik je pobiral število med 90 in 180 492 01:07:32,890 --> 01:07:36,110 v bistvu tako, da je nekoliko drugačna animacija vsakič. 493 01:07:36,110 --> 01:07:39,480 >> In potem opazil tukaj, če mačka se dotika ptico, potem 494 01:07:39,480 --> 01:07:42,030 igrajo leva štiri sound-- rjovenje. 495 01:07:42,030 --> 01:07:46,330 Toda medtem v ptičje palete, imamo to. 496 01:07:46,330 --> 01:07:49,229 Vedno, če ne dotika mačka, samo premikajo tri korake. 497 01:07:49,229 --> 01:07:50,770 In potem je tukaj še ena puzzle kos. 498 01:07:50,770 --> 01:07:52,030 Če ste na robu, bounce. 499 01:07:52,030 --> 01:07:54,840 Torej ptica je le nekako oskrbi svoje poslovanje, 500 01:07:54,840 --> 01:07:57,330 Samo plujejo okoli in poskakovanje, in to je res 501 01:07:57,330 --> 01:08:01,780 mačka, da je pogojno logiko ugotoviti, če se je ujela ptica. 502 01:08:01,780 --> 01:08:02,280 V redu. 503 01:08:02,280 --> 01:08:08,800 Torej, naredimo eno drugo tukaj, ta se imenuje Hi Hi Hi. 504 01:08:08,800 --> 01:08:15,100 In tale tukaj samo ne to je za vedno zanko. 505 01:08:15,100 --> 01:08:18,925 Ampak notice-- kako ustaviti To je zelo nadležno programa? 506 01:08:18,925 --> 01:08:21,600 507 01:08:21,600 --> 01:08:22,640 Hit preslednico. 508 01:08:22,640 --> 01:08:27,990 Ker, če sem to storil, leva roka program-- 509 01:08:27,990 --> 01:08:31,550 opazili, da je nenehno listening-- je ključ prostor tisk. 510 01:08:31,550 --> 01:08:34,090 Če preslednico pritisku in če je tako, kaj počne? 511 01:08:34,090 --> 01:08:35,980 To pa je zelo pogosto tehniko. 512 01:08:35,980 --> 01:08:38,590 To določa spremenljivko enaka do neke vrednosti. 513 01:08:38,590 --> 01:08:39,741 Vendar pa preklopi te vrednosti. 514 01:08:39,741 --> 01:08:41,490 [? Torej videz?] ki temelji na shape-- I 515 01:08:41,490 --> 01:08:43,160 imajo spremenljivke, ki sem napisal vnaprej imenuje 516 01:08:43,160 --> 01:08:44,770 Utišan, ki samo pravi, da ali ne. 517 01:08:44,770 --> 01:08:45,880 Je glas izklopljen ali ne? 518 01:08:45,880 --> 01:08:46,990 Pravilno ali napačno? 519 01:08:46,990 --> 01:08:51,580 In obvestilo, sem rekel this-- če izključen je nič, potem spremenite v eno, 520 01:08:51,580 --> 01:08:53,840 še nastavljen mute, da nič. 521 01:08:53,840 --> 01:08:55,540 Torej samo flip vrednosti od nič do ena. 522 01:08:55,540 --> 01:08:58,320 Lahko bi done-- spremeniti od dva do tri in tri na dva 523 01:08:58,320 --> 01:09:00,162 ali štiri do pet ali štiri na šest. 524 01:09:00,162 --> 01:09:01,870 Ampak to ni pomembno kaj številke, ki jih uporabljam, 525 01:09:01,870 --> 01:09:04,090 tako dolgo, kot sem obdržati to spremembo nasprotno. 526 01:09:04,090 --> 01:09:07,290 >> In kar koli programer bi samo izbrati nič in one-- lažni in pravi, 527 01:09:07,290 --> 01:09:09,510 off in on--, da predstavlja to. 528 01:09:09,510 --> 01:09:10,930 In to je še vedno teče. 529 01:09:10,930 --> 01:09:12,190 Če bi še enkrat udaril preslednico 530 01:09:12,190 --> 01:09:13,590 >> [SEAL ZVOKI] 531 01:09:13,590 --> 01:09:15,440 >> Program še vedno teče. 532 01:09:15,440 --> 01:09:18,400 Zato, ker je ta drugi scenarij ki pravi, vedno naredite naslednje. 533 01:09:18,400 --> 01:09:21,390 534 01:09:21,390 --> 01:09:24,770 Če je izključen spremenljivka enaka zero-- tako da če ni izklopljen 535 01:09:24,770 --> 01:09:29,609 je logic-- če je false ali ne, potem predvajati zvok, 536 01:09:29,609 --> 01:09:30,650 ker si ni izklopljen. 537 01:09:30,650 --> 01:09:33,358 Moral bi igrati zvok in nato mislim, hi hi hi, za dve sekundi 538 01:09:33,358 --> 01:09:35,790 in potem čakati, in to znova in znova in znova. 539 01:09:35,790 --> 01:09:40,760 >> In to na ta način ne bomo imeli pot ljudje to-- za programe za interakcijo. 540 01:09:40,760 --> 01:09:43,120 In ne bi bilo treba se kot datum kot drugi. 541 01:09:43,120 --> 01:09:46,280 Dejstvo je, pikal around-- no pun intended-- 542 01:09:46,280 --> 01:09:49,250 nekdo porabil ogromno čas na internetu izvajanju 543 01:09:49,250 --> 01:09:51,580 PokemonGo v Scratch. 544 01:09:51,580 --> 01:09:55,440 Je tudi vas geolocates v Cambridge ali Allston tukaj. 545 01:09:55,440 --> 01:10:03,120 Torej, če želite videti tudi tisto, kar ljudje lahko naredimo je this-- zelo fancy meni. 546 01:10:03,120 --> 01:10:04,780 Kliknite tukaj. 547 01:10:04,780 --> 01:10:07,430 >> To me je s svojimi puščicami zdaj. 548 01:10:07,430 --> 01:10:09,446 Bom šel po tem. 549 01:10:09,446 --> 01:10:09,946 Kliknite. 550 01:10:09,946 --> 01:10:12,949 551 01:10:12,949 --> 01:10:14,240 In zdaj kliknete PokeBall. 552 01:10:14,240 --> 01:10:17,130 553 01:10:17,130 --> 01:10:20,260 Mislim, mislim, da si naj kliknite PokeBall. 554 01:10:20,260 --> 01:10:20,760 V redu. 555 01:10:20,760 --> 01:10:22,680 Zato sem to storil. 556 01:10:22,680 --> 01:10:23,950 Lahko grem tja. 557 01:10:23,950 --> 01:10:27,790 In ta oseba izvaja nekaj več Pokeballs več here-- treh Pokeballs. 558 01:10:27,790 --> 01:10:29,950 >> Bomo objavili povezavo do tega na spletu, tako da lahko igrajo. 559 01:10:29,950 --> 01:10:32,364 Ampak obvestilo pa je samo nekaj osnovnih gradnikov. 560 01:10:32,364 --> 01:10:33,780 To izgleda veliko Ljubitelj, in je. 561 01:10:33,780 --> 01:10:35,905 To je impresivno in več kot bi običajno 562 01:10:35,905 --> 01:10:37,740 pričakujejo, vsekakor za problem nastaviti nič. 563 01:10:37,740 --> 01:10:40,809 Nimam pojma, kako dolgo ta oseba preživela na spletu. 564 01:10:40,809 --> 01:10:41,850 Ampak to je vse samo zanka. 565 01:10:41,850 --> 01:10:43,180 Tam je dobra igra. 566 01:10:43,180 --> 01:10:44,850 Obstaja nekakšna zanke posluša, ali sem 567 01:10:44,850 --> 01:10:47,558 hitting puščico navzgor ali navzdol puščico ali levo in desno, 568 01:10:47,558 --> 01:10:49,834 in potem, če je temu tako, je to premikanje je nekaj število slikovnih pik. 569 01:10:49,834 --> 01:10:51,750 In potem, če sem kliknite na en Sprite, tam je 570 01:10:51,750 --> 01:10:53,390 neke vrste, če je pogoj tam. 571 01:10:53,390 --> 01:10:54,806 Ja, to je že preveč intenzivno. 572 01:10:54,806 --> 01:10:56,100 Bomo ustavili. 573 01:10:56,100 --> 01:10:57,750 To je vse tiste osnovne gradnike. 574 01:10:57,750 --> 01:11:01,530 Obstaja nobena druga druge sestavine od tistih, ki smo si ogledali že. 575 01:11:01,530 --> 01:11:04,670 >> In vendar sem, naj stori eno končno niz primerov 576 01:11:04,670 --> 01:11:06,960 da barve sliko preveč o tem, kaj lahko storite tukaj. 577 01:11:06,960 --> 01:11:10,481 Tukaj je zelo preprost program, ki Samo ne this-- kašelj, kašelj, kašelj. 578 01:11:10,481 --> 01:11:12,480 In temelji le na tisto, kar smo pogledal tako daleč, 579 01:11:12,480 --> 01:11:14,570 kjer je očitna priložnost za izboljšanje. 580 01:11:14,570 --> 01:11:15,570 Ta program je pravilna. 581 01:11:15,570 --> 01:11:17,980 To kašelj trikrat, ki je tisto, kar sem nameraval. 582 01:11:17,980 --> 01:11:19,650 Ampak to je slabo izvajala. 583 01:11:19,650 --> 01:11:20,600 To je slabo zasnovan. 584 01:11:20,600 --> 01:11:22,000 Zakaj? 585 01:11:22,000 --> 01:11:22,500 Ja. 586 01:11:22,500 --> 01:11:23,230 To ni zanka. 587 01:11:23,230 --> 01:11:24,610 In to ni toliko da to ni zanke, 588 01:11:24,610 --> 01:11:26,400 to je, da obstaja veliko redundance. 589 01:11:26,400 --> 01:11:28,830 Tam se kopira in prilepili kodo, tako rekoč. 590 01:11:28,830 --> 01:11:31,830 In raztopino verjetno je res zanka. 591 01:11:31,830 --> 01:11:34,350 Torej, mi gremo naprej in izboljšanje na tem. 592 01:11:34,350 --> 01:11:36,250 In bom vleči te tukaj. 593 01:11:36,250 --> 01:11:39,986 Naj gredo naprej in se ponovitev blok, spremenite na tri. 594 01:11:39,986 --> 01:11:41,860 Bom mečejo nekatere od teh blokov. 595 01:11:41,860 --> 01:11:43,150 >> In boste opazili, da je precej intuitiven. 596 01:11:43,150 --> 01:11:45,691 Povlečete in spustite in stvari se pojavijo in izginejo na koncu. 597 01:11:45,691 --> 01:11:49,170 In lahko sem samo vleči to tukaj, in zdaj sem še vedno čistejši različico. 598 01:11:49,170 --> 01:11:50,730 Ampak veš kaj? 599 01:11:50,730 --> 01:11:52,940 Tam je to priložnost zdaj za abstraction-- 600 01:11:52,940 --> 01:11:56,350 začeti definirati novo besedišče da MIT ni predvidel. 601 01:11:56,350 --> 01:11:59,110 Tam je počakati in ponovite in za vedno, in če, 602 01:11:59,110 --> 01:12:02,590 ampak kaj, če želim, da uvedejo Beseda kašelj kot blok? 603 01:12:02,590 --> 01:12:06,230 Kaj pa, če hočem kos sestavljanke katerih namen v življenju je, da kašelj? 604 01:12:06,230 --> 01:12:10,720 >> No, pa si poglejmo te različice tu, kar sem naredila, kot sledi. 605 01:12:10,720 --> 01:12:13,579 Čudežno, sem ustvaril to puzzle kos tukaj, 606 01:12:13,579 --> 01:12:14,870 ki Scratch omogoča, da narediš. 607 01:12:14,870 --> 01:12:16,787 In res C in Python in JavaScript so 608 01:12:16,787 --> 01:12:18,370 dogaja, da vam omogočajo, da to storite tudi. 609 01:12:18,370 --> 01:12:21,830 Lahko ustvarite svoj meri kosov, ki jih imenujemo kar hočeš. 610 01:12:21,830 --> 01:12:24,890 V tem primeru, kašelj počuti kot razumno definicijo. 611 01:12:24,890 --> 01:12:27,880 In potem s temi kosi navzdol Tu lahko določite, kaj to pomeni. 612 01:12:27,880 --> 01:12:30,290 >> Sem vlekel in padla iz Ta paleta here-- več 613 01:12:30,290 --> 01:12:33,500 blocks-- to velika vijolična blok, kjer sem tipkal na kašelj 614 01:12:33,500 --> 01:12:35,290 kot ime svojega novega puzzle kos. 615 01:12:35,290 --> 01:12:39,920 In potem sem rekel koli uporabnik poziva novo kašelj kos sestavljanke, 616 01:12:39,920 --> 01:12:41,770 narediti besedo in čakati. 617 01:12:41,770 --> 01:12:46,160 In tako tukaj v moji ponovitve bloku, Jaz lahko samo kašelj trikrat. 618 01:12:46,160 --> 01:12:49,972 >> In trdim, zlasti če sedaj skriti to podrobnost. 619 01:12:49,972 --> 01:12:51,430 Koga briga, kako je kašelj izvaja? 620 01:12:51,430 --> 01:12:54,390 Mene zanima kot programer, da sem lahko kašelj. 621 01:12:54,390 --> 01:12:56,280 Ni mi mar, kaj pravijo, se izvaja. 622 01:12:56,280 --> 01:12:58,620 Samo me skrbi, da je mačka lahko rečem nekaj. 623 01:12:58,620 --> 01:13:02,720 Ne morem abstract stran, ki podrobno in osredotočila le na tisto, kar je na zaslonu tukaj. 624 01:13:02,720 --> 01:13:04,400 Ampak jaz lahko še to en korak. 625 01:13:04,400 --> 01:13:08,070 >> Opazimo, da je tu, imam izvaja zanka trikrat. 626 01:13:08,070 --> 01:13:11,560 Kaj pa, če namesto tega sem zgrabi to verzijo? 627 01:13:11,560 --> 01:13:14,640 In kaj če bi namesto V tej različici tukaj 628 01:13:14,640 --> 01:13:18,730 Pravkar sem spremenila svoj kos sestavljanke, da bi argument in vhod zase? 629 01:13:18,730 --> 01:13:21,100 In ta vhod lahko število kot tri. 630 01:13:21,100 --> 01:13:24,580 Torej, zdaj, če pišem program in želim mačka kašelj, 631 01:13:24,580 --> 01:13:28,270 Lahko dejansko povedati sestavljanko kos kolikokrat kašelj, 632 01:13:28,270 --> 01:13:31,990 ker je na dnu tukaj, Ljubitelj različica teh meri koščke 633 01:13:31,990 --> 01:13:34,500 upamo, me določajo, da kašelj dejansko pride 634 01:13:34,500 --> 01:13:36,951 input-- je argument, kot je ta. 635 01:13:36,951 --> 01:13:37,700 In veste kaj? 636 01:13:37,700 --> 01:13:38,890 Mogoče Zavedam se, počakaj malo. 637 01:13:38,890 --> 01:13:40,680 Kašelj je nam je isti to je bistveno 638 01:13:40,680 --> 01:13:42,120 isto idejo, kot je kihanje. 639 01:13:42,120 --> 01:13:44,040 To je samo drugačen Beseda na zaslonu. 640 01:13:44,040 --> 01:13:46,550 Ne morem abstract stran dodatno in izvajati 641 01:13:46,550 --> 01:13:48,750 to končno različico kašelj, ki je na prvi pogled 642 01:13:48,750 --> 01:13:50,660 je veliko bolj zapletena videti. 643 01:13:50,660 --> 01:13:52,140 Toda opazil, kaj sem naredil. 644 01:13:52,140 --> 01:13:55,930 Imam zdaj generalized-- genericized really-- ta kos sestavljanke 645 01:13:55,930 --> 01:13:59,900 da se imenuje reči besedo n-krat. 646 01:13:59,900 --> 01:14:04,410 >> In zdaj imam dva nova kosov sestavljanke tukaj opredeliti kašelj n-krat. 647 01:14:04,410 --> 01:14:06,790 In kaj je funkcija kašelj storiti? 648 01:14:06,790 --> 01:14:08,420 Kaj mi meri puzzle kos storiti? 649 01:14:08,420 --> 01:14:11,996 Samo pokliče recimo blok, poteka v besedi želim reči, 650 01:14:11,996 --> 01:14:13,870 poteka v številnih kolikokrat sem hotel povedati. 651 01:14:13,870 --> 01:14:18,210 Ker sedaj ne morem izvajati kihanje, ki jih preprosto rekel achoo, 652 01:14:18,210 --> 01:14:20,320 V tem primeru, nekateri večkrat. 653 01:14:20,320 --> 01:14:22,360 >> In tako sem plastenje in plastenjem. 654 01:14:22,360 --> 01:14:25,690 In spet je tukaj ključni ni kako sem jo izvajal, vendar je dejstvo, 655 01:14:25,690 --> 01:14:28,070 da če sem dobesedno premakniti ti off zaslon, 656 01:14:28,070 --> 01:14:31,280 poglej, kako enostavna, če ne Precej moj program, zdaj izgleda. 657 01:14:31,280 --> 01:14:33,930 Ker to počne, kaj ga pravi, da sem načrpane 658 01:14:33,930 --> 01:14:37,640 stran, kar je znotraj te črne škatle. se zgodi, da je vijolična škatla tukaj, 659 01:14:37,640 --> 01:14:41,430 vendar sem oviran stran, kaj je notri ker mi ni vseeno, kako to deluje. 660 01:14:41,430 --> 01:14:43,650 Pravkar sem vseeno zdaj, da deluje. 661 01:14:43,650 --> 01:14:46,375 >> In res, v problemu nastavljena nič, to je točno 662 01:14:46,375 --> 01:14:49,250 vrsta plastenjem idej boste imajo možnost, da razišče. 663 01:14:49,250 --> 01:14:53,510 To je točno to priložnost, da se uporabljajo v reševanje problemov, 664 01:14:53,510 --> 01:14:55,550 s tem, kar je verjetno poznajo okolje. 665 01:14:55,550 --> 01:14:57,890 In, ali ste jih ni programiran pred ali programirano pred, 666 01:14:57,890 --> 01:14:59,500 boste ugotovili, da obstaja nekaj malega 667 01:14:59,500 --> 01:15:00,874 v tem okolju za vsakogar. 668 01:15:00,874 --> 01:15:02,770 In s problemom nastavljen ena čez en teden, 669 01:15:02,770 --> 01:15:06,630 bomo lahko prešli na osredotočanjem na višji ravni jezika, imenovano 670 01:15:06,630 --> 01:15:09,290 C- oziroma nižji jezik nivo se imenuje 671 01:15:09,290 --> 01:15:11,347 C-, ki je še bolj močna, čeprav je 672 01:15:11,347 --> 01:15:12,930 malo bolj skrivnosten na prvi pogled. 673 01:15:12,930 --> 01:15:16,740 >> In boste spoznali na današnjem TL: DR, da ima ta problem določiti krajše 674 01:15:16,740 --> 01:15:19,880 Okno časa kot s prihodnjimi, preprosto ker bi jo našli precej 675 01:15:19,880 --> 01:15:20,420 dostopna. 676 01:15:20,420 --> 01:15:22,211 In ne skrbite, če dodate razred pozno. 677 01:15:22,211 --> 01:15:23,920 Bomo obravnavali, da kmalu. 678 01:15:23,920 --> 01:15:28,480 In preden se preloži za torto, kaj je končali z le dve minuti videz 679 01:15:28,480 --> 01:15:30,500 kaj vas čaka tukaj v CS50. 680 01:15:30,500 --> 01:15:40,950 681 01:15:40,950 --> 01:17:20,803 [GLASBA] 682 01:17:20,803 --> 01:17:21,302 V redu. 683 01:17:21,302 --> 01:17:22,690 To je to za CS50. 684 01:17:22,690 --> 01:17:23,650 Vam bomo videli kmalu. 685 01:17:23,650 --> 01:17:25,526 Torta je zdaj služil. 686 01:17:25,526 --> 01:17:28,998 687 01:17:28,998 --> 01:18:14,267 [GLASBA] 688 01:18:14,267 --> 01:18:16,350 ZVOČNIK 17: Ali ste slišali iz sobotnega, vodja? 689 01:18:16,350 --> 01:18:29,490 690 01:18:29,490 --> 01:18:31,920 ZVOČNIK 18: Morda obstaja več pod pokrovom. 691 01:18:31,920 --> 01:18:38,279