1 00:00:00,000 --> 00:00:11,120 2 00:00:11,120 --> 00:00:12,590 >> ALTAVEU: Sóc [inaudible]. 3 00:00:12,590 --> 00:00:14,820 I jo sóc un sènior en Leverett House. 4 00:00:14,820 --> 00:00:18,700 Jo estudi ciències de la computació, i jo sóc un TF per CS50. 5 00:00:18,700 --> 00:00:21,640 En el seu primer any, jo ni tan sols tinc un ordinador portàtil o un telèfon intel · ligent. 6 00:00:21,640 --> 00:00:23,550 No tenia experiència en programació. 7 00:00:23,550 --> 00:00:29,690 CS50 va ser el curs més memorable que Que vaig prendre a Harvard perquè era 8 00:00:29,690 --> 00:00:32,960 una lluita, però era una realitat lluita divertir al mateix temps. 9 00:00:32,960 --> 00:00:37,670 I he fet un munt d'increïbles i permanent amics, i he après molt de veritat 10 00:00:37,670 --> 00:00:38,830 habilitats aplicables. 11 00:00:38,830 --> 00:00:43,480 Estic tan content que jo no deixo que el meu falta de fons sigui una excusa per a mi 12 00:00:43,480 --> 00:00:44,840 No prengui CS50. 13 00:00:44,840 --> 00:00:46,220 Sóc [inaudible]. 14 00:00:46,220 --> 00:00:48,910 Sóc un gran en Leverett Casa, classe de 2014. 15 00:00:48,910 --> 00:00:51,670 I vaig prendre CS50. 16 00:00:51,670 --> 00:00:52,380 >> DAVID Malan: Això és CS50. 17 00:00:52,380 --> 00:00:54,400 Aquest és el final de la setmana zero. 18 00:00:54,400 --> 00:00:58,500 I recordar on vam començar l'última vegada, era amb aquests llums, que eren 19 00:00:58,500 --> 00:01:01,420 tan popular que ens vam anar i comprat una mica més avui. 20 00:01:01,420 --> 00:01:03,790 Així que crec que això serà el nostre aquest any - 21 00:01:03,790 --> 00:01:07,230 làmpades d'escriptori, si vostè ve per dalt de l'escenari, almenys fins que s'acabi. 22 00:01:07,230 --> 00:01:11,570 >> No obstant això, hem utilitzat aquests revocatori, per introduir els fonaments de la representació de les dades. 23 00:01:11,570 --> 00:01:15,640 Necessitàvem manera de començar que representa informació dins d'un ordinador. 24 00:01:15,640 --> 00:01:18,650 I la forma més senzilla de fer-ho era amb un ingredient, l'electricitat. 25 00:01:18,650 --> 00:01:21,760 I la cosa més simple que pots fer amb electricitat és engegar i fora. 26 00:01:21,760 --> 00:01:23,520 Deixa que el flux d'electrons o no. 27 00:01:23,520 --> 00:01:27,930 I l'ús d'aquests dos estats bàsics, davant i, o fals i vertader, o zero i 28 00:01:27,930 --> 00:01:31,290 un, comencem a veure que podíem construir amunt, en aquest cas, amb la llum 29 00:01:31,290 --> 00:01:33,720 bulbs, més números que acaba de zero i un. 30 00:01:33,720 --> 00:01:36,160 Comptem tan alt com set, per exemple, l'última vegada. 31 00:01:36,160 --> 00:01:38,840 Però tot el que hem de fer és seguir tirant més i més bombetes en aquest 32 00:01:38,840 --> 00:01:41,820 problema i, de veritat, podem representar qualsevol nombre que ens 33 00:01:41,820 --> 00:01:42,970 podria desitjar. 34 00:01:42,970 --> 00:01:47,230 >> Bé, transitioned ràpidament llavors Dimecres a aquest byte de voluntaris. 35 00:01:47,230 --> 00:01:52,040 8 bits és el que generalment anomenem un byte, així que aquí teníem vuit voluntaris 36 00:01:52,040 --> 00:01:54,900 dimecres que eren col · lectivament que representa vuit bits. 37 00:01:54,900 --> 00:01:56,750 I quan les seves mans van ser dalt, que eren un. 38 00:01:56,750 --> 00:01:58,530 I quan les seves mans estaven baix, hi havia un zero. 39 00:01:58,530 --> 00:02:01,970 I vam haver aquestes persones plantejaran a quina etapa? 40 00:02:01,970 --> 00:02:06,530 Què som capaços de fer amb aquesta seqüència de bits? 41 00:02:06,530 --> 00:02:07,510 >> Per crear un alfabet. 42 00:02:07,510 --> 00:02:11,550 Hem estat capaços de construir a la part superior d'aquest lliçó anterior aprendre i realitat 43 00:02:11,550 --> 00:02:14,200 començar a fer més interessant informació que és almenys més 44 00:02:14,200 --> 00:02:15,330 familiar per a nosaltres els éssers humans. 45 00:02:15,330 --> 00:02:18,360 I això serà un recurrent tema a través de 50, sinó també equip 46 00:02:18,360 --> 00:02:21,470 la ciència en general, la idea de capes, on, al final de l' 47 00:02:21,470 --> 00:02:24,820 dia, si realment va iniciar la bàsic amb un ordinador, sí, 48 00:02:24,820 --> 00:02:25,760 és zeros i uns. 49 00:02:25,760 --> 00:02:27,480 I sota d'això és només l'electricitat. 50 00:02:27,480 --> 00:02:30,840 Però molt aviat comencem a tenir els detalls de baix nivell per fet 51 00:02:30,840 --> 00:02:35,600 i començar a la capa a la part superior de la passada treballar fet que, en última instància, pels 52 00:02:35,600 --> 00:02:38,610 Al final del semestre i, en definitiva, més generalment com els informàtics 53 00:02:38,610 --> 00:02:42,790 i els programadors, poden fer alguna cosa realment coses de gran abast mitjançant l'aprofitament de treball 54 00:02:42,790 --> 00:02:46,620 que nosaltres mateixos hem fet i també de peu sobre les espatlles dels altres. 55 00:02:46,620 --> 00:02:49,300 >> Ara ràpidament transitioned dimecres des de tot just la necessitat 56 00:02:49,300 --> 00:02:52,080 representar la informació que vulgui fer alguna cosa amb ell. 57 00:02:52,080 --> 00:02:54,170 Llavors, què ens definim com un algoritme? 58 00:02:54,170 --> 00:02:57,340 59 00:02:57,340 --> 00:02:58,900 Una sèrie d'instruccions. 60 00:02:58,900 --> 00:03:03,380 Així que és una sèrie d'instruccions, un nombre de passos que vostè, un ésser humà, o 61 00:03:03,380 --> 00:03:07,160 un ordinador, més típicament, ho faria executar una després de l'altra per tal 62 00:03:07,160 --> 00:03:08,100 per aconseguir algun objectiu. 63 00:03:08,100 --> 00:03:11,360 I teníem alguns objectius última vegada, una de les quals va ser la de comptar 64 00:03:11,360 --> 00:03:12,250 persones a l'habitació. 65 00:03:12,250 --> 00:03:15,560 I un altre exemple era trobar Mike Smith en una guia telefònica. 66 00:03:15,560 --> 00:03:19,750 >> Així que vostè pot recordar que vaig trencar un telèfon llibre en un mitjà per a aquesta finalitat fins 67 00:03:19,750 --> 00:03:21,280 trobar Mike Smith. 68 00:03:21,280 --> 00:03:24,000 El propòsit que visual era de demostra, una vegada més, que estàvem 69 00:03:24,000 --> 00:03:27,770 literalment, llagrimeig aquest problema en un mitjà, en un medi, al mig, i molt 70 00:03:27,770 --> 00:03:31,750 passant ràpidament de com 1.000 pàgines a una sola pàgina. 71 00:03:31,750 --> 00:03:34,860 Aquells de vostès que es va perdre en aquest Dimecres, vaig pensar que havíem reproduir 72 00:03:34,860 --> 00:03:36,820 algunes imatges del que et vas perdre. 73 00:03:36,820 --> 00:03:38,914 Anem a fer una ullada. 74 00:03:38,914 --> 00:03:40,906 >> [REPRODUIR VIDEO] 75 00:03:40,906 --> 00:03:55,360 76 00:03:55,360 --> 00:03:55,990 >> -Això és. 77 00:03:55,990 --> 00:04:01,432 1500 pàgines, línia neta i bonica, llàgrima legítim. 78 00:04:01,432 --> 00:04:02,850 >> [FI REPRODUCCIÓ DE VÍDEO] 79 00:04:02,850 --> 00:04:05,230 >> DAVID Malan: Així que era dimecres. 80 00:04:05,230 --> 00:04:09,150 Ens transició, però, el dimecres ja en voler representar algorismes 81 00:04:09,150 --> 00:04:12,410 d'alguna manera una mica estàndard, no només descriure verbalment, però 82 00:04:12,410 --> 00:04:16,290 tractant d'expressar per escrit o en una pantalla d'ordinador, així que vam poder 83 00:04:16,290 --> 00:04:19,170 comencen a millorar, i modificar , I, amb el temps, en realitat 84 00:04:19,170 --> 00:04:21,160 analitzar què tan correcta o la rapidesa amb què eren. 85 00:04:21,160 --> 00:04:23,360 >> Així que hem introduït aquesta noció de pseudocodi, que, en 86 00:04:23,360 --> 00:04:26,410 termes simples, és el que? 87 00:04:26,410 --> 00:04:26,930 Acceptar, paraules. 88 00:04:26,930 --> 00:04:28,730 Anem a anar una mica més profund que això. 89 00:04:28,730 --> 00:04:32,540 Anglès, és clar, no són més que amb quina finalitat? 90 00:04:32,540 --> 00:04:35,180 Les paraules amb què crear o per representar algorismes. 91 00:04:35,180 --> 00:04:38,380 Així que no hi ha una llengua coneguda com pseudocodi al món. 92 00:04:38,380 --> 00:04:41,110 És només que, en anglès o qualsevol que sigui la llengua parlada és, l'ús 93 00:04:41,110 --> 00:04:44,930 una mena de notació superficial per transmetre una idea de manera molt succinta. 94 00:04:44,930 --> 00:04:47,930 Però veurem que, sens dubte, amb un Pseudocodi Anglès, i resulta 95 00:04:47,930 --> 00:04:51,700 la majoria dels mateixos llenguatges de programació són derivat de la mateixa Anglès, 96 00:04:51,700 --> 00:04:55,750 trobarem que hi ha una norma formes de representar i pseudocodi 97 00:04:55,750 --> 00:04:57,150 També el codi de programació. 98 00:04:57,150 --> 00:05:00,200 Així com vostè comença a veure fins i tot el més simple exemples en l'actualitat, es donen compte aquests 99 00:05:00,200 --> 00:05:02,160 mateixos patrons es repetiran la setmana que ve. 100 00:05:02,160 --> 00:05:04,710 >> Així pseudocodi era una mena del llenguatge semblant 101 00:05:04,710 --> 00:05:06,170 un llenguatge de programació. 102 00:05:06,170 --> 00:05:09,260 I el primer exemple que vam veure visualment escrit era aquest. 103 00:05:09,260 --> 00:05:12,870 Va ser només un programa de tres passos, el objectiu de la qual era per comptar el nombre 104 00:05:12,870 --> 00:05:15,650 de persones en una habitació de la residència d' el vídeo el dimecres. 105 00:05:15,650 --> 00:05:19,040 Però hi va haver alguns aspectes interessants d'aquest programa més simple. 106 00:05:19,040 --> 00:05:20,320 >> I això serà temes recurrents. 107 00:05:20,320 --> 00:05:22,930 Així que per a aquells que no estan familiaritzats amb això, un, que va introduir una variable. 108 00:05:22,930 --> 00:05:25,650 I probablement tots en aquesta sala és familiaritzat amb una variable en el 109 00:05:25,650 --> 00:05:27,250 context de l'àlgebra. 110 00:05:27,250 --> 00:05:31,190 Però aquí a la programació, les variables són, un, pot haver 111 00:05:31,190 --> 00:05:32,220 anomenat qualsevol cosa que vulguem. 112 00:05:32,220 --> 00:05:33,620 Hem estat utilitzant n com un comptador. 113 00:05:33,620 --> 00:05:37,490 Però podríem utilitzar el comptador de paraules, o, com es veurà, la majoria de qualsevol frase que 114 00:05:37,490 --> 00:05:40,240 que pot agradar tant de temps, ja que és descriptiva, però no deixa de ser un 115 00:05:40,240 --> 00:05:41,250 recipient d'emmagatzematge. 116 00:05:41,250 --> 00:05:44,170 És un tros de memòria, un nombre de bits, i que varia segons l'equip, com 117 00:05:44,170 --> 00:05:47,020 molts bits Cal compondre aquesta variable. 118 00:05:47,020 --> 00:05:48,450 >> Però podem posar els valors en ella. 119 00:05:48,450 --> 00:05:50,740 Fins ara, només hem posat els números. 120 00:05:50,740 --> 00:05:52,290 Però podem posar paraules reals. 121 00:05:52,290 --> 00:05:53,420 Podem posar paràgrafs. 122 00:05:53,420 --> 00:05:54,560 Podem posar imatges - 123 00:05:54,560 --> 00:05:57,860 res, en realitat, es pot representar amb zeros i uns, que poden posar en 124 00:05:57,860 --> 00:05:59,820 aquesta noció de nivell superior d'una variable. 125 00:05:59,820 --> 00:06:01,350 >> Així que bastant senzill allà. 126 00:06:01,350 --> 00:06:02,210 I aquesta és la línia un. 127 00:06:02,210 --> 00:06:05,340 Però molt ràpidament canviem de línia un per fer realitat 128 00:06:05,340 --> 00:06:06,600 alguna cosa amb aquesta variable. 129 00:06:06,600 --> 00:06:10,330 I en la línia de tres, actualitzem N. Nosaltres incrementat N. I podríem escriure això 130 00:06:10,330 --> 00:06:11,330 qualsevol nombre de maneres. 131 00:06:11,330 --> 00:06:14,460 Però potser el més obvi és només per dir, ajust N igual a 132 00:06:14,460 --> 00:06:16,440 qualsevol N és més 1. 133 00:06:16,440 --> 00:06:17,740 Així que aquest va ser el nostre increment. 134 00:06:17,740 --> 00:06:18,740 >> Mentrestant, hi va haver un bucle. 135 00:06:18,740 --> 00:06:20,720 I això, també, és probablement bastant intuïtiu. 136 00:06:20,720 --> 00:06:24,250 Un bucle és només alguna cosa en un programa que ocorre una vegada i una altra, alguns 137 00:06:24,250 --> 00:06:25,190 tipus de cicle. 138 00:06:25,190 --> 00:06:29,300 I aquesta frase clau aquí, per a cada un, és en realitat molt comú en la major part 139 00:06:29,300 --> 00:06:32,300 llenguatges de programació, incloent els veurem en el curs. 140 00:06:32,300 --> 00:06:35,850 Cada vegada que vegi la paraula, es típicament transmet la idea que un 141 00:06:35,850 --> 00:06:38,410 bucle, una mica cíclic, està a punt de succeir. 142 00:06:38,410 --> 00:06:40,980 >> Però val la pena assenyalar una un altre detall sintàctic. 143 00:06:40,980 --> 00:06:44,660 El fet que la tercera línia es realitat sagnia per haver colpejat la 144 00:06:44,660 --> 00:06:46,920 Barra espaiadora diverses vegades és deliberat. 145 00:06:46,920 --> 00:06:49,870 A causa convenció humana és tal que, quan estàs fent alguna cosa nova i 146 00:06:49,870 --> 00:06:54,860 una altra vegada, en un bucle, com iniciat en la línia dos, sagnia a tot el que pertanyia 147 00:06:54,860 --> 00:06:58,880 a aquest bucle només per deixar clar que és la línia de tres i no, per exemple, 148 00:06:58,880 --> 00:07:01,910 línia de quatre o cinc, si hi havia línies per o cinc, que són 149 00:07:01,910 --> 00:07:03,010 part que els bucles. 150 00:07:03,010 --> 00:07:07,340 Així que aquest simple osca transmet la idea bàsica. 151 00:07:07,340 --> 00:07:09,390 >> Així que hem aplicat aquest algoritme, ara, a uns pocs exemples. 152 00:07:09,390 --> 00:07:12,620 I això, també, exemple senzill en el món real. 153 00:07:12,620 --> 00:07:15,440 Però serà representativa de com va a anar sobre les proves 154 00:07:15,440 --> 00:07:17,500 propis programes cada vegada més complexos. 155 00:07:17,500 --> 00:07:21,050 Intenta una sèrie d'escenaris, alguns representants de les entrades, i veure si 156 00:07:21,050 --> 00:07:22,180 obtenir els resultats desitjats. 157 00:07:22,180 --> 00:07:25,090 >> Així que aquest exemple tenia dues persones assegut a l'habitació de la residència. 158 00:07:25,090 --> 00:07:27,170 A l'esquerra es troba la mateixa pseudocodi. 159 00:07:27,170 --> 00:07:30,800 I aquesta és una captura de pantalla de la mateixa últim pas de l'aplicació d'aquest 160 00:07:30,800 --> 00:07:35,270 algorisme per les entrades, on es Hi havia dues persones a l'habitació i, 161 00:07:35,270 --> 00:07:39,190 recordar, a mesura que avancem a través de línies un, i dos, i tres, i dos 162 00:07:39,190 --> 00:07:41,000 -tres i fet - 163 00:07:41,000 --> 00:07:44,870 pel final d'aquest algorisme, vam tenir fet explicat els dos tipus que són 164 00:07:44,870 --> 00:07:45,360 a l'habitació. 165 00:07:45,360 --> 00:07:47,190 >> Així que intentem un altre exemple. 166 00:07:47,190 --> 00:07:48,990 I vam dir que si hi ha zero persones a l'habitació? 167 00:07:48,990 --> 00:07:50,490 És aquest codi segueix sent correcta? 168 00:07:50,490 --> 00:07:51,305 I així va ser. 169 00:07:51,305 --> 00:07:55,240 El que passa és que la línia dos i, per tant, la línia de tres o 170 00:07:55,240 --> 00:07:56,620 no va a executar. 171 00:07:56,620 --> 00:07:59,790 Ells no van a succeir en absolut perquè simplement no és aplicable si 172 00:07:59,790 --> 00:08:01,210 hi ha zero persones a l'habitació. 173 00:08:01,210 --> 00:08:02,300 >> Però no és un gran problema. 174 00:08:02,300 --> 00:08:06,620 Línia 1 N inicialitza a zero, per la qual tot i que una sola línia d'aquest 175 00:08:06,620 --> 00:08:10,930 programa en realitat acaba sent útil, encara produeix la resposta correcta, com 176 00:08:10,930 --> 00:08:13,780 indicat pel taronja zero a la part inferior. 177 00:08:13,780 --> 00:08:16,300 Però llavors vam decidir que era una mena d'algorisme d'estúpid. 178 00:08:16,300 --> 00:08:17,060 Era bastant lent. 179 00:08:17,060 --> 00:08:19,720 Sens dubte, puc fer dues, quatre, sis, vuit, 10, quan 180 00:08:19,720 --> 00:08:20,990 recompte de persones en una habitació. 181 00:08:20,990 --> 00:08:25,030 >> Així que ajustat l'algorisme, el pseudocodi, per dir, ja en la segona línia, 182 00:08:25,030 --> 00:08:29,710 per a cada parell de persones a l'habitació, procedir a la, en línia de tres, l'increment 183 00:08:29,710 --> 00:08:32,200 a per dos en cada iteració. 184 00:08:32,200 --> 00:08:35,530 Així que han treballat per aquest parell de persones a l'habitació. 185 00:08:35,530 --> 00:08:38,530 >> Però llavors, si comences a pensar en això, i no es necessita molt temps per 186 00:08:38,530 --> 00:08:40,710 adonar-se'n, espera un minut això és va a trencar, trenca 187 00:08:40,710 --> 00:08:42,679 en quin cas simple? 188 00:08:42,679 --> 00:08:45,500 Si hi ha tres persones a l'habitació o, més en general, quan hi ha una 189 00:08:45,500 --> 00:08:47,660 nombre senar de persones al ambient, incloent un. 190 00:08:47,660 --> 00:08:50,390 Ens anàvem a perdre a aquesta persona aquí perquè no hi ha aquests parells. 191 00:08:50,390 --> 00:08:58,510 Així que ràpidament ens dirigim per primera vegada que introduir addicional 192 00:08:58,510 --> 00:09:02,560 construccions de programació a la pseudo codi. 193 00:09:02,560 --> 00:09:04,955 >> Així que una condició, que s'anomena , O una branca. 194 00:09:04,955 --> 00:09:08,420 I se suposa que ha de transmetre, visualment, la idea de la branca, una forquilla a la carretera 195 00:09:08,420 --> 00:09:11,080 on es pot fer això o, potser, una mica més. 196 00:09:11,080 --> 00:09:15,750 I, en efecte, abordem aquest problema afegint la línia 4, dient, en realitat, al 197 00:09:15,750 --> 00:09:20,820 al final, si una persona es manté, i després seguir endavant i el considero especial. 198 00:09:20,820 --> 00:09:24,460 Així que tipus de cas especial que, per de parlar, de manera que ara podem gestionar 199 00:09:24,460 --> 00:09:27,810 tant un nombre parell de persones i un nombre senar de persones. 200 00:09:27,810 --> 00:09:30,260 >> Ara bé, hi ha diverses maneres podríem haver expressat això. 201 00:09:30,260 --> 00:09:33,590 I, francament, jo podria haver estat encara més mica primmirat quan es tractava de la meva elecció de 202 00:09:33,590 --> 00:09:35,040 Anglès per al pseudocodi. 203 00:09:35,040 --> 00:09:36,970 Però almenys l'esperit de la idea és transportat. 204 00:09:36,970 --> 00:09:40,725 Si lliurar aquest codi a un amic que no està en CS, o mai ha tingut 205 00:09:40,725 --> 00:09:44,560 CS, les probabilitats són que podien entendre, donada a tres persones a l'habitació, com 206 00:09:44,560 --> 00:09:46,870 comptar les persones sobre la base en aquestes instruccions. 207 00:09:46,870 --> 00:09:49,920 I això és tot el que realment volem aconseguir amb pseudocodi, d'alguna manera 208 00:09:49,920 --> 00:09:54,300 estandarditzar la forma en què anem sobre les idees que representen perquè puguem 209 00:09:54,300 --> 00:09:56,670 començar a fer més complicat cosa encara. 210 00:09:56,670 --> 00:09:58,845 >> Així que això ens porta a continuació, en l'actualitat, al codi real. 211 00:09:58,845 --> 00:10:01,950 Comencem a programar avui, encara en un ambient agradable. 212 00:10:01,950 --> 00:10:05,940 I després fem la transició ràpidament a una sintaxi més arcà, però que 213 00:10:05,940 --> 00:10:10,340 que veurà és fonamentalment el mateix que les idees es veuen manifesta amb 214 00:10:10,340 --> 00:10:11,990 aquest altre llenguatge d'avui en dia. 215 00:10:11,990 --> 00:10:13,920 Només va a buscar una mica diferent. 216 00:10:13,920 --> 00:10:16,590 >> Així que en lloc de trucar a aquest codi, estic serà una mica més precís 217 00:10:16,590 --> 00:10:20,170 i dir, a partir d'ara, en escriure un programa que escrius codi font. 218 00:10:20,170 --> 00:10:21,990 És com pseudocodi. 219 00:10:21,990 --> 00:10:26,540 Però anem a veure, no és una espècie de solta quan es tracta de l'elecció de les paraules 220 00:10:26,540 --> 00:10:27,310 que utilitza. 221 00:10:27,310 --> 00:10:31,300 Quan la programació en un llenguatge, que té per utilitzar les paraules, les frases, 222 00:10:31,300 --> 00:10:36,020 la sintaxi, que altres persones han decidit representar 223 00:10:36,020 --> 00:10:37,240 aquest idioma en particular. 224 00:10:37,240 --> 00:10:38,510 Així pseudocodi depèn de vostè. 225 00:10:38,510 --> 00:10:42,330 Un llenguatge de programació real com C, com veurem al final veiem, és 226 00:10:42,330 --> 00:10:43,590 estandarditzada per altres persones. 227 00:10:43,590 --> 00:10:45,590 >> Llavors, com fem per escriure una mica de codi font? 228 00:10:45,590 --> 00:10:46,810 Bé, jo vaig a anar endavant i fer això. 229 00:10:46,810 --> 00:10:49,100 Vaig a seguir endavant i obrir una finestra aquí. 230 00:10:49,100 --> 00:10:50,210 Més sobre això la propera setmana. 231 00:10:50,210 --> 00:10:52,300 Però aquest és un dispositiu anomenat l'aparell CS50. 232 00:10:52,300 --> 00:10:55,480 Estic corrent un programari en el meu Mac, tot i que pot fer el mateix 233 00:10:55,480 --> 00:11:00,580 en un equip Windows, que està donant me la il · lusió de dirigir un diferent 234 00:11:00,580 --> 00:11:03,700 el sistema operatiu completament la dreta aquí en una finestra en el meu Mac 235 00:11:03,700 --> 00:11:06,790 Acabo completa projectar així no ho fa veure realment Mac OS ara. 236 00:11:06,790 --> 00:11:08,340 >> Aquest és un sistema operatiu anomenat Linux. 237 00:11:08,340 --> 00:11:09,300 És molt popular. 238 00:11:09,300 --> 00:11:10,120 És molt ràpid. 239 00:11:10,120 --> 00:11:12,950 És molt lliure, que ha fet molt convincent, especialment en el 240 00:11:12,950 --> 00:11:13,970 món comercial. 241 00:11:13,970 --> 00:11:17,200 I més en que cap al final de la semestre quan fem servir Linux una mica 242 00:11:17,200 --> 00:11:21,230 per a web programació i allotjament de llocs web i projectes reals. 243 00:11:21,230 --> 00:11:24,910 Així que ara, només sé que es tracta d'un ordinador de sobretaula que se suposa que mirar vagament 244 00:11:24,910 --> 00:11:26,750 familiar per a Windows i Mac OS. 245 00:11:26,750 --> 00:11:29,110 Només té alguns noms diferents i les icones de les coses. 246 00:11:29,110 --> 00:11:32,510 Però aquest és l'anomenat CS50 aparell, una màquina virtual que, 247 00:11:32,510 --> 00:11:35,310 partir de la setmana que ve, que els nois es executar dins d'una finestra a 248 00:11:35,310 --> 00:11:36,960 el teu Mac o PC. 249 00:11:36,960 --> 00:11:39,760 >> Per avui, vaig a obrir el més simple dels programes. 250 00:11:39,760 --> 00:11:41,110 Es diu gedit. 251 00:11:41,110 --> 00:11:42,565 I això és només un editor gràfic. 252 00:11:42,565 --> 00:11:44,695 És com Microsoft Paraula, però més simple. 253 00:11:44,695 --> 00:11:47,110 És una espècie de text com edició o bloc de notes. 254 00:11:47,110 --> 00:11:50,280 És un programa molt senzill amb per escriure les paraules a la pantalla. 255 00:11:50,280 --> 00:11:54,510 Simplement el que passa que si llevat arxius que crec que aquest programa 256 00:11:54,510 --> 00:11:59,860 en una extensió especial com. c, en lloc de. doc o. xls, o el que sigui 257 00:11:59,860 --> 00:12:04,190 vostè està familiaritzat amb, puc realment crear programes usant fins i tot aquest senzill 258 00:12:04,190 --> 00:12:05,130 editor de text. 259 00:12:05,130 --> 00:12:05,770 >> Així que permetin-me fer-ho. 260 00:12:05,770 --> 00:12:09,330 Deixin-me seguir endavant i salvar aquest presentar primer com hello.c. 261 00:12:09,330 --> 00:12:12,350 I de nou, aquesta interfície d'usuari familiaritzar-se amb vostè ràpidament. 262 00:12:12,350 --> 00:12:14,160 Però, per ara, només estic escrivint en un nom d'arxiu. 263 00:12:14,160 --> 00:12:17,410 Vaig a guardar-lo en la meva John Directori de Harvard. 264 00:12:17,410 --> 00:12:20,810 I ara tinc aquesta fitxa que indica Estic realment edició 265 00:12:20,810 --> 00:12:23,070 un arxiu anomenat hello.c. 266 00:12:23,070 --> 00:12:24,510 Així que res massa interessant encara. 267 00:12:24,510 --> 00:12:26,000 >> I ara que va a ser bastant críptic. 268 00:12:26,000 --> 00:12:28,370 Me'n vaig a apropar, només pel que és més visible. 269 00:12:28,370 --> 00:12:35,780 I vaig a començar a escriure inclou stdio.h, int obert arrissat principal, buit, 270 00:12:35,780 --> 00:12:40,140 cotilla, un, dos, tres, quatre espais de sangria, impressió f, per a la impressió 271 00:12:40,140 --> 00:12:44,450 alguna cosa format, entre cometes, "Hola, món" barra invertida, n, prop 272 00:12:44,450 --> 00:12:49,640 cita, tancament de parèntesi, punt i coma, entrar en retrocés, retrocés, retrocés, 273 00:12:49,640 --> 00:12:52,310 retrocés, clau de tancament - 274 00:12:52,310 --> 00:12:53,350 He programat. 275 00:12:53,350 --> 00:12:57,380 >> Molt bé pel que aquest és un super simple programa, en realitat, el programa que 276 00:12:57,380 --> 00:12:59,070 algú comença la programació amb. 277 00:12:59,070 --> 00:13:02,300 I tot el que fa, malgrat la seva complexitat, s'imprimeix en el 278 00:13:02,300 --> 00:13:04,160 pantalla, endevinin què? 279 00:13:04,160 --> 00:13:04,910 Hola, món. 280 00:13:04,910 --> 00:13:07,500 Però no n'hi ha prou simplement per escriure un programa. 281 00:13:07,500 --> 00:13:08,155 Així que aquest és el codi. 282 00:13:08,155 --> 00:13:11,300 Aquest és el codi font en un llenguatge anomenat c. 283 00:13:11,300 --> 00:13:14,380 Està guardada en aquests moments en un arxiu anomenat hello.c. 284 00:13:14,380 --> 00:13:16,180 >> Ara mira a la part inferior de la pantalla aquí. 285 00:13:16,180 --> 00:13:17,890 Més sobre això, de nou, en les setmanes venidores. 286 00:13:17,890 --> 00:13:19,570 Però això és el que anomenarem una finestra de terminal. 287 00:13:19,570 --> 00:13:21,290 És un parpelleig, negre ràpida i blanc. 288 00:13:21,290 --> 00:13:24,390 És una espècie d'una interfície de la vella escola a un equip que generalment no 289 00:13:24,390 --> 00:13:27,050 utilitzar un ratolí o un altre elements gràfics. 290 00:13:27,050 --> 00:13:28,320 Simplement utilitza el teclat. 291 00:13:28,320 --> 00:13:30,970 I puc escriure ordres en El parpelleig ràpid. 292 00:13:30,970 --> 00:13:33,820 >> I per als propòsits d'avui, estic va a escriure el següent - 293 00:13:33,820 --> 00:13:35,610 fer hola. 294 00:13:35,610 --> 00:13:39,370 I aquest programa, marca, és només una programa que, en el món real aquests 295 00:13:39,370 --> 00:13:40,690 dia, ens feu doble clic a. 296 00:13:40,690 --> 00:13:44,580 Però en aquesta interfície per avui, estem va a escriure el seu nom en aquest sistema. 297 00:13:44,580 --> 00:13:47,980 fer hola és, literalment, va a em fan un programa anomenat hola. 298 00:13:47,980 --> 00:13:51,360 I ho farà per mirar un arxiu, simplement 299 00:13:51,360 --> 00:13:53,460 per defecte, anomenat hello.c. 300 00:13:53,460 --> 00:13:57,260 Això suposarà que vull un programa C per la naturalesa de com aquest ordinador 301 00:13:57,260 --> 00:13:58,230 està configurat. 302 00:13:58,230 --> 00:13:59,550 >> Així que segueixo endavant i prem enter. 303 00:13:59,550 --> 00:14:02,050 Veig una sortida secreta, però això es farà molt 304 00:14:02,050 --> 00:14:03,330 familiaritzar-se en poc temps. 305 00:14:03,330 --> 00:14:06,870 Això va succeir per executar un compilador, més en la qual en un moment, anomenat Clang. 306 00:14:06,870 --> 00:14:09,080 Però ara, tinc més que un altre parpelleja ràpid. 307 00:14:09,080 --> 00:14:13,060 I puc seguir endavant ara i escriviu dot reduir, per raons poc interessants que anem a 308 00:14:13,060 --> 00:14:14,730 tornar a la setmana que - 309 00:14:14,730 --> 00:14:15,910 hola. 310 00:14:15,910 --> 00:14:19,650 >> Així que tot aquest esforç fins al moment només per escriure el més simple dels programes que, 311 00:14:19,650 --> 00:14:22,640 tan aviat com vaig arribar a Enter, això. 312 00:14:22,640 --> 00:14:24,510 Així que he escrit el primer programa. 313 00:14:24,510 --> 00:14:27,500 Així que estic deliberadament burlava en aquest mateix senzill programa 314 00:14:27,500 --> 00:14:28,540 per un parell de raons. 315 00:14:28,540 --> 00:14:31,990 Un, és difícil emocionar sobre prendre una classe si 316 00:14:31,990 --> 00:14:33,430 aquest és el final del joc. 317 00:14:33,430 --> 00:14:37,100 >> Però més que això, hi ha una moltes distraccions aquí. 318 00:14:37,100 --> 00:14:40,640 La primera vegada que s'aprèn a programar, per aquells que menys còmode, i 319 00:14:40,640 --> 00:14:43,410 Fins i tot, al seu dia, quan per primera vegada vaig veure una cosa com això - pot tipus 320 00:14:43,410 --> 00:14:46,500 de la xifra que, d'acord, aquesta es troba en un món hola impressió. 321 00:14:46,500 --> 00:14:47,860 Però hi ha tanta distracció. 322 00:14:47,860 --> 00:14:52,110 Hi ha tant de sintaxi a la pantalla que s'interposa en el camí de molt 323 00:14:52,110 --> 00:14:54,170 idees simples, en cas contrari simple. 324 00:14:54,170 --> 00:14:56,700 >> Llavors, què farem avui és que estem va a deixar de banda C i vénen 325 00:14:56,700 --> 00:14:57,630 de nou a que dilluns. 326 00:14:57,630 --> 00:15:00,860 I farem servir un gràfic llenguatge de programació anomenat esgarrapades. 327 00:15:00,860 --> 00:15:04,470 Aquest és un llenguatge de programació, que jo ludeix dimecres que va 328 00:15:04,470 --> 00:15:08,870 que ens permetrà fer el mateix tipus de coses però fan els ulls grossos, perquè avui, 329 00:15:08,870 --> 00:15:12,270 a les claus, els parèntesis, els punts i comes, i totes aquestes estúpides 330 00:15:12,270 --> 00:15:15,680 distraccions que s'interposen en el camí, en aquest primer dia, d'alguns bàsics, bastant 331 00:15:15,680 --> 00:15:17,230 idees interessants. 332 00:15:17,230 --> 00:15:21,350 >> Així que amb aquest fi, em vaig a anar de tornada al meu escriptori aquí i 333 00:15:21,350 --> 00:15:25,890 presentar a l'alternativa que programa, que es va a buscar una 334 00:15:25,890 --> 00:15:30,790 alguna cosa s'encén això. 335 00:15:30,790 --> 00:15:33,930 Això és el que anem a aplicar aquesta mateix programa d'avui - dos trencaclosques 336 00:15:33,930 --> 00:15:37,710 peces que, quan entrellaçats i clic a, dirà al món, 337 00:15:37,710 --> 00:15:39,000 hello world. 338 00:15:39,000 --> 00:15:41,200 >> Així que realment anar-hi. 339 00:15:41,200 --> 00:15:44,965 Així que seguiré endavant i obrir un lloc web conegut com scratch.mit.edu. 340 00:15:44,965 --> 00:15:47,980 341 00:15:47,980 --> 00:15:52,040 I això em portarà Aquest lloc web aquí. 342 00:15:52,040 --> 00:15:54,660 Per endavant, m'he registrat en aquest lloc web i els primers problemes que 343 00:15:54,660 --> 00:15:55,910 us guiarà a través d' alguns d'aquests passos. 344 00:15:55,910 --> 00:15:58,930 Vaig a seguir endavant i feu clic a en la meva carpeta de zero aquí. 345 00:15:58,930 --> 00:16:00,720 >> I això em va a mostrar alguns projectes que he 346 00:16:00,720 --> 00:16:02,570 en realitat creat per endavant. 347 00:16:02,570 --> 00:16:05,860 I resulta que aquesta gràfica llenguatge de programació no només va 348 00:16:05,860 --> 00:16:08,480 que ens va deixar el programa d'arrossegar i deixant caure les peces del trencaclosques, que 349 00:16:08,480 --> 00:16:09,730 ni tan sols necessita un programari especial. 350 00:16:09,730 --> 00:16:13,190 Tot està incrustat dins d'un navegador per que vostè pot fer això, en teoria, en 351 00:16:13,190 --> 00:16:16,810 els equips en aquest moment, com alguns de vostès bé pot ser, fins i tot sense necessitat de 352 00:16:16,810 --> 00:16:19,870 programari com l'aparell CS50, que arribarà la setmana que ve. 353 00:16:19,870 --> 00:16:24,200 >> Així que vaig a pujar a la part superior aquí i feu clic a Crea. 354 00:16:24,200 --> 00:16:27,840 I en un moment en què em vaig a posar un espai en blanc pantalla a través de la qual puc començar 355 00:16:27,840 --> 00:16:30,380 programació en aquest gràfic entorn de programació. 356 00:16:30,380 --> 00:16:36,140 Però aquesta vegada, serà molt, molt més senzill fer-ho realment. 357 00:16:36,140 --> 00:16:41,560 Així que en un moment, quan el Wi-Fi coopera, ara tenim aquesta pantalla. 358 00:16:41,560 --> 00:16:44,870 Així que una visita ràpida verbal, però m'atreveixo a dir, Certament, quan se submergeixen en el 359 00:16:44,870 --> 00:16:46,840 primer conjunt de problemes, se li trobar molt 360 00:16:46,840 --> 00:16:48,315 accessible i bastant intuïtiu. 361 00:16:48,315 --> 00:16:50,900 Però anem a pintar una imatge mental només per un moment. 362 00:16:50,900 --> 00:16:54,620 >> Així que per sota d'aquesta ràpida parada dient canvis, estàs a punt de veure res. 363 00:16:54,620 --> 00:16:55,570 Es tracta d'un element sprite. 364 00:16:55,570 --> 00:16:56,630 És un personatge. 365 00:16:56,630 --> 00:17:00,740 I viu del que anem a trucar a un escenari, aquest gran rectangle blanc a 366 00:17:00,740 --> 00:17:03,120 que es pot moure cap amunt, avall, esquerra, dret, i ho fan, en realitat, 367 00:17:03,120 --> 00:17:04,670 un altre tipus d'accions. 368 00:17:04,670 --> 00:17:08,780 >> Mentrestant, al mig d'aquest usuari interfície, tenim un munt de 369 00:17:08,780 --> 00:17:09,750 peces d'un trencaclosques. 370 00:17:09,750 --> 00:17:14,060 I veuràs que diuen coses com moure 10 passos, girar 15 graus, 371 00:17:14,060 --> 00:17:15,550 punt en una certa direcció. 372 00:17:15,550 --> 00:17:17,910 Però hi ha categories de pomes d'aquí també. 373 00:17:17,910 --> 00:17:21,410 Així que si em vaig a l'aparença, veuràs que hi ha altres peces d'un trencaclosques que 374 00:17:21,410 --> 00:17:25,530 aparentment li dirà aquesta cit de saludar, per pensar, per mostrar 375 00:17:25,530 --> 00:17:26,780 si mateix, amagar-se. 376 00:17:26,780 --> 00:17:30,830 Si vaig a sons, resulta hi ha maneres de jugar sona com el miol, 377 00:17:30,830 --> 00:17:32,670 per aturar tots els sons, a tocar el tambor. 378 00:17:32,670 --> 00:17:36,530 >> Així, el conte llarg, hi ha un conjunt munt de peces d'un trencaclosques que li permeten 379 00:17:36,530 --> 00:17:40,920 dir-li a aquest gat, o qualsevol nombre d' altres personatges, què fer. 380 00:17:40,920 --> 00:17:43,850 Però perquè tot això passi es necessari per iniciar la programació. 381 00:17:43,850 --> 00:17:48,090 I aquesta gran caixa blanca o caixa de color gris, en la dreta, aquí és on 382 00:17:48,090 --> 00:17:50,170 Vaig a arrossegar realitat i deixar anar les peces del trencaclosques. 383 00:17:50,170 --> 00:17:54,320 Aquesta és la meva text en blanc equivalent finestra. 384 00:17:54,320 --> 00:17:57,070 >> Així que seguiré endavant i feu clic a Controlar en el centre. 385 00:17:57,070 --> 00:17:58,540 O més aviat, deixa començar a Esdeveniments. 386 00:17:58,540 --> 00:18:01,530 En banca Esdeveniments, veuràs que hi ha una algunes coses que són deliberadament 387 00:18:01,530 --> 00:18:05,240 corbat a la part superior de manera que que probablement no s'entrellacen en la 388 00:18:05,240 --> 00:18:06,710 part superior de les peces d'un trencaclosques. 389 00:18:06,710 --> 00:18:10,160 I això és perquè demarcar l'inici d'un programa, l'inici d'una 390 00:18:10,160 --> 00:18:11,910 escriptura, per així dir-ho. 391 00:18:11,910 --> 00:18:16,290 Així que si segueixo endavant i arrossego, quan està verd bandera clic aquí, i després 392 00:18:16,290 --> 00:18:18,060 vol dir cat alguna cosa en el primer. 393 00:18:18,060 --> 00:18:20,510 Així que em vaig a passar per sota de les mirades panell. 394 00:18:20,510 --> 00:18:24,060 I jo vaig a seguir endavant i prendre la saludar bloc, i arrossegar i deixar anar, 395 00:18:24,060 --> 00:18:27,220 i deixar anar perquè de forma automàtica enclavaments allà. 396 00:18:27,220 --> 00:18:28,640 >> I a continuació, observi el que pugui feu clic al text. 397 00:18:28,640 --> 00:18:31,960 I puc anul · lar per ser més específica com, per exemple, hola món. 398 00:18:31,960 --> 00:18:36,340 I ara tenim el programa que jo reclamo és equivalent a la molt més 399 00:18:36,340 --> 00:18:39,670 programa arcà vaig implementar en C fa un moment. 400 00:18:39,670 --> 00:18:43,130 >> Si em vaig ara cap a l'esquerra, noten que hi ha un gran senyal d'alt 401 00:18:43,130 --> 00:18:44,520 i una bandera verda gran. 402 00:18:44,520 --> 00:18:46,390 Permetin-me ampliar la imatge durant la claredat. 403 00:18:46,390 --> 00:18:49,390 I quan faig clic ara aquesta bandera verda, que és fàcil endevinar el que aquesta primera 404 00:18:49,390 --> 00:18:51,920 programa ara va a fer. 405 00:18:51,920 --> 00:18:55,420 Així que, també, estem programant, però no estem realment empantanegar 406 00:18:55,420 --> 00:18:58,980 en alguns dels sintàctica, detalls minuciosos. 407 00:18:58,980 --> 00:19:01,120 >> Però intentarem alguna cosa una mica més interessant. 408 00:19:01,120 --> 00:19:04,840 Deixa anar a la carpeta zero aquí. 409 00:19:04,840 --> 00:19:10,210 I en realitat, deixa així que m'obro un programa separat aquí per només una 410 00:19:10,210 --> 00:19:17,830 moment, Maximitzar la finestra, arxiu obert, i jo entraré en l'actual 411 00:19:17,830 --> 00:19:18,620 directori d'origen. 412 00:19:18,620 --> 00:19:21,660 Com sempre, es troba, en l'actualitat i en endavant, que tots els exemples d'avui en dia 413 00:19:21,660 --> 00:19:25,225 són accessibles a l'interior del la pàgina web del curs. 414 00:19:25,225 --> 00:19:31,170 >> I seguiré endavant aquí i recollir una mica d'alguna cosa diferent. 415 00:19:31,170 --> 00:19:33,970 Aquest d'aquí, per al qual Necessito un voluntari. 416 00:19:33,970 --> 00:19:36,850 Qui vol una llum d'escriptori avui en dia? 417 00:19:36,850 --> 00:19:40,600 Bé, què hi ha d'algú una mica - està vostè al final? 418 00:19:40,600 --> 00:19:42,124 Anem cap avall. 419 00:19:42,124 --> 00:19:47,230 Ara, li agradaria participar o dir simplement començar amb la llum d'escriptori? 420 00:19:47,230 --> 00:19:48,190 >> VANESSA: [inaudible]. 421 00:19:48,190 --> 00:19:48,465 >> DAVID Malan: OK. 422 00:19:48,465 --> 00:19:49,610 Excel · lent, què et dius? 423 00:19:49,610 --> 00:19:49,990 Vanessa? 424 00:19:49,990 --> 00:19:50,570 David. 425 00:19:50,570 --> 00:19:51,390 Gust a conèixer-lo. 426 00:19:51,390 --> 00:19:53,840 Així que anem i Vanessa va per prendre el control de la meva 427 00:19:53,840 --> 00:19:55,490 teclat per un moment. 428 00:19:55,490 --> 00:19:57,850 I el que he fet aquí, només pel temps de bé, com m'he adonat de la 429 00:19:57,850 --> 00:20:01,070 Wi-Fi era una mica lent, Scratch, l' entorn de programació que estem 430 00:20:01,070 --> 00:20:04,110 utilitzant, amb possibilitat de descàrrega i executar en l'equip local. 431 00:20:04,110 --> 00:20:06,360 Així que el que vaig fer abans de la conferència, a cas que succeeixi, és que he descarregat 432 00:20:06,360 --> 00:20:09,120 tots els arxius que estem a punt de jugar amb de manera que puguin córrer una mica més 433 00:20:09,120 --> 00:20:10,840 ràpidament aquí al meu portàtil. 434 00:20:10,840 --> 00:20:13,460 Així que per això ara que estic veient una interfície de Mac-específica. 435 00:20:13,460 --> 00:20:15,510 >> Així que seguiré endavant i obrir aquest. 436 00:20:15,510 --> 00:20:18,400 Vaig a seguir endavant i ara pantalla completa de la finestra. 437 00:20:18,400 --> 00:20:21,740 I com veurem, podem molt ràpidament, igual que aquest estudiant, un 438 00:20:21,740 --> 00:20:26,360 seus predecessors, van de hola món a un molt més convincent 439 00:20:26,360 --> 00:20:27,020 aplicació. 440 00:20:27,020 --> 00:20:28,180 Així que aquí estan les instruccions. 441 00:20:28,180 --> 00:20:29,500 Oh, i no tenim altra cosa. 442 00:20:29,500 --> 00:20:31,640 Vaig pensar que seria divertit, ja que, Normalment, estarem filmant 443 00:20:31,640 --> 00:20:32,440 càmeres d'aquesta manera. 444 00:20:32,440 --> 00:20:34,100 Vaig pensar que seria divertit si, Vanessa, podríem veure el món 445 00:20:34,100 --> 00:20:35,120 a través dels seus ulls. 446 00:20:35,120 --> 00:20:36,670 Així que aquí tenim una mica de vidre Google. 447 00:20:36,670 --> 00:20:39,290 >> [Sospirs sorpresos] 448 00:20:39,290 --> 00:20:41,610 >> DAVID Malan: Només estarem donant distància llums d'escriptori actuals. 449 00:20:41,610 --> 00:20:43,530 >> [El] 450 00:20:43,530 --> 00:20:45,260 >> Així que em cue això. 451 00:20:45,260 --> 00:20:49,340 D'acord, tocar això. 452 00:20:49,340 --> 00:20:51,910 Acceptar, Cristall, gravar un vídeo. 453 00:20:51,910 --> 00:20:55,700 454 00:20:55,700 --> 00:20:56,950 Bé, Vanessa? 455 00:20:56,950 --> 00:21:00,940 456 00:21:00,940 --> 00:21:05,560 Ara, en un apart que no té res a veure amb Scratch, si ens fixem 457 00:21:05,560 --> 00:21:08,540 lleugerament cap amunt i cap a la dreta, veuràs el vidre literal, i que hauria de 458 00:21:08,540 --> 00:21:09,650 veure una petita finestra rectangular. 459 00:21:09,650 --> 00:21:11,500 Heu de veure a tots els seus companys de classe està filmant ara mateix? 460 00:21:11,500 --> 00:21:11,840 Sí 461 00:21:11,840 --> 00:21:12,340 >> VANESSA: Si. 462 00:21:12,340 --> 00:21:12,920 >> DAVID Malan: OK. 463 00:21:12,920 --> 00:21:15,170 Així està bé. 464 00:21:15,170 --> 00:21:16,660 Ens llançarem aquest metratge més tard. 465 00:21:16,660 --> 00:21:18,460 Per ara, dirigeixi la seva atenció a la pantalla aquí. 466 00:21:18,460 --> 00:21:20,990 I el que el seu predecessor ha fet és posar les instruccions que apareixen a la pantalla 467 00:21:20,990 --> 00:21:22,670 simplement mitjançant l'ús d'un programa de pintura. 468 00:21:22,670 --> 00:21:25,040 Així que anem a, en un moment, premeu la barra espaiadora per a començar. 469 00:21:25,040 --> 00:21:27,790 I després algunes peces del trencaclosques es van per començar a moure per la pantalla. 470 00:21:27,790 --> 00:21:30,900 I vostè desitja colpejar les tecles de fletxa, simplement com en béns DDR, de conformitat 471 00:21:30,900 --> 00:21:32,740 amb les coses alineant amb les fletxes. 472 00:21:32,740 --> 00:21:33,020 >> VANESSA: OK. 473 00:21:33,020 --> 00:21:33,800 >> DAVID Malan: Has jugar abans. 474 00:21:33,800 --> 00:21:34,140 >> VANESSA: Si. 475 00:21:34,140 --> 00:21:37,330 >> DAVID Malan: Molt bé, Vanessa, seguir endavant i se'l tregui. 476 00:21:37,330 --> 00:22:53,082 >> [MUSIC - Kayne OEST, "FORT"] 477 00:22:53,082 --> 00:22:57,080 >> [Aplaudiments] 478 00:22:57,080 --> 00:22:59,750 >> DAVID Malan: Així que anem ara fer un pas d'això. 479 00:22:59,750 --> 00:23:01,230 Així que està clar, és el final del joc. 480 00:23:01,230 --> 00:23:02,880 La fi del joc no és hola món. 481 00:23:02,880 --> 00:23:05,520 Però vostè no ha de veure necessàriament coses que són tan interactius. 482 00:23:05,520 --> 00:23:06,810 També es pot fer animació. 483 00:23:06,810 --> 00:23:10,790 Així, per exemple, un altre de la seva successors van fer aquest programa aquí, 484 00:23:10,790 --> 00:23:14,100 que narra una història de més de que no va posar en pràctica un joc. 485 00:23:14,100 --> 00:23:19,180 Així que permetin-me anar per davant i obrir ací un programa al nostre mateix directori d'origen 486 00:23:19,180 --> 00:23:20,300 a partir d'avui. 487 00:23:20,300 --> 00:23:26,990 Aquesta crida, i anem a començar amb, una història d'amor galeta. 488 00:23:26,990 --> 00:23:30,750 >> I per no fer això massa acadèmica, però, com veus aquesta, crec que 489 00:23:30,750 --> 00:23:34,030 mateix que dels simples conceptes de programació que hem parlat 490 00:23:34,030 --> 00:23:34,630 aproximadament fins al moment - 491 00:23:34,630 --> 00:23:39,250 les variables i bucles, i les condicions, va fer el seu antecessor probablement utilitzeu només 492 00:23:39,250 --> 00:23:41,090 per aplicar algunes de les visualitzacions. 493 00:23:41,090 --> 00:23:41,760 Vostè veu aquí. 494 00:23:41,760 --> 00:23:44,118 Així que li dono una història d'amor galeta. 495 00:23:44,118 --> 00:24:06,030 >> [MUSIC - Green Day, "vacances"] 496 00:24:06,030 --> 00:24:08,022 >> [CRASH] 497 00:24:08,022 --> 00:24:09,272 >> [MUSIC - LES TORTUGUES, "Happy Together"] 498 00:24:09,272 --> 00:24:58,328 499 00:24:58,328 --> 00:25:00,560 >> DAVID Malan: Molt bé, pel que, vam tenir una història d'amor galeta. 500 00:25:00,560 --> 00:25:01,360 Però fins i tot allà - 501 00:25:01,360 --> 00:25:01,755 >> [Aplaudiments] 502 00:25:01,755 --> 00:25:08,110 >> DAVID Malan: Està bé, fins i tot allà, pensar, com els cors van ser de 503 00:25:08,110 --> 00:25:10,410 la part inferior a la part superior de la pantalla, no era en realitat una mica de 504 00:25:10,410 --> 00:25:11,440 aleatorietat passant. 505 00:25:11,440 --> 00:25:14,150 I, de fet, anem a veure que fins i tot al simple d'entorns, com 506 00:25:14,150 --> 00:25:18,180 Scratch, com en C, pot generar nombres aleatoris, o la il · lusió de 507 00:25:18,180 --> 00:25:21,110 nombres aleatoris, de manera que el joc és un poc més interessant del que podria 508 00:25:21,110 --> 00:25:23,390 ser si vostè tenia absolutament fortament codificats tot. 509 00:25:23,390 --> 00:25:26,360 >> En el moviment que es veu, no hi ha algun tipus de resposta. 510 00:25:26,360 --> 00:25:28,840 Tan aviat com l'home de pa de gingebre toca la dona del pa de gingebre, que 511 00:25:28,840 --> 00:25:30,000 sembla allunyar-se. 512 00:25:30,000 --> 00:25:33,580 I així, de fet, es pot posar en pràctica, en la majoria dels llenguatges de programació, la noció 513 00:25:33,580 --> 00:25:38,680 d'esdeveniments, de manera que si una mà toca D'altra banda, que pot desencadenar alguns 514 00:25:38,680 --> 00:25:41,270 del seu codi font per fet executar. 515 00:25:41,270 --> 00:25:43,740 Vostè pot escoltar a aquest coses a la pantalla. 516 00:25:43,740 --> 00:25:47,310 >> Així que donem un ràpid recorregut, doncs, de alguns dels elements bàsics que podem utilitzar 517 00:25:47,310 --> 00:25:48,790 per assolir alguns d'aquests objectius. 518 00:25:48,790 --> 00:25:51,630 Així que aquí és el que farem a partir d'ara trucar a un comunicat. 519 00:25:51,630 --> 00:25:55,030 Una declaració passa a ser de color porpra en Scratch, una mica d'alguna cosa com això, 520 00:25:55,030 --> 00:25:56,120 però això és arbitrari. 521 00:25:56,120 --> 00:26:00,140 Una declaració és només una peça del trencaclosques o, més en general, una instrucció, que 522 00:26:00,140 --> 00:26:03,370 li diu a l'ordinador per fer alguna cosa, un comunicat. 523 00:26:03,370 --> 00:26:04,680 >> Així que aquí hi ha una mostra simple. 524 00:26:04,680 --> 00:26:05,930 Say hello world. 525 00:26:05,930 --> 00:26:08,180 Una altra podria esperar un segon. 526 00:26:08,180 --> 00:26:10,840 Així que aquesta peça del trencaclosques, que és recolzat en Scratch, deixarem que el seu 527 00:26:10,840 --> 00:26:13,050 caràcters de pausa per alguns nombre de segons. 528 00:26:13,050 --> 00:26:15,330 Això, també, és només una declaració. 529 00:26:15,330 --> 00:26:18,640 >> Aquí al costat, tenim un altre més un interessant joc de so miau, i 530 00:26:18,640 --> 00:26:21,480 significa la petita fletxa que en Scratch, aquest és un menú desplegable. 531 00:26:21,480 --> 00:26:22,590 Així que vostè pot importar sons. 532 00:26:22,590 --> 00:26:25,095 Pot gravar sons i fer una altra coses divertides a zero. 533 00:26:25,095 --> 00:26:28,450 I això, també, però, al final i la fi, és només una declaració. 534 00:26:28,450 --> 00:26:31,250 Però ara anem a introduir una major peça interessant, el conegut com 535 00:26:31,250 --> 00:26:32,630 Expressió booleana. 536 00:26:32,630 --> 00:26:35,180 Capital B, el nom de un tipus anomenat Bool. 537 00:26:35,180 --> 00:26:39,500 >> I una expressió booleana és només un peça del trencaclosques o, més en general, una 538 00:26:39,500 --> 00:26:42,980 peça d'informació que és vertader o fals - 539 00:26:42,980 --> 00:26:45,830 un o zero, si o no. 540 00:26:45,830 --> 00:26:48,420 Així que és només un dels dos oposats. 541 00:26:48,420 --> 00:26:52,840 Així que una de tals expressió booleana al món d'esgarrapades sembla aquest blau 542 00:26:52,840 --> 00:26:53,560 tros del trencaclosques. 543 00:26:53,560 --> 00:26:56,735 I s'està fent una pregunta, ratolí cap avall, i que, o bé pot ser, de 544 00:26:56,735 --> 00:26:58,430 Per descomptat, veritable o fals. 545 00:26:58,430 --> 00:27:01,710 Així que amb aquesta peça de trencaclosques en el Scratch, així, vostè serà capaç de detectar si un 546 00:27:01,710 --> 00:27:05,490 trencaclosques si el ratolí és, de fet, estar celebrada per la interacció humana 547 00:27:05,490 --> 00:27:06,550 amb el seu programa. 548 00:27:06,550 --> 00:27:08,860 >> Aquest és una mica més abstracte, però aquests dos caixes blanques 549 00:27:08,860 --> 00:27:09,740 són només per als números. 550 00:27:09,740 --> 00:27:12,950 Així que vostè pot fer coses com aquesta és nombre menor que l'altre? 551 00:27:12,950 --> 00:27:16,180 I si és així, Scratch es comportarà d'una manera o altra. 552 00:27:16,180 --> 00:27:17,505 Aquest és una mica més gràfic. 553 00:27:17,505 --> 00:27:21,840 És si el sprite, si el gat, per exemple, es tocar realment el 554 00:27:21,840 --> 00:27:22,510 punter del ratolí. 555 00:27:22,510 --> 00:27:25,780 Així que si la petita punta de fletxa plana sobre el gat, llavors aquest 556 00:27:25,780 --> 00:27:28,030 peça del trencaclosques s'avaluarà com true. 557 00:27:28,030 --> 00:27:31,870 Serà veritat, en aquest cas, si utilitzar aquesta expressió booleana, com veurem 558 00:27:31,870 --> 00:27:36,340 veure en un moment, en una branca, pot o bé fer això, o vostè pot fer això, 559 00:27:36,340 --> 00:27:39,940 igual que vam tenir una condició que marcada, hi ha una última persona més 560 00:27:39,940 --> 00:27:40,460 a la sala? 561 00:27:40,460 --> 00:27:42,070 Si és així, afegiu una. 562 00:27:42,070 --> 00:27:44,430 En cas contrari, no et preocupis més. 563 00:27:44,430 --> 00:27:48,650 >> Per tant una expressió booleana pot ser també i-ed junts o o-ed junts. 564 00:27:48,650 --> 00:27:53,120 Així que vostè pot combinar expressions booleanes i dir això i això ha de ser cert per 565 00:27:53,120 --> 00:27:54,710 tot això per ser veritat. 566 00:27:54,710 --> 00:27:56,520 I aquí hi ha un exemple del món més real. 567 00:27:56,520 --> 00:28:00,060 Si ha utilitzat CS50 Cursos d'fer curs compres, aquestes caselles 568 00:28:00,060 --> 00:28:03,520 allà, on si es marca la casella següent als cursos, que dirà, sí, 569 00:28:03,520 --> 00:28:07,860 Només mostreu-me cursos pels quals el valor Q és 4.5 o superior. 570 00:28:07,860 --> 00:28:10,610 Si la desactiva, no, no ho fa preocupar-se per això. 571 00:28:10,610 --> 00:28:13,910 O igualment, a la dreta, no Conflicte amb cursos que estic prenent, 572 00:28:13,910 --> 00:28:15,650 això és vertader o fals. 573 00:28:15,650 --> 00:28:16,715 És només una expressió booleana. 574 00:28:16,715 --> 00:28:20,080 Així que tot aquest temps en què vostè ha utilitzat llocs web amb caselles de verificació, només són 575 00:28:20,080 --> 00:28:23,570 alternar l'equivalent d'un valor booleà expressió d'encesa i apagat. 576 00:28:23,570 --> 00:28:25,270 >> Així doncs, en quina forma utilitza aquests? 577 00:28:25,270 --> 00:28:28,820 Doncs bé, en Scratch, veurem en un moment que hi ha condicions que 578 00:28:28,820 --> 00:28:29,560 aquest aspecte. 579 00:28:29,560 --> 00:28:33,130 I això és una cosa sensata, perquè gran part com en pseudocodi, s'aplica sagnia 580 00:28:33,130 --> 00:28:38,550 el tipus de peces d'un trencaclosques en forma d'U, amb una mitjana que res dins d'aquesta U és 581 00:28:38,550 --> 00:28:41,390 va a executar, o no, depenent on està. 582 00:28:41,390 --> 00:28:45,310 Així que si l'expressió booleana, a continuació, el que hi ha dins es vulguin realitzar. 583 00:28:45,310 --> 00:28:46,800 >> Mentrestant, hi ha un bloc if / else. 584 00:28:46,800 --> 00:28:50,320 Així que si vols una branca que va això o tal manera, Scratch ens dóna això. 585 00:28:50,320 --> 00:28:54,500 I per aquesta lògica, ara, tot i que peça del trencaclosques és clarament massa petit 586 00:28:54,500 --> 00:28:57,400 per calçar una mica més dins d'ella, les peces del trencaclosques res, que estan 587 00:28:57,400 --> 00:28:58,150 només creixerà. 588 00:28:58,150 --> 00:29:01,370 En arrossegar i deixar anar sobre alguna cosa, només creixerà per adaptar al que 589 00:29:01,370 --> 00:29:02,510 és el que estàs tractant de fer. 590 00:29:02,510 --> 00:29:07,230 >> Així que podem tenir dues d'aquestes coses i fer una forquilla de tres vies de la carretera, així 591 00:29:07,230 --> 00:29:11,300 que no fa això, o allò, o aquesta altra cosa només per ells implantació 592 00:29:11,300 --> 00:29:12,070 d'aquesta manera. 593 00:29:12,070 --> 00:29:14,370 Per descomptat, si ho fa massa molt, comença a posar lleig. 594 00:29:14,370 --> 00:29:17,660 Però en aquest moment, en realitat estàs Probablement no es programa molt bé. 595 00:29:17,660 --> 00:29:20,490 Així que serà recurrent el tema, també, que d'estil. 596 00:29:20,490 --> 00:29:22,790 Què tan bé fer realitat formatar el codi? 597 00:29:22,790 --> 00:29:24,580 O què tan bé el disseny del seu codi? 598 00:29:24,580 --> 00:29:26,430 Però més sobre això en el futur. 599 00:29:26,430 --> 00:29:27,470 >> I ara tenim llaços. 600 00:29:27,470 --> 00:29:30,310 Hi ha un bonic llaç per sempre en zero el que significa, literalment, que - do 601 00:29:30,310 --> 00:29:32,710 el que hi ha dins d'aquest nou, i una altra, i una altra. 602 00:29:32,710 --> 00:29:35,880 Pot ser més concret i dir: fer el següent 10 vegades. 603 00:29:35,880 --> 00:29:37,620 També podeu utilitzar les variables. 604 00:29:37,620 --> 00:29:40,260 Vostè pot pujar amb qualsevol nom en aquest poc desplegable i dir, dóna'm un 605 00:29:40,260 --> 00:29:43,190 variable anomenada n i ajust és igual a algun valor. 606 00:29:43,190 --> 00:29:44,910 I llavors vostè pot tenir funcions. 607 00:29:44,910 --> 00:29:46,850 Però més sobre això en un moment. 608 00:29:46,850 --> 00:29:49,140 >> Deixa tornar al meu Raspe interfície. 609 00:29:49,140 --> 00:29:50,970 I m'ho dius a mi anar per davant en aquesta ocasió. 610 00:29:50,970 --> 00:29:56,660 I seguirem endavant i obrir, diguem, un exemple de - 611 00:29:56,660 --> 00:29:58,740 això és una mica més interessant. 612 00:29:58,740 --> 00:30:00,750 Déjame anar per davant, i, en realitat, Permetin-me fer jo mateix. 613 00:30:00,750 --> 00:30:01,960 No necessito obrir aquest. 614 00:30:01,960 --> 00:30:03,390 Déjame anar a Arxiu, Nou. 615 00:30:03,390 --> 00:30:04,740 Vaig a anar a esdeveniments. 616 00:30:04,740 --> 00:30:08,460 Me'n vaig a anar quan la bandera verda fet clic, i jo aniré a So. 617 00:30:08,460 --> 00:30:11,590 I jo vaig a arrossegar i deixar anar aquest peça del trencaclosques, el joc miau so. 618 00:30:11,590 --> 00:30:12,580 Es bloqueja junts. 619 00:30:12,580 --> 00:30:14,327 I ara, si faig clic a la bandera verda - 620 00:30:14,327 --> 00:30:16,260 >> [SO MEOW] 621 00:30:16,260 --> 00:30:17,500 >> DAVID Malan: Adorable. 622 00:30:17,500 --> 00:30:21,560 OK, així que ara farem alguna cosa una mica més lògic només per demostrar que 623 00:30:21,560 --> 00:30:22,760 podem, per ara. 624 00:30:22,760 --> 00:30:25,550 Vaig a desenganxar això d'aquest tipus. 625 00:30:25,550 --> 00:30:27,000 Vaig a anar a Control. 626 00:30:27,000 --> 00:30:28,770 I em vaig a prendre un estat. 627 00:30:28,770 --> 00:30:30,600 Així que si alguna cosa llavors. 628 00:30:30,600 --> 00:30:32,020 Així que això és el que es veu allà. 629 00:30:32,020 --> 00:30:33,890 Així que necessito una expressió booleana. 630 00:30:33,890 --> 00:30:38,130 I m'ho dius a mi seguir endavant i dir, m'ho dius a mi anar als operadors. 631 00:30:38,130 --> 00:30:40,270 Vaig a fer una cosa una mica Mathy, només per diversió. 632 00:30:40,270 --> 00:30:43,600 Vaig a entrar-hi i dir, si una cosa que és menys que una altra cosa, 633 00:30:43,600 --> 00:30:45,030 seguir endavant i fer alguna cosa. 634 00:30:45,030 --> 00:30:46,890 Així que ara, saps què, un bloc a l'atzar. 635 00:30:46,890 --> 00:30:51,620 Així explica com, si planen sobre aquesta cosa aquí, que s'ajustarà en aquest país. 636 00:30:51,620 --> 00:30:54,090 >> Ara, fixeu-vos, estic començant a fer alguna cosa ja més lògica 637 00:30:54,090 --> 00:30:54,650 interessant. 638 00:30:54,650 --> 00:30:59,720 Si un nombre aleatori entre 1 i 10 és menys de, diguem 06:00. 639 00:30:59,720 --> 00:31:03,670 Si trio sis, que, bàsicament, mitjans, feu el següent amb un 50% 640 00:31:03,670 --> 00:31:03,980 probabilitat. 641 00:31:03,980 --> 00:31:05,460 És com llançar una moneda. 642 00:31:05,460 --> 00:31:07,330 Ara, puc fer alguna cosa condicional. 643 00:31:07,330 --> 00:31:10,800 I aquesta cosa que vaig de fer és reproduir el so. 644 00:31:10,800 --> 00:31:14,280 Així que ara, quan faig clic a la pantalla bandera, és com tirar una moneda a l'aire. 645 00:31:14,280 --> 00:31:14,610 >> [SO MEOW] 646 00:31:14,610 --> 00:31:17,160 >> DAVID Malan: Va ser caps o el que sigui allà. 647 00:31:17,160 --> 00:31:17,920 Anem a fer-ho de nou. 648 00:31:17,920 --> 00:31:18,860 >> [SO MEOW] 649 00:31:18,860 --> 00:31:19,790 >> DAVID Malan: Caps de nou. 650 00:31:19,790 --> 00:31:20,280 >> [SO MEOW] 651 00:31:20,280 --> 00:31:21,500 >> DAVID Malan: Caps de nou. 652 00:31:21,500 --> 00:31:22,631 Ufff, OK. 653 00:31:22,631 --> 00:31:24,720 Tails aquest moment. 654 00:31:24,720 --> 00:31:29,545 Així que el 50% de les vegades, si ho fem infinitament llarg, anem a obtenir el 50% miols 655 00:31:29,545 --> 00:31:32,180 i 50% silencis. 656 00:31:32,180 --> 00:31:34,850 Així que, només un component bàsic bloc que ens permet fer això. 657 00:31:34,850 --> 00:31:37,710 Però això és una mica tediós que tinc per seguir fent clic en aquest botó. 658 00:31:37,710 --> 00:31:39,810 Així que només has de arrossegar i llençar tots els de distància. 659 00:31:39,810 --> 00:31:42,270 Si vostè els ha arrossegat a la meitat, que només va a eliminar a si mateixos. 660 00:31:42,270 --> 00:31:43,760 >> Déjame anar a controlar. 661 00:31:43,760 --> 00:31:46,060 Déjame anar a per sempre. 662 00:31:46,060 --> 00:31:49,952 I aquesta vegada, faré minorly una mica molest. 663 00:31:49,952 --> 00:31:51,560 >> [El] 664 00:31:51,560 --> 00:31:53,370 >> DAVID Malan: I em va deixar anar endavant i fer control. 665 00:31:53,370 --> 00:31:57,260 Esperi un segon, només per no és massa reixeta. 666 00:31:57,260 --> 00:31:59,870 >> [SO MEOW] 667 00:31:59,870 --> 00:32:00,970 >> DAVID Malan: Això no és natural. 668 00:32:00,970 --> 00:32:01,861 D'acord. 669 00:32:01,861 --> 00:32:04,510 >> [SO MEOW] 670 00:32:04,510 --> 00:32:06,406 >> DAVID Malan: I fixin-se el que, nice sobre Scratch, per a aquells de vostès que 671 00:32:06,406 --> 00:32:09,210 tenir experiència prèvia en programació, vostè no és necessari per iniciar i aturar. 672 00:32:09,210 --> 00:32:10,060 No és necessari per compilar. 673 00:32:10,060 --> 00:32:13,210 Vostè acaba de canviar, i el programa s'adaptarà dinàmicament. 674 00:32:13,210 --> 00:32:14,620 Així que això és cada vegada un poc interessant. 675 00:32:14,620 --> 00:32:16,930 Però anem un pas més enllà. 676 00:32:16,930 --> 00:32:19,760 Deixin-me seguir endavant i obtenir lliurar d'aquest programa. 677 00:32:19,760 --> 00:32:23,300 >> [SO MEOW] 678 00:32:23,300 --> 00:32:25,520 >> DAVID Malan: Això és el que anem a trucar a un error a zero. 679 00:32:25,520 --> 00:32:26,770 No hauria de seguir fent aquest so. 680 00:32:26,770 --> 00:32:28,340 Així que anem a dir-li que pari. 681 00:32:28,340 --> 00:32:30,435 Molt bé, així que ara estic va a entrar en - 682 00:32:30,435 --> 00:32:32,180 Et deixaré saber MIT. 683 00:32:32,180 --> 00:32:35,160 Anem a repassar aquí per sempre. 684 00:32:35,160 --> 00:32:37,240 I ara, vull fer alguna cosa una i altra vegada. 685 00:32:37,240 --> 00:32:38,760 Vaig a entrar en control. 686 00:32:38,760 --> 00:32:41,570 >> I anem a veure, vaig a arrossegar meva condició if allà. 687 00:32:41,570 --> 00:32:42,850 Així que ara compta de la lògica. 688 00:32:42,850 --> 00:32:46,430 Quan la bandera verda es fa clic, fer alguna cosa per sempre, sinó només fer-ho 689 00:32:46,430 --> 00:32:48,890 alguna cosa si aquesta altra cosa és certa. 690 00:32:48,890 --> 00:32:51,480 Vaig a anar, anem a per exemple, la detecció. 691 00:32:51,480 --> 00:32:54,430 I jo vaig a seguir endavant i triar tocar i deixar-lo allà. 692 00:32:54,430 --> 00:32:55,930 Aquesta és una expressió booleana. 693 00:32:55,930 --> 00:32:57,740 >> I ara, fixa't, en aquesta caiguda menú de sota, hi ha 694 00:32:57,740 --> 00:32:59,050 alguns valors predefinits. 695 00:32:59,050 --> 00:33:00,910 Així que puc dir que estàs tocant la vora de la pantalla? 696 00:33:00,910 --> 00:33:03,900 O estàs tocant el punter del ratolí, la fletxa a la pantalla? 697 00:33:03,900 --> 00:33:04,620 Així que vaig a fer això. 698 00:33:04,620 --> 00:33:08,770 I si és així, llavors jo vaig a anar endavant i jugar miau so. 699 00:33:08,770 --> 00:33:11,250 Així que ara tinc el tipus de inici d'un joc - 700 00:33:11,250 --> 00:33:13,110 un joc adorable. 701 00:33:13,110 --> 00:33:14,060 >> [SO MEOW] 702 00:33:14,060 --> 00:33:17,250 >> DAVID Malan: OK, un adorable, joc amb errors. 703 00:33:17,250 --> 00:33:20,770 Déjame esperar, diguem, un segon allà. 704 00:33:20,770 --> 00:33:24,910 Ara toca de nou, fent clic a la bandera verda. 705 00:33:24,910 --> 00:33:27,860 >> [SO MEOW] 706 00:33:27,860 --> 00:33:30,460 >> DAVID Malan: Així que ara és com acariciar a un gat. 707 00:33:30,460 --> 00:33:31,850 >> [SO MEOW] 708 00:33:31,850 --> 00:33:34,460 >> DAVID Malan: Molt bé, ara aquesta que jo vaig fer per avançat. 709 00:33:34,460 --> 00:33:39,250 Molt tard, es posa tipus de fàcil de fer coses estúpides. 710 00:33:39,250 --> 00:33:40,240 Així que permetin-me anar aquí. 711 00:33:40,240 --> 00:33:43,720 Diguem, que era la mascota del gat. 712 00:33:43,720 --> 00:33:46,600 Ara obrirem No acariciï el Gat. 713 00:33:46,600 --> 00:33:48,330 Ara, si juguem aquest, es pot endevinar, si ets 714 00:33:48,330 --> 00:33:49,650 mirant a la pantalla - 715 00:33:49,650 --> 00:33:51,090 >> [SO MEOW] 716 00:33:51,090 --> 00:33:52,170 >> DAVID Malan: Ara, si em acaricio el gat 717 00:33:52,170 --> 00:33:55,420 >> [Rugit del lleó] 718 00:33:55,420 --> 00:33:57,260 >> DAVID Malan: Així que en realitat no acariciar al gat en aquest cas. 719 00:33:57,260 --> 00:34:01,350 Així que ara només tenim un exemple d'un branca que va en dues direccions. 720 00:34:01,350 --> 00:34:03,130 Ara vaig a seguir endavant i obri un altre aquí. 721 00:34:03,130 --> 00:34:07,120 Aquest, també, entre la nostra font arxius de codi per al dia. 722 00:34:07,120 --> 00:34:13,199 Així que em torno al meu Font directori i entrar, anem a triar 723 00:34:13,199 --> 00:34:15,610 aquest noi aquí i vegi el que és diferent. 724 00:34:15,610 --> 00:34:17,449 >> Wow, està bé, de manera que ara s'està fent una mica més complex. 725 00:34:17,449 --> 00:34:21,300 I abans que vegem el que fa aquest tipus, Tractarem d'inferir, a partir del programa 726 00:34:21,300 --> 00:34:22,219 al costat dret. 727 00:34:22,219 --> 00:34:25,590 I ara zero permet clarament ens tenir diversos guions, múltiples 728 00:34:25,590 --> 00:34:29,730 programes associats a un follet, amb un personatge i, segons sembla, 729 00:34:29,730 --> 00:34:31,760 tots dos estan anant a córrer al mateix ritme. 730 00:34:31,760 --> 00:34:35,570 A causa d'aquests dos programes s'inicia quan fa clic amb el verd de la bandera, és 731 00:34:35,570 --> 00:34:38,650 fent al · lusió a un tema més avançat, amb que alguns de vostès podrien estar familiaritzats, 732 00:34:38,650 --> 00:34:40,580 conegut com roscat, o multi-threading. 733 00:34:40,580 --> 00:34:44,400 >> Resulta que el conte llarg, ordinadors avui pot fer essencialment múltiple 734 00:34:44,400 --> 00:34:45,270 coses alhora. 735 00:34:45,270 --> 00:34:48,659 O poden fer una cosa alhora per ràpid que no t'adones que 736 00:34:48,659 --> 00:34:50,150 en realitat està fent una cosa alhora. 737 00:34:50,150 --> 00:34:53,320 Però per ara, anem a suposar que tots dos aquests programes es van a executar en el 738 00:34:53,320 --> 00:34:54,310 al mateix temps. 739 00:34:54,310 --> 00:34:57,350 I fixin-se, tots dos tenen sempre trencaclosques peces. 740 00:34:57,350 --> 00:35:01,270 Així que estan tant seguirà funcionant fins que vaig arribar al senyal de stop de color vermell. 741 00:35:01,270 --> 00:35:02,100 >> Llavors, què van a fer? 742 00:35:02,100 --> 00:35:06,030 Pel costat de la mà esquerra, jo sóc pel que sembla es declara una variable anomenada silenciada. 743 00:35:06,030 --> 00:35:09,030 Així que no em dic una cosa així com avorrit com N. vaig trucar silenciat aquest 744 00:35:09,030 --> 00:35:10,240 temps per transmetre significat. 745 00:35:10,240 --> 00:35:11,780 Em vaig posar igual a zero. 746 00:35:11,780 --> 00:35:16,200 Pensem en això com False, o pensarem en això com Fals. 747 00:35:16,200 --> 00:35:17,490 >> Ara, per sempre fer el següent. 748 00:35:17,490 --> 00:35:23,280 Si es prem la barra d'espai del teclat, a continuació, si és igual a zero silenciat, 749 00:35:23,280 --> 00:35:25,930 a continuació, canviar silenciat a la igualtat d'una. 750 00:35:25,930 --> 00:35:27,580 Si no, establir silenciat a zero. 751 00:35:27,580 --> 00:35:30,530 Així que, lògicament, tot i que és un tot munt de peces d'un trencaclosques que hi ha 752 00:35:30,530 --> 00:35:33,160 Només dic, quan em va colpejar la barra d'espai, Què he de fer per a la variable 753 00:35:33,160 --> 00:35:34,750 anomenada silenciat? 754 00:35:34,750 --> 00:35:37,170 Canviar d'un a zero, o de zero a un. 755 00:35:37,170 --> 00:35:37,840 Això és tot. 756 00:35:37,840 --> 00:35:40,740 Així que és com encendre un interruptor de llum dins o fora i recordar, amb una 757 00:35:40,740 --> 00:35:42,330 variable, ho he fet. 758 00:35:42,330 --> 00:35:45,990 >> Mentrestant, al costat dret, a termes senzills, quin és el propòsit de 759 00:35:45,990 --> 00:35:47,547 el guió de la dreta? 760 00:35:47,547 --> 00:35:48,860 >> ESTUDIANT: Per reproduir el so de llops marins. 761 00:35:48,860 --> 00:35:52,500 >> DAVID Malan: Per reproduir el so del lleó de mar, si no està en silenci, per 762 00:35:52,500 --> 00:35:53,480 naturalesa d'aquesta variable. 763 00:35:53,480 --> 00:35:57,360 Així que estem compartint estat, per dir-ho, compartir informació a través d'aquests dos 764 00:35:57,360 --> 00:36:00,540 guions, perquè, fixeu-vos aquí, estem sempre fent el següent. 765 00:36:00,540 --> 00:36:04,620 Si silencia és zero, pel que si no és silenciat - si silencia és fals, llavors el joc 766 00:36:04,620 --> 00:36:05,980 aquest so del lleó de mar. 767 00:36:05,980 --> 00:36:09,930 I pensa a si mateix, hi, hi, hi, per de dos segons, esperi un moment i, a continuació, 768 00:36:09,930 --> 00:36:11,140 pots tornar a intentar-ho. 769 00:36:11,140 --> 00:36:15,150 Així que si ens anem ara per aquí a l'esquerra, d'on és aquest tipus, i premi el 770 00:36:15,150 --> 00:36:16,662 bandera verda, 771 00:36:16,662 --> 00:36:30,260 >> [LLEÓ DE MAR DE SO] 772 00:36:30,260 --> 00:36:31,910 >> DAVID Malan: En quin moment això aconsegueix realment molest? 773 00:36:31,910 --> 00:36:33,440 Com que aquest s'acaba d'anar per sempre. 774 00:36:33,440 --> 00:36:36,490 Així que a vegades, bucles infinits, per així dir-ho, són deliberada. 775 00:36:36,490 --> 00:36:41,140 Però en aquest cas, tan aviat com Prem la barra d'espai, s'atura. 776 00:36:41,140 --> 00:36:42,800 Ara, el programa no ha deixat. 777 00:36:42,800 --> 00:36:44,760 Està encara en marxa en aquests bucles. 778 00:36:44,760 --> 00:36:46,540 Però si tinc la barra espaiadora una vegada més - 779 00:36:46,540 --> 00:36:47,851 >> [LLEÓ DE MAR DE SO] 780 00:36:47,851 --> 00:36:49,650 >> DAVID Malan: Ell va a recollir fins on ho havia deixat. 781 00:36:49,650 --> 00:36:53,240 Així que hi ha una manera perquè fem alguna cosa una i altra vegada, però, que 782 00:36:53,240 --> 00:36:54,920 temps, només condicionalment. 783 00:36:54,920 --> 00:36:58,940 Bé, ja que estem en aquesta línia de fer coses una i altra vegada, em van deixar 784 00:36:58,940 --> 00:37:01,370 anar a un altre exemple aquí. 785 00:37:01,370 --> 00:37:04,370 Aquest anomenarem comptar ovelles. 786 00:37:04,370 --> 00:37:05,710 >> I noti el que fa aquest tipus. 787 00:37:05,710 --> 00:37:08,540 En realitat és una mica més com el pseudocodi juguem amb el 788 00:37:08,540 --> 00:37:12,230 Dimecres, mitjançant la qual s'estableixen algunes taulell, pensar-hi és com nord de nou, per 789 00:37:12,230 --> 00:37:14,030 zero, que sempre fa el següent. 790 00:37:14,030 --> 00:37:17,960 Ell diu que el valor del comptador durant un segon, espera un segon, i després 791 00:37:17,960 --> 00:37:19,430 canvia el comptador en un. 792 00:37:19,430 --> 00:37:21,570 I en aquest context, que només vol dir que l'esperona. 793 00:37:21,570 --> 00:37:23,250 Així que un s'agrega a ell. 794 00:37:23,250 --> 00:37:25,830 Així que això és literalment - 795 00:37:25,830 --> 00:37:27,890 no és exactament el que pensem de com comptar ovelles. 796 00:37:27,890 --> 00:37:33,120 És l'ovella fent el recompte, sempre, a partir de zero. 797 00:37:33,120 --> 00:37:35,560 >> Pel que podem fer coses similars allà, lògicament. 798 00:37:35,560 --> 00:37:37,750 Però ara anem a tractar de netejar algunes d'aquestes coses. 799 00:37:37,750 --> 00:37:43,440 Déjame anar endavant ara en un simple exemple, quan el nostre gat és només va a 800 00:37:43,440 --> 00:37:44,750 comença a tossir. 801 00:37:44,750 --> 00:37:48,830 Molt bé, així que aquí tenim tos 0 - 802 00:37:48,830 --> 00:37:50,685 els informàtics comencen comptant des de 0. 803 00:37:50,685 --> 00:37:53,480 Així que aquest gat és només va a tossir tres vegades. 804 00:37:53,480 --> 00:37:54,890 I així és com he implementat això. 805 00:37:54,890 --> 00:38:00,130 Quan la bandera verda es fa clic, tos, espera, tossir, espera, tossir, espera. 806 00:38:00,130 --> 00:38:02,470 I ho vaig fer només arrossega i deixar anar les peces del trencaclosques. 807 00:38:02,470 --> 00:38:04,740 O si vostè comença a jugar amb Scratch, veuràs que en realitat es pot 808 00:38:04,740 --> 00:38:08,620 duplicar peces de manera que vostè pot fer les coses amb més rapidesa sense arrossegar 809 00:38:08,620 --> 00:38:10,310 i caient fins a la sacietat. 810 00:38:10,310 --> 00:38:12,680 >> Però no estem en el millor camí aquí. 811 00:38:12,680 --> 00:38:15,210 Perquè ¿com ho faig ments per quarta vegada? 812 00:38:15,210 --> 00:38:16,790 Bé, podria ordenar de baixar aquí. 813 00:38:16,790 --> 00:38:19,420 Podria duplicar i després enganxa aquest aquí. 814 00:38:19,420 --> 00:38:21,740 Com li faig tossir cinquena vegada? 815 00:38:21,740 --> 00:38:23,230 Bé, copieu i enganxeu altra vegada. 816 00:38:23,230 --> 00:38:24,210 O arrossegar deixar anar de nou. 817 00:38:24,210 --> 00:38:26,920 I molt aviat, aquest programa s'inicia aconseguir molt, molt redundant, 818 00:38:26,920 --> 00:38:28,880 molt llarg, però molt interessant. 819 00:38:28,880 --> 00:38:30,120 Però hi ha una manera de netejar això. 820 00:38:30,120 --> 00:38:33,680 Quina és la manera òbvia a netejar això? 821 00:38:33,680 --> 00:38:36,280 >> OK, així que podríem anar realment fora i, quan arribi l'espai 822 00:38:36,280 --> 00:38:37,070 bar, demani-li que faci ombra. 823 00:38:37,070 --> 00:38:40,150 Però si jo només vull fer alguna cosa repetitiva, recordar que nosaltres tenim 824 00:38:40,150 --> 00:38:41,310 cert control construeix. 825 00:38:41,310 --> 00:38:43,800 Permetin-me que passi això de la Així, anar sota control. 826 00:38:43,800 --> 00:38:47,340 Permetin-me fer una repetició, per exemple, tres vegades. 827 00:38:47,340 --> 00:38:49,410 I ara anem a robar una mica de d'aquestes peces del trencaclosques. 828 00:38:49,410 --> 00:38:50,980 Permetin-me trenco això aquí. 829 00:38:50,980 --> 00:38:52,400 Déjame llançar aquestes lluny per complet. 830 00:38:52,400 --> 00:38:55,400 >> I ara tinc una millor programa dissenyat. 831 00:38:55,400 --> 00:38:55,920 Per què? 832 00:38:55,920 --> 00:39:00,540 Si vull canviar el nombre de vegades Aquest gat tus, tot el que han de 833 00:39:00,540 --> 00:39:05,640 fer és canviar una variable o un valor, en lloc de tres, o quatre, o 834 00:39:05,640 --> 00:39:06,700 05:00, o sis. 835 00:39:06,700 --> 00:39:09,060 O podria fer alguna cosa condicional, fins i tot, amb l'espai 836 00:39:09,060 --> 00:39:10,320 bar si volia. 837 00:39:10,320 --> 00:39:11,780 >> Així que aquest és un principi general. 838 00:39:11,780 --> 00:39:14,950 Una vegada que comença a copiar i enganxar el codi, ja sigui en Scratch, oa 839 00:39:14,950 --> 00:39:18,340 C, que està fent una cosa malament, el més probable. 840 00:39:18,340 --> 00:39:21,950 O almenys, un cop superat alguna un nombre raonable de còpies i 841 00:39:21,950 --> 00:39:24,610 pastes, probablement fent alguna cosa malament. 842 00:39:24,610 --> 00:39:26,740 >> Però saps què? 843 00:39:26,740 --> 00:39:27,590 No m'agrada molt això. 844 00:39:27,590 --> 00:39:28,980 Aquest no és el disseny més net. 845 00:39:28,980 --> 00:39:32,860 M'agradaria que hi hagués una peça del trencaclosques anomenat ments, perquè llavors no ho faria 846 00:39:32,860 --> 00:39:36,100 d'aplicar això a mi mateix, a la manera antiga, per 847 00:39:36,100 --> 00:39:38,220 havent dir i esperar - 848 00:39:38,220 --> 00:39:40,320 I si no eren més que una peça del trencaclosques per a la tos. 849 00:39:40,320 --> 00:39:41,330 >> Bé, jo puc fer realitat això. 850 00:39:41,330 --> 00:39:45,010 Déjame anar sota més blocs, feu clic a Fer un bloc, i ara em surt aquest 851 00:39:45,010 --> 00:39:45,610 aquí finestra. 852 00:39:45,610 --> 00:39:47,540 Vaig a trucar a aquesta cosa tos. 853 00:39:47,540 --> 00:39:49,400 Vaig a seguir endavant i feu clic a D'acord. 854 00:39:49,400 --> 00:39:53,150 I ara fixeu-vos, em surt una nova partida peça que està corbat a la part superior. 855 00:39:53,150 --> 00:39:56,590 ¿I què faré amb això, estic va a robar només aquests blocs. 856 00:39:56,590 --> 00:39:57,800 Vaig a posar aquí. 857 00:39:57,800 --> 00:40:00,490 >> I ara, amb aquestes tres peces, no tinc implementat el que vaig a trucar a un 858 00:40:00,490 --> 00:40:03,530 funció, o un procediment, o alguns és possible que el coneixen com un mètode. 859 00:40:03,530 --> 00:40:05,050 Les petites diferències entre les paraules. 860 00:40:05,050 --> 00:40:06,950 Però per ara, anem a cridar a aquesta funció. 861 00:40:06,950 --> 00:40:08,750 Això és només una nova peça del trencaclosques. 862 00:40:08,750 --> 00:40:11,000 Ara es porta a terme d'aquesta manera. 863 00:40:11,000 --> 00:40:15,170 >> Però noti que zero ens ha donat un representació física que tota 864 00:40:15,170 --> 00:40:16,570 bloquejar per aquí. 865 00:40:16,570 --> 00:40:21,930 Així que ara, puc arrossegar això aquí, dir, repeteix tres vegades, i 866 00:40:21,930 --> 00:40:26,420 Què passarà ara, quan joc aquest script, és només un programa 867 00:40:26,420 --> 00:40:27,500 s'està executant en un moment. 868 00:40:27,500 --> 00:40:29,880 Només hi ha un quan bandera verda clic. 869 00:40:29,880 --> 00:40:34,010 Però aquest bloc de color porpra és cridada tos dient efectivament Scratch, cada 870 00:40:34,010 --> 00:40:38,160 vegada que vegi a aquest tros del trencaclosques, en realitat executar aquests passos que jo 871 00:40:38,160 --> 00:40:40,420 passar a aplicar manualment. 872 00:40:40,420 --> 00:40:41,410 >> Així que això és molt guai. 873 00:40:41,410 --> 00:40:44,650 Però ara, suposo que em vaig decidir, no ho sé vull aquest gat només per tossir. 874 00:40:44,650 --> 00:40:46,660 Vull que ell sigui capaç esternudar també. 875 00:40:46,660 --> 00:40:48,905 Bé, com podem anar sobre implementació d'esternut? 876 00:40:48,905 --> 00:40:51,310 Bé, jo podria molt bé fer el mateix. 877 00:40:51,310 --> 00:40:52,690 Podria fer un altre bloc. 878 00:40:52,690 --> 00:40:55,940 Podria anomenar aquest esternut, feu clic a D'acord. 879 00:40:55,940 --> 00:40:59,250 >> Llavors, aquí el que vaig poder en realitat haver, deixa duplicar aquest - 880 00:40:59,250 --> 00:41:02,850 i allà és on vostè ha de sentir com probablement no estàs fent alguna cosa en 881 00:41:02,850 --> 00:41:03,780 la millor manera. 882 00:41:03,780 --> 00:41:06,670 Podria dir alguna cosa així com: achoo, durant un segon. 883 00:41:06,670 --> 00:41:07,440 Espereu un segon. 884 00:41:07,440 --> 00:41:08,715 Ara tinc un nou bloc anomenat esternut. 885 00:41:08,715 --> 00:41:10,210 I, de fet, no ho és. 886 00:41:10,210 --> 00:41:14,010 >> Però això, també, ha de començar a sentir - potser no sigui la primera setmana de classes, però 887 00:41:14,010 --> 00:41:15,730 pel segon - només una mica redundant. 888 00:41:15,730 --> 00:41:17,800 És evident que hi ha una mica de redundància aquí. 889 00:41:17,800 --> 00:41:22,090 Així que em proposo, en canvi, que perfeccionar aquesta definició de la següent manera. 890 00:41:22,090 --> 00:41:24,820 >> Deixa anar al meu menú arxiu. 891 00:41:24,820 --> 00:41:26,090 Jo no vaig a guardar aquesta versió. 892 00:41:26,090 --> 00:41:29,080 Vaig a anar a un els meus arxius prefabricats aquí. 893 00:41:29,080 --> 00:41:31,190 I seguiré endavant i obrir la tos 2. 894 00:41:31,190 --> 00:41:32,220 Vaja que era tos 2. 895 00:41:32,220 --> 00:41:36,900 Deixin-me seguir endavant i obrir la tos 3, aquest és el directori d'origen. 896 00:41:36,900 --> 00:41:42,450 Tos 3 i noti - oh, jo vaig dir la història en l'ordre equivocat. 897 00:41:42,450 --> 00:41:45,030 Déjame recuperar d'aquesta història. 898 00:41:45,030 --> 00:41:48,990 >> La història que volia explicar extrems amb tos 4 - 899 00:41:48,990 --> 00:41:50,270 aquí està. 900 00:41:50,270 --> 00:41:54,380 I què si, en canvi, definir una peça del trencaclosques gran anomenada 901 00:41:54,380 --> 00:41:57,250 definir, per exemple la paraula n vegades. 902 00:41:57,250 --> 00:41:59,930 Esternudar és, segons sembla, en Scratch, achoo. 903 00:41:59,930 --> 00:42:01,680 Així ho expressem com una paraula, perquè aquesta és la 904 00:42:01,680 --> 00:42:02,750 restricció del programa. 905 00:42:02,750 --> 00:42:07,860 I la tos és [S], però la tos, C-O-O-G-H. Així que això és només dos 906 00:42:07,860 --> 00:42:10,820 paraules diferents fent, essencialment, la mateixa cosa. 907 00:42:10,820 --> 00:42:12,820 >> Així que realment pot fer un nou bloc com aquest. 908 00:42:12,820 --> 00:42:14,220 Jo no utilitzar aquesta opció de menú anterior. 909 00:42:14,220 --> 00:42:16,960 No obstant això, en fer clic a Make Block, vostè pot triar algunes opcions. 910 00:42:16,960 --> 00:42:20,900 I es pot dir que aquest bloc realitat té alguns insums, en cas contrari 911 00:42:20,900 --> 00:42:24,710 conegut com a arguments o paràmetres, per la qual cosa que pot modificar el comportament dels 912 00:42:24,710 --> 00:42:25,520 seva bloc. 913 00:42:25,520 --> 00:42:28,780 >> Així que el que vaig fer fa un moment estava Vaig trucar a aquest bloc de Say. 914 00:42:28,780 --> 00:42:30,880 I llavors em vaig dir, pren una entrada de cadena. 915 00:42:30,880 --> 00:42:32,810 I ara compte, per defecte, diu string 1. 916 00:42:32,810 --> 00:42:35,440 Una cadena és tan sols una paraula, o un frase, per als nostres propòsits. 917 00:42:35,440 --> 00:42:37,810 Però jo només vaig a posar una mica de text de marcador de posició allà, igual que en un 918 00:42:37,810 --> 00:42:40,620 lloc web, quan veus nom d'usuari, o contrasenya, i després desapareix quan 919 00:42:40,620 --> 00:42:41,550 de començar a escriure. 920 00:42:41,550 --> 00:42:42,720 Això és tot el que és. 921 00:42:42,720 --> 00:42:44,590 >> I ara em vaig a afegir una entrada de nombre. 922 00:42:44,590 --> 00:42:47,180 I jo vaig a trucar a aquest n - però això és bastant arbitrària. 923 00:42:47,180 --> 00:42:49,510 I a continuació, només una etiqueta, només per fer aquest bloc una mica més de si 924 00:42:49,510 --> 00:42:50,570 explicativa - 925 00:42:50,570 --> 00:42:53,010 vegades, això és el que acabo de fer. 926 00:42:53,010 --> 00:42:56,540 I el resultat final és que em surt un bloc que s'assembla a això. 927 00:42:56,540 --> 00:42:58,880 >> I ara m'adono, estic fent servir un bloc de repetició. 928 00:42:58,880 --> 00:43:03,480 Però en lloc de difícil codificació de tres, jo sóc arrossegar i deixar anar n en allà, així que 929 00:43:03,480 --> 00:43:05,530 pot parametritzar la funció. 930 00:43:05,530 --> 00:43:08,590 Puc fer aquesta funció faci alguna cosa un nombre diferent de vegades sobre la base de 931 00:43:08,590 --> 00:43:09,410 aquest valor. 932 00:43:09,410 --> 00:43:14,270 >> I es va adonar, per exemple, això és el que vaig aquí, si em arrossego paraula, puc dir que no és un 933 00:43:14,270 --> 00:43:17,860 paraula codificada dur, però el que sigui es passa en un segon. 934 00:43:17,860 --> 00:43:20,200 Mentrestant, com puc tornar a implementar tos? 935 00:43:20,200 --> 00:43:26,980 En canvi jo defineixo com la tos dient ments n vegades. 936 00:43:26,980 --> 00:43:30,480 >> Així que en resum, estic passant per això ràpidament, però la idea bàsica és tan aviat 937 00:43:30,480 --> 00:43:32,750 ja es comencen a veure al programa que, espera un minut, el que he fet 938 00:43:32,750 --> 00:43:36,610 una cosa semblant a això abans, Jo puc factoritzar alguns comuns 939 00:43:36,610 --> 00:43:37,090 funcionalitat? 940 00:43:37,090 --> 00:43:41,090 Puc descompondre el que estic fent en algunes idees bàsiques? 941 00:43:41,090 --> 00:43:42,070 Això és el que estem fent aquí. 942 00:43:42,070 --> 00:43:44,830 I he apilats aquestes coses, visualment, a la part superior d'un a l'altre 943 00:43:44,830 --> 00:43:47,710 perquè és testimoni de la idea de començant amb el binari, va a ASCII, 944 00:43:47,710 --> 00:43:51,530 fent programes gràfics, tipus de capes les idees cada vegada més complexes en 945 00:43:51,530 --> 00:43:52,570 un sobre l'altre. 946 00:43:52,570 --> 00:43:53,730 >> La mateixa idea aquí. 947 00:43:53,730 --> 00:43:56,870 Vaig començar des de zero, la implementació de ments, a continuació, tos adonat és 948 00:43:56,870 --> 00:43:58,540 realment dir alguna cosa. 949 00:43:58,540 --> 00:44:01,630 Així que permetin lloc implementar la idea de dir alguna cosa. 950 00:44:01,630 --> 00:44:05,200 I a sobre d'això, puc aplicar achoo o tos? 951 00:44:05,200 --> 00:44:07,990 I podríem fer més, com variants fixes. 952 00:44:07,990 --> 00:44:10,400 >> Així que d'aquest principi bàsic, podem començar a fer 953 00:44:10,400 --> 00:44:12,180 cada vegada més complexos programes. 954 00:44:12,180 --> 00:44:14,100 Permetin-me obro aquest. 955 00:44:14,100 --> 00:44:18,020 De fet, podem tenir múltiples sprites interactuar a la pantalla alhora. 956 00:44:18,020 --> 00:44:23,470 Si vaig al meu directori d'origen i agafar un anomenat Temes, recordar que una 957 00:44:23,470 --> 00:44:26,920 fil és realment la capacitat de dues seqüències d'ordres per executar costat a 958 00:44:26,920 --> 00:44:28,350 costat al mateix temps. 959 00:44:28,350 --> 00:44:34,490 >> Observeu ara, tenen tant un sprite d'aus i un sprite gat, dos dels quals tenen 960 00:44:34,490 --> 00:44:35,270 seus propis guions. 961 00:44:35,270 --> 00:44:37,690 Així avís, quan faig clic al gat, tinc aquests scripts. 962 00:44:37,690 --> 00:44:39,830 Quan faig clic sobre l'ocell, Tinc aquests scripts. 963 00:44:39,830 --> 00:44:42,070 Així que cada un d'aquests tipus té seus propis programes. 964 00:44:42,070 --> 00:44:46,680 Quan ara faig clic a la bandera verda, noto que el que fa el programa és 965 00:44:46,680 --> 00:44:54,090 tenir el gat, molt poc a poc, perseguir les aus. 966 00:44:54,090 --> 00:44:57,120 Però el gat té l'avantatge de tenir estat programat de tal manera 967 00:44:57,120 --> 00:45:00,540 que no importa on l'au és que el gat va cap a ell. 968 00:45:00,540 --> 00:45:02,150 >> Podem jugar a aquest joc molt més ràpid. 969 00:45:02,150 --> 00:45:07,750 Així que si estic en el gat, noto que estic usant, diguem que moure una escala. 970 00:45:07,750 --> 00:45:11,680 Haurem de es mogui cinc passos a alhora, així cinc punts alhora. 971 00:45:11,680 --> 00:45:13,580 Permetin-me feu clic a Reproduir. 972 00:45:13,580 --> 00:45:14,490 >> [Rugit del lleó] 973 00:45:14,490 --> 00:45:17,170 >> DAVID Malan: Molt bé, ara podem realment donar al gat l'avantatge. 974 00:45:17,170 --> 00:45:18,600 10 passos alhora. 975 00:45:18,600 --> 00:45:20,120 >> [Rugit del lleó] 976 00:45:20,120 --> 00:45:22,770 >> DAVID Malan: Molt bé, molt ràpid, es posa una mica d'avantatge 977 00:45:22,770 --> 00:45:23,280 per al gat. 978 00:45:23,280 --> 00:45:25,310 Però em sacsejo la mà a alguns dels detalls. 979 00:45:25,310 --> 00:45:28,240 Però la raó que aquest camí és de partida una mica diferent cada vegada 980 00:45:28,240 --> 00:45:29,700 és que estic fent una mica d'aleatorietat. 981 00:45:29,700 --> 00:45:33,700 En realitat estic assenyalant al gat en una direcció diferent basa en on 982 00:45:33,700 --> 00:45:38,710 vol que comenci pel que cada vegada el joc, o l'animació, és un 983 00:45:38,710 --> 00:45:39,760 mica diferent. 984 00:45:39,760 --> 00:45:41,950 >> Ara, permetin-me presentar a un altra construcció aquí. 985 00:45:41,950 --> 00:45:43,860 Així que en aquest cas, vam tenir funcions. 986 00:45:43,860 --> 00:45:46,950 Hi ha també serà una peça del trencaclosques conegut com una matriu o una llista, 987 00:45:46,950 --> 00:45:50,980 que li permet emmagatzemar múltiples valors dins d'una variable. 988 00:45:50,980 --> 00:45:53,410 Vam veure temes, i ara té esdeveniments. 989 00:45:53,410 --> 00:45:56,330 >> Així que aquest és un esdeveniment mitjançant aquests dos nois aquí. 990 00:45:56,330 --> 00:46:02,490 I si obro l'arxiu anomenat Esdeveniments a partir d'exemples de l'actualitat, ho farem 991 00:46:02,490 --> 00:46:06,940 veure un programa que es veu una mica com això. 992 00:46:06,940 --> 00:46:09,630 I ara compte aquest tipus - 993 00:46:09,630 --> 00:46:11,620 per adonar-se que tinc el blau Muppet clic - 994 00:46:11,620 --> 00:46:12,990 que només fa el següent. 995 00:46:12,990 --> 00:46:15,540 No té un dels peces del trencaclosques bandera verda. 996 00:46:15,540 --> 00:46:18,620 Ell té una quan rebo esdeveniment - 997 00:46:18,620 --> 00:46:19,970 així que una paraula arbitrària. 998 00:46:19,970 --> 00:46:21,590 M'acaba d'escriure a terme esdeveniments allà - 999 00:46:21,590 --> 00:46:23,740 que dirà, Pol, durant dos segons. 1000 00:46:23,740 --> 00:46:25,800 >> Així que aquells de vostès que estan familiaritzats amb aquest joc podria saber 1001 00:46:25,800 --> 00:46:26,460 on va això. 1002 00:46:26,460 --> 00:46:29,800 Si ara faig clic al Muppet taronja, seu programa fa això. 1003 00:46:29,800 --> 00:46:35,020 Sempre, si la barra d'espai del teclat suprimida, ell dirà, Marc, 1004 00:46:35,020 --> 00:46:36,580 durant dos segons a la pantalla. 1005 00:46:36,580 --> 00:46:39,590 Però també va a utilitzar aquest columbòfil bloquejar conegut com difusió. 1006 00:46:39,590 --> 00:46:42,270 Ell va a emetre cita fi de la cita, "event". 1007 00:46:42,270 --> 00:46:47,540 >> Mentrestant, l'home blau, recordo, és escoltar entre cometes, "event". 1008 00:46:47,540 --> 00:46:50,760 Així que d'alguna manera, ara, podem tenir 2 sprites interactuar. 1009 00:46:50,760 --> 00:46:53,790 I quan arribem a la programació web, més tard en el terme, com aquesta 1010 00:46:53,790 --> 00:46:58,320 avantatjós tenir el seu lloc web fer alguna cosa en resposta a, per 1011 00:46:58,320 --> 00:47:00,130 exemple, un clic del teclat. 1012 00:47:00,130 --> 00:47:02,120 >> Així que permetin-me anar endavant i prémer la barra espaiadora. 1013 00:47:02,120 --> 00:47:04,020 Taronja tipus diu Marc. 1014 00:47:04,020 --> 00:47:05,840 Blau tipus diu Pol. 1015 00:47:05,840 --> 00:47:10,780 Si ho faig noi nou de taronja diu Marc, individu blau diu pol. 1016 00:47:10,780 --> 00:47:14,130 Així que anem a fer un pas més enllà. 1017 00:47:14,130 --> 00:47:18,790 Aquesta vegada, anirem, probablement, només uns pocs minuts més aquí. 1018 00:47:18,790 --> 00:47:19,904 Tenim - 1019 00:47:19,904 --> 00:47:22,380 llum d'escriptori, anem cap avall. 1020 00:47:22,380 --> 00:47:24,500 Estàs just al final. 1021 00:47:24,500 --> 00:47:25,740 Acceptar, pot tant pujar. 1022 00:47:25,740 --> 00:47:26,990 Tenim els llums d'escriptori per a tots. 1023 00:47:26,990 --> 00:47:28,360 Anem. 1024 00:47:28,360 --> 00:47:30,090 No sé si podem mantenir aquest gag ridícul fins 1025 00:47:30,090 --> 00:47:32,035 durant tot el semestre, però. 1026 00:47:32,035 --> 00:47:33,530 Bé, anem cap avall. 1027 00:47:33,530 --> 00:47:40,260 >> I mentrestant, tenim la seguint els exemples per tirar cap amunt, només per 1028 00:47:40,260 --> 00:47:45,370 accelerar les coses ara, de tal manera que ens tenir una manifestació d'un altre 1029 00:47:45,370 --> 00:47:48,360 predecessor seu utilitzant el mateixos blocs bàsics de construcció. 1030 00:47:48,360 --> 00:47:48,975 Com et dius? 1031 00:47:48,975 --> 00:47:49,240 >> JOHN: John. 1032 00:47:49,240 --> 00:47:49,770 >> DAVID Malan: John. 1033 00:47:49,770 --> 00:47:50,400 Agradable per a mi. 1034 00:47:50,400 --> 00:47:50,650 ¿I? 1035 00:47:50,650 --> 00:47:51,250 >> Setz: Setz. 1036 00:47:51,250 --> 00:47:53,130 >> DAVID Malan: Setz, amable amb mi vostè. 1037 00:47:53,130 --> 00:47:54,820 John, si vols venir dalt primer, aquest és un vell 1038 00:47:54,820 --> 00:47:55,910 joc de l'escola anomenat Frogger. 1039 00:47:55,910 --> 00:47:57,530 El teclat s'utilitza per això també. 1040 00:47:57,530 --> 00:48:02,425 I l'objectiu és arribar a l'altre costat carrer i l'aigua. 1041 00:48:02,425 --> 00:48:12,700 >> [MUSIC Frogger I JOCS SO] 1042 00:48:12,700 --> 00:48:14,970 >> DAVID Malan: Ho sento, no llum d'escriptori d'avui. 1043 00:48:14,970 --> 00:48:19,110 D'acord, Setz, oi agradaria entrar en un màxim? 1044 00:48:19,110 --> 00:48:20,890 Molt bé, ho farem de nou. 1045 00:48:20,890 --> 00:48:21,430 >> Setz: Faig servir les fletxes? 1046 00:48:21,430 --> 00:48:22,360 >> DAVID Malan: Només les tecles de fletxa. 1047 00:48:22,360 --> 00:48:23,624 A dalt, baix, esquerra, dreta. 1048 00:48:23,624 --> 00:48:35,700 >> [MUSIC Frogger I JOCS SO] 1049 00:48:35,700 --> 00:48:37,880 >> DAVID Malan: Els anomenarem accèssits avui, 1050 00:48:37,880 --> 00:48:38,950 llavors, molt ben fet. 1051 00:48:38,950 --> 00:48:40,690 En aquest cas, per als dos, Joan i Setz. 1052 00:48:40,690 --> 00:48:41,940 Felicitacions, molt bé. 1053 00:48:41,940 --> 00:48:46,720 1054 00:48:46,720 --> 00:48:50,620 Així que de nou, ja que aquest joc es juga, pensar en el que està passant? 1055 00:48:50,620 --> 00:48:52,060 >> Un, clarament hi ha una gran quantitat de moviment. 1056 00:48:52,060 --> 00:48:55,220 Però hem vist com, amb el gat i el exemple, ocell, com es pot fer que el 1057 00:48:55,220 --> 00:48:58,350 il · lusió del moviment amb només moure una mica nombre de píxels i una altra. 1058 00:48:58,350 --> 00:49:00,280 I si vostè té un bloc de sempre, vostè pot tenir aquests 1059 00:49:00,280 --> 00:49:02,120 cotxes fent això per sempre. 1060 00:49:02,120 --> 00:49:03,720 Tenim la capacitat de tenir una mica d'aleatorietat. 1061 00:49:03,720 --> 00:49:06,310 Així que aquest joc no té per què ser exactament el mateix cada vegada. 1062 00:49:06,310 --> 00:49:09,940 Aquests registres, els cotxes, poden començar a temps lleugerament diferents de manera que el 1063 00:49:09,940 --> 00:49:12,690 joc en si és més interessant amb cada joc. 1064 00:49:12,690 --> 00:49:15,320 >> I mentrestant, hem vist la capacitat per escoltar la barra d'espai. 1065 00:49:15,320 --> 00:49:18,830 Però és evident que, en Scratch, pot també escoltar per amunt, avall, esquerra, dreta, i 1066 00:49:18,830 --> 00:49:20,760 Realment qualsevol tecla del teclat. 1067 00:49:20,760 --> 00:49:22,200 I també es pot fer altres coses. 1068 00:49:22,200 --> 00:49:24,660 Deixin-me seguir endavant i tornar a la versió web. 1069 00:49:24,660 --> 00:49:30,280 >> Déjame entrar a la nostra col · lecció d'exemples aquí. 1070 00:49:30,280 --> 00:49:36,120 I sota el meu estudi, de vídeo que és, en essència, una carpeta de 1071 00:49:36,120 --> 00:49:37,780 scratch.mit.edu. 1072 00:49:37,780 --> 00:49:39,710 Tenim les versions web de tots aquests projectes. 1073 00:49:39,710 --> 00:49:42,530 I anem a veure si puc aconseguir el meu equip de cooperar aquí. 1074 00:49:42,530 --> 00:49:47,180 Això està escrit per un dels nostres amics al MIT, anomenat Moveu la papallona. 1075 00:49:47,180 --> 00:49:50,250 >> I una vegada que això s'obre, es tracta de va a utilitzar realment més 1076 00:49:50,250 --> 00:49:51,430 maquinari del meu ordinador. 1077 00:49:51,430 --> 00:49:53,325 Zero passa a ser implementat amb Flash. 1078 00:49:53,325 --> 00:49:56,250 Flash pot parlar amb la seva webcam, si vostè té un. 1079 00:49:56,250 --> 00:50:00,210 Així que si segueixo endavant i pantalla completa aquest aquí, feu clic a la bandera verda, l'avís 1080 00:50:00,210 --> 00:50:02,530 que el missatge de seguretat de flash és a dir, què vol 1081 00:50:02,530 --> 00:50:04,210 permetrà utilitzar el meu webcam? 1082 00:50:04,210 --> 00:50:05,510 >> Normalment, vostè ha probablement diria Denegar. 1083 00:50:05,510 --> 00:50:07,180 Però en aquest cas, direm ho permetin. 1084 00:50:07,180 --> 00:50:10,430 Llavors jo vaig a dir Chrome per permetre que això també. 1085 00:50:10,430 --> 00:50:15,010 I ara, en un moment, em veus, sí, jo. 1086 00:50:15,010 --> 00:50:18,154 I si la meva mà s'aixeca - 1087 00:50:18,154 --> 00:50:20,390 He de canviar la meva no el cap al mateix temps. 1088 00:50:20,390 --> 00:50:21,740 També hi ha una reflexió a la pantalla. 1089 00:50:21,740 --> 00:50:23,480 Anem, aquí anem - 1090 00:50:23,480 --> 00:50:27,616 es pot moure a la pantalla perquè també hi ha peces d'un trencaclosques - oh, 1091 00:50:27,616 --> 00:50:31,640 sé el que és, és perquè també veure la pantalla del projector darrere meu. 1092 00:50:31,640 --> 00:50:33,870 Així que tenim una mica d'infinit El que passa allà. 1093 00:50:33,870 --> 00:50:36,470 >> Molt bé, així que vaig a jugar aquí. 1094 00:50:36,470 --> 00:50:37,220 Això és. 1095 00:50:37,220 --> 00:50:41,310 Així també hi ha una peça del trencaclosques que diu, quan vostè veu el moviment per sota de 1096 00:50:41,310 --> 00:50:45,470 un dels sprites, vostè pot haver d'anar amunt, avall, esquerra, dreta o similars. 1097 00:50:45,470 --> 00:50:48,950 Així que tenim una mica de la realitat virtual passant aquí també, tot això dins del 1098 00:50:48,950 --> 00:50:52,570 confins del meu navegador, només aquí amb la meva webcam. 1099 00:50:52,570 --> 00:50:53,980 Quin és llavors l'horitzó. 1100 00:50:53,980 --> 00:50:58,350 El primer conjunt de problemes, com es veurà, o el lloc web estarà en línia més endavant 1101 00:50:58,350 --> 00:51:01,100 aquesta nit a cs50.net, és bastant hi ha molt a fer per ser de composició oberta. 1102 00:51:01,100 --> 00:51:04,410 I posar en pràctica un projecte de Scratch del seu interès, un joc, una 1103 00:51:04,410 --> 00:51:08,350 interacció, quelcom artístic, i el repte d'utilitzar qualsevol nombre 1104 00:51:08,350 --> 00:51:09,660 d'aquestes peces del trencaclosques. 1105 00:51:09,660 --> 00:51:11,580 I pot ser interactiu d'aquesta manera. 1106 00:51:11,580 --> 00:51:15,470 O pot ser una mica més deliberada fet d'explicar una història. 1107 00:51:15,470 --> 00:51:19,200 >> I, de fet, aquí és on anem a acabar fora avui, amb un últim exemple. 1108 00:51:19,200 --> 00:51:21,290 Déjame anar a zero a nivell local. 1109 00:51:21,290 --> 00:51:25,300 Deixin-me seguir endavant i obrir això, i joc un últim programa escrit per un 1110 00:51:25,300 --> 00:51:29,795 dels seus predecessors, és a dir, que un aquí. 1111 00:51:29,795 --> 00:51:32,960 1112 00:51:32,960 --> 00:51:35,938 Bé, pugi el volum per aquest. 1113 00:51:35,938 --> 00:52:53,770 >> [Reproducció de música] 1114 00:52:53,770 --> 00:52:57,255 >> NARRADOR: En la següent CS50, David Convida un voluntari a l'escenari. 1115 00:52:57,255 --> 00:52:58,636 >> DAVID Malan: Per a aquesta demostració, anem a necessitar un voluntari. 1116 00:52:58,636 --> 00:53:01,050 T'agradaria venir a baix? 1117 00:53:01,050 --> 00:53:02,300 Com et dius? 1118 00:53:02,300 --> 00:53:05,320 1119 00:53:05,320 --> 00:53:06,570 Canviant de tema. 1120 00:53:06,570 --> 00:53:08,394