1 00:00:08,483 --> 00:00:11,477 [Powered by Google Translate] [MÚSICA ROCK] 2 00:00:32,435 --> 00:00:35,429 [MÚSICA - "Happy Together" LES TORTUGUES] 3 00:01:27,330 --> 00:01:30,170 David Malan: Avui comencem la nostra exploració de la 4 00:01:30,170 --> 00:01:32,710 fonaments de la ciència de la computació i la introducció, 5 00:01:32,710 --> 00:01:35,070 Ara, a la tècnica de programació, dels quals és que 6 00:01:35,070 --> 00:01:36,260 només un exemple. 7 00:01:36,260 --> 00:01:39,600 Però en el mateix sentit de la resolució de problemes, saben que 8 00:01:39,600 --> 00:01:42,080 Dia Puzzle tradicional CS50 és demà. 9 00:01:42,080 --> 00:01:45,190 Si encara no has enviat un RSVP per a l'esdeveniment, vostè pot anar a 10 00:01:45,190 --> 00:01:47,510 cs50.net/rsvp. 11 00:01:47,510 --> 00:01:50,940 Vostè pot portar equips de dos o tres o quatre. 12 00:01:50,940 --> 00:01:53,080 Vostè serà desafiat amb problemes com el que vesteix 13 00:01:53,080 --> 00:01:54,190 allà al principi. 14 00:01:54,190 --> 00:01:57,000 Tots els nous problemes aquest any si va participar l'any passat, i 15 00:01:57,000 --> 00:01:59,680 tindrà l'oportunitat després de guanyar premis fabulosos. 16 00:01:59,680 --> 00:02:02,750 Entre ells, un Wii i alguns certificats de regal i articles similars, 17 00:02:02,750 --> 00:02:05,650 alhora de sortir amb CS50 estudiants i companys de classe 18 00:02:05,650 --> 00:02:07,720 i la pizza i Facebook. 19 00:02:07,720 --> 00:02:10,430 Així que més que el demà si vols. 20 00:02:10,430 --> 00:02:13,330 >> Aquesta és, doncs, CS50, per a aquells de vostès unir-se a nosaltres per a la 21 00:02:13,330 --> 00:02:14,510 primera vegada. 22 00:02:14,510 --> 00:02:18,030 I sé que aquest curs està especialment decidit a aconseguir 23 00:02:18,030 --> 00:02:22,605 a través d'aquest curs fins al seu terme final, moment en què 24 00:02:22,605 --> 00:02:24,270 tindrà no només una comprensió d'aquests 25 00:02:24,270 --> 00:02:26,450 fonaments de la informàtica, sinó que haurà de 26 00:02:26,450 --> 00:02:29,120 aquesta habilitat molt pràctic conjunt que pot prendre de nou a 27 00:02:29,120 --> 00:02:31,370 seu propi departament, si es tracta de ciències de l'enginyeria, 28 00:02:31,370 --> 00:02:33,570 matemàtiques aplicades, les ciències físiques i naturals 29 00:02:33,570 --> 00:02:34,780 ciència, o similars. 30 00:02:34,780 --> 00:02:37,030 En efecte, què és tan emocionant de la informàtica aquests 31 00:02:37,030 --> 00:02:39,900 dia és que és tan sols aplicable als 32 00:02:39,900 --> 00:02:40,990 tot tipus de camps. 33 00:02:40,990 --> 00:02:46,210 I encara que avui dia, només esgarrapar la superfície d'un 34 00:02:46,210 --> 00:02:49,020 llenguatge de programació molt tradicional conegut com C, anem a 35 00:02:49,020 --> 00:02:51,040 en lloc de mirar una cosa anomenada Scratch, alguna cosa amb 36 00:02:51,040 --> 00:02:53,420 que aquesta història d'amor galeta va ser executat per un dels seus 37 00:02:53,420 --> 00:02:57,020 predecessors en els últims anys, a explicar històries, crear jocs, 38 00:02:57,020 --> 00:03:00,060 per crear art interactiu, i per realment començar a embolicar nostre 39 00:03:00,060 --> 00:03:02,240 ment al voltant d'algunes de les construccions fonamentals que 40 00:03:02,240 --> 00:03:05,390 subjacents en la programació, però en un context, com es veurà, és que 41 00:03:05,390 --> 00:03:09,140 molt menys por, això és molt menys misteriós, del que es veu 42 00:03:09,140 --> 00:03:10,140 en poc temps. 43 00:03:10,140 --> 00:03:12,410 I adonar-se, també, per a aquells de vostès que ens acaba d'unir-se a aquest 44 00:03:12,410 --> 00:03:16,170 semestre, les frases en què acabem conferència de dimecres, 45 00:03:16,170 --> 00:03:20,260 no és tan important quan vostè acaba la seva relació amb 46 00:03:20,260 --> 00:03:22,950 companys de classe en aquesta classe, però en el qual, pel final del semestre 47 00:03:22,950 --> 00:03:27,190 a la setmana 11, acaben respecte a tu mateix en el dia d'avui. 48 00:03:27,190 --> 00:03:32,000 >> Així que sense més preàmbuls, aquest és també digne de menció que 49 00:03:32,000 --> 00:03:34,450 els menys còmode, aquells en algun punt intermedi, estan 50 00:03:34,450 --> 00:03:36,825 també, pel seu disseny d'aquest curs, no a qualsevol desavantatge 51 00:03:36,825 --> 00:03:38,760 vis-a-vis els més còmode 52 00:03:38,760 --> 00:03:39,920 que entra en aquesta categoria. 53 00:03:39,920 --> 00:03:41,810 Com veuràs en les setmanes per venir, tenim diferents 54 00:03:41,810 --> 00:03:44,600 pistes de fons de nou dispars, seccions per als 55 00:03:44,600 --> 00:03:46,500 menys còmode, més còmode, aquells en algun lloc 56 00:03:46,500 --> 00:03:47,250 en el medi. 57 00:03:47,250 --> 00:03:49,520 Com podrà veure aquest cap de setmana i la setmana que ve, dues versions de 58 00:03:49,520 --> 00:03:52,410 la majoria dels conjunts de problemes, tant en edició estàndard i hacker per 59 00:03:52,410 --> 00:03:55,390 que tothom pugui auto-selecciona pel camí amb el qual 60 00:03:55,390 --> 00:03:56,615 se senti més còmode. 61 00:03:56,615 --> 00:03:58,770 >> Així que avui, ens submergim en aquesta programació 62 00:03:58,770 --> 00:04:00,060 llenguatge anomenat Scratch. 63 00:04:00,060 --> 00:04:02,250 És un llenguatge de programació gràfica, i no obstant això té la 64 00:04:02,250 --> 00:04:04,500 mateixes característiques d'alguns dels llenguatges d'alt nivell que anem a 65 00:04:04,500 --> 00:04:07,050 explorar més endavant en el semestre, entre ells C i 66 00:04:07,050 --> 00:04:08,670 JavaScript i PHP. 67 00:04:08,670 --> 00:04:11,890 Però permetrà a nosaltres per evitar algunes de les distraccions 68 00:04:11,890 --> 00:04:14,890 des del principi de la sintaxi, les coses com punts i comes, parèntesis, 69 00:04:14,890 --> 00:04:17,720 i altres detalls arcans que, a primera vista, no són 70 00:04:17,720 --> 00:04:19,916 en absolut intel · lectualment interessant i tendeixen a posar-se en 71 00:04:19,916 --> 00:04:22,310 la forma d'una certa comprensió fonamental. 72 00:04:22,310 --> 00:04:24,870 En termes de l'estructura de suport ara per davant, es va adonar d'això 73 00:04:24,870 --> 00:04:27,570 eina, CS50 Discussió, que estarà vinculada a la del curs 74 00:04:27,570 --> 00:04:30,320 lloc web el dia d'avui, és el fòrum de discussió en línia en 75 00:04:30,320 --> 00:04:32,480 el que seràs capaç de fer preguntes als altres i 76 00:04:32,480 --> 00:04:35,020 personal, i és també una eina, com veurem la setmana que, 77 00:04:35,020 --> 00:04:37,240 que utilitzarem molt integradament en 78 00:04:37,240 --> 00:04:38,780 les hores d'oficina també. 79 00:04:38,780 --> 00:04:41,670 De fet, les hores d'oficina començarà el dilluns, i francament, el primer 80 00:04:41,670 --> 00:04:43,930 setmana l'horari d'oficina és bastant baix clau. 81 00:04:43,930 --> 00:04:46,820 >> No crec que trobareu tot el que Rasguño inaccessible. 82 00:04:46,820 --> 00:04:48,930 És bastant explica per si mateix, com veurem, i què 83 00:04:48,930 --> 00:04:51,380 el farem servir per avui és per extreure algunes de les 84 00:04:51,380 --> 00:04:53,990 les idees fonamentals que, per tant, persisteixen al llarg de la 85 00:04:53,990 --> 00:04:54,900 resta del semestre. 86 00:04:54,900 --> 00:04:57,980 Però a partir de dilluns, a les 8:00 AM fins 23:00 serà 87 00:04:57,980 --> 00:05:01,530 en hores d'oficina durant les vacances de Annenberg cervell. 88 00:05:01,530 --> 00:05:04,490 Seccionament 02:00 començarà aquesta nit, així que en algun moment aquest 89 00:05:04,490 --> 00:05:07,260 cap de setmana, anar a cs50.net/section, i et 90 00:05:07,260 --> 00:05:08,530 se li demanarà una sèrie de preguntes. 91 00:05:08,530 --> 00:05:10,290 Entre ells, com descriuria la seva 92 00:05:10,290 --> 00:05:12,040 nivell de confort al dia d'avui? 93 00:05:12,040 --> 00:05:14,450 No hi ha regla dura i ràpida pel que fa a qui està en què cubeta. 94 00:05:14,450 --> 00:05:17,170 És just el tipus de cosa que vostè probablement sap si 95 00:05:17,170 --> 00:05:20,280 estan entre els que el menys confortable o d'una altra manera. 96 00:05:20,280 --> 00:05:21,350 >> I ara, tutorials. 97 00:05:21,350 --> 00:05:24,020 L'especificació del conjunt de problemes per a aquesta setmana, tant estàndard 98 00:05:24,020 --> 00:05:28,560 i l'edició pirata per igual, està en línia en cs50.net partir d'ara. 99 00:05:28,560 --> 00:05:31,500 I veuràs que la primera d'aquestes edicions, la 100 00:05:31,500 --> 00:05:33,940 edició estàndard de cada setmana, va acompanyat d'alguna cosa del que 101 00:05:33,940 --> 00:05:36,550 trucar a un tutorial de codi, una sessió dirigida per un dels 102 00:05:36,550 --> 00:05:39,100 becaris dels cursos d'ensenyament per guiar a través d', proporcionar 103 00:05:39,100 --> 00:05:42,290 consells, i s'obté per un camí particular quan es tracta 104 00:05:42,290 --> 00:05:44,150 per iniciar aquests butlletins de problemes. 105 00:05:44,150 --> 00:05:46,790 Així, amb cada un d'aquests butlletins de problemes, si mai voler 106 00:05:46,790 --> 00:05:50,250 per tu mateix per on començar, començar amb aquests 107 00:05:50,250 --> 00:05:50,890 tutorials. 108 00:05:50,890 --> 00:05:53,450 I de fet, permeteu-me presentar-Zamyla Chan, aquesta 109 00:05:53,450 --> 00:05:55,870 any company docent que estarà al capdavant de tots i cadascun 110 00:05:55,870 --> 00:05:56,910 un d'aquests tutorials. 111 00:05:56,910 --> 00:05:57,961 Zamyla? 112 00:05:57,961 --> 00:06:03,370 >> [Aplaudiments] 113 00:06:03,370 --> 00:06:03,975 ZAMYLA Chandler: Oh, hola a tots. 114 00:06:03,975 --> 00:06:05,130 El meu nom és Zamyla. 115 00:06:05,130 --> 00:06:08,250 Sóc un jove estudiant enginyeria en Winthrop House. 116 00:06:08,250 --> 00:06:10,890 Però crec que aquesta càpiga en tants cursos d'informàtica com jo 117 00:06:10,890 --> 00:06:13,350 pot, pel que estic realment entusiasmat de liderar aquest 118 00:06:13,350 --> 00:06:14,590 any tutorials. 119 00:06:14,590 --> 00:06:16,950 Tutorials, per a mi, són una part essencial del meu CS50 120 00:06:16,950 --> 00:06:17,910 experiència. 121 00:06:17,910 --> 00:06:22,710 Durant el tutorial, per a tot p-set, anirem a través de 122 00:06:22,710 --> 00:06:25,580 el conjunt de problemes junts, mirar per sobre dels problemes, el tipus de 123 00:06:25,580 --> 00:06:27,360 dividir per dalt en trossets manejables. 124 00:06:27,360 --> 00:06:28,990 Et vaig a donar consells, tècniques, per obtenir 125 00:06:28,990 --> 00:06:30,820 a través de I INTRODUCCIÓ. 126 00:06:30,820 --> 00:06:33,510 Espero veure'ls a tots en els tutorials. 127 00:06:33,510 --> 00:06:34,720 Si no pots assistir en persona, llavors 128 00:06:34,720 --> 00:06:36,580 si us plau sintonitzi en línia. 129 00:06:36,580 --> 00:06:36,840 >> David Malan: Excel · lent. 130 00:06:36,840 --> 00:06:37,950 Gràcies, Zamyla. 131 00:06:37,950 --> 00:06:40,870 Així que adonar-se que els recorreguts són, de fet, un divendres 132 00:06:40,870 --> 00:06:43,110 tard, però això és deliberadament per disseny perquè 133 00:06:43,110 --> 00:06:45,750 tot i que prefereix no assistir a classe un divendres 134 00:06:45,750 --> 00:06:48,490 tard, els vídeos estaran fins al més ràpidament sobre 135 00:06:48,490 --> 00:06:48,990 el cap de setmana. 136 00:06:48,990 --> 00:06:51,880 Així que adonar-se que cs50.net estaran tots els Zamyla 137 00:06:51,880 --> 00:06:53,130 tutorials. 138 00:06:54,800 --> 00:06:56,890 I que no és la data i hora d'avui, a les 3:00 PM, 139 00:06:56,890 --> 00:06:58,370 Harberd Hall, 104. 140 00:06:58,370 --> 00:07:00,080 I alguns dels companys docents també han preparat 141 00:07:00,080 --> 00:07:03,250 algunes observacions perquè en absència de l'acusat per donar-li una mica de 142 00:07:03,250 --> 00:07:06,760 perspectiva pel que fa a quina és la seva experiència que entra i 143 00:07:06,760 --> 00:07:08,990 sortir de CS50 era. 144 00:07:08,990 --> 00:07:11,250 Així que si podíem apagar els llums per un moment, jo et dono 145 00:07:11,250 --> 00:07:18,100 part del personal del CS50. 146 00:07:18,100 --> 00:07:20,440 >> JACKSON Steinkamp: Vaig prendre CS50 any passat com a estudiant de primer any a la 147 00:07:20,440 --> 00:07:22,880 caure, i absolutament em va deixar al · lucinat. 148 00:07:22,880 --> 00:07:25,090 Jo mai havia rebut classes de programació anterior, 149 00:07:25,090 --> 00:07:26,380 i mai va entrar amb tota la informàtica 150 00:07:26,380 --> 00:07:27,320 experimentar en absolut. 151 00:07:27,320 --> 00:07:29,240 I així, he sentit els rumors sobre la classe i 152 00:07:29,240 --> 00:07:30,050 decidir prendre. 153 00:07:30,050 --> 00:07:31,780 >> JULIA Mitelman: Va ser molt divertit, molt atractiu. 154 00:07:31,780 --> 00:07:33,480 Encara, a dia d'avui - 155 00:07:33,480 --> 00:07:36,560 Fa poc vaig veure que tinc el disc que David ens va donar 156 00:07:36,560 --> 00:07:38,140 en el nostre primer dia de classe. 157 00:07:38,140 --> 00:07:40,020 L'havia penjat a la meva paret. 158 00:07:40,020 --> 00:07:42,410 Això és probablement una mica nerd, però em vaig quedar a al meu 159 00:07:42,410 --> 00:07:46,930 paret durant la classe com un recordatori del bo que era. 160 00:07:46,930 --> 00:07:49,240 >> TRAVIS DOWNS: És tan vergonyós. 161 00:07:49,240 --> 00:07:50,770 >> JACKSON Steinkamp: La informàtica és una cosa que 162 00:07:50,770 --> 00:07:52,370 de tractar encara que no és un 163 00:07:52,370 --> 00:07:54,980 les ciències tradicionals. 164 00:07:54,980 --> 00:07:58,510 És la seva pròpia experiència, i CS50 s'assegurarà que vostè és 165 00:07:58,510 --> 00:08:01,520 bé donat suport a través d'ella amb el seu veritable exèrcit de TFS. 166 00:08:01,520 --> 00:08:03,700 >> ALI Nahm: El vaig prendre com un estudiant de primer any, i així ho va fer molt 167 00:08:03,700 --> 00:08:04,215 de nous amics. 168 00:08:04,215 --> 00:08:07,170 També m'he presentat a aquesta concentració tot 169 00:08:07,170 --> 00:08:10,770 tota l'escola d'enginyeria, per la qual cosa recomano encaridament 170 00:08:10,770 --> 00:08:14,360 i li donem la benvinguda a la nostra família CS50. 171 00:08:14,360 --> 00:08:17,510 >> Yaniv Yacoby: CS50 només t'ensenya com utilitzar les eines 172 00:08:17,510 --> 00:08:19,210 que són molt accessibles. 173 00:08:19,210 --> 00:08:21,840 Només es necessita un ordinador portàtil, es necessita un navegador web, i vostè 174 00:08:21,840 --> 00:08:26,030 Necessitem aprendre a escriure una mica de codi, i vostè pot construir realment 175 00:08:26,030 --> 00:08:27,400 coses interessants. 176 00:08:27,400 --> 00:08:31,660 >> KAREN XIAO: És tan bo ser capaç de fer alguna cosa 177 00:08:31,660 --> 00:08:34,580 i que la gent el faci servir i que la gent ho veu, i això és 178 00:08:34,580 --> 00:08:35,900 el que realment m'agrada d'ella. 179 00:08:35,900 --> 00:08:37,429 >> Tim McLaughlin: - un sentit de comunitat, crec que, en aquest 180 00:08:37,429 --> 00:08:39,470 per descomptat, més que qualsevol altre curs que he pres fins ara. 181 00:08:39,470 --> 00:08:41,350 No només estàs prenent un altre - 182 00:08:41,350 --> 00:08:42,740 vostè no està omplint altre requisit. 183 00:08:42,740 --> 00:08:45,310 No només anem a conferències i anar a la secció. 184 00:08:45,310 --> 00:08:49,630 Però estàs fent un munt de coses que són tots sobre 185 00:08:49,630 --> 00:08:51,560 programació i tot sobre la tecnologia, però no és així 186 00:08:51,560 --> 00:08:53,090 Realment et sents com una classe més de les vegades. 187 00:08:53,090 --> 00:08:55,012 >> TRAVIS DOWNS: I el primer dia, van repartir coca, i 188 00:08:55,012 --> 00:08:56,215 Em van vendre a l'instant. 189 00:08:56,215 --> 00:08:57,822 >> JACOB Pritt: caramels gratis i pizza. 190 00:08:57,822 --> 00:08:59,820 >> ZAMYLA CHAN: - sense importar el seu nivell d'interès, crec que 191 00:08:59,820 --> 00:09:05,170 que CS50, et divertiràs i podràs intel · lectualment 192 00:09:05,170 --> 00:09:06,070 estimulat. 193 00:09:06,070 --> 00:09:07,926 >> MARK GROZEN-SMITH: Sempre és una festa a la classe, i és un 194 00:09:07,926 --> 00:09:09,990 festa cada nit treballant en el seu p-set. 195 00:09:09,990 --> 00:09:11,880 >> JACKSON Steinkamp: Cada vegada que s'acabi un butlletí de problemes, 196 00:09:11,880 --> 00:09:13,710 es sentirà com vostè ha acabat un projecte. 197 00:09:13,710 --> 00:09:16,580 >> MELISSA NIU: Va ser el primer any, i es va fer la compra. 198 00:09:16,580 --> 00:09:19,030 Jo tenia els meus quatre classes llest, i jo estava en Annenberg. 199 00:09:19,030 --> 00:09:21,670 I em trobo amb un amic, i ell diu, hey, vaig de compres 200 00:09:21,670 --> 00:09:24,330 aquesta classe anomenada CS50, i vostè ha de venir amb mi. 201 00:09:24,330 --> 00:09:28,150 Vaig acabar havent de aquesta tardor, i després d'aquesta classe, que 202 00:09:28,150 --> 00:09:30,510 vaig pensar que potser vaig a menors en CS. 203 00:09:30,510 --> 00:09:33,760 Però aquí estic, tres anys després, encara està estudiant ordinador 204 00:09:33,760 --> 00:09:36,680 la ciència i de fet ho està fent com un major, i em va encantar cada 205 00:09:36,680 --> 00:09:37,780 moment d'ella. 206 00:09:37,780 --> 00:09:39,030 >> ROB Bowden: No tinc ni idea. 207 00:09:46,408 --> 00:09:48,060 >> ALI Nahm: A veure. 208 00:09:48,060 --> 00:09:49,200 >> MELISSA NIU: bogeria. 209 00:09:49,200 --> 00:09:50,610 >> Ponència 1: Sento que seria molt clixé. 210 00:09:50,610 --> 00:09:52,530 Que acabava de dir, com, impressionant. 211 00:09:52,530 --> 00:09:53,540 >> Yaniv Yacoby: Accessibilitat. 212 00:09:53,540 --> 00:09:55,080 >> JACOB Pritt: caramels gratis i pizza. 213 00:09:55,080 --> 00:09:57,310 >> TRAVIS DOWNS: No es pot baixar una classe que es reparteix la coca. 214 00:09:57,310 --> 00:09:58,510 >> Tim McLaughlin: Energètica. 215 00:09:58,510 --> 00:10:00,040 >> VIPUL Shekhawat: Essential. 216 00:10:00,040 --> 00:10:02,636 >> ROB Bowden: Deixa pensar en una resposta. 217 00:10:02,636 --> 00:10:04,480 Crec que tinc alguna cosa. 218 00:10:04,480 --> 00:10:07,092 Oh, déu. 219 00:10:07,092 --> 00:10:13,370 Sí, em dic Rob Bowden, i això és CS50. 220 00:10:13,370 --> 00:10:16,340 >> [Aplaudiments] 221 00:10:20,810 --> 00:10:23,390 David Malan: Molt bé, així que començarem a pintar un quadre 222 00:10:23,390 --> 00:10:26,230 de la direcció en la qual podem anar, i introduirem 223 00:10:26,230 --> 00:10:28,190 aquest concepte aquí conegut com pseudocodi. 224 00:10:28,190 --> 00:10:29,560 Així que no és un pseudocodi de programació 225 00:10:29,560 --> 00:10:30,810 llenguatge en si mateix. 226 00:10:30,810 --> 00:10:33,250 No és gens tècnic per se, però és només una espècie de 227 00:10:33,250 --> 00:10:36,490 forma general d'expressar amb força precisió, 228 00:10:36,490 --> 00:10:39,730 bastant algorísmica, processalment justa, però sense 229 00:10:39,730 --> 00:10:42,570 haver de preocupar-se per l'idioma que vostè està expressant 230 00:10:42,570 --> 00:10:43,150 vostè mateix polz 231 00:10:43,150 --> 00:10:46,280 És cert model d'Anglès i llenguatges de programació amb 232 00:10:46,280 --> 00:10:48,790 que vostè sigui familiar, perquè puguem començar 233 00:10:48,790 --> 00:10:50,600 escriure aquest tipus de coses sobre la marxa. 234 00:10:50,600 --> 00:10:54,450 I de fet, Joseph, podria vostè demanar prestat a l'escenari per ser 235 00:10:54,450 --> 00:10:55,490 escrigui aquí? 236 00:10:55,490 --> 00:11:00,130 He seguit endavant aquí amb anticipació i oblidat de posar 237 00:11:00,130 --> 00:11:02,920 uns mitjons d'avui, i això serà un dels nostres més 238 00:11:02,920 --> 00:11:03,780 exemples ridículs. 239 00:11:03,780 --> 00:11:04,580 >> Ara, et necessito aquí. 240 00:11:04,580 --> 00:11:05,630 Vaig a fer la part de mitjons. 241 00:11:05,630 --> 00:11:08,040 Així que aquí tenim un petit bloc de notes. 242 00:11:08,040 --> 00:11:09,940 Això és, literalment, només TextEdit en Mac 243 00:11:09,940 --> 00:11:12,270 No estem realment va a escriure un programa executable, però 244 00:11:12,270 --> 00:11:14,220 només començarem a esbossar pseudocodi basat en 245 00:11:14,220 --> 00:11:17,830 en alguns dels consells que proporcioneu a mi aquí. 246 00:11:17,830 --> 00:11:20,760 Així que aquí està la meva pila de mitjons a casa. 247 00:11:20,760 --> 00:11:23,320 No tinc mitjons quan em desperto al matí, i ara estem 248 00:11:23,320 --> 00:11:26,280 d'escriure un programa, un algoritme de classes, amb el qual 249 00:11:26,280 --> 00:11:27,900 per obtenir aquests mitjons als peus. 250 00:11:27,900 --> 00:11:30,860 I en el camí, veurem si podem ensopegar, o trobada, 251 00:11:30,860 --> 00:11:32,860 algunes de les idees que vostè va a haver de començar 252 00:11:32,860 --> 00:11:35,470 pensar molt més seriosament en la programació 253 00:11:35,470 --> 00:11:37,950 no sigui que els seus programes no es comporten bé com s'esperava. 254 00:11:37,950 --> 00:11:39,580 >> Així que seu aquí. 255 00:11:39,580 --> 00:11:41,180 Tinc la meva pila de mitjons. 256 00:11:41,180 --> 00:11:43,780 Què és el primer que un ésser humà raonable seria 257 00:11:43,780 --> 00:11:46,600 fer quan l'objectiu és posar en un parell de mitjons? 258 00:11:46,600 --> 00:11:49,190 Que algú em faci un pas, i només el primer pas. 259 00:11:49,190 --> 00:11:49,796 Sí? 260 00:11:49,796 --> 00:11:50,690 AUDIÈNCIA: Doblega cap avall. 261 00:11:50,690 --> 00:11:54,290 David Malan: Inclina't, està bé. 262 00:11:54,290 --> 00:11:55,540 Segon pas. 263 00:11:59,975 --> 00:12:00,645 Segon pas. 264 00:12:00,645 --> 00:12:01,840 AUDIÈNCIA: tens el teu mitjó. 265 00:12:01,840 --> 00:12:03,220 David Malan: tens el teu mitjó. 266 00:12:03,220 --> 00:12:07,610 Val, ambigüitat tan lleu aquí, i aquest és un dels primers 267 00:12:07,610 --> 00:12:09,380 obstacles que que se suposa que deliberadament 268 00:12:09,380 --> 00:12:10,290 Trobem aquí. 269 00:12:10,290 --> 00:12:14,110 És una mica ambigu, així que pren el teu mitjó. 270 00:12:14,110 --> 00:12:17,425 Està bé, em quedo amb aquest, però un ordinador, realitzar en un 271 00:12:17,425 --> 00:12:20,420 poc, no tindrà aquest tipus d'instint humà de només 272 00:12:20,420 --> 00:12:21,490 escollir el més proper. 273 00:12:21,490 --> 00:12:23,590 Haurem de començar, en poc temps, expressant 274 00:12:23,590 --> 00:12:24,610 nosaltres mateixos amb major precisió. 275 00:12:24,610 --> 00:12:26,600 >> D'acord, llavors el segon pas és aixecar el mitjó. 276 00:12:26,600 --> 00:12:27,520 Anem a prendre. 277 00:12:27,520 --> 00:12:28,620 Tercer pas. 278 00:12:28,620 --> 00:12:29,532 A la part posterior. 279 00:12:29,532 --> 00:12:30,900 AUDIÈNCIA: Troba una parella. 280 00:12:30,900 --> 00:12:32,060 David Malan: Trobi parell coincident. 281 00:12:32,060 --> 00:12:34,740 Bé, això és bo. 282 00:12:34,740 --> 00:12:35,650 Vaig haver triar aquest mitjó. 283 00:12:35,650 --> 00:12:39,200 Així que l'objectiu és trobar una coincidència de mitjó, ara, però el 284 00:12:39,200 --> 00:12:39,990 Què vol dir això? 285 00:12:39,990 --> 00:12:42,130 Un ésser humà és raonable, igual que dimecres, quan em 286 00:12:42,130 --> 00:12:44,700 va saber trobar Mike Smith en una guia telefònica, només una mica de 287 00:12:44,700 --> 00:12:45,640 va ser amb el seu instint. 288 00:12:45,640 --> 00:12:49,220 Però aquí, és, òbviament, aquest mitjó aquí, però d'un ordinador 289 00:12:49,220 --> 00:12:51,350 no serà tan instintiu. 290 00:12:51,350 --> 00:12:53,830 Un equip que tindrà una col · lecció de bits, com hem 291 00:12:53,830 --> 00:12:55,380 discutir el dimecres, i són els 292 00:12:55,380 --> 00:12:56,710 organitzat d'alguna manera en la memòria. 293 00:12:56,710 --> 00:13:00,400 Però el punt és que un equip només té la capacitat de 294 00:13:00,400 --> 00:13:03,390 a mirar les coses d'una en una, i de fet, fins i tot es 295 00:13:03,390 --> 00:13:05,980 els éssers humans - tot i que se sent com que mirar cap avall ia la ruptura 296 00:13:05,980 --> 00:13:08,900 segon després jo sé on és el mitjó, el meu cervell i els meus ulls 297 00:13:08,900 --> 00:13:12,000 presumiblement va tenir un ràpid descremada dels mitjons, i enganxat a continuació 298 00:13:12,000 --> 00:13:13,400 a la que ens ocupa. 299 00:13:13,400 --> 00:13:15,780 >> Així que si podem ser encara més deliberat ara com un ordinador, 300 00:13:15,780 --> 00:13:17,780 Com puc trobar aquest parell a joc? 301 00:13:17,780 --> 00:13:18,890 Bé, hem de iterar. 302 00:13:18,890 --> 00:13:21,440 Hem de potser llaç sobre aquest embolic dels mitjons al 303 00:13:21,440 --> 00:13:25,760 pis per qui em diu alguna cosa com PER CADA mitjó, recollir 304 00:13:25,760 --> 00:13:30,195 , I si la mateixa forma i mida que l'altre, llavors 305 00:13:30,195 --> 00:13:32,150 punt, punt, punt, continuarem la història. 306 00:13:32,150 --> 00:13:34,430 Així, per cada mitjó, així de recollir això. 307 00:13:34,430 --> 00:13:36,520 Reviso és aquest igual a aquesta. 308 00:13:36,520 --> 00:13:38,250 No és, per tant deixar de banda lateral. 309 00:13:38,250 --> 00:13:39,220 Llavors iterar de nou. 310 00:13:39,220 --> 00:13:40,340 És aquesta una igual? 311 00:13:40,340 --> 00:13:42,010 No, no ho és, així que ho vaig posar a un costat. 312 00:13:42,010 --> 00:13:42,710 És aquest? 313 00:13:42,710 --> 00:13:43,200 No 314 00:13:43,200 --> 00:13:43,670 Aquest? 315 00:13:43,670 --> 00:13:44,520 No, i així successivament. 316 00:13:44,520 --> 00:13:48,730 I, finalment, amb sort, vaig a trobar aquest mitjó aquí. 317 00:13:48,730 --> 00:13:51,350 Així que si es tracta de la mateixa forma, mida, pren-lo. 318 00:13:51,350 --> 00:13:53,980 >> I ara, ¿quin seria el següent pas en aquesta llista? 319 00:13:53,980 --> 00:13:54,402 Sí? 320 00:13:54,402 --> 00:13:56,090 AUDIÈNCIA: Identificar dreta de l'esquerra. 321 00:13:56,090 --> 00:13:58,980 David Malan: Està bé, identificar dreta i esquerra, de manera que 322 00:13:58,980 --> 00:14:01,870 Afortunadament, aquest tipus d'obres. 323 00:14:01,870 --> 00:14:04,020 Una mica simètric, o m'he gastat només ells d'aquesta manera. 324 00:14:04,020 --> 00:14:07,020 Molt bé, així que m'he identificat la dreta. 325 00:14:07,020 --> 00:14:09,980 I ara, abans de continuar, permetin-me assenyalar el que José 326 00:14:09,980 --> 00:14:12,890 estat fent aquí com una mena de programador versat. 327 00:14:12,890 --> 00:14:15,800 Així que de nou, no hi ha una sola manera de fer això, però més enllà de 328 00:14:15,800 --> 00:14:18,480 numeració de les línies, Joseph ja ha començat a fer això 329 00:14:18,480 --> 00:14:19,460 espècie de sangria. 330 00:14:19,460 --> 00:14:21,950 De fet, aquesta és una convenció molt comú en la programació, 331 00:14:21,950 --> 00:14:26,110 de manera que quan es fa alguna cosa repetitiu, bucles estil, 332 00:14:26,110 --> 00:14:28,480 estem donant a entendre amb la frase en anglès "PER CADA 333 00:14:28,480 --> 00:14:31,090 mitjó, "la convenció en pseudocodi i, com veurem, 334 00:14:31,090 --> 00:14:33,410 llenguatges de programació habituals, és just guió. 335 00:14:33,410 --> 00:14:36,240 Prem la barra espaiadora diverses vegades, premeu la tecla Tab o similar, 336 00:14:36,240 --> 00:14:40,660 perquè niat sota "PER CADA mitjó" és el tros de 337 00:14:40,660 --> 00:14:43,430 coses que ha de fer com a resultat d'aquest bucle. 338 00:14:43,430 --> 00:14:45,940 Així que això és tot el que està transmetent semànticament. 339 00:14:45,940 --> 00:14:48,620 Ara, mentrestant, el "Si es tracta de la mateixa forma i mida," la 340 00:14:48,620 --> 00:14:51,590 fet que "Take it" una sagnia addicional només significa 341 00:14:51,590 --> 00:14:54,370 això és l'únic que ha de fer si aquesta condició, 342 00:14:54,370 --> 00:14:59,770 si aquesta branca, que forquilla a la carretera, és de fet veritat. 343 00:14:59,770 --> 00:15:02,130 >> Així que ara aquí, estem en el quart pas, identificar la dreta ia l'esquerra. 344 00:15:02,130 --> 00:15:03,410 He identificat dreta. 345 00:15:03,410 --> 00:15:05,150 Give em passo cinc. 346 00:15:05,150 --> 00:15:07,880 I tècnicament, realment podríem anomenar 347 00:15:07,880 --> 00:15:09,510 el per a cada cosa - 348 00:15:09,510 --> 00:15:11,450 probablement hauria numerar totes les línies si 349 00:15:11,450 --> 00:15:12,190 farem això. 350 00:15:12,190 --> 00:15:14,006 JOSEPH: [inaudible] 351 00:15:14,006 --> 00:15:14,610 David Malan: [inaudible]? 352 00:15:14,610 --> 00:15:16,070 Bé, està bé, està bé, anem a fer-ho a la teva manera. 353 00:15:16,070 --> 00:15:19,590 D'acord, llavors el pas cinc, com podem fer el mitjó dret? 354 00:15:19,590 --> 00:15:22,310 Com procedim proper, aquí? 355 00:15:22,310 --> 00:15:22,730 Sí? 356 00:15:22,730 --> 00:15:24,300 AUDIÈNCIA: Aixequeu la cama dreta. 357 00:15:24,300 --> 00:15:27,100 David Malan: Aixequeu la cama dreta, està bé. 358 00:15:27,100 --> 00:15:29,330 Pas sis? 359 00:15:29,330 --> 00:15:30,728 Ràpidament. 360 00:15:30,728 --> 00:15:31,202 Si. 361 00:15:31,202 --> 00:15:33,100 AUDIÈNCIA: Trobi un extrem obert del mitjó. 362 00:15:33,100 --> 00:15:34,440 David Malan: Està bé, trobar l'extrem obert del mitjó. 363 00:15:34,440 --> 00:15:34,840 Tan bo. 364 00:15:34,840 --> 00:15:37,180 Així que aquí, de veritat, un instint molt comú només seria 365 00:15:37,180 --> 00:15:39,880 posar en mitjó dret, però això també és bastant ambigua. 366 00:15:39,880 --> 00:15:42,750 Llevat que l'ordinador o humà sap exactament el que vol dir, 367 00:15:42,750 --> 00:15:45,160 no serà per executar això, així que aquí, no tinc 368 00:15:45,160 --> 00:15:46,520 trobar l'obertura de l'estoc. 369 00:15:46,520 --> 00:15:48,222 Pas set? 370 00:15:48,222 --> 00:15:49,700 AUDIÈNCIA: Toca't els dits dels peus. 371 00:15:49,700 --> 00:15:51,070 David Malan: dits dels peus Touch. 372 00:15:51,070 --> 00:15:53,546 Bé, ara anem - 373 00:15:53,546 --> 00:15:56,480 Està bé, em vaig a prendre algunes llibertats aquí. 374 00:15:56,480 --> 00:15:57,110 Gràcies. 375 00:15:57,110 --> 00:15:59,210 Pas vuit? 376 00:15:59,210 --> 00:16:00,060 Poseu-vos mitjons. 377 00:16:00,060 --> 00:16:02,060 Està bé, així que ara, crec que estem prou a prop a una espècie de presa 378 00:16:02,060 --> 00:16:03,480 aquesta un a casa. 379 00:16:03,480 --> 00:16:05,980 Molt bé, així que això va cap amunt. 380 00:16:05,980 --> 00:16:07,950 Vaig a prendre algunes llibertats amb el que significa, en realitat. 381 00:16:07,950 --> 00:16:08,920 Col · loqui el mitjó a. 382 00:16:08,920 --> 00:16:10,853 Molt bé, ara pas nou? 383 00:16:10,853 --> 00:16:11,740 AUDIÈNCIA: Col · locar el peu cap avall. 384 00:16:11,740 --> 00:16:12,510 David Malan: Gràcies. 385 00:16:12,510 --> 00:16:15,610 Pas nou, posar peu a terra, i ara, repetim pot. 386 00:16:15,610 --> 00:16:19,540 Així que probablement, ara podem entrar en el pas 10 i dir identificar 387 00:16:19,540 --> 00:16:21,960 va deixar mitjó, però això és probablement ja està fet. 388 00:16:21,960 --> 00:16:24,100 >> I llavors, puc ordenar de repetir aquests passos. 389 00:16:24,100 --> 00:16:25,260 Però aquest tipus de petició de principi. 390 00:16:25,260 --> 00:16:28,100 Abans, l'última vegada que volíem repetir alguna cosa, 391 00:16:28,100 --> 00:16:30,730 va fer iterativament, una i altra vegada, una PER 392 00:16:30,730 --> 00:16:32,660 Cada bucle per dir-ho. 393 00:16:32,660 --> 00:16:36,420 Tindria sentit utilitzar un bucle per tal de manejar tant 394 00:16:36,420 --> 00:16:38,470 l'esquerra i la mitjana dreta? 395 00:16:38,470 --> 00:16:40,460 Perquè se sent com si aquestes operacions són més o menys 396 00:16:40,460 --> 00:16:43,090 idèntics, excepte pel fet que un comença aquí i un 397 00:16:43,090 --> 00:16:44,850 comença aquí? 398 00:16:44,850 --> 00:16:47,400 Tenim bucle, o simplement seguir els passos d'escriptura 399 00:16:47,400 --> 00:16:48,745 10 i 11 i 12? 400 00:16:48,745 --> 00:16:50,540 AUDIÈNCIA: Loop. 401 00:16:50,540 --> 00:16:52,240 >> David Malan: Molt bé, així bucle. 402 00:16:52,240 --> 00:16:54,730 De fet, em podria haver dit simplement seguir endavant. 403 00:16:54,730 --> 00:16:55,720 Per què és aquest el cas? 404 00:16:55,720 --> 00:16:57,940 Bé, això és en realitat el primer de la nostra no-obvi 405 00:16:57,940 --> 00:17:01,210 decisions de disseny i, de fet, un dels indicadors amb els quals 406 00:17:01,210 --> 00:17:03,990 començarem a avaluar, per a nosaltres i per a vostè, el 407 00:17:03,990 --> 00:17:06,780 qualitat d'un programa és el bé dissenyat que és. 408 00:17:06,780 --> 00:17:09,619 Ha fet la mínima quantitat de treball necessari per 409 00:17:09,619 --> 00:17:12,480 fer la feina el més ràpidament, ja sigui en termes de 410 00:17:12,480 --> 00:17:15,430 seu temps o en termes de temps de funcionament de l'ordinador? 411 00:17:15,430 --> 00:17:17,589 Quantes operacions fa que es necessita per executar? 412 00:17:17,589 --> 00:17:20,180 Així que podria dir-se que aquesta és una oportunitat per a un bucle perquè 413 00:17:20,180 --> 00:17:22,829 tan bon punt comenci a copiar i enganxar, com José eficaçment 414 00:17:22,829 --> 00:17:25,010 seria començar a fer en un moment, vostè està perdent el tipus de 415 00:17:25,010 --> 00:17:27,140 temps, i que està sent doblement expressiu. 416 00:17:27,140 --> 00:17:30,260 >> Però al mateix temps, aquests són en realitat dos especials 417 00:17:30,260 --> 00:17:31,890 casos, esquerra i dreta. 418 00:17:31,890 --> 00:17:34,930 I mentre que abans, podria tenir 10 o 20 o més mitjanes en 419 00:17:34,930 --> 00:17:37,960 una pila, que sens dubte no té sentit tenir 50 línies de 420 00:17:37,960 --> 00:17:40,180 codi dient mira això mitjó, després el següent, 421 00:17:40,180 --> 00:17:41,300 llavors el següent. 422 00:17:41,300 --> 00:17:43,450 Aquí, és una mica menys obvi, i em va proposar que 423 00:17:43,450 --> 00:17:44,390 que podíem anar en qualsevol direcció. 424 00:17:44,390 --> 00:17:46,720 O bé podria tenir aquest llaç, encara que només els bucles 425 00:17:46,720 --> 00:17:50,620 dues vegades, o podem simplement copiar i enganxar una mica 426 00:17:50,620 --> 00:17:53,270 aquí amb la finalitat de fer la feina. 427 00:17:53,270 --> 00:17:55,210 Però aquest programa està lliure d'errors, per dir-ho. 428 00:17:55,210 --> 00:17:59,120 És possible que tingui alguns errors, errors o casos de cantonada, així 429 00:17:59,120 --> 00:18:00,860 Parlaré, doncs, que en realitat no anticipar. 430 00:18:00,860 --> 00:18:03,400 Res va sortir malament aquest cop, però el que va poder haver sortit malament 431 00:18:03,400 --> 00:18:06,100 durant l'execució d'aquest programa? 432 00:18:06,100 --> 00:18:07,040 AUDIÈNCIA: No té cap mitjons. 433 00:18:07,040 --> 00:18:08,980 >> David Malan: Així que no pot haver mitges hi ha alguna. 434 00:18:08,980 --> 00:18:10,380 Així que considerarem aquest cas cantonada. 435 00:18:10,380 --> 00:18:14,670 Així que si poguéssim retrocedir fins al pas un, pas un era tan 436 00:18:14,670 --> 00:18:16,540 doblegar cap avall, de manera que concorda. 437 00:18:16,540 --> 00:18:21,250 El segon pas, pren la mitjó, però després trobar mitjons a joc, 438 00:18:21,250 --> 00:18:22,420 identificar la dreta. 439 00:18:22,420 --> 00:18:25,050 És com que va fer un munt de suposicions, i això és, 440 00:18:25,050 --> 00:18:27,720 francament, per què de vegades el programa bloquegi. 441 00:18:27,720 --> 00:18:30,240 Si, el programador, han fet certes suposicions, com 442 00:18:30,240 --> 00:18:33,000 segurament no serà mitjons o segurament no va 443 00:18:33,000 --> 00:18:35,310 a ser memòria disponible a l'ordinador, segurament no 444 00:18:35,310 --> 00:18:37,420 ser espai en el disc en el disc dur - 445 00:18:37,420 --> 00:18:39,040 Bé, si vostè fa aquests supòsits, i que no ho és, 446 00:18:39,040 --> 00:18:41,880 de fet, la realitat, qui sap el que de vegades l'ordinador 447 00:18:41,880 --> 00:18:42,520 farem? 448 00:18:42,520 --> 00:18:44,450 I de vegades, quan rep la pilota de platja giratori o el 449 00:18:44,450 --> 00:18:47,750 congelat Windows o similars, això és precisament pel fet que alguns 450 00:18:47,750 --> 00:18:50,980 programador no va preveure aquests casos extrems anomenats. 451 00:18:50,980 --> 00:18:53,050 Quina altra cosa podria haver anat malament en aquest programa? 452 00:18:53,050 --> 00:18:53,330 Sí? 453 00:18:53,330 --> 00:18:55,950 >> AUDIÈNCIA: No té la cama dreta i la cama esquerra. 454 00:18:55,950 --> 00:18:58,920 David Malan: Bé, potser no tingui tant una cama dreta i un 455 00:18:58,920 --> 00:19:01,940 la cama esquerra, de manera que aquest programa pot no ser universalment 456 00:19:01,940 --> 00:19:02,590 aplicable. 457 00:19:02,590 --> 00:19:03,658 Altres? 458 00:19:03,658 --> 00:19:05,650 AUDIÈNCIA: Vostè podria haver recollit un mitjó orfe. 459 00:19:05,650 --> 00:19:07,970 David Malan: Podria haver agafat un mitjó orfe, de manera que un 460 00:19:07,970 --> 00:19:11,250 no corresponent mitjó que només no té germans perquè he 461 00:19:11,250 --> 00:19:13,650 el va perdre, es trenca, és en el rentat encara, o similars. 462 00:19:13,650 --> 00:19:15,550 Així que, també, en realitat no ha estat manipulat. 463 00:19:15,550 --> 00:19:15,790 Sí? 464 00:19:15,790 --> 00:19:17,510 PÚBLIC: És possible que ja tingui mitjons. 465 00:19:17,510 --> 00:19:19,050 David Malan: Si tingués mitjons. 466 00:19:19,050 --> 00:19:20,080 Jo en realitat no check. 467 00:19:20,080 --> 00:19:23,350 SI vostè no té els mitjons, i després procedir a fer 468 00:19:23,350 --> 00:19:24,330 la línia un i dos. 469 00:19:24,330 --> 00:19:24,980 I això podria succeir. 470 00:19:24,980 --> 00:19:26,880 Et quedes dormit amb els mitjons i similars, així 471 00:19:26,880 --> 00:19:28,860 això, també, un cas cantonada molt raonable. 472 00:19:28,860 --> 00:19:29,630 I potser un altre? 473 00:19:29,630 --> 00:19:31,310 AUDIÈNCIA: El mitjó està ben girat. 474 00:19:31,310 --> 00:19:34,000 David Malan: Així que el mitjó està al revés, així que vam fer cap error 475 00:19:34,000 --> 00:19:35,330 comprovar, en definitiva. 476 00:19:35,330 --> 00:19:38,550 No comprovar si l'estat del món és com esperem. 477 00:19:38,550 --> 00:19:41,310 No comprovar si en realitat trobem el que estem buscant. 478 00:19:41,310 --> 00:19:43,310 >> I tot i que això és una espècie d'un exemple ridícul 479 00:19:43,310 --> 00:19:46,110 la participació de mitjons, al final de la dia, això és exactament la 480 00:19:46,110 --> 00:19:48,740 tipus de mentalitat cal tenir en escriure programes, 481 00:19:48,740 --> 00:19:51,740 fins i tot en Scratch, així com en C, en JavaScript, en PHP, 482 00:19:51,740 --> 00:19:53,920 perquè en cas contrari, els programes es presenten el 483 00:19:53,920 --> 00:19:56,980 equivalent d'aquesta pilota de platja o simplement donar voltes 484 00:19:56,980 --> 00:19:58,210 resultats inexactes. 485 00:19:58,210 --> 00:20:00,250 Així que moltes gràcies aquí al nostre escrivà Josep. 486 00:20:00,250 --> 00:20:05,060 [Aplaudiments] 487 00:20:05,060 --> 00:20:06,850 >> David Malan: Molt bé, i què és, en 488 00:20:06,850 --> 00:20:08,230 fet, un programa d'ordinador? 489 00:20:08,230 --> 00:20:09,670 Bé, anem a fer una ullada ràpida a un 490 00:20:09,670 --> 00:20:11,100 representant d'un aquí. 491 00:20:11,100 --> 00:20:15,260 Així que aquest és un programa escrit en un llenguatge anomenat C. C és 492 00:20:15,260 --> 00:20:17,830 nous llenguatges molt antics en aquests dies, però molts es construeixen 493 00:20:17,830 --> 00:20:18,460 a la part superior de la mateixa. 494 00:20:18,460 --> 00:20:21,180 De fet, PHP, un dels llenguatges web centrades anem a 495 00:20:21,180 --> 00:20:24,050 utilitzar cap al final del termini, es té el que es diu un 496 00:20:24,050 --> 00:20:27,550 intèrpret, un programa que està escrit en C, però més d'això 497 00:20:27,550 --> 00:20:28,690 en moltes setmanes a partir d'ara. 498 00:20:28,690 --> 00:20:30,840 Però aquest programa, i això és el que significa escriure un 499 00:20:30,840 --> 00:20:32,880 programa, si bé de manera molt simple. 500 00:20:32,880 --> 00:20:35,540 Tenim una sintaxi força críptic aquí, però es pot 501 00:20:35,540 --> 00:20:38,340 probablement endevinar, fins i tot si mai has programat abans, el que 502 00:20:38,340 --> 00:20:39,750 que fa el programa. 503 00:20:39,750 --> 00:20:43,640 De fet, jo no sé el que printf és, però certament imprimir 504 00:20:43,640 --> 00:20:45,700 evoca la idea d'imprimir alguna cosa. 505 00:20:45,700 --> 00:20:48,590 I sí, aquest programa és en última instància d'imprimir 506 00:20:48,590 --> 00:20:50,250 les paraules "Hola, món". 507 00:20:50,250 --> 00:20:53,390 >> Ara, si vostè té un Mac o un PC o un ordinador amb Linux, el més probable 508 00:20:53,390 --> 00:20:55,550 són, si més no si descarregueu algun lliurement 509 00:20:55,550 --> 00:20:58,000 programari disponible, que podria haver estat escrivint programes en 510 00:20:58,000 --> 00:21:00,310 seu propi ordinador portàtil des de fa força temps. 511 00:21:00,310 --> 00:21:03,040 En Mac OS, per exemple, hi ha un programa anomenat 512 00:21:03,040 --> 00:21:05,340 Terminal que ve amb un Mac, que és en general en el seu 513 00:21:05,340 --> 00:21:07,550 Carpeta Utilitats, i en general s'obre un negre i 514 00:21:07,550 --> 00:21:09,820 blanc o una finestra en blanc i negre en què apareix un 515 00:21:09,820 --> 00:21:11,410 indicatiu en el qual pot escriure ordres. 516 00:21:11,410 --> 00:21:13,060 Així que això és realment una reminiscència del que les computadores 517 00:21:13,060 --> 00:21:15,100 solia ser abans gràfica d'usuari 518 00:21:15,100 --> 00:21:16,710 interfícies, interfícies d'usuari, va arribar. 519 00:21:16,710 --> 00:21:19,200 Ara, en Windows, té un mecanisme similar en la forma 520 00:21:19,200 --> 00:21:20,130 del indicatiu. 521 00:21:20,130 --> 00:21:23,430 >> Però, què vaig a fer és obrir, diguem, 522 00:21:23,430 --> 00:21:26,580 TextEdit altra vegada, de manera que el mateix programa que utilitzàvem per 523 00:21:26,580 --> 00:21:28,870 pseudocodi fa un moment, i jo vaig a seguir endavant i 524 00:21:28,870 --> 00:21:30,080 escriure el meu primer programa. 525 00:21:30,080 --> 00:21:34,030 Incloure stdio.h, sigui el que sigui, int main 526 00:21:34,030 --> 00:21:36,880 buit, sigui el que sigui, i després en el medi aquí, 527 00:21:36,880 --> 00:21:40,560 printf ("hola, món."). I després cita estreta, 528 00:21:40,560 --> 00:21:42,340 tancar parèntesi, punt i coma. 529 00:21:42,340 --> 00:21:44,460 Ara vaig a seguir endavant i acaba de colpejar Cmd-S. Vaig 530 00:21:44,460 --> 00:21:47,650 seguir endavant i guardar això com hello.c, de manera que la convenció en 531 00:21:47,650 --> 00:21:50,530 el món de la programació C és el nom de l'arxiu del punt c. 532 00:21:50,530 --> 00:21:52,880 Vaig a posar just al directori d'inici John Harvard, 533 00:21:52,880 --> 00:21:56,370 aquí, feu clic a Desa, i ara em vaig a anar a aquest 534 00:21:56,370 --> 00:21:59,110 finestra de terminal, que de nou és aquest indicador en blanc i negre 535 00:21:59,110 --> 00:22:00,860 on puc executar ordres. 536 00:22:00,860 --> 00:22:04,550 >> Puc executar programes escrivint el seu nom, no per 537 00:22:04,550 --> 00:22:06,710 doble clic a les icones en el sentit habitual. 538 00:22:06,710 --> 00:22:10,590 Però la cosa es tracta de C és que un llenguatge com C 1 539 00:22:10,590 --> 00:22:13,150 ve en aquesta forma, una cosa que es diu codi font. 540 00:22:13,150 --> 00:22:15,400 Una cosa que s'assembla una mica com l'anglès, però és 541 00:22:15,400 --> 00:22:17,980 definitivament menys com l'anglès d'un pseudocodi de José 542 00:22:17,980 --> 00:22:18,930 moment abans. 543 00:22:18,930 --> 00:22:20,560 És una mica més arcà. 544 00:22:20,560 --> 00:22:22,830 Sembla que seguir les pautes o regles. 545 00:22:22,830 --> 00:22:25,300 El fet que tinc les claus, punt i coma, cometes, 546 00:22:25,300 --> 00:22:28,240 suports en angle, se sent com un equip se li va ocórrer aquesta 547 00:22:28,240 --> 00:22:29,250 tipus de llenguatge. 548 00:22:29,250 --> 00:22:32,010 Però si em vaig, ara, a aquesta finestra de terminal, puc córrer un 549 00:22:32,010 --> 00:22:35,250 ordre que es convertirà aquest codi font és 550 00:22:35,250 --> 00:22:36,610 una cosa que es diu codi objecte. 551 00:22:36,610 --> 00:22:39,690 Això va a convertir Anglès-com sintaxi a zeros 552 00:22:39,690 --> 00:22:41,760 i uns, els mateixos tipus de zeros i uns que nosaltres 553 00:22:41,760 --> 00:22:42,820 va parlar el dimecres. 554 00:22:42,820 --> 00:22:44,810 Ara, em vaig a córrer una ordre anomenat Clang. 555 00:22:44,810 --> 00:22:47,750 Més sobre això en les pròximes setmanes, però és un programa amb 556 00:22:47,750 --> 00:22:52,330 que puc convertir hello.c en un munt 557 00:22:52,330 --> 00:22:53,640 de zeros i uns. 558 00:22:53,640 --> 00:22:54,950 >> Ara, m'he trobat aquesta comanda. 559 00:22:54,950 --> 00:22:57,940 He corregut Clang, i després em va dir que córrer a tu mateix a l'arxiu 560 00:22:57,940 --> 00:23:00,630 anomenat hello.c, que he creat fa un moment, i 561 00:23:00,630 --> 00:23:02,090 res sembla succeir. 562 00:23:02,090 --> 00:23:05,550 Però en realitat, si em va ficar en el meu directori personal, m'agradaria veure 563 00:23:05,550 --> 00:23:09,620 que aquest programa estúpidament anomenat a.out ara existeix. 564 00:23:09,620 --> 00:23:12,250 Això és només el nom predeterminat per a un programa quan s'escriu en 565 00:23:12,250 --> 00:23:15,140 C. Podem canviar aquest temps, però és la a.out 566 00:23:15,140 --> 00:23:18,340 nom del programa que acaba de convertir en zeros i uns. 567 00:23:18,340 --> 00:23:21,490 I ara que ell és zeros i uns, el meu Mac, en aquest cas, o 568 00:23:21,490 --> 00:23:24,670 el PC amb Windows, pot entendre els bits, els 569 00:23:24,670 --> 00:23:25,410 zeros i uns. 570 00:23:25,410 --> 00:23:29,130 I així, quan jo premeu Enter, veig "hola, món!" 571 00:23:29,130 --> 00:23:31,270 >> Però és una mica buggy. 572 00:23:31,270 --> 00:23:34,110 Jo no acabava de dir "hola, món: l'aire: - jharvard". L'aire és 573 00:23:34,110 --> 00:23:35,020 el nom del meu equip. 574 00:23:35,020 --> 00:23:37,730 Jharvard és el nom del compte, així que ho vaig fer amb claredat 575 00:23:37,730 --> 00:23:41,070 ometre al programa? 576 00:23:41,070 --> 00:23:42,480 Una espècie de salt de línia. 577 00:23:42,480 --> 00:23:45,150 No li vaig pegar l'equivalent a Enter o el retorn de carro, 578 00:23:45,150 --> 00:23:47,760 i això és, de nou, testimoni del fet que els ordinadors poden 579 00:23:47,760 --> 00:23:49,800 només fer el que els diuen que facin. 580 00:23:49,800 --> 00:23:52,400 I el fet que jo no li va dir en moure l'ordinador 581 00:23:52,400 --> 00:23:53,860 cursor a la línia següent - 582 00:23:53,860 --> 00:23:55,200 així, no és segur que farà només el 583 00:23:55,200 --> 00:23:56,750 presumptuosament per a mi. 584 00:23:56,750 --> 00:24:00,860 Així que si torno a anar al meu programa, i dic \ n - 585 00:24:00,860 --> 00:24:03,180 Llavors, \ n, com aviat veurem, és la forma de 586 00:24:03,180 --> 00:24:06,910 representar les coses estranyes com caràcters de nova línia, coses 587 00:24:06,910 --> 00:24:08,840 que d'una altra manera seria el resultat de 588 00:24:08,840 --> 00:24:09,940 prement la tecla Enter. 589 00:24:09,940 --> 00:24:11,730 Però, per ara, només sé que prement la tecla Enter es 590 00:24:11,730 --> 00:24:14,170 acaba de fer el nostre codi semblar estrany, de manera que el món van decidir, ja saps 591 00:24:14,170 --> 00:24:16,580 el que, per mantenir les coses més boniques, per mantenir-lo en una línia, anem a 592 00:24:16,580 --> 00:24:19,070 acaba de dir \ n representa una nova línia. 593 00:24:19,070 --> 00:24:22,260 Permetin-me tornar a guardar el meu arxiu, torneu a la finestra de terminal, i 594 00:24:22,260 --> 00:24:25,290 torni a executar a.out, Intro. 595 00:24:25,290 --> 00:24:28,374 Encara amb errors, però per què? 596 00:24:28,374 --> 00:24:29,750 >> AUDIÈNCIA: [inaudible] 597 00:24:29,750 --> 00:24:31,540 David Malan: Sí, així que he de tornar a compilar. 598 00:24:31,540 --> 00:24:34,610 Així que per compilar un programa només significa convertir el de la font 599 00:24:34,610 --> 00:24:37,660 codi per el codi objecte del codi font, en zeros i uns. 600 00:24:37,660 --> 00:24:40,830 Ara bé, el simple fet de que vaig arribar a guardar en aquesta edició de textos no 601 00:24:40,830 --> 00:24:43,450 tenint en aquests zeros i uns, perquè primer ha de 602 00:24:43,450 --> 00:24:48,260 tell Clang hey, he canviat d'aquestes línies de codi, el 603 00:24:48,260 --> 00:24:49,040 codi font. 604 00:24:49,040 --> 00:24:51,010 Cal regenerar a.out. 605 00:24:51,010 --> 00:24:52,990 Res sembla haver passat, però en un ordinador, 606 00:24:52,990 --> 00:24:55,820 en una línia d'ordres, per dir-ho, quan no passa res, 607 00:24:55,820 --> 00:24:57,510 que en general significa que tot està bé. 608 00:24:57,510 --> 00:24:59,040 Quan alguna cosa passa, significa 609 00:24:59,040 --> 00:25:00,420 vostè en mal estat, en general. 610 00:25:00,420 --> 00:25:04,020 >> Així que anirem ara a a.out, i de fet ara tinc "hola, 611 00:25:04,020 --> 00:25:04,440 món ". 612 00:25:04,440 --> 00:25:05,990 I ara, què passa amb aquests zeros i uns? 613 00:25:05,990 --> 00:25:07,520 On, de fet, són els? 614 00:25:07,520 --> 00:25:10,710 Bé, no puc realment només una mica de furgar molt 615 00:25:10,710 --> 00:25:11,210 eficaçment. 616 00:25:11,210 --> 00:25:12,650 Permetin-me obrir TextEdit. 617 00:25:12,650 --> 00:25:14,060 Això és a.out. 618 00:25:14,060 --> 00:25:17,390 Deixin-me seguir endavant i obrir això, i això és pel que sembla el que el meu 619 00:25:17,390 --> 00:25:19,080 programa sembla. 620 00:25:19,080 --> 00:25:21,570 Així que he obert, hello.c no, però a.out. 621 00:25:21,570 --> 00:25:23,960 Però això no és realment el que el meu programa és en realitat. 622 00:25:23,960 --> 00:25:26,450 És evident que això és algun tipus de caràcters alfabètics. 623 00:25:26,450 --> 00:25:28,670 Veig que no hi ha zeros i uns, però això és 624 00:25:28,670 --> 00:25:30,780 perquè a.out és un programa. 625 00:25:30,780 --> 00:25:33,540 Zeros i uns - però TextEdit, com el seu nom indica, és 626 00:25:33,540 --> 00:25:37,130 igual que el Bloc de notes de Windows, és un editor de text, de manera que és 627 00:25:37,130 --> 00:25:39,730 confonent tots aquests zeros i uns com 628 00:25:39,730 --> 00:25:41,870 encara que ho fossin, què? 629 00:25:41,870 --> 00:25:43,380 Caràcters ASCII. 630 00:25:43,380 --> 00:25:45,020 >> Així que recorda el dimecres, només se li va ocórrer aquesta 631 00:25:45,020 --> 00:25:48,740 assignació arbitrària de nombres, o bits, a les lletres del 632 00:25:48,740 --> 00:25:51,690 alfabet i els símbols de puntuació i similars. 633 00:25:51,690 --> 00:25:54,920 Així TextEdit, que és un editor de text es malinterpretant 634 00:25:54,920 --> 00:25:57,270 aquests patrons de zeros i uns que se suposa que són 635 00:25:57,270 --> 00:25:59,990 paraules d'impressió, com "hola, món". Els està mostrant 636 00:25:59,990 --> 00:26:02,150 com ASCII, i per això es veu una mica desordenat. 637 00:26:02,150 --> 00:26:04,910 Ara, hi ha alguns indicis de correcció d'aquí. 638 00:26:04,910 --> 00:26:08,090 Observi si destaco, hi ha un indici de realitat "hola, 639 00:26:08,090 --> 00:26:10,810 món, "així que en algun lloc d'aquest programa és 640 00:26:10,810 --> 00:26:12,120 la frase que vaig escriure. 641 00:26:12,120 --> 00:26:14,610 Però seguirem endavant i ara veig amb un programa diferent. 642 00:26:14,610 --> 00:26:17,420 Això no és un usarem sovint, però també ve amb 643 00:26:17,420 --> 00:26:19,970 un Mac i estarà dins de l'aparell CS50. 644 00:26:19,970 --> 00:26:23,940 Deixin-me seguir endavant i obrir amb un programa anomenat XXD. 645 00:26:23,940 --> 00:26:26,530 >> De tornada en el dia, la majoria dels programes van ser nomenats bastant críptica, 646 00:26:26,530 --> 00:26:28,200 i pel que la tendència continua. 647 00:26:28,200 --> 00:26:31,160 Però-b significa escopir a terme aquest programa en forma binària. 648 00:26:31,160 --> 00:26:32,330 No ho executi. 649 00:26:32,330 --> 00:26:35,770 Mostra a mi com zeros i uns, i aquesta és la C 650 00:26:35,770 --> 00:26:37,190 programa que acabo d'escriure. 651 00:26:37,190 --> 00:26:39,920 Ara bé, jo, com a ésser humà aquí, sincerament, no tenen idea del que 652 00:26:39,920 --> 00:26:42,230 aquests diversos patrons de zeros i uns representen. 653 00:26:42,230 --> 00:26:45,320 De tornada en el dia, jo, amb les meves targetes perforades o similars, ho faria 654 00:26:45,320 --> 00:26:48,080 en realitat cal buscar el que aquests diversos patrons de 655 00:26:48,080 --> 00:26:51,560 01111000, en realitat representen. 656 00:26:51,560 --> 00:26:54,390 O pitjor encara, que hauria de fer la perforació o la creació 657 00:26:54,390 --> 00:26:56,130 d'aquests patrons de zeros i uns. 658 00:26:56,130 --> 00:27:00,410 Però per ara, tenir fe en què una CPU, Intel Inside, així 659 00:27:00,410 --> 00:27:03,440 dir-ho, dins de totes les nostres ordinadors en aquests dies, sap 660 00:27:03,440 --> 00:27:05,100 com interpretar aquests zeros i uns. 661 00:27:05,100 --> 00:27:07,010 I alguns zeros i uns significar impressió. 662 00:27:07,010 --> 00:27:09,040 Alguns zeros i uns significa reproduir un so. 663 00:27:09,040 --> 00:27:13,630 Alguns zeros i uns significar prendre la entrada de l'usuari des d'un teclat. 664 00:27:13,630 --> 00:27:15,960 Hi ha tot tipus de diferents models, però per sort, 665 00:27:15,960 --> 00:27:19,680 com a éssers humans, en general, només ha de preocupar sobre la programació en 666 00:27:19,680 --> 00:27:21,270 aquest nivell bastant alt. 667 00:27:21,270 --> 00:27:24,320 I en altres classes CS pot aprofundir més profundament i buscar 668 00:27:24,320 --> 00:27:26,820 les coses com aquests zeros i uns, o encara 669 00:27:26,820 --> 00:27:28,000 altres coses fixes. 670 00:27:28,000 --> 00:27:29,210 >> Així que ara anem a convertir això. 671 00:27:29,210 --> 00:27:32,550 Anem a passar molt ràpidament de C i passar a una cosa una 672 00:27:32,550 --> 00:27:36,390 poc més reconfortant, una mica més emocionant, en què 673 00:27:36,390 --> 00:27:39,340 podem tornar nostres animacions i sons i similars, que 674 00:27:39,340 --> 00:27:40,940 clarament ens han escapat a aquesta 675 00:27:40,940 --> 00:27:42,480 interfície bastant primitiu. 676 00:27:42,480 --> 00:27:46,430 Així que aquest mateix programa en C pot ser representada ara en aquest 677 00:27:46,430 --> 00:27:50,060 llenguatge de programació anomenat rascada de la següent manera. 678 00:27:50,060 --> 00:27:54,230 Aquest és l'equivalent d'aquest programa hola món escrit en 679 00:27:54,230 --> 00:27:57,370 aquesta peça del trencaclosques estil llenguatge anomenat Scratch. 680 00:27:57,370 --> 00:28:00,600 Així que permetin-me seguir endavant i obrir el programa mateix. 681 00:28:00,600 --> 00:28:01,850 Es va tornar a demanar Scratch. 682 00:28:01,850 --> 00:28:03,880 És de lliure disposició, i això és el mateix que 683 00:28:03,880 --> 00:28:05,120 Comenceu avui mateix a. 684 00:28:05,120 --> 00:28:07,790 >> Així que aquí és Scratch, i està dividida en uns pocs 685 00:28:07,790 --> 00:28:09,700 diferents peces. 686 00:28:09,700 --> 00:28:12,690 A la part superior dreta, tenim l'anomenada fase, i 687 00:28:12,690 --> 00:28:13,670 de fet, aquí és on les galetes 688 00:28:13,670 --> 00:28:15,440 realitzar només una mica enrere. 689 00:28:15,440 --> 00:28:19,660 I en aquesta etapa són coses anomenades sprites, caràcters o 690 00:28:19,660 --> 00:28:21,030 objectes o entitats. 691 00:28:21,030 --> 00:28:23,320 Realment no importa el que pensa d'ells, però 692 00:28:23,320 --> 00:28:26,740 coses són programables, mòbils, i en aquest cas, això, 693 00:28:26,740 --> 00:28:30,730 programa que el nostre estudiant va escriure té un parell de pa de gingebre 694 00:28:30,730 --> 00:28:32,990 galetes, un parell de galetes circulars, una gran quantitat de 695 00:28:32,990 --> 00:28:35,430 cors, un munt d'ulleres. 696 00:28:38,170 --> 00:28:42,420 A causa d'això, ell o ella és capaç de programar cada un dels 697 00:28:42,420 --> 00:28:44,720 caràcters individuals per separat. 698 00:28:44,720 --> 00:28:46,480 >> Ara bé, què significa per a programar aquests personatges? 699 00:28:46,480 --> 00:28:49,440 Bé, deixa seguir endavant i fer clic en aquesta galeta mà esquerra 700 00:28:49,440 --> 00:28:51,830 i desplaceu-vos fins a la part superior esquerra aquí. 701 00:28:51,830 --> 00:28:53,670 A la part superior esquerra de la pantalla ara és el 702 00:28:53,670 --> 00:28:55,280 l'anomenada àrea de scripts. 703 00:28:55,280 --> 00:28:58,790 Aquesta és una espècie de pissarra en blanc, en un principi, sobre el qual puc 704 00:28:58,790 --> 00:29:01,540 arrossegar i deixar anar les peces del trencaclosques que, francament, fer 705 00:29:01,540 --> 00:29:03,020 exactament el que diuen. 706 00:29:03,020 --> 00:29:05,820 A la part superior de la pila de trossos del trencaclosques és la paraula 707 00:29:05,820 --> 00:29:09,340 En fer clic sobre Bandera Verda, i si no et vas adonar abans, 708 00:29:09,340 --> 00:29:12,300 la manera com va començar aquesta cançó galeta va ser fer clic, literalment, 709 00:29:12,300 --> 00:29:13,320 una bandera verda. 710 00:29:13,320 --> 00:29:16,590 Així que aquesta peça del trencaclosques en la part superior esquerra hi ha vol dir que quan el 711 00:29:16,590 --> 00:29:19,780 clics humans de la bandera verda, va procedir a fer 712 00:29:19,780 --> 00:29:21,110 les següents coses. 713 00:29:21,110 --> 00:29:23,330 >> Ara bé, què van fer galeta procedir a fer? 714 00:29:23,330 --> 00:29:25,810 No se sap molt bé com interpretar això encara, però la 715 00:29:25,810 --> 00:29:29,220 galeta aparentment estableixi la seva ranura a zero, llavors s'esperava 716 00:29:29,220 --> 00:29:31,740 tres segons, després va canviar de grup a un, llavors 717 00:29:31,740 --> 00:29:33,590 Va esperar un segon, i després va canviar la seva 718 00:29:33,590 --> 00:29:35,100 ranura de nou a un. 719 00:29:35,100 --> 00:29:37,373 I després aquesta realitat s'assembla una mica a un error, no ha 720 00:29:37,373 --> 00:29:39,440 ha de canviar la seva ranura i una altra si no és 721 00:29:39,440 --> 00:29:43,380 es canvia en un altre lloc, però aquesta sèrie de mesures és el que està 722 00:29:43,380 --> 00:29:46,800 dictant el comportament d'aquesta galeta en particular. 723 00:29:46,800 --> 00:29:49,180 Així que en realitat no desplaçar-se cap enrere i mirar una mica 724 00:29:49,180 --> 00:29:50,430 tan complex encara. 725 00:29:50,430 --> 00:29:52,260 Deixin-me seguir endavant i anar a Arxiu, Nou, 726 00:29:52,260 --> 00:29:53,560 i obtenir un creu i ratlla. 727 00:29:53,560 --> 00:29:56,590 >> Així que ara, en efecte tenir una àrea buida guió, un escenari buit, 728 00:29:56,590 --> 00:29:59,380 amb el nostre follet ratllat defecte, i en la part superior esquerra 729 00:29:59,380 --> 00:30:01,670 a la meva pantalla tinc la paleta de la totalitat del seu 730 00:30:01,670 --> 00:30:03,400 peces disponibles trencaclosques. 731 00:30:03,400 --> 00:30:06,300 I no anem a passar gairebé que moltes d'aquestes coses 732 00:30:06,300 --> 00:30:09,470 avui, perquè, un cop més, la majoria s'expliquen per si, però ho farem 733 00:30:09,470 --> 00:30:12,370 tractar de categoritzar i destacar les similituds 734 00:30:12,370 --> 00:30:15,380 amb aquests llenguatges futurs als que anem a bussejar. 735 00:30:15,380 --> 00:30:19,180 I aquí dalt a l'esquerra és la primera Bandera Verda Quan Seguit, 736 00:30:19,180 --> 00:30:22,170 així que vaig a arrossegar això aquí, allunyar una mica. 737 00:30:22,170 --> 00:30:25,780 I si faig clic a la bandera verda, res passa perquè 738 00:30:25,780 --> 00:30:29,360 No he inclòs cap lògica, qualsevol declaració per dir-ho, a 739 00:30:29,360 --> 00:30:31,040 aquesta bandera verda, així que permetin-me anar fins al 740 00:30:31,040 --> 00:30:32,500 categories aquí. 741 00:30:32,500 --> 00:30:34,840 Actualment estic en la categoria de control. 742 00:30:34,840 --> 00:30:37,630 Estic en comptes d'anar a baixar a la categoria Aparença, i 743 00:30:37,630 --> 00:30:39,970 hi ha un munt de coses aquí que diguis Di, 744 00:30:39,970 --> 00:30:43,110 Pensa, canvi de color, vestuari Switch. 745 00:30:43,110 --> 00:30:44,860 >> Així que vostè pot fer coses tontes amb els vestits i 746 00:30:44,860 --> 00:30:45,870 sons i similars. 747 00:30:45,870 --> 00:30:49,970 Deixin-me seguir endavant i dir Say i ara noti com em arrossegament 748 00:30:49,970 --> 00:30:52,940 i col · locar aquesta peça del trencaclosques, voldrà aferrar 749 00:30:52,940 --> 00:30:55,010 en la forma corresponent. 750 00:30:55,010 --> 00:30:58,020 Així que quan em vagi a continuació i deixar anar el ratolí, es bloqueja 751 00:30:58,020 --> 00:31:01,770 junts, i ara si em vaig d'aquí i feu clic a la bandera verda, 752 00:31:01,770 --> 00:31:05,910 el gat és de fet saludar perquè això és el que hi ha dins 753 00:31:05,910 --> 00:31:06,980 d'aquesta caixa blanca. 754 00:31:06,980 --> 00:31:08,900 Aviat veurem que aquesta caixa blanca és el que s'anomena una 755 00:31:08,900 --> 00:31:10,250 argument, o un paràmetre. 756 00:31:10,250 --> 00:31:12,560 És una forma de canviar el comportament de, en aquest cas, una 757 00:31:12,560 --> 00:31:15,070 peça del trencaclosques, però si vull dir exactament el que vaig dir 758 00:31:15,070 --> 00:31:18,610 abans, dir hola, món, ara puc tornar per aquí, 759 00:31:18,610 --> 00:31:21,990 Feu clic a Reproduir i "hola, món" és el que es diu. 760 00:31:21,990 --> 00:31:24,340 >> Així que literalment estem programant ara. 761 00:31:24,340 --> 00:31:27,540 No és tot el que obliga d'un programa, però almenys 762 00:31:27,540 --> 00:31:30,140 que és una mica d'alguna cosa més convincent que sembla que, en 763 00:31:30,140 --> 00:31:31,300 A primer cop d'ull, així. 764 00:31:31,300 --> 00:31:34,190 I podem obtenir molt ràpidament tant més expressiva 765 00:31:34,190 --> 00:31:36,600 perquè en Scratch, com en altres idiomes, no és tot 766 00:31:36,600 --> 00:31:40,010 tipus de declaracions no, acaba de dir o imprimir alguna cosa, però 767 00:31:40,010 --> 00:31:42,650 vostè pot fer coses com espera, com acabem de veure amb 768 00:31:42,650 --> 00:31:44,240 la galeta, un cert nombre de segons. 769 00:31:44,240 --> 00:31:46,440 Pot reproduir sons en l'entorn de Scratch només 770 00:31:46,440 --> 00:31:49,050 com es fa en una reproducció de so d'ordinador normal del programa. 771 00:31:49,050 --> 00:31:52,440 Vostè pot comprovar el que es diuen expressions booleanes. 772 00:31:52,440 --> 00:31:55,630 Així que ara, començarem a afegir a la nostra caixa d'eines una mica de terminologia 773 00:31:55,630 --> 00:31:58,840 que en realitat es refereix a l'exemple que Josep i jo 774 00:31:58,840 --> 00:32:00,080 aquí amb els mitjons. 775 00:32:00,080 --> 00:32:03,040 Així que les declaracions són declaracions de fets. 776 00:32:03,040 --> 00:32:04,160 Feu això. 777 00:32:04,160 --> 00:32:07,370 Una directiva per al sprite, o m'ho humà, per fer alguna cosa. 778 00:32:07,370 --> 00:32:10,420 Una expressió booleana és una cosa que té un valor, un 779 00:32:10,420 --> 00:32:14,580 anomenat valor de veritat, això és un zero o un, falsa o 780 00:32:14,580 --> 00:32:17,890 cert, apagat o encès, no o sí. 781 00:32:17,890 --> 00:32:19,730 Realment no importa el que pensis sobre això, però és un 782 00:32:19,730 --> 00:32:20,700 binari Estat. 783 00:32:20,700 --> 00:32:22,610 Com Nate discutit en vídeo de dimecres, dos 784 00:32:22,610 --> 00:32:23,570 coses diferents. 785 00:32:23,570 --> 00:32:25,740 >> Així que en Scratch, booleana passar a buscar 786 00:32:25,740 --> 00:32:28,910 com aquests objectes blau aquí, i en aquest cas, la qüestió 787 00:32:28,910 --> 00:32:30,960 marca implica que vostè està fent una pregunta. 788 00:32:30,960 --> 00:32:34,250 Està el gat, o el follet, tocant el punter del ratolí? 789 00:32:34,250 --> 00:32:36,580 Així que això és només un exemple d'un bloc de Scratch que està passant 790 00:32:36,580 --> 00:32:39,950 que ens permeti comprovar si o no, és el ratolí toca el 791 00:32:39,950 --> 00:32:40,790 sprite a la pantalla? 792 00:32:40,790 --> 00:32:42,840 I això pot ser útil si vostè realment vol fer les coses 793 00:32:42,840 --> 00:32:43,820 amb el ratolí. 794 00:32:43,820 --> 00:32:46,470 A més de les expressions booleanes, tenim coses 795 00:32:46,470 --> 00:32:49,110 com és el ratolí cap avall, perquè pugui detectar aquest tipus de 796 00:32:49,110 --> 00:32:50,200 qüestionar també. 797 00:32:50,200 --> 00:32:52,590 Podem fer les matemàtiques si vostè vol realment, i hi ha 798 00:32:52,590 --> 00:32:55,170 usos realitat més convincents perquè aquest només pura de 799 00:32:55,170 --> 00:32:56,400 aritmètica, com ja veurem. 800 00:32:56,400 --> 00:32:59,690 Pseudo aleatori i fer que el seu programa semblen pensar 801 00:32:59,690 --> 00:33:03,490 o es comporten de manera diferent sobre la base d'uns valors aparentment a l'atzar, 802 00:33:03,490 --> 00:33:06,610 i després tenim coses com símbols booleans AND. 803 00:33:06,610 --> 00:33:08,830 Així que si vostè realment vol comprovar dos valors, anem a veure en 804 00:33:08,830 --> 00:33:11,110 Raspi que realment podem provar si això és 805 00:33:11,110 --> 00:33:13,190 cert i això és cert. 806 00:33:13,190 --> 00:33:15,300 Per exemple, en el cas dels meus mitjons, que podria haver al 807 00:33:15,300 --> 00:33:19,045 molt extrem preguntat si mitjó esquerre està encès i mitjó dret 808 00:33:19,045 --> 00:33:20,610 està encès, deixi de fer-ho. 809 00:33:20,610 --> 00:33:22,710 Està tot fet per al dia, així que seria una 810 00:33:22,710 --> 00:33:24,300 oportunitat perquè. 811 00:33:24,300 --> 00:33:27,740 >> Així que seguirem endavant i tractar de reconstruir algunes d'elles juntament 812 00:33:27,740 --> 00:33:31,570 i entrar en un parell d'exemples més 813 00:33:31,570 --> 00:33:32,610 convincent que aquesta. 814 00:33:32,610 --> 00:33:35,770 Així que permetin-me anar davant aquí i obrir alguns dels exemples 815 00:33:35,770 --> 00:33:38,350 que sempre estarà a la pàgina web de l'assignatura, així, i 816 00:33:38,350 --> 00:33:39,870 obrir hello2. 817 00:33:39,870 --> 00:33:42,910 Així que en hello2 aquí, tenim un programa que s'està fent una mica 818 00:33:42,910 --> 00:33:46,290 coses, però no ho fa tan eficaçment com ho faríem. 819 00:33:46,290 --> 00:33:48,900 Així que aquí es diu "hola, món" durant un segon i després espera 820 00:33:48,900 --> 00:33:49,450 per un segon. 821 00:33:49,450 --> 00:33:51,720 I ho fa de nou, i després ho fa de nou. 822 00:33:51,720 --> 00:33:55,530 Així que si faig clic a la bandera verda, Scratch diu: "Hola, món. 823 00:33:55,530 --> 00:33:57,160 Hola, món. 824 00:33:57,160 --> 00:34:00,080 Hola, món. "I aquesta és, òbviament, ara candidat per 825 00:34:00,080 --> 00:34:00,860 millora. 826 00:34:00,860 --> 00:34:03,070 >> Quina és la millora marginal, amb sort, podem 827 00:34:03,070 --> 00:34:07,610 ara si fer scratch dóna suport al concepte? 828 00:34:07,610 --> 00:34:08,310 Una espècie de bucle. 829 00:34:08,310 --> 00:34:10,960 Una espècie de repetició, ara, estaria bé, així que permetin-me 830 00:34:10,960 --> 00:34:11,920 realment intentar-ho. 831 00:34:11,920 --> 00:34:13,870 Permetin-me realment anar i seguir això. 832 00:34:13,870 --> 00:34:16,449 Així que avís es pot desprendre blocs tan fàcilment com vostè pot afegir a 833 00:34:16,449 --> 00:34:17,420 adjuntar-los. 834 00:34:17,420 --> 00:34:20,730 Deixa anar sota control, desplaceu-vos fins aquí, i de fet, 835 00:34:20,730 --> 00:34:24,000 hi ha aquesta peça del trencaclosques aquí, repetida i sempre i 836 00:34:24,000 --> 00:34:24,870 Sempre If. 837 00:34:24,870 --> 00:34:28,500 Així que hi ha un nombre de maneres d'expressar construccions de bucles 838 00:34:28,500 --> 00:34:29,340 en Scratch. 839 00:34:29,340 --> 00:34:31,730 La que probablement vol aquí no és per sempre, perquè només 840 00:34:31,730 --> 00:34:34,639 desitja que això passi tres vegades, però Repetiu probablement. 841 00:34:34,639 --> 00:34:38,449 Així que em arrossega Repetiu fins aquí, arrossegar i deixar anar, i 842 00:34:38,449 --> 00:34:42,530 ara en lloc de dir "Hola, món" en tres ocasions separades, 843 00:34:42,530 --> 00:34:44,230 m'ho dius a mi arrossegar aquesta peça del trencaclosques aquí. 844 00:34:44,230 --> 00:34:46,610 I tot i que no sembla encaixar, el programa és intel · ligent 845 00:34:46,610 --> 00:34:48,920 prou com per adonar-se que creixerà per omplir, així que és el 846 00:34:48,920 --> 00:34:51,270 formes que la matèria i no la mida absolut. 847 00:34:51,270 --> 00:34:54,030 Canviarem la repetició a tres, i ara em deixa anar 848 00:34:54,030 --> 00:34:56,560 endavant i arrossegar espereu uns instants en allà també. 849 00:34:56,560 --> 00:34:59,220 Va a trencar endins també, i per això ara em vaig a arrossegar 850 00:34:59,220 --> 00:35:01,370 aquests nois d'aquí i simplement llençar a les escombraries perquè 851 00:35:01,370 --> 00:35:02,710 no els necessita més. 852 00:35:02,710 --> 00:35:05,920 Permetin-me allunyar la imatge i feu clic a la bandera verda ara, i tenim 853 00:35:05,920 --> 00:35:09,600 el mateix programa, però, com jo vaig predir abans, millor 854 00:35:09,600 --> 00:35:12,200 dissenyat perquè es pot imaginar el mal que aquest programa 855 00:35:12,200 --> 00:35:14,410 tindria, sens dubte estèticament, si ha de 856 00:35:14,410 --> 00:35:16,640 començar a copiar i enganxar, copiar i enganxar, o 857 00:35:16,640 --> 00:35:20,020 arrossegar i deixar anar les coses donaran mateixos una i altra vegada. 858 00:35:20,020 --> 00:35:22,260 >> Ara, simplement dient coses a la pantalla, la impressió al 859 00:35:22,260 --> 00:35:25,350 pantalla, en realitat no és tan emocionant, així que anem a obrir un 860 00:35:25,350 --> 00:35:26,580 variància 3 aquí. 861 00:35:26,580 --> 00:35:29,810 I ara, com es veurà, aquest dóna gust ser molest - 862 00:35:29,810 --> 00:35:30,850 [MEOW] 863 00:35:30,850 --> 00:35:31,940 David Malan: - però també és una mica valent. 864 00:35:31,940 --> 00:35:35,244 [MEOW] 865 00:35:35,244 --> 00:35:37,460 David Malan: Bé, millor així, i sens dubte podem utilitzar aquesta 866 00:35:37,460 --> 00:35:41,060 mateixa transició de fragmentació això en un bucle 867 00:35:41,060 --> 00:35:43,520 estructura, però ho farem més interessant encara. 868 00:35:43,520 --> 00:35:47,480 >> Deixin-me seguir endavant i obrir una variació 4 aquí, on 869 00:35:47,480 --> 00:35:50,020 prendre les coses un pas més enllà. 870 00:35:50,020 --> 00:35:54,450 Així que d'acord amb això, ximple encara que això és en primera 871 00:35:54,450 --> 00:35:58,530 mirada, el que aquest programa farà? 872 00:35:58,530 --> 00:35:59,790 Va a miolar una vegada. 873 00:35:59,790 --> 00:36:00,160 Per què? 874 00:36:00,160 --> 00:36:03,340 Bé, un és, fins on jo sé, sempre inferior a dos. 875 00:36:03,340 --> 00:36:04,890 No hi ha noció d'aleatorietat aquí. 876 00:36:04,890 --> 00:36:07,240 Literalment, he codificat ui dos, però aquest és un 877 00:36:07,240 --> 00:36:10,370 exemple ara d'utilitzar realment una expressió booleana. 878 00:36:10,370 --> 00:36:13,650 Igual com ho va fer José al seu pseudocodi, la sagnia SI 879 00:36:13,650 --> 00:36:17,170 a trobar mitjons a joc, fes el següent, aquí tenim 880 00:36:17,170 --> 00:36:19,750 una expressió si un és menor de dos THEN - 881 00:36:19,750 --> 00:36:21,820 i, de fet, fins i tot tenim una mica de sangria, 882 00:36:21,820 --> 00:36:24,480 on el morat és una mica sagnia a la dreta - 883 00:36:24,480 --> 00:36:26,600 Llavors vostè jugarà el miol de so. 884 00:36:26,600 --> 00:36:30,060 Ara, en aquest cas, que un és sempre inferior a dos, de manera que aquest 885 00:36:30,060 --> 00:36:31,970 és una mena de pèrdua de la condició. 886 00:36:31,970 --> 00:36:34,890 Però serem capaços, com veurem, per tapar altres coses en 887 00:36:34,890 --> 00:36:37,420 aquests marcadors de posició on un i dos són ara. 888 00:36:37,420 --> 00:36:41,340 Així que anem a avançar ara a l'exemple cinc d'aquests diversos 889 00:36:41,340 --> 00:36:45,850 salutacions i mirada al que aquest programa farà. 890 00:36:45,850 --> 00:36:48,710 >> Així que ara, en una sentència de Anglès, com funciona això 891 00:36:48,710 --> 00:36:51,460 programa de comportar? 892 00:36:51,460 --> 00:36:52,950 AUDIÈNCIA: Meows meitat del temps. 893 00:36:52,950 --> 00:36:55,380 David Malan: la meitat de Meow part del temps, de manera que aquesta és una forma de 894 00:36:55,380 --> 00:36:56,700 transmetre una idea molt simple. 895 00:36:56,700 --> 00:36:59,400 Tot i que s'estigui utilitzant algunes desigualtats aquí 896 00:36:59,400 --> 00:37:01,860 en alguns números, això és en realitat un programàtica 897 00:37:01,860 --> 00:37:09,490 Així, de manera precisa, de dir si la moneda surt cara, vagi 898 00:37:09,490 --> 00:37:10,270 endavant i miolar. 899 00:37:10,270 --> 00:37:13,540 O al revés, si la moneda surt creu, no miau. 900 00:37:13,540 --> 00:37:15,110 I en aquest cas, com expressar això? 901 00:37:15,110 --> 00:37:17,950 Anem a escollir un nombre a l'atzar entre 1 i 10, i si això 902 00:37:17,950 --> 00:37:21,110 nombre és inferior a 6, endavant, miau. 903 00:37:21,110 --> 00:37:22,260 I com va arribar això aquí? 904 00:37:22,260 --> 00:37:24,620 Bé, de nou, només el compte d'arrossegar i deixar anar i 905 00:37:24,620 --> 00:37:26,190 coses encaix. 906 00:37:26,190 --> 00:37:28,020 >> Així que ara anem a veure si aquesta aleatorietat funciona. 907 00:37:28,020 --> 00:37:29,845 Deixin-me seguir endavant i feu clic a la bandera verda. 908 00:37:29,845 --> 00:37:31,120 [MEOW] 909 00:37:31,120 --> 00:37:32,000 David Malan: Molt bé. 910 00:37:32,000 --> 00:37:33,430 [MEOW] 911 00:37:33,430 --> 00:37:35,260 David Malan: Molt bé. 912 00:37:35,260 --> 00:37:38,510 Bé, bé, així que ens van donar caps, caps, cues eficaç. 913 00:37:38,510 --> 00:37:39,295 Tails. 914 00:37:39,295 --> 00:37:39,590 [MEOW] 915 00:37:39,590 --> 00:37:41,829 David Malan: Heads. 916 00:37:41,829 --> 00:37:43,220 [MEOW] 917 00:37:43,220 --> 00:37:44,040 David Malan: Excel · lent. 918 00:37:44,040 --> 00:37:46,220 Sempre és difícil quan només estadísticament s'obté una mala 919 00:37:46,220 --> 00:37:48,510 executar, i és tots els caps, i el programa en realitat no 920 00:37:48,510 --> 00:37:49,230 treballar com era d'esperar. 921 00:37:49,230 --> 00:37:51,210 Però aquesta vegada, va funcionar, i sembla que tenim, si ho féssim 922 00:37:51,210 --> 00:37:53,830 aquest nombre infinit de vegades, les probabilitats del 50%. 923 00:37:53,830 --> 00:37:56,950 Ara, de nou, no tot és tan interessant, just el que els gats 924 00:37:56,950 --> 00:37:59,840 miau, així que anem a veure si podem avançar en això una mica més lluny 925 00:37:59,840 --> 00:38:01,820 aquí a la sisena versió. 926 00:38:01,820 --> 00:38:05,620 Així que ara, tenim versió realment molest - 927 00:38:05,620 --> 00:38:08,215 [Miols cada pocs segons] 928 00:38:08,215 --> 00:38:10,640 David Malan: - i això és el que es coneix, en general, com un 929 00:38:10,640 --> 00:38:11,670 bucle infinit. 930 00:38:11,670 --> 00:38:14,190 >> Així bucle infinit en aquest cas se sent malament. 931 00:38:14,190 --> 00:38:16,970 És, definitivament, començarà a sonar malament, i no obstant això infinit 932 00:38:16,970 --> 00:38:18,740 llaços no són sempre dolentes. 933 00:38:18,740 --> 00:38:20,910 Pot pensar en el context de programes d'ordinador en què havia 934 00:38:20,910 --> 00:38:22,910 en realitat volen un bucle infinit? 935 00:38:22,910 --> 00:38:23,691 Sí? 936 00:38:23,691 --> 00:38:26,520 AUDIÈNCIA: Si vostè vol comprovar una condició. 937 00:38:26,520 --> 00:38:28,240 David Malan: Està bé, si esteu a un control d'una malaltia? 938 00:38:28,240 --> 00:38:29,190 Com què? 939 00:38:29,190 --> 00:38:30,440 AUDIÈNCIA: [inaudible] 940 00:38:36,060 --> 00:38:38,170 David Malan: Bé, bé, així que si tens algun programa, algun 941 00:38:38,170 --> 00:38:40,440 tipus de coses domòtica, en la qual desitja constantment 942 00:38:40,440 --> 00:38:41,980 monitor és una cosa així. 943 00:38:41,980 --> 00:38:42,850 Són els llums encesos? 944 00:38:42,850 --> 00:38:45,020 Són els llums encesos perquè potser vostè té un temporitzador i 945 00:38:45,020 --> 00:38:47,360 desitja que s'apaga, és possible que hagi de fer alguna cosa 946 00:38:47,360 --> 00:38:48,290 una i altra vegada. 947 00:38:48,290 --> 00:38:50,540 I de fet, parlant dels temporitzadors, qualsevol de vostès que han 948 00:38:50,540 --> 00:38:53,100 rellotges al teu ordinador o rellotges digitals, és una 949 00:38:53,100 --> 00:38:54,210 bucle infinit. 950 00:38:54,210 --> 00:38:56,980 Es continua actualitzant el temps perquè és constantment 951 00:38:56,980 --> 00:38:59,750 la comprovació i el control i la comprovació té el temps canviat, 952 00:38:59,750 --> 00:39:01,000 i si és així, oh, el meu déu. 953 00:39:03,670 --> 00:39:04,740 El rellotge finalment ha canviat. 954 00:39:04,740 --> 00:39:07,020 Cal mostrar aquest valor per a vostè. 955 00:39:07,020 --> 00:39:10,880 Així, mentre la majoria dels cicles infinits de temps són un error, 956 00:39:10,880 --> 00:39:13,950 o almenys una decisió de disseny pobre, de vegades ho fan 957 00:39:13,950 --> 00:39:14,785 tenen el seu valor. 958 00:39:14,785 --> 00:39:18,170 >> Bé, seguirem avançant per hello7. 959 00:39:18,170 --> 00:39:20,410 Així que ara el programa es posen una mica més interactiu. 960 00:39:20,410 --> 00:39:23,120 Permetin-me fer un zoom aquí, de nou, això és el que és bo 961 00:39:23,120 --> 00:39:23,640 sobre Scratch. 962 00:39:23,640 --> 00:39:26,760 I anem a usar perquè quedi clar, Scratch, només avui i en 963 00:39:26,760 --> 00:39:27,780 problema la setmana que ve configurat. 964 00:39:27,780 --> 00:39:31,920 Però el dilluns, ens submergim en C. En aquest programa, ho fa, 965 00:39:31,920 --> 00:39:33,190 sempre, el següent. 966 00:39:33,190 --> 00:39:35,890 SI tocar el punter del ratolí - ara, qui és el 967 00:39:35,890 --> 00:39:36,420 context aquí? 968 00:39:36,420 --> 00:39:39,670 Bé, i s'adona que qui selecciona aquí baix, en el fons 969 00:39:39,670 --> 00:39:43,060 dret és el gat, sprite, així que aquestes seqüències d'ordres, això 970 00:39:43,060 --> 00:39:45,720 programa, s'aplica a ell específicament. 971 00:39:45,720 --> 00:39:48,950 Així que si el gat està en contacte amb el punter del ratolí, llavors va 972 00:39:48,950 --> 00:39:51,350 per jugar a aquest i esperar dos segons, i 973 00:39:51,350 --> 00:39:53,030 repeteixi fins a la sacietat. 974 00:39:53,030 --> 00:39:55,360 >> Així que seguirem endavant i arribar a jugar. 975 00:39:55,360 --> 00:39:57,580 No passa res, però si vull acariciar el 976 00:39:57,580 --> 00:39:59,310 gat ara, simplement podia. 977 00:39:59,310 --> 00:40:01,130 [MEOW] 978 00:40:01,130 --> 00:40:02,244 David Malan: Adorable. 979 00:40:02,244 --> 00:40:05,956 [MEOW] 980 00:40:05,956 --> 00:40:08,750 David Malan: Bé, menys molest, però també aconsegueix avorrit, 981 00:40:08,750 --> 00:40:11,480 així que seguirem endavant i veure si no podem injectar 982 00:40:11,480 --> 00:40:12,460 una lògica poc més. 983 00:40:12,460 --> 00:40:14,300 Aquest va ser l'exemple de set. 984 00:40:14,300 --> 00:40:16,090 >> Aquí a l'exemple vuit, anem a 985 00:40:16,090 --> 00:40:18,670 introduir una condició ELSE. 986 00:40:18,670 --> 00:40:21,440 Tant literal com una forquilla a la carretera, on es pot anar 987 00:40:21,440 --> 00:40:24,260 cap a l'esquerra o vostè pot anar a la dreta, una condició en la programació 988 00:40:24,260 --> 00:40:28,120 llenguatge com Scratch, o com veurem C, pot permetre 989 00:40:28,120 --> 00:40:32,230 anar en una direcció o una altra a través d'un IF ELSE construir. 990 00:40:32,230 --> 00:40:35,160 Així que, literalment, SI tocar punter del ratolí, aquest 991 00:40:35,160 --> 00:40:38,680 es reproduirà un so, en cas contrari jugarà aquest altre 992 00:40:38,680 --> 00:40:39,800 so, miau. 993 00:40:39,800 --> 00:40:42,510 Ara, si vostè pot deduir del nom d'aquests sons, pot 994 00:40:42,510 --> 00:40:45,310 probablement endevinar el que aquest programa està destinat a evocar 995 00:40:45,310 --> 00:40:46,250 la idea de. 996 00:40:46,250 --> 00:40:48,742 Aquest gat està miolant feliç. 997 00:40:48,742 --> 00:40:49,230 [MEOW] 998 00:40:49,230 --> 00:40:51,410 David Malan: Feliçment, però no 999 00:40:51,410 --> 00:40:52,926 prou per ser tocat. 1000 00:40:52,926 --> 00:40:54,550 [ROARS] 1001 00:40:54,550 --> 00:40:57,500 David Malan: Així que ara tenim un gat que va a cridar a vostè. 1002 00:40:57,500 --> 00:41:00,570 >> Bé, bé, un últim exemple amb els gats aquí, i 1003 00:41:00,570 --> 00:41:02,920 anem versió oberta de nou d'això aquí. 1004 00:41:02,920 --> 00:41:06,190 Així que ara, tenim el següent so més molest que he pogut 1005 00:41:06,190 --> 00:41:11,630 trobar, així que tenim una morsa o lleó marí que aquí va a 1006 00:41:11,630 --> 00:41:13,222 faci el següent. 1007 00:41:13,222 --> 00:41:20,870 [Foca] 1008 00:41:20,870 --> 00:41:23,310 David Malan: Bé, això continuarà fins que esbrinar com 1009 00:41:23,310 --> 00:41:24,640 aquest programa funciona. 1010 00:41:24,640 --> 00:41:28,560 Així que aquesta vegada, aquest animal té dos guions, i és el que 1011 00:41:28,560 --> 00:41:31,050 interessant aquí és que aquests scripts es va a executar 1012 00:41:31,050 --> 00:41:32,260 en paral · lel. 1013 00:41:32,260 --> 00:41:35,340 Per tant, ja que ambdues comencen amb una bandera verda es fa clic, 1014 00:41:35,340 --> 00:41:38,080 és com anar d'aquesta manera, i tots dos programes s'inicien d'executar 1015 00:41:38,080 --> 00:41:41,370 un cop fins i tot si estan bucle per sempre. 1016 00:41:41,370 --> 00:41:44,420 Així que en l'script d'alt, tinc una mica de lògica. 1017 00:41:44,420 --> 00:41:49,275 Què funcionalitats que proporcionen fins allà? 1018 00:41:49,275 --> 00:41:50,740 [Foca] 1019 00:41:50,740 --> 00:41:51,670 AUDIÈNCIA: [inaudible] 1020 00:41:51,670 --> 00:41:53,295 David Malan: Si es tracta de què? 1021 00:41:53,295 --> 00:41:53,760 [Foca] 1022 00:41:53,760 --> 00:41:55,852 AUDIÈNCIA: Si silencia a zero, es seguirà jugant el 1023 00:41:55,852 --> 00:41:58,410 sonar. [Foca] 1024 00:41:58,410 --> 00:41:58,940 David Malan: Està bé, està bé. 1025 00:41:58,940 --> 00:42:01,960 Així que si silenciat, sigui el que sigui, aquesta cosa taronja és zero, 1026 00:42:01,960 --> 00:42:05,370 A continuació, reproduir el so de llops marins i pensar "Oh, 1027 00:42:05,370 --> 00:42:06,770 hola, "durant dos segons. 1028 00:42:06,770 --> 00:42:09,380 Ara, jo no sé el que és silenciat, però zero evoca la 1029 00:42:09,380 --> 00:42:11,230 idea de fals o apagat. 1030 00:42:11,230 --> 00:42:14,490 Així que si silenciada és fals, pel que si no està silenciat, 1031 00:42:14,490 --> 00:42:15,660 mantenir la reproducció del so. 1032 00:42:15,660 --> 00:42:17,350 D'acord, bé, com podem desactivar aquesta cosa? 1033 00:42:17,350 --> 00:42:19,310 >> Bé, donem una ullada a la segona seqüència de comandaments allà baix. 1034 00:42:19,310 --> 00:42:22,130 El segon guió diu establir silenciat a zero. 1035 00:42:22,130 --> 00:42:25,180 Observi també és taronja, així que el que fa és que les ratllades colors 1036 00:42:25,180 --> 00:42:27,400 blocs en el mateix to que si és una espècie 1037 00:42:27,400 --> 00:42:28,850 de lògicament relacionats. 1038 00:42:28,850 --> 00:42:32,850 Així com recarregar silenciat era de color taronja, de manera que es silencia aquí 1039 00:42:32,850 --> 00:42:34,060 esmentat en el bloc taronja. 1040 00:42:34,060 --> 00:42:36,170 Però això és una assignació de variables, de manera que igual que en 1041 00:42:36,170 --> 00:42:39,170 àlgebra, tens x i i i z, en la programació té 1042 00:42:39,170 --> 00:42:41,440 variables, però són generalment - 1043 00:42:41,440 --> 00:42:42,580 fem una pausa per un moment i figura com 1044 00:42:42,580 --> 00:42:44,280 per aturar aquesta lladrucs. 1045 00:42:44,280 --> 00:42:45,480 Com puc fer això? 1046 00:42:45,480 --> 00:42:46,480 [Foca] 1047 00:42:46,480 --> 00:42:47,920 David Malan: Molt bé. 1048 00:42:47,920 --> 00:42:49,490 Es va aturar. Bé. 1049 00:42:49,490 --> 00:42:52,230 >> Així com en l'àlgebra té variables x, i, z, però en 1050 00:42:52,230 --> 00:42:55,260 programació, que té variables com x, i, i z és generalment 1051 00:42:55,260 --> 00:42:57,330 mal vist, perquè no són del tot expressiu. 1052 00:42:57,330 --> 00:43:00,070 Ells no tenen cap significat semàntic algun, pel que en la majoria 1053 00:43:00,070 --> 00:43:02,110 llenguatges de programació, les variables poden tenir plena 1054 00:43:02,110 --> 00:43:05,270 noms de ple dret o paraules o frases similars en silenci, per dir 1055 00:43:05,270 --> 00:43:06,030 el que fan. 1056 00:43:06,030 --> 00:43:09,380 Així que aquest segon script també s'escolta sempre, i va dir que 1057 00:43:09,380 --> 00:43:12,100 si la tecla, l'espai tecla del teclat, és 1058 00:43:12,100 --> 00:43:13,370 pressionat, signe d'interrogació. 1059 00:43:13,370 --> 00:43:16,300 Així que hi ha una condició amb una expressió booleana que és 1060 00:43:16,300 --> 00:43:19,010 va a respondre a una pregunta sigui veritat o fals, 1061 00:43:19,010 --> 00:43:22,880 llavors tinc dins d'ella si la tecla d'espai es pressiona i 1062 00:43:22,880 --> 00:43:28,020 SI apagat és zero, ajust silenciat a un, ELSE establir silenciat a zero. 1063 00:43:28,020 --> 00:43:30,510 Així que aquest altre forquilla a la carretera, i observi com he 1064 00:43:30,510 --> 00:43:33,500 niar les dues condicions IF, és una manera de comprovar és la 1065 00:43:33,500 --> 00:43:36,610 Barra espaiadora pressionada perquè si és així, jo tampoc vull anar aquesta 1066 00:43:36,610 --> 00:43:38,000 o aquesta manera. 1067 00:43:38,000 --> 00:43:40,210 I com invertir el valor d'apagada? 1068 00:43:40,210 --> 00:43:41,410 He de comprovar és zero? 1069 00:43:41,410 --> 00:43:45,890 Si és així, el converteixen en un, del que sigui zero per alternar tant 1070 00:43:45,890 --> 00:43:47,670 seus dos estats. 1071 00:43:47,670 --> 00:43:50,030 >> Molt bé, així que tenim a continuació algunes d'aquestes fonamental 1072 00:43:50,030 --> 00:43:50,540 construccions. 1073 00:43:50,540 --> 00:43:52,810 Tenim expressions booleanes, i s'adonen, també, aquests són 1074 00:43:52,810 --> 00:43:54,050 no tot el que no familiar. 1075 00:43:54,050 --> 00:43:56,730 De fet, aquí hi ha una captura de pantalla ràpida del seu curs de Harvard CS50 1076 00:43:56,730 --> 00:43:59,740 eina de compres, i qualsevol lloc web per aquí que té caselles de verificació 1077 00:43:59,740 --> 00:44:02,420 i menús desplegables que realment, tot aquest temps, ha estat l'ús 1078 00:44:02,420 --> 00:44:03,430 Expressions booleanes. 1079 00:44:03,430 --> 00:44:05,760 En aquest cas aquí, si fa clic a la casella de verificació al costat 1080 00:44:05,760 --> 00:44:08,620 Per descomptat major que o igual a 4,5, o el següent al mateix 1081 00:44:08,620 --> 00:44:11,200 facultat, s'especifica una expressió booleana. 1082 00:44:11,200 --> 00:44:14,780 Muéstrame els cursos per als quals aquesta expressió és veritable. 1083 00:44:14,780 --> 00:44:17,080 O a la dreta, no entri en conflicte amb els cursos que estic 1084 00:44:17,080 --> 00:44:20,440 adoptar, si és que es comprova, llavors sí, vostè vol comprovar 1085 00:44:20,440 --> 00:44:22,890 aquesta condició, més que vulguis ignorar. 1086 00:44:22,890 --> 00:44:25,170 Així expressions booleanes són una espècie de tot, però quan 1087 00:44:25,170 --> 00:44:28,080 els posem en condicions, si les condicions de SI, SI 1088 00:44:28,080 --> 00:44:30,480 Vigilés, o fins i tot podem simular més profund 1089 00:44:30,480 --> 00:44:32,830 nivells, IF ELSE IF ELSE - 1090 00:44:32,830 --> 00:44:34,430 així que això és una mena d'estat ternari. 1091 00:44:34,430 --> 00:44:36,920 Vostè pot anar d'aquesta manera o d'aquesta manera o d'aquesta manera. 1092 00:44:36,920 --> 00:44:39,680 Podem mantenir les coses d'implantació per anar en direccions diferents. 1093 00:44:39,680 --> 00:44:41,800 >> Així scratch té aquests llaços, com sempre. 1094 00:44:41,800 --> 00:44:44,750 Té aquestes característiques com la repetició 10, alguns 1095 00:44:44,750 --> 00:44:46,260 nombre finit de vegades. 1096 00:44:46,260 --> 00:44:49,040 Tenim la capacitat actual per definir les variables, pel que en aquest cas 1097 00:44:49,040 --> 00:44:51,810 He assenyalat, per exemple, a mitges anomenats variables. 1098 00:44:51,810 --> 00:44:54,340 He inicialitzat a 0, i això és una altra direcció 1099 00:44:54,340 --> 00:44:56,940 que podríem haver pres aquí amb Josep, el qual potser 1100 00:44:56,940 --> 00:45:00,150 només un seguiment de quants mitjons que tinc a i acabar 1101 00:45:00,150 --> 00:45:03,490 el programa quan el valor d'aquesta variable és 2. 1102 00:45:03,490 --> 00:45:05,660 Això seria una altra manera d'una mena de generalització que 1103 00:45:05,660 --> 00:45:08,820 problema i fer alguna cosa una i altra vegada. 1104 00:45:08,820 --> 00:45:12,080 Bé, seguirem endavant i ara introduir un parell de coses noves. 1105 00:45:12,080 --> 00:45:14,100 Així que aquells de vostès que tenen experiència prèvia de programació es 1106 00:45:14,100 --> 00:45:17,120 Sabem que molts dels idiomes tenen matrius o vectors o 1107 00:45:17,120 --> 00:45:19,970 llistes i, de fet, Scratch té alguna cosa com això, també. 1108 00:45:19,970 --> 00:45:22,510 Així que anem a veure si no podem portar les coses al següent nivell aquí. 1109 00:45:22,510 --> 00:45:24,920 Si té la possibilitat, ara, amb aquestes peces del trencaclosques per 1110 00:45:24,920 --> 00:45:29,080 afegir alguna cosa, com una paraula o un nombre, una variable, no puc 1111 00:45:29,080 --> 00:45:30,550 comencen a acumular les coses. 1112 00:45:30,550 --> 00:45:33,630 I això és en realitat bastant a propòsit per a coses com jocs, 1113 00:45:33,630 --> 00:45:35,810 jocs de rol on ets una mica pels voltants 1114 00:45:35,810 --> 00:45:38,600 un món de fantasia recollint coses, recollir les coses, 1115 00:45:38,600 --> 00:45:39,900 guanyar punts, o similars. 1116 00:45:39,900 --> 00:45:42,310 És possible que vulgueu fer un seguiment d'algun tipus d'inventari, i 1117 00:45:42,310 --> 00:45:45,180 de fet, això és el que un dels nostres antics alumnes aquí va fer amb 1118 00:45:45,180 --> 00:45:47,750 una cosa que es diu Fruitcraft RPG. 1119 00:45:47,750 --> 00:45:51,820 >> Així que permetin-me seguir endavant i obrir aquesta cosa aquí, i en 1120 00:45:51,820 --> 00:45:56,260 Fruitcraft, tenim aquest món cap a la part superior. 1121 00:45:56,260 --> 00:45:58,820 Així que permetin-me seguir endavant i feu clic a la bandera verda. 1122 00:45:58,820 --> 00:46:01,040 Avís a la part superior esquerra és una espècie d'inventari. 1123 00:46:01,040 --> 00:46:04,110 Això és implementat en Scratch com el que anomenarem a una matriu o 1124 00:46:04,110 --> 00:46:06,890 una llista, i ara tenim aquesta petita animació. 1125 00:46:06,890 --> 00:46:10,440 Així que quan vam començar abans amb aquesta història d'amor galeta, 1126 00:46:10,440 --> 00:46:13,320 i després va avançar als gats i lleons marins, ara podem tenir 1127 00:46:13,320 --> 00:46:15,100 el que és encara més interactiu. 1128 00:46:15,100 --> 00:46:18,250 I aquest tipus blau poc, puc començar a moure per la seva 1129 00:46:18,250 --> 00:46:19,500 petita llar aquí. 1130 00:46:19,500 --> 00:46:22,570 Així que sembla que té una sortida d'aquí, així que estic fent servir 1131 00:46:22,570 --> 00:46:25,260 les tecles de fletxes, amunt, avall, esquerra, dreta. 1132 00:46:25,260 --> 00:46:28,370 I ara estic fora, així que és el que tenim aquí. 1133 00:46:28,370 --> 00:46:30,920 Sembla que una taronja, i, de fet, tan aviat com em toqui la 1134 00:46:30,920 --> 00:46:33,110 color taronja, es va deixar caure en el meu inventari. 1135 00:46:33,110 --> 00:46:35,640 Si em vaig d'aquí a les cireres, ara tinc una mica 1136 00:46:35,640 --> 00:46:36,760 més en el meu inventari. 1137 00:46:36,760 --> 00:46:39,100 I això és tot bonic i valent, però pensar en com, ara, en aquest 1138 00:46:39,100 --> 00:46:39,840 s'implementa. 1139 00:46:39,840 --> 00:46:42,490 Bé, tenim aquesta noció d'una llista, i això és pel que sembla un 1140 00:46:42,490 --> 00:46:45,470 peça del trencaclosques que vostè acaba de dir el que vol afegir a la mateixa, afegir 1141 00:46:45,470 --> 00:46:46,950 taronja, afegir les cireres. 1142 00:46:46,950 --> 00:46:48,540 Ara, què és aquest noi poc de blau fent? 1143 00:46:48,540 --> 00:46:49,810 Bé, ell és un sprite. 1144 00:46:49,810 --> 00:46:52,190 I és de suposar, la taronja i les cireres - 1145 00:46:52,190 --> 00:46:54,140 ells mateixos eren sprites separats. 1146 00:46:54,140 --> 00:46:56,980 I l'ús de les condicions en les expressions booleanes, les 1147 00:46:56,980 --> 00:47:00,530 estudiant era probablement capaç d'expressar si és home blau 1148 00:47:00,530 --> 00:47:04,590 cireres tocar a continuació, afegir les cireres de paraules per a la seva 1149 00:47:04,590 --> 00:47:07,890 inventari, i després també amagar el sprite cirera. 1150 00:47:07,890 --> 00:47:10,600 Així que sota el capó, que probablement encara és una cirera 1151 00:47:10,600 --> 00:47:11,350 Sprite allà. 1152 00:47:11,350 --> 00:47:14,160 Hem comptat a arribar a ser efectivament invisible. 1153 00:47:14,160 --> 00:47:16,340 >> Ara, si em segueixes caminant per aquí, també podem fer-ho 1154 00:47:16,340 --> 00:47:19,150 El proximal, on puc anar i llegir el cartell. 1155 00:47:19,150 --> 00:47:23,170 Així que si home blau tocant signe, podem tenir aquest bloc Say 1156 00:47:23,170 --> 00:47:26,455 igual que el gat ens va parlar en paraules, hola, abans, "Got 1157 00:47:26,455 --> 00:47:26,880 una mica de fruita? 1158 00:47:26,880 --> 00:47:29,290 Porteu al lloc fruit. "Bé, ara el que, segons sembla, 1159 00:47:29,290 --> 00:47:30,550 Tinc les meves instruccions. 1160 00:47:30,550 --> 00:47:33,050 Jo puc anar d'aquí fins al lloc de fruites, alinear mi mateix 1161 00:47:33,050 --> 00:47:33,740 amb la porta. 1162 00:47:33,740 --> 00:47:35,390 Ara, jo sóc aquí. 1163 00:47:35,390 --> 00:47:38,120 Puc anar fins a l'home al taulell. 1164 00:47:38,120 --> 00:47:40,330 Es detecta que estic prop seu, de manera que no ha de ser 1165 00:47:40,330 --> 00:47:46,780 absolutament idèntica tocar, i m'he guanyat el joc. 1166 00:47:46,780 --> 00:47:49,890 Així que tenim Fruitcraft RPG. 1167 00:47:49,890 --> 00:47:52,200 >> Així que podem fer les coses encara més avançats que això. 1168 00:47:52,200 --> 00:47:53,200 Podem afegir sons. 1169 00:47:53,200 --> 00:47:54,610 Podem afegir aleatorietat pseudo. 1170 00:47:54,610 --> 00:47:56,260 Podem afegir complexitat. 1171 00:47:56,260 --> 00:47:58,490 Deixa anar endavant aquí, i en comptes de fer això per mi mateix, 1172 00:47:58,490 --> 00:48:01,240 deixa que et ensenyi una de les presentacions més sofisticades 1173 00:48:01,240 --> 00:48:06,640 ens van donar l'any passat d'una persona que es deia Blake. 1174 00:48:06,640 --> 00:48:08,910 Podem tenir un voluntari que és còmode que apareix en 1175 00:48:08,910 --> 00:48:12,600 càmera i és per jugar un joc? 1176 00:48:12,600 --> 00:48:13,450 I d'aquí? 1177 00:48:13,450 --> 00:48:15,380 Anem amunt. 1178 00:48:15,380 --> 00:48:19,680 Molt bé, així que el joc que vostè acaba de saber-ho, 1179 00:48:19,680 --> 00:48:20,780 es va oferir per jugar - 1180 00:48:20,780 --> 00:48:25,910 [Aplaudiments] 1181 00:48:25,910 --> 00:48:28,610 David Malan: - és una cosa d'abans anomenat 1182 00:48:28,610 --> 00:48:30,100 "Frogger". Quin és el seu nom? 1183 00:48:30,100 --> 00:48:30,730 RENDA: Renda. 1184 00:48:30,730 --> 00:48:31,050 David Malan: REDNA? 1185 00:48:31,050 --> 00:48:32,530 RENDA: És com Brenda amb una b. 1186 00:48:32,530 --> 00:48:33,190 David Malan: Bé, Renda. 1187 00:48:33,190 --> 00:48:33,590 David. 1188 00:48:33,590 --> 00:48:34,580 Gust a conèixer-lo. 1189 00:48:34,580 --> 00:48:38,690 >> Així que aquí a "Frogger", i si podem augmentar el volum just 1190 00:48:38,690 --> 00:48:39,780 una mica, es troba aquesta petita 1191 00:48:39,780 --> 00:48:41,010 granota verda a la part inferior. 1192 00:48:41,010 --> 00:48:43,940 Podeu utilitzar l'esquerra, dreta, amunt i avall, i el seu objectiu és 1193 00:48:43,940 --> 00:48:46,510 creuar el carrer, travessi el riu, i tocar les fulles de lliri 1194 00:48:46,510 --> 00:48:47,760 a la part superior. 1195 00:48:52,090 --> 00:48:53,440 Aw. 1196 00:48:53,440 --> 00:48:54,630 Una t més - 1197 00:48:54,630 --> 00:48:56,400 refer, d'acord? 1198 00:48:56,400 --> 00:48:58,890 Anem a deixar de cop. 1199 00:48:58,890 --> 00:49:00,140 Ningú el va veure. 1200 00:49:10,470 --> 00:49:12,930 [Aplaudiments] 1201 00:49:17,023 --> 00:49:17,850 [Aplaudiments] 1202 00:49:17,850 --> 00:49:19,341 David Malan: Si. 1203 00:49:19,341 --> 00:49:20,832 Molt ben fet. 1204 00:49:20,832 --> 00:49:22,082 Excel · lent, gràcies. 1205 00:49:27,300 --> 00:49:29,430 >> Així que no havia Frogger. Ara que saps el que has 1206 00:49:29,430 --> 00:49:32,170 arribat a vosaltres mateixos, voluntari un més per un diferent 1207 00:49:32,170 --> 00:49:34,910 joc presentat per un altre estudiant. 1208 00:49:34,910 --> 00:49:35,560 Vols venir a dalt? 1209 00:49:35,560 --> 00:49:36,576 ¿Et dius? 1210 00:49:36,576 --> 00:49:37,000 RICHARD: Richard. 1211 00:49:37,000 --> 00:49:37,420 David Malan: Richard. 1212 00:49:37,420 --> 00:49:39,732 Molt bé, Richard, anem a dalt. 1213 00:49:39,732 --> 00:49:42,187 [Aplaudiments] 1214 00:49:45,140 --> 00:49:47,030 David Malan: Té alguna cosa que va a sonar 1215 00:49:47,030 --> 00:49:54,180 familiaritzar aviat, així que aquí estan les seves instruccions. 1216 00:49:54,180 --> 00:49:56,580 Així que en cert moment, algunes peces del trencaclosques es desplaçaran cap amunt 1217 00:49:56,580 --> 00:49:58,150 a la pantalla que es veuen bé a l'esquerra 1218 00:49:58,150 --> 00:49:59,450 o la dreta amunt o cap avall. 1219 00:49:59,450 --> 00:50:01,230 Vas a haver de tocar les tecles de direcció, de manera 1220 00:50:01,230 --> 00:50:04,540 que correspon a les peces del trencaclosques que s'alineen amb 1221 00:50:04,540 --> 00:50:05,720 els marcadors de posició a la part superior. 1222 00:50:05,720 --> 00:50:07,500 Així que quan vostè veu una fletxa cap a l'esquerra, i les línies cap amunt amb l'esquerra 1223 00:50:07,500 --> 00:50:09,260 fletxa, premeu la fletxa de l'esquerra. 1224 00:50:09,260 --> 00:50:10,866 Vostè pot començar. 1225 00:50:10,866 --> 00:50:13,674 [MÚSICA - "Stronger" Kayne West] 1226 00:51:21,222 --> 00:51:23,470 David Malan: Tot correcte, gran aplaudiment per Richard. 1227 00:51:23,470 --> 00:51:26,082 [Aplaudiments] 1228 00:51:32,426 --> 00:51:33,720 David Malan: Molt bé fet. 1229 00:51:33,720 --> 00:51:34,110 Gràcies. 1230 00:51:34,110 --> 00:51:37,104 [Aplaudiments] 1231 00:51:41,600 --> 00:51:44,330 >> David Malan: Volant i, aparentment, una mena de 1232 00:51:44,330 --> 00:51:46,590 intimidant com podria ser la d'implementar alguna cosa com 1233 00:51:46,590 --> 00:51:49,550 aparentment sofisticat com aquest, s'adonen que l'estudiant 1234 00:51:49,550 --> 00:51:51,450 no partien i acaba d'escriure això d'una vegada. 1235 00:51:51,450 --> 00:51:54,200 Més aviat, es pot descompondre un problema aparentment tan complex 1236 00:51:54,200 --> 00:51:56,840 com aquesta en trossos molt més petits, i això, també, és 1237 00:51:56,840 --> 00:51:57,560 Serà un tema. 1238 00:51:57,560 --> 00:52:00,490 La pitjor cosa que pots fer per escrit un programa en la majoria de qualsevol 1239 00:52:00,490 --> 00:52:03,480 el llenguatge és per seure, posar-se realment emocionat, escriviu el 1240 00:52:03,480 --> 00:52:07,200 maleïda cosa, i llavors només espero que funcioni pel 1241 00:52:07,200 --> 00:52:08,510 vegada que hagi acabat d'escriure. 1242 00:52:08,510 --> 00:52:10,920 Més aviat, el procés de la programació general, hauria 1243 00:52:10,920 --> 00:52:13,440 ser molt deliberat, molt iteratiu, en el qual només 1244 00:52:13,440 --> 00:52:16,955 establir mesures molt petites per vostès mateixos, trossos petits 1245 00:52:16,955 --> 00:52:20,070 Què vols arrencar amb les dents, i així que vostè té aquests seny 1246 00:52:20,070 --> 00:52:21,740 xecs, fites petits que puguin complir. 1247 00:52:21,740 --> 00:52:24,170 I després construir a la part superior dels que creen més 1248 00:52:24,170 --> 00:52:25,400 coses sofisticades fixes. 1249 00:52:25,400 --> 00:52:26,820 >> Així, per exemple, com fem per 1250 00:52:26,820 --> 00:52:28,380 la implementació d'un joc com aquest? 1251 00:52:28,380 --> 00:52:30,160 Bé, sincerament, em tornaria a començar amb només 1252 00:52:30,160 --> 00:52:32,260 donar suport a una tecla alhora. 1253 00:52:32,260 --> 00:52:34,840 Anem a implementar el suport per a la fletxa esquerra. 1254 00:52:34,840 --> 00:52:37,610 De manera que l'estudiant va haver de crear d'alguna manera en Photoshop, o en 1255 00:52:37,610 --> 00:52:40,340 Raspi si mateix usant l'editor gràfic petit, un 1256 00:52:40,340 --> 00:52:42,680 tecla de fletxa que s'assembla a la de dalt a l'esquerra hi, 1257 00:52:42,680 --> 00:52:43,910 el marcador de posició grisos. 1258 00:52:43,910 --> 00:52:46,610 Llavors l'estudiant havia de esbrinar què x, coordenada i en 1259 00:52:46,610 --> 00:52:48,380 el va posar, on posar-lo en la finestra. 1260 00:52:48,380 --> 00:52:50,730 0, 0 és aquí, així que has de calcular el nombre de 1261 00:52:50,730 --> 00:52:53,690 píxels, o punts, per compensar aquesta fletxa de 1262 00:52:53,690 --> 00:52:54,800 la part superior de la pantalla. 1263 00:52:54,800 --> 00:52:57,040 I després, un cop estigui en funcionament, el programa en realitat no 1264 00:52:57,040 --> 00:53:00,380 fer res, de manera que aquest cas és necessari un sprite en segon lloc, per 1265 00:53:00,380 --> 00:53:04,470 exemple, una fletxa verda que apunta cap a l'esquerra també, i vostè 1266 00:53:04,470 --> 00:53:06,710 A continuació, ha de començar a escriure alguns scripts per fer-ho. 1267 00:53:06,710 --> 00:53:09,310 >> I t'adones, potser, que aquestes coses van començar a arribar a 1268 00:53:09,310 --> 00:53:11,470 velocitats diferents, i els colors van ser en diferent 1269 00:53:11,470 --> 00:53:13,750 llocs, i això és degut a que l'estudiant fa servir una mica de 1270 00:53:13,750 --> 00:53:14,990 aleatorietat pseudo. 1271 00:53:14,990 --> 00:53:17,440 I per casualitat pseudo, em refereixo només a recollir un nombre 1272 00:53:17,440 --> 00:53:20,230 entre una cosa i una mica perquè es pot 1273 00:53:20,230 --> 00:53:22,890 començar amb les coses del mapa, com si el nombre està entre un i 1274 00:53:22,890 --> 00:53:24,940 cinc, bé, farem la cosa verda. 1275 00:53:24,940 --> 00:53:28,290 Si és entre 6 i 10, farem la peça del trencaclosques 1276 00:53:28,290 --> 00:53:29,730 vermell al seu lloc. 1277 00:53:29,730 --> 00:53:31,840 Sempre que vostè té una manera de generar algun tipus de 1278 00:53:31,840 --> 00:53:34,730 aleatorietat, pot prendre decisions sobre la base que 1279 00:53:34,730 --> 00:53:35,260 aleatorietat. 1280 00:53:35,260 --> 00:53:37,490 I segueixo dient pseudo aleatòria, perquè hi ha un 1281 00:53:37,490 --> 00:53:38,390 petit i brut secret. 1282 00:53:38,390 --> 00:53:41,130 Els ordinadors no poden arribar a nombres aleatoris. 1283 00:53:41,130 --> 00:53:42,800 Ells només poden fer el que els diuen perquè 1284 00:53:42,800 --> 00:53:44,110 són dispositius creats per l'home. 1285 00:53:44,110 --> 00:53:45,880 No poden endevinar un nombre com nosaltres els humans 1286 00:53:45,880 --> 00:53:46,960 sentir com ens sigui possible. 1287 00:53:46,960 --> 00:53:50,970 Un equip ha de fer alguna cosa matemàtic per conjurar la 1288 00:53:50,970 --> 00:53:53,970 il · lusió del nombre matemàtic, utilitzant de vegades la 1289 00:53:53,970 --> 00:53:57,420 dia actual del temps com una entrada per esbrinar el que 1290 00:53:57,420 --> 00:53:59,570 nombre per tornar, però més d'això en un altre moment. 1291 00:53:59,570 --> 00:54:02,060 Per ara, només sé que podem generar aleatorietat pseudo. 1292 00:54:02,060 --> 00:54:04,610 >> Així que una vegada que tinc la capacitat per la fletxa esquerra per començar 1293 00:54:04,610 --> 00:54:07,990 que apareix en moments diferents ia velocitats diferents, llavors 1294 00:54:07,990 --> 00:54:10,230 Em pot tornar enrere i afegir una mica d'aquests si les condicions. 1295 00:54:10,230 --> 00:54:14,950 SI aquest element sprite està en contacte amb l'altre, i la fletxa esquerra 1296 00:54:14,950 --> 00:54:16,330 ha premut la tecla - 1297 00:54:16,330 --> 00:54:17,900 de manera que les tres condicions en aquest cas. 1298 00:54:17,900 --> 00:54:20,750 Puc utilitzar aquest bloc AND potser, en aquest cas - 1299 00:54:20,750 --> 00:54:23,210 Llavors vull seguir endavant i augmentar la puntuació. 1300 00:54:23,210 --> 00:54:25,130 I a la part superior, tenim un resultat, tenim Awesome, 1301 00:54:25,130 --> 00:54:26,510 Cool, bé, i Boo. 1302 00:54:26,510 --> 00:54:29,810 Així que hi ha cinc variables que pel que sembla aquest estudiant 1303 00:54:29,810 --> 00:54:32,220 utilitza per fer un seguiment d'aquests indicadors diferents. 1304 00:54:32,220 --> 00:54:34,180 Així que en resum, el resultat final és increïble. 1305 00:54:34,180 --> 00:54:37,320 És divertit, és divertit de jugar, és atractiu, però això no és 1306 00:54:37,320 --> 00:54:38,380 on l'estudiant va començar. 1307 00:54:38,380 --> 00:54:42,210 Ell o ella va començar a un conjunt molt més petit de passos. 1308 00:54:42,210 --> 00:54:44,470 >> Quins són alguns altres blocs de construcció que podem 1309 00:54:44,470 --> 00:54:45,760 teixir en aquests programes? 1310 00:54:45,760 --> 00:54:48,750 Bé, hi ha un concepte diferent de molts dels idiomes, 1311 00:54:48,750 --> 00:54:50,730 Ratllar entre ells, conegut com rosques. 1312 00:54:50,730 --> 00:54:54,660 Així que un equip no pot realment realment fer diverses coses a la 1313 00:54:54,660 --> 00:54:56,730 temps, almenys no en general. 1314 00:54:56,730 --> 00:54:59,930 Més aviat, un equip generalment té un sol CPU, i fins i tot 1315 00:54:59,930 --> 00:55:02,230 Encara que les computadores són súper ràpid i pot, per tant, 1316 00:55:02,230 --> 00:55:04,740 crear la il · lusió de fer diverses coses alhora - 1317 00:55:04,740 --> 00:55:06,180 revisar el seu correu, obtenir l'instant 1318 00:55:06,180 --> 00:55:07,770 missatge, la impressió d'un document - 1319 00:55:07,770 --> 00:55:11,530 en realitat, un ordinador és només saltar d'impressió per enviar missatges instantanis 1320 00:55:11,530 --> 00:55:15,160 per enviar correus electrònics, tornar i tornar i tornar i que endavant tan ràpid que 1321 00:55:15,160 --> 00:55:18,170 lents humans enginyosos no s'adonen que en realitat és 1322 00:55:18,170 --> 00:55:21,240 explotació d'aquests programes una mica alhora. 1323 00:55:21,240 --> 00:55:23,960 Ara, això una mica de blanc es troben en aquests dies, ja que, avui en dia, 1324 00:55:23,960 --> 00:55:26,740 molts dels nostres ordinadors són el que s'anomena multi-core, de manera que 1325 00:55:26,740 --> 00:55:29,760 té una CPU de múltiples nuclis, però, el que ve a ser com 1326 00:55:29,760 --> 00:55:31,760 tenir múltiples CPU. 1327 00:55:31,760 --> 00:55:35,020 >> I així, de vegades, les computadores poden realment fer diverses coses 1328 00:55:35,020 --> 00:55:38,500 alhora, però generalment dins d'un programa, els programes 1329 00:55:38,500 --> 00:55:40,200 confiar en aquestes coses anomenades rosques. 1330 00:55:40,200 --> 00:55:43,160 Així que un fil és com un programa en miniatura que pot 1331 00:55:43,160 --> 00:55:46,540 coexisteixen amb un altre programa en miniatura i pot córrer 1332 00:55:46,540 --> 00:55:51,250 en paral · lel, o si més no es pot executar sota la il · lusió que 1333 00:55:51,250 --> 00:55:52,990 s'estan executant al mateix temps. 1334 00:55:52,990 --> 00:55:55,060 Així esgarrapades dóna suport a aquestes coses anomenades rosques. 1335 00:55:55,060 --> 00:55:57,580 Vostè pot tenir diverses seqüències d'ordres d'execució al mateix temps, com nosaltres 1336 00:55:57,580 --> 00:56:00,220 va fer amb el lleó marí, i això ens permet en realitat 1337 00:56:00,220 --> 00:56:03,620 llavors tenen interaccions entre aquests sprites. 1338 00:56:03,620 --> 00:56:09,910 Deixa anar per davant aquí i tiri cap amunt, diguem, fils, i 1339 00:56:09,910 --> 00:56:11,870 jugar de la manera. 1340 00:56:11,870 --> 00:56:13,950 Tenim dos sprites, cadascun dels quals veurem 1341 00:56:13,950 --> 00:56:15,720 només té un guió. 1342 00:56:15,720 --> 00:56:18,000 I t'adones sembla que hi ha una mica d'intel · ligència al 1343 00:56:18,000 --> 00:56:21,335 gat en aquest perquè està cada vegada més a prop - 1344 00:56:21,335 --> 00:56:21,730 [ROARS] 1345 00:56:21,730 --> 00:56:24,540 David Malan: - cada vegada més al ocellet. 1346 00:56:24,540 --> 00:56:26,570 >> Llavors, com és el sistema operatiu ocell? 1347 00:56:26,570 --> 00:56:28,200 Bé, anem a fer una ullada a la primera au. 1348 00:56:28,200 --> 00:56:31,220 El guió ocell va dir quan la bandera verda es fa clic a, hagi de x 1349 00:56:31,220 --> 00:56:34,020 és igual a negatiu i és igual a 115 i 150. 1350 00:56:34,020 --> 00:56:37,010 Així que em vaig adonar d'una ubicació aleatòria on jo volia que el 1351 00:56:37,010 --> 00:56:39,580 au per començar, i que només el va deixar caure allà per defecte. 1352 00:56:39,580 --> 00:56:42,800 Llavors sempre si no tocant gat, així que això és diferent 1353 00:56:42,800 --> 00:56:45,080 tipus de construcció de bucle, però la mateixa idea, fer això una i altra 1354 00:56:45,080 --> 00:56:45,780 una i altra vegada. 1355 00:56:45,780 --> 00:56:49,410 Sempre que vostè no està tocant el gat, es mouen tres passos, i 1356 00:56:49,410 --> 00:56:51,680 si estàs a la vora, rebot, on és una espècie de 1357 00:56:51,680 --> 00:56:53,320 reflexió en el sentit de billar. 1358 00:56:53,320 --> 00:56:56,140 Així és com l'au es mou al voltant tipus de 1359 00:56:56,140 --> 00:56:58,890 aparentment a l'atzar, però és només perquè està rebotant 1360 00:56:58,890 --> 00:57:00,170 les parets en aquest cas. 1361 00:57:00,170 --> 00:57:03,170 >> Ara el gat, per la seva banda, és una mena de parany. 1362 00:57:03,170 --> 00:57:05,520 El gat, quan la bandera verda es fa clic a Sí, s'inicia en 1363 00:57:05,520 --> 00:57:07,390 alguna ubicació, un lloc a l'atzar - 1364 00:57:07,390 --> 00:57:09,590 si més no en part com per la selecció 1365 00:57:09,590 --> 00:57:11,430 de blocs a l'atzar verd allà - 1366 00:57:11,430 --> 00:57:14,660 i després per sempre si tocar a l'au, reproduir el so lleó, 1367 00:57:14,660 --> 00:57:15,790 i després deixar de guió. 1368 00:57:15,790 --> 00:57:18,560 Així que quan em va dir que cancel · lar o sortir abans, hi ha un trencaclosques 1369 00:57:18,560 --> 00:57:20,600 peça en Scratch que s'acaba de tancar el programa en aquest 1370 00:57:20,600 --> 00:57:22,900 punt perquè és una espècie de lògica per fer. 1371 00:57:22,900 --> 00:57:25,030 Però d'altra banda, aquí, fixa't en el que passarà. 1372 00:57:25,030 --> 00:57:28,470 Punt cap al ocell i avançar un pas. 1373 00:57:28,470 --> 00:57:31,390 Així que aquest punt cap al au és una espècie d'avantatge al gat 1374 00:57:31,390 --> 00:57:34,640 té en que és homing a l'au en moviment, i podem 1375 00:57:34,640 --> 00:57:37,370 ara que aquest programa sigui encara més interessant. 1376 00:57:37,370 --> 00:57:41,520 En lloc de moure un pas a la vegada per cada cicle de la CPU, per 1377 00:57:41,520 --> 00:57:44,280 vaga de peatge de la campana, per dir-ho així, deixa seguir endavant i 1378 00:57:44,280 --> 00:57:47,350 moure, diguem, cinc passos alhora com el gat. 1379 00:57:47,350 --> 00:57:51,120 Feu clic a Executar, i ara realment el troba ràpidament. 1380 00:57:51,120 --> 00:57:55,620 Si dupliquem això més de 10 passos, és com que va 1381 00:57:55,620 --> 00:57:56,370 adequada per a ell. 1382 00:57:56,370 --> 00:57:57,750 Ara, podem donar l'ocell, 1383 00:57:57,750 --> 00:57:59,540 potser, una mica d'avantatge. 1384 00:57:59,540 --> 00:58:02,370 Anirem a l'ocell i dir en lloc de moure tres passos, 1385 00:58:02,370 --> 00:58:07,140 ho passarem 30 passos. 1386 00:58:07,140 --> 00:58:08,700 Però encara va quedar atrapat al final. 1387 00:58:08,700 --> 00:58:10,430 >> Així que aquí tenim dos fils. 1388 00:58:10,430 --> 00:58:13,230 Està empresonat en Scratch amb dos guions i dos 1389 00:58:13,230 --> 00:58:16,150 sprites, però la idea en altres idiomes és que es pot 1390 00:58:16,150 --> 00:58:19,220 escriure, en essència, massa programes com aquest i tenir 1391 00:58:19,220 --> 00:58:22,950 córrer de veritat, o imaginàriament, en paral · lel. 1392 00:58:22,950 --> 00:58:25,280 >> Ara bé, també hi ha aquest concepte en programació conegut com 1393 00:58:25,280 --> 00:58:28,010 esdeveniments, i això és una cosa que no veurem en C, el 1394 00:58:28,010 --> 00:58:30,500 llenguatge conegut com a C. A veure cap al final del semestre 1395 00:58:30,500 --> 00:58:33,240 en la programació web, quan introduïm JavaScript i el 1396 00:58:33,240 --> 00:58:36,970 noció de construcció de pàgines web que són dinàmiques i interactuar 1397 00:58:36,970 --> 00:58:37,710 amb els usuaris. 1398 00:58:37,710 --> 00:58:40,430 Així, en aquest cas, tenim un exemple molt simple de dues 1399 00:58:40,430 --> 00:58:43,860 sprites, nen i nena, cadascun d'ells amb el seu respectiu 1400 00:58:43,860 --> 00:58:48,040 fils, però d'alguna manera aquests dos són intercomunicació mitjançant 1401 00:58:48,040 --> 00:58:49,490 d'alguna cosa que es diu els esdeveniments. 1402 00:58:49,490 --> 00:58:52,750 Així que permetin-me anar davant aquí i apropar guió del noi, 1403 00:58:52,750 --> 00:58:54,050 que són aquestes. 1404 00:58:54,050 --> 00:58:57,510 Quan fa clic a bandera verda, per sempre fer el següent. 1405 00:58:57,510 --> 00:59:01,510 Si l'espai clau, o la barra espaiadora, es prem, per exemple 1406 00:59:01,510 --> 00:59:03,900 Marc per dos segons, que és purament estètic al 1407 00:59:03,900 --> 00:59:06,860 pantalla, un entrepà petit, però després emetre. 1408 00:59:06,860 --> 00:59:09,240 >> Així difusió és una altra peça Scratch que és 1409 00:59:09,240 --> 00:59:12,050 representant d'una classe de funcionalitat en la programació 1410 00:59:12,050 --> 00:59:15,080 que permet als diferents programes, diferents fils, 1411 00:59:15,080 --> 00:59:17,120 a intercomunicació, per enviar alguna manera 1412 00:59:17,120 --> 00:59:18,520 missatges, un a un altre. 1413 00:59:18,520 --> 00:59:21,930 Passar un tros de paper a classe és una espècie de baixa tecnologia 1414 00:59:21,930 --> 00:59:22,700 equivalent. 1415 00:59:22,700 --> 00:59:24,300 Així esdeveniment transmès. 1416 00:59:24,300 --> 00:59:26,210 Puc enviar aquest missatge, i la paraula esdeveniment 1417 00:59:26,210 --> 00:59:27,270 és completament arbitrària. 1418 00:59:27,270 --> 00:59:30,000 Ratllat de vegades té aquestes llistes desplegables, així que es va acostar 1419 00:59:30,000 --> 00:59:33,230 amb una paraula a l'atzar com esdeveniment perquè ara, el que el nen fa 1420 00:59:33,230 --> 00:59:36,600 en pressionar la clau és que emet aquest esdeveniment. 1421 00:59:36,600 --> 00:59:39,270 I si miro ara en el guió de la nena, el seu guió és 1422 00:59:39,270 --> 00:59:42,690 super simple, perquè tot el que ha de fer és no actuar quan 1423 00:59:42,690 --> 00:59:44,100 la bandera verda es fa clic. 1424 00:59:44,100 --> 00:59:47,910 Està dissenyat per a l'acció quan rebi Ho van dir ells, 1425 00:59:47,910 --> 00:59:51,210 "Event", i en aquest moment, ella està escoltant, per tant, 1426 00:59:51,210 --> 00:59:52,960 l'esdeveniment anomenat una i altra vegada. 1427 00:59:52,960 --> 00:59:55,790 Així que es rebi aquest cas, ella va a cridar 1428 00:59:55,790 --> 00:59:57,680 Pol durant dos segons. 1429 00:59:57,680 --> 01:00:01,090 >> I pel que és una mica deduir d'això exactament el que el 1430 01:00:01,090 --> 01:00:03,190 resultat que ve serà. 1431 01:00:03,190 --> 01:00:04,910 Permetin-me clic a la bandera verda. 1432 01:00:04,910 --> 01:00:06,610 No passa res perquè he de fer què? 1433 01:00:06,610 --> 01:00:07,310 AUDIÈNCIA: barra d'espai. 1434 01:00:07,310 --> 01:00:08,630 David Malan: barra d'espai. 1435 01:00:08,630 --> 01:00:11,990 Boy diu Marc, noia diu Pol. 1436 01:00:11,990 --> 01:00:13,670 Però això no és de codificació fixa per se. 1437 01:00:13,670 --> 01:00:16,740 Aquesta és la intercomunicació entre les seqüències d'ordres, de manera que ara 1438 01:00:16,740 --> 01:00:19,240 tenen la capacitat de fer que els programes encara més complex en el qual 1439 01:00:19,240 --> 01:00:22,830 aquests dos són d'alguna manera intercomunicació. 1440 01:00:22,830 --> 01:00:25,260 >> Així doncs, en quina direcció podem prendre això? 1441 01:00:25,260 --> 01:00:28,260 Doncs bé, en conjunt problema 0, en realitat, l'objectiu és 1442 01:00:28,260 --> 01:00:29,830 divertir-se amb Scratch. 1443 01:00:29,830 --> 01:00:32,440 Per a l'edició pirata, en el seu lloc es divertirà amb més 1444 01:00:32,440 --> 01:00:35,850 versió sofisticada de Scratch anomenat BYOB, urbanitzat 1445 01:00:35,850 --> 01:00:38,040 Els seus propis blocs, però la idea és la mateixa. 1446 01:00:38,040 --> 01:00:38,780 Vostè serà capaç de - 1447 01:00:38,780 --> 01:00:39,710 Sí, això va ser deliberat. 1448 01:00:39,710 --> 01:00:42,450 Venia de Berkeley. 1449 01:00:42,450 --> 01:00:45,200 BYOB és la versió de l'edició pirata d'això, però al mateix temps 1450 01:00:45,200 --> 01:00:48,180 demografia, l'edició estàndard i edició pirata per igual, el 1451 01:00:48,180 --> 01:00:50,940 objectiu a la mà per a la setmana és en realitat per submergir-se en 1452 01:00:50,940 --> 01:00:53,050 profund, embrutar-se les mans amb la programació, i fer 1453 01:00:53,050 --> 01:00:55,240 alguna cosa interessant, fer alguna cosa interactiu, feu 1454 01:00:55,240 --> 01:00:58,020 alguna cosa artístic, fer alguna cosa divertit que en realitat 1455 01:00:58,020 --> 01:01:01,020 demostrar, de manera que a finals de setmana, tindrà un projecte, 1456 01:01:01,020 --> 01:01:03,770 no només per la seva primera CS50 conjunt de processadors, però tindràs un 1457 01:01:03,770 --> 01:01:05,620 poc d'una cosa que es pot mostrar en Annenberg per 1458 01:01:05,620 --> 01:01:08,830 amics o familiars, fins i tot per pujar-lo a la pàgina web del MIT. 1459 01:01:08,830 --> 01:01:11,760 I així, com vaig dir el dimecres, s'espera que el 90% de la classe, 1460 01:01:11,760 --> 01:01:13,970 en general, a fer les edicions estàndard. 1461 01:01:13,970 --> 01:01:16,660 Adonar-se que també hi ha aquesta sortida per a aquells de vostès que 1462 01:01:16,660 --> 01:01:18,990 en cas contrari pot ser que es trobi una mica avorrit amb el bàsic 1463 01:01:18,990 --> 01:01:21,650 i realment vol submergir i crear una visió que ja 1464 01:01:21,650 --> 01:01:25,380 tenim amb coneixements previs en aquest més amigable 1465 01:01:25,380 --> 01:01:26,240 ambient. 1466 01:01:26,240 --> 01:01:29,030 >> Així que em tiri un altre exemple que un dels nostres ex 1467 01:01:29,030 --> 01:01:33,830 estudiants aquí va fer i dir-los alguna cosa a través del cant. 1468 01:01:33,830 --> 01:01:37,430 Que de la mateixa manera, ja que això juga, pensi en com vostè va sobre la 1469 01:01:37,430 --> 01:01:40,520 l'aplicació d'aquest programa utilitzant precisament aquests mateixos 1470 01:01:40,520 --> 01:01:44,180 blocs de construcció, una mica d'aleatorietat, i un pseudo- 1471 01:01:44,180 --> 01:01:46,010 poc de cançó familiar. 1472 01:01:46,010 --> 01:01:47,910 Si poguéssim pujar el volum una mica? 1473 01:01:47,910 --> 01:01:49,160 [MÚSICA - "És Raining Men" The Weather Girls] 1474 01:03:02,261 --> 01:03:03,930 >> David Malan: Això és tot per CS50. 1475 01:03:03,930 --> 01:03:05,860 Ens veiem el dilluns. 1476 01:03:05,860 --> 01:03:21,152 [Aplaudiments]