1 00:00:00,000 --> 00:00:15,059 >> [MUZIKO Ludanta] 2 00:00:15,059 --> 00:00:19,170 >> Jen CS50-- Harvard Universitato enkonduko 3 00:00:19,170 --> 00:00:22,070 al la intelekta entreprenoj de komputiko 4 00:00:22,070 --> 00:00:23,800 kaj la arto de programado. 5 00:00:23,800 --> 00:00:27,020 Kaj mia nomo estas David Malan, kaj Mi ĵus pensis ĉimatene, 6 00:00:27,020 --> 00:00:33,120 jam pasis mirinde 20 jaroj hodiaŭ kiam mi lastan sidis kie vi uloj faras nun. 7 00:00:33,120 --> 00:00:33,840 >> Estis 1996. 8 00:00:33,840 --> 00:00:37,550 Mi estis duajarulino, kaj mi prenis CS50 por la tre unua tempo. 9 00:00:37,550 --> 00:00:40,890 Kaj mi eĉ ne korpigas la nervo preni mem unuajaruljaro, 10 00:00:40,890 --> 00:00:42,500 parte pro la tempo. 11 00:00:42,500 --> 00:00:44,782 Komputiko min estis ia ŝatas, Meh. 12 00:00:44,782 --> 00:00:46,990 Mi estis iom de geek kreskanta supren, sed mi ne vere 13 00:00:46,990 --> 00:00:49,180 havas ajnan intelektan intereso en kio aspektis 14 00:00:49,180 --> 00:00:51,920 nur esti tuta aro de personoj programado tutan tempon. 15 00:00:51,920 --> 00:00:53,904 >> Kaj Mi estis timigita esti honesta. 16 00:00:53,904 --> 00:00:56,820 La kurso kaj komputiko pli ĝenerale havis kaj iagrade, 17 00:00:56,820 --> 00:01:01,230 ankoraŭ havas tiun reputacion de kampo al gardu vin, se nur ĉar tiel multaj el ni 18 00:01:01,230 --> 00:01:04,410 estas nekonataj kun ĝi kaj necerta de ĝi. 19 00:01:04,410 --> 00:01:08,480 Kaj ĝi vere estis ĝis mi shopped tiu klaso kiu duajarulina fall-- 20 00:01:08,480 --> 00:01:10,880 kaj eĉ tiam, mi nur enskribis ĉar la professor-- 21 00:01:10,880 --> 00:01:13,950 unu el miaj unuaj mentoroj, Brian Kernighan nun Princeton-- 22 00:01:13,950 --> 00:01:15,700 permesis al mi preni la klason enirpermesilo malsukcesas. 23 00:01:15,700 --> 00:01:18,020 Kaj efektive, jen kial hodiaŭ permesi kaj kuraĝigi 24 00:01:18,020 --> 00:01:20,030 studentoj preni ĉi klaso sidis / unsat. 25 00:01:20,030 --> 00:01:22,040 >> Kaj nur tiam, per la Fine de la semestro 26 00:01:22,040 --> 00:01:24,870 ĉu mi rimarkas kiel, humor, tio ne tia nekonata kampo. 27 00:01:24,870 --> 00:01:26,850 Efektive, tio estis tre sinpoviganta kampo, 28 00:01:26,850 --> 00:01:28,970 kaj pli excitingly, speciale poste, 29 00:01:28,970 --> 00:01:32,809 kiel Mi deturnis kursoj Dramaj Artoj 101 kaj latina A 30 00:01:32,809 --> 00:01:34,600 kaj tiam eventuale grad lernejo arkeologio, 31 00:01:34,600 --> 00:01:37,860 cxu mi vere komencas vidi la intersekcoj de tiu kampo, komputilo 32 00:01:37,860 --> 00:01:41,979 scienco, kun la homaroj, naturaj sciencoj, la artoj, medicino, 33 00:01:41,979 --> 00:01:42,520 kaj similaj. 34 00:01:42,520 --> 00:01:44,420 Kaj tial jen kio estas nur tiel neta pri komputiko 35 00:01:44,420 --> 00:01:46,930 finfine, kiel ni esperas ke vi see-- estas ĝia aplikebleco 36 00:01:46,930 --> 00:01:50,280 al tiuj aliaj kampoj, kaj kiel vi povas prenu el la hodiaŭa kaj la semestro la 37 00:01:50,280 --> 00:01:53,070 ideoj kaj praktikaj kapabloj reen al via propra domajno, 38 00:01:53,070 --> 00:01:58,200 kaj fakte esplori tiun komunaĵo de la liberalaj artoj kaj la sciencoj. 39 00:01:58,200 --> 00:02:02,690 >> Do 73% de vi, se lastan jaro estas ajna indiko, 40 00:02:02,690 --> 00:02:04,390 neniam prenis CS kurson antaŭe. 41 00:02:04,390 --> 00:02:06,389 Do se, kiel mi, vi sentante iomete 42 00:02:06,389 --> 00:02:09,190 timigita, aŭ malkaŝe vi ne vere certas kial vi eĉ tie. 43 00:02:09,190 --> 00:02:11,510 Eble vi simple sekvis iom amikojn super por Sanders nun. 44 00:02:11,510 --> 00:02:12,490 Tio tute bone. 45 00:02:12,490 --> 00:02:15,059 La celo tie estas conectarse vi kaj por trankviligi vin 46 00:02:15,059 --> 00:02:17,100 ke se vi rigardas maldekstren kaj dekstren, 47 00:02:17,100 --> 00:02:21,480 vi tuj vidos samklasanoj kun kiel malmulta aŭ tiel sperto 48 00:02:21,480 --> 00:02:22,890 ke vi mem povus havi. 49 00:02:22,890 --> 00:02:25,280 Kaj efektive, ni dividos kelkaj statistikoj poste hodiaŭ 50 00:02:25,280 --> 00:02:28,120 kiel al kio la demografio de la klaso tipe aspekti. 51 00:02:28,120 --> 00:02:31,440 >> Kaj kiel aldonita reassurance-- kaj tion ni ja signifas, kiam mi transprenis la kurson 52 00:02:31,440 --> 00:02:33,252 kelkaj jaroj ago-- en la kurso Syllabus 53 00:02:33,252 --> 00:02:35,460 Estas this-- ke kio finfine aferoj en tiu kurso 54 00:02:35,460 --> 00:02:38,040 ne tiel kie vi finos relativa al via samklasanoj, 55 00:02:38,040 --> 00:02:43,110 sed kie en semajno 11, la fino de la semestro, fini relativa al vi mem 56 00:02:43,110 --> 00:02:46,280 en semajno 0, kio estas kie ni estas ĉi tie hodiaŭ. 57 00:02:46,280 --> 00:02:48,704 Kaj jen kion mi konstatis ĉiuj tiuj jaroj. 58 00:02:48,704 --> 00:02:50,620 Kaj mi scias multajn klasoj diri tion, sed ĝi estas 59 00:02:50,620 --> 00:02:52,450 precipe vera en komputiko. 60 00:02:52,450 --> 00:02:55,320 Fine de la tago, tiu kampo estas nekonata kiel ĝi estis por mi 61 00:02:55,320 --> 00:02:58,590 kaj eble estos por vi, estas vere preskaŭ solvi problemojn. 62 00:02:58,590 --> 00:03:01,324 Kaj kiel tia, ĝi havas ĉi aplikebleco akiri aliajn kampojn. 63 00:03:01,324 --> 00:03:03,490 Kaj fakte, se ni provis distili kion tio signifas, 64 00:03:03,490 --> 00:03:06,897 tio estas problemo solvanta en ĝia esenco, mi komprenas. 65 00:03:06,897 --> 00:03:09,480 Ekzistas input-- tiom ajn ĝi estas ke vi provas solvi. 66 00:03:09,480 --> 00:03:12,264 Ekzistas eliro, kiuj estas espereble la solvo al tiu problemo. 67 00:03:12,264 --> 00:03:14,180 Kaj tiam, kiel ni farus diri en komputiko, 68 00:03:14,180 --> 00:03:17,310 ekzistas tiu nigra skatolo en la mezo ke vi ne nepre 69 00:03:17,310 --> 00:03:19,450 devas zorgi pri kiel ĝi funkcias. 70 00:03:19,450 --> 00:03:22,230 Vi mem eventuale povus apliki kio estas en tiu skatolo. 71 00:03:22,230 --> 00:03:25,194 Sed por la hodiaŭa celoj kaj pli ĝenerale en vivo, oni nur zorgas pri 72 00:03:25,194 --> 00:03:26,610 estas ke tiuj problemoj akiri solvita. 73 00:03:26,610 --> 00:03:29,340 >> Kaj kio ĉi tiu kurso estas finfine pri esploras 74 00:03:29,340 --> 00:03:31,700 la komunaĵo de tiuj eniroj kaj eliroj, 75 00:03:31,700 --> 00:03:34,410 kaj tiuj tielnomitaj algoritmoj, kiel ni baldaŭ vidos, 76 00:03:34,410 --> 00:03:37,450 kiu implementan kio estas sub tie, la kapuĉo. 77 00:03:37,450 --> 00:03:40,487 Sed tiuj enigoj kaj tiuj outputs-- kion tio vere signifas? 78 00:03:40,487 --> 00:03:43,570 Nu, fine de la tago, ni bezonas iel reprezenti informojn. 79 00:03:43,570 --> 00:03:46,660 Tio estas aparte vera en komputilo, kiu kiel kaprico kaj kompleksa kiel 80 00:03:46,660 --> 00:03:48,160 povus ŝajni, estas bela muta aparato. 81 00:03:48,160 --> 00:03:52,240 Ĝi prenas electricity-- ĉu el kablo aŭ kuirilaro kiel input-- 82 00:03:52,240 --> 00:03:55,820 kaj tiam ĝi produktas iun preprogramed respondojn sur la ekrano. 83 00:03:55,820 --> 00:03:57,970 >> Sed kiel ni preni de komenci fini tie? 84 00:03:57,970 --> 00:03:59,470 Nu, kio estas problemo por esti solvita? 85 00:03:59,470 --> 00:04:01,050 Nu, eble ni povus, je la komenco de ĉiu semestro, 86 00:04:01,050 --> 00:04:02,841 provi preni asistencia en ĉambro kiel ĉi. 87 00:04:02,841 --> 00:04:04,750 Kaj mi faros kiel unu, du, tri. 88 00:04:04,750 --> 00:04:07,060 Aŭ eble, se mi tion faris al ia konservi trako 89 00:04:07,060 --> 00:04:10,560 de mia volo konservi trako de things-- Mi povis rapide kuri el fingroj. 90 00:04:10,560 --> 00:04:14,650 Do mi nur povus fari hash marks-- unu persono, du, tri, kvar, kvin, ses, 91 00:04:14,650 --> 00:04:15,431 sep, ok. 92 00:04:15,431 --> 00:04:17,930 Kaj ni ĉiuj havas probable farante tiun, ĉu en via mano 93 00:04:17,930 --> 00:04:19,680 aŭ sur peco de papero. 94 00:04:19,680 --> 00:04:22,140 Kaj tio estas fakte nur iu nomita unuloka notation-- 95 00:04:22,140 --> 00:04:26,130 kie se vi nur havas unu litero en via alfabeto, aŭ hash 96 00:04:26,130 --> 00:04:29,440 markon en ĉi tiu kazo, por ĉiu enigo vi volas rakonti, 97 00:04:29,440 --> 00:04:32,330 vi devas meti malsupren unu el tiuj leterojn unu el tiuj markoj. 98 00:04:32,330 --> 00:04:32,510 >> Bone. 99 00:04:32,510 --> 00:04:34,790 Jen ĉio bone kaj bonan kaj Ne ĉiuj kiuj komplika. 100 00:04:34,790 --> 00:04:37,800 Sed komputiloj ne ĉiuj ke multe pli komplikita. 101 00:04:37,800 --> 00:04:40,770 Efektive, la plimulto el vi verŝajne scias eĉ se vi havas ne vere 102 00:04:40,770 --> 00:04:44,080 konsiderita kion tio signifas, ke komputiloj nur kompreni nuloj 103 00:04:44,080 --> 00:04:45,870 kaj ones-- la tn binara sistemo. 104 00:04:45,870 --> 00:04:49,390 Ni homoj, kontraste, estas tiel multe pli kompleksa mezuro 105 00:04:49,390 --> 00:04:51,770 kiel ni komprenas nuloj tra nines. 106 00:04:51,770 --> 00:04:55,740 >> Sed eĉ se duuma estas, unue rigardo, ne ĉiuj kiuj konas, 107 00:04:55,740 --> 00:05:00,330 rezultas ĝi estas nur kiel la sistemoj kaj la ideoj kiujn ni jam scias. 108 00:05:00,330 --> 00:05:02,420 Do ekzemple, konsideri ĉi. 109 00:05:02,420 --> 00:05:03,896 Tiu estas nur vico de simboloj. 110 00:05:03,896 --> 00:05:05,770 Kaj ĉiu el vi, kiam rigardante ĝin, verŝajne 111 00:05:05,770 --> 00:05:09,380 pensas 123-- nenio vere interesa tie. 112 00:05:09,380 --> 00:05:11,940 Sed kial tiu nombro, 123? 113 00:05:11,940 --> 00:05:14,440 Tiuj estas nur hieroglifoj sur la screen-- nur ŝablonoj 114 00:05:14,440 --> 00:05:16,387 ke iu povus esti tiritaj aŭ tajpita. 115 00:05:16,387 --> 00:05:18,970 Sed se vi estas kiel mi, vi verŝajne memoras de grado lernejo 116 00:05:18,970 --> 00:05:21,610 ke ekzistas ia kolumnoj aŭ lokoj tie. 117 00:05:21,610 --> 00:05:25,340 Ekzistas unu loko kaj la dek loko kaj la cent loko. 118 00:05:25,340 --> 00:05:29,820 Kaj la kialo ke estas 123 kaj ne nur mastro de tri simboloj 119 00:05:29,820 --> 00:05:33,090 estas ĉar, kompreneble, se ni havas unu en la centoj loko, 120 00:05:33,090 --> 00:05:36,610 vi faras la math de 100 fojojn unu, kaj tiam du en la dek loko. 121 00:05:36,610 --> 00:05:41,390 Do jen 10 fojojn 2, kaj tiam tri en la onies loko kaj tio estas 1 fojojn 3. 122 00:05:41,390 --> 00:05:45,670 Kaj kiam vi aldonas ĉiu el tiuj, pri Kompreneble, vi ricevas 100 plus 20 plus 3. 123 00:05:45,670 --> 00:05:48,220 >> Do ni komencis kun nur ŝablono de symbols-- an aboco 124 00:05:48,220 --> 00:05:51,670 sed tiam ni mapita signifon sur ĝin pere de tiuj kolumnoj. 125 00:05:51,670 --> 00:05:54,450 Nu, Ĝi rezultas ke komputiloj estas vere ne 126 00:05:54,450 --> 00:05:56,300 tiom malsimila al vi kaj mi. 127 00:05:56,300 --> 00:06:01,840 Sed anstataŭ uzi potencoj de 10, tiel diri 1, 10, 100, 1000, 128 00:06:01,840 --> 00:06:04,330 10.000 loko kaj tiel forth-- ili efektive 129 00:06:04,330 --> 00:06:08,930 nur uzu potencoj de 2-- do unu, 2, 4, kaj poste 130 00:06:08,930 --> 00:06:12,810 se ni metas pli ciferoj, 8, 16, 32, 64, 128, kaj tiel plu. 131 00:06:12,810 --> 00:06:16,050 Do jen kiel komputilo reprezentus la nombron 0, 132 00:06:16,050 --> 00:06:17,300 nur ŝatas ni homoj. 133 00:06:17,300 --> 00:06:21,660 >> 0, 0, 0-- kaj vi versxajne povas diveni kio mastro de nuloj kaj, 134 00:06:21,660 --> 00:06:24,610 se komputilo povas nur paroli 0 aŭ 1-- kio 135 00:06:24,610 --> 00:06:29,110 mastro tuj reprezentos la nombro ni homoj scias kiel 1? 136 00:06:29,110 --> 00:06:30,590 Yeah-- 0, 0, 1. 137 00:06:30,590 --> 00:06:31,090 Bone. 138 00:06:31,090 --> 00:06:35,900 Do 0, 0, 1 estas kiel ni reprezentos 1, do vi eble klinis tiam 139 00:06:35,900 --> 00:06:39,510 reprezenti la numero 2, se vi havas la kvar loko kaj la du loko 140 00:06:39,510 --> 00:06:48,290 kiel tiu loko, vi povus diri, nu, se ni havis 1 en onies loko, 141 00:06:48,290 --> 00:06:50,430 kaj nun ni volas kalkuli ĝis 2, vi povus 142 00:06:50,430 --> 00:06:53,310 tion kaj foriri esti nulo. 143 00:06:53,310 --> 00:06:56,397 Sed kompreneble tio ne kiel la dekuma sistemo funkcias ĉu. 144 00:06:56,397 --> 00:06:58,230 Se vi metis cifero en ambaŭ de tiuj kolumnoj, 145 00:06:58,230 --> 00:06:59,563 Vi devas fari la aritmetiko. 146 00:06:59,563 --> 00:07:01,930 Do kiu nombro faris mi hazarde ĝuste reprezentas? 147 00:07:01,930 --> 00:07:06,710 >> Do ĝi estas 3, ĉar 2 fojoj 1 plus 1 fojojn 1 kompreneble donas al ni tri. 148 00:07:06,710 --> 00:07:08,340 Do tiu estus du. 149 00:07:08,340 --> 00:07:12,730 La iom ia klakas, por tiel diri, kiel 0 iĝas unu, multe kiel 9 rolojn trans 150 00:07:12,730 --> 00:07:14,840 kaj iĝas 0 kiam vi portas la 1. 151 00:07:14,840 --> 00:07:16,510 Ĉi tiam estus tri kompreneble. 152 00:07:16,510 --> 00:07:20,170 Four-- alia interesa okazas, kie tiuj ruliĝi super 153 00:07:20,170 --> 00:07:21,750 kaj vi portos la 1, por tiel diri. 154 00:07:21,750 --> 00:07:23,320 Do tiu, kompreneble, estas 4. 155 00:07:23,320 --> 00:07:25,160 >> Sed se vi rapide antaŭen nun, kio estas la plej granda nombro irante 156 00:07:25,160 --> 00:07:26,660 esti ke komputilo povas reprezenti? 157 00:07:26,660 --> 00:07:30,420 158 00:07:30,420 --> 00:07:32,380 Do estas nur sep tiukaze, ĉu ne? 159 00:07:32,380 --> 00:07:35,570 Ĉar vi havas unu en la kvar, unu en la du, unu sur unu. 160 00:07:35,570 --> 00:07:36,900 Do jen 4 plus 2 plus 1. 161 00:07:36,900 --> 00:07:37,972 Tiel ke donas vin sep. 162 00:07:37,972 --> 00:07:39,680 Kaj fakte, ĝi estus ŝajnas unuavide 163 00:07:39,680 --> 00:07:43,750 ke komputiloj povas kalkuli ne pli alta ol tiu. 164 00:07:43,750 --> 00:07:45,210 >> Sed ĉi kompreneble ne estas vera. 165 00:07:45,210 --> 00:07:48,243 Kion ni homoj faras kiam ni volas kalkuli altaj ol kiel 999? 166 00:07:48,243 --> 00:07:51,000 167 00:07:51,000 --> 00:07:53,900 Nur porti unu kaj nur aldoni kvaran cifero maldekstren. 168 00:07:53,900 --> 00:07:55,070 Kaj tiel ja ni povis. 169 00:07:55,070 --> 00:07:57,900 Ni povus havi ok la meti kaj 16a loko, 170 00:07:57,900 --> 00:08:02,000 kaj 32 loko, 64, 128-- kaj vi povas simple observu okazas ĝis malfinio. 171 00:08:02,000 --> 00:08:04,640 Do tiuj nuloj kaj ones-- la tn duuma system-- 172 00:08:04,640 --> 00:08:10,290 estas kion komputilo sciencisto farus ĝenerale nomas iom, aŭ duumaj ciferoj. 173 00:08:10,290 --> 00:08:13,590 >> Sed nun, kiel ni preni de la koncepto aŭ la grafikaĵo de tiuj aferoj 174 00:08:13,590 --> 00:08:14,620 al fakta komputilo? 175 00:08:14,620 --> 00:08:17,170 Ni ŝajnas esti saltante paŝo tie. 176 00:08:17,170 --> 00:08:20,210 Nu, la sola enigo fine de la tago, al mia tekkomputilo tie 177 00:08:20,210 --> 00:08:22,060 Estas ĉi fluo de elektro. 178 00:08:22,060 --> 00:08:24,560 Eĉ se jam pasis longa tempo ĉar vi pensis pri 179 00:08:24,560 --> 00:08:26,580 aŭ neniam pensis pri kiel elektro funkcias, 180 00:08:26,580 --> 00:08:30,909 ekzistas elektronoj fluas en aŭ eksteren, kaj tio estas mia speco de enigado. 181 00:08:30,909 --> 00:08:34,659 >> Do se tio estas ĉio, kion ni ricevas kiel enigo tie, 182 00:08:34,659 --> 00:08:36,830 kion ni povas fari kun tiu informo? 183 00:08:36,830 --> 00:08:40,040 Nu, ni povus pensi pri nulo kiel nur foresto de elektro. 184 00:08:40,040 --> 00:08:42,540 Nenio estas flowinw, nenio estas movanta, nenio okazas. 185 00:08:42,540 --> 00:08:44,690 Tio estas nur la defaŭlta state-- nulo. 186 00:08:44,690 --> 00:08:48,200 Sed se estas elektro fluas, kial cxu ne ni nur arbitre, sed tutmonde 187 00:08:48,200 --> 00:08:50,250 konsekvence, voki ke oni. 188 00:08:50,250 --> 00:08:54,760 >> Do simple por havi la rajton, Ni havas nulo, jes potenco, 189 00:08:54,760 --> 00:08:57,520 ni havos one-- neniun potencon, jes potenco. 190 00:08:57,520 --> 00:09:01,520 Kaj en tiu maniero, uzante ion pli fizika aŭ elektronika 191 00:09:01,520 --> 00:09:05,340 Ni komencu implementar ĉi nocio ion aŭ esti unu aŭ nulo. 192 00:09:05,340 --> 00:09:07,230 Efektive, ni povis nur fari ĝin tie. 193 00:09:07,230 --> 00:09:10,590 Do jen, mi ne tri sed ok ampoloj, ĉiu el kiuj 194 00:09:10,590 --> 00:09:11,810 havas propran ŝaltilo. 195 00:09:11,810 --> 00:09:15,760 >> Kaj do se mi volis reprezenti la nombro sep tien, 196 00:09:15,760 --> 00:09:18,510 Mi povus turni sur tiuj tri ampoloj. 197 00:09:18,510 --> 00:09:21,470 Kaj efektive, ene de mia komputilo estas milionoj, 198 00:09:21,470 --> 00:09:25,650 miliardoj da aferoj kiuj estas nur pli malgranda ol tiu, nomita transistoroj, 199 00:09:25,650 --> 00:09:27,330 ŝaltiloj, ke vi simple turni sur kaj for. 200 00:09:27,330 --> 00:09:30,420 Do tiuj estas big-- relative big-- ŝaltilojn ene mia laptop-- 201 00:09:30,420 --> 00:09:32,150 Estas multaj, multaj, multaj, multaj pli ŝaltiloj. 202 00:09:32,150 --> 00:09:35,160 Sed ĉiuj ili fari estas ĝuste that-- turni io plu, turni io ekstere. 203 00:09:35,160 --> 00:09:38,076 Kaj kiel tia, komputilo povas reprezenti, kun tiuj milionoj aŭ miliardoj 204 00:09:38,076 --> 00:09:40,480 de transistoroj, sunaj kaj multaj nuloj kaj aĵoj. 205 00:09:40,480 --> 00:09:43,160 Kaj ekzistas aliaj aparataro ankoraŭ ke permesas stoki informon longtempe, 206 00:09:43,160 --> 00:09:45,243 tiel ke kiam vi tiras la plug, vi ne perdos. 207 00:09:45,243 --> 00:09:46,900 Sed tio estas rakonto por alia tago. 208 00:09:46,900 --> 00:09:51,170 >> Do kion ni povas fari kun tiuj bitoj? 209 00:09:51,170 --> 00:09:54,309 Eble ni simple preni la premo ekstere de kunulinon 210 00:09:54,309 --> 00:09:56,600 povus iu volas veni ĝis tie kaj oferu demo? 211 00:09:56,600 --> 00:09:57,516 Mi vidis tiun manon unue. 212 00:09:57,516 --> 00:09:58,709 Kiel vi nomiĝas? 213 00:09:58,709 --> 00:09:59,250 MADAY: Maday. 214 00:09:59,250 --> 00:10:00,542 DAVID Malan: Maday, venu supren. 215 00:10:00,542 --> 00:10:01,250 Mi ĝojas renkonti vin. 216 00:10:01,250 --> 00:10:02,390 MADAY: Nice to meet you. 217 00:10:02,390 --> 00:10:02,930 >> DAVID Malan: Venu ĉi maniero. 218 00:10:02,930 --> 00:10:04,182 Mi ne devas lip vin. 219 00:10:04,182 --> 00:10:04,682 Bone. 220 00:10:04,682 --> 00:10:11,090 Do jen, ni havas, notice-- unu, two-- ni redakti ke fjordon unu, du, kvar, 221 00:10:11,090 --> 00:10:13,350 ok, 16, 32, 64, 128. 222 00:10:13,350 --> 00:10:14,220 Tio estas intenca. 223 00:10:14,220 --> 00:10:17,370 Ekzistas ok bitoj here-- duuma digits-- nuloj kaj aĵoj. 224 00:10:17,370 --> 00:10:21,460 Kaj iom estas utila unuo de measure-- Ne kiel utila unuo de mezuro 225 00:10:21,460 --> 00:10:21,999 sur sin. 226 00:10:21,999 --> 00:10:24,290 Kutime vi deziras almenaŭ ok el tiuj aferoj, a.k.a. 227 00:10:24,290 --> 00:10:24,790 bajto. 228 00:10:24,790 --> 00:10:26,230 Do ni havos bajto de bitoj tie. 229 00:10:26,230 --> 00:10:31,130 >> Do se ni volas defii vin kun, ekzemple, literumas eksteren, en duuma, 230 00:10:31,130 --> 00:10:33,230 tiu valoro here-- 42. 231 00:10:33,230 --> 00:10:35,140 Volas preni ponardopiko ĉe tio? 232 00:10:35,140 --> 00:10:36,034 >> MADAY: [inaudible]. 233 00:10:36,034 --> 00:10:38,700 DAVID Malan: Yeah, simple premi la iom blanka ŝaltiloj en fronto. 234 00:10:38,700 --> 00:10:41,290 Kaj vi volas literumi el 42, kaj ĉe kroĉas 235 00:10:41,290 --> 00:10:44,061 Estas ĉi CS50 streso pilko se vi ricevas tiun. 236 00:10:44,061 --> 00:10:44,560 Bone. 237 00:10:44,560 --> 00:10:46,420 Do vi havas 32. 238 00:10:46,420 --> 00:10:48,430 Ni tuj bezonas 42. 239 00:10:48,430 --> 00:10:51,410 Do jen ok, do tio estas 40. 240 00:10:51,410 --> 00:10:54,160 Kaj excellent-- tre bele farita. 241 00:10:54,160 --> 00:10:55,186 Dankon. 242 00:10:55,186 --> 00:10:58,790 >> [Aplaŭdo] 243 00:10:58,790 --> 00:10:59,290 Bone. 244 00:10:59,290 --> 00:11:00,623 Do ni havas unu pli streso pilko. 245 00:11:00,623 --> 00:11:03,595 Ni faru ĉi denove se ni povas. 246 00:11:03,595 --> 00:11:05,368 Unu alia volontulo? 247 00:11:05,368 --> 00:11:07,970 Libera streso pilko, libera streso pilko. 248 00:11:07,970 --> 00:11:08,470 BONE. 249 00:11:08,470 --> 00:11:11,640 Super tie en la mezo, ĉu vi volas veni malsupren? 250 00:11:11,640 --> 00:11:14,100 Bone. 251 00:11:14,100 --> 00:11:15,552 Mi scias. 252 00:11:15,552 --> 00:11:16,360 Tie ni iru. 253 00:11:16,360 --> 00:11:20,818 >> Tiel la nombroj here-- venu malsupren. 254 00:11:20,818 --> 00:11:21,567 Kio estas via nomo? 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 BONE. 258 00:11:23,320 --> 00:11:24,810 Venu supren, Davey. 259 00:11:24,810 --> 00:11:25,890 Mi ĝojas renkonti vin. 260 00:11:25,890 --> 00:11:28,639 Kaj kion ni tuj havos vin spell-- se vi povus restadi tie 261 00:11:28,639 --> 00:11:32,810 por nur unu moment-- estas la numero 50. 262 00:11:32,810 --> 00:11:36,293 Sed, sed, sed sed, sed tiuj estas lernojaro lernejo magnetoj por kialo. 263 00:11:36,293 --> 00:11:39,370 264 00:11:39,370 --> 00:11:43,327 Ĵus iomete pli malfacilan, bone? 265 00:11:43,327 --> 00:11:44,160 Ekzistas ankoraŭ ok. 266 00:11:44,160 --> 00:11:46,820 267 00:11:46,820 --> 00:11:47,320 Bone. 268 00:11:47,320 --> 00:11:48,486 Do kion ni havas tie? 269 00:11:48,486 --> 00:11:51,356 Ni havas 32. 270 00:11:51,356 --> 00:11:54,344 Nice. 271 00:11:54,344 --> 00:11:58,610 32 plus 16 donas ni 48-- tiel proksima. 272 00:11:58,610 --> 00:12:00,390 Kaj mirinda. 273 00:12:00,390 --> 00:12:02,831 Gratulojn al Davey ankaŭ. 274 00:12:02,831 --> 00:12:05,720 >> [Aplaŭdo] 275 00:12:05,720 --> 00:12:06,516 >> Bone. 276 00:12:06,516 --> 00:12:09,390 Do ni povas fari ĉi tutan tagon, kaj ne akiri ĉiujn ke multe pli 277 00:12:09,390 --> 00:12:10,800 interesa kaj pli defia. 278 00:12:10,800 --> 00:12:13,250 Sed tio estas vere la point-- Tiel relative simpla 279 00:12:13,250 --> 00:12:16,930 ĝi estas, fine de la tago, kia komputilo faras stoki informon, 280 00:12:16,930 --> 00:12:21,740 stoki enigoj kaj finfine stoki aŭ reprezenti tiuj eliroj. 281 00:12:21,740 --> 00:12:23,750 Sed nombroj sole ne ĉiuj ke interesa. 282 00:12:23,750 --> 00:12:26,069 >> Do homoj, antaŭ kelkaj jaroj, decidis, vi scias kion? 283 00:12:26,069 --> 00:12:27,860 Estus agrabla se komputiloj ne nur 284 00:12:27,860 --> 00:12:31,030 kalkuliloj por aritmetiko operacioj, sed fakte povis 285 00:12:31,030 --> 00:12:35,209 fari aferojn kiel tekstoprilaborado, aŭ retpoŝto, aŭ pli modernaj enkarniĝoj 286 00:12:35,209 --> 00:12:36,500 de tiuj specoj de teknologioj. 287 00:12:36,500 --> 00:12:40,680 Kaj tiel la mondo decidis arbitre, sed universale, 288 00:12:40,680 --> 00:12:44,380 ke se vi volas konservi la ĉefurbo litero A en komputilo, vi scias kion? 289 00:12:44,380 --> 00:12:47,730 Ni simple ĉiuj konsentas enteni iu mastro de nuloj kaj ones-- 290 00:12:47,730 --> 00:12:52,422 bits-- ke finfine reprezentas la decimalan numeron 65. 291 00:12:52,422 --> 00:12:53,630 Ni simple ĉiuj konsentas pri tio. 292 00:12:53,630 --> 00:12:56,620 >> 66 reprezentus B, 67 reprezentus C, 293 00:12:56,620 --> 00:13:00,210 kaj ekzistas aroj da aliaj ŝablonoj de nuloj kaj, aŭ suba nombroj, 294 00:13:00,210 --> 00:13:02,224 kiu reprezentus aliaj leteroj ankoraŭ. 295 00:13:02,224 --> 00:13:04,390 Do se vi speco de mense absorbi tiun momenton, 296 00:13:04,390 --> 00:13:10,900 Mi intence metis supren A tra Mi, kie H 72 kaj mi estas 73. 297 00:13:10,900 --> 00:13:15,830 Se komputilo tiam, en la kunteksto de vorto prilaborado programo aŭ retmesaĝon, 298 00:13:15,830 --> 00:13:19,620 malkaŝis sub la kapuĉo havi tiuj mastroj de bits-- padrono 299 00:13:19,620 --> 00:13:22,500 de bitoj reprezentantaj 72, tiam 73, tiam 33-- 300 00:13:22,500 --> 00:13:26,640 kio povus ĉi literumi en tiu programo? 301 00:13:26,640 --> 00:13:28,150 >> Tiel hi, kaj tiam io. 302 00:13:28,150 --> 00:13:31,460 Ni ne nepre scias, sed ja 33-- ne sur la diagramo earlier-- 303 00:13:31,460 --> 00:13:33,170 Estis simple ekkrion punkto. 304 00:13:33,170 --> 00:13:38,870 Do 72 estis H, 73 estas mi, 33 okazas esti ekkrion punkto ankoraŭ. 305 00:13:38,870 --> 00:13:41,719 Sed jen ĉio bone kaj bonan, kaj fakte nuntempe, anstataŭ 306 00:13:41,719 --> 00:13:43,760 nur uzi sep aŭ ok bitoj, danke al io 307 00:13:43,760 --> 00:13:46,530 nomata Unikodo kontraste al ascii reen en la tago, 308 00:13:46,530 --> 00:13:50,010 ni efektive povas reprezenti eĉ pli interesaj karakteroj ol nur 309 00:13:50,010 --> 00:13:52,980 tiuj originalaj Angla emata literoj. 310 00:13:52,980 --> 00:13:56,030 Sed ni povas ankaŭ reprezenti eĉ neater aĵoj kiel koloroj. 311 00:13:56,030 --> 00:13:59,750 >> Se vi iam aŭdis la akronimo RGB, ruĝa, verda, blua, ke 312 00:13:59,750 --> 00:14:03,510 nur signifas ke komputilo tipe uzas tri aroj de bits-- 313 00:14:03,510 --> 00:14:06,760 iu nombro de bitoj kiuj reprezentas kelkaj pri kiom ruĝa vi volas, 314 00:14:06,760 --> 00:14:08,940 alia aro de bitoj por kiom verdaj vi volas, 315 00:14:08,940 --> 00:14:11,430 kaj alia aro nombro por kiom blua vi volas. 316 00:14:11,430 --> 00:14:14,457 Tiom grandan nombron signifas multan ruĝa, malgranda nombro signifas neniu ruĝa. 317 00:14:14,457 --> 00:14:16,290 Kaj tial tiuj estas speco de meza valoroj tie. 318 00:14:16,290 --> 00:14:20,180 >> Tial donu al mi iom ruĝa, donu al mi iom da verda, kaj donu al mi iom da bluo. 319 00:14:20,180 --> 00:14:24,260 Kaj se vi miksas tiujn tri nuancojn de koloro kune, en tiu kazo, 320 00:14:24,260 --> 00:14:26,850 vi ricevas tiun malklaraj ombro de flava aŭ bruna. 321 00:14:26,850 --> 00:14:32,330 Sed tiu padrono de ok plus ok plus eight-- do 24 bits-- 322 00:14:32,330 --> 00:14:36,550 maldekstre dekstren, estas kiel komputilo reprezentus tiu aparta koloro. 323 00:14:36,550 --> 00:14:38,090 Nun tio estas nur punkto sur ekrano. 324 00:14:38,090 --> 00:14:42,230 Se vi rigardas vere fermi je via televido via komputilo, vi vidos punktoj aŭ rastrumeroj. 325 00:14:42,230 --> 00:14:45,420 Kaj se vi havas tuta krado de rastrumeroj, horizontale kaj vertikale, 326 00:14:45,420 --> 00:14:46,630 vi havas bildojn. 327 00:14:46,630 --> 00:14:49,029 Kaj tiam se vi prenas bildon kaj tiam lavon 328 00:14:49,029 --> 00:14:52,070 montru vin alian bildon, alian bildo, alia bildo, alia bildo, 329 00:14:52,070 --> 00:14:54,760 vere rapida, vi kompreneble havas filmojn. 330 00:14:54,760 --> 00:14:56,109 >> Kaj tiel rimarkos kie ni komencis. 331 00:14:56,109 --> 00:14:57,650 Ni komencis kun tiuj nuloj kaj aĵoj. 332 00:14:57,650 --> 00:15:00,570 Ni laboris de tie al decimala nombroj, kiel ni reprezentas ilin. 333 00:15:00,570 --> 00:15:02,070 Nun ni havas literojn de la alfabeto. 334 00:15:02,070 --> 00:15:05,664 Sed en aliaj kuntekstoj atendu, ni povas uzi kelkaj pli bitoj kaj reprezenti kolorojn. 335 00:15:05,664 --> 00:15:07,830 Kiam vi havas la kapablo por reprezenti kolorojn, 336 00:15:07,830 --> 00:15:11,200 vi havas la kapablon por reprezenti fotoj kaj vigla gifs 337 00:15:11,200 --> 00:15:13,780 kaj aliaj tiaj karakteroj sur la ekrano. 338 00:15:13,780 --> 00:15:17,160 Kaj kiam vi havas tutan faskon da bildoj flugante per la homa samtempe, 339 00:15:17,160 --> 00:15:21,480 ĝi aspektas kiel filmoj, kaj tiel vi ricevas filmetoj tiel. 340 00:15:21,480 --> 00:15:23,460 >> Do uzante tiujn tre simpla primitivoj ni 341 00:15:23,460 --> 00:15:28,070 havi la maniero reprezenti finfine ĉiuj tiuj formoj de amaskomunikilaro. 342 00:15:28,070 --> 00:15:30,450 Kaj ni abstraída denove kaj denove kaj denove, ĝis ni 343 00:15:30,450 --> 00:15:33,467 preni de la plej malalta nivelo al tiu plej alta nivelo. 344 00:15:33,467 --> 00:15:35,550 Tiel ke al ni tiun ĝenerala ideo de abstracción. 345 00:15:35,550 --> 00:15:36,990 Sed ni komencis tie. 346 00:15:36,990 --> 00:15:38,790 >> Tie nun, ni eble reprezentas en komputilo 347 00:15:38,790 --> 00:15:41,920 nia enigoj kun nuloj kaj, nia eliroj en nuloj kaj, 348 00:15:41,920 --> 00:15:43,640 sed kio eliras ene la skatolo? 349 00:15:43,640 --> 00:15:46,080 Tio estas kie komputilo scienco metas interesa. 350 00:15:46,080 --> 00:15:49,770 Tio estas kie vi vere kunportos propraj mensoj porti solvi problemojn. 351 00:15:49,770 --> 00:15:52,590 Ni povas nun kondiĉas, por la resto de la semestro, jes. 352 00:15:52,590 --> 00:15:53,870 Mi scias kiel duuma verkoj. 353 00:15:53,870 --> 00:15:57,942 Mi memoras kiom Ascii aŭ Unicode-- la surĵeto al leterojn verkoj. 354 00:15:57,942 --> 00:15:59,650 Kaj ĝi certe staras rezonadi ke ni 355 00:15:59,650 --> 00:16:03,470 povus reprezenti ruĝaj kaj verdaj kaj blua kaj reprezenti plurmedia tiel. 356 00:16:03,470 --> 00:16:05,390 Sed tiu estas la interesa materialo. 357 00:16:05,390 --> 00:16:09,790 Jen kion faras iu kapablas solvi problemojn. 358 00:16:09,790 --> 00:16:11,980 >> Kaj unu tia problemo ni ŝatas fari, ja, 359 00:16:11,980 --> 00:16:15,345 prenas asistencia, aŭ farante tiun algorítmicamente. 360 00:16:15,345 --> 00:16:16,470 Kaj denove, mi povus fari tion. 361 00:16:16,470 --> 00:16:19,580 Mi povus fari unu, du, tri, kvar kvin, ses, sep, ok naŭ. 362 00:16:19,580 --> 00:16:21,520 Kaj mi povus skribi ĝin malsupren al sekvigi ĝin. 363 00:16:21,520 --> 00:16:23,769 Sed tio estas nur kiel mi farus reprezenti la informon. 364 00:16:23,769 --> 00:16:27,550 Aŭ mi povus fari tion faster-- du, kvar, ses, ok, dek, 12, 14, 16, 18, 20, 365 00:16:27,550 --> 00:16:30,380 22-- sentas dufoje kiel rapida sed ĝi estas ankoraŭ 366 00:16:30,380 --> 00:16:32,050 tuj prenos tuta multan tempon. 367 00:16:32,050 --> 00:16:35,990 >> Sed rezultas, se ni utiligi ankoraŭ alia resource-- kaj ja komputiloj 368 00:16:35,990 --> 00:16:38,940 tiuj tagoj havas multoblajn CPU aŭ cerbo. 369 00:16:38,940 --> 00:16:41,970 Rezultas komputiloj povas fari multajn aferojn samtempe, 370 00:16:41,970 --> 00:16:44,460 kaj ja ni, en tiu ĉambro, povus reprezenti ĝuste tio. 371 00:16:44,460 --> 00:16:47,130 >> Do ĝi estas iom socie mallerta, sed se vi farus humuro mi 372 00:16:47,130 --> 00:16:51,550 por nur tri paŝo procezo, lasu Mi demandas ĉiuj en loko ekzistas nur 373 00:16:51,550 --> 00:16:54,640 stari dum momento. 374 00:16:54,640 --> 00:16:57,380 Starig ^ i. 375 00:16:57,380 --> 00:17:01,580 Tiel pensas al vi mem, nombro one-- do ĉiuj en tiu ĉambro, 376 00:17:01,580 --> 00:17:05,010 krom la personoj kiuj ne oblige, pensas numero unu. 377 00:17:05,010 --> 00:17:06,510 Por ke estas via nombro nun. 378 00:17:06,510 --> 00:17:09,399 Kiu estas la unua paŝo, aŭ kiel komputila sciencisto aŭ programisto 379 00:17:09,399 --> 00:17:11,827 estus tipe fari, ni tuj por komenci kalkulon je nulo. 380 00:17:11,827 --> 00:17:14,410 Se la plej malgranda nombro kiu povas reprezenti kun tiuj ampoloj 381 00:17:14,410 --> 00:17:17,410 estas nulo, por nur lasi ilin ĉiuj ekstere, Mi povus tiel simple 382 00:17:17,410 --> 00:17:19,271 komenci kalkulon nulo estas anstataŭ unu. 383 00:17:19,271 --> 00:17:21,020 Kaj tial jen kio komputilo sciencistoj faras. 384 00:17:21,020 --> 00:17:23,750 Do paŝi nulo, ekstari kaj pensu pri la nombro unu. 385 00:17:23,750 --> 00:17:26,339 La sekva paŝo estas this-- paro ekstere kun iu staranta 386 00:17:26,339 --> 00:17:27,660 kaj aldoni viajn numerojn kune. 387 00:17:27,660 --> 00:17:30,660 388 00:17:30,660 --> 00:17:32,850 Mirinda. 389 00:17:32,850 --> 00:17:37,640 >> Do tiumomente ĝustatempe, laŭvorte ĉiuj partoprenantaj 390 00:17:37,640 --> 00:17:41,930 pensas la numero 2, krom cxar unu nepara persono se ni havas 391 00:17:41,930 --> 00:17:43,450 nepara nombro de homoj en la ĉambro. 392 00:17:43,450 --> 00:17:50,640 Kaj nun la tria ŝtupo tie tuj esti this-- el vi devus sidiĝi. 393 00:17:50,640 --> 00:17:54,490 Unu el vi devus sidiĝi, kaj se vi ankoraŭ staras, 394 00:17:54,490 --> 00:17:56,590 reiru paŝi unu. 395 00:17:56,590 --> 00:18:44,799 396 00:18:44,799 --> 00:18:45,790 Bone. 397 00:18:45,790 --> 00:19:00,760 398 00:19:00,760 --> 00:19:01,650 Bone. 399 00:19:01,650 --> 00:19:03,880 Tiel pli kaj pli da homoj devus esti sidiĝante. 400 00:19:03,880 --> 00:19:08,280 Rimarku ke ĉi tio induktita oni loop-- ia ciklo. 401 00:19:08,280 --> 00:19:11,983 Iuj el vi estu mallerte ŝtopita, iri tien kaj reen inter paŝo unu 402 00:19:11,983 --> 00:19:14,180 kaj du, unu kaj du, unu kaj du. 403 00:19:14,180 --> 00:19:21,190 404 00:19:21,190 --> 00:19:21,810 Estas bone. 405 00:19:21,810 --> 00:19:22,630 Nia unua cimo. 406 00:19:22,630 --> 00:19:24,740 Ni agos tiel. 407 00:19:24,740 --> 00:19:25,320 Bone. 408 00:19:25,320 --> 00:19:27,370 Lasu min provi sproni aferojn kune. 409 00:19:27,370 --> 00:19:31,454 >> Teorie, nur unu persono staras kiel ĉiu daŭre paro for. 410 00:19:31,454 --> 00:19:33,870 Sed lasu min akceli aĵojn kun la homoj ankoraŭ staras. 411 00:19:33,870 --> 00:19:35,480 Kio nombro vi pensas? 412 00:19:35,480 --> 00:19:36,070 46. 413 00:19:36,070 --> 00:19:36,570 BONE. 414 00:19:36,570 --> 00:19:37,820 Antaŭeniri kaj sidiĝu. 415 00:19:37,820 --> 00:19:39,190 Vi infanoj daŭre staras. 416 00:19:39,190 --> 00:19:42,130 Kiu ankoraŭ staras? 417 00:19:42,130 --> 00:19:45,240 Kio nombro vi pensas? 418 00:19:45,240 --> 00:19:46,160 BONE. 419 00:19:46,160 --> 00:19:47,900 >> Do ni revenos al vi. 420 00:19:47,900 --> 00:19:49,630 En la dorso? 421 00:19:49,630 --> 00:19:50,790 Kio estas tio? 422 00:19:50,790 --> 00:19:53,100 22. 423 00:19:53,100 --> 00:19:56,540 OK iu alia supren top-- yeah? 424 00:19:56,540 --> 00:19:57,720 34. 425 00:19:57,720 --> 00:19:58,300 BONE. 426 00:19:58,300 --> 00:20:02,780 Super tie sur mia right-- ĉi tien? 427 00:20:02,780 --> 00:20:06,820 132, tre bela. 428 00:20:06,820 --> 00:20:08,380 22? 429 00:20:08,380 --> 00:20:08,990 >> BONE. 430 00:20:08,990 --> 00:20:10,031 Kaj kiu estas ankoraŭ staranta? 431 00:20:10,031 --> 00:20:11,000 Super tie? 432 00:20:11,000 --> 00:20:14,520 46, tre agrable. 433 00:20:14,520 --> 00:20:16,890 72. 434 00:20:16,890 --> 00:20:18,220 Mi ne povas ekhalti multe plu. 435 00:20:18,220 --> 00:20:20,520 Yeah? 436 00:20:20,520 --> 00:20:22,490 30, bela. 437 00:20:22,490 --> 00:20:24,120 Super tie? 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 >> Kaj mi pensas ke estas ĉiuj krom vi uloj, neniu premo. 441 00:20:30,920 --> 00:20:32,860 Ho, atendu. 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 Nur ok. 445 00:20:38,281 --> 00:20:38,780 BONE. 446 00:20:38,780 --> 00:20:41,030 Nur ok. 447 00:20:41,030 --> 00:20:42,580 Cxi tie? 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 Tiu estas la plej malbona efektivigo de tiu algoritmo ĉiam. 454 00:20:54,690 --> 00:20:55,190 BONE. 455 00:20:55,190 --> 00:20:59,760 Do ajnulo? 456 00:20:59,760 --> 00:21:00,421 Ajnulo? 457 00:21:00,421 --> 00:21:00,920 BONE. 458 00:21:00,920 --> 00:21:03,300 Unu pli. 459 00:21:03,300 --> 00:21:04,400 16? 460 00:21:04,400 --> 00:21:04,900 BONE. 461 00:21:04,900 --> 00:21:05,510 16. 462 00:21:05,510 --> 00:21:06,010 Bone. 463 00:21:06,010 --> 00:21:09,070 Do se mi ne forgesis iun en la brilego tie, kiam mi batis Enter, 464 00:21:09,070 --> 00:21:13,091 ni vidos, algorítmicamente, la totala nombro de homoj en Sanders. 465 00:21:13,091 --> 00:21:16,340 Ĉar denove, ĝi estas kvazaŭ ĉiuj kiel vi sidiĝis, preteriris vian numeron for 466 00:21:16,340 --> 00:21:19,215 al iu alia, al iu alia, al iu alia, tiel ke en teorio, 467 00:21:19,215 --> 00:21:22,304 en la fino, nur unu malgracia persono devus resti staranta. 468 00:21:22,304 --> 00:21:22,970 Sed tio estas bone. 469 00:21:22,970 --> 00:21:24,290 Ni rapidis aĵojn permane. 470 00:21:24,290 --> 00:21:27,590 Ĝi estas speciale malfacile vidi en ĉi tiu aparta spaco. 471 00:21:27,590 --> 00:21:34,200 >> Kaj la tuta nombro de homoj Ni kredas ke estas tie estas 546. 472 00:21:34,200 --> 00:21:37,330 La totala nombro mi transdonis de la instruado uloj, 473 00:21:37,330 --> 00:21:40,660 kiu faris la malnova lernejo malrapida maniero, estis 820. 474 00:21:40,660 --> 00:21:43,660 >> [Ridante] 475 00:21:43,660 --> 00:21:47,170 >> [Aplaŭdo] 476 00:21:47,170 --> 00:21:48,670 >> Estas bone. 477 00:21:48,670 --> 00:21:50,740 Do tiam, estas tiuj cimoj. 478 00:21:50,740 --> 00:21:51,460 Kaj tio estas bone. 479 00:21:51,460 --> 00:21:53,810 Kaj tiel pensas reen sur tiu unuafoje ion 480 00:21:53,810 --> 00:21:55,420 vi skribas ne necese labori. 481 00:21:55,420 --> 00:21:57,620 Tio okazis al mi ĉi tie ankaŭ. 482 00:21:57,620 --> 00:22:00,844 Sed ni nun pripensu, kiel ni povus apliki tiun saman ideon al io 483 00:22:00,844 --> 00:22:03,760 vi eble vidis antaŭe, kiu estas tiu malnova lernejo teknologio here-- 484 00:22:03,760 --> 00:22:05,130 vere granda telefono libro. 485 00:22:05,130 --> 00:22:09,380 Kaj supozu ke tiu telefono libro Havas 1.000 paĝoj kaj 1.000 nomoj 486 00:22:09,380 --> 00:22:11,360 kaj nombrojn alfabete ene de ĝi. 487 00:22:11,360 --> 00:22:14,860 >> Nu, ni povus ia apliki similan ideo nuna fizika problemo, 488 00:22:14,860 --> 00:22:16,270 nur uzante min. 489 00:22:16,270 --> 00:22:18,810 Mi nur ia trompis per ekspluatanta vi ĉiuj 490 00:22:18,810 --> 00:22:23,240 kun multoj kaj multa malsama CPU aŭ cerboj ekzekuti iun algoritmon. 491 00:22:23,240 --> 00:22:25,440 Sed se ĝi estas nur malgranda malnova mi, mi povas ankoraŭ 492 00:22:25,440 --> 00:22:29,630 utiligi tiu sama esenco de ideo la dividadon kaj konkeri tiun problemon 493 00:22:29,630 --> 00:22:32,970 denove kaj denove, per duono de vi, duono el vi, duono el vi, duono el vi, 494 00:22:32,970 --> 00:22:35,830 teorie konservis sidon ĝis ni forlasis, teorie, 495 00:22:35,830 --> 00:22:36,990 kun nur unu persono. 496 00:22:36,990 --> 00:22:39,810 >> Do en ĉi tiu malnova lernejo technology-- ni ne 497 00:22:39,810 --> 00:22:43,030 bezonas tiun map-- ĉi malnova lernejo teknologio, 498 00:22:43,030 --> 00:22:47,300 ni povus komenci serĉi iun ŝatas Mike Smith, unu paĝo samtempe. 499 00:22:47,300 --> 00:22:49,410 Kaj mi vidas ke ne, Mike ne estas ĉi tie. 500 00:22:49,410 --> 00:22:51,110 Mi ankoraŭ en la Sekcio. 501 00:22:51,110 --> 00:22:53,900 Eventuale, mi trovas min en la B sekcio. 502 00:22:53,900 --> 00:22:56,910 Kaj tio estas algorithm-- paŝo post paŝo instrukcioj. 503 00:22:56,910 --> 00:22:59,890 Komencu ĉe la komenco kaj unu paĝo samtempe, serĉi Mike Smith. 504 00:22:59,890 --> 00:23:03,410 Estas ĉi correct-- ĉi algoritmo aŭ alproksimiĝo? 505 00:23:03,410 --> 00:23:04,550 >> Jes, ĝi estas ĝusta. 506 00:23:04,550 --> 00:23:06,840 Se Mike estas tie, eventuale Mi atingos lin. 507 00:23:06,840 --> 00:23:08,139 Sed ĝi ne estas efika. 508 00:23:08,139 --> 00:23:09,180 Estas evidente tre malrapida. 509 00:23:09,180 --> 00:23:11,340 Do mi povas utiligi la sama twosies alproksimigi. 510 00:23:11,340 --> 00:23:15,350 Mi povas fari ian du, kvar, ses, ok, 10, 12. 511 00:23:15,350 --> 00:23:16,330 Ĝi estas duoble pli rapida. 512 00:23:16,330 --> 00:23:18,290 Mi tuj atingos Mike rapida se ĝi estas tie. 513 00:23:18,290 --> 00:23:20,770 Ĉu ĝi estas ĝusta? 514 00:23:20,770 --> 00:23:22,320 Jes, sed mi aŭdis little-- ne. 515 00:23:22,320 --> 00:23:24,200 Nun mi aŭdis neniun. 516 00:23:24,200 --> 00:23:24,700 Yeah. 517 00:23:24,700 --> 00:23:26,190 Ekzistas cimo potenciale. 518 00:23:26,190 --> 00:23:29,374 Eble Mike ĵus hazarde ricevas krampitaj inter du paĝoj, 519 00:23:29,374 --> 00:23:31,290 ĉar mi flugas tra ĉi du samtempe. 520 00:23:31,290 --> 00:23:33,580 Tiel almenaŭ ni bezonas iujn speco de kondiĉa solvon. 521 00:23:33,580 --> 00:23:35,330 Mi devas diri, hej, se mi batis iun kies 522 00:23:35,330 --> 00:23:39,190 nomo komenciĝas per T anstataŭ S, Mi bone duobligi reen almenaŭ unu paĝo. 523 00:23:39,190 --> 00:23:40,767 Do kalesxo unue, sed fikseblaj. 524 00:23:40,767 --> 00:23:43,850 Sed neniu el ni tuj serĉi Mike Smith tra 1.000 paĝo telefonon 525 00:23:43,850 --> 00:23:45,290 rezervi unu paĝo samtempe. 526 00:23:45,290 --> 00:23:48,486 Kio estas normala persono faros? 527 00:23:48,486 --> 00:23:50,860 Vi tuj iru al la S-a, se vi sciis kie la S-aj jaroj. 528 00:23:50,860 --> 00:23:54,230 Vi eble iras malglate al la mezo aŭ iomete skewed al la fino. 529 00:23:54,230 --> 00:23:56,850 Kaj mi rigardas malsupren tie kaj Mi estas en la M sekcio. 530 00:23:56,850 --> 00:23:58,952 Sed kion vi scias pri tiu problemo nun, 531 00:23:58,952 --> 00:24:02,160 ke ni ne nepre scias antaŭe kun ĉiuj el ni simple rakonti nin 532 00:24:02,160 --> 00:24:03,030 ekvivalente? 533 00:24:03,030 --> 00:24:06,010 Nu, Mike estas direktata esti en tiu duono de la libro 534 00:24:06,010 --> 00:24:07,920 se li estas tie ĉe ĉiuj ĉar ĝi estas ordo. 535 00:24:07,920 --> 00:24:10,160 >> Kaj tiel vi povas tre dramatically-- 536 00:24:10,160 --> 00:24:11,250 >> [Anhelante] 537 00:24:11,250 --> 00:24:12,300 >> Mi scias. 538 00:24:12,300 --> 00:24:16,940 >> [Aplaŭdo] 539 00:24:16,940 --> 00:24:19,450 >> Ĝi estas vere vere facila se vi faras ĝin la spino tie. 540 00:24:19,450 --> 00:24:22,070 Sed vi povas tiam ĵeti duono de la problemo for. 541 00:24:22,070 --> 00:24:25,950 Nun, mi lasas kun la sama problem-- trovi Mike Smith en telefono book-- 542 00:24:25,950 --> 00:24:29,610 sed nun la telefono libro komenciĝas ĉe M kaj iras al Z, sed estas duone tiel granda. 543 00:24:29,610 --> 00:24:30,890 >> Sed tio kio estas impresa. 544 00:24:30,890 --> 00:24:34,170 Ĝuste kiel en teorio, vi infanoj, kiam vi ĉiuj sidiĝis nur duone samtempe, 545 00:24:34,170 --> 00:24:37,150 la problemo akiris duono tiel granda, duone tiom granda, denove kaj denove. 546 00:24:37,150 --> 00:24:40,260 Do tio ĉi problemo fariĝis la saman problemon sed duone tiel granda. 547 00:24:40,260 --> 00:24:42,670 Nun ĝi estas 250 paĝo problemon. 548 00:24:42,670 --> 00:24:45,340 Kiam mi rimarkas, ho, mi estas en la T sekcio hazarde. 549 00:24:45,340 --> 00:24:46,590 Mi iris tro malproksime. 550 00:24:46,590 --> 00:24:48,500 Mi povas ĵeti ke duono de la telefono libro for. 551 00:24:48,500 --> 00:24:50,410 Nun, mi estas malsupren al kvarono de la problemo. 552 00:24:50,410 --> 00:24:53,910 >> Kaj vi povas ripeti, ripeti, ripeti ĝis, en teorio, vi 553 00:24:53,910 --> 00:24:55,460 lasita kun nur unu paĝo. 554 00:24:55,460 --> 00:24:59,010 Kaj se Mike estas sur tiu paĝo, Mi povas nun solvi tiun problemon. 555 00:24:59,010 --> 00:25:00,810 Sed kiom rapide mi ja solvi ĝin? 556 00:25:00,810 --> 00:25:05,420 En la unua kazo, ĝi prenis min kiel eble 1.000 ŝtupoj trovi Mike Smith. 557 00:25:05,420 --> 00:25:09,260 Ĝi povus esti prenita kunulinon Mi kaptis la telefonon libro 558 00:25:09,260 --> 00:25:11,440 kaj mi komencis serĉi unu paĝo samtempe, 559 00:25:11,440 --> 00:25:13,480 kaj Mike povus esti 1.000 paĝoj poste. 560 00:25:13,480 --> 00:25:16,020 >> Dua alproksimiĝo eble prenas min 500 ŝtupoj, 561 00:25:16,020 --> 00:25:17,960 ĉar mi flugas tra du samtempe. 562 00:25:17,960 --> 00:25:21,082 Kaj la tria alproksimiĝo tamen, ĝi estas precipe potenca. 563 00:25:21,082 --> 00:25:23,790 Sed ni pripensu kion ni efektive faris kun tiu tria alproksimiĝo. 564 00:25:23,790 --> 00:25:27,590 Mi havas kion mi vokas nur tiuj deklaroj tie, unuope. 565 00:25:27,590 --> 00:25:28,560 Repreni telefono libro. 566 00:25:28,560 --> 00:25:30,130 Malfermi al la mezo de la telefono libro. 567 00:25:30,130 --> 00:25:31,419 Rigardu nomoj. 568 00:25:31,419 --> 00:25:33,960 Kaj tiam aĵoj iom pli intelekte interesa, 569 00:25:33,960 --> 00:25:35,170 se ankoraŭ simpla. 570 00:25:35,170 --> 00:25:38,350 Se Smith estas inter la nomoj en tiu aktuala paĝo, 571 00:25:38,350 --> 00:25:40,170 tiam fari ion kondiĉe. 572 00:25:40,170 --> 00:25:41,840 Estas kiel forko en la vojo. 573 00:25:41,840 --> 00:25:42,660 Nomas Mike. 574 00:25:42,660 --> 00:25:44,930 Se Mike estas inter la nomoj sur tiu paĝo, nomita Mike. 575 00:25:44,930 --> 00:25:49,720 Sed nur faras linion kvar se linio arbo, se vi volas, estas vera. 576 00:25:49,720 --> 00:25:51,590 La respondo al tiu demando estas jes. 577 00:25:51,590 --> 00:25:55,520 >> Alie se Smith estas pli frue en la book-- alivorte, se mi estas en la M sekcio 578 00:25:55,520 --> 00:25:58,540 kaj mi serĉas iun maldekstren, kion mi faru 579 00:25:58,540 --> 00:26:00,300 Estas io tre simila. 580 00:26:00,300 --> 00:26:03,440 Tiam mi devus malfermi al la mezo de la maldekstra duono de la libro. 581 00:26:03,440 --> 00:26:07,930 Iru do forlasis, kaj tiam reiru paŝi du. 582 00:26:07,930 --> 00:26:09,290 Rigardu la nomojn tie. 583 00:26:09,290 --> 00:26:12,779 >> Do alivorte, faru la samon, sed sur problemo kiu estas estis duonigita. 584 00:26:12,779 --> 00:26:13,570 Vi scias kion alian? 585 00:26:13,570 --> 00:26:16,470 Se Smith estas poste en la libro bazita sur la paĝo mi rigardas, 586 00:26:16,470 --> 00:26:18,790 malfermita al la mezo de la dekstra duono de la libro 587 00:26:18,790 --> 00:26:22,050 kaj tiam reiru paŝi du, else-- 588 00:26:22,050 --> 00:26:24,000 ekzistas kvara ebleco tie. 589 00:26:24,000 --> 00:26:28,830 Mike ĉu tie aŭ maldekstren aŭ al la dekstra aŭ ne ekzistas. 590 00:26:28,830 --> 00:26:30,570 Kaj tie ni pli bone pripensu tion. 591 00:26:30,570 --> 00:26:33,360 Kaj fakte, se vi iam havis via komputilo nur frakasi vin, 592 00:26:33,360 --> 00:26:36,822 ke estas kelkfoje, sed ne ĉiam, la rezulto de nur homa programisto ne 593 00:26:36,822 --> 00:26:39,280 rimarki, ho pafi, ekzistas fakte tiu kvara scenaro. 594 00:26:39,280 --> 00:26:41,650 Kaj se vi ne skribi kodo manipuli ke scenaro, 595 00:26:41,650 --> 00:26:43,220 foje vi ne scias kion la komputilo povus fari. 596 00:26:43,220 --> 00:26:44,770 Kaj ja programo povus frakasi. 597 00:26:44,770 --> 00:26:47,550 >> Sed en ĉi tiu kazo, mi kredas pri tio, kaj mi diris, alie forlasi, 598 00:26:47,550 --> 00:26:49,850 ĉar tio estas la kvara logikaj ebla scenaro. 599 00:26:49,850 --> 00:26:51,950 Nun ni nur aldonu kelkaj vortprovizo do ni 600 00:26:51,950 --> 00:26:55,320 povas komenci ĵeti ĉirkaŭ terminoj kiuj alispecaj bela intuicia. 601 00:26:55,320 --> 00:26:57,870 Ĉiujn aferojn Mi havas precize elstarigitaj en flava tie, 602 00:26:57,870 --> 00:27:00,140 Mi simple tuj al la funkcioj aŭ proceduroj. 603 00:27:00,140 --> 00:27:01,590 Ili estas nur speco de agoj. 604 00:27:01,590 --> 00:27:04,900 Tiel repreni, malfermita al, rigardi ĉe, telefoni malferma, malfermita, 605 00:27:04,900 --> 00:27:09,170 quit-- tiuj estas nur agoj, aŭ ni voki ilin pli formale, funkcioj. 606 00:27:09,170 --> 00:27:11,410 >> Dume, nun en flava, Mi reliefigis aferoj 607 00:27:11,410 --> 00:27:14,084 that-- ni komencu nomante ilin kondiĉoj aŭ branĉoj. 608 00:27:14,084 --> 00:27:16,750 Jen estas decido punktoj kie vi venu ĉi vojo, tiamaniere, 609 00:27:16,750 --> 00:27:18,100 aŭ alian direkton hejme. 610 00:27:18,100 --> 00:27:19,430 Do tiuj estos kondiĉoj. 611 00:27:19,430 --> 00:27:20,930 Kaj nun ĉi tiu estas iom amatoro. 612 00:27:20,930 --> 00:27:24,600 Ni nomas tiujn demandoj Buleaj esprimoj, 613 00:27:24,600 --> 00:27:26,530 post iu kun familinomo bool. 614 00:27:26,530 --> 00:27:28,340 >> Kaj Bulea esprimo Estas nur io 615 00:27:28,340 --> 00:27:30,290 tio ĉu vera aŭ malvera, jes aŭ ne. 616 00:27:30,290 --> 00:27:35,870 Do ĝi estas la demando kies respondon vi zorgi pri, por en kondiĉo 617 00:27:35,870 --> 00:27:39,210 fari decision-- reiri respondon, kaj poste iru maldekstren aŭ dekstren, nek ion 618 00:27:39,210 --> 00:27:40,450 alie tute. 619 00:27:40,450 --> 00:27:42,860 >> Kaj poste persiste, tiuj linioj here-- reiri 620 00:27:42,860 --> 00:27:44,737 paŝi du, reiri paŝi two-- ni povus 621 00:27:44,737 --> 00:27:46,320 apliki tiun ideon en malsamaj manieroj. 622 00:27:46,320 --> 00:27:49,028 Kaj poste tiuj de vi kun programado sperto eble faritan 623 00:27:49,028 --> 00:27:50,670 aŭ povas imagi faras tion malsame. 624 00:27:50,670 --> 00:27:53,170 Sed por la hodiaŭa celoj, estas nur la ideo kiu importas. 625 00:27:53,170 --> 00:27:55,400 Tio estas persvadanta kio ni ĝenerale nomas 626 00:27:55,400 --> 00:28:00,110 oni loop-- ia ciklo, ĉar ĝi faris min fari ion denove. 627 00:28:00,110 --> 00:28:03,340 >> Do nun, ni nur konsideri kiom bone tiu algoritmo estas. 628 00:28:03,340 --> 00:28:03,899 Ĝi estas korekta. 629 00:28:03,899 --> 00:28:06,940 Se Mike en la libro, ĝi estas unu el tiuj kvar scenarios-- multfoje 630 00:28:06,940 --> 00:28:08,023 kaj denove, ni trovos lin. 631 00:28:08,023 --> 00:28:08,890 Sed kiel bona estas? 632 00:28:08,890 --> 00:28:10,150 Nu, ni ne havas esti tro formala tie. 633 00:28:10,150 --> 00:28:12,066 Sed ni nur komploti io, x kaj y, por akiri 634 00:28:12,066 --> 00:28:14,470 sento de la formo de ĉi tiu problemo. 635 00:28:14,470 --> 00:28:17,160 >> Sur la x-akso tie estas la grandeco de mia problemo. 636 00:28:17,160 --> 00:28:20,256 Kaj ili y-akso tie estos la tempo por solvi. 637 00:28:20,256 --> 00:28:21,630 Do eble tio estas la numero de paĝoj. 638 00:28:21,630 --> 00:28:24,400 Eble tiu estas sekundojn aŭ paĝo turns-- ajn. 639 00:28:24,400 --> 00:28:27,290 Tamen vi volas rakonti estas kion ĉi bildo reprezentos. 640 00:28:27,290 --> 00:28:30,630 La unua algoritmo, mi tuj priskribi kiel simple kaj rekte. 641 00:28:30,630 --> 00:28:33,120 Se estas n paĝoj la telefono libro, tiam 642 00:28:33,120 --> 00:28:36,010 povus preni min kiel multaj kiel n paŝoj por trovi Mike. 643 00:28:36,010 --> 00:28:38,930 Se Verizon aŭ la telefona kompanio aldonas pli paĝo venontjare, 644 00:28:38,930 --> 00:28:42,170 ĝi povus preni min pli step-- pli unueco de tempo trovi Mike. 645 00:28:42,170 --> 00:28:44,230 Do ekzistas nur tiu unu al unu rilatumo. 646 00:28:44,230 --> 00:28:45,970 Ĝi estas rekta linio deklivo. 647 00:28:45,970 --> 00:28:49,110 >> Dume, tiu dua algorithm-- se mi 648 00:28:49,110 --> 00:28:51,570 iras du je time-- du, kvar, ses, ok, aŭ double-- 649 00:28:51,570 --> 00:28:54,550 irante tra la paĝoj dufoje samtempe, du je fojo, 650 00:28:54,550 --> 00:28:55,710 ĝi estas ankoraŭ rekto. 651 00:28:55,710 --> 00:28:58,720 Ekzistas nun unu al du rilatumo, sed nur iom pli malalta. 652 00:28:58,720 --> 00:29:02,240 Do, se estas tio multaj paĝoj en la diagramo tie en flava, 653 00:29:02,240 --> 00:29:04,800 kiuj povus porti min tiun multaj paŝoj aŭ sekundoj, 654 00:29:04,800 --> 00:29:07,980 alie ĝi estas tuj prenos min dufoje kiel multaj sur la ruĝa linio. 655 00:29:07,980 --> 00:29:10,190 >> Sed la verda linio estas la reala takeaway. 656 00:29:10,190 --> 00:29:12,290 Jen kion ni ĝenerale voki logorithm-- ŝtipo 657 00:29:12,290 --> 00:29:13,840 de n, kie n estas la nombro da paĝoj. 658 00:29:13,840 --> 00:29:16,450 Sed estas la formo kiu gravas hodiaŭ, ĉar ni ne havas 659 00:29:16,450 --> 00:29:17,950 eĉ pripensi komplotanta punktoj. 660 00:29:17,950 --> 00:29:19,830 >> Pensu pri ekstrema scenaro. 661 00:29:19,830 --> 00:29:23,070 Supozu Verizon morgaŭ duobligas la nombro de paĝoj en tiu telefono libro, 662 00:29:23,070 --> 00:29:24,900 de 1.000 al 2.000. 663 00:29:24,900 --> 00:29:28,440 En la unua algoritmo, mi povus malŝpari kroman 1000 664 00:29:28,440 --> 00:29:32,080 paŝoj serĉas Mike, nur ĉar Verizon duobligis la grandecon de la libro. 665 00:29:32,080 --> 00:29:34,740 La dua algorithm-- ĝi povus prenu min ekstra 500 ŝtupoj. 666 00:29:34,740 --> 00:29:38,370 1.000 pli paĝojn, mi iras du je time-- 500 pli paŝoj al trovi Mike. 667 00:29:38,370 --> 00:29:41,020 >> Sed tiu tria algoritmo Estas speco de magia. 668 00:29:41,020 --> 00:29:44,270 Verizon duobligas la nombron paĝojn el 1.000 al 2.000, 669 00:29:44,270 --> 00:29:47,730 sed kiom pli paŝoj faras ĝi portu min al serĉi Mike? 670 00:29:47,730 --> 00:29:51,220 Estas nur unu, ĉar mi povas nur ŝiri la telefonon libro pli tempo 671 00:29:51,220 --> 00:29:55,280 de 2.000 paĝo problemon al 1.000 paĝo problemo, kaj voila. 672 00:29:55,280 --> 00:29:57,030 Mi glutis amasa mordo el ĝi. 673 00:29:57,030 --> 00:29:59,405 >> Kaj se vi iros tre ekstremaj, supozu ke la telefono libro 674 00:29:59,405 --> 00:30:03,600 kompanio havis ion freneza kiel 4 miliardoj paĝo telefono libro. 675 00:30:03,600 --> 00:30:07,020 Nu kiom da paŝoj povus gxin preni trovi Mike Smith en 4 miliardoj 676 00:30:07,020 --> 00:30:09,990 paĝo telefono libro? 677 00:30:09,990 --> 00:30:16,450 Estas granda nombro, sed nur 4 miliardoj 2 miliardoj al 1 miliardo 500 milionoj, 678 00:30:16,450 --> 00:30:18,720 250 million-- ankoraŭ sonas grandan nombroj, 679 00:30:18,720 --> 00:30:20,980 sed mi tre rapide alveni al malgrandaj valoroj. 680 00:30:20,980 --> 00:30:24,790 >> Kaj fakte, se mi faras la math Bone, mi povas nur dividi 4 miliardoj 681 00:30:24,790 --> 00:30:28,750 de malglate 32 epokojn Mi alvenas malsupren al nur unu. 682 00:30:28,750 --> 00:30:31,640 Do se tiu telefono libro estis 4 miliardoj paĝojn longa, neniu granda interkonsento. 683 00:30:31,640 --> 00:30:35,270 Ene de kelkaj sekundoj, eble 32 sekundoj, mi povus dividi ĝin en duono 684 00:30:35,270 --> 00:30:39,560 kaj eventuale trovi Mike aŭ konkludi ke ĝi ne ekzistas. 685 00:30:39,560 --> 00:30:42,219 Kaj tio estas la esenco de algorithm-- bona algoritmo. 686 00:30:42,219 --> 00:30:44,260 Kaj tio estas unu el la celoj de klaso kiel ĉi, 687 00:30:44,260 --> 00:30:47,350 estas provanta kalkuli ekstere kiel mi solvi la problemon ne nur ĝuste, 688 00:30:47,350 --> 00:30:52,360 kiel mi ĉiam sciis kiel fari ĝin unu paĝo je time-- sed korekte kaj bone. 689 00:30:52,360 --> 00:30:55,034 Kiel mi desegni bona solvojn al problemoj? 690 00:30:55,034 --> 00:30:57,200 Do ni preni momenton tie kaj doni vin sento nun 691 00:30:57,200 --> 00:31:00,260 de CS50 la kurso itself-- enkonduki kelkaj kurso laborantaranoj. 692 00:31:00,260 --> 00:31:02,010 Ĵus antaŭ 2:00, Ni preni mallongan ripozon 693 00:31:02,010 --> 00:31:03,520 tiel ke tiuj de vi kiu estas butikumado povas 694 00:31:03,520 --> 00:31:05,130 anaso eksteren kaj preni rigardi iun alian klason 695 00:31:05,130 --> 00:31:06,580 kaj spekti la resto de tiu linio. 696 00:31:06,580 --> 00:31:09,250 Sed nuntempe, mi konigu CS50, la klaso mem, 697 00:31:09,250 --> 00:31:11,330 kaj aparte kio estas nova. 698 00:31:11,330 --> 00:31:13,960 >> Tial la pasintaj printempo, ni Pasis sufiĉe da time-- 699 00:31:13,960 --> 00:31:17,911 la kurso de dungitaro kaj I-- pensante pri kio estas ni volas CS50 esti, 700 00:31:17,911 --> 00:31:19,910 kaj irante reen al unua principoj, por tiel diri, 701 00:31:19,910 --> 00:31:22,760 konsideri kio estas ni volas tiu kurso por simili kaj estu 702 00:31:22,760 --> 00:31:23,740 kiel por liaj studentoj. 703 00:31:23,740 --> 00:31:26,480 Kaj tiel vi vidos en problemo fiksita nulo tiel, invito 704 00:31:26,480 --> 00:31:28,780 preni rigardi ke URL kiu resumas 705 00:31:28,780 --> 00:31:33,270 kelkaj el la motivaciones malantaŭ la sekvaj karakterizaj de aŭtuno 2016. 706 00:31:33,270 --> 00:31:35,570 >> Do kiel vi eble kolektis el TL: DR almozon, 707 00:31:35,570 --> 00:31:39,060 la Syllabus hodiaŭ same kiel de la kurso katalogo, tiu jaro en CS50, 708 00:31:39,060 --> 00:31:42,540 vi nur atendas ĉeesti today-- tiel laboro bone done-- 709 00:31:42,540 --> 00:31:45,960 kaj la lasta prelego de novembro 21. 710 00:31:45,960 --> 00:31:49,150 Kaj vi estas bonvenaj sed ne atendas ĉeesti tiujn prelegojn en la mezo, 711 00:31:49,150 --> 00:31:51,180 ĉar kion ni faras tiu jaro, estas pafanta 712 00:31:51,180 --> 00:31:52,661 en reala tempo la kurso materialo. 713 00:31:52,661 --> 00:31:54,660 Do ĉio restos nuna kaj korpigita 714 00:31:54,660 --> 00:31:57,410 kiel bona ni can-- aktualaĵoj kaj konversacioj kiujn homoj povus 715 00:31:57,410 --> 00:32:00,400 esti havante en industrio en la mondo, sed farante ke materialo 716 00:32:00,400 --> 00:32:03,892 havebla, kiel rezulto, eĉ earlier-- kompleta kun plena teksto transskriboj 717 00:32:03,892 --> 00:32:05,850 kaj searchability kaj ligoj al aliaj rimedoj. 718 00:32:05,850 --> 00:32:07,930 >> Kaj efektive, ni estis asertanta por iu tempo 719 00:32:07,930 --> 00:32:10,830 kaj ni nun kredas tiun, ke ni povas krei, ciferece, 720 00:32:10,830 --> 00:32:15,170 pli mergan, pli konvinka eduka sperto, kontraste 721 00:32:15,170 --> 00:32:19,110 por kolektanta tie iuj 23 fojojn persone auxdis iu amas min 722 00:32:19,110 --> 00:32:22,925 simple paroli pri komputiko, kontraste al engaĝi pli aktive. 723 00:32:22,925 --> 00:32:25,800 Do vi vidos en la kurso Syllabus skizo de la semestro tie, 724 00:32:25,800 --> 00:32:27,840 kune kun kiam prelegoj volo filmado, al kiu vi estas 725 00:32:27,840 --> 00:32:29,710 bonvenon sed ne atendis, kaj kiam ili volas 726 00:32:29,710 --> 00:32:31,640 esti liberigita sur la kurson de afiŝinto. 727 00:32:31,640 --> 00:32:34,300 >> Kaj kion ni faros ĉi tie sur Merkredo komencanta sekvantan semajnon, 728 00:32:34,300 --> 00:32:37,362 Estas multe pli intime, kun nur tiuj homoj, kiuj volas partopreni, 729 00:32:37,362 --> 00:32:39,820 Estas tn promeno tra, kie mi kaj la kurso de kapoj 730 00:32:39,820 --> 00:32:41,730 efektive fari aferojn iom pli intimaj 731 00:32:41,730 --> 00:32:44,313 cxi tie en la orkestro sekcio, daŭre havas kelkajn teknologio 732 00:32:44,313 --> 00:32:46,365 kaj trairu la nuna semajno problemo aro, 733 00:32:46,365 --> 00:32:50,020 kaj proponi vin particularly-- se inter tiuj malpli comfortable-- ĉiuj pli 734 00:32:50,020 --> 00:32:52,790 gvido ke vi eble volas aŭ bezonas por la semajno defio. 735 00:32:52,790 --> 00:32:55,820 Kaj simile, por tiuj kiuj ne povas ĉeesti tiujn persone, ne granda interkonsento. 736 00:32:55,820 --> 00:32:58,486 Tie estos simile gvidata de unu el la kurso altranga personaro, 737 00:32:58,486 --> 00:33:02,650 Zamalya, la saman ŝancon enigita en la problemo aroj mem. 738 00:33:02,650 --> 00:33:04,960 >> Problemo aroj ĉi jaro Estos ĵetita la vendredo 739 00:33:04,960 --> 00:33:08,080 kaj ne plu faras sep tagoj poste, sed 10 tagojn later-- intence 740 00:33:08,080 --> 00:33:10,910 imbrikitaj kun ĉiu problemo starigis, por bone alĝustigi, 741 00:33:10,910 --> 00:33:13,050 Ni esperas, refluo kaj fluo en studentaj horaroj, 742 00:33:13,050 --> 00:33:16,550 speciale kiam midterms aŭ atletiko aŭ akademiuloj aŭ extracurriculars 743 00:33:16,550 --> 00:33:18,465 emas veni kaj iri speciale meze semestro. 744 00:33:18,465 --> 00:33:21,340 Tio devus doni vin iom pli diskreteco ĉu vi front 745 00:33:21,340 --> 00:33:25,690 ŝarĝi vian semajnon kun CS50 aŭ reen ŝarĝo sur la sekvanta semajnfino anstataŭe. 746 00:33:25,690 --> 00:33:28,817 Do rigardu al la kurso Syllabus tie por la horaro de tio. 747 00:33:28,817 --> 00:33:30,900 Kaj vi rimarkos tro inter la ŝanĝoj ĉi jaro, 748 00:33:30,900 --> 00:33:34,082 por tiuj pli familiara kun programadon en la pasinteco, 749 00:33:34,082 --> 00:33:36,290 ni komencos la semestro kiel ni volas hodiaŭ en Scratch, 750 00:33:36,290 --> 00:33:39,730 enfokusigi ĉefe sur la lingvo nomita C kaj tiam transiro ne 751 00:33:39,730 --> 00:33:43,430 al PHP, sed al lingvo nomata Python al la fino de la semestro 752 00:33:43,430 --> 00:33:46,565 en la kunteksto de ttt programado, kune kun SQL kaj JavaScript, 753 00:33:46,565 --> 00:33:48,930 HTML, CSS, kaj ankoraŭ pli. 754 00:33:48,930 --> 00:33:51,790 >> Kaj en respondo al FAQ, ĝi estas ja la kazo 755 00:33:51,790 --> 00:33:55,520 ke CS ne estas tiel timiga, kiel mi iam pensis ke estis, sed ĝi estas tiel laboro 756 00:33:55,520 --> 00:33:57,280 kiel mi aŭdis ĝin povus esti. 757 00:33:57,280 --> 00:34:03,210 Sed tiu estas la diri ke tie estas iuj statistiko de aŭtuno 2015 studentaro, 758 00:34:03,210 --> 00:34:06,460 per la horizontalaj bluaj linioj reprezenti la averaĝa nombro de horoj 759 00:34:06,460 --> 00:34:06,960 raportita. 760 00:34:06,960 --> 00:34:10,570 Kaj vi vidos averaĝe ses por 10 por 12-- eble 16 761 00:34:10,570 --> 00:34:14,580 aŭ tiel kaj tiel antaŭen, sed kun alta varianco esti klara. 762 00:34:14,580 --> 00:34:18,570 Kaj do konscias ke ekzistas ne nur studentoj pli komforta kaj malpli 763 00:34:18,570 --> 00:34:22,150 komforta en la kurso, sed korespondan subteno 764 00:34:22,150 --> 00:34:25,699 strukturo akiri tiujn lernantojn tra la semestro sukcese. 765 00:34:25,699 --> 00:34:29,409 >> Efektive, en respondo al FAQ, devus vi prenas CS50 kiel unua jaro? 766 00:34:29,409 --> 00:34:30,139 Absolute. 767 00:34:30,139 --> 00:34:32,690 Kaj fakte, mi bedaŭras Ne trovinte mian vojon 768 00:34:32,690 --> 00:34:35,170 aŭ fondi novan kampon tiu unua jaro ankaŭ. 769 00:34:35,170 --> 00:34:39,149 Kaj vi volas preni CS50 kun aliaj kursoj, certe kiel well-- 770 00:34:39,149 --> 00:34:41,940 kaj la ĝenerala konsilo ni eble doni studentojn, ke CS50 estas probable 771 00:34:41,940 --> 00:34:44,929 ne tia klaso aŭ intro klaso ke vi devus preni kun tri 772 00:34:44,929 --> 00:34:47,199 aliaj aŭ kvar aliaj p-aro klasoj. 773 00:34:47,199 --> 00:34:50,583 Sed se vi prenas du aliaj p-aro klasoj, io alia, kaj CS50, 774 00:34:50,583 --> 00:34:51,499 absolute regebla. 775 00:34:51,499 --> 00:34:54,900 Mi havis multajn studentojn en la pasintaj faris tre sukcese. 776 00:34:54,900 --> 00:34:57,490 >> Kaj akiri vin al tiu cellinio sukcese, 777 00:34:57,490 --> 00:35:00,260 faras la kurson havas sections-- malsamaj aŭtoveturejoj por studentoj 778 00:35:00,260 --> 00:35:03,100 malpli komfortaj, pli komforta, kaj ie intere, 779 00:35:03,100 --> 00:35:04,850 per kiu en la kurso unua problemo aro, 780 00:35:04,850 --> 00:35:06,360 Vi estos petita por priskribi vin mem. 781 00:35:06,360 --> 00:35:09,151 Kaj se vi estas inter tiuj malpli komforta, ĝi estas la speco de afero 782 00:35:09,151 --> 00:35:10,420 ke vi nur iom konas. 783 00:35:10,420 --> 00:35:13,010 Kaj efektive, jen estis la kreskanta demografia en CS50 784 00:35:13,010 --> 00:35:14,090 por tre kelkaj jaroj. 785 00:35:14,090 --> 00:35:17,680 >> Segun lasta falo por Ekzemple, 58% de la klaso 786 00:35:17,680 --> 00:35:20,560 priskribis sin kiel inter tiuj malpli komfortaj, 787 00:35:20,560 --> 00:35:23,210 kun 9% inter tiuj pli komforta, kaj tiam 788 00:35:23,210 --> 00:35:25,900 la aliaj studentoj tie ruĝaj priskribante sin 789 00:35:25,900 --> 00:35:27,890 kiel ie intere. 790 00:35:27,890 --> 00:35:31,980 Kaj vi vidos tie la temoj supertuto kaj horaro de sekcioj, ĉiu el kiuj 791 00:35:31,980 --> 00:35:34,820 proponas en persono, en reala tempo, kun la paso de 792 00:35:34,820 --> 00:35:38,320 mirinda kunlaborantaro de instruado uloj kaj kompreneble helpantoj, el kiuj kelkaj 793 00:35:38,320 --> 00:35:39,660 vi renkontos en nur momento. 794 00:35:39,660 --> 00:35:42,993 >> Sekcioj sin, kiel vi vidos, ĉu esti lundon kaj mardon kaj merkredo, 795 00:35:42,993 --> 00:35:45,910 tiel kiel por permesi al vi plonĝi post engaĝi, se vi tiel 796 00:35:45,910 --> 00:35:48,110 elekti, en la kurso prelegi frue tiun semajnon. 797 00:35:48,110 --> 00:35:51,420 Kaj tiam oficejo horoj, kiuj Certe, kun ĉiu pasanta jaro, 798 00:35:51,420 --> 00:35:54,110 estis neniu malpli de defii por la kurso. 799 00:35:54,110 --> 00:35:57,040 Kaj ĉi tiu jaro, ni planas ne nur teni oficejo hours-- unu 800 00:35:57,040 --> 00:36:00,300 sur unu ŝancoj helpon por studentoj merkrede ĵaŭdo 801 00:36:00,300 --> 00:36:03,790 kaj dimanĉoj, la lasta de tiuj estante en la posttagmezo de dezajno 802 00:36:03,790 --> 00:36:06,910 redukti iuj de la streso kiu nevarie ŝprucas kun malfrua nokto 803 00:36:06,910 --> 00:36:10,180 p-settting kun limdato looming-- sed oficejo horoj estos ankaŭ proponitaj 804 00:36:10,180 --> 00:36:14,920 lunde kaj marde kaj Merkredo kaj vendredo kaj sabatoj, 805 00:36:14,920 --> 00:36:17,080 danke al niaj amikoj en HSA. 806 00:36:17,080 --> 00:36:20,330 >> CS50 nun havas lian propran spacon por studentoj kaj CS50 bastonon, 807 00:36:20,330 --> 00:36:23,070 atop 67 Mount Auburn Street, Dekstre en Harvard Square. 808 00:36:23,070 --> 00:36:26,340 Vizio por kio estas ke CS50 TFS kaj CAS dum FESTO, 809 00:36:26,340 --> 00:36:29,052 preskaux tra plej tagojn, estos tie por subteno. 810 00:36:29,052 --> 00:36:30,760 Do se vi havas iun demando sur p-aro 811 00:36:30,760 --> 00:36:33,093 aŭ vi sentas iom blokita aŭ iom konfuzita, 812 00:36:33,093 --> 00:36:35,640 kaj heck, vi havas horon aŭ duonhoro inter klasoj, 813 00:36:35,640 --> 00:36:38,920 speciale en la square-- povas pop en kaj havas tiun demandon respondis 814 00:36:38,920 --> 00:36:41,720 de havi tiun konfuzon clarified-- tre en la spirito, 815 00:36:41,720 --> 00:36:45,490 vi konas, de la matematiko fako mem matematikaj demandoj centro, 816 00:36:45,490 --> 00:36:49,300 sed preskaux ĉirkaŭ la horloĝo por [? Gcal?] Ke ni afiŝos rete. 817 00:36:49,300 --> 00:36:52,400 >> Tutoring estas ankaŭ disponeblaj por tiuj studentoj, libere de la kurso 818 00:36:52,400 --> 00:36:54,750 propra dungitaro se vi ŝatus pli intima en unu, 819 00:36:54,750 --> 00:36:58,940 aŭ du aŭ tri samklasanoj nur, laboranta kun unu el la kurso de laborantaranoj. 820 00:36:58,940 --> 00:37:02,320 Kaj efektive, tiuj ĉi estas nur iuj de la kurso de laborantaranoj, 821 00:37:02,320 --> 00:37:04,120 kelkaj el kiuj vi instruos vin renkonti en nur momento. 822 00:37:04,120 --> 00:37:07,440 Fakte, CS50 propra kapo instruado ulo, 823 00:37:07,440 --> 00:37:09,790 kaj kapo kurson asistanto, kaj preceptor, 824 00:37:09,790 --> 00:37:12,998 povus veni supren, permesi ilin diri saluton. 825 00:37:12,998 --> 00:37:22,498 >> [Aplaŭdo] 826 00:37:22,498 --> 00:37:23,456 Parolanto 1: [inaudible]. 827 00:37:23,456 --> 00:37:51,842 828 00:37:51,842 --> 00:37:57,856 >> [Aplaŭdo] 829 00:37:57,856 --> 00:37:58,814 Parolanto 2: [inaudible]. 830 00:37:58,814 --> 00:38:17,240 831 00:38:17,240 --> 00:38:27,238 >> [Aplaŭdo] 832 00:38:27,238 --> 00:38:28,196 Parolanto 3: [inaudible]. 833 00:38:28,196 --> 00:38:58,951 834 00:38:58,951 --> 00:39:03,120 >> [Aplaŭdo] 835 00:39:03,120 --> 00:39:06,740 >> DAVID Malan: Kaj permesu al ni alporti surŝipe du el CS50 la plej 836 00:39:06,740 --> 00:39:09,730 altranga personaro, Rob kaj Zamayla tiel. 837 00:39:09,730 --> 00:39:15,120 >> [Aplaŭdo] 838 00:39:15,120 --> 00:39:17,226 >> Efektive, ambaŭ Rob kaj Zamayla estis kun ni 839 00:39:17,226 --> 00:39:19,940 tiom longe, ke mi povis enirontajn en CS50 la arkivoj 840 00:39:19,940 --> 00:39:22,470 kaj trovi tiun tre SD bildoj de ilin partopreni 841 00:39:22,470 --> 00:39:25,402 sur scenejo mem kelkaj jaroj. 842 00:39:25,402 --> 00:39:26,110 ROB: [inaudible]. 843 00:39:26,110 --> 00:39:53,660 844 00:39:53,660 --> 00:39:59,247 >> [Aplaŭdo] 845 00:39:59,247 --> 00:40:00,080 ZAMAYLA: [inaudible] 846 00:40:00,080 --> 00:40:50,888 847 00:40:50,888 --> 00:40:52,467 >> [Aplaŭdo] 848 00:40:52,467 --> 00:40:53,425 DAVID Malan: Dankon. 849 00:40:53,425 --> 00:40:56,160 850 00:40:56,160 --> 00:40:58,030 Do krom tiuj teamanoj ĉi tie, 851 00:40:58,030 --> 00:41:01,662 CS50 havas teamon de preskaŭ 100 stabanojn, kiuj ĉiuj 852 00:41:01,662 --> 00:41:04,370 Estos disponebla por sekcioj kaj oficejo horoj kaj tiel plu. 853 00:41:04,370 --> 00:41:06,920 Kaj kiel Rob diras ankaŭ, tiu estas la plej signifa revizio 854 00:41:06,920 --> 00:41:09,534 el CS50 en la 10 jaroj kiuj Mi estis en [inaudible]. 855 00:41:09,534 --> 00:41:12,200 [Inaudible] centris speciale en havigante apogo strukturo, 856 00:41:12,200 --> 00:41:14,050 borderas for multajn la macizo kiu estas estita 857 00:41:14,050 --> 00:41:16,870 amasigitaj en 10 jaroj de ripeta evoluoj 858 00:41:16,870 --> 00:41:18,120 en la paso de problemo aroj. 859 00:41:18,120 --> 00:41:21,470 >> Do ĉi tiu jaro, ne nur en klaso sed ankaŭ en la formo de la kurso la problemo 860 00:41:21,470 --> 00:41:24,800 aroj, se vi trovas aferoj esti pli stiligitaj, Trimmer, multe 861 00:41:24,800 --> 00:41:26,700 pli regebla ol en jaroj pasintaj, dum ni 862 00:41:26,700 --> 00:41:31,330 versxis iom el la pakaĵo tio disvolvita de naturo de evoluanta jaro 863 00:41:31,330 --> 00:41:32,970 post jaro kaj ripetanta. 864 00:41:32,970 --> 00:41:35,110 Do la nova kaj plibonigita komenciĝas hodiaŭ. 865 00:41:35,110 --> 00:41:37,860 >> Vi renkontos iun pli de la Kompreneble stabo en la [inaudible] 866 00:41:37,860 --> 00:41:40,186 ĉe 2:30, kie ni servos, kiel tradicio, kuko. 867 00:41:40,186 --> 00:41:42,060 Ekzistas iom pli kuko ol tiu, sed vi 868 00:41:42,060 --> 00:41:44,690 renkontas Erin kaj Tobias kaj aliaj ankoraŭ. 869 00:41:44,690 --> 00:41:46,470 Kaj mi donos al vi tour antaŭ ni aŭdas 870 00:41:46,470 --> 00:41:49,600 de iuj de la aliaj laborantaranoj en la klaso, de kio atendas ankaŭ. 871 00:41:49,600 --> 00:41:52,730 Fakte, ni ĉiam komencu CS50 semestro ĉi venas sabaton, 872 00:41:52,730 --> 00:41:54,330 kun kio nomiĝas CS50 Puzlo Tago. 873 00:41:54,330 --> 00:41:56,710 >> Ĝi havas nenion komunan kun komputiko per, 874 00:41:56,710 --> 00:41:58,669 sed kun ĉirkaŭ problemo solvanta pli ĝenerale. 875 00:41:58,669 --> 00:42:01,210 Kaj se vi tiel elektos partopreni, po kelkaj el la invitoj, 876 00:42:01,210 --> 00:42:03,460 vi eble vidis pordon faligita aŭ sur la scenejo ĉi tie, 877 00:42:03,460 --> 00:42:05,830 ĝi estas ŝanco en teamoj de du aŭ tri aŭ kvar, 878 00:42:05,830 --> 00:42:10,680 partopreni por puzloj kaj pico kaj premiojn kaj more-- tiu sabato, 879 00:42:10,680 --> 00:42:12,560 resti agordita por pli. 880 00:42:12,560 --> 00:42:15,082 >> Vi trovos ankaŭ, ke ĉiu Vendredo, je Fajro kaj Glacio, 881 00:42:15,082 --> 00:42:16,790 does CS50 alportos tuta aro da studentoj 882 00:42:16,790 --> 00:42:19,100 lunĉi, fari granda klaso sentas pli intima, 883 00:42:19,100 --> 00:42:21,820 kaj ĝenerale kunvenigi alumni kaj amikoj de industrio 884 00:42:21,820 --> 00:42:24,710 paroli pri kio oni havas estis ĝis ekde studentiĝado. 885 00:42:24,710 --> 00:42:27,820 Simile, tiu jaro, ni inaŭguri la unuan CS50 50 886 00:42:27,820 --> 00:42:31,390 kodigo contest-- mez-semestre ŝanco permesi ĉiuj 887 00:42:31,390 --> 00:42:35,430 sur opt en formo, havi defio de menskapablo kontraŭ samklasanoj, 888 00:42:35,430 --> 00:42:39,250 denove en teamoj de du aŭ tri aŭ kvar, uzante nur ke programado 889 00:42:39,250 --> 00:42:41,920 savvy ke vi tiam havas sub via zono post nur ses aŭ sep 890 00:42:41,920 --> 00:42:44,710 semajnoj de la klaso, kaj partoprenante en tiu speco de konkurado 891 00:42:44,710 --> 00:42:50,261 online-- se vi ŝatus kulturi viajn proprajn lertecojn des pli en tiu defio. 892 00:42:50,261 --> 00:42:52,760 Fine de la semestro estas la tn CS50 Hackathon-- 893 00:42:52,760 --> 00:42:56,970 ŝanco kiu komenciĝas je 7:00 PM finiĝas je 7:00 AM, kaj survoje 894 00:42:56,970 --> 00:43:01,900 Estas 12 vesperaj horoj en kiuj plonĝi en la paso fino project-- 895 00:43:01,900 --> 00:43:04,820 ŝancon desegni kaj apliki plej ion de intereso 896 00:43:04,820 --> 00:43:06,980 al vi per via instruado ulo gvido. 897 00:43:06,980 --> 00:43:09,600 Ĉirkaŭ 9:00 AM ni tipe servi pico, 1:00 AM, 898 00:43:09,600 --> 00:43:13,210 Philippe, kaj la malmultaj el ni kiu ankoraŭ maldorma je 5:00 AM, 899 00:43:13,210 --> 00:43:16,310 Estas pramo bussed malsupren la vojo al IHOP por matenmanĝo. 900 00:43:16,310 --> 00:43:19,340 >> Kaj tiam post kelkaj tagoj estas la tn CS50 fare-- 901 00:43:19,340 --> 00:43:23,450 finis la semestro ekspozicio en okazigo de kiom ege multaj 902 00:43:23,450 --> 00:43:28,200 de CS50 studentoj venis de semajno nulo la tutan vojon al semajno, 903 00:43:28,200 --> 00:43:32,610 kaj tenanta en menso ke 73% de tiuj samklasanoj kaj via ĉi jaro havas 904 00:43:32,610 --> 00:43:34,840 neniam prenis CS klaso antaŭe. 905 00:43:34,840 --> 00:43:39,226 Fakte, al reemphasize tiel, tie Estas kelkaj pli vizaĝoj de CS50 bastonon. 906 00:43:39,226 --> 00:43:40,184 Parolanto 4: [inaudible]. 907 00:43:40,184 --> 00:43:45,909 908 00:43:45,909 --> 00:43:46,867 Parolanto 5: [inaudible]. 909 00:43:46,867 --> 00:43:51,332 910 00:43:51,332 --> 00:43:52,290 Parolanto 6: [inaudible]. 911 00:43:52,290 --> 00:43:55,276 912 00:43:55,276 --> 00:43:56,234 Parolanto 7: [inaudible]. 913 00:43:56,234 --> 00:44:01,727 914 00:44:01,727 --> 00:44:02,643 Parolanto 8: [inaudible] 915 00:44:02,643 --> 00:44:10,066 916 00:44:10,066 --> 00:44:11,024 Parolanto 9: [inaudible]. 917 00:44:11,024 --> 00:44:14,475 918 00:44:14,475 --> 00:44:15,461 >> Parolanto 4: [inaudible]. 919 00:44:15,461 --> 00:44:16,461 >> Parolanto 10: [inaudible]. 920 00:44:16,461 --> 00:44:21,456 921 00:44:21,456 --> 00:44:23,438 Parolanto 11: [inaudible]. 922 00:44:23,438 --> 00:44:24,438 Parolanto 12: [inaudible]. 923 00:44:24,438 --> 00:44:30,438 924 00:44:30,438 --> 00:44:31,396 Parolanto 13: [inaudible] 925 00:44:31,396 --> 00:44:37,360 926 00:44:37,360 --> 00:44:40,342 >> Parolanto 14: [inaudible]. 927 00:44:40,342 --> 00:44:42,863 >> Parolanto 13: [inaudible]. 928 00:44:42,863 --> 00:44:43,821 Parolanto 15: [inaudible] 929 00:44:43,821 --> 00:44:48,785 930 00:44:48,785 --> 00:44:49,785 Parolanto 16: [inaudible]. 931 00:44:49,785 --> 00:44:53,761 932 00:44:53,761 --> 00:44:55,252 >> Parolanto 11: [inaudible] 933 00:44:55,252 --> 00:44:57,773 934 00:44:57,773 --> 00:44:58,731 Parolanto 5: [inaudible]. 935 00:44:58,731 --> 00:45:11,250 936 00:45:11,250 --> 00:45:15,130 DAVID Malan: Iuj de la teamo vidas butikumado klasoj. 937 00:45:15,130 --> 00:45:17,760 Sed se tiuj membroj de CS50 bastono estas tie, 938 00:45:17,760 --> 00:45:19,230 povus veni supren por nur momento. 939 00:45:19,230 --> 00:45:23,450 CS50 TFS kaj CAS kaj [? bastonon?] membroj here-- tiuj estas nur kelkaj 940 00:45:23,450 --> 00:45:28,880 de la faces-- unu el kiun vi ĵus vidis, kaj kelkaj alia lando kaj kelkaj aliaj 941 00:45:28,880 --> 00:45:30,020 ankoraŭ. 942 00:45:30,020 --> 00:45:33,242 Kial ni ne iru antaŭen kaj permesi vi uloj kvin minuta paŭzo. 943 00:45:33,242 --> 00:45:35,450 Se vi bezonas anaso al butiko klasoj, tio estas bone. 944 00:45:35,450 --> 00:45:38,900 Kaj post kvin minutoj, ni rekomencu, prenante rigardu Scratch-- la unua 945 00:45:38,900 --> 00:45:42,420 de nia programlingvo, renkonti la kurso de dungitaro tie iu pli, 946 00:45:42,420 --> 00:45:45,020 kaj enfokusigi finfine sur problemo aro nulo. 947 00:45:45,020 --> 00:45:46,710 Do ni revenos post kvin minutoj. 1 00:45:46,864 --> 00:45:47,370 >> Bone. 2 00:45:47,370 --> 00:45:48,590 Do ni estas dorso. 3 00:45:48,590 --> 00:45:51,330 Kaj en niaj ceteraj tempo hodiaŭ, la celo 4 00:45:51,330 --> 00:45:54,320 estas ebenigi la ludkampo laŭ iuj terminologio, 5 00:45:54,320 --> 00:45:55,297 laŭ iuj ideoj. 6 00:45:55,297 --> 00:45:57,380 Ĉar ja, kiel por kelkaj el la furorlisto antaŭe, 7 00:45:57,380 --> 00:46:00,130 tie tuj estos gamo de niveloj de sperto en la klaso, 8 00:46:00,130 --> 00:46:03,210 iuj de kies studentoj havas prenita iuj programado antaŭe, 9 00:46:03,210 --> 00:46:04,200 kelkaj el kiuj havas ne. 10 00:46:04,200 --> 00:46:07,430 Kaj tial kun ĉi tiu unua problemo aro kaj kun tiu unua lingvo 11 00:46:07,430 --> 00:46:10,830 ni havas ŝancon por komenci preni por donita post hodiaŭ 12 00:46:10,830 --> 00:46:12,960 iu komuna vortprovizo kaj ideo. 13 00:46:12,960 --> 00:46:15,590 >> Kaj ni faros ĉi tra la kurso unuaj languages-- 14 00:46:15,590 --> 00:46:21,070 krom C kaj Python kaj Javascript kaj SQL kaj HTML kaj CSS, 15 00:46:21,070 --> 00:46:24,450 ni estos koncentranta komence kaj ĝuste por problemo starigis nulo 16 00:46:24,450 --> 00:46:28,160 sur tiu grafika lingvo, nomita Nulo, disvolvita de MIT'S Media Lab 17 00:46:28,160 --> 00:46:30,880 laŭ la vojo, por helpi studentoj kaj infanoj ĉefe 18 00:46:30,880 --> 00:46:35,070 esprimi algorithmically-- en maniero pli konsekvenca kun kio 19 00:46:35,070 --> 00:46:37,300 ni povus nomi komputa pensado. 20 00:46:37,300 --> 00:46:40,985 >> Kaj ĝi estas utila lingvo, ĉar tre rapide venontsemajne en semajno unu, 21 00:46:40,985 --> 00:46:44,360 ni transiron al pli tradiciaj kaj arcano lingvo nomata 22 00:46:44,360 --> 00:46:46,370 C, kiu estas pure teksta. 23 00:46:46,370 --> 00:46:48,930 Vi nur uzas klavaron Por skribi instrukciojn 24 00:46:48,930 --> 00:46:50,230 kiel tiuj sur la ekrano. 25 00:46:50,230 --> 00:46:52,840 Sed eĉ se vi neniam vidis programlingvo antaŭe, 26 00:46:52,840 --> 00:46:55,170 en nur rigardante tiu, ĉiu estu kripta, 27 00:46:55,170 --> 00:47:00,010 vi versxajne povas diveni ke probable presas Saluton Mondo. 28 00:47:00,010 --> 00:47:02,050 Sed ekzistas multe de sintaksaj superkape tie. 29 00:47:02,050 --> 00:47:05,770 Ekzistas la stranga hash simbolo aŭ hash etikedo ĝis supro. 30 00:47:05,770 --> 00:47:08,900 Jen la angulo krampoj, iuj krampoj, krispa krampoj, duon-colon-- 31 00:47:08,900 --> 00:47:11,880 tie estas nur tiom da vida sintakso kiu alvenas en la vojo. 32 00:47:11,880 --> 00:47:13,940 Ni komencas la kurson per Nulo tiel kiel akiri 33 00:47:13,940 --> 00:47:17,600 preter ĉiuj tiuj intelekte neinteresa distroj, 34 00:47:17,600 --> 00:47:20,290 kaj enfokusigi anstataŭ sur la ideoj. 35 00:47:20,290 --> 00:47:22,540 >> Fakte, tiu povus esti antaŭe. 36 00:47:22,540 --> 00:47:24,830 Tiu, pro tio, semajno estos post. 37 00:47:24,830 --> 00:47:26,760 Tiu, en ĉi grafikaĵo lingvo Scratch, 38 00:47:26,760 --> 00:47:29,870 Tiel vi povus apliki tiun saman program-- programo kiu kiam kuras, 39 00:47:29,870 --> 00:47:31,340 simple diras saluton mondo. 40 00:47:31,340 --> 00:47:34,740 Kaj kio estas agrable pri Scratch estas ke ĝi estas ĉi grafikaĵo programado 41 00:47:34,740 --> 00:47:38,780 medio kiu uzas enigmo pecoj aŭ blokoj, kiuj nur interplektiĝas kune 42 00:47:38,780 --> 00:47:40,440 se ĝi faras logikan sencon fari tion. 43 00:47:40,440 --> 00:47:43,810 Kaj kun Scratch povas evoluigi kuraĝigoj kaj interagaj ludoj 44 00:47:43,810 --> 00:47:47,270 kaj arto, kaj ajna nombro de aferoj kiu vi povus imagi en via propra menso, 45 00:47:47,270 --> 00:47:51,200 kaj efektivigi ilin simple trenante kaj delasante puzlo pecoj. 46 00:47:51,200 --> 00:47:54,265 >> Kaj efektive, ni havos la kapablon esprimi iuj de la samaj ideoj 47 00:47:54,265 --> 00:47:56,890 ke mi ĵus menciita momento antaŭe en la kunteksto de Mike Smith 48 00:47:56,890 --> 00:48:00,670 kaj serĉanta telefono book-- aferoj kiel funkcioj, nur agoj, 49 00:48:00,670 --> 00:48:03,070 aĵoj kiel maŝojn kiuj lavas aferojn denove kaj denove, 50 00:48:03,070 --> 00:48:05,170 variabloj, kiuj estas io ni enkonduki, 51 00:48:05,170 --> 00:48:08,086 sed estas familiara eble de algebra-- nur ia lokokupilo 52 00:48:08,086 --> 00:48:10,840 stoki iun valoron vi povus bezonas later-- Buleaj esprimoj, 53 00:48:10,840 --> 00:48:13,720 kie tiuj jes ne aŭ vera falsa demandoj de antaŭe. 54 00:48:13,720 --> 00:48:17,117 Kondiĉoj estas tiuj forkoj en la road-- tiuj branĉoj tiel diri. 55 00:48:17,117 --> 00:48:19,700 Kaj tiam tie estas kelkaj amatoro trajtoj ni vidos ankoraŭ hodiaŭ, 56 00:48:19,700 --> 00:48:22,850 nomata tabeloj kaj fadenoj kaj eventoj, kiujn ni tiam reviziti super 57 00:48:22,850 --> 00:48:24,460 tempo en malsamaj lingvoj. 58 00:48:24,460 --> 00:48:26,790 Sed Scratch permesas esplori ĉiujn tiujn. 59 00:48:26,790 --> 00:48:30,779 Do jen en Scratch, ĉi purpuran bloko estas kion funkcio estas tipe 60 00:48:30,779 --> 00:48:31,570 tuj aspekti. 61 00:48:31,570 --> 00:48:35,620 Tiu purpura enigmo peco kiu havas iun vorto kiel ekzemple, kiu estas la ago, 62 00:48:35,620 --> 00:48:38,490 kaj tiam ĝi povus havi argumento aŭ parameter-- iel 63 00:48:38,490 --> 00:48:41,140 de ia agordigo kion tio bloko faras 64 00:48:41,140 --> 00:48:45,182 tiel ke ĝi ne estas pre-determinita de MIT kion ĉi purpuran bloko diras. 65 00:48:45,182 --> 00:48:47,390 Fakte, vi vidos en momento ke mi povas tajpi 66 00:48:47,390 --> 00:48:49,931 la vortoj kiel saluton mondo, aŭ saluton David, aŭ saluton Zamayla, 67 00:48:49,931 --> 00:48:53,750 aŭ kion ajn mi volas, en la argumento por ke enigmo piece-- la blanka skatolo 68 00:48:53,750 --> 00:48:54,251 tie. 69 00:48:54,251 --> 00:48:57,166 Dume, se mi volas buklo, ni instruos vin vidu ke ekzistas puzlo pecoj kiuj 70 00:48:57,166 --> 00:48:58,640 aspektas iom oranĝkolora ŝatas tion. 71 00:48:58,640 --> 00:49:01,690 Kaj ilia formo ia sugestas ke io okazas denove kaj denove 72 00:49:01,690 --> 00:49:02,680 en ciklo. 73 00:49:02,680 --> 00:49:06,800 >> Do se mi volvi diri saluton mondo bloko kun ĉiam blokas en Scratch, 74 00:49:06,800 --> 00:49:10,307 ĝi estas ĵus tuj daŭre dirante saluton mondo por ĉiam, tute laŭvorte. 75 00:49:10,307 --> 00:49:12,390 Dume, estas alia tipo de buklo en Scratch 76 00:49:12,390 --> 00:49:14,348 ke ni see-- ripeto block-- kie, se vi 77 00:49:14,348 --> 00:49:17,940 scias anticipe kiom da fojoj Vi volas la buklo ekzekuti 78 00:49:17,940 --> 00:49:21,850 finia nombro de fojoj fact-- vin povas specifi ke tajpante en kelkaj 79 00:49:21,850 --> 00:49:25,380 aŭ eĉ ŝtopanta en variablo, kiel x aŭ y, kiel ni vidos. 80 00:49:25,380 --> 00:49:27,690 >> Fakte, variablojn kiel i en tiu kazo, kiu 81 00:49:27,690 --> 00:49:30,109 estas komuna nomo por entjera variablo kiu 82 00:49:30,109 --> 00:49:31,900 nur stokas number-- entjero povas esti, 83 00:49:31,900 --> 00:49:35,470 uzi tiun oranĝon bloko tie agordi variablon kiel i al nulo. 84 00:49:35,470 --> 00:49:38,900 Jen ekzemplo en verdo de Bulea esprimo en Scratch. 85 00:49:38,900 --> 00:49:43,700 Kvankam tiu aspektas kiel math formulo, math malegalecoj ŝatas tion 86 00:49:43,700 --> 00:49:45,320 vere estas Bulea esprimoj. 87 00:49:45,320 --> 00:49:46,570 Tio estas vera aŭ malvera. 88 00:49:46,570 --> 00:49:48,300 Mi estas malpli ol 50. 89 00:49:48,300 --> 00:49:51,815 Ĝi estas ĉu jes aŭ neniun respondon aŭ vera aŭ malvera respondo. 90 00:49:51,815 --> 00:49:53,940 Kaj ni ĝenerale nomas tiuj Bulea esprimoj. 91 00:49:53,940 --> 00:49:55,148 Kaj ĝi ne devas esti 50. 92 00:49:55,148 --> 00:49:57,970 Ĝi povas esti x malpli ol y, granda ol y, egala al y-- 93 00:49:57,970 --> 00:50:00,020 ajna nombro de aliaj demandoj povus esti demandita. 94 00:50:00,020 --> 00:50:03,250 >> Nun, unuavide, tiu povus aspekti subite tre aŭdaca tie, kaj ĝi estas. 95 00:50:03,250 --> 00:50:06,540 Sed koncepto saĝa, estas bela familiara de antaŭe. 96 00:50:06,540 --> 00:50:09,370 Se x estas pli malgranda ol y, ol diri tiel. 97 00:50:09,370 --> 00:50:12,230 Else if x estas pli granda ol y, tiam diru tiel. 98 00:50:12,230 --> 00:50:14,260 Alie diri x egalas al y. 99 00:50:14,260 --> 00:50:17,220 Do ni havas ekzemplon tie de tria scenario-- 100 00:50:17,220 --> 00:50:20,600 la nura tria possibility-- x estas aŭ granda ol, malpli ol, aŭ egala al. 101 00:50:20,600 --> 00:50:22,420 Do ni havas tri vojon forko en la vojo. 102 00:50:22,420 --> 00:50:26,290 >> Kaj rimarki kio estas malvarmeta here-- Scratch, ĝi ŝajnus, havas nur unu enigmo 103 00:50:26,290 --> 00:50:28,840 peco, en ĉi tiu kazo, en se alia bloko. 104 00:50:28,840 --> 00:50:32,090 Kaj tamen tiu ŝajnus implici vin povas nur havas du maniero forkon en la vojo. 105 00:50:32,090 --> 00:50:34,631 Vi povas iri maldekstra aŭ dekstra, sed kio pri tiu tria scenaro? 106 00:50:34,631 --> 00:50:35,760 Kio se x egalas y? 107 00:50:35,760 --> 00:50:36,500 Ne granda interkonsento. 108 00:50:36,500 --> 00:50:39,640 Prenu unu enigmo peco, meti alia ene de ĝi 109 00:50:39,640 --> 00:50:45,759 krei la semantika ekvivalento de se, alie se, else-- kaj nun vi 110 00:50:45,759 --> 00:50:47,300 havas vian tri maniero forkon en la vojo. 111 00:50:47,300 --> 00:50:49,091 Kaj kiel ni vidos, la Nulo puzlo pecoj 112 00:50:49,091 --> 00:50:51,820 povas etendiĝis kaj kreskis, do kiel al Cram pli aĵoj en ili. 113 00:50:51,820 --> 00:50:54,420 Vi ne devas konveni ĉio en ĝia defaŭlta grandeco. 114 00:50:54,420 --> 00:50:56,690 >> Tio estas io ni baldaŭ vidos nomata tabelo. 115 00:50:56,690 --> 00:51:00,880 Estas kiel list-- iel stokante multnombraj pecoj de informo 116 00:51:00,880 --> 00:51:02,886 en variablo, ne nur nombro. 117 00:51:02,886 --> 00:51:05,760 Tiujn ni vidos reprezentanto de iu nomita multi-threading. 118 00:51:05,760 --> 00:51:08,280 Fakte, ĉiuj viaj Macs kaj PC tiuj tagoj 119 00:51:08,280 --> 00:51:10,810 apogas multi-threading, kio signifas ke vi povas laŭlitere 120 00:51:10,810 --> 00:51:12,390 fari plurajn aferojn samtempe. 121 00:51:12,390 --> 00:51:15,390 Vi povas havi Microsoft Word en la malfono, laborante sur iu eseo. 122 00:51:15,390 --> 00:51:17,160 Vi havu retumilo fone malfermo 123 00:51:17,160 --> 00:51:18,720 G-poŝto aŭ Facebook aŭ similaj. 124 00:51:18,720 --> 00:51:22,730 Via komputilo povas fari multoblajn aferojn hodiaŭ ĉar ĝi estas mult-threaded, 125 00:51:22,730 --> 00:51:26,390 kaj programoj ili estas en en aparta estas ankaŭ multi-threaded. 126 00:51:26,390 --> 00:51:28,970 >> Ekzistas aĵoj nomata eventoj kiel bone en la mondo de Scratch, 127 00:51:28,970 --> 00:51:32,640 kaj tiam tie estas vojo tro, fari nia propra kutimo puzlo pecoj se aferoj 128 00:51:32,640 --> 00:51:34,810 ne vere ekzistas anticipe. 129 00:51:34,810 --> 00:51:38,260 Do ni motivi tion kiel sekvas. 130 00:51:38,260 --> 00:51:40,580 Kelkaj jaroj, kiam mi malkovrita Scratch, 131 00:51:40,580 --> 00:51:43,530 Kiam mi estis fakte grad studento ĉe MIT, ni 132 00:51:43,530 --> 00:51:45,640 mem estis taskigita fari hejmtaskoj. 133 00:51:45,640 --> 00:51:47,614 Kaj mi implemented-- kiu, en retrospekta, 134 00:51:47,614 --> 00:51:50,780 Estis tre malbona decido ĉar ĝi estas la plej exasperante kanto en la mondo 135 00:51:50,780 --> 00:51:53,321 aŭskulti dum ok horoj dum laboranta sur via homework-- 136 00:51:53,321 --> 00:51:57,180 sed ion mi vokus Oscar Tempo, kiu estas eble familiara kanto. 137 00:51:57,180 --> 00:51:59,820 >> CS50s posedas Jordanio Hayashi, unu el nia pli altranga personaro membroj, 138 00:51:59,820 --> 00:52:03,920 estas ĝisdatigita por 2015 kaj nun 2016, kiam reen en la tago, 139 00:52:03,920 --> 00:52:06,610 Mi havis ĉion ĝuste tuj en Oscar rubo povas. 140 00:52:06,610 --> 00:52:09,320 Nun ni apogas reciklado kaj compostaje. 141 00:52:09,320 --> 00:52:12,050 >> Sed pentri la bildon kion ni povas fari tie 142 00:52:12,050 --> 00:52:14,130 kaj motivi kelkaj la malsupra nivelo ekzemploj, 143 00:52:14,130 --> 00:52:16,400 ni povus akiri unu alia volontulo simple venu supren 144 00:52:16,400 --> 00:52:18,331 kaj ludi mian unuan hejmtasko asigno iam? 145 00:52:18,331 --> 00:52:18,830 Venu supren. 146 00:52:18,830 --> 00:52:19,250 Kiel vi nomiĝas? 147 00:52:19,250 --> 00:52:20,030 >> HENRY: Henry. 148 00:52:20,030 --> 00:52:22,660 >> DAVID Malan: Henry, venu supren. 149 00:52:22,660 --> 00:52:24,190 Venu supren. 150 00:52:24,190 --> 00:52:27,070 Gvidi ĉu vojo kaj vi vidos, momente, 151 00:52:27,070 --> 00:52:29,870 Mi tuj iros antaŭen kaj frapis la verda flago en la supra dekstra mano 152 00:52:29,870 --> 00:52:31,100 angulo, kiu signifas iri. 153 00:52:31,100 --> 00:52:33,320 La malgranda halto signo piktogramon tuj diru halto, 154 00:52:33,320 --> 00:52:35,490 kaj tio estas kiam vi komencos kaj ĉesigi la programon. 155 00:52:35,490 --> 00:52:36,450 Mi ĝojas renkonti vin. 156 00:52:36,450 --> 00:52:36,950 Bone. 157 00:52:36,950 --> 00:52:39,100 Do ni tuj vidas la instrukciojn sur la ekrano en nur momento. 158 00:52:39,100 --> 00:52:41,450 Kaj nur ludas ĉi ludo dum kelkaj seconds-- fidi min, 159 00:52:41,450 --> 00:52:43,670 ni ne tuj volas ludi tutan vojon al la end-- vi volas 160 00:52:43,670 --> 00:52:45,470 akiri senton de kio la programo faras. 161 00:52:45,470 --> 00:52:49,170 Kaj pli ĵus temigi Henry esti bona aŭ malbona en tiu ludo, fokuso 162 00:52:49,170 --> 00:52:52,600 kaj kiel gxi estis implementado por mi originale kaj tiam cxe Jordan. 163 00:52:52,600 --> 00:52:54,640 Alivorte, kie estas la variabloj? 164 00:52:54,640 --> 00:52:55,520 Kie estas la masxojn? 165 00:52:55,520 --> 00:52:56,520 Kie estas la funkcioj? 166 00:52:56,520 --> 00:53:00,700 Kaj ni vidos se ni ne vidas tiuj sub la kapuĉo. 167 00:53:00,700 --> 00:53:03,660 >> Simple klaku kaj treni rubo al la taŭga ujo. 168 00:53:03,660 --> 00:54:02,100 >> [MUZIKO Ludanta] 169 00:54:02,100 --> 00:54:02,600 Bone. 170 00:54:02,600 --> 00:54:03,160 Tio estas tre bona. 171 00:54:03,160 --> 00:54:04,286 Kial ni ne halti ĝin. 172 00:54:04,286 --> 00:54:04,786 Dankon. 173 00:54:04,786 --> 00:54:05,830 Gratulojn al Henriko. 174 00:54:05,830 --> 00:54:07,002 Dankon. 175 00:54:07,002 --> 00:54:10,690 >> [Aplaŭdo] 176 00:54:10,690 --> 00:54:12,450 >> Imagu elpurigi tiu programo. 177 00:54:12,450 --> 00:54:15,880 Se estas problemo du minutoj en la song-- sed tiel 178 00:54:15,880 --> 00:54:17,430 kio okazas ĉi tie vere? 179 00:54:17,430 --> 00:54:20,900 Kiel komplika kiel ĝi povus komenci ŝajnas akiri super tempo, 180 00:54:20,900 --> 00:54:22,910 ja pli kaj pli aĵoj komencis fali, 181 00:54:22,910 --> 00:54:25,370 kio estas interesa pri tian example-- 182 00:54:25,370 --> 00:54:27,270 kaj ni vidos kelkajn others-- estas ke se vi 183 00:54:27,270 --> 00:54:30,416 rigardi preter la komplekseco aŭ la sofisticación de la ludo, 184 00:54:30,416 --> 00:54:33,040 ekzistas tre simpla konstruaĵo blokoj kiuj play-- ĉiuj el kiuj, 185 00:54:33,040 --> 00:54:35,840 se vi purigas ilin al tiuj konstruelementoj, estas tre atingebla 186 00:54:35,840 --> 00:54:37,401 kaj implementable al si. 187 00:54:37,401 --> 00:54:39,150 Ekzemple, estas estis iu tempo, sed mi estas 188 00:54:39,150 --> 00:54:42,900 bela certa kio mi komence faris kiam farante tiun ludon por la unua fojo 189 00:54:42,900 --> 00:54:44,787 mi tute kiel procrastinated. 190 00:54:44,787 --> 00:54:47,120 Mi ne enfokusigi tute en la logiko aŭ la puzlo pecoj, 191 00:54:47,120 --> 00:54:50,810 Mi temigis la grafikojn kaj trovo la strato post la rubujon 192 00:54:50,810 --> 00:54:51,540 kaj ĉiuj de tiu. 193 00:54:51,540 --> 00:54:53,456 Sed tiuj estis kondiĉo ingrediencoj unue. 194 00:54:53,456 --> 00:54:57,220 Kaj unufoje mi finis procrastinating kaj elmetanta la komunajn kadro, 195 00:54:57,220 --> 00:55:00,337 Mi decidis, ke mi simple fari peco de rubo falo el la ĉielo. 196 00:55:00,337 --> 00:55:02,170 Kaj ni vidos Scratch Elportas aĵoj nomata 197 00:55:02,170 --> 00:55:06,386 sprites-- karakteroj kiuj povas havas malsamajn kostumojn sur tiel ili 198 00:55:06,386 --> 00:55:07,010 aspektas malsamaj. 199 00:55:07,010 --> 00:55:09,660 >> Do mi metis rubo kostumon sur unu tia sprite. 200 00:55:09,660 --> 00:55:12,007 Kaj mi ĵus bezonis fali de la ĉielo. 201 00:55:12,007 --> 00:55:14,590 Kaj do rezultas, Scratch, kiel plej programlingvoj, 202 00:55:14,590 --> 00:55:18,099 Elportas hazardaj nombroj aŭ teknike _pseudocode_ hazardaj nombroj, 203 00:55:18,099 --> 00:55:20,390 tial trenante kaj delasante certaj enigmo pecoj, 204 00:55:20,390 --> 00:55:22,890 Mi estis kapabla havi la rubujon venas de maldekstre, unue. 205 00:55:22,890 --> 00:55:25,580 Kaj tiam la sekvanta tempo falis el dekstren kaj poste de la mezo. 206 00:55:25,580 --> 00:55:28,060 Kaj la tuta ludo ne estis nur havi rubo falas de la ĉielo. 207 00:55:28,060 --> 00:55:29,770 Vi ne povus noti al ĝi aŭ alklaku ĝin. 208 00:55:29,770 --> 00:55:31,103 Vi ne povis malfermi la rubo povas. 209 00:55:31,103 --> 00:55:32,160 Vi ne povis fari ion. 210 00:55:32,160 --> 00:55:34,450 Sed estis bebo paŝo al mia finfina vizio. 211 00:55:34,450 --> 00:55:36,720 >> Kaj post tio, mi efektive implementado ian 212 00:55:36,720 --> 00:55:41,230 de sensado tiel ke se vi klaku kaj treni sur la peco de rubo 213 00:55:41,230 --> 00:55:44,350 super la rubo povas, Oscar kovrilo estus malfermi kaj fermi. 214 00:55:44,350 --> 00:55:47,650 Nenio okazus al la rubo, sed almenaŭ la kovrilo estus malfermi kaj fermi. 215 00:55:47,650 --> 00:55:49,642 Do tiam kontrolu, paŝi du de du. 216 00:55:49,642 --> 00:55:52,100 Kaj tio estas kio tuj estos ŝlosilo en ambaŭ problemo aro nulo 217 00:55:52,100 --> 00:55:55,970 kaj en programado pli ĝenerale, estas preni tiujn tre intencaj bebo paŝoj. 218 00:55:55,970 --> 00:55:59,390 Ĉar ne nur faras ĝi permesas sentas honeste plenumita multe pli 219 00:55:59,390 --> 00:56:01,250 quickly-- estas la plej malbona en la mondo 220 00:56:01,250 --> 00:56:06,149 provi implementar ĉiuj Oscar Tempo, tiam horoj poste batis la verda flago, 221 00:56:06,149 --> 00:56:08,440 kaj nenio funkcias kiel atendis ĉar kie do vi eĉ 222 00:56:08,440 --> 00:56:11,150 komencas elpurigi aŭ solvi tiun programon? 223 00:56:11,150 --> 00:56:12,470 Estas nur abrumadora. 224 00:56:12,470 --> 00:56:16,792 >> Kaj tiel vere brakumi tiun ideon preni steps-- bebo paŝoj denove 225 00:56:16,792 --> 00:56:19,000 kaj again-- edifado iu kiu, en la fino, 226 00:56:19,000 --> 00:56:23,672 vere impona kaj kompleksa, sed unue, estas ne preskaŭ tiel tiel. 227 00:56:23,672 --> 00:56:24,630 Fakte, ni faru tion. 228 00:56:24,630 --> 00:56:28,989 Lasu min kaj- Scratch mem ekzistas en la reto sub Scratch.MIT.edu, 229 00:56:28,989 --> 00:56:30,780 kaj vi ricevos informon kiel multe pli en problemo 230 00:56:30,780 --> 00:56:34,200 fiksita nulo, la specifo por kiu estas jam sur CS50 la retejo. 231 00:56:34,200 --> 00:56:35,725 >> Sed jen kion Scratch mem. 232 00:56:35,725 --> 00:56:38,210 Kaj estas vere nur tri primaraj areoj. 233 00:56:38,210 --> 00:56:40,980 Ĉe la supro lasis tie estas la tn stadio. 234 00:56:40,980 --> 00:56:41,810 Tio estas Scratch. 235 00:56:41,810 --> 00:56:43,710 La defaŭlta kostumo estas kato. 236 00:56:43,710 --> 00:56:46,950 Kaj tio estas la rektangula mondo kiun vi povas move-- supren, malsupren, forlasis, 237 00:56:46,950 --> 00:56:48,130 dekstra kaj iuj aliaj aĵoj. 238 00:56:48,130 --> 00:56:51,839 Meze tie estas niaj kategorioj aŭ nia pallets de puzlo pecoj, 239 00:56:51,839 --> 00:56:53,630 kaj malsamaj koloroj signifas malsamajn aferojn. 240 00:56:53,630 --> 00:56:56,520 Kaj se vi poke ĉirkaŭe, vi vidos aĵoj kiel maŝojn kaj kondiĉoj 241 00:56:56,520 --> 00:56:58,160 kaj variabloj kaj aliaj ingrediencoj. 242 00:56:58,160 --> 00:57:00,060 >> Kaj tiam super tie estas la skriptoj areo. 243 00:57:00,060 --> 00:57:03,020 Tie estas kie mi povas treni kaj faligi tiuj puzlo pecoj fari aferojn. 244 00:57:03,020 --> 00:57:04,690 Do ni faru unu tia afero. 245 00:57:04,690 --> 00:57:06,630 Lasu min kaj- kaj mi scias kie ĝi estas. 246 00:57:06,630 --> 00:57:10,110 Do mi tuj tuj alklaki kie mi scias aferojn pretas esti, 247 00:57:10,110 --> 00:57:13,140 sed montrante kaj klakante kaj ŝovas ĉirkaŭ estas neevitebla. 248 00:57:13,140 --> 00:57:15,320 Do kiam verda flago clicked, Kion mi volas fari? 249 00:57:15,320 --> 00:57:17,100 Mi tuj faros tion. 250 00:57:17,100 --> 00:57:20,699 Mi tuj treni tiun purpura enigmo peco, diru saluton por du sekundoj, 251 00:57:20,699 --> 00:57:21,490 kaj lasu min zomi. 252 00:57:21,490 --> 00:57:23,865 >> Kaj mi tuj ŝanĝos ĉi esti kion mi volas ke ĝi be-- 253 00:57:23,865 --> 00:57:26,471 saluton mondo por du sekundoj estas fajna. 254 00:57:26,471 --> 00:57:28,970 Nun, mi tuj klaku verda flago, aŭ se mi vere volas, 255 00:57:28,970 --> 00:57:31,820 Mi povas Plenekrano ĝin kaj tiam revenu. 256 00:57:31,820 --> 00:57:34,060 Ĝi simple observu ĉiu en unu fenestro. 257 00:57:34,060 --> 00:57:36,141 Verda flag-- saluton mondo. 258 00:57:36,141 --> 00:57:36,640 Bone. 259 00:57:36,640 --> 00:57:38,789 Ne ĉiuj kiuj interesa. 260 00:57:38,789 --> 00:57:40,080 Do lasu min antaŭeniri kaj fari tion. 261 00:57:40,080 --> 00:57:41,038 Mi provu alian. 262 00:57:41,038 --> 00:57:44,740 Kiam verda flago clicked-- ni fari ion kiel sono. 263 00:57:44,740 --> 00:57:46,880 Kaj rimarki ke el la skatolo senpage vi ricevas 264 00:57:46,880 --> 00:57:49,910 kato sono, kiel estas la defaŭlta sprite. 265 00:57:49,910 --> 00:57:52,380 Do nun lasu min iri antaŭen kaj batis la verda flago nun. 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 Jen adorable. 269 00:57:55,370 --> 00:57:57,040 Mi programado. 270 00:57:57,040 --> 00:57:58,550 Do kion mi faris? 271 00:57:58,550 --> 00:58:00,430 Tiu estas la ekvivalento de programo. 272 00:58:00,430 --> 00:58:01,600 Estas evidente super simpla. 273 00:58:01,600 --> 00:58:05,300 Ne vere preni ĉiuj kiuj multe penado kaj MIT faris la plimulton de la laboro, 274 00:58:05,300 --> 00:58:07,890 sed mi nomis funkcio. 275 00:58:07,890 --> 00:58:08,940 Mi uzis funkcio. 276 00:58:08,940 --> 00:58:12,480 Mi faris iun agon, uzante nur ke oni purpura enigmo peco. 277 00:58:12,480 --> 00:58:15,960 >> Nu, se mi volas fari tri meows en vico? 278 00:58:15,960 --> 00:58:18,570 Lasu min antaŭeniri kaj fari du kaj tri. 279 00:58:18,570 --> 00:58:20,910 Kaj rimarki ke kiam vi ŝvebi proksime enigmo pecon, 280 00:58:20,910 --> 00:58:22,970 iom blanka linio aperas ia magnete, 281 00:58:22,970 --> 00:58:25,190 kaj ĝi alkroĉiĝos kune kiam vi forlasis. 282 00:58:25,190 --> 00:58:26,600 Ni vidu kio okazas tie. 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 >> Ekzistas cimon. 286 00:58:34,510 --> 00:58:35,650 Mi nur aŭdis unu meow. 287 00:58:35,650 --> 00:58:37,440 Kial povus esti? 288 00:58:37,440 --> 00:58:39,001 Yeah? 289 00:58:39,001 --> 00:58:39,500 Yeah. 290 00:58:39,500 --> 00:58:41,650 Ni ne vere auxskultos, sed tio estas bona intuicio. 291 00:58:41,650 --> 00:58:43,400 Ili ĉiuj ludas samtempe. 292 00:58:43,400 --> 00:58:44,000 Kial? 293 00:58:44,000 --> 00:58:46,587 Nu, la komputilo estas nur iranta fari kion vi diros ĝin fari. 294 00:58:46,587 --> 00:58:48,670 Sekve se vi diras, teatraĵo sono, ludi sonon, ludi sonon: 295 00:58:48,670 --> 00:58:52,887 sed vi ne diris ĝin al ludi ĝis vi faris, ludi ĝis vi faris, 296 00:58:52,887 --> 00:58:54,970 ĝi tuj Trablovu la programo vere rapida 297 00:58:54,970 --> 00:58:56,830 kaj ĉu nur kion vi diros ĝin fari. 298 00:58:56,830 --> 00:58:59,040 >> Do mi efektive devas redifini tiun en kelkaj manieroj. 299 00:58:59,040 --> 00:59:00,623 Mi povis nur fari tion, forigi ĉi. 300 00:59:00,623 --> 00:59:04,180 Mi provu ĉi alia enigmo piece-- ludi sonon meow ĝis faris, 301 00:59:04,180 --> 00:59:07,072 kaj tiam treni tri tiuj kaj klaku Play. 302 00:59:07,072 --> 00:59:09,430 >> [MEOWING] 303 00:59:09,430 --> 00:59:13,350 >> Tio ne vere very-- dankon you-- tre natura. 304 00:59:13,350 --> 00:59:16,590 Do kial ne I-- lasu mi iros por kontroli tie. 305 00:59:16,590 --> 00:59:17,090 Nice. 306 00:59:17,090 --> 00:59:22,230 Atendi unu sekundo, kaj nun lasu min iri reen al sonoj kaj teatraĵo sono ĝis faris, 307 00:59:22,230 --> 00:59:24,620 kaj tiam mi ricevas atendu unu sekundo. 308 00:59:24,620 --> 00:59:28,692 Kaj tiam mi iros kaj akiri unu pli sonon kaj tie ni iru. 309 00:59:28,692 --> 00:59:31,350 >> [MEOWING] 310 00:59:31,350 --> 00:59:35,930 >> Iom pli natura, sed tio ne estas tre efika. 311 00:59:35,930 --> 00:59:39,830 Kiel Mi estis akiranta truis, ĉio estu ĝi mallonge, premante reen 312 00:59:39,830 --> 00:59:42,724 kaj vere duobligante mia work-- preskaux kopii kaj bati. 313 00:59:42,724 --> 00:59:44,640 Efektive, se mi Kontroli klakis aŭ dekstra klakis, 314 00:59:44,640 --> 00:59:46,500 Mi povus esti simple kopiitaj kaj batitaj. 315 00:59:46,500 --> 00:59:49,870 Kio estus pli bona konstrui uzi? 316 00:59:49,870 --> 00:59:51,090 Kio ideon de antaŭe? 317 00:59:51,090 --> 00:59:51,990 >> Jes, do buklo. 318 00:59:51,990 --> 00:59:54,580 Kaj fakte, se ni pikis ĉirkaŭe, ni povus trovi ĝuste tio. 319 00:59:54,580 --> 00:59:57,730 Mi iros al Eventoj aŭ prefere Kontrolo. 320 00:59:57,730 --> 00:59:59,650 Tiel repeat-- mi ne deziras ĝin esti 10 fojojn. 321 00:59:59,650 --> 01:00:01,370 Tio tuj akiri ĝena rapide. 322 01:00:01,370 --> 01:00:03,380 Sed mi ripetos tri fojojn. 323 01:00:03,380 --> 01:00:06,355 Lasu min reiri al sanaj kaj ludi la sonon ĝis ĝi estas farita. 324 01:00:06,355 --> 01:00:08,480 Lasu min reiri al Kontrolo kaj nur atendi unu sekundo. 325 01:00:08,480 --> 01:00:10,271 Kaj avizo, vi povus kredas ke ne persvadas, 326 01:00:10,271 --> 01:00:13,520 sed denove se magnete vi lasu ĝin klakon en loko, ĝi kreskos plenigi. 327 01:00:13,520 --> 01:00:14,971 Kio ĝi ludas nun? 328 01:00:14,971 --> 01:00:18,500 >> [MEOWING] 329 01:00:18,500 --> 01:00:19,000 BONE. 330 01:00:19,000 --> 01:00:19,660 Nice. 331 01:00:19,660 --> 01:00:22,540 Kaj tio estas kio estus nomita programo kiu estas ankaŭ korekta. 332 01:00:22,540 --> 01:00:27,590 Ĝi meowed trifoje sufiĉe nature, sed ĝi estas pli bone desegnita. 333 01:00:27,590 --> 01:00:29,580 Mi uzas malpli redundo. 334 01:00:29,580 --> 01:00:30,970 Mi ne kopiu kaj algluu nenion. 335 01:00:30,970 --> 01:00:32,470 Mi nur uzis bona ideo. 336 01:00:32,470 --> 01:00:35,340 >> Nun, ĉi tiu estas ankoraŭ ne ĉio, kion interesa kun Scratch ne faras 337 01:00:35,340 --> 01:00:35,930 nenion. 338 01:00:35,930 --> 01:00:37,388 Do ni faru ion alian anstataŭe. 339 01:00:37,388 --> 01:00:38,670 Ni faru ion ĉiam. 340 01:00:38,670 --> 01:00:39,420 Kaj vi scias kion? 341 01:00:39,420 --> 01:00:40,470 Movado ŝajnas interesa. 342 01:00:40,470 --> 01:00:45,760 Ni havas lin movi 10 paŝoj kaj batis teatraĵo nun. 343 01:00:45,760 --> 01:00:46,570 >> BONE. 344 01:00:46,570 --> 01:00:49,300 Bone ni povas ia treni lin, kaj li daŭre 345 01:00:49,300 --> 01:00:51,250 kurante ĉar li faras tiun por ĉiam. 346 01:00:51,250 --> 01:00:53,150 Tiel la banto faras kio ĝi estas jene fari, 347 01:00:53,150 --> 01:00:54,650 sed ĉi tio ne estas ĉio, kion interesa. 348 01:00:54,650 --> 01:00:55,310 Ni faru ĉi. 349 01:00:55,310 --> 01:00:59,870 Mi aldonu kontrolon bloko, kaj uzi unu de tiuj kondiĉoj por la unua fojo. 350 01:00:59,870 --> 01:01:03,119 >> Tial ĝi tuj movas 10 steps-- 10 punktoj, 10 rastrumeroj sur la screen-- 351 01:01:03,119 --> 01:01:04,660 tiam tuj demandi tiun demandon. 352 01:01:04,660 --> 01:01:09,340 Se io estas vera, tiam faru io interne tiun blokon. 353 01:01:09,340 --> 01:01:13,060 Do rezultas sensing havas tutajn faskon de Bulea expressions-- 354 01:01:13,060 --> 01:01:16,580 demandoj de la jes ne aŭ vera falsa form-- lasu min fari tion. 355 01:01:16,580 --> 01:01:19,260 >> Se touching-- kaj tiam ekzistas tiu malgranda falmenuo. 356 01:01:19,260 --> 01:01:20,410 Mi povas parameterize ĝin. 357 01:01:20,410 --> 01:01:23,010 Se tuŝinte la edge-- ni fari ion tian. 358 01:01:23,010 --> 01:01:27,310 Do se tuŝinte edge-- lasu min iri reen al moviĝo. 359 01:01:27,310 --> 01:01:32,281 Kaj kial ni ne simple turni ĉirkaŭ 180 gradoj? 360 01:01:32,281 --> 01:01:32,780 Bone. 361 01:01:32,780 --> 01:01:35,070 Tiel ĉiam, movi 10 paŝoj. 362 01:01:35,070 --> 01:01:37,670 Se vi tuŝis la rando, turnu 180 gradojn. 363 01:01:37,670 --> 01:01:39,720 Kaj tio ne estas la fino de la programo ĉar vi estas en eterna bloki, 364 01:01:39,720 --> 01:01:42,053 tial ĝi tuj reiru, kaj denove kaj denove kaj denove. 365 01:01:42,053 --> 01:01:43,980 Do ni vidu kio okazas. 366 01:01:43,980 --> 01:01:44,785 BONE. 367 01:01:44,785 --> 01:01:48,270 Iom kalesxon, sed speco de malvarmeta. 368 01:01:48,270 --> 01:01:51,710 >> Kaj ni povas aldoni al tio iuj sensencaĵoj ke ne estas ĉiuj kiuj intelekte 369 01:01:51,710 --> 01:01:52,270 interesa. 370 01:01:52,270 --> 01:01:57,210 Sed se ni batis tiu malgranda mikrofono button-- Ouch. 371 01:01:57,210 --> 01:01:58,480 Lasu min purigi ĉi supre. 372 01:01:58,480 --> 01:02:01,540 Lasu min plibonigi tiun kiel ili dirus en televido. 373 01:02:01,540 --> 01:02:05,400 Pura supren, Savi kaj nun iru al skriptoj. 374 01:02:05,400 --> 01:02:07,500 >> Nun mi iros, por trumpeti. 375 01:02:07,500 --> 01:02:09,002 Lasu min donu al li nomon. 376 01:02:09,002 --> 01:02:12,440 Mi vokos ĉi Ouch. 377 01:02:12,440 --> 01:02:13,840 Kaj nun ludas sono Ouch. 378 01:02:13,840 --> 01:02:16,520 Rimarki aperas en la iom falmenuo. 379 01:02:16,520 --> 01:02:17,612 Ni vidos. 380 01:02:17,612 --> 01:02:20,444 >> [OUCH] 381 01:02:20,444 --> 01:02:24,377 >> [Ridante] 382 01:02:24,377 --> 01:02:25,835 Sed ni povas ŝanĝi t sian sur la muŝo. 383 01:02:25,835 --> 01:02:28,106 Ni povas esti duoble ĝena. 384 01:02:28,106 --> 01:02:31,760 >> [OUCH] 385 01:02:31,760 --> 01:02:35,332 >> Aŭ se ni faras lin kiel 1.000 ŝtupoj ĉe time-- 386 01:02:35,332 --> 01:02:39,900 387 01:02:39,900 --> 01:02:40,670 >> BONE. 388 01:02:40,670 --> 01:02:42,295 Do ni tuj lasos ke unu sola. 389 01:02:42,295 --> 01:02:45,290 Do denove, konstruante blocks-- mi komenciĝis per io super simpla, 390 01:02:45,290 --> 01:02:47,930 kaj tiam mi aldonis funkcion, aldonis karakterizaĵon, aldonis karakterizaĵon. 391 01:02:47,930 --> 01:02:50,721 Kaj mi ne plu bezonas zorgi pri kiel la unua el tiuj trajtoj 392 01:02:50,721 --> 01:02:53,690 estis implementado kiel mi daŭrigos al mantelo aferojn supre. 393 01:02:53,690 --> 01:02:55,430 Do fakte, lasu min fari unu alia tie. 394 01:02:55,430 --> 01:03:00,580 Lasu min antaŭeniri kaj malfermu dosieron kiu Mi alportis anticipe, nomita Ŝafo. 395 01:03:00,580 --> 01:03:03,970 >> Do ĝi havas iomete malsamajn karaktero kiu similas ĉi. 396 01:03:03,970 --> 01:03:07,370 Kaj ke mi vidu se mi ne povas fari ion uzante vendotablo 397 01:03:07,370 --> 01:03:09,310 en ĉi case-- tn variablo. 398 01:03:09,310 --> 01:03:15,540 Mi tuj iros antaŭen kaj sub Events-- lasu min akiri verdan flagon klakis. 399 01:03:15,540 --> 01:03:19,030 Tiam mi iros al Datumoj, kiun mi konas de nur ludanta ĉirkaŭ antaŭ, 400 01:03:19,030 --> 01:03:20,214 Estas kie variabloj. 401 01:03:20,214 --> 01:03:21,880 Kaj mi tuj iros antaŭen kaj treni tion. 402 01:03:21,880 --> 01:03:25,144 >> Tiel ŝanĝiĝema nomita vendotablo, kaj Mi tuj pravalorizi ĝin al nulo. 403 01:03:25,144 --> 01:03:27,560 Mi povas voki ŝin ion ajn x aŭ y aŭ z-- sed en programado, 404 01:03:27,560 --> 01:03:30,410 nomante io en semantike utila maniero, kiel vendotablo, 405 01:03:30,410 --> 01:03:34,540 kiu priskribas kio estas, ĝi estas multe pli facile legi vian kodon poste. 406 01:03:34,540 --> 01:03:37,460 Lasu min antaŭeniri kaj atingi oni ĉiam blokas tie. 407 01:03:37,460 --> 01:03:41,289 Kaj mi iros al la rigardojn paĝo kaj fari Say bloko. 408 01:03:41,289 --> 01:03:44,330 Sed kio estas malvarmeta pri variabloj estas mi ne devas simple entajpi ion 409 01:03:44,330 --> 01:03:47,850 kiel saluton mondo, kiun ni havas jam farita, mi povas anstataŭe iri al Datumoj 410 01:03:47,850 --> 01:03:50,690 kaj treni mia variablo, kaj eĉ kvankam la formo ne tre 411 01:03:50,690 --> 01:03:53,000 aspekti ĝi devus konveni, ĝi kreskos plenigi. 412 01:03:53,000 --> 01:03:58,396 Kaj mi nur diros la vendotablo por unu second-- spoiler-- li tuj rakonti. 413 01:03:58,396 --> 01:04:00,380 Ni diras ĝin por dua. 414 01:04:00,380 --> 01:04:02,840 Mi tuj iros kaj havi lin atendi unu sekundo, 415 01:04:02,840 --> 01:04:04,650 do ĝi ne rakontas tro rapida. 416 01:04:04,650 --> 01:04:08,430 Kaj poste persiste, ŝanĝi vendotablo per one-- alivorte, 417 01:04:08,430 --> 01:04:13,520 pliigo la vendotablo de unu aldona valoro kaj fari tion ĉiam. 418 01:04:13,520 --> 01:04:16,129 >> Tial la ŝafo tro, kiel programisto, rakontas de 0. 419 01:04:16,129 --> 01:04:20,350 420 01:04:20,350 --> 01:04:23,740 Kaj se ni atendos suficxe longe, Li faru tion por ĉiam. 421 01:04:23,740 --> 01:04:27,740 Sed tio ne estas ekzakte vera, ĉar fakte, kiel ni malkovros en semajno unu, 422 01:04:27,740 --> 01:04:31,871 entjeroj kaj komputiloj pli ĝenerale, teknike havas nur finite-- bone, 423 01:04:31,871 --> 01:04:33,829 prefere komputiloj, kiam ili reprezentas entjeroj, 424 01:04:33,829 --> 01:04:35,670 nur havas finia nombro de bitoj. 425 01:04:35,670 --> 01:04:37,860 Tiuj ampoloj tie povas nur kalkuli tiel alta 426 01:04:37,860 --> 01:04:39,239 antaŭ vi el ampoloj. 427 01:04:39,239 --> 01:04:41,590 Kaj komputilo tro, nur havas tiom da memoro, 428 01:04:41,590 --> 01:04:44,640 nur havas tiom da transistoroj, do ĝi povas nur kalkuli tiel alta. 429 01:04:44,640 --> 01:04:47,409 >> Do rezultas ke la ŝafo, Mi pensas, povas kalkuli ĝis 2 miliardoj 430 01:04:47,409 --> 01:04:48,409 aŭ io iom granda. 431 01:04:48,409 --> 01:04:50,325 Do ni ne tuj atendi ĉi okazi. 432 01:04:50,325 --> 01:04:54,850 Sed eventuale iuj cimoj okazos kiu povas havi iun tre reala mondo 433 01:04:54,850 --> 01:04:55,970 ramificaciones. 434 01:04:55,970 --> 01:04:58,861 Sed preter la ŝafojn ke nur enkondukas variablon. 435 01:04:58,861 --> 01:05:01,110 Ni iru antaŭen kaj malfermu io mi faris anticipe 436 01:05:01,110 --> 01:05:07,430 tie nomita Pet la Cat-- Pet la Kato super tie. 437 01:05:07,430 --> 01:05:10,420 Kaj rimarki tie estas kelkaj blokoj, sed kiam verda flago 438 01:05:10,420 --> 01:05:12,474 klakis, ĉiam fari la sekvan. 439 01:05:12,474 --> 01:05:15,265 Se vi tuŝis la muson pointer-- tiel la kursoron sur la ekrano, 440 01:05:15,265 --> 01:05:18,529 la arrow-- teatraĵo sonon meow kaj poste atendi du sekundoj. 441 01:05:18,529 --> 01:05:19,570 Kaj ĝuste tion ĉiam. 442 01:05:19,570 --> 01:05:22,619 Nur senĉese atendi cxu la pointer-- 443 01:05:22,619 --> 01:05:24,710 se la kato tusxas la montrilo. 444 01:05:24,710 --> 01:05:26,060 >> Do mi batis teatraĵo. 445 01:05:26,060 --> 01:05:26,920 Nenio okazas. 446 01:05:26,920 --> 01:05:28,980 Sed kiel mi movas la kursoron super la kato, 447 01:05:28,980 --> 01:05:31,960 >> [MEOWING] 448 01:05:31,960 --> 01:05:34,750 >> Kaj se mi movas ĝin, ne Petting kato anymore. 449 01:05:34,750 --> 01:05:38,090 Do kelkaj kondiĉa logiko nestitaj ene de buklo. 450 01:05:38,090 --> 01:05:43,070 Kion pri tiu ekzemplo, intence nomita Dono't Pet la Kato? 451 01:05:43,070 --> 01:05:45,253 Kio ĉi tuj fari? 452 01:05:45,253 --> 01:05:47,880 >> [MEOWING] 453 01:05:47,880 --> 01:05:50,215 >> Kial vi ne dorlotbeston la kato? 454 01:05:50,215 --> 01:05:59,440 >> [MEOWING] 455 01:05:59,440 --> 01:06:00,699 >> BONE. 456 01:06:00,699 --> 01:06:03,880 Do tiu estas ekzemplo de se alie. 457 01:06:03,880 --> 01:06:06,482 Estas decido punkto kaj ĉar ĝi sidas en la buklo, 458 01:06:06,482 --> 01:06:07,690 ili estas ambaŭ akiranta kontrolata. 459 01:06:07,690 --> 01:06:08,280 Ĉu tio estas vera? 460 01:06:08,280 --> 01:06:08,760 Ĉu tio estas vera? 461 01:06:08,760 --> 01:06:09,250 Ĉu tio estas vera? 462 01:06:09,250 --> 01:06:09,791 Ĉu tio estas vera? 463 01:06:09,791 --> 01:06:11,880 Kaj finfine, unu el tiuj tuj apliki 464 01:06:11,880 --> 01:06:16,480 kaj vi aŭdas ĉu la meow aŭ la muĝo de leono en tiu kazo. 465 01:06:16,480 --> 01:06:21,400 >> Nu, ni faru iomete pli ornama unu ke mi faris anticipe ankaŭ kontraŭ fadenoj. 466 01:06:21,400 --> 01:06:25,210 Tiel fadenon estas nur unu afero ke komputilo povas fari. 467 01:06:25,210 --> 01:06:29,349 Tiel mult interne programo estas programo kiu povas fari multoblajn aferojn samtempe. 468 01:06:29,349 --> 01:06:31,140 Kaj ĉiu el tiuj ekzemploj ĝis nun havis 469 01:06:31,140 --> 01:06:35,980 nur unu skripton, tiel diri unu programo kiel ĉi tien. 470 01:06:35,980 --> 01:06:38,810 Sed rimarki ĉi programo havas du sprites, du karakteroj. 471 01:06:38,810 --> 01:06:40,020 Unu estas birdo. 472 01:06:40,020 --> 01:06:40,870 Unu estas kato. 473 01:06:40,870 --> 01:06:45,080 >> Kaj rimarki kiam mi klakas sur tiuj malsupren maldekstra, ili ĉiu havas siajn proprajn skriptojn 474 01:06:45,080 --> 01:06:47,120 aŭ programoj asociita kun ili. 475 01:06:47,120 --> 01:06:49,420 Kaj ambaŭ de tiuj programojn, avizo, komenco 476 01:06:49,420 --> 01:06:52,600 kun kiam verda flago clicked-- ni rigardu la cat-- 477 01:06:52,600 --> 01:06:54,030 kiam verda flago clicked. 478 01:06:54,030 --> 01:06:58,220 Kaj tiel efektive, kiam mi batis teatraĵo nun, du aferoj okazos samtempe. 479 01:06:58,220 --> 01:07:01,750 La kato kaj la birdo estas ambaŭ tuj funkcii samtempe 480 01:07:01,750 --> 01:07:03,815 krei tiun efikon. 481 01:07:03,815 --> 01:07:05,440 Kaj vi povus imagi kio okazas. 482 01:07:05,440 --> 01:07:08,340 Ekzistas maŝo kaj la birdo kaj la kato estas en buklo. 483 01:07:08,340 --> 01:07:11,270 La birdo estas nur rebotar kiel Mi estis antaŭe, kiam mi diris Ouch. 484 01:07:11,270 --> 01:07:13,040 Sed la kato klare havas avantaĝon. 485 01:07:13,040 --> 01:07:16,040 Ekzistas alia sensing bloko kiu notas la kato intence 486 01:07:16,040 --> 01:07:19,836 al la birdo en tiu kazo tie. 487 01:07:19,836 --> 01:07:22,960 Do ni povus turmentus aparte, rigardante tra tiuj blokoj, kio okazas. 488 01:07:22,960 --> 01:07:25,460 Sed la ŝlosilo ingredienco tie estas. 489 01:07:25,460 --> 01:07:28,520 La birdo, por ke ĉi tiu ludo ne tute boring-- aŭ tiun animation-- 490 01:07:28,520 --> 01:07:30,060 komenciĝas ĉe hazarda direkto. 491 01:07:30,060 --> 01:07:32,890 Kaj la komputilo estas pluki nombron inter 90 kaj 180 492 01:07:32,890 --> 01:07:36,110 esence, tiel ke ĝi estas iomete malsama kuraĝigo ĉiufoje. 493 01:07:36,110 --> 01:07:39,480 >> Kaj tiam rimarkos ĉi tie, se la kato tusxas la birdo, tiam 494 01:07:39,480 --> 01:07:42,030 ludi la leono kvar sound-- la muĝo. 495 01:07:42,030 --> 01:07:46,330 Sed dume en la birda paletro, ni havas tion. 496 01:07:46,330 --> 01:07:49,229 Ĉiam, se ne tuŝante la kato, Nur teni movanta tri paŝoj. 497 01:07:49,229 --> 01:07:50,770 Kaj tiam tie estas alia enigmo peco. 498 01:07:50,770 --> 01:07:52,030 Se estas en la rando, resalto. 499 01:07:52,030 --> 01:07:54,840 Do la birdo estas nur speco de atentanta lian propran negocon, 500 01:07:54,840 --> 01:07:57,330 nur fluganta ĉirkaŭ kaj rebotar, kaj ĝi estas vere 501 01:07:57,330 --> 01:08:01,780 la kato kiu havis la kondiĉan logikon determini se ĝi kaptis la birdon. 502 01:08:01,780 --> 01:08:02,280 Bone. 503 01:08:02,280 --> 01:08:08,800 Do ni faru unu alia tie, ĉi tiu vokite Hi Hi Hi. 504 01:08:08,800 --> 01:08:15,100 Kaj ĉi tiu tie nur faras tiu en eterna buklo. 505 01:08:15,100 --> 01:08:18,925 Sed notice-- kiel ni halti tiu tre ĝena programo? 506 01:08:18,925 --> 01:08:21,600 507 01:08:21,600 --> 01:08:22,640 Batis la spaco trinkejo. 508 01:08:22,640 --> 01:08:27,990 Ĉar se mi faras tion, maldekstre program-- 509 01:08:27,990 --> 01:08:31,550 rimarki estas konstante listening-- estas la ŝlosilo spaco gazetaro. 510 01:08:31,550 --> 01:08:34,090 Se la spaco trinkejo premita, kaj se jes, kion ĝi faras? 511 01:08:34,090 --> 01:08:35,980 Ĝi faras tre komuna tekniko. 512 01:08:35,980 --> 01:08:38,590 Ĝi fiksas variablo egala al iu valoro. 513 01:08:38,590 --> 01:08:39,741 Sed baskuligas tiun valoron. 514 01:08:39,741 --> 01:08:41,490 [? Tial apero?] bazita sur la shape-- mi 515 01:08:41,490 --> 01:08:43,160 havas variablo kiu mi skribis anticipe nomitaj 516 01:08:43,160 --> 01:08:44,770 Silentigita, kiu nur diras jes aŭ ne. 517 01:08:44,770 --> 01:08:45,880 Estas la sono silentigita aŭ ne? 518 01:08:45,880 --> 01:08:46,990 Vera aŭ falsa? 519 01:08:46,990 --> 01:08:51,580 Kaj avizo, mi diras this-- se silentigita estas nulo, tiam ŝanĝu al unu, 520 01:08:51,580 --> 01:08:53,840 alie agordi muta al nulo. 521 01:08:53,840 --> 01:08:55,540 Do simple klaki la valoron de nulo al unu. 522 01:08:55,540 --> 01:08:58,320 Mi povus havi done-- ŝanĝi ĝin de du ĝis tri kaj tri al du 523 01:08:58,320 --> 01:09:00,162 aŭ kvar al kvin aŭ kvar al ses. 524 01:09:00,162 --> 01:09:01,870 Sed ne gravas kio nombrojn mi uzas, 525 01:09:01,870 --> 01:09:04,090 kiam mi tenas ŝanĝi ŝin male. 526 01:09:04,090 --> 01:09:07,290 >> Kaj plej ajna programisto farus nur elektas nulo kaj one-- falsa kaj vera, 527 01:09:07,290 --> 01:09:09,510 ekstere kaj on-- reprezenti tion. 528 01:09:09,510 --> 01:09:10,930 Kaj tio estas ankoraŭ kurante. 529 01:09:10,930 --> 01:09:12,190 Se mi batis la spaco trinkejo fojo 530 01:09:12,190 --> 01:09:13,590 >> [SEAL SOUNDS] 531 01:09:13,590 --> 01:09:15,440 >> La programo estas ankoraŭ kurante. 532 01:09:15,440 --> 01:09:18,400 Ĉar ekzistas tiu alia skribsistemo kiu diras, ĉiam fari la sekvan. 533 01:09:18,400 --> 01:09:21,390 534 01:09:21,390 --> 01:09:24,770 Se la dampita variablo egalas zero-- do se vi ne silentigita 535 01:09:24,770 --> 01:09:29,609 estas la logic-- se ĝi estas malvera aŭ ne, tiam ludi la sono, 536 01:09:29,609 --> 01:09:30,650 ĉar vi ne silentigita. 537 01:09:30,650 --> 01:09:33,358 Vi devas ludi la sono kaj tiam pensas hi hi hi por du sekundoj 538 01:09:33,358 --> 01:09:35,790 kaj poste atendi, kaj agu denove kaj denove kaj denove. 539 01:09:35,790 --> 01:09:40,760 >> Kaj tiel ili ni havas vojon por personoj to-- por programoj interagi. 540 01:09:40,760 --> 01:09:43,120 Kaj ili ne devas esti kiel datis kiel aliaj. 541 01:09:43,120 --> 01:09:46,280 Fakte, ŝovas around-- neniu pun intended-- 542 01:09:46,280 --> 01:09:49,250 iu elspezis grandegan kvanton de tempo sur la interreto efektivigado 543 01:09:49,250 --> 01:09:51,580 PokemonGo en Scratch. 544 01:09:51,580 --> 01:09:55,440 Eĉ geolocates vin Kembriĝo aŭ Allston tie. 545 01:09:55,440 --> 01:10:03,120 Do se vi volas vidi ankaŭ kion homoj povas fari estas this-- tre fancy menuo. 546 01:10:03,120 --> 01:10:04,780 Alklaku ĉi tie. 547 01:10:04,780 --> 01:10:07,430 >> Jen mi kun mia sagoklavoj nun. 548 01:10:07,430 --> 01:10:09,446 Mi tuj iros post tio. 549 01:10:09,446 --> 01:10:09,946 Klaku. 550 01:10:09,946 --> 01:10:12,949 551 01:10:12,949 --> 01:10:14,240 Kaj nun vi klaku PokeBall. 552 01:10:14,240 --> 01:10:17,130 553 01:10:17,130 --> 01:10:20,260 Mi volas diri, mi pensas ke vi estas laŭsupoze klaku PokeBall. 554 01:10:20,260 --> 01:10:20,760 Bone. 555 01:10:20,760 --> 01:10:22,680 Do mi faris tion. 556 01:10:22,680 --> 01:10:23,950 Mi povas iri tien. 557 01:10:23,950 --> 01:10:27,790 Kaj tiu persono implementado iu pli PokeBalls super here-- tri PokeBalls. 558 01:10:27,790 --> 01:10:29,950 >> Ni afiŝi ligilon al tiu rete tiel vi povas ludi. 559 01:10:29,950 --> 01:10:32,364 Sed rimarki tie estas nur kelkaj bazaj konstruelementoj. 560 01:10:32,364 --> 01:10:33,780 Ĝi aspektas multe amatoro, kaj ĝi estas. 561 01:10:33,780 --> 01:10:35,905 Tio estas impona kaj pli ol ni volus tipe 562 01:10:35,905 --> 01:10:37,740 atendi, certe por problemo starigis nulo. 563 01:10:37,740 --> 01:10:40,809 Mi havas neniun ideon kiel longe tiu persono pasigis rete. 564 01:10:40,809 --> 01:10:41,850 Sed estas tute simple buklo. 565 01:10:41,850 --> 01:10:43,180 Ekzistas sono ludado. 566 01:10:43,180 --> 01:10:44,850 Ekzistas ia buklo aŭskulto ĉu mi estas 567 01:10:44,850 --> 01:10:47,558 batante la sago aŭ la malsupren sago aŭ la maldekstra kaj la dekstra, 568 01:10:47,558 --> 01:10:49,834 kaj tiam se jes, ĝi moviĝas ĝi iom da rastrumeroj. 569 01:10:49,834 --> 01:10:51,750 Kaj se mi alklaku alia sprite, ekzistas 570 01:10:51,750 --> 01:10:53,390 ia se kondiĉo tie. 571 01:10:53,390 --> 01:10:54,806 Yeah, tiu fariĝas tro intensa. 572 01:10:54,806 --> 01:10:56,100 Ni tuj halti. 573 01:10:56,100 --> 01:10:57,750 Estas ĉiuj tiuj bazaj konstruaĵo blokoj. 574 01:10:57,750 --> 01:11:01,530 Ekzistas neniuj aliaj ingrediencoj aliaj ol la ones ni rigardis jam. 575 01:11:01,530 --> 01:11:04,670 >> Kaj ankoraŭ ĉi tie, lasu min fari unu finan aron de ekzemploj 576 01:11:04,670 --> 01:11:06,960 kiu pentras bildon tro de kio vi povas fari tie. 577 01:11:06,960 --> 01:11:10,481 Jen tre simpla programo kiu nur faras this-- tuso, tuso, tuso. 578 01:11:10,481 --> 01:11:12,480 Kaj bazita nur sur kio ni rigardis ĝis nun, 579 01:11:12,480 --> 01:11:14,570 kie estas la evidenta ŝanco por plibonigo. 580 01:11:14,570 --> 01:11:15,570 Tiu programo estas korekta. 581 01:11:15,570 --> 01:11:17,980 Ĝi coughs trifoje, kiu estas kion mi celis. 582 01:11:17,980 --> 01:11:19,650 Sed ĝi estas nebone efektivigita. 583 01:11:19,650 --> 01:11:20,600 Ĝi estas malbone desegnita. 584 01:11:20,600 --> 01:11:22,000 Kial? 585 01:11:22,000 --> 01:11:22,500 Yeah. 586 01:11:22,500 --> 01:11:23,230 Ĝi ne estas buklo. 587 01:11:23,230 --> 01:11:24,610 Kaj ĝi estas ne tiom ke ĝi ne estas ciklo, 588 01:11:24,610 --> 01:11:26,400 ĝi estas ke ekzistas multe de redundo. 589 01:11:26,400 --> 01:11:28,830 Tie estas kopiitaj kaj batitaj kodo, por tiel diri. 590 01:11:28,830 --> 01:11:31,830 Kaj la solvo probable Estas ja buklo. 591 01:11:31,830 --> 01:11:34,350 Do lasu min antaŭeniri kaj plibonigi sur tio. 592 01:11:34,350 --> 01:11:36,250 Kaj mi tuj treni tiuj super tie. 593 01:11:36,250 --> 01:11:39,986 Lasu min antaŭeniri kaj atingi ripeto bloko, ŝanĝu tion al tri. 594 01:11:39,986 --> 01:11:41,860 Mi tuj forĵetu kelkaj el tiuj blokoj. 595 01:11:41,860 --> 01:11:43,150 >> Kaj vi rimarkos estas sufiĉe intuicia. 596 01:11:43,150 --> 01:11:45,691 Treni kaj guton kaj aĵoj aperas kaj malaperas fine. 597 01:11:45,691 --> 01:11:49,170 Kaj mi povas simple treni ĉi tien, kaj Nun mi havas pli puran version ankoraŭ. 598 01:11:49,170 --> 01:11:50,730 Sed vi scias kion? 599 01:11:50,730 --> 01:11:52,940 Ekzistas tiu ŝanco nun por abstraction-- 600 01:11:52,940 --> 01:11:56,350 komenci difini novan vortprovizon ke MIT ne anticipis. 601 01:11:56,350 --> 01:11:59,110 Ekzistas atendi kaj ripeto kaj ĉiam kaj se, 602 01:11:59,110 --> 01:12:02,590 sed kio se mi volas enkonduki la vorto tuso kiel bloko? 603 01:12:02,590 --> 01:12:06,230 Kio se mi volas enigmo peco kies celo en la vivo estas tusi? 604 01:12:06,230 --> 01:12:10,720 >> Nu, ni rigardu ĉi versio tie, kiun mi faris jene. 605 01:12:10,720 --> 01:12:13,579 Magie Mi kreis tiu enigmo peco tie, 606 01:12:13,579 --> 01:12:14,870 kio Scratch permesas fari. 607 01:12:14,870 --> 01:12:16,787 Kaj ja C kaj Python kaj JavaScript estas 608 01:12:16,787 --> 01:12:18,370 tuj permesos fari ĉi tiel. 609 01:12:18,370 --> 01:12:21,830 Vi povas krei vian propran pecoj kiuj vi nomas kion vi volas. 610 01:12:21,830 --> 01:12:24,890 Tiukaze, tuso sentas kiel racian difinon. 611 01:12:24,890 --> 01:12:27,880 Kaj tiam kun tiuj pecoj malsupren tie vi povas difini, kion ĝi signifas. 612 01:12:27,880 --> 01:12:30,290 >> Mi trenis kaj faligis el ĉi paletro here-- pli 613 01:12:30,290 --> 01:12:33,500 blocks-- tiun grandan purpuran bloko, kie mi tajpas en tuso 614 01:12:33,500 --> 01:12:35,290 kiel la nomo de mia nova enigmo peco. 615 01:12:35,290 --> 01:12:39,920 Kaj tiam mi diras ajn uzanto nomas tiun novan tuso puzlo peco, 616 01:12:39,920 --> 01:12:41,770 fari voĉon kaj atendo. 617 01:12:41,770 --> 01:12:46,160 Kaj tiel ĝis tie en mia ripeto bloko, Mi povas nur tusadi trifoje. 618 01:12:46,160 --> 01:12:49,972 >> Kaj mi dirus, speciale se Vi kaŝas tiun detalon. 619 01:12:49,972 --> 01:12:51,430 Kiu zorgas kiel tuso estas implementado? 620 01:12:51,430 --> 01:12:54,390 Mi nur zorgas pri kiel programisto ke mi povas tusi. 621 01:12:54,390 --> 01:12:56,280 Ne gravas kiom diras estas implementado. 622 01:12:56,280 --> 01:12:58,620 Mi nur zorgas ke la kato povas diri ion. 623 01:12:58,620 --> 01:13:02,720 Mi povas abstrakta for, detale kaj nur enfokusigi kio estas sur la ekrano tie. 624 01:13:02,720 --> 01:13:04,400 Sed mi povas preni tiun unu paŝon. 625 01:13:04,400 --> 01:13:08,070 >> Rimarku ke ĉi tie, mi havas implementado la ciklo tri fojojn. 626 01:13:08,070 --> 01:13:11,560 Sed kio se anstataŭ mi ekpreni ĉi versio? 627 01:13:11,560 --> 01:13:14,640 Kaj kio se anstataŭ en ĉi tiu versio ĉi tie, 628 01:13:14,640 --> 01:13:18,730 Mi nur ŝanĝas mian puzlo peco preni argumento kaj enigo al si? 629 01:13:18,730 --> 01:13:21,100 Kaj ke enigo povas esti kelkaj kiel tri. 630 01:13:21,100 --> 01:13:24,580 Tial nun, se mi skribas programon kaj mi volas la kato tusi, 631 01:13:24,580 --> 01:13:28,270 Mi povas vere diri la enigmo kunligi kiomfoje tusi, 632 01:13:28,270 --> 01:13:31,990 ĉar en la fundo tie, amatoro versio de ĉi kutimo puzlo pecoj 633 01:13:31,990 --> 01:13:34,500 Lasas min specifi ke tuso fakte prenas 634 01:13:34,500 --> 01:13:36,951 an input-- prenas argumenton kiel tiu. 635 01:13:36,951 --> 01:13:37,700 Kaj vi scias kion? 636 01:13:37,700 --> 01:13:38,890 Eble mi rimarkas, atendu momenton. 637 01:13:38,890 --> 01:13:40,680 Tusado estas la same-- ĝi estas fundamente 638 01:13:40,680 --> 01:13:42,120 la sama ideo kiel sneezing. 639 01:13:42,120 --> 01:13:44,040 Ĝi estas nur malsama vorto sur la ekrano. 640 01:13:44,040 --> 01:13:46,550 Mi povas abstrakta for pli kaj apliki 641 01:13:46,550 --> 01:13:48,750 tiu fina versio de tusi, kio unuavide 642 01:13:48,750 --> 01:13:50,660 Estas maniero pli kompleksa rigardanta. 643 01:13:50,660 --> 01:13:52,140 Sed rimarki kion mi faris. 644 01:13:52,140 --> 01:13:55,930 Mi havas nun generalized-- genericized really-- tiu enigmo peco 645 01:13:55,930 --> 01:13:59,900 esti nomata diri vorton n fojojn. 646 01:13:59,900 --> 01:14:04,410 >> Kaj nun mi havas du novajn enigmo pecoj malsupren tie difini tuso n fojojn. 647 01:14:04,410 --> 01:14:06,790 Kaj kion signifas la tuso funkcio faras? 648 01:14:06,790 --> 01:14:08,420 Kion mia kutimo puzlo peco faras? 649 01:14:08,420 --> 01:14:11,996 Ĝi nur nomas la vorton bloko, pasante en la diro mi volas diri, 650 01:14:11,996 --> 01:14:13,870 pasante en la nombro de tempoj mi volas diri. 651 01:14:13,870 --> 01:14:18,210 Ĉar nun mi povas efektivigi terni simple dirante achoo, 652 01:14:18,210 --> 01:14:20,320 tiukaze, iuj plurfoje. 653 01:14:20,320 --> 01:14:22,360 >> Kaj do mi layering kaj layering. 654 01:14:22,360 --> 01:14:25,690 Kaj denove, la ŝlosilo tie estas ne kiom mi implementado ĝin, sed la fakto 655 01:14:25,690 --> 01:14:28,070 se Mi nur laŭvorte movi tiujn sur la ekrano, 656 01:14:28,070 --> 01:14:31,280 aspektas kiel simpla se ne bela mia programo nun aspektas. 657 01:14:31,280 --> 01:14:33,930 Ĉar ĝi faras kion ĝi diras, mi abstraída 658 01:14:33,930 --> 01:14:37,640 for kio estas ene de tiu nigra skatolo. ĝi okazas al esti purpura skatolo tie, 659 01:14:37,640 --> 01:14:41,430 sed mi malhelpis for kio estas ene ĉar mi ne gravas kiel ĝi funkcias. 660 01:14:41,430 --> 01:14:43,650 Mi nur zorgas nun ke ĝi funkcias. 661 01:14:43,650 --> 01:14:46,375 >> Kaj efektive, en problemo fiksita nulo, ĉi tiu estas ekzakte 662 01:14:46,375 --> 01:14:49,250 la speco de layering de ideoj vi instruos vin havas la ŝancon esplori. 663 01:14:49,250 --> 01:14:53,510 Estas ĝuste la ŝanco apliki problemo solvanta teknikoj, 664 01:14:53,510 --> 01:14:55,550 al kio estas verŝajne nekonata medio. 665 01:14:55,550 --> 01:14:57,890 Kaj ĉu vi ne programita antaŭ aŭ planita antaŭe, 666 01:14:57,890 --> 01:14:59,500 vi trovos ke ekzistas iom ion 667 01:14:59,500 --> 01:15:00,874 en tiu medio por ĉiuj. 668 01:15:00,874 --> 01:15:02,770 Kaj kun problemo aro en unu semajno, 669 01:15:02,770 --> 01:15:06,630 ni estos transitioneis al enfokusigante sur pli alta nivelo lingvo nomata 670 01:15:06,630 --> 01:15:09,290 C-- plivere malsupera nivelo lingvo nomata 671 01:15:09,290 --> 01:15:11,347 C-- tio eĉ pli potencaj, eĉ se ĝi estas 672 01:15:11,347 --> 01:15:12,930 iom pli kripta unuavide. 673 01:15:12,930 --> 01:15:16,740 >> Kaj vi rimarkos je la hodiaŭa TL: DR, ke tiu problemo aro havas pli mallongan 674 01:15:16,740 --> 01:15:19,880 fenestro de tempo ol estonteco, ili simple ĉar vi trovas ĝin sufiĉe 675 01:15:19,880 --> 01:15:20,420 atingebla. 676 01:15:20,420 --> 01:15:22,211 Kaj ne zorgi se vi aldonas la klason malfrue. 677 01:15:22,211 --> 01:15:23,920 Ni traktas ke antaŭ longe. 678 01:15:23,920 --> 01:15:28,480 Kaj antaŭ ol ni adjourn por kuko, ni fini kun nur du minutoj rigardo 679 01:15:28,480 --> 01:15:30,500 ĉe kio atendas vin tie en CS50. 680 01:15:30,500 --> 01:15:40,950 681 01:15:40,950 --> 01:17:20,803 [MUZIKO Ludanta] 682 01:17:20,803 --> 01:17:21,302 Bone. 683 01:17:21,302 --> 01:17:22,690 Estas tio por CS50. 684 01:17:22,690 --> 01:17:23,650 Ni vidos vin baldaŭ. 685 01:17:23,650 --> 01:17:25,526 Kuko estas nun servis. 686 01:17:25,526 --> 01:17:28,998 687 01:17:28,998 --> 01:18:14,267 [MUZIKO Ludanta] 688 01:18:14,267 --> 01:18:16,350 Parolanto 17: Ĉu vi aŭdis de sabático, Ĉefo? 689 01:18:16,350 --> 01:18:29,490 690 01:18:29,490 --> 01:18:31,920 Parolanto 18 Eble ekzistas pli sub la kapuĉo. 691 01:18:31,920 --> 01:18:38,279