1 00:00:00,000 --> 00:00:10,980 >> [MÚSICA DE XOGO] 2 00:00:10,980 --> 00:00:13,260 >> -Todo Ben! 3 00:00:13,260 --> 00:00:16,400 >> -É CS50. 4 00:00:16,400 --> 00:00:18,220 >> -É CS50. 5 00:00:18,220 --> 00:00:19,324 >> -É CS50. 6 00:00:19,324 --> 00:00:20,615 [MUSIC - Iggy Azalea, "Fancy"] 7 00:00:20,615 --> 00:00:29,925 8 00:00:29,925 --> 00:00:33,570 >> -Meu Memoria preferida do CS50 Foi cando eu fun para Quebra-Cabeza Día. 9 00:00:33,570 --> 00:00:35,797 >> -probablemente Só o tempo pasou a traballar na serie de exercicios 10 00:00:35,797 --> 00:00:38,630 cos meus amigos e persoas que Abeba eventualmente tornar-se os meus blockmates. 11 00:00:38,630 --> 00:00:40,421 >> -Meu Mellor memoria de CS50 é o hackathon. 12 00:00:40,421 --> 00:00:41,630 -The CS50 hackathon. 13 00:00:41,630 --> 00:00:42,130 >> -Hackathon. 14 00:00:42,130 --> 00:00:42,800 >> -Hackathon. 15 00:00:42,800 --> 00:00:43,300 -Hackathon. 16 00:00:43,300 --> 00:00:43,883 -The Hackathon 17 00:00:43,883 --> 00:00:45,027 -Rob Bowden. 18 00:00:45,027 --> 00:00:46,110 Só todo sobre el. 19 00:00:46,110 --> 00:00:47,401 >> [MUSIC - Iggy Azalea, "Fancy"] 20 00:00:47,401 --> 00:00:56,790 21 00:00:56,790 --> 00:01:02,512 >> -Meu Memoria preferida é cando estaba no escenario e fixen o papel de prestixio 22 00:01:02,512 --> 00:01:04,220 dun nodo [? no Linked?] [? Lista. ?] 23 00:01:04,220 --> 00:01:08,470 >> -Cando Todos temos espazo libre Dropbox e David era como, busque nos seus lugares. 24 00:01:08,470 --> 00:01:10,520 E foi así, espazo para todos! 25 00:01:10,520 --> 00:01:11,811 >> [MUSIC - Iggy Azalea, "Fancy"] 26 00:01:11,811 --> 00:01:20,940 27 00:01:20,940 --> 00:01:22,830 >> Consello -Meu para calquera estudante de entrada sería 28 00:01:22,830 --> 00:01:26,170 ser realmente traballar en P-sets cos amigos. 29 00:01:26,170 --> 00:01:27,960 >> Tempo -Office é moi seu amigo. 30 00:01:27,960 --> 00:01:30,870 >> -Certifique Ao máximo a súa experiencia e responder a tantas persoas como sexa posible. 31 00:01:30,870 --> 00:01:32,390 >> Non ter medo de pedir axuda. 32 00:01:32,390 --> 00:01:33,890 -Comece Os P-sets ao comezo da semana. 33 00:01:33,890 --> 00:01:36,723 I Creo que a maior cousa é sacar proveito de todos os recursos 34 00:01:36,723 --> 00:01:37,950 que CS50 ten. 35 00:01:37,950 --> 00:01:39,960 >> -Vaia Para o horario de expediente no inicio da semana. 36 00:01:39,960 --> 00:01:41,430 >> -definitivamente Asistir aos shorts. 37 00:01:41,430 --> 00:01:42,989 >> Non procrastinar no seu P-sets. 38 00:01:42,989 --> 00:01:45,780 -Certifique-Se atopa un gran grupo de persoas para traballar na P-sets con. 39 00:01:45,780 --> 00:01:48,530 Pode ter unha chea de diversión e comezar o traballo feito en conxunto. 40 00:01:48,530 --> 00:01:50,370 >> Non sexas medo de empurrar-se. 41 00:01:50,370 --> 00:01:52,080 Ir á edición de hackers ás veces. 42 00:01:52,080 --> 00:01:55,410 >> Cousas -Write no papel antes Sempre toca seu ordenador. 43 00:01:55,410 --> 00:01:58,380 >> -CS50 É realmente grande en introducindo formas de obter axuda. 44 00:01:58,380 --> 00:02:01,134 >> -Meu Un consello é durmir. 45 00:02:01,134 --> 00:02:02,050 Alguén xa dixo iso? 46 00:02:02,050 --> 00:02:04,100 O sono, con certeza. 47 00:02:04,100 --> 00:02:08,919 É doado non facer, pero ten que facelo, eu creo. 48 00:02:08,919 --> 00:02:12,982 >> I Diría realmente estar preparado mentalmente porque vai adorar. 49 00:02:12,982 --> 00:02:14,273 [MUSIC - Iggy Azalea, "Fancy"] 50 00:02:14,273 --> 00:02:17,750 51 00:02:17,750 --> 00:02:18,940 >> -É CS50. 52 00:02:18,940 --> 00:02:22,090 53 00:02:22,090 --> 00:02:23,066 >> -É CS50. 54 00:02:23,066 --> 00:02:26,400 55 00:02:26,400 --> 00:02:26,989 >> -É CS50. 56 00:02:26,989 --> 00:02:28,280 [MUSIC - Iggy Azalea, "Fancy"] 57 00:02:28,280 --> 00:02:31,290 58 00:02:31,290 --> 00:02:31,964 >> -É CS50. 59 00:02:31,964 --> 00:02:36,020 60 00:02:36,020 --> 00:02:42,270 >> [Aplausos] 61 00:02:42,270 --> 00:02:46,040 >> DAVID J. Malan: Entón este é CS50 e este é o fin de semana 0. 62 00:02:46,040 --> 00:02:48,770 E iso era só un de persoal do CS50 que 63 00:02:48,770 --> 00:02:51,100 esperan por ti, non só en seccións e as horas de expediente, pero, 64 00:02:51,100 --> 00:02:54,390 Ademais, este fin de semana en CS50 enigma Day. 65 00:02:54,390 --> 00:02:56,410 Que, de novo, non é todo sobre a programación. 66 00:02:56,410 --> 00:02:59,710 De feito, espérase que vostede non terá que programar nada, 67 00:02:59,710 --> 00:03:03,780 senón resolver problemas mediante intelixencia e amigos ao seu lado. 68 00:03:03,780 --> 00:03:06,400 >> Estaremos unidos por uns dos nosos amigos da Facebook-- 69 00:03:06,400 --> 00:03:08,980 se se rexistrar aqui-- que para os últimos anos, 70 00:03:08,980 --> 00:03:11,450 ten realmente foi escrito estes retos coa xente. 71 00:03:11,450 --> 00:03:14,822 E así, eles van ser os únicos en definitiva, en execución enigma Day. 72 00:03:14,822 --> 00:03:17,530 E así, será desafiado con precisión tipo de cousas 73 00:03:17,530 --> 00:03:20,520 e os problemas que a xente en Facebook gusta de pensar. 74 00:03:20,520 --> 00:03:21,860 Entón, que é mañá. 75 00:03:21,860 --> 00:03:25,980 Registre-se no cs50.harvard.edu/register. 76 00:03:25,980 --> 00:03:28,120 >> Agora unha palabra sobre unha parella de persoal, en particular. 77 00:03:28,120 --> 00:03:30,090 Isto aquí é Ansel Duff, que é en realidade un 78 00:03:30,090 --> 00:03:33,860 dos co-autores destes binario lámpadas que vimos o mércores, 79 00:03:33,860 --> 00:03:36,710 ademais do CS50 propio Dan Bradley. 80 00:03:36,710 --> 00:03:40,094 Ansel Duff tamén era un ex calouro orientando meu 3 anos 81 00:03:40,094 --> 00:03:41,760 e el, de feito, mesmo construíron esta tribuna. 82 00:03:41,760 --> 00:03:45,330 Pasou a facer ciencias da enxeñaría e moito máis. 83 00:03:45,330 --> 00:03:49,279 Agora, a foto del aquí é realmente Ansel hai 3 anos no CS50 hackathon 84 00:03:49,279 --> 00:03:51,820 cando prestou un dos nosos globos, preso ao seu portátil, 85 00:03:51,820 --> 00:03:55,240 e, ao seguinte día 12 un estraño horas, con foco no seu proxecto final, 86 00:03:55,240 --> 00:03:59,150 pausas só para abrir bolsas de doces no hackathon. 87 00:03:59,150 --> 00:04:02,210 >> Pero el continuou, máis recentemente, a pasar este verán pasado coa xente, 88 00:04:02,210 --> 00:04:05,270 desde CS50 para o seu persoal, e Agora os estudantes neste semestre, 89 00:04:05,270 --> 00:04:06,770 ten a súa propia impresora 3D. 90 00:04:06,770 --> 00:04:10,180 E en poucas palabras a impresoras 3D é un dispositivo que parece bastante como esta. 91 00:04:10,180 --> 00:04:15,700 Vostede enche-lo con un torno de plástico que é derretido polo dispositivo 92 00:04:15,700 --> 00:04:18,940 e construir cousas literalmente da nada. 93 00:04:18,940 --> 00:04:22,660 Moi parecido a unha impresora inxección de tinta, comeza cuspindo pontinhos de plástico 94 00:04:22,660 --> 00:04:24,990 que en conxunto forman a formar obxectos enteiros. 95 00:04:24,990 --> 00:04:28,430 E así Ansel por exemplo, máis cedo este verán, ten un iPhone 5 96 00:04:28,430 --> 00:04:30,722 e decidiu que realmente quería para sustentala-lo na súa mesa. 97 00:04:30,722 --> 00:04:32,638 Pero el non quería saír e mercar algo 98 00:04:32,638 --> 00:04:36,030 da tenda de Apple ou similar, para que sentouse e comezou a deseñar algo. 99 00:04:36,030 --> 00:04:38,280 Tomou algunhas medidas como para o espesor 100 00:04:38,280 --> 00:04:41,270 e quão grande era o seu iPhone, el tirou esta foto aquí, 101 00:04:41,270 --> 00:04:43,870 el decidiu que quería para ter unha inclinación de 75 graos 102 00:04:43,870 --> 00:04:46,150 como estaba mirando para el na súa mesa alí. 103 00:04:46,150 --> 00:04:50,440 El entón virou iso, usando software, nun modelo 3D CAD 104 00:04:50,440 --> 00:04:52,400 que parecía un pouco algo así. 105 00:04:52,400 --> 00:04:55,940 E entón el pasou, en definitiva, en realidade, crealo. 106 00:04:55,940 --> 00:05:00,250 Entón, en realidade, se algún de vós aquí, quizais nunha liña que eu poida xogar a, ter 107 00:05:00,250 --> 00:05:06,780 an-- non temos xente con iPhone 5, e aquí temos máis dous. 108 00:05:06,780 --> 00:05:10,650 109 00:05:10,650 --> 00:05:17,037 >> Agora, para non quedar atrás, CS50 propia Cheng Gong tamén establecido neste verán 110 00:05:17,037 --> 00:05:19,870 para construír algunhas cousas e, en realidade, por motivos que aínda están 111 00:05:19,870 --> 00:05:23,970 claro, foi lentamente imprimindo un exército de elefantes 112 00:05:23,970 --> 00:05:27,250 con articulando os brazos e tronco. 113 00:05:27,250 --> 00:05:32,515 Unha parella de que son realmente aquí se alguén vai agora como-- un elefante. 114 00:05:32,515 --> 00:05:35,650 115 00:05:35,650 --> 00:05:40,522 Todo correcto ,. pero o que Cheng tamén fixo para nós é que moi xentilmente configurar unha cámara 116 00:05:40,522 --> 00:05:42,230 porque aquel elefante, cren ou non, 117 00:05:42,230 --> 00:05:44,690 leva uns dous e un media hora de imprimir. 118 00:05:44,690 --> 00:05:47,840 Mesmo o soporte iPhone levou unha hora e media para imprimir. 119 00:05:47,840 --> 00:05:51,490 E o que Cheng foi adiante e fixo constituíuse unha boa cámara diante 120 00:05:51,490 --> 00:05:55,580 desta impresora 3D, filmado por unha hora e medio como o proxecto do Ansel impreso. 121 00:05:55,580 --> 00:05:58,090 Nós revestiu algúns sexy música a el, de xeito 122 00:05:58,090 --> 00:06:00,570 para che dar esta a mirar o xeito no que a impresión 3D funciona. 123 00:06:00,570 --> 00:06:02,494 E aínda que esta é, en realidade, en plástico, 124 00:06:02,494 --> 00:06:05,160 entender que se trata dunha zona de interese académico, 125 00:06:05,160 --> 00:06:07,120 hai persoas, entre los Jennifer Lewis aquí 126 00:06:07,120 --> 00:06:09,036 na Escola de Enxeñaría, que son, en realidade 127 00:06:09,036 --> 00:06:10,920 traballar en impresión 3D obxectos de plástico. 128 00:06:10,920 --> 00:06:14,150 Pero mesmo, cada vez máis, materiais biolóxicos para resolver 129 00:06:14,150 --> 00:06:16,530 problemas fisiolóxicos para seres humanos. 130 00:06:16,530 --> 00:06:19,944 Pero aquí é un pouco algo do CS50. 131 00:06:19,944 --> 00:06:31,625 >> [LOUD MECÁNICA ruídos] 132 00:06:31,625 --> 00:06:34,250 DAVID J. Malan: Non soa algo así, en realidade, 133 00:06:34,250 --> 00:06:37,240 pero é moito máis frío para velo a esa velocidade, e con ese son. 134 00:06:37,240 --> 00:06:40,000 >> Agora, o mércores, como fixemos primeiro chegou aquí? 135 00:06:40,000 --> 00:06:43,345 Comezamos a falar sobre ordenador ciencia e preguntas o que era. 136 00:06:43,345 --> 00:06:46,470 E é sobre unha serie de cousas, e hai tantas direccións diferentes 137 00:06:46,470 --> 00:06:48,477 en que pode ir despois dun curso como CS50. 138 00:06:48,477 --> 00:06:50,810 En realidade, se pegou un destes guías non oficiais 139 00:06:50,810 --> 00:06:54,080 CS para fóra, o libreto que nos das, se é 140 00:06:54,080 --> 00:06:57,150 pensando en tomar só CS50, ou que facer un secundario, 141 00:06:57,150 --> 00:06:59,557 ou quizais mesmo concentrando no CS, non navegar iso. 142 00:06:59,557 --> 00:07:01,390 E vai ver un diagrama para o fin que 143 00:07:01,390 --> 00:07:04,950 mostra os moitos sentidos diferentes CS en que pode ir para fóra en. 144 00:07:04,950 --> 00:07:09,030 >> Pero por hoxe, imos concentrar, unha vez máis, en realmente unha das vistas fundamentais, 145 00:07:09,030 --> 00:07:11,500 quizais, onde ten entradas para os problemas, 146 00:07:11,500 --> 00:07:13,430 tes saídas problemas, e ten 147 00:07:13,430 --> 00:07:17,420 algoritmos coa que crear esas saídas deses insumos. 148 00:07:17,420 --> 00:07:20,330 E un exemplo deste tipo, era de Por suposto, este libro de teléfono aquí. 149 00:07:20,330 --> 00:07:24,180 E utilizouse como un exemplo para ir mediante un algoritmo que estaba correcta. 150 00:07:24,180 --> 00:07:26,490 E despois outra foi correcto, pero un pouco máis rápido. 151 00:07:26,490 --> 00:07:29,448 E entón outro que estaba un pouco máis dramático, pero fundamentalmente 152 00:07:29,448 --> 00:07:30,000 máis rápido. 153 00:07:30,000 --> 00:07:32,720 >> Certo, iso, libro de teléfono alegou tiña uns 1.000 páxinas. 154 00:07:32,720 --> 00:07:36,200 E cantas veces eu teño rasgar o libro de teléfono pola metade 155 00:07:36,200 --> 00:07:39,930 para atopar alguén como Mike Smith, máximo, en 1000 páxina do libro? 156 00:07:39,930 --> 00:07:41,040 Así, 10 máis ou menos. 157 00:07:41,040 --> 00:07:45,050 E así, xa Rompín esa cousa en metade, ou simplemente, máis madura, 158 00:07:45,050 --> 00:07:48,490 dividida polo medio, só é 10 páxinas en 1.000. 159 00:07:48,490 --> 00:07:51,470 E se extrapolar, algo irreal para unha axenda telefónica, 160 00:07:51,470 --> 00:07:56,540 pero se este libro teléfono tiña preto de 4 millóns de páxinas en que, de forma tan completa 161 00:07:56,540 --> 00:07:59,680 pesado fisicamente, cantos veces dividir un 4 millóns 162 00:07:59,680 --> 00:08:01,460 Teléfonos páxina á metade? 163 00:08:01,460 --> 00:08:03,035 Entón é en realidade 32, máis ou menos. 164 00:08:03,035 --> 00:08:07,090 E así, só 32 veces, fóra de 4 millóns de páxinas, pode 165 00:08:07,090 --> 00:08:08,700 atopa alguén como Mike Smith. 166 00:08:08,700 --> 00:08:09,740 E iso é eficiencia. 167 00:08:09,740 --> 00:08:12,130 Isto é un bo algoritmo, atrévome a dicir. 168 00:08:12,130 --> 00:08:14,480 >> Pero, entón, cambiou-se de que para tratar de formalizar iso. 169 00:08:14,480 --> 00:08:16,100 E eu propuxen este código pseudocódigo. 170 00:08:16,100 --> 00:08:17,800 Código pseudocódigo non é nada formal. 171 00:08:17,800 --> 00:08:18,880 Non é algo que memorizar. 172 00:08:18,880 --> 00:08:21,588 É só algo que expresa moi intuitiva usando inglés, 173 00:08:21,588 --> 00:08:24,990 ou calquera linguaxe de feito, que transmite as súas ideas de forma sucinta. 174 00:08:24,990 --> 00:08:26,990 Pero o que é importante sobre código pseudocódigo é que 175 00:08:26,990 --> 00:08:30,331 tentar anticipar as posibles casos que poidan ocorrer. 176 00:08:30,331 --> 00:08:33,080 E, de feito, neste pseudocódigo código, había realmente tres casos 177 00:08:33,080 --> 00:08:34,700 cada vez que eu dividido o libro de teléfono. 178 00:08:34,700 --> 00:08:36,006 Mike pode ser á esquerda. 179 00:08:36,006 --> 00:08:37,130 Mike pode ser para a dereita. 180 00:08:37,130 --> 00:08:39,240 Ou pode estar seguro na páxina na que estou. 181 00:08:39,240 --> 00:08:42,110 Ou un cuarto caso esquina, por así dicir. 182 00:08:42,110 --> 00:08:46,470 Un escenario malo pode ser un which-- o que está pasando? 183 00:08:46,470 --> 00:08:48,860 Mike non é só en o libro de teléfono en todos. 184 00:08:48,860 --> 00:08:52,720 >> E cando os programas crash-- cando Mac e software para PC que vostedes executar 185 00:08:52,720 --> 00:08:56,400 nos seus ordenadores, por veces, traba ou pecha inesperadamente, 186 00:08:56,400 --> 00:08:59,770 que xeralmente significa que algúns programador, algún ser humano como pronto, 187 00:08:59,770 --> 00:09:01,650 só asneira e cometer algún erro. 188 00:09:01,650 --> 00:09:05,207 Quizais non anticipar que quizais non hai Mike Smith no libro de teléfono. 189 00:09:05,207 --> 00:09:08,040 E se realmente non escribo código para manexar situacións como esta, 190 00:09:08,040 --> 00:09:09,890 xeralmente imprevisible cousas poden pasar. 191 00:09:09,890 --> 00:09:10,960 A máquina pode conxelar. 192 00:09:10,960 --> 00:09:11,730 Pode reiniciar. 193 00:09:11,730 --> 00:09:12,889 O programa pode parar. 194 00:09:12,889 --> 00:09:14,722 E así todos estes estupideces que pode 195 00:09:14,722 --> 00:09:18,030 que atopou na súa real vida só usando ordenadores, 196 00:09:18,030 --> 00:09:20,710 será cada vez máis só explicada por esa intuición 197 00:09:20,710 --> 00:09:24,920 e esa comprensión do que é realmente está a suceder debaixo do capó. 198 00:09:24,920 --> 00:09:27,329 >> Agora imos tratar de dar un ollo nun problema máis xeral. 199 00:09:27,329 --> 00:09:29,120 En vez de tomar atención nun lugar como 200 00:09:29,120 --> 00:09:32,230 este, o que sería moi lento para facer un, dous, tres, catro. 201 00:09:32,230 --> 00:09:34,070 Ou quizais dous, catro, seis, oito. 202 00:09:34,070 --> 00:09:36,080 Imos concentrar, no seu lugar, en como podemos formalizar 203 00:09:36,080 --> 00:09:39,400 o algoritmo do proceso por que poderiamos ter atención. 204 00:09:39,400 --> 00:09:42,290 E ao longo do camiño, imos comezar aplicar algunha nomenclatura 205 00:09:42,290 --> 00:09:47,130 que usaremos hoxe, cando, en realidade, comezar a programar nunha linguaxe. 206 00:09:47,130 --> 00:09:50,910 Entón, eu doulle agora, un vídeo catro minutos que estamos xuntos cos nosos amigos 207 00:09:50,910 --> 00:09:52,820 de TED, a organización. 208 00:09:52,820 --> 00:09:56,380 Polo cal nos das un guión e trouxeron os seus animadores de soportar, 209 00:09:56,380 --> 00:10:00,970 e realmente creou un 2D animación que un algoritmo é. 210 00:10:00,970 --> 00:10:02,776 Se puidésemos diminuír as luces. 211 00:10:02,776 --> 00:10:06,664 >> [MÚSICA DE XOGO] 212 00:10:06,664 --> 00:10:17,890 213 00:10:17,890 --> 00:10:19,140 Narrador: O que é un algoritmo? 214 00:10:19,140 --> 00:10:21,620 En ciencia da computación, un algoritmo é un conxunto 215 00:10:21,620 --> 00:10:24,840 instrucións de resolver algún problema paso a paso. 216 00:10:24,840 --> 00:10:27,310 Tipicamente, os algoritmos son executado por ordenadores, 217 00:10:27,310 --> 00:10:29,365 pero nós seres humanos temos algoritmos tamén. 218 00:10:29,365 --> 00:10:31,240 Por exemplo, como é que vai facer sobre a conta 219 00:10:31,240 --> 00:10:32,990 o número de persoas nunha sala? 220 00:10:32,990 --> 00:10:36,840 Ben, se vostede é como eu, probablemente apuntar en cada persoa un de cada vez 221 00:10:36,840 --> 00:10:38,370 e contar-se a partir de cero. 222 00:10:38,370 --> 00:10:41,200 Un, dous, tres, catro, e así por diante. 223 00:10:41,200 --> 00:10:42,410 Ben, iso é un algoritmo. 224 00:10:42,410 --> 00:10:45,820 De feito, imos tratar expresalo lo un pouco máis formalmente no código pseudocódigo. 225 00:10:45,820 --> 00:10:48,940 Sintaxe inglés-así aseméllase a unha linguaxe de programación. 226 00:10:48,940 --> 00:10:50,880 >> Sexa n igual a 0. 227 00:10:50,880 --> 00:10:55,210 Para cada persoa, en cuarto, definir n igual a n +1. 228 00:10:55,210 --> 00:10:56,790 Como interpretar o pseudocódigo? 229 00:10:56,790 --> 00:10:59,490 Ben unha liña declara: por así dicir, unha variable 230 00:10:59,490 --> 00:11:02,880 chamado n e inicializa seu valor a 0 Isto só 231 00:11:02,880 --> 00:11:05,080 significa que na inicio do noso algoritmo, 232 00:11:05,080 --> 00:11:07,910 a cousa coa que estamos conta ten un valor de 0. 233 00:11:07,910 --> 00:11:10,860 Ao final, antes de comezar a contar non ter contado nada aínda. 234 00:11:10,860 --> 00:11:13,580 Chamar esta variable n é só unha convención. 235 00:11:13,580 --> 00:11:15,130 Podería telo chamado máis nada. 236 00:11:15,130 --> 00:11:17,460 Agora liña dous demarks o inicio dun ciclo, 237 00:11:17,460 --> 00:11:20,550 unha secuencia de pasos que repetir un determinado número de veces. 238 00:11:20,550 --> 00:11:24,130 Así, no noso exemplo, o paso que estamos toma está contando a xente na sala. 239 00:11:24,130 --> 00:11:26,260 Baixo liña dous é a liña tres, que describe 240 00:11:26,260 --> 00:11:28,400 exactamente como nós imos sobre a conta. 241 00:11:28,400 --> 00:11:31,720 O retroceso que implica é liña de tres que vai repetir. 242 00:11:31,720 --> 00:11:35,190 Así, co código de pseudocódigo é dicindo é que despois de iniciar a 0 243 00:11:35,190 --> 00:11:38,940 para todas as persoas do cuarto que aumentará n por 1 244 00:11:38,940 --> 00:11:41,310 Agora é este algoritmo correcto? 245 00:11:41,310 --> 00:11:42,820 Ben, imos bater nel un pouco. 246 00:11:42,820 --> 00:11:45,520 >> Será que funciona se hai dúas persoas na sala? 247 00:11:45,520 --> 00:11:46,420 Imos ver. 248 00:11:46,420 --> 00:11:48,500 Nunha liña de nós arrincar n a 0. 249 00:11:48,500 --> 00:11:51,910 Para cada unha das dúas persoas, nós entón incrementar n en 1. 250 00:11:51,910 --> 00:11:55,570 Así, na primeira viaxe a través do loop, nós actualizamos n 0-1. 251 00:11:55,570 --> 00:11:59,320 Na segunda viaxe a través deste mesmo loop, nós actualizamos n 1-2. 252 00:11:59,320 --> 00:12:02,850 E así, por este algoritmo de final, n é 2, o cal 253 00:12:02,850 --> 00:12:04,950 en realidade, corresponde ao número de de persoas na sala. 254 00:12:04,950 --> 00:12:06,040 De momento, todo ben. 255 00:12:06,040 --> 00:12:07,870 >> Que tal un caso canto aínda? 256 00:12:07,870 --> 00:12:11,090 Supoña que existan 0 persoas no quarto-- ademais de min, quen é 257 00:12:11,090 --> 00:12:12,420 facendo a conta. 258 00:12:12,420 --> 00:12:15,380 Nunha liña, unha vez máis arrincar n a 0. 259 00:12:15,380 --> 00:12:17,810 Esta vez, con todo, a liña tres non executar a todos 260 00:12:17,810 --> 00:12:19,610 xa que non hai unha persoa na sala. 261 00:12:19,610 --> 00:12:23,540 E así segue n 0, o que de feito corresponde o número de persoas na sala. 262 00:12:23,540 --> 00:12:24,670 Moi sinxelo, non? 263 00:12:24,670 --> 00:12:27,880 Pero a conta de persoas, unha de cada vez é moi ineficiente, tamén, non? 264 00:12:27,880 --> 00:12:29,160 Certamente que podemos facer mellor. 265 00:12:29,160 --> 00:12:33,440 Por que non contar dúas persoas de cada vez, no canto de contar un, dous, tres, 266 00:12:33,440 --> 00:12:36,470 catro, cinco, seis, sete, oito, e así por diante. 267 00:12:36,470 --> 00:12:39,106 Por que non contar dous, catro, seis, oito, e así por diante? 268 00:12:39,106 --> 00:12:40,670 Inda soa máis rápido. 269 00:12:40,670 --> 00:12:41,940 E certamente o é. 270 00:12:41,940 --> 00:12:44,490 >> Imos expresar esa optimización en código pseudocódigo. 271 00:12:44,490 --> 00:12:46,040 Sexa n igual a 0. 272 00:12:46,040 --> 00:12:50,760 Para cada par de persoas cuarto, situado n igual a n +2. 273 00:12:50,760 --> 00:12:52,360 Moi simple cambio, non? 274 00:12:52,360 --> 00:12:56,560 En vez de contar con xente, unha de cada vez, que en vez contalos dúas á vez. 275 00:12:56,560 --> 00:12:59,240 Este algoritmo de, así, dúas veces máis rápido que o anterior. 276 00:12:59,240 --> 00:13:00,530 Pero será que é correcto? 277 00:13:00,530 --> 00:13:01,160 Imos ver. 278 00:13:01,160 --> 00:13:03,580 Será que funciona se hai dúas persoas na sala? 279 00:13:03,580 --> 00:13:05,800 Nunha liña, nós arrincar n a 0. 280 00:13:05,800 --> 00:13:09,160 Para que un par de persoas, nós entón incrementar n por 2. 281 00:13:09,160 --> 00:13:11,910 E así por este algoritmo de final n é 2, o cal 282 00:13:11,910 --> 00:13:13,910 en realidade, corresponde ao número de de persoas na sala. 283 00:13:13,910 --> 00:13:16,610 >> Supoñamos que hai próxima cero de persoas na sala. 284 00:13:16,610 --> 00:13:19,080 Nunha liña de nós arrincar n a 0. 285 00:13:19,080 --> 00:13:21,260 Tal como anteriormente, a liña de tres non executa todo 286 00:13:21,260 --> 00:13:25,270 xa que non hai ningún par de persoas na sala, e así permanece n 0. 287 00:13:25,270 --> 00:13:27,840 Que de feito corresponde ao número de persoas na sala. 288 00:13:27,840 --> 00:13:30,520 Pero o que se fai tres persoas na sala? 289 00:13:30,520 --> 00:13:32,380 Como é que este algoritmo de tarifa? 290 00:13:32,380 --> 00:13:35,710 A ver, nunha liña, inicializamos n a 0. 291 00:13:35,710 --> 00:13:39,140 Para un par desas persoas, nós entón incrementar n por 2. 292 00:13:39,140 --> 00:13:40,050 Pero e despois? 293 00:13:40,050 --> 00:13:42,340 Non hai outro completo par de persoas na sala, 294 00:13:42,340 --> 00:13:44,430 de xeito liña dous non máis se aplica. 295 00:13:44,430 --> 00:13:48,790 E así ata finais do presente algoritmo, n aínda é 2 o que non é correcto. 296 00:13:48,790 --> 00:13:52,070 En realidade, este algoritmo do dito ser buggy porque ten un erro. 297 00:13:52,070 --> 00:13:54,070 >> Imos reparación con algún novo código de pseudocódigo. 298 00:13:54,070 --> 00:13:56,110 Sexa n igual a 0. 299 00:13:56,110 --> 00:14:00,790 Para cada par de persoas cuarto, conxunto N igual a n +2. 300 00:14:00,790 --> 00:14:05,410 Se unha persoa permanece non pareado, definir N igual a n +1. 301 00:14:05,410 --> 00:14:09,340 Para solucionar este problema particular, temos introducido na liña de catro nunha condición, 302 00:14:09,340 --> 00:14:12,120 doutro xeito coñecido como un filiais, que executa 303 00:14:12,120 --> 00:14:14,890 se hai unha persoa que non podería vincular con outro. 304 00:14:14,890 --> 00:14:17,140 E agora, se hai un, ou tres, 305 00:14:17,140 --> 00:14:21,550 ou calquera número impar de persoas na sala, este algoritmo será agora contalos. 306 00:14:21,550 --> 00:14:22,810 Podemos facer aínda mellor? 307 00:14:22,810 --> 00:14:25,890 Ben, poderíamos contar en grupos de tres, ou catro, ou mesmo cinco anos e dez, 308 00:14:25,890 --> 00:14:29,390 pero, ademais, só pode ir un pouco difícil de apuntar. 309 00:14:29,390 --> 00:14:32,900 >> Ao final do día, se executado por ordenadores ou de seres humanos, 310 00:14:32,900 --> 00:14:34,870 algoritmos son só un conxunto de instrucións 311 00:14:34,870 --> 00:14:36,560 que para resolver os problemas. 312 00:14:36,560 --> 00:14:38,360 Estes foron só tres. 313 00:14:38,360 --> 00:14:41,860 Que problema faría resolver cun algoritmo? 314 00:14:41,860 --> 00:14:44,261 >> DAVID J. Malan: Entón, deliberadamente, un programa moi sinxelo, 315 00:14:44,261 --> 00:14:46,260 un algoritmo moi simple, para alcanzar algo 316 00:14:46,260 --> 00:14:48,280 moi sinxelo, contando o número de persoas na sala. 317 00:14:48,280 --> 00:14:50,370 >> Pero imos desmembrar algún do representante 318 00:14:50,370 --> 00:14:52,870 presenta aquí que son realmente será útil ata cando 319 00:14:52,870 --> 00:14:54,880 execución máis complexo de software. 320 00:14:54,880 --> 00:14:58,060 Así, por exemplo, nesta primeira liña, temos o que chamamos variable, 321 00:14:58,060 --> 00:15:01,040 ea álxebra, está familiarizada con x e y 322 00:15:01,040 --> 00:15:02,930 ez por veces, e así por diante. 323 00:15:02,930 --> 00:15:05,770 Pero, en programación, variables son aínda, ao final do día, 324 00:15:05,770 --> 00:15:06,680 moi semellante ao que. 325 00:15:06,680 --> 00:15:09,910 Pero quizais sexa máis sinxelo para pensar dunha variable como só un recipiente. 326 00:15:09,910 --> 00:15:13,520 E, de feito, é un número de bits aplicadas dalgún xeito no seu disco duro 327 00:15:13,520 --> 00:15:16,410 ou na memoria do seu ordenador, pero máis sobre iso no futuro. 328 00:15:16,410 --> 00:15:17,670 É só un recipiente. 329 00:15:17,670 --> 00:15:20,310 E se di algo como imos n igual a 0, 330 00:15:20,310 --> 00:15:24,310 ben, iso é como chamar ese vidro bowl aquí n, só un nome arbitrario, 331 00:15:24,310 --> 00:15:26,230 e poñer nada nela inicialmente. 332 00:15:26,230 --> 00:15:28,940 Entón, o valor desta bowl agora é cero. 333 00:15:28,940 --> 00:15:31,380 E, por suposto, se entender nunha liña posterior, 334 00:15:31,380 --> 00:15:35,070 para efectivamente aumentar algúns liña de código, como nesta terceira liña aquí, 335 00:15:35,070 --> 00:15:39,857 en 1, que é como dicir cal é o valor actual de n, é 0, máis 1, 336 00:15:39,857 --> 00:15:41,690 poñer algo así como un de ping pong aquí. 337 00:15:41,690 --> 00:15:45,140 Agora o valor desta variable é simplemente un. 338 00:15:45,140 --> 00:15:50,064 E podería moi rapidamente extrapolar, pero agora é 2, agora é 3, e así por diante. 339 00:15:50,064 --> 00:15:51,230 Entón, iso é todo o que unha variable é. 340 00:15:51,230 --> 00:15:53,740 É unha peza de almacenamento para en realidade, almacenar algúns datos. 341 00:15:53,740 --> 00:15:55,050 Por agora é unha bola de ping-pong. 342 00:15:55,050 --> 00:15:55,883 Non é un número. 343 00:15:55,883 --> 00:15:58,910 Pero tamén pode ser un en palabras dicionario, como o corrector ortográfico 344 00:15:58,910 --> 00:16:02,300 Me referín o mércores para un dos conxuntos de problemas do ano pasado. 345 00:16:02,300 --> 00:16:05,640 >> Agora outra idea clave, que do mesmo xeito é moi intuitivo que eu tería a pretensión, 346 00:16:05,640 --> 00:16:06,690 que é dun lazo. 347 00:16:06,690 --> 00:16:08,930 E o ciclo do proceso conta de todos 348 00:16:08,930 --> 00:16:12,540 É, por suposto, facer o mesmo cousa de novo e novamente-- calquera 349 00:16:12,540 --> 00:16:14,140 nun momento ou dous de cada vez. 350 00:16:14,140 --> 00:16:17,690 E pode expresar isto en inglés, ou pseudocódigo código, en calquera número de formas, 351 00:16:17,690 --> 00:16:21,560 pero a través da preposición "a" é unha forma moi común de se facer. 352 00:16:21,560 --> 00:16:24,460 Para cada persoa na sala, faino. 353 00:16:24,460 --> 00:16:25,350 Unha e outra vez. 354 00:16:25,350 --> 00:16:27,700 E o feito de que é recortado, liña de tres, 355 00:16:27,700 --> 00:16:29,840 significa só que o ten que facer 356 00:16:29,840 --> 00:16:33,490 é o material que está recuado por baixo da liña de si dous. 357 00:16:33,490 --> 00:16:35,590 Só unha convención humana, pero un común 358 00:16:35,590 --> 00:16:39,010 como veremos en maior real linguaxes de programación de nivel. 359 00:16:39,010 --> 00:16:41,870 >> Agora pouco máis interesante é cando chegar nun caso de canto. 360 00:16:41,870 --> 00:16:43,970 Por exemplo, un canto caso cando hai 361 00:16:43,970 --> 00:16:48,060 tres persoas, ou cinco, ou sete, ou calquera número impar de persoas na sala, 362 00:16:48,060 --> 00:16:51,630 porque facendo iso por freos twos finalmente, porque o seu curso 363 00:16:51,630 --> 00:16:54,265 a falta de alguén, sexa no inicio ou o fin 364 00:16:54,265 --> 00:16:55,390 dependendo de como o fai. 365 00:16:55,390 --> 00:16:59,800 E así, agora, eu teño ese sector, é condición, se unha persoa permanece, 366 00:16:59,800 --> 00:17:04,490 entón vai adiante e tratar con isto un persoa solitaria que non puido 367 00:17:04,490 --> 00:17:05,690 vinculación con outra persoa. 368 00:17:05,690 --> 00:17:09,030 Entón, iso é o que chamariamos unha condición, é unha póla. 369 00:17:09,030 --> 00:17:11,500 >> Código Agora pseudocódigo máis xeralmente, poden 370 00:17:11,500 --> 00:17:13,730 escrita para resolver calquera número de problemas. 371 00:17:13,730 --> 00:17:16,490 E o que eu penso que ía facer aquí é ter un momento 372 00:17:16,490 --> 00:17:20,089 invitar digamos CS50 da posuír Rob Bowden no escenario 373 00:17:20,089 --> 00:17:25,040 sendo acompañado por dous voluntarios, que non teñen idea do que o agarda. 374 00:17:25,040 --> 00:17:26,890 Unha man descendeu así que eu dixen iso. 375 00:17:26,890 --> 00:17:28,700 Que tal vostede na remata aquí, imos cara arriba. 376 00:17:28,700 --> 00:17:33,040 E canto máis lonxe de lonxe, que tal camiño na volta. 377 00:17:33,040 --> 00:17:35,200 Fila de atrás, imos cara arriba coas mans para arriba. 378 00:17:35,200 --> 00:17:36,475 Certo, e cal é o seu nome? 379 00:17:36,475 --> 00:17:36,960 >> ANITA: Anita. 380 00:17:36,960 --> 00:17:37,655 >> DAVID J. Malan: Anita. 381 00:17:37,655 --> 00:17:38,613 Ok, pracer de coñece-lo. 382 00:17:38,613 --> 00:17:41,010 Deixe-me presentar-lle Rob Bowden. 383 00:17:41,010 --> 00:17:42,890 Este é Anita. 384 00:17:42,890 --> 00:17:44,033 E cal é o seu nome? 385 00:17:44,033 --> 00:17:44,800 >> Kiersten: Kiersten 386 00:17:44,800 --> 00:17:46,020 >> DAVID J. Malan: Irena. 387 00:17:46,020 --> 00:17:49,790 Irena, imos alí para arriba e atender Rob Bowden e Anita. 388 00:17:49,790 --> 00:17:51,036 Pracer en coñece-lo. 389 00:17:51,036 --> 00:17:52,160 Kiersten: Pracer en coñece-lo. 390 00:17:52,160 --> 00:17:53,368 DAVID J. Malan: Todo ben, Rob. 391 00:17:53,368 --> 00:17:54,650 ROB BOWDEN: Pracer en coñece-lo. 392 00:17:54,650 --> 00:17:55,566 DAVID J. Malan: Anita. 393 00:17:55,566 --> 00:17:56,520 Kiersten: Ola Anita. 394 00:17:56,520 --> 00:17:58,686 DAVID J. Malan: E o seu varios centos de compañeiros. 395 00:17:58,686 --> 00:18:02,490 Entón, agora deixe-me ir adiante e puxe se só un simple programa aquí 396 00:18:02,490 --> 00:18:05,690 en Mac OS que me vai deixar realmente anotar algunhas notas para abaixo. 397 00:18:05,690 --> 00:18:09,570 E se vostedes queren, cada un leva un posición nunha desas escolas de alí, 398 00:18:09,570 --> 00:18:16,360 déixeme ir adiante e comezar unha lista de código de pseudocódigo, se quere. 399 00:18:16,360 --> 00:18:19,970 E o que quero facer aquí, en última instancia, é do tipo para ti 400 00:18:19,970 --> 00:18:22,470 algunhas instrucións que o noso membros da audiencia son realmente 401 00:18:22,470 --> 00:18:23,569 vai recitar para nós. 402 00:18:23,569 --> 00:18:25,860 Deixe-me ir adiante e só cambialo para unha lista numerada 403 00:18:25,860 --> 00:18:27,720 coincidindo co que estabamos facendo alí enriba. 404 00:18:27,720 --> 00:18:30,990 E o que eu vou facer con súa axuda, é escribir un programa 405 00:18:30,990 --> 00:18:34,620 en pseudocódigo, co cal estes faces van 406 00:18:34,620 --> 00:18:38,150 para aplicar un cacahuete manteiga e marmelada bocadillos. 407 00:18:38,150 --> 00:18:40,880 Por iso, é posible que a propósito de amosar algo que algúns de vós 408 00:18:40,880 --> 00:18:44,560 pode ver en internet por só un breve momento aburrido. 409 00:18:44,560 --> 00:18:47,650 >> [MUSIC BUCKEWHEAT BOYS ", manteiga de cacahuete  Tempo de marmelada "] 410 00:18:47,650 --> 00:19:08,119 411 00:19:08,119 --> 00:19:08,910 DAVID J. Malan: Aceptar. 412 00:19:08,910 --> 00:19:10,050 Isto é o suficiente. 413 00:19:10,050 --> 00:19:12,690 Entón aquí mentres tanto, eu teño unha par de Google Glass que 414 00:19:12,690 --> 00:19:16,500 imos poñer no propio Rob Bowden do CS50 de ver o mundo a través dos seus ollos. 415 00:19:16,500 --> 00:19:19,140 E nós imos facer o noso mellor no post produción de realmente tecer 416 00:19:19,140 --> 00:19:23,100 a metragem que Rob está a ver agora, a esta charla real 417 00:19:23,100 --> 00:19:26,420 vídeo cos nosos dous voluntarios ao lado del. 418 00:19:26,420 --> 00:19:28,480 Entón o que eu vou facer é, eu vou ser o datilógrafo. 419 00:19:28,480 --> 00:19:31,849 Temos o obxectivo aquí de realmente escribir un programa 420 00:19:31,849 --> 00:19:34,640 que facer, en definitiva, unha manteiga de cacahuete e marmelada bocadillos, 421 00:19:34,640 --> 00:19:37,680 pero estes tres van comportarse como se fosen ordenadores. 422 00:19:37,680 --> 00:19:40,638 E ordenadores, ao final do día, son en realidade dispositivos moi burro. 423 00:19:40,638 --> 00:19:44,432 Son super rápido, pero só poden facer literalmente o que se di. 424 00:19:44,432 --> 00:19:46,890 Non pode simplemente dicir facer un cacahuete manteiga e marmelada bocadillos. 425 00:19:46,890 --> 00:19:48,640 Ten que programalo los a facelo. 426 00:19:48,640 --> 00:19:51,420 Ten que dicirlles con precisión o que facer, 427 00:19:51,420 --> 00:19:54,400 menos as cousas van moito e, esperanza, divertidamente mal. 428 00:19:54,400 --> 00:19:57,460 >> Así, co que dixo, necesitamos un call-out do público 429 00:19:57,460 --> 00:19:59,440 para o que deberá intensificar un ser, se o obxectivo aquí 430 00:19:59,440 --> 00:20:01,356 é facer un cacahuete manteiga e marmelada bocadillos. 431 00:20:01,356 --> 00:20:01,910 Si? 432 00:20:01,910 --> 00:20:03,647 >> Audiencia: [inaudível] a bolsa de pan. 433 00:20:03,647 --> 00:20:05,230 DAVID J. Malan: Abre o saco de pan. 434 00:20:05,230 --> 00:20:08,360 Polo tanto, se os tres competidores faría quere seguir facendo iso literalmente. 435 00:20:08,360 --> 00:20:12,394 Abre o saco de pan. 436 00:20:12,394 --> 00:20:15,810 >> [Audiencia de risa] 437 00:20:15,810 --> 00:20:20,717 438 00:20:20,717 --> 00:20:22,300 DAVID J. Malan: Entón, imos traballar niso. 439 00:20:22,300 --> 00:20:23,180 Todo correcto. 440 00:20:23,180 --> 00:20:25,400 Entón, paso dous, how-- imos dar máis esta. 441 00:20:25,400 --> 00:20:26,480 Si, na fronte. 442 00:20:26,480 --> 00:20:27,240 >> Audiencia: [inaudível] o pan. 443 00:20:27,240 --> 00:20:27,735 >> DAVID J. Malan: ¿Que é iso? 444 00:20:27,735 --> 00:20:28,836 >> Audiencia: Elimina o pan. 445 00:20:28,836 --> 00:20:30,210 DAVID J. Malan: Elimina o pan. 446 00:20:30,210 --> 00:20:31,190 Igualmente sucinta. 447 00:20:31,190 --> 00:20:33,667 Grazas. 448 00:20:33,667 --> 00:20:43,777 >> [Aplausos] 449 00:20:43,777 --> 00:20:44,860 DAVID J. Malan: É iso? 450 00:20:44,860 --> 00:20:48,830 OK, entón o segundo paso é ir ser eliminar o pan. 451 00:20:48,830 --> 00:20:51,790 Todo ben, alguén quere escriba connosco unha frase máis longa? 452 00:20:51,790 --> 00:20:52,640 Alguén máis? 453 00:20:52,640 --> 00:20:53,920 Un pouco máis [inaudível]. 454 00:20:53,920 --> 00:20:54,810 Non, nada agora. 455 00:20:54,810 --> 00:20:56,094 Si? 456 00:20:56,094 --> 00:20:58,900 >> Audiencia: Pon dous franxas á beira do outro. 457 00:20:58,900 --> 00:21:03,575 >> DAVID J. Malan: Pon dous franxas á beira do outro. 458 00:21:03,575 --> 00:21:06,420 >> [Audiencia de risa] 459 00:21:06,420 --> 00:21:09,590 >> DAVID J. Malan: Pon dous franxas á beira do outro. 460 00:21:09,590 --> 00:21:11,334 Paso Catro. 461 00:21:11,334 --> 00:21:12,816 Si? 462 00:21:12,816 --> 00:21:14,792 >> Audiencia: Leve o seu man e coloque o levemente 463 00:21:14,792 --> 00:21:17,756 na parte superior da tapa da manteiga de cacahuete. 464 00:21:17,756 --> 00:21:19,710 >> [Audiencia de risa] 465 00:21:19,710 --> 00:21:21,710 Audiencia: [inaudível] á beira da manteiga de cacahuete. 466 00:21:21,710 --> 00:21:21,870 DAVID J. Malan: O que? 467 00:21:21,870 --> 00:21:22,520 Diga iso de novo. 468 00:21:22,520 --> 00:21:26,308 >> Audiencia: Solte a tapa e poñer -o suavemente á beira da manteiga de cacahuete. 469 00:21:26,308 --> 00:21:31,490 >> DAVID J. Malan: Pon-o suavemente á beira da manteiga de cacahuete. 470 00:21:31,490 --> 00:21:37,770 471 00:21:37,770 --> 00:21:40,090 OK, o progreso. 472 00:21:40,090 --> 00:21:41,080 Paso cinco. 473 00:21:41,080 --> 00:21:42,380 Excelente. 474 00:21:42,380 --> 00:21:43,261 Si? 475 00:21:43,261 --> 00:21:44,163 >> Tome un coitelo. 476 00:21:44,163 --> 00:21:46,380 477 00:21:46,380 --> 00:21:47,630 DAVID J. Malan: Colla un coitelo. 478 00:21:47,630 --> 00:21:52,320 479 00:21:52,320 --> 00:21:53,631 OK, paso seis. 480 00:21:53,631 --> 00:21:54,130 Si? 481 00:21:54,130 --> 00:21:56,237 >> Audiencia: Manteña o coitelo polo cable. 482 00:21:56,237 --> 00:21:57,945 DAVID J. Malan: Manteña coitelo pola alza. 483 00:21:57,945 --> 00:22:00,710 484 00:22:00,710 --> 00:22:03,230 Manteña o coitelo polo cable. 485 00:22:03,230 --> 00:22:04,880 Paso Sete. 486 00:22:04,880 --> 00:22:05,692 Si? 487 00:22:05,692 --> 00:22:10,030 >> Audiencia: Coitelo [inaudível] en cacahuete manteiga e tan pouco para fóra [inaudível]. 488 00:22:10,030 --> 00:22:13,070 >> DAVID J. Malan: coitelo Pon em-- I escoitou "coitelo poñer en manteiga de cacahuete 489 00:22:13,070 --> 00:22:19,500 e ter tan pouco como sexa posible ". 490 00:22:19,500 --> 00:22:22,480 By the way, elimina o papel primeiro. 491 00:22:22,480 --> 00:22:29,320 492 00:22:29,320 --> 00:22:31,890 Todo ben, paso nove. 493 00:22:31,890 --> 00:22:34,910 Paso nove. 494 00:22:34,910 --> 00:22:35,624 Paso nove. 495 00:22:35,624 --> 00:22:37,290 Nós realmente non teño feito un bocadillos aínda. 496 00:22:37,290 --> 00:22:37,790 Si? 497 00:22:37,790 --> 00:22:41,570 Audiencia: Usando coitelo en manteiga de cacahuete, aplicar manteiga de cacahuete na referida pan. 498 00:22:41,570 --> 00:22:47,440 >> DAVID J. Malan: Usando o coitelo na manteiga de cacahuete, aplique manteiga de cacahuete en 499 00:22:47,440 --> 00:22:48,736 dixo pan. 500 00:22:48,736 --> 00:22:56,030 >> [Audiencia de risa] 501 00:22:56,030 --> 00:22:59,480 DAVID J. Malan: All paso seguro 10. 502 00:22:59,480 --> 00:23:01,762 Paso 10. 503 00:23:01,762 --> 00:23:02,750 Si? 504 00:23:02,750 --> 00:23:05,220 >> Audiencia: Gústame cacahuete manteiga para garantir a calidade. 505 00:23:05,220 --> 00:23:15,960 >> [Audiencia de risa] 506 00:23:15,960 --> 00:23:16,960 DAVID J. Malan: Paso 11. 507 00:23:16,960 --> 00:23:19,500 508 00:23:19,500 --> 00:23:21,340 Paso 11. 509 00:23:21,340 --> 00:23:22,101 Paso 11. 510 00:23:22,101 --> 00:23:22,600 Veña. 511 00:23:22,600 --> 00:23:23,099 Si? 512 00:23:23,099 --> 00:23:24,208 Ben alí. 513 00:23:24,208 --> 00:23:25,840 >> Audiencia: Con coidado, tome a marmelada. 514 00:23:25,840 --> 00:23:28,220 >> DAVID J. Malan: Con coidado, tome a marmelada. 515 00:23:28,220 --> 00:23:29,970 OK, e despois outra man foi cara arriba. 516 00:23:29,970 --> 00:23:32,812 517 00:23:32,812 --> 00:23:33,520 Logo detrás de ti. 518 00:23:33,520 --> 00:23:35,761 Si, en azul. 519 00:23:35,761 --> 00:23:40,671 >> Audiencia: Todo ben, elimine tapa de [inaudível], si, 520 00:23:40,671 --> 00:23:42,635 retire a tapa da marmelada. 521 00:23:42,635 --> 00:23:43,617 >> [Audiencia de risa] 522 00:23:43,617 --> 00:23:44,742 >> DAVID J. Malan: A partir de marmelada. 523 00:23:44,742 --> 00:23:45,581 Ha ha. 524 00:23:45,581 --> 00:23:48,967 >> [Audiencia de risa] 525 00:23:48,967 --> 00:23:49,800 DAVID J. Malan: E? 526 00:23:49,800 --> 00:23:52,490 Audiencia: E mal varrer calquera [inaudível]. 527 00:23:52,490 --> 00:23:59,536 [Audiencia de risa] 528 00:23:59,536 --> 00:24:04,456 Audiencia: Claro que, antes de [inaudível] elimina o papel da marmelada. 529 00:24:04,456 --> 00:24:06,940 DAVID J. Malan: Elimina o papel da marmelada. 530 00:24:06,940 --> 00:24:08,229 Paso 14. 531 00:24:08,229 --> 00:24:09,020 Estamos case alí. 532 00:24:09,020 --> 00:24:09,857 Si? 533 00:24:09,857 --> 00:24:12,600 >> Audiencia: Inverter o bote de marmelada antes de todo cae. 534 00:24:12,600 --> 00:24:16,515 >> DAVID J. Malan: Invert marmelada botella antes de marmelada cae. 535 00:24:16,515 --> 00:24:19,070 536 00:24:19,070 --> 00:24:19,890 Paso 15. 537 00:24:19,890 --> 00:24:21,130 >> Audiencia: Recoloque a cubrir. 538 00:24:21,130 --> 00:24:22,463 >> DAVID J. Malan: Recoloque a cubrir. 539 00:24:22,463 --> 00:24:25,880 540 00:24:25,880 --> 00:24:28,190 Paso 16. 541 00:24:28,190 --> 00:24:28,931 Si? 542 00:24:28,931 --> 00:24:29,806 >> Audiencia: [inaudível] 543 00:24:29,806 --> 00:24:34,109 544 00:24:34,109 --> 00:24:35,400 DAVID J. Malan: Diga iso de novo. 545 00:24:35,400 --> 00:24:38,100 Audiencia: Colla tapa fóra da súa marmelada. 546 00:24:38,100 --> 00:24:39,650 DAVID J. Malan: Off seu gingado. 547 00:24:39,650 --> 00:24:43,720 548 00:24:43,720 --> 00:24:49,510 Entón realmente-- Oops. 549 00:24:49,510 --> 00:24:50,420 Veña. 550 00:24:50,420 --> 00:24:51,740 Recoloque a cubrir. 551 00:24:51,740 --> 00:24:56,660 Pon cap-- Vostede dixo retire a tapa de marmelada. 552 00:24:56,660 --> 00:24:58,950 Sinto-se como se estivésemos nun pouco de un loop. 553 00:24:58,950 --> 00:24:59,640 Paso 17. 554 00:24:59,640 --> 00:25:00,398 Si? 555 00:25:00,398 --> 00:25:02,639 >> Audiencia: [inaudível] 556 00:25:02,639 --> 00:25:03,930 DAVID J. Malan: Diga iso de novo. 557 00:25:03,930 --> 00:25:05,150 Audiencia: [inaudível] 558 00:25:05,150 --> 00:25:07,835 DAVID J. Malan: Voltar para step-- 559 00:25:07,835 --> 00:25:10,110 Audiencia: [inaudível] 560 00:25:10,110 --> 00:25:13,760 DAVID J. Malan: Eliminar cap de manteiga de cacahuete. 561 00:25:13,760 --> 00:25:14,492 Si? 562 00:25:14,492 --> 00:25:16,430 >> Audiencia: Large todo o marmelada co pan. 563 00:25:16,430 --> 00:25:19,040 >> DAVID J. Malan: Large todo a marmelada co pan. 564 00:25:19,040 --> 00:25:25,372 565 00:25:25,372 --> 00:25:26,830 DAVID J. Malan: Estamos case alí. 566 00:25:26,830 --> 00:25:27,800 Paso 19. 567 00:25:27,800 --> 00:25:30,250 >> Audiencia: Elimina o exceso de marmelada. 568 00:25:30,250 --> 00:25:31,720 >> DAVID J. Malan: Haha, marmelada. 569 00:25:31,720 --> 00:25:36,615 >> [Aplausos] 570 00:25:36,615 --> 00:25:39,240 DAVID J. Malan: Por que non nós-- un paso máis para tomar esta casa. 571 00:25:39,240 --> 00:25:41,720 Máis un paso e, a continuación, imos servir bocadillos. 572 00:25:41,720 --> 00:25:42,900 Si? 573 00:25:42,900 --> 00:25:45,570 >> Audiencia: [inaudível] 574 00:25:45,570 --> 00:25:50,704 >> DAVID J. Malan: Aínda que calquera bocadillos guión Imos remains-- isso-- comer. 575 00:25:50,704 --> 00:25:56,400 >> [Risas do público] 576 00:25:56,400 --> 00:26:00,395 >> DAVID J. Malan: Todo ben, grazas aos nosos voluntarios aquí. 577 00:26:00,395 --> 00:26:06,150 >> [Aplausos} 578 00:26:06,150 --> 00:26:08,940 >> DAVID J. Malan: Temos algunhas agradables agasallos de despedida para cada un de vostedes. 579 00:26:08,940 --> 00:26:14,350 A súa propia manteiga de cacahuete, marmelada, e pan para levar a casa. 580 00:26:14,350 --> 00:26:15,774 Grazas. 581 00:26:15,774 --> 00:26:17,118 >> Kiersten: Grazas. 582 00:26:17,118 --> 00:26:18,618 DAVID J. Malan: [inaudível] benvidos. 583 00:26:18,618 --> 00:26:21,849 [Aplausos] 584 00:26:21,849 --> 00:26:24,390 DAVID J. Malan: Entón, iso é, Por suposto, un exemplo ridículo. 585 00:26:24,390 --> 00:26:24,890 Correcto? 586 00:26:24,890 --> 00:26:28,890 Pero iso tipo de revelar como nós humanos pode ter claridade para concedida. 587 00:26:28,890 --> 00:26:30,890 E o feito de eu ser falando con outro ser humano, 588 00:26:30,890 --> 00:26:33,300 el ou ela simplemente sabe o que quere dicir. 589 00:26:33,300 --> 00:26:35,220 >> Os ordenadores non están indo para saber o que quere dicir, 590 00:26:35,220 --> 00:26:37,430 mesmo cando se utiliza, como estamos a piques de facer hoxe, 591 00:26:37,430 --> 00:26:42,300 programar algo en risco, unha drag e soltar, linguaxe de estilo peza do puzzle. 592 00:26:42,300 --> 00:26:44,310 Mesmo designado para mozos nenos, ten 593 00:26:44,310 --> 00:26:48,726 ser tan explícita e tan literal con o que quere que o seu programa para facer. 594 00:26:48,726 --> 00:26:50,600 Agora, en definitiva, somos será a programación 595 00:26:50,600 --> 00:26:53,550 non no código pseudocódigo Inglés como sintaxe, 596 00:26:53,550 --> 00:26:56,370 que o código ou, máis propiamente, o código fonte. 597 00:26:56,370 --> 00:26:59,260 O código fonte é só a forma extravagante ao código que describe o que realmente 598 00:26:59,260 --> 00:27:01,730 escribir cun teclado que é non en inglés, por si só. 599 00:27:01,730 --> 00:27:06,480 É en C ou Java ou C ++ ou algo así, como veremos en breve. 600 00:27:06,480 --> 00:27:09,510 >> E, de feito, só para asustar un algúns de vós, a primeira vista, 601 00:27:09,510 --> 00:27:13,769 este é un programa escrito nunha linguaxe chamado C. Pero, para un-susto algo de ti, 602 00:27:13,769 --> 00:27:15,560 será totalmente entender o que está a suceder 603 00:27:15,560 --> 00:27:18,980 en vir a próxima luns cando trata de algo así. 604 00:27:18,980 --> 00:27:20,510 Francamente, isto é unha linguaxe máis vello. 605 00:27:20,510 --> 00:27:22,430 É moi misteriosa, pero é representativa 606 00:27:22,430 --> 00:27:26,120 dunha serie de linguaxes que a día de hoxe ten unha morea de parénteses e crespos 607 00:27:26,120 --> 00:27:28,630 claves e comiñas e comas. 608 00:27:28,630 --> 00:27:30,780 E unha morea de presente material sintáctica que non é 609 00:27:30,780 --> 00:27:32,450 en todos intelectualmente interesante. 610 00:27:32,450 --> 00:27:35,790 En realidade, é unha distracción absoluta a partir das ideas moi simple 611 00:27:35,790 --> 00:27:37,370 que están nos mirando na cara. 612 00:27:37,370 --> 00:27:41,760 Este programa, como pode só adiviñar, impresións a pantalla do ordenador de alguén 613 00:27:41,760 --> 00:27:44,070 as palabras "Ola mundo coma." 614 00:27:44,070 --> 00:27:44,860 É iso aí. 615 00:27:44,860 --> 00:27:46,580 Entón, claramente, non hai unha morea de cousas que se 616 00:27:46,580 --> 00:27:48,970 quedando no camiño de algunha evidencia alí, 617 00:27:48,970 --> 00:27:52,490 pero vai desprazar moi rapidamente distancia e ser completamente intuitiva. 618 00:27:52,490 --> 00:27:55,617 >> En realidade, o que nós imos facer hoxe é destilar esta moi complexo 619 00:27:55,617 --> 00:27:58,950 programa busca, que unha vez máis vai chegar de entender rapidamente, pero a algo 620 00:27:58,950 --> 00:27:59,710 moito máis simple. 621 00:27:59,710 --> 00:28:01,640 Nós só dicir o que queremos dicir. 622 00:28:01,640 --> 00:28:05,590 Imos deseñar unha imaxe do que queremos dicir, por medio destas pezas de puzzle aquí. 623 00:28:05,590 --> 00:28:09,110 >> Polo tanto, esta é unha programación linguaxe coñecida como cero. 624 00:28:09,110 --> 00:28:11,080 Foi desenvolvido polo Laboratorio de Medios do MIT. 625 00:28:11,080 --> 00:28:14,830 E o que podes ver no conxunto de problemas cero, , Que será lanzado esta noite, 626 00:28:14,830 --> 00:28:18,980 nós imos ter que ir a este URL aquí scratch.mit.edu. 627 00:28:18,980 --> 00:28:20,940 E eles teñen un web interface de base a través da cal 628 00:28:20,940 --> 00:28:22,540 vai escribir o seu primeiro programa. 629 00:28:22,540 --> 00:28:25,330 Ou aqueles de vostedes con previa experiencia, segundo os seus programas, 630 00:28:25,330 --> 00:28:28,090 pero nun ambiente que é probablemente algo descoñecido e que 631 00:28:28,090 --> 00:28:32,930 vai empurralo para crear algo usando este ambiente moi visual. 632 00:28:32,930 --> 00:28:35,940 >> Agora, o que eu vou facer aquí é abrir o programa en si. 633 00:28:35,940 --> 00:28:41,911 Ela existe non só como un explorador, pero tamén como un programa de descarga 634 00:28:41,911 --> 00:28:44,660 de xeito que realmente pode usalo se non ten acceso a Internet. 635 00:28:44,660 --> 00:28:46,743 E eu vou facer iso aquí, en Sanders, só 636 00:28:46,743 --> 00:28:49,580 no caso de que o WiFi non cooperar de super ben. 637 00:28:49,580 --> 00:28:52,640 E o que eu vou facer é punto fóra algunhas características deste programa. 638 00:28:52,640 --> 00:28:55,720 Entón, para quedar claro, eu teño só dúas veces prema na icona no meu escritorio, 639 00:28:55,720 --> 00:28:59,830 ou equivalentemente ir para scratch.mit.edu, e é levado cara arriba nesta xanela. 640 00:28:59,830 --> 00:29:01,650 Este é un ambiente de programación. 641 00:29:01,650 --> 00:29:04,110 É unha peza de software que algúns dos nosos amigos do MIT 642 00:29:04,110 --> 00:29:08,850 escribiu que imos nós e escribe programas nunha linguaxe chamada de borrador. 643 00:29:08,850 --> 00:29:12,010 >> Agora, este pasa a ser un gato que tamén é chamado risco 644 00:29:12,010 --> 00:29:13,890 e este é o mundo no que vive. 645 00:29:13,890 --> 00:29:17,175 Esta é a fase de, por así dicir, que rectángulo na esquina superior esquerda. 646 00:29:17,175 --> 00:29:18,800 E non ten que mirar como un gato. 647 00:29:18,800 --> 00:29:20,591 Pode facelo parecer como calquera cousa e 648 00:29:20,591 --> 00:29:23,700 pode ter moitos deses sprites, ou personaxes, nun programa. 649 00:29:23,700 --> 00:29:27,450 Mentres tanto, aquí na extrema seguro, é unha gran folla en branco. 650 00:29:27,450 --> 00:29:30,260 E é aí que, nun momento, imos comezar a programación 651 00:29:30,260 --> 00:29:32,750 arrastrando e soltando estes puzzle gráfica 652 00:29:32,750 --> 00:29:35,300 pezas que están á dereita aquí no medio. 653 00:29:35,300 --> 00:29:38,140 E hai moito máis deles do que imos pasar un tempo aquí na aula 654 00:29:38,140 --> 00:29:40,080 porque vai descubrir que todos eles son moi intuitivo. 655 00:29:40,080 --> 00:29:41,788 Unha vez máis, el foi designado para os nenos, pero nós 656 00:29:41,788 --> 00:29:45,759 usalo para provocar unha separación algúns deses ideas fundamentais de variables, loops, 657 00:29:45,759 --> 00:29:48,050 condicións e, en breve, as cousas como funcións e eventos 658 00:29:48,050 --> 00:29:51,810 e fíos e outras cousas extravagantes imos chegar ao pouco tempo para realmente crear 659 00:29:51,810 --> 00:29:53,840 algo a partir de cero. 660 00:29:53,840 --> 00:29:54,810 Trocadilhos. 661 00:29:54,810 --> 00:29:58,740 >> Agora, o que eu vou facer aquí é prema en non o movemento, pero o control. 662 00:29:58,740 --> 00:30:01,400 E este é só un categorización de aqui-- 663 00:30:01,400 --> 00:30:03,150 e vexo unha diferente cor conxunto de bloques. 664 00:30:03,150 --> 00:30:05,030 Pero notar algunhas palabras familiares. 665 00:30:05,030 --> 00:30:07,830 "Se" e "else if" e "repetición". 666 00:30:07,830 --> 00:30:10,440 E probablemente pode adiviñar que é unha reminiscencia do sector, 667 00:30:10,440 --> 00:30:12,870 ou as condicións que vimos, e mesmo a construción de loop. 668 00:30:12,870 --> 00:30:14,760 Polo tanto, temos bloques similares aquí. 669 00:30:14,760 --> 00:30:16,720 Pero o máis interesante é este aquí. 670 00:30:16,720 --> 00:30:20,690 Cando esta bandeira verde é premendo, tanto, para aqueles con programación previa 671 00:30:20,690 --> 00:30:23,110 experiencia, equivale para unha función principal. 672 00:30:23,110 --> 00:30:25,300 Pero para quen non coñece, esta é a parte do enigma 673 00:30:25,300 --> 00:30:27,320 que promoverá toda a nosa programación. 674 00:30:27,320 --> 00:30:31,350 Significa literalmente cando vou, neste programa, e prema en unha flag-- verde 675 00:30:31,350 --> 00:30:35,560 que se pode ver aquí no esquina superior esquerda da interface de usuario, 676 00:30:35,560 --> 00:30:38,570 así que ver a bandeira verde xunto do sinal vermello? 677 00:30:38,570 --> 00:30:41,475 Cando premo iso, meu programa será executado. 678 00:30:41,475 --> 00:30:43,850 Agora, eu vou facer algo super sinxelo co Scratch. 679 00:30:43,850 --> 00:30:46,640 Eu estou indo a ir adiante e vai para o panel de miradas 680 00:30:46,640 --> 00:30:50,010 aquí, onde eu teño unha morea de pezas do quebra-vermello, 681 00:30:50,010 --> 00:30:53,887 e eu estou indo a ir adiante e facer algo super sinxelo como, digamos. 682 00:30:53,887 --> 00:30:55,720 E teña en conta depois-- este texto na caixa branca 683 00:30:55,720 --> 00:30:59,290 é editable-- eu vou dicir "Ola mundo", así como nós 684 00:30:59,290 --> 00:31:01,470 fixo naquel textual versión dun momento atrás. 685 00:31:01,470 --> 00:31:05,920 E agora, se eu for e prema neste bandeira verde, eu xa programada. 686 00:31:05,920 --> 00:31:07,810 Non é un particular programa interesante, 687 00:31:07,810 --> 00:31:09,760 pero eu fixen o ordenador facer algo. 688 00:31:09,760 --> 00:31:13,120 Comece un programa e fixen o que me dixo para facer. 689 00:31:13,120 --> 00:31:16,170 Agora, podo seguir arrastrar e soltar máis e máis destas pezas do puzzle 690 00:31:16,170 --> 00:31:19,220 e eles van bloquear, pero imos bater un pouco de terminoloxía aquí 691 00:31:19,220 --> 00:31:21,680 que veremos recorrentes durante todo o curso, 692 00:31:21,680 --> 00:31:24,610 e realmente en toda a ciencia da computación e programación en xeral. 693 00:31:24,610 --> 00:31:27,990 >> Este "dicir" do bloque, en vermello, imos só comezar a chamar a un comunicado. 694 00:31:27,990 --> 00:31:29,240 É como unha declaración de feito. 695 00:31:29,240 --> 00:31:30,380 Faino. 696 00:31:30,380 --> 00:31:32,590 Entón, é unha categoría de instrucións que 697 00:31:32,590 --> 00:31:36,760 pode alimentar un ordenador como parte dun programa ou dun algoritmo. 698 00:31:36,760 --> 00:31:39,270 E para ser claro, ten probablemente tida como certa 699 00:31:39,270 --> 00:31:41,930 que ten programas no seu computador. 700 00:31:41,930 --> 00:31:45,850 E son o tipo de algoritmos, pero unha programa é realmente unha gran cantidade de algoritmos 701 00:31:45,850 --> 00:31:47,160 que algúns seres humanos, escribiu. 702 00:31:47,160 --> 00:31:49,040 Eles embalado cara arriba e eles venderon isto para que, 703 00:31:49,040 --> 00:31:51,330 ou eles posta nun sitio web para baixar. 704 00:31:51,330 --> 00:31:54,930 Así, un programa é só un todo chea de ceros e uns 705 00:31:54,930 --> 00:31:56,970 que, dalgún xeito, os seres humanos crearon. 706 00:31:56,970 --> 00:32:00,080 E eses patróns de ceros e os representan cousas, en definitiva, 707 00:32:00,080 --> 00:32:04,030 como "dicir Hola mundo" ou "o xogo esta música "ou" reproducir este vídeo " 708 00:32:04,030 --> 00:32:05,129 ou "enviar un correo electrónico." 709 00:32:05,129 --> 00:32:06,920 Pero imos voltar en forma máis detalles o que 710 00:32:06,920 --> 00:32:08,780 un programa é cando, mesmo, escribilos. 711 00:32:08,780 --> 00:32:11,320 >> Aquí está outra statement-- "Espera un segundo." 712 00:32:11,320 --> 00:32:14,330 Eu non uso iso aínda, pero se eu queira meu programa para facer unha pausa por un momento 713 00:32:14,330 --> 00:32:16,540 facer algo, eu podo dicir que para facelo. 714 00:32:16,540 --> 00:32:18,450 Espere un segundo. 715 00:32:18,450 --> 00:32:20,150 Agora outro podería ser "reproducir o son." 716 00:32:20,150 --> 00:32:23,270 Entón, este é exclusivo para cero, ten a capacidade de reproducir sons. 717 00:32:23,270 --> 00:32:26,130 Así, unha declaración que pode utilización é, aquí, "reproducir o son." 718 00:32:26,130 --> 00:32:29,530 Mentres tanto, a expresión booleana, polo que esta é unha palabra extravagante 719 00:32:29,530 --> 00:32:34,490 en homenaxe a unha cara chamado Mr bool, e iso é todo sobre a cuestión. 720 00:32:34,490 --> 00:32:37,470 Certo ou false-- é o rato para abaixo? 721 00:32:37,470 --> 00:32:41,100 Unha expresión booleana é só algunha expresión en inglés 722 00:32:41,100 --> 00:32:42,860 que é verdadeiro ou falso. 723 00:32:42,860 --> 00:32:44,140 Activado ou desactivado. 724 00:32:44,140 --> 00:32:45,130 Calquera ou cero. 725 00:32:45,130 --> 00:32:46,960 Pode pensar niso en calquera número de formas, 726 00:32:46,960 --> 00:32:49,220 pero é certo ou esa falsa, en última instancia. 727 00:32:49,220 --> 00:32:52,540 Así, "do rato abaixo punto de interrogação" que sería unha expresión booleana. 728 00:32:52,540 --> 00:32:54,300 E pode pensar nos outros, quizais. 729 00:32:54,300 --> 00:32:57,510 Por exemplo, "é o número esquerda menor que o número non? " 730 00:32:57,510 --> 00:32:59,410 Isto tamén sería unha expresión booleana. 731 00:32:59,410 --> 00:33:01,540 "Menos" é unha expresión booleana. 732 00:33:01,540 --> 00:33:03,280 >> Este, tamén, "pointer tocar rato." 733 00:33:03,280 --> 00:33:05,196 Non sei por que chamouse o punteiro do rato. 734 00:33:05,196 --> 00:33:08,430 Significa só que, se o cursor, é o frecha na pantalla, tocando o gato, 735 00:33:08,430 --> 00:33:09,022 por exemplo. 736 00:33:09,022 --> 00:33:10,480 Ou algún outro aspecto da pantalla. 737 00:33:10,480 --> 00:33:13,710 E é unha cuestión, unha vez máis, e que denota unha expresión booleana. 738 00:33:13,710 --> 00:33:17,130 Algo que pode quero usar nunha condición. 739 00:33:17,130 --> 00:33:19,100 Entón, nós imos chegar a iso en só un momento. 740 00:33:19,100 --> 00:33:20,350 Pode "e" cousas xuntas. 741 00:33:20,350 --> 00:33:23,099 Entón, se quere comprobar se este é o caso e que é o caso, 742 00:33:23,099 --> 00:33:25,580 pode utilizar un "e" bloque coma este. 743 00:33:25,580 --> 00:33:26,850 E aquí está nesa condición. 744 00:33:26,850 --> 00:33:31,290 Teña en conta a forma da pequena abertura na parte superior desta parte do enigma amarelo, 745 00:33:31,290 --> 00:33:34,480 É unha reminiscencia da forma que acabamos de ver un momento atrás. 746 00:33:34,480 --> 00:33:37,920 Cada unha desas expresións booleanas ten esas arestas pontiagudas 747 00:33:37,920 --> 00:33:39,030 na parte esquerda e dereita. 748 00:33:39,030 --> 00:33:43,140 E iso é porque a xente do MIT decidiu que por formatos de transporte visualmente, 749 00:33:43,140 --> 00:33:45,780 pode tipo de axudar a xente, estudantes e nenos, 750 00:33:45,780 --> 00:33:47,650 ao tipo de encher os espazos en branco, literalmente. 751 00:33:47,650 --> 00:33:49,780 >> Agora que puzzle-- que apertura é algo pequeno, 752 00:33:49,780 --> 00:33:52,750 e, como veremos no programa, en risco, vai medrar para axeitado. 753 00:33:52,750 --> 00:33:54,830 El vai manter a súa forma, en última instancia. 754 00:33:54,830 --> 00:33:58,350 Así, unha condición permítelle decidir "Eu debería facer algo ou non?" 755 00:33:58,350 --> 00:34:00,470 Unha expresión booleana é a cuestión real 756 00:34:00,470 --> 00:34:04,100 está a usar para decidir se vou a á esquerda ou ir cara á dereita 757 00:34:04,100 --> 00:34:06,710 cando me deparou con este chamado bifurcación na estrada? 758 00:34:06,710 --> 00:34:07,980 Pode ter dúas ramas. 759 00:34:07,980 --> 00:34:10,909 Se algo é verdade, facer tanto, máis ir por ese camiño, 760 00:34:10,909 --> 00:34:14,590 ou pode simplemente non facer nada todo, como este bloque implícita. 761 00:34:14,590 --> 00:34:16,360 Do mesmo xeito, pode aninhar estas cousas. 762 00:34:16,360 --> 00:34:20,204 Entón, se quere triplicar bifurcación na estrada, ou facer isto ou isto ou aquilo, 763 00:34:20,204 --> 00:34:21,870 pode só niño estas cousas xuntas. 764 00:34:21,870 --> 00:34:24,520 E iso comeza a ser un pouco feo, finalmente, con certeza, 765 00:34:24,520 --> 00:34:26,120 pero a lóxica segue sendo a mesma. 766 00:34:26,120 --> 00:34:28,000 Pode literalmente ler este de arriba abaixo 767 00:34:28,000 --> 00:34:33,290 e el di que o que means-- se este é verdade, iso, máis se outra cousa. 768 00:34:33,290 --> 00:34:36,179 >> Un ciclo non queda máis simple en perigo. 769 00:34:36,179 --> 00:34:37,422 Sempre faga o seguinte. 770 00:34:37,422 --> 00:34:39,880 Agora non pode pensar que pode facer moito porque non hai 771 00:34:39,880 --> 00:34:42,839 o espazo entre a parte superior e á parte inferior desta apertura peza do puzzle. 772 00:34:42,839 --> 00:34:45,671 Pero vai ver Raspadinha vai crecer para atender o maior número de pezas do puzzle 773 00:34:45,671 --> 00:34:47,060 como quere enfiar dentro. 774 00:34:47,060 --> 00:34:48,960 Outro circuíto se pode expresado con repeticións. 775 00:34:48,960 --> 00:34:51,590 Se sabe de antemán ", I quero facer algo 10 veces ", 776 00:34:51,590 --> 00:34:54,010 pode só dicir Raspadinha facer algo 10 veces. 777 00:34:54,010 --> 00:34:57,260 E, mentres tanto, podemos ter variables. 778 00:34:57,260 --> 00:34:59,572 Entón aquí está arbitraria, é laranxa, neste caso, 779 00:34:59,572 --> 00:35:00,780 e este é un rápido tour. 780 00:35:00,780 --> 00:35:04,540 Unha vez máis, vai atopar iso moi accesible unha vez que comezar a apuntar e premer. 781 00:35:04,540 --> 00:35:07,930 Eu nomeei miña variable n, pero eu podería chamado el o que eu queira, 782 00:35:07,930 --> 00:35:11,280 e eu estou axustando-lo aquí, en Neste exemplo arbitraria, a cero. 783 00:35:11,280 --> 00:35:14,250 >> Agora a ver un programa como o Hello mundo non é tan convincente, 784 00:35:14,250 --> 00:35:17,900 entón imos realmente ceder de algo que un ex-alumno fixo. 785 00:35:17,900 --> 00:35:23,100 Deixe-me ir adiante e abrir-se, por exemplo, este aquí, 786 00:35:23,100 --> 00:35:26,780 para que eu adoro ter un voluntario. 787 00:35:26,780 --> 00:35:28,450 Todo ben, como sobre-- imos máis aló. 788 00:35:28,450 --> 00:35:29,240 Si, imos cara arriba. 789 00:35:29,240 --> 00:35:30,056 Cal é o seu nome? 790 00:35:30,056 --> 00:35:30,635 >> Abby: Abby. 791 00:35:30,635 --> 00:35:32,010 DAVID J. Malan: Abby, imos alí cara arriba. 792 00:35:32,010 --> 00:35:35,930 Entón, xa xogou este xogo antes? 793 00:35:35,930 --> 00:35:36,430 Abby: N º 794 00:35:36,430 --> 00:35:37,370 DAVID J. Malan: Todo ben. 795 00:35:37,370 --> 00:35:38,380 David, pracer de coñece-lo. 796 00:35:38,380 --> 00:35:39,620 Veña para acá. 797 00:35:39,620 --> 00:35:42,300 E cal é a súa programación fondo, de ser o caso. 798 00:35:42,300 --> 00:35:43,914 >> Abby: Aprendín algunhas C ++. 799 00:35:43,914 --> 00:35:45,580 DAVID J. Malan: Aprendeu algo C ++. 800 00:35:45,580 --> 00:35:48,382 E cal é o seu xogo tocando de fondo? 801 00:35:48,382 --> 00:35:49,505 >> Abby: Non moito. 802 00:35:49,505 --> 00:35:51,130 DAVID J. Malan: OK, entón imos levar isto. 803 00:35:51,130 --> 00:35:52,700 Entón aquí está como o xogo vai funcionar. 804 00:35:52,700 --> 00:35:54,510 Eu estou indo a ir adiante e click na bandeira verde, que 805 00:35:54,510 --> 00:35:55,830 está aquí enriba na parte superior dereita. 806 00:35:55,830 --> 00:35:59,710 Agora, o seu antecesor na clase deulle algunhas instrucións aquí. 807 00:35:59,710 --> 00:36:02,306 E en só un momento, di que "o espazo para comezar." 808 00:36:02,306 --> 00:36:03,680 Entón vai adiante e bateu a barra de espazo. 809 00:36:03,680 --> 00:36:05,507 >> XOGO DE COMPUTADOR: Pikachu. 810 00:36:05,507 --> 00:36:08,340 DAVID J. Malan: E o obxectivo é incorporarse á comida, como representado non 811 00:36:08,340 --> 00:36:09,320 á esquerda. 812 00:36:09,320 --> 00:36:11,388 E para [inaudível] 813 00:36:11,388 --> 00:36:15,356 >> [GAME MUSIC Playing] 814 00:36:15,356 --> 00:36:27,280 815 00:36:27,280 --> 00:36:29,610 >> DAVID J. Malan: Ohh, así, Grazas por xogar. 816 00:36:29,610 --> 00:36:32,800 Temos aquí un pouco separando agasallo para ti. 817 00:36:32,800 --> 00:36:35,574 Temos CS50 balón antiestrés, Se desexa escoller. 818 00:36:35,574 --> 00:36:36,820 Todo ben, é bo coñece-lo. 819 00:36:36,820 --> 00:36:39,680 Grazas por teren benvida e reto. 820 00:36:39,680 --> 00:36:42,410 821 00:36:42,410 --> 00:36:46,910 Polo tanto, temos máis bolas de estrés, de xeito imos facer un exemplo para motivar. 822 00:36:46,910 --> 00:36:48,150 Un voluntario? 823 00:36:48,150 --> 00:36:50,510 Todo ben, que tal ben aquí na fronte. 824 00:36:50,510 --> 00:36:51,250 Cal é o seu nome? 825 00:36:51,250 --> 00:36:51,660 >> Phillip: Phillip. 826 00:36:51,660 --> 00:36:52,660 >> DAVID J. Malan: Phillip. 827 00:36:52,660 --> 00:36:54,530 Veña, Phillip. 828 00:36:54,530 --> 00:36:57,340 Así, Phillip será reto con outro partido 829 00:36:57,340 --> 00:37:00,840 que un dos seus antecesores escribiu como parte do conxunto de problemas cero, 830 00:37:00,840 --> 00:37:03,510 chamado O partido máis difícil do Ivy. 831 00:37:03,510 --> 00:37:05,980 E nós imos ver en só un momento o que se quere dicir con iso. 832 00:37:05,980 --> 00:37:07,400 Phillip, pracer de coñece-lo. 833 00:37:07,400 --> 00:37:09,060 Cal é a súa formación? 834 00:37:09,060 --> 00:37:10,310 Phillip: Feito unha morea de codificación. 835 00:37:10,310 --> 00:37:11,110 Feito un pouco de xogo, tamén. 836 00:37:11,110 --> 00:37:11,570 >> DAVID J. Malan: Aceptar. 837 00:37:11,570 --> 00:37:12,620 Ten unha morea de xogos, tamén. 838 00:37:12,620 --> 00:37:14,230 E xa xogou este partido antes? 839 00:37:14,230 --> 00:37:14,730 >> Phillip: Non 840 00:37:14,730 --> 00:37:16,438 David J. Malan: Todos seguro, entón imos alí. 841 00:37:16,438 --> 00:37:18,434 Eu estou indo a ir adiante e premer na bandeira verde. 842 00:37:18,434 --> 00:37:24,160 >> [GAME MUSIC] 843 00:37:24,160 --> 00:37:27,770 >> [MUSIC MC Hammer, "U non pode TOCAR ESTE"] 844 00:37:27,770 --> 00:38:39,790 845 00:38:39,790 --> 00:38:41,635 >> Phillip: [inaudível] 846 00:38:41,635 --> 00:38:42,760 DAVID J. Malan: [inaudível] 847 00:38:42,760 --> 00:38:44,740 Phillip: [inaudível] 848 00:38:44,740 --> 00:38:49,056 [Risas] 849 00:38:49,056 --> 00:38:50,680 [MUSIC MC Hammer, "U non pode TOCAR ESTE"] 850 00:38:50,680 --> 00:38:52,660 DAVID J. Malan: [inaudível] Arar a través del. 851 00:38:52,660 --> 00:38:54,094 Phillip: [inaudível] 852 00:38:54,094 --> 00:38:55,135 DAVID J. Malan: Dalle. 853 00:38:55,135 --> 00:39:01,570 [MUSIC MC Hammer, "U non pode TOCAR ESTE"] 854 00:39:01,570 --> 00:39:15,832 855 00:39:15,832 --> 00:39:16,915 DAVID J. Malan: Todo ben. 856 00:39:16,915 --> 00:39:18,400 Parabéns. 857 00:39:18,400 --> 00:39:25,150 >> [Aplausos] 858 00:39:25,150 --> 00:39:27,330 >> DAVID J. Malan: Imos posto que en liña máis tarde, para 859 00:39:27,330 --> 00:39:29,820 que pode procrastinar con el tamén. 860 00:39:29,820 --> 00:39:32,550 Princeton vén inmediatamente, despois diso. 861 00:39:32,550 --> 00:39:35,470 >> Entón agora imos realmente proceder que comezar de cero, 862 00:39:35,470 --> 00:39:39,310 por así dicir, e realmente construír ata podemos desmembrar algunhas destas ideas 863 00:39:39,310 --> 00:39:41,970 e chegar a algo aínda máis complexo ao final. 864 00:39:41,970 --> 00:39:45,240 Vou por aquí e eu vou ir adiante e crear un novo arquivo. 865 00:39:45,240 --> 00:39:47,460 Entón, de novo, o conxunto de problemas andará a través de algunhas destas etapas. 866 00:39:47,460 --> 00:39:49,300 Pero todo o que eu fixen foi ir ao menú Arquivo e eu 867 00:39:49,300 --> 00:39:52,760 dixo "novo", tan parecido Microsoft Word, ou calquera outro programa como este. 868 00:39:52,760 --> 00:39:56,630 >> E imos adiante agora-- e nós implementado "Ola, mundo" un momento atrás, 869 00:39:56,630 --> 00:39:58,410 pero imos facer algo un pouco máis bonito. 870 00:39:58,410 --> 00:40:00,150 Eu estou indo a ir ata eventos. 871 00:40:00,150 --> 00:40:02,350 E eu vou facer ", cando bandeira verde premendo. " 872 00:40:02,350 --> 00:40:05,830 E entón eu vou usar, digamos, unha rama. 873 00:40:05,830 --> 00:40:07,610 Entón, eu vou usar un "se" condición. 874 00:40:07,610 --> 00:40:10,940 E teña en conta como así que eu chegar preto para el, el quere se encaixan. 875 00:40:10,940 --> 00:40:13,020 Entón, eu deixo ir e que se encaixe en conxunto. 876 00:40:13,020 --> 00:40:15,150 E agora podo facer algo interesante. 877 00:40:15,150 --> 00:40:19,150 Se eu rolar por aquí, eu vou ver unha chea de bloques. 878 00:40:19,150 --> 00:40:22,620 Se eu fose a "data" - déixeme zoom em-- hai algo sobre variables. 879 00:40:22,620 --> 00:40:26,160 Se eu for a "movemento", pode aparentemente mudar as cousas. 880 00:40:26,160 --> 00:40:28,760 Se eu for a "operadores" - Oh, iso é interesante, 881 00:40:28,760 --> 00:40:31,000 Podo incorporarse un número aleatorio. 882 00:40:31,000 --> 00:40:34,119 Entón deixe-me facer algo con só algunha probabilidade, só porque. 883 00:40:34,119 --> 00:40:36,160 Eu estou indo a ir adiante e arrastrar esta parte do enigma, 884 00:40:36,160 --> 00:40:37,910 isto é que a menos de bloque, polo que é só 885 00:40:37,910 --> 00:40:39,480 "É ese número menor que un?" 886 00:40:39,480 --> 00:40:42,438 Pero eu non quero un código ríxido dun número porque que ser moi inútil. 887 00:40:42,438 --> 00:40:46,270 Entón eu vou para arrastrar esta peza aquí, e entenda como se encaixe en, 888 00:40:46,270 --> 00:40:49,480 e agora déixeme ir adiante e dicir "si o número que é escollido aleatoriamente 889 00:40:49,480 --> 00:40:51,820 é menos de seis, faga o seguinte. " 890 00:40:51,820 --> 00:40:52,790 Agora, por menos de seis? 891 00:40:52,790 --> 00:40:56,400 Cal a probabilidade é iso de forma eficaz me vai dar, só intuitivamente? 892 00:40:56,400 --> 00:40:57,440 Cerca de 50%, non? 893 00:40:57,440 --> 00:41:01,190 Se o número que de adiviñar aleatoriamente entre 1 e 10, é menos que seis, 894 00:41:01,190 --> 00:41:03,480 claramente que é un, dous, tres, catro, ou cinco. 895 00:41:03,480 --> 00:41:06,740 E así que me vai dar un 50% de probabilidade de que ocorra? 896 00:41:06,740 --> 00:41:09,890 >> Ben, imos facer algo parecido tanto, "xogar miado de son." 897 00:41:09,890 --> 00:41:11,750 E noten, unha vez máis, a peza medra 898 00:41:11,750 --> 00:41:13,700 para se axustar, tanto tempo como as formas corresponden. 899 00:41:13,700 --> 00:41:14,910 Isto é que é importante. 900 00:41:14,910 --> 00:41:18,000 Deixade-me pasar a rabuñar aquí e prema en "xogo". 901 00:41:18,000 --> 00:41:19,300 Nada acontece. 902 00:41:19,300 --> 00:41:21,160 Isto é un erro? 903 00:41:21,160 --> 00:41:21,999 Non, non é necesario. 904 00:41:21,999 --> 00:41:24,040 Podería ser só que a número maior foi elixido. 905 00:41:24,040 --> 00:41:25,762 Entón, imos facelo de novo. 906 00:41:25,762 --> 00:41:27,550 Nada. 907 00:41:27,550 --> 00:41:28,344 >> [Miau] 908 00:41:28,344 --> 00:41:29,510 DAVID J. Malan: Velaquí. 909 00:41:29,510 --> 00:41:30,280 [Miau] 910 00:41:30,280 --> 00:41:31,690 DAVID J. Malan: Máis unha vez. 911 00:41:31,690 --> 00:41:32,300 N º 912 00:41:32,300 --> 00:41:32,922 >> [Miando] 913 00:41:32,922 --> 00:41:35,380 DAVID J. Malan: Entón, se ten sempre un xogo, por suposto, 914 00:41:35,380 --> 00:41:38,500 onde o material está pasando de forma aleatoria, como os bandidos están vindo ou non 915 00:41:38,500 --> 00:41:41,350 chegando á pantalla, ou as cousas están a caer ou non caer, 916 00:41:41,350 --> 00:41:43,610 iso é só porque algo super- simple como iso está a suceder. 917 00:41:43,610 --> 00:41:46,010 Escolla un número aleatorio, e se É menos que algún valor, 918 00:41:46,010 --> 00:41:49,100 quizais iso ou que facer. 919 00:41:49,100 --> 00:41:51,340 Podemos incorporar que nunha condición. 920 00:41:51,340 --> 00:41:52,600 Imos facer algo diferente. 921 00:41:52,600 --> 00:41:53,559 >> Déixeme xogar iso fóra. 922 00:41:53,559 --> 00:41:56,058 Pode se librar de cousas por só arrastrando-o para a esquerda 923 00:41:56,058 --> 00:41:56,810 e deixar ir. 924 00:41:56,810 --> 00:42:00,310 Deixe-me ir adiante e facer un bloque para sempre e moi rapidamente facer algo irritante. 925 00:42:00,310 --> 00:42:03,010 Deixe-me ir adiante e dicir "xogar miado de son." 926 00:42:03,010 --> 00:42:06,620 Pero eu non quero que iso sexa moi aburrido, entón déixeme coller neste bloque, 927 00:42:06,620 --> 00:42:09,090 "Espera un segundo", e previo aviso non hai máis espazo para iso. 928 00:42:09,090 --> 00:42:11,310 Pero se vostede é preto o suficiente, el quere ir máis alá. 929 00:42:11,310 --> 00:42:14,100 Entón, eu deixo ir e vai crecer para encher o bloque. 930 00:42:14,100 --> 00:42:15,932 Entón, agora, este é un loop. 931 00:42:15,932 --> 00:42:16,432 [Miando] 932 00:42:16,432 --> 00:42:18,473 DAVID J. Malan: Eu son literalmente facelo para sempre. 933 00:42:18,473 --> 00:42:19,360 Unha e outra vez. 934 00:42:19,360 --> 00:42:21,510 Isto non é só son natural. 935 00:42:21,510 --> 00:42:24,800 Deixe-me ir adiante e cambiar esta non dun segundo, a dous segundo 936 00:42:24,800 --> 00:42:25,854 e prema Intro. 937 00:42:25,854 --> 00:42:28,770 E o que é agradable sobre Scratch é que pode programar de forma interactiva. 938 00:42:28,770 --> 00:42:32,450 Fai un cambio, é posible escriba Intro ou xogar de novo, e vai continuar. 939 00:42:32,450 --> 00:42:34,962 Ben, agora por que non podemos facer algo un pouco máis bonito? 940 00:42:34,962 --> 00:42:39,680 En vez de facer todo a partir de cero, déixeme ir adiante e abrir un avance 941 00:42:39,680 --> 00:42:43,180 fixo un, que eu pre-cocido, chama "acariñar o gato." 942 00:42:43,180 --> 00:42:44,920 E nós imos publicar todos estes arquivos en liña, 943 00:42:44,920 --> 00:42:48,464 e conxunto de problemas de cero pode dicirlle como acceder a eles e abri-los. 944 00:42:48,464 --> 00:42:49,880 E teña en conta, iso é moi sinxelo. 945 00:42:49,880 --> 00:42:53,860 Pero antes, me parece agarrado un bloque "para sempre", entón eu teño un loop. 946 00:42:53,860 --> 00:42:55,500 E entón eu teño un "se" condición. 947 00:42:55,500 --> 00:42:57,410 Eu teño unha expresión booleana. 948 00:42:57,410 --> 00:43:00,100 >> Así, en inglés, só mirando para iso, especialmente se nunca 949 00:43:00,100 --> 00:43:04,278 programado antes, só de forma intuitiva, que é o que isto vai facer, este programa? 950 00:43:04,278 --> 00:43:06,910 >> [Audiencia Chatter] 951 00:43:06,910 --> 00:43:09,960 >> DAVID J. Malan: Si acariñar o gato, o gato vai miar, non? 952 00:43:09,960 --> 00:43:14,560 Porque "para sempre desmarcada" é o punteiro do rato tocando o gato. 953 00:43:14,560 --> 00:43:17,630 Entón, para ser claro, e eu non dixen iso antes, todos estes puzzle 954 00:43:17,630 --> 00:43:20,750 pezas eo guión que nós os combinados en, 955 00:43:20,750 --> 00:43:25,510 por así dicir, un script é sinónimo de programa, en realidade, pertence a este gato. 956 00:43:25,510 --> 00:43:30,110 E a razón pola que é-- aviso como ese mesmo gato aquí é destacado, 957 00:43:30,110 --> 00:43:32,710 aquí pode crear un segundo gato ou can ou realmente 958 00:43:32,710 --> 00:43:33,970 calquera cousa que quere graficamente. 959 00:43:33,970 --> 00:43:35,900 Pode descargar algo de Photoshop, ou semellante, 960 00:43:35,900 --> 00:43:38,300 e integrar algo se quero facelo para un proxecto. 961 00:43:38,300 --> 00:43:40,174 E o que vai atopar, en definitiva, é que 962 00:43:40,174 --> 00:43:44,800 pode engadir scripts, engade puzzle pezas, para caracteres individuais. 963 00:43:44,800 --> 00:43:47,210 Entón, todos estes pertencen a este gato particular. 964 00:43:47,210 --> 00:43:51,770 Polo tanto, agora se eu ir adiante e xogar Neste programa, nada está a suceder. 965 00:43:51,770 --> 00:43:52,970 Pero el está en execución. 966 00:43:52,970 --> 00:43:56,364 O programa é neste loop para sempre, tipo de espera para que isto ocorre? 967 00:43:56,364 --> 00:43:57,230 >> [Audiencia Chatter] 968 00:43:57,230 --> 00:43:58,130 >> DAVID J. Malan: Para acariñar o gato. 969 00:43:58,130 --> 00:43:59,800 Entón, se eu mover o rato cara ele-- 970 00:43:59,800 --> 00:44:02,420 >> [Miando] 971 00:44:02,420 --> 00:44:04,450 >> DAVID J. Malan: Entón agora Estou acariciar o gato. 972 00:44:04,450 --> 00:44:07,330 Mentres tanto, podemos ter unha rama de parella. 973 00:44:07,330 --> 00:44:10,370 Deixe-me ir adiante e abrir se non acariñar o gato. 974 00:44:10,370 --> 00:44:12,160 Imos publicar esta liña tamén. 975 00:44:12,160 --> 00:44:16,760 Este é un pouco máis complexo, pero sen dicir 976 00:44:16,760 --> 00:44:18,780 pode adiviñar, se cadra, o que vai ocorrer. 977 00:44:18,780 --> 00:44:20,160 >> [Miando] 978 00:44:20,160 --> 00:44:23,900 >> DAVID J. Malan: Gato é miando, grand vellos tempos. 979 00:44:23,900 --> 00:44:26,690 Pero este programa claro chamado "Non acariñar o gato," 980 00:44:26,690 --> 00:44:29,350 tan claramente, quero acariñar o gato. 981 00:44:29,350 --> 00:44:30,490 >> [RUJE] 982 00:44:30,490 --> 00:44:31,940 >> DAVID J. Malan: Non acariñar o gato. 983 00:44:31,940 --> 00:44:34,230 Agora, imos dar un ollo noutro exemplo aquí. 984 00:44:34,230 --> 00:44:38,035 Este será chamada "Hi, Hi, Hi," por razóns 985 00:44:38,035 --> 00:44:40,410 que será evidente, porque así que eu executar este coisa-- 986 00:44:40,410 --> 00:44:41,401 >> [SEAL Barking] 987 00:44:41,401 --> 00:44:43,942 DAVID J. Malan: Moi doado escribir programas de raspadinhas irritantes. 988 00:44:43,942 --> 00:44:45,300 [SEAL Barking] 989 00:44:45,300 --> 00:44:48,540 DAVID J. Malan: Agora non imos en gran detalle con todos estes, 990 00:44:48,540 --> 00:44:51,150 pero ter en conta que hai unha par de novas características aquí. 991 00:44:51,150 --> 00:44:55,540 Hai unha variable, chamado "mudo" e entón hai unha morea de condicións. 992 00:44:55,540 --> 00:44:57,900 E de momento, déixeme só provoca-lo, dicindo: 993 00:44:57,900 --> 00:45:03,170 que se este cara queda moi aburrido, Podo bater a barra de espazo e el deixa. 994 00:45:03,170 --> 00:45:05,880 Porque o papel a ser desempeñada polo estes dous certificados é como segue. 995 00:45:05,880 --> 00:45:08,510 Un deles está facendo o latindo cada poucos segundos. 996 00:45:08,510 --> 00:45:11,305 A outra está só esperando para min a bater a barra de espazo. 997 00:45:11,305 --> 00:45:14,780 E se eu bater a barra de espazo, iso vai cambiar 998 00:45:14,780 --> 00:45:18,096 o estado desa variable, o valor desta variable, que é, ao parecer, 999 00:45:18,096 --> 00:45:20,470 chamado "silenciado" Non chamei algo aburrido como n, 1000 00:45:20,470 --> 00:45:22,370 Chamei-lle unha palabra en inglés, "silenciado". 1001 00:45:22,370 --> 00:45:24,740 De 1-0 ou 0-1. 1002 00:45:24,740 --> 00:45:26,830 De certo para falso ou falso para certo. 1003 00:45:26,830 --> 00:45:28,930 E para que poida realmente ver agora, que 1004 00:45:28,930 --> 00:45:31,720 podería ter dous guións, dous programas en execución ao mesmo tempo, 1005 00:45:31,720 --> 00:45:34,360 e ambos poden estar sentado en un loop facendo algo. 1006 00:45:34,360 --> 00:45:38,067 Esperando o ser humano facer algo como bater a barra de espazo. 1007 00:45:38,067 --> 00:45:38,650 [SEAL Barking] 1008 00:45:38,650 --> 00:45:40,566 DAVID J. Malan: E agora el está en camiño de novo. 1009 00:45:40,566 --> 00:45:41,640 [SEAL Barking] 1010 00:45:41,640 --> 00:45:45,220 DAVID J. Malan: Entón, o que máis que podemos facer con estes exemplos? 1011 00:45:45,220 --> 00:45:50,920 Ben, imos adiante e facer unha exemplo, con contar ovellas. 1012 00:45:50,920 --> 00:45:59,210 Nós imos seguir este ao longo das liñas aquí de-- imos abrir o exemplo ovellas. 1013 00:45:59,210 --> 00:46:02,460 E aviso, así como antes, este, por sorte, é algo menos aburrido. 1014 00:46:02,460 --> 00:46:06,940 Unha vez eu bati xogar aqui-- Oh non, iso é irritante. 1015 00:46:06,940 --> 00:46:10,130 El vai BAA con algunha probabilidade. 1016 00:46:10,130 --> 00:46:11,050 Imos xogar iso de novo. 1017 00:46:11,050 --> 00:46:15,221 >> [Ovellas BLEETING] 1018 00:46:15,221 --> 00:46:18,470 David J. Malan: A única diferenza é nós cambiamos o traxe, por así dicir, 1019 00:46:18,470 --> 00:46:21,710 e imos reducir á metade e dicir o que este número é real. 1020 00:46:21,710 --> 00:46:24,680 Ben, imos seguir adiante e dar un paso adiante. 1021 00:46:24,680 --> 00:46:28,190 E déixeme te provocar con Outra característica aquí. 1022 00:46:28,190 --> 00:46:31,800 Imos adiante e abrir un programa chamado Threads. 1023 00:46:31,800 --> 00:46:36,620 Entón, así como pode ter un Sprite, tendo varios scripts, 1024 00:46:36,620 --> 00:46:41,250 pode ter dous sprites, un paxaro en un gato, cada un co seu propio guión. 1025 00:46:41,250 --> 00:46:43,976 E cada un deles pode operar simultaneamente. 1026 00:46:43,976 --> 00:46:45,980 Se vostede xa escoitou o palabra "multithreading" 1027 00:46:45,980 --> 00:46:49,240 un ordenador é medio "multithreaded" pode facer varias cousas á vez, 1028 00:46:49,240 --> 00:46:50,880 e, de feito, isto pode rabuñar. 1029 00:46:50,880 --> 00:46:52,690 >> E agora noten o ave é unha especie de idiota. 1030 00:46:52,690 --> 00:46:55,100 É só facer as cousas de forma aleatoria, saltando fóra da pantalla. 1031 00:46:55,100 --> 00:46:59,460 Claramente o gato foi programado ao tipo de ter que buscan capacidades 1032 00:46:59,460 --> 00:47:02,680 na casa, na que o paxaro porque está sempre apuntando para el. 1033 00:47:02,680 --> 00:47:06,176 Ata que, finalmente, el colle o paxaro real. 1034 00:47:06,176 --> 00:47:08,550 Entón eu non vou me debruzouse sobre os detalles aquí, pero pode tipo de 1035 00:47:08,550 --> 00:47:12,160 albiscar as mesmas formas, algúns "Se" condicións, algunhas variables, 1036 00:47:12,160 --> 00:47:15,740 pode que algúns loops, son en definitiva, facendo o mesmo. 1037 00:47:15,740 --> 00:47:18,400 >> Agora, deixe-me ir adiante e abrir se algo completamente diferente, 1038 00:47:18,400 --> 00:47:20,920 para provocar algúns de vós, particularmente aqueles máis cómodo, 1039 00:47:20,920 --> 00:47:22,760 o que realmente pode ver con iso. 1040 00:47:22,760 --> 00:47:26,080 Eu estou indo a ir adiante e abrir Botón aquí. 1041 00:47:26,080 --> 00:47:28,740 E este é un super programa sinxelo de aparencia, 1042 00:47:28,740 --> 00:47:34,190 pero mira o que acontece cando I-- Mira o que 1043 00:47:34,190 --> 00:47:39,860 ocorre cando abrir esta versión dela, aquí no navegador, scratch.mit.edu. 1044 00:47:39,860 --> 00:47:43,460 E cando eu premer nese grande e vermello botón, teña en conta o que pasa. 1045 00:47:43,460 --> 00:47:46,110 1046 00:47:46,110 --> 00:47:47,647 Entón, o que está pasando aquí? 1047 00:47:47,647 --> 00:47:50,480 De feito, hai moito máis complexidade pasando debaixo do capó, 1048 00:47:50,480 --> 00:47:52,896 aínda que eu teña implantado esta, é, francamente, Dan Bradley 1049 00:47:52,896 --> 00:47:54,660 aplicou esta tan sinxelo. 1050 00:47:54,660 --> 00:47:59,540 Creou un puzzle personalizado Raspadinha parte, coñecida como unha extensión de arañazos, 1051 00:47:59,540 --> 00:48:01,300 chamou de alternancia. 1052 00:48:01,300 --> 00:48:06,332 >> E o que fai é cambiar envía unha mensaxe a través de internet. 1053 00:48:06,332 --> 00:48:08,290 E que a propia mensaxe parece un pouco enigmática. 1054 00:48:08,290 --> 00:48:10,248 Pero iso, tamén, ten comprender ata o final do prazo. 1055 00:48:10,248 --> 00:48:14,930 A mensaxe que está realmente enviando parece un pouco algo como isto. 1056 00:48:14,930 --> 00:48:15,921 É só texto. 1057 00:48:15,921 --> 00:48:16,420 Cryptic. 1058 00:48:16,420 --> 00:48:19,130 Vai entender que no momento en que temos o problema de sete set. 1059 00:48:19,130 --> 00:48:22,180 É só enviar unha mensaxe de texto a través de internet a un servidor. 1060 00:48:22,180 --> 00:48:24,330 E ese servidor é, en definitiva, falando con esa lámpada, que 1061 00:48:24,330 --> 00:48:27,240 ten unha desas lámpadas de fantasía en que, en si, está falando 1062 00:48:27,240 --> 00:48:30,760 ao WiFi na rede aquí, onde un dispositivo local abaixo aqui-- 1063 00:48:30,760 --> 00:48:34,400 e, en definitiva, é realmente transformando esa luz conexionado e apagado. 1064 00:48:34,400 --> 00:48:36,240 Pero podemos facer máis cousas interesantes aínda. 1065 00:48:36,240 --> 00:48:38,270 Teña en conta o que Dan tamén fixo por nós. 1066 00:48:38,270 --> 00:48:42,210 Fixo varios sprites, cada un dos que ten un guión á espera dun clic. 1067 00:48:42,210 --> 00:48:44,030 E se eu premer en vermello, el fica vermella. 1068 00:48:44,030 --> 00:48:46,780 Se eu ficar azul, que vai azulado. 1069 00:48:46,780 --> 00:48:49,854 Verde, amarelo, laranxa. 1070 00:48:49,854 --> 00:48:52,520 E todo isto está a suceder por vai saír á internet, 1071 00:48:52,520 --> 00:48:54,690 recuar aquí para o lámpada, activar e desactivar. 1072 00:48:54,690 --> 00:48:57,981 >> E se pode crer ele-- e este é quizais un dos máis complexos Raspadinha 1073 00:48:57,981 --> 00:49:00,930 proxectos alguén ten implemented-- o fixo, con xustiza, nun día. 1074 00:49:00,930 --> 00:49:04,180 E ese foi o reto que xogou Dan cando vimos teñen lámpadas binarios, 1075 00:49:04,180 --> 00:49:05,810 temos cero, como podemos combina-los? 1076 00:49:05,810 --> 00:49:08,410 E, de feito, iso é absolutamente algo que calquera nesta sala 1077 00:49:08,410 --> 00:49:14,250 podería facer por end-- semestre é el lámpadas binarios reimplemented usando 1078 00:49:14,250 --> 00:49:18,310 a mesma interfaz que era na nosa iPad na Mércores. 1079 00:49:18,310 --> 00:49:22,000 Así que agora, se eu realmente prema no signo máis aquí, 1080 00:49:22,000 --> 00:49:25,250 temos un, dous, tres. 1081 00:49:25,250 --> 00:49:27,550 Podo bater o 16 e transformar isto nun. 1082 00:49:27,550 --> 00:49:29,440 128, e así por diante. 1083 00:49:29,440 --> 00:49:31,250 >> Agora que por si só ten e soprado a súa mente, 1084 00:49:31,250 --> 00:49:35,680 podería facer cousas moito máis accesible, non inclúen calquera hardware certamente. 1085 00:49:35,680 --> 00:49:38,320 Só as cousas na propia pantalla. 1086 00:49:38,320 --> 00:49:41,110 E, de feito, o que máis estudantes acabar facendo algún tipo de xogo, 1087 00:49:41,110 --> 00:49:44,600 algunha obra artística, ou algún tipo de animación interactiva. 1088 00:49:44,600 --> 00:49:47,352 E eu vou dicir unha das nosas favoritos foi un regalo. 1089 00:49:47,352 --> 00:49:49,060 E eu penso que nós podería diminuír as luces, 1090 00:49:49,060 --> 00:49:52,960 imos dar un ollo neste último Proxecto Scratch en conclusión. 1091 00:49:52,960 --> 00:49:57,460 Pero o que ten que ter presente, como Podo provocalo-lo con un último detalle, 1092 00:49:57,460 --> 00:49:59,140 paso comezará a próxima semana. 1093 00:49:59,140 --> 00:50:00,830 Horario de atención comezará a próxima semana. 1094 00:50:00,830 --> 00:50:04,410 Problema cero definido será posta CS50.harvard.edu aínda hoxe. 1095 00:50:04,410 --> 00:50:06,430 E será recibido no conxunto de problemas de cero 1096 00:50:06,430 --> 00:50:10,070 a propia Zamyla Chan do CS50, que orienta a maioría do noso paso a paso. 1097 00:50:10,070 --> 00:50:11,952 Estes son vídeos incorporados nos conxuntos de problemas 1098 00:50:11,952 --> 00:50:15,160 que vai soster a súa man a través dun lote da configuración inicial e a través de moitos 1099 00:50:15,160 --> 00:50:16,570 das posibles decisións de deseño. 1100 00:50:16,570 --> 00:50:19,570 Entón, se xa tivo esa emoción cando incorporarse unha lección de casa 1101 00:50:19,570 --> 00:50:21,030 e se pregunta, por onde eu comezo? 1102 00:50:21,030 --> 00:50:23,510 Vai ter a resposta para vostede. 1103 00:50:23,510 --> 00:50:27,720 E agora, un programa final dun dos seus antecesores 1104 00:50:27,720 --> 00:50:30,659 en resposta á pregunta "Que o raposo di?" 1105 00:50:30,659 --> 00:50:32,242 [MUSIC YLVIS, "O que a FOX DI?] 1106 00:50:32,242 --> 00:50:40,178 1107 00:50:40,178 --> 00:50:41,666 >> YLVIS: (cantando) Can pasa trama. 1108 00:50:41,666 --> 00:50:43,650 O gato vai miar. 1109 00:50:43,650 --> 00:50:47,520 Paxaro vai tweet e rato vai chiar. 1110 00:50:47,520 --> 00:50:49,240 Cow vai Moo. 1111 00:50:49,240 --> 00:50:51,690 Sapo vai coaxar. 1112 00:50:51,690 --> 00:50:54,630 E o elefante vai toot. 1113 00:50:54,630 --> 00:50:59,040 Patos dicir charlatão e peixe ir blub. 1114 00:50:59,040 --> 00:51:07,370 E o selo vai ow ow ow, pero hai un son que ninguén sabe, 1115 00:51:07,370 --> 00:51:10,330 que é o que o raposo di? 1116 00:51:10,330 --> 00:51:11,020 E 1117 00:51:11,020 --> 00:51:12,478 >> DAVID J. Malan: Isto é todo para CS50. 1118 00:51:12,478 --> 00:51:15,436 Imos velo en Quebra-Día e na luns. 1119 00:51:15,436 --> 00:51:16,424 >> [Aplausos] 1120 00:51:16,424 --> 00:51:19,882 >> [MUSIC YLVIS, "O Que Di a FOX?"] 1121 00:51:19,882 --> 00:51:24,840 1122 00:51:24,840 --> 00:51:28,820 >> Narrador: E agora profundo pensamentos, por Daven Farnham. 1123 00:51:28,820 --> 00:51:31,770 1124 00:51:31,770 --> 00:51:34,570 Hoxe eu fun alcanzado no cara con un libro de teléfono. 1125 00:51:34,570 --> 00:51:38,160 Confundindo, como eu estou en casa vendo en liña. 1126 00:51:38,160 --> 00:51:42,528