1 00:00:00,000 --> 00:00:11,120 2 00:00:11,120 --> 00:00:12,590 >> ALTAVOZ: Soy [inaudible]. 3 00:00:12,590 --> 00:00:14,820 Y yo soy un senior en Leverett House. 4 00:00:14,820 --> 00:00:18,700 Yo estudio ciencias de la computación, y yo soy un TF para CS50. 5 00:00:18,700 --> 00:00:21,640 En su primer año, yo ni siquiera tengo un ordenador portátil o un teléfono inteligente. 6 00:00:21,640 --> 00:00:23,550 No tenía ninguna experiencia en programación. 7 00:00:23,550 --> 00:00:29,690 CS50 era el curso más memorable que Tomé en Harvard porque era 8 00:00:29,690 --> 00:00:32,960 una lucha, pero era una realidad lucha divertirse al mismo tiempo. 9 00:00:32,960 --> 00:00:37,670 E hice un montón de increíble, permanente amigos, y he aprendido mucho de verdad 10 00:00:37,670 --> 00:00:38,830 habilidades aplicables. 11 00:00:38,830 --> 00:00:43,480 Estoy tan contento de que yo no dejé que mi falta de fondo sea una excusa para mí 12 00:00:43,480 --> 00:00:44,840 No tome CS50. 13 00:00:44,840 --> 00:00:46,220 Soy [inaudible]. 14 00:00:46,220 --> 00:00:48,910 Soy un mayor en Leverett Casa, clase de 2014. 15 00:00:48,910 --> 00:00:51,670 Y tomé CS50. 16 00:00:51,670 --> 00:00:52,380 >> DAVID MALAN: Así que esto es CS50. 17 00:00:52,380 --> 00:00:54,400 Este es el final de la semana cero. 18 00:00:54,400 --> 00:00:58,500 Y recordar donde comenzamos la última vez, estaba con estas lámparas, que eran 19 00:00:58,500 --> 00:01:01,420 tan popular que nos fuimos y comprado un poco más hoy. 20 00:01:01,420 --> 00:01:03,790 Así que creo que esto va a ser lo nuestro este año - 21 00:01:03,790 --> 00:01:07,230 lámparas de escritorio, si usted viene para arriba en el escenario, al menos hasta que se acabe. 22 00:01:07,230 --> 00:01:11,570 >> Pero hemos utilizado estos revocatorio, para introducir los fundamentos de la representación de los datos. 23 00:01:11,570 --> 00:01:15,640 Necesitábamos manera de empezar que representa información dentro de una computadora. 24 00:01:15,640 --> 00:01:18,650 Y la forma más sencilla de hacerlo era con un ingrediente, la electricidad. 25 00:01:18,650 --> 00:01:21,760 Y la cosa más simple que puedes hacer con la electricidad es la enciende y se apaga. 26 00:01:21,760 --> 00:01:23,520 Deje que los electrones fluyen o no. 27 00:01:23,520 --> 00:01:27,930 Y el uso de esos dos estados básicos, frente a y sigue, o falso y verdadero, o cero y 28 00:01:27,930 --> 00:01:31,290 uno, empezamos a ver que podíamos construir arriba, en este caso, con la luz 29 00:01:31,290 --> 00:01:33,720 bulbos, más números que acaba de cero y uno. 30 00:01:33,720 --> 00:01:36,160 Contamos tan alto como siete, por ejemplo, la última vez. 31 00:01:36,160 --> 00:01:38,840 Pero todo lo que tenemos que hacer es seguir tirando más y más bombillas en ese 32 00:01:38,840 --> 00:01:41,820 problema y, de verdad, podemos representar cualquier número que nos 33 00:01:41,820 --> 00:01:42,970 posiblemente podría desear. 34 00:01:42,970 --> 00:01:47,230 >> Bueno, transitioned rápidamente entonces Miércoles a este byte de voluntarios. 35 00:01:47,230 --> 00:01:52,040 8 bits es lo que generalmente llamamos un byte, así que aquí teníamos ocho voluntarios 36 00:01:52,040 --> 00:01:54,900 el miércoles que en conjunto eran en representación de ocho bits. 37 00:01:54,900 --> 00:01:56,750 Y cuando sus manos fueron , ellos eran uno. 38 00:01:56,750 --> 00:01:58,530 Y cuando sus manos estaban abajo, había un cero. 39 00:01:58,530 --> 00:02:01,970 Y tuvimos que estas personas subir al escenario por qué? 40 00:02:01,970 --> 00:02:06,530 ¿Qué somos capaces de hacer con esta secuencia de bits? 41 00:02:06,530 --> 00:02:07,510 >> Para crear un alfabeto. 42 00:02:07,510 --> 00:02:11,550 Hemos sido capaces de construir en la parte superior de ese lección anterior aprendió y en realidad 43 00:02:11,550 --> 00:02:14,200 empezar a hacer más interesante información que es por lo menos más 44 00:02:14,200 --> 00:02:15,330 familiar para nosotros los seres humanos. 45 00:02:15,330 --> 00:02:18,360 Y esto va a ser un recurrente tema a lo largo de 50 años, sino también equipo 46 00:02:18,360 --> 00:02:21,470 la ciencia en general, esta idea de capas, donde, al final de la 47 00:02:21,470 --> 00:02:24,820 días, si realmente inició el básico con un ordenador, sí, 48 00:02:24,820 --> 00:02:25,760 es ceros y unos. 49 00:02:25,760 --> 00:02:27,480 Y debajo de eso es sólo la electricidad. 50 00:02:27,480 --> 00:02:30,840 Pero muy rápidamente empezamos a tomar los detalles de bajo nivel por sentado 51 00:02:30,840 --> 00:02:35,600 y empezar a capa en la parte superior de trabajado pasado hecho que, en última instancia, por los 52 00:02:35,600 --> 00:02:38,610 Al final del semestre y, en definitiva, más en general, como los informáticos 53 00:02:38,610 --> 00:02:42,790 y los programadores, pueden hacer algo realmente cosas poderosas al aprovechar el trabajo 54 00:02:42,790 --> 00:02:46,620 que nosotros mismos hemos hecho y también de pie sobre los hombros de los demás. 55 00:02:46,620 --> 00:02:49,300 >> Ahora transitioned rápidamente el miércoles desde apenas la necesidad 56 00:02:49,300 --> 00:02:52,080 representar la información a querer hacer algo con él. 57 00:02:52,080 --> 00:02:54,170 Entonces, ¿qué se define como un algoritmo? 58 00:02:54,170 --> 00:02:57,340 59 00:02:57,340 --> 00:02:58,900 Una serie de instrucciones. 60 00:02:58,900 --> 00:03:03,380 Así que es una serie de instrucciones, un número de pasos que usted, un ser humano, o 61 00:03:03,380 --> 00:03:07,160 una computadora, más típicamente, haría ejecutar una después de la otra con el fin 62 00:03:07,160 --> 00:03:08,100 para lograr algún objetivo. 63 00:03:08,100 --> 00:03:11,360 Y tuvimos unos cuantos goles la última vez, una de las cuales fue la de contar 64 00:03:11,360 --> 00:03:12,250 personas en la habitación. 65 00:03:12,250 --> 00:03:15,560 Y otro ejemplo era encontrar Mike Smith en una guía telefónica. 66 00:03:15,560 --> 00:03:19,750 >> Así que usted puede recordar que rompí un teléfono libro en un medio para este fin hasta 67 00:03:19,750 --> 00:03:21,280 encontrar Mike Smith. 68 00:03:21,280 --> 00:03:24,000 El propósito de ese visual era demostramos, una vez más, que éramos 69 00:03:24,000 --> 00:03:27,770 literalmente, lagrimeo este problema en un medio, en un medio, en un medio, y muy 70 00:03:27,770 --> 00:03:31,750 pasando rápidamente de como 1.000 páginas a sólo una sola página. 71 00:03:31,750 --> 00:03:34,860 Aquellos de ustedes que se perdieron en este Miércoles, pensé que podríamos reproducir 72 00:03:34,860 --> 00:03:36,820 algunas imágenes de lo que te perdiste. 73 00:03:36,820 --> 00:03:38,914 Vamos a echar un vistazo. 74 00:03:38,914 --> 00:03:40,906 >> [REPRODUCCIÓN DE VÍDEO] 75 00:03:40,906 --> 00:03:55,360 76 00:03:55,360 --> 00:03:55,990 >> -Eso es. 77 00:03:55,990 --> 00:04:01,432 1500 páginas, Niza línea limpia, lágrima legítimo. 78 00:04:01,432 --> 00:04:02,850 >> [VIDEO PLAYBACK FIN] 79 00:04:02,850 --> 00:04:05,230 >> DAVID MALAN: Así que eso fue el miércoles. 80 00:04:05,230 --> 00:04:09,150 Hacemos la transición, sin embargo, el miércoles ahora a querer representar algoritmos 81 00:04:09,150 --> 00:04:12,410 de alguna manera algo estándar, no sólo describirlos verbalmente, pero 82 00:04:12,410 --> 00:04:16,290 tratando de expresar por escrito o en una pantalla de ordenador, así que pudimos 83 00:04:16,290 --> 00:04:19,170 empezar a mejorar, y modificar ellos, y, con el tiempo, en realidad 84 00:04:19,170 --> 00:04:21,160 analizar qué tan correcta o qué tan rápido se fueron. 85 00:04:21,160 --> 00:04:23,360 >> Así que hemos introducido esta noción de pseudocódigo, que, en 86 00:04:23,360 --> 00:04:26,410 términos simples, es lo que? 87 00:04:26,410 --> 00:04:26,930 Aceptar, palabras. 88 00:04:26,930 --> 00:04:28,730 Vamos a ir un poco más profundo que eso. 89 00:04:28,730 --> 00:04:32,540 Inglés, claro, no son más que con qué fin? 90 00:04:32,540 --> 00:04:35,180 Las palabras con las que crear o para representar algoritmos. 91 00:04:35,180 --> 00:04:38,380 Así que no hay una lengua conocida como pseudocódigo en el mundo. 92 00:04:38,380 --> 00:04:41,110 Es sólo que, en Inglés, o sea ​​cual sea su lengua hablada es, el uso 93 00:04:41,110 --> 00:04:44,930 una especie de notación superficial para transmitir una idea de manera muy sucinta. 94 00:04:44,930 --> 00:04:47,930 Pero veremos que, sin duda, con un Pseudocódigo Inglés, y resulta 95 00:04:47,930 --> 00:04:51,700 la mayoría de los mismos lenguajes de programación son derivado de sí Inglés, 96 00:04:51,700 --> 00:04:55,750 vamos a encontrar que hay una norma formas de representar y pseudocódigo 97 00:04:55,750 --> 00:04:57,150 También el código de programación. 98 00:04:57,150 --> 00:05:00,200 Así como usted comienza a ver incluso el más simple ejemplos de hoy, se dan cuenta estos 99 00:05:00,200 --> 00:05:02,160 mismos patrones se repetirán la próxima semana. 100 00:05:02,160 --> 00:05:04,710 >> Así pseudocódigo era una especie de asemejarse idioma 101 00:05:04,710 --> 00:05:06,170 un lenguaje de programación. 102 00:05:06,170 --> 00:05:09,260 Y el primer ejemplo vimos visualmente escrito era éste. 103 00:05:09,260 --> 00:05:12,870 Fue sólo un programa de tres pasos, el objetivo de la cual era para contar el número 104 00:05:12,870 --> 00:05:15,650 de personas en una habitación de la residencia de ese video el miércoles. 105 00:05:15,650 --> 00:05:19,040 Pero hubo algunos aspectos interesantes de este programa más simple. 106 00:05:19,040 --> 00:05:20,320 >> Esto os servirá temas recurrentes. 107 00:05:20,320 --> 00:05:22,930 Así que para aquellos que no están familiarizados con esto, uno, que introdujo una variable. 108 00:05:22,930 --> 00:05:25,650 Y probablemente todos en esta sala es familiarizado con una variable en el 109 00:05:25,650 --> 00:05:27,250 contexto del álgebra. 110 00:05:27,250 --> 00:05:31,190 Pero aquí, en la programación, variables son, uno, puede haber 111 00:05:31,190 --> 00:05:32,220 llamado cualquier cosa que queramos. 112 00:05:32,220 --> 00:05:33,620 Hemos estado usando n como un contador. 113 00:05:33,620 --> 00:05:37,490 Pero podríamos utilizar el contador de palabras, o, como se verá, la mayoría de cualquier frase que 114 00:05:37,490 --> 00:05:40,240 te pueden gustar tanto tiempo, ya que es descriptiva, pero no deja de ser un 115 00:05:40,240 --> 00:05:41,250 recipiente de almacenamiento. 116 00:05:41,250 --> 00:05:44,170 Es un trozo de memoria, algún número de bits, y que varía según el ordenador, cómo 117 00:05:44,170 --> 00:05:47,020 muchos bits hay que componer esa variable. 118 00:05:47,020 --> 00:05:48,450 >> Pero podemos poner valores en ella. 119 00:05:48,450 --> 00:05:50,740 Hasta ahora, sólo hemos puesto los números. 120 00:05:50,740 --> 00:05:52,290 Pero podemos poner palabras reales. 121 00:05:52,290 --> 00:05:53,420 Podemos poner párrafos. 122 00:05:53,420 --> 00:05:54,560 Podemos poner imágenes - 123 00:05:54,560 --> 00:05:57,860 nada, en realidad, podemos representar con ceros y unos, podemos poner en 124 00:05:57,860 --> 00:05:59,820 esta noción de nivel superior de una variable. 125 00:05:59,820 --> 00:06:01,350 >> Así que bastante sencillo allí. 126 00:06:01,350 --> 00:06:02,210 Y esa es la línea uno. 127 00:06:02,210 --> 00:06:05,340 Pero nos movimos muy rápido desde una línea para hacer realidad 128 00:06:05,340 --> 00:06:06,600 algo con esa variable. 129 00:06:06,600 --> 00:06:10,330 Y en la tercera línea, actualizamos N. Nosotros N. incrementado Y podríamos escribir esto 130 00:06:10,330 --> 00:06:11,330 cualquier número de maneras. 131 00:06:11,330 --> 00:06:14,460 Pero quizás el más obvio es sólo para decir, ajuste N igual a 132 00:06:14,460 --> 00:06:16,440 cualquier N es más 1. 133 00:06:16,440 --> 00:06:17,740 Así que ese fue nuestro incremento. 134 00:06:17,740 --> 00:06:18,740 >> Mientras tanto, hubo un bucle. 135 00:06:18,740 --> 00:06:20,720 Y esta, también, es probablemente bastante intuitivo. 136 00:06:20,720 --> 00:06:24,250 Un bucle es sólo algo en un programa esto sucede una y otra vez, algunos 137 00:06:24,250 --> 00:06:25,190 tipo de ciclo. 138 00:06:25,190 --> 00:06:29,300 Y esta frase clave aquí, para cada uno, es realidad muy común en la mayor parte 139 00:06:29,300 --> 00:06:32,300 lenguajes de programación, incluyendo los veremos en el curso. 140 00:06:32,300 --> 00:06:35,850 Cada vez que vea la palabra, es típicamente transmite la idea de que un 141 00:06:35,850 --> 00:06:38,410 bucle, algo cíclico, está a punto de suceder. 142 00:06:38,410 --> 00:06:40,980 >> Pero vale la pena señalar una otro detalle sintáctico. 143 00:06:40,980 --> 00:06:44,660 El hecho de que la tercera línea se realidad sangría por haber tocado el 144 00:06:44,660 --> 00:06:46,920 barra espaciadora par de veces es deliberado. 145 00:06:46,920 --> 00:06:49,870 Debido convención humana es tal que, cuando estás haciendo algo nuevo y 146 00:06:49,870 --> 00:06:54,860 otra vez, en un bucle, como se inició en la línea dos, sangría nada que perteneciera 147 00:06:54,860 --> 00:06:58,880 a ese bucle sólo para dejar claro que su línea de tres y no, por ejemplo, 148 00:06:58,880 --> 00:07:01,910 línea de cuatro o cinco, si había líneas para o cinco, que son 149 00:07:01,910 --> 00:07:03,010 parte de que los bucles. 150 00:07:03,010 --> 00:07:07,340 Así que este simple muesca transmite la idea básica. 151 00:07:07,340 --> 00:07:09,390 >> Así que hemos aplicado este algoritmo, ahora, a unos pocos ejemplos. 152 00:07:09,390 --> 00:07:12,620 Y esto, también, ejemplo sencillo en el mundo real. 153 00:07:12,620 --> 00:07:15,440 Pero va a ser representativa de cómo va a ir sobre las pruebas del 154 00:07:15,440 --> 00:07:17,500 poseer programas cada vez más complejos. 155 00:07:17,500 --> 00:07:21,050 Intenta una serie de escenarios, algunos representantes de los insumos, y ver si 156 00:07:21,050 --> 00:07:22,180 obtener los resultados deseados. 157 00:07:22,180 --> 00:07:25,090 >> Así que este ejemplo tenía dos personas sentado en la habitación de la residencia. 158 00:07:25,090 --> 00:07:27,170 A la izquierda está el mismo pseudo-código. 159 00:07:27,170 --> 00:07:30,800 Y esta es una captura de pantalla de la misma último paso de la aplicación de este 160 00:07:30,800 --> 00:07:35,270 algoritmo para esos insumos, EN SU Había dos personas en la habitación y, 161 00:07:35,270 --> 00:07:39,190 recordar, a medida que avanzamos a través de líneas uno, y dos, y tres, y dos 162 00:07:39,190 --> 00:07:41,000 y tres y hecho - 163 00:07:41,000 --> 00:07:44,870 por el final de ese algoritmo, tuvimos de hecho contado los dos compañeros que forman 164 00:07:44,870 --> 00:07:45,360 en la habitación. 165 00:07:45,360 --> 00:07:47,190 >> Entonces intentamos otro ejemplo. 166 00:07:47,190 --> 00:07:48,990 Y dijimos que si hay cero personas en la habitación? 167 00:07:48,990 --> 00:07:50,490 ¿Es este código sigue siendo correcta? 168 00:07:50,490 --> 00:07:51,305 Y así fue. 169 00:07:51,305 --> 00:07:55,240 Lo que pasa es que la línea dos y, por lo tanto, la línea de tres o 170 00:07:55,240 --> 00:07:56,620 no va a ejecutar. 171 00:07:56,620 --> 00:07:59,790 Ellos no van a suceder en absoluto porque simplemente no son aplicables si 172 00:07:59,790 --> 00:08:01,210 hay cero personas en la habitación. 173 00:08:01,210 --> 00:08:02,300 >> Pero no es un gran problema. 174 00:08:02,300 --> 00:08:06,620 Línea uno inicializa N a cero, por lo que a pesar de que sólo una línea de este 175 00:08:06,620 --> 00:08:10,930 programa en realidad termina siendo útil, todavía da la respuesta correcta, como 176 00:08:10,930 --> 00:08:13,780 indicado por el naranja cero en la parte inferior. 177 00:08:13,780 --> 00:08:16,300 Pero entonces decidimos que era una especie de algoritmo estúpido. 178 00:08:16,300 --> 00:08:17,060 Era bastante lento. 179 00:08:17,060 --> 00:08:19,720 Sin duda, puedo hacer dos, cuatro, seis, ocho, diez, cuando 180 00:08:19,720 --> 00:08:20,990 conteo de personas en una habitación. 181 00:08:20,990 --> 00:08:25,030 >> Entonces ajustamos el algoritmo, el pseudocódigo, por decir, ahora en la línea dos, 182 00:08:25,030 --> 00:08:29,710 para cada par de personas en la habitación, procederá a, en la línea tres, incremente 183 00:08:29,710 --> 00:08:32,200 en por dos en cada iteración. 184 00:08:32,200 --> 00:08:35,530 Así que habría trabajado aquí por este par de personas en la habitación. 185 00:08:35,530 --> 00:08:38,530 >> Pero entonces, si usted comienza a pensar en esto, y no se necesita mucho tiempo para 186 00:08:38,530 --> 00:08:40,710 darse cuenta, espera un momento esto es va a romper, rompe 187 00:08:40,710 --> 00:08:42,679 en qué caso simple? 188 00:08:42,679 --> 00:08:45,500 Si hay tres personas en la habitación o, más en general, cuando hay una 189 00:08:45,500 --> 00:08:47,660 número impar de personas en el habitación, incluyendo una. 190 00:08:47,660 --> 00:08:50,390 Nos íbamos a perder a esa persona aquí porque no hay tales pares. 191 00:08:50,390 --> 00:08:58,510 Así que nos dirigimos rápidamente al lugar la introducción de lo adicional 192 00:08:58,510 --> 00:09:02,560 construcciones de programación a la pseudo-código. 193 00:09:02,560 --> 00:09:04,955 >> Así que una condición, que se llama , o una rama. 194 00:09:04,955 --> 00:09:08,420 Y se supone que debe transmitir, visualmente, la idea de la rama, un tenedor en la carretera 195 00:09:08,420 --> 00:09:11,080 donde usted puede hacer esto o, tal vez, algo más. 196 00:09:11,080 --> 00:09:15,750 Y, en efecto, abordamos este problema añadiendo la línea 4, por decir, en serio, por lo 197 00:09:15,750 --> 00:09:20,820 el final, si una persona sigue siendo, y luego seguir adelante y lo considero especial. 198 00:09:20,820 --> 00:09:24,460 Así que tipo de caso especial de ellos, por lo que de hablar, de modo que ahora podemos manejar 199 00:09:24,460 --> 00:09:27,810 tanto un número par de personas y un número impar de personas. 200 00:09:27,810 --> 00:09:30,260 >> Ahora bien, hay varias maneras podríamos haber expresado esto. 201 00:09:30,260 --> 00:09:33,590 Y, francamente, yo podría haber sido aún más nit exigente cuando se trataba de mi elección de 202 00:09:33,590 --> 00:09:35,040 Inglés para el pseudocódigo. 203 00:09:35,040 --> 00:09:36,970 Pero al menos el espíritu de la idea es transportado. 204 00:09:36,970 --> 00:09:40,725 Si usted entregó este código a un amigo que no está en CS, o nunca ha tenido 205 00:09:40,725 --> 00:09:44,560 CS, las probabilidades son que podían imaginar, dado tres personas en la habitación, cómo 206 00:09:44,560 --> 00:09:46,870 contar esas personas sobre la base en estas instrucciones. 207 00:09:46,870 --> 00:09:49,920 Y eso es todo realmente queremos lograr con pseudocódigo, de alguna manera 208 00:09:49,920 --> 00:09:54,300 estandarizar la forma en que vamos sobre la representación de ideas para que podamos 209 00:09:54,300 --> 00:09:56,670 empezar a hacer más complicado cosa todavía. 210 00:09:56,670 --> 00:09:58,845 >> Así que eso nos lleva a continuación, en la actualidad, al código real. 211 00:09:58,845 --> 00:10:01,950 Empezamos a programar hoy, aunque en un ambiente amistoso. 212 00:10:01,950 --> 00:10:05,940 Y luego hacemos la transición muy rápidamente a una sintaxis más arcano, pero que 213 00:10:05,940 --> 00:10:10,340 que verá es fundamentalmente el mismo que las ideas verán manifestados con 214 00:10:10,340 --> 00:10:11,990 este otro lenguaje de hoy. 215 00:10:11,990 --> 00:10:13,920 Sólo va a buscar un poco diferente. 216 00:10:13,920 --> 00:10:16,590 >> Así que en lugar de llamar a este código, estoy va a ser un poco más precisos 217 00:10:16,590 --> 00:10:20,170 y decir, a partir de ahora, al escribir un programa, estás escribiendo código fuente. 218 00:10:20,170 --> 00:10:21,990 Es algo así como pseudocódigo. 219 00:10:21,990 --> 00:10:26,540 Pero ya veremos que no es una especie de suelta cuando se trata de la elección de las palabras 220 00:10:26,540 --> 00:10:27,310 que utiliza. 221 00:10:27,310 --> 00:10:31,300 Cuando programe en un idioma, tiene para usar las palabras, las frases, 222 00:10:31,300 --> 00:10:36,020 la sintaxis, que otras personas han decidido representar 223 00:10:36,020 --> 00:10:37,240 ese idioma en particular. 224 00:10:37,240 --> 00:10:38,510 Así Pseudocódigos depende de usted. 225 00:10:38,510 --> 00:10:42,330 Un lenguaje de programación real como C, como veremos al final vemos, es 226 00:10:42,330 --> 00:10:43,590 estandarizada por otras personas. 227 00:10:43,590 --> 00:10:45,590 >> Entonces, ¿cómo hacemos para escribir algo de código fuente? 228 00:10:45,590 --> 00:10:46,810 Bueno, yo voy a ir adelante y hacer esto. 229 00:10:46,810 --> 00:10:49,100 Voy a seguir adelante y abrir una ventana aquí. 230 00:10:49,100 --> 00:10:50,210 Más sobre esto la próxima semana. 231 00:10:50,210 --> 00:10:52,300 Pero este es un dispositivo llamado el aparato CS50. 232 00:10:52,300 --> 00:10:55,480 Estoy corriendo un pedazo de software en mi Mac, aunque se puede hacer lo mismo 233 00:10:55,480 --> 00:11:00,580 en un equipo con Windows, que está dando mí la ilusión correr un diferente 234 00:11:00,580 --> 00:11:03,700 sistema operativo del todo correcto aquí en una ventana en mi Mac. 235 00:11:03,700 --> 00:11:06,790 Acabo completo proyecté así no lo hace ver realmente de Mac OS en estos momentos. 236 00:11:06,790 --> 00:11:08,340 >> Este es un sistema operativo llamado Linux. 237 00:11:08,340 --> 00:11:09,300 Es muy popular. 238 00:11:09,300 --> 00:11:10,120 Es muy rápido. 239 00:11:10,120 --> 00:11:12,950 Es muy libre, que ha hecho que sea muy convincente, especialmente en el 240 00:11:12,950 --> 00:11:13,970 mundo comercial. 241 00:11:13,970 --> 00:11:17,200 Y más en que hacia el final de la semestre cuando usamos Linux un poco 242 00:11:17,200 --> 00:11:21,230 para la programación web y alojamiento de sitios web y proyectos reales. 243 00:11:21,230 --> 00:11:24,910 Así que ahora, sólo sé que éste es un ordenador de sobremesa eso significaba mirar vagamente 244 00:11:24,910 --> 00:11:26,750 familiar para Windows y Mac OS. 245 00:11:26,750 --> 00:11:29,110 Apenas tiene algunos nombres diferentes y los iconos de las cosas. 246 00:11:29,110 --> 00:11:32,510 Pero este es el llamado CS50 aparato, una máquina virtual que, 247 00:11:32,510 --> 00:11:35,310 empezando la semana que viene, ustedes se correr dentro de una ventana en 248 00:11:35,310 --> 00:11:36,960 tu Mac o PC. 249 00:11:36,960 --> 00:11:39,760 >> Para hoy, voy a abrir el más simple de los programas. 250 00:11:39,760 --> 00:11:41,110 Se llama gedit. 251 00:11:41,110 --> 00:11:42,565 Y esto es sólo un editor gráfico. 252 00:11:42,565 --> 00:11:44,695 Es algo así como Microsoft Palabra, pero más simple. 253 00:11:44,695 --> 00:11:47,110 Es como tipo de texto editar o bloc de notas. 254 00:11:47,110 --> 00:11:50,280 Es sólo un programa muy sencillo con el que escribir palabras en la pantalla. 255 00:11:50,280 --> 00:11:54,510 Dio la casualidad de que lo que si salvo archivos que he creado cuando este programa 256 00:11:54,510 --> 00:11:59,860 en una extensión especial similar. c, lugar de doc., o. xls, o lo que sea 257 00:11:59,860 --> 00:12:04,190 usted está familiarizado con, puedo realmente crear programas utilizando incluso esta simple 258 00:12:04,190 --> 00:12:05,130 editor de texto. 259 00:12:05,130 --> 00:12:05,770 >> Así que déjame hacer eso. 260 00:12:05,770 --> 00:12:09,330 Déjame ir por delante y guarde este presentar primero como hello.c. 261 00:12:09,330 --> 00:12:12,350 Y de nuevo, esta interfaz de usuario se familiarizarse con usted rápidamente. 262 00:12:12,350 --> 00:12:14,160 Pero, por ahora, sólo estoy escribiendo en un nombre de archivo. 263 00:12:14,160 --> 00:12:17,410 Voy a guardarlo en mi John Directorio de inicio de Harvard. 264 00:12:17,410 --> 00:12:20,810 Y ahora tengo esta pestaña que indica De hecho estoy editando 265 00:12:20,810 --> 00:12:23,070 un archivo llamado hello.c. 266 00:12:23,070 --> 00:12:24,510 Así que nada demasiado interesante aún. 267 00:12:24,510 --> 00:12:26,000 >> Y ahora que va a ser bastante críptico. 268 00:12:26,000 --> 00:12:28,370 Me voy a acercar, sólo por lo que es más visible. 269 00:12:28,370 --> 00:12:35,780 Y voy a empezar a escribir incluir stdio.h, int main vacío, rizado, abierto 270 00:12:35,780 --> 00:12:40,140 corsé, uno, dos, tres, cuatro espacios de sangría, impresión f, para la impresión 271 00:12:40,140 --> 00:12:44,450 algo formateado, fin de la cita cita, "Hola, mundo" barra invertida, n, cerca 272 00:12:44,450 --> 00:12:49,640 cita, cerrado el paréntesis, punto y coma, introducir retroceso, retroceso, retroceso, 273 00:12:49,640 --> 00:12:52,310 retroceso, cerrado corchete - 274 00:12:52,310 --> 00:12:53,350 He programado. 275 00:12:53,350 --> 00:12:57,380 >> Muy bien por lo que este es un super simple programa, en realidad, el programa que 276 00:12:57,380 --> 00:12:59,070 alguien comienza la programación con. 277 00:12:59,070 --> 00:13:02,300 Y todo lo que hace, con toda su complejidad, se imprimirá en la 278 00:13:02,300 --> 00:13:04,160 pantalla, ¿adivinen qué? 279 00:13:04,160 --> 00:13:04,910 ¡Hola, mundo. 280 00:13:04,910 --> 00:13:07,500 Pero no es suficiente sólo para escribir un programa. 281 00:13:07,500 --> 00:13:08,155 Así que este es el código. 282 00:13:08,155 --> 00:13:11,300 Este es el código fuente en un lenguaje llamado c. 283 00:13:11,300 --> 00:13:14,380 Se guarda en la actualidad en un archivo llamado hello.c. 284 00:13:14,380 --> 00:13:16,180 >> Ahora mira al final de la pantalla aquí. 285 00:13:16,180 --> 00:13:17,890 Más sobre esto, de nuevo, en las semanas venideras. 286 00:13:17,890 --> 00:13:19,570 Pero esto es lo que vamos a llamar una ventana de terminal. 287 00:13:19,570 --> 00:13:21,290 Es un parpadeo, negro pronta y blanco. 288 00:13:21,290 --> 00:13:24,390 Es una especie de un viejo interfaz de la escuela para un equipo que generalmente no hace 289 00:13:24,390 --> 00:13:27,050 utilizar un ratón u otro elementos gráficos. 290 00:13:27,050 --> 00:13:28,320 Simplemente utiliza el teclado. 291 00:13:28,320 --> 00:13:30,970 Y puedo escribir comandos en este indicador parpadea. 292 00:13:30,970 --> 00:13:33,820 >> Y para los propósitos de la actualidad, sólo soy va a escribir la siguiente - 293 00:13:33,820 --> 00:13:35,610 hacer hola. 294 00:13:35,610 --> 00:13:39,370 Y ese programa, marca, es sólo una programa que, en el mundo real estos 295 00:13:39,370 --> 00:13:40,690 día, nos haga doble clic en. 296 00:13:40,690 --> 00:13:44,580 Pero en esta interfaz para hoy, estamos va a escribir su nombre en esta pantalla. 297 00:13:44,580 --> 00:13:47,980 hacer hola literalmente va a hazme un programa llamado hola. 298 00:13:47,980 --> 00:13:51,360 Y va a hacerlo por mirar para un archivo, simplemente por 299 00:13:51,360 --> 00:13:53,460 por defecto, llamado hello.c. 300 00:13:53,460 --> 00:13:57,260 Esto va a suponer que quiero un programa en C por la naturaleza de cómo este ordenador 301 00:13:57,260 --> 00:13:58,230 está configurado. 302 00:13:58,230 --> 00:13:59,550 >> Así que sigo adelante y pulsa enter. 303 00:13:59,550 --> 00:14:02,050 Veo una cierta salida críptica, pero esto se hará con demasiada 304 00:14:02,050 --> 00:14:03,330 familiarizarse en poco tiempo. 305 00:14:03,330 --> 00:14:06,870 Esto le sucedió a ejecutar un compilador, más sobre eso en un momento, llamado Clang. 306 00:14:06,870 --> 00:14:09,080 Pero ahora, tengo más que otro parpadeo rápido. 307 00:14:09,080 --> 00:14:13,060 Y puedo seguir adelante ahora y tipo de punto recortar, por razones poco interesantes que vamos a 308 00:14:13,060 --> 00:14:14,730 volver a la próxima semana - 309 00:14:14,730 --> 00:14:15,910 hola. 310 00:14:15,910 --> 00:14:19,650 >> Así que todo este esfuerzo hasta el momento sólo para escribir el más simple de los programas que, 311 00:14:19,650 --> 00:14:22,640 tan pronto como me golpeó Intro, hace eso. 312 00:14:22,640 --> 00:14:24,510 Así que he escrito mi primer programa. 313 00:14:24,510 --> 00:14:27,500 Así que estoy deliberadamente burlándose en este mismo sencillo programa 314 00:14:27,500 --> 00:14:28,540 por un par de razones. 315 00:14:28,540 --> 00:14:31,990 Uno, es difícil emocionarse acerca de tomar una clase si 316 00:14:31,990 --> 00:14:33,430 este es el final del juego. 317 00:14:33,430 --> 00:14:37,100 >> Pero más que eso, hay una muchas distracciones aquí. 318 00:14:37,100 --> 00:14:40,640 La primera vez que se aprende a programar, por aquellos de ustedes menos cómodo, y 319 00:14:40,640 --> 00:14:43,410 Incluso, en su día, cuando por primera vez vi algo como esto - usted puede tipo 320 00:14:43,410 --> 00:14:46,500 de la figura que, de acuerdo, este está en un mundo hola impresión. 321 00:14:46,500 --> 00:14:47,860 Pero hay tanta distracción. 322 00:14:47,860 --> 00:14:52,110 Hay tanto de sintaxis en la pantalla que se pone en el camino de muy 323 00:14:52,110 --> 00:14:54,170 sencilla, de otro modo sencillo, las ideas. 324 00:14:54,170 --> 00:14:56,700 >> Así que lo que vamos a hacer hoy es que estamos va a dejar a un lado C y llegar 325 00:14:56,700 --> 00:14:57,630 atrás para que el lunes. 326 00:14:57,630 --> 00:15:00,860 Y vamos a usar una gráfica lenguaje de programación llamado Scratch. 327 00:15:00,860 --> 00:15:04,470 Este es un lenguaje de programación, que yo alude el miércoles que va 328 00:15:04,470 --> 00:15:08,870 que nos permitirá hacer el mismo tipo de cosas pero hacen la vista gorda, porque hoy, 329 00:15:08,870 --> 00:15:12,270 a las llaves, los paréntesis, los puntos y comas, y todos estos estúpidos 330 00:15:12,270 --> 00:15:15,680 distracciones que se interponen en el camino, en este primer día, de algunos básicos, bastante 331 00:15:15,680 --> 00:15:17,230 ideas interesantes. 332 00:15:17,230 --> 00:15:21,350 >> Así que con ese fin, me voy a ir De vuelta a mi escritorio aquí y 333 00:15:21,350 --> 00:15:25,890 dará a conocer la alternativa a la programa, que se va a buscar un 334 00:15:25,890 --> 00:15:30,790 algo se enciende esto. 335 00:15:30,790 --> 00:15:33,930 Eso es lo que vamos a aplicar esa mismo programa de hoy - dos rompecabezas 336 00:15:33,930 --> 00:15:37,710 piezas que, cuando entrelazados y hecho clic en, dirá al mundo, 337 00:15:37,710 --> 00:15:39,000 hola mundo. 338 00:15:39,000 --> 00:15:41,200 >> Así que vamos a ir en realidad allí. 339 00:15:41,200 --> 00:15:44,965 Así que voy a seguir adelante y abrir un sitio web conocido como scratch.mit.edu. 340 00:15:44,965 --> 00:15:47,980 341 00:15:47,980 --> 00:15:52,040 Y esto me llevará a Este sitio web aquí. 342 00:15:52,040 --> 00:15:54,660 De antemano, me he inscrito en este sitio web y los primeros problemas que 343 00:15:54,660 --> 00:15:55,910 le guiará a través de algunos de estos pasos. 344 00:15:55,910 --> 00:15:58,930 Voy a seguir adelante y haga clic en en mi carpeta de cero aquí. 345 00:15:58,930 --> 00:16:00,720 >> Y esto me va a mostrar algunos proyectos que he 346 00:16:00,720 --> 00:16:02,570 en realidad creado de antemano. 347 00:16:02,570 --> 00:16:05,860 Y resulta que esta gráfica lenguaje de programación no sólo va 348 00:16:05,860 --> 00:16:08,480 para hacernos programa arrastrando y dejar caer estas piezas de un rompecabezas, que 349 00:16:08,480 --> 00:16:09,730 ni siquiera se necesita un software especial. 350 00:16:09,730 --> 00:16:13,190 Todo está incrustado dentro de un navegador para que usted puede hacer esto, en teoría, en 351 00:16:13,190 --> 00:16:16,810 los equipos en este momento, como algunos de ustedes bien puede ser, incluso sin necesidad de 352 00:16:16,810 --> 00:16:19,870 software como el aparato CS50, que llegará la próxima semana. 353 00:16:19,870 --> 00:16:24,200 >> Así que me voy a ir hasta la esquina superior aquí y haga clic en Crear. 354 00:16:24,200 --> 00:16:27,840 Y en un momento en que me voy a poner un espacio en blanco pantalla a través de la cual puedo empezar 355 00:16:27,840 --> 00:16:30,380 programación en esta gráfica entorno de programación. 356 00:16:30,380 --> 00:16:36,140 Pero esta vez, va a ser mucho, mucho más simple en realidad lo hacen. 357 00:16:36,140 --> 00:16:41,560 Así que en un momento, cuando el Wi-Fi coopera, ahora tenemos esta pantalla. 358 00:16:41,560 --> 00:16:44,870 Así que una visita rápida verbal, pero me atrevo a decir, sin duda cuando te sumerjas en el 359 00:16:44,870 --> 00:16:46,840 primer conjunto de problemas, se le encontrar este muy 360 00:16:46,840 --> 00:16:48,315 accesible y bastante intuitivo. 361 00:16:48,315 --> 00:16:50,900 Pero vamos a pintar una imagen mental sólo por un momento. 362 00:16:50,900 --> 00:16:54,620 >> Así que debajo de este mensaje dicho ahorro cambios, estás a punto de ver la nada. 363 00:16:54,620 --> 00:16:55,570 Se trata de un sprite. 364 00:16:55,570 --> 00:16:56,630 Es un personaje. 365 00:16:56,630 --> 00:17:00,740 Y vive en lo que llamaremos un escenario, este gran rectángulo blanco sobre 366 00:17:00,740 --> 00:17:03,120 que puede moverse hacia arriba, abajo, izquierda, derecho, y lo hacen, en realidad, 367 00:17:03,120 --> 00:17:04,670 otro tipo de acciones. 368 00:17:04,670 --> 00:17:08,780 >> Mientras tanto, en el medio de este usuario interfaz, tenemos un montón de 369 00:17:08,780 --> 00:17:09,750 rompecabezas de piezas. 370 00:17:09,750 --> 00:17:14,060 Y verás que dicen cosas como moverse 10 pasos, giró 15 grados, 371 00:17:14,060 --> 00:17:15,550 apuntar en una dirección determinada. 372 00:17:15,550 --> 00:17:17,910 Pero hay categorías de bloques hasta aquí también. 373 00:17:17,910 --> 00:17:21,410 Así que si voy a Las apariencias, verás que hay otras piezas de un rompecabezas que 374 00:17:21,410 --> 00:17:25,530 aparentemente le dirá esta cit de saludar, para pensar, para mostrar 375 00:17:25,530 --> 00:17:26,780 a sí mismo, se esconden a sí mismo. 376 00:17:26,780 --> 00:17:30,830 Si voy a sonidos, resulta hay maneras de jugar suena como el maullido, 377 00:17:30,830 --> 00:17:32,670 para detener todos los sonidos, para jugar un tambor. 378 00:17:32,670 --> 00:17:36,530 >> Así, cuento largo, hay un conjunto montón de piezas de un rompecabezas que le permiten 379 00:17:36,530 --> 00:17:40,920 decirle a este gato, o cualquier número de otros personajes, lo que debe hacer. 380 00:17:40,920 --> 00:17:43,850 Pero para hacer esto todo lo que suceda necesario para iniciar la programación. 381 00:17:43,850 --> 00:17:48,090 Y esta gran caja blanca o caja de color gris, en la derecha, aquí es donde 382 00:17:48,090 --> 00:17:50,170 Voy a arrastrar realidad y soltar las piezas del rompecabezas. 383 00:17:50,170 --> 00:17:54,320 Esa es mi texto en blanco ventana equivalente. 384 00:17:54,320 --> 00:17:57,070 >> Así que voy a seguir adelante y haga clic en De control en el medio. 385 00:17:57,070 --> 00:17:58,540 O más bien, déjame empezar bajo Eventos. 386 00:17:58,540 --> 00:18:01,530 En Eventos banco, verás que hay una algunas cosas que son deliberadamente 387 00:18:01,530 --> 00:18:05,240 curvado en la parte superior de tal manera que es probable que no se entrelazan en la 388 00:18:05,240 --> 00:18:06,710 parte superior de las piezas de un rompecabezas. 389 00:18:06,710 --> 00:18:10,160 Y eso es porque demarcar el inicio de un programa, el inicio de una 390 00:18:10,160 --> 00:18:11,910 guión, por así decirlo. 391 00:18:11,910 --> 00:18:16,290 Así que si sigo adelante y arrastre, cuando está verde bandera clic aquí, y luego me 392 00:18:16,290 --> 00:18:18,060 quiere esto decir cat algo al primero. 393 00:18:18,060 --> 00:18:20,510 Así que me voy a pasar por debajo de el panel de apariencia. 394 00:18:20,510 --> 00:18:24,060 Y yo voy a seguir adelante y agarrar el saludar bloque, y arrastrar y soltar, 395 00:18:24,060 --> 00:18:27,220 y dejar ir para que de forma automática enclavamientos allí. 396 00:18:27,220 --> 00:18:28,640 >> Y a continuación, observe lo que pueda haga clic en el texto. 397 00:18:28,640 --> 00:18:31,960 Y puedo anularlo para ser más específica como, por ejemplo, hola mundo. 398 00:18:31,960 --> 00:18:36,340 Y ahora tenemos el programa que yo reclamo es equivalente a la mucho más 399 00:18:36,340 --> 00:18:39,670 programa arcano implementé en C hace un momento. 400 00:18:39,670 --> 00:18:43,130 >> Si voy ahora hacia el lado izquierdo, notar que hay una gran señal de stop 401 00:18:43,130 --> 00:18:44,520 y una gran bandera verde. 402 00:18:44,520 --> 00:18:46,390 Permítanme hacer zoom para mayor claridad. 403 00:18:46,390 --> 00:18:49,390 Y cuando hago clic ahora esta bandera verde, probablemente se puede adivinar lo que este primer 404 00:18:49,390 --> 00:18:51,920 programa ahora va a hacer. 405 00:18:51,920 --> 00:18:55,420 Así que, también, estamos programando, pero que en realidad no estamos empantanados 406 00:18:55,420 --> 00:18:58,980 en algunos de los sintáctica, detalles minuciosos. 407 00:18:58,980 --> 00:19:01,120 >> Pero vamos a intentar algo un poco más interesante. 408 00:19:01,120 --> 00:19:04,840 Déjame ir a mi carpeta de Scratch aquí. 409 00:19:04,840 --> 00:19:10,210 Y en realidad, déjame así que permítanme abro un programa separado aquí por sólo una 410 00:19:10,210 --> 00:19:17,830 momento, maximizar esta ventana Abrir archivo, y yo voy a entrar en el actual 411 00:19:17,830 --> 00:19:18,620 directorio de origen. 412 00:19:18,620 --> 00:19:21,660 Como siempre, usted encontrará, hoy y en adelante, que todos los ejemplos de hoy en día 413 00:19:21,660 --> 00:19:25,225 son accesibles en el interior del la página web de la asignatura. 414 00:19:25,225 --> 00:19:31,170 >> Y voy a seguir adelante aquí y recoger un poco de algo diferente. 415 00:19:31,170 --> 00:19:33,970 Este de aquí, para los que Necesito un voluntario. 416 00:19:33,970 --> 00:19:36,850 ¿Quién quiere una lámpara de escritorio de hoy? 417 00:19:36,850 --> 00:19:40,600 Bien, ¿qué hay de alguien un poco - está usted en el final? 418 00:19:40,600 --> 00:19:42,124 Vamos hacia abajo. 419 00:19:42,124 --> 00:19:47,230 Ahora, ¿le gustaría participar o Sólo decir comenzar con la lámpara de escritorio? 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 Excelente, lo que te llamas? 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 Gusto en conocerlo. 426 00:19:51,390 --> 00:19:53,840 Así que vamos y Vanessa va para tomar el control de mi 427 00:19:53,840 --> 00:19:55,490 teclado por un momento. 428 00:19:55,490 --> 00:19:57,850 Y lo que he hecho aquí, sólo por el tiempo de amor, como me he dado cuenta de la 429 00:19:57,850 --> 00:20:01,070 Wi-Fi era un poco lento, Scratch, el entorno de programación que estamos 430 00:20:01,070 --> 00:20:04,110 utilizando, con posibilidad de descarga y ejecutar en el equipo local. 431 00:20:04,110 --> 00:20:06,360 Así que lo que hice antes de la conferencia, en caso de que suceda, es que he descargado 432 00:20:06,360 --> 00:20:09,120 todos los archivos que estamos a punto de jugar con de modo que puedan correr un poco más 433 00:20:09,120 --> 00:20:10,840 rápidamente a la derecha aquí en mi portátil. 434 00:20:10,840 --> 00:20:13,460 Así que por eso ahora que estoy viendo una interfaz de Mac-específica. 435 00:20:13,460 --> 00:20:15,510 >> Así que voy a seguir adelante y abrir éste. 436 00:20:15,510 --> 00:20:18,400 Voy a seguir adelante y ahora pantalla completa de la ventana. 437 00:20:18,400 --> 00:20:21,740 Y como verás, podemos muy rápidamente, como este estudiante hizo, uno de 438 00:20:21,740 --> 00:20:26,360 sus predecesores, van de hola mundo a una convincente mucho, mucho más 439 00:20:26,360 --> 00:20:27,020 aplicación. 440 00:20:27,020 --> 00:20:28,180 Así que aquí están las instrucciones. 441 00:20:28,180 --> 00:20:29,500 Ah, y tenemos una cosa más. 442 00:20:29,500 --> 00:20:31,640 Pensé que sería divertido, ya que, Normalmente, vamos a estar filmando 443 00:20:31,640 --> 00:20:32,440 cámaras de esta manera. 444 00:20:32,440 --> 00:20:34,100 Pensé que sería divertido si, Vanessa, pudimos ver el mundo 445 00:20:34,100 --> 00:20:35,120 a través de sus ojos. 446 00:20:35,120 --> 00:20:36,670 Así que aquí tenemos un poco de Google Glass. 447 00:20:36,670 --> 00:20:39,290 >> [ASOMBRADO Suspiros] 448 00:20:39,290 --> 00:20:41,610 >> DAVID MALAN: Nosotros sólo estaremos dando mostrador de distancia Lámparas hoy. 449 00:20:41,610 --> 00:20:43,530 >> [Risas] 450 00:20:43,530 --> 00:20:45,260 >> Así que permítanme Cue esto. 451 00:20:45,260 --> 00:20:49,340 Muy bien, así que tocar esto. 452 00:20:49,340 --> 00:20:51,910 Aceptar, Cristal, grabar un vídeo. 453 00:20:51,910 --> 00:20:55,700 454 00:20:55,700 --> 00:20:56,950 Muy bien, Vanessa? 455 00:20:56,950 --> 00:21:00,940 456 00:21:00,940 --> 00:21:05,560 Ahora, en un aparte que no tiene nada que ver con Scratch, si nos fijamos 457 00:21:05,560 --> 00:21:08,540 ligeramente hacia arriba y hacia la derecha, verás el cristal literal, y que debiera 458 00:21:08,540 --> 00:21:09,650 ver una pequeña ventana rectangular. 459 00:21:09,650 --> 00:21:11,500 Usted debe ver a todos sus compañeros de clase se está filmando en este momento? 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 Así que eso está bien. 464 00:21:15,170 --> 00:21:16,660 Nos lanzaremos este metraje más tarde. 465 00:21:16,660 --> 00:21:18,460 Por ahora, dirija su atención a la pantalla aquí. 466 00:21:18,460 --> 00:21:20,990 Y lo que su predecesor ha hecho es poner algunas instrucciones en la pantalla 467 00:21:20,990 --> 00:21:22,670 sólo mediante el uso de un programa de dibujo. 468 00:21:22,670 --> 00:21:25,040 Así que usted va a, en un momento, presione la barra espaciadora para comenzar. 469 00:21:25,040 --> 00:21:27,790 Y luego algunas piezas del rompecabezas se van para comenzar a ascender en la pantalla. 470 00:21:27,790 --> 00:21:30,900 Y usted desea golpear las teclas de flecha, simplemente al igual que en DDR real, de conformidad 471 00:21:30,900 --> 00:21:32,740 con las cosas en fila con las flechas. 472 00:21:32,740 --> 00:21:33,020 >> VANESSA: OK. 473 00:21:33,020 --> 00:21:33,800 >> DAVID MALAN: Has jugar antes. 474 00:21:33,800 --> 00:21:34,140 >> VANESSA: Si. 475 00:21:34,140 --> 00:21:37,330 >> DAVID MALAN: Muy bien, Vanessa, seguir adelante y se lo quite. 476 00:21:37,330 --> 00:22:53,082 >> [MÚSICA - KAYNE OESTE, "FUERTE"] 477 00:22:53,082 --> 00:22:57,080 >> [Aplausos] 478 00:22:57,080 --> 00:22:59,750 >> DAVID MALAN: Así que vamos ahora dar un paso de eso. 479 00:22:59,750 --> 00:23:01,230 Así que, claramente, ese es el final del juego. 480 00:23:01,230 --> 00:23:02,880 El fin del juego no es hola mundo. 481 00:23:02,880 --> 00:23:05,520 Pero usted no tiene que ver necesariamente cosas que son tan interactivo. 482 00:23:05,520 --> 00:23:06,810 También se puede hacer la animación. 483 00:23:06,810 --> 00:23:10,790 Así, por ejemplo, otro de su sucesores hicieron este programa aquí, 484 00:23:10,790 --> 00:23:14,100 que cuenta una historia de más de que no puso en práctica un juego. 485 00:23:14,100 --> 00:23:19,180 Así que déjame ir por delante, ya abrir aquí un programa en nuestro directorio fuente misma 486 00:23:19,180 --> 00:23:20,300 a partir de hoy. 487 00:23:20,300 --> 00:23:26,990 Esta llamada, y vamos a empezar con una historia de amor de la galleta. 488 00:23:26,990 --> 00:23:30,750 >> Y para no hacer esto demasiado académica, pero, como ves esta, creo que 489 00:23:30,750 --> 00:23:34,030 usted mismo cuál de los simples conceptos de programación que hemos hablado 490 00:23:34,030 --> 00:23:34,630 sobre hasta ahora - 491 00:23:34,630 --> 00:23:39,250 variables y bucles, y condiciones, hizo su predecesor, probablemente utilice sólo 492 00:23:39,250 --> 00:23:41,090 para poner en práctica algunas de las visualizaciones. 493 00:23:41,090 --> 00:23:41,760 Usted ve aquí. 494 00:23:41,760 --> 00:23:44,118 Así que te doy una historia de amor de la galleta. 495 00:23:44,118 --> 00:24:06,030 >> [MÚSICA - GREEN DAY, "vacaciones"] 496 00:24:06,030 --> 00:24:08,022 >> [CRASH] 497 00:24:08,022 --> 00:24:09,272 >> [MÚSICA - LA TORTUGA, "Happy Together"] 498 00:24:09,272 --> 00:24:58,328 499 00:24:58,328 --> 00:25:00,560 >> DAVID MALAN: Muy bien, así que, tuvimos una historia de amor de la galleta. 500 00:25:00,560 --> 00:25:01,360 Pero incluso allí - 501 00:25:01,360 --> 00:25:01,755 >> [Aplausos] 502 00:25:01,755 --> 00:25:08,110 >> DAVID MALAN: Muy bien, incluso allí, pensar, como esos corazones fueron de 503 00:25:08,110 --> 00:25:10,410 la parte inferior a la parte superior de la pantalla, no era en realidad un poco de 504 00:25:10,410 --> 00:25:11,440 aleatoriedad pasando. 505 00:25:11,440 --> 00:25:14,150 Y, de hecho, vamos a ver que incluso en el más simple de entornos, como 506 00:25:14,150 --> 00:25:18,180 Scratch, como en C, puede generar números aleatorios, o la ilusión de 507 00:25:18,180 --> 00:25:21,110 números aleatorios, de manera que el juego es un poco más interesante de lo que podría 508 00:25:21,110 --> 00:25:23,390 si tuviera absolutamente codificado todo. 509 00:25:23,390 --> 00:25:26,360 >> En el movimiento que se ve, no hay algún tipo de respuesta. 510 00:25:26,360 --> 00:25:28,840 Tan pronto como los toques por el hombre de pan de jengibre la mujer del pan de jengibre, ella 511 00:25:28,840 --> 00:25:30,000 parece alejarse. 512 00:25:30,000 --> 00:25:33,580 Y así, de hecho, se puede poner en práctica, en la mayoría de los lenguajes de programación, la noción 513 00:25:33,580 --> 00:25:38,680 de los acontecimientos, de forma que si uno mano toca Por otro lado, que puede desencadenar algunos 514 00:25:38,680 --> 00:25:41,270 de su código fuente para de hecho ejecutar. 515 00:25:41,270 --> 00:25:43,740 Usted puede escuchar a tal cosas en la pantalla. 516 00:25:43,740 --> 00:25:47,310 >> Así que vamos a hacer un recorrido rápido, entonces, de algunos de los componentes básicos que podemos utilizar 517 00:25:47,310 --> 00:25:48,790 para alcanzar algunos de estos objetivos. 518 00:25:48,790 --> 00:25:51,630 Así que aquí es lo que haremos a partir de ahora llamar a un comunicado. 519 00:25:51,630 --> 00:25:55,030 Una declaración pasa a ser de color púrpura en Scratch, un poco de algo como esto, 520 00:25:55,030 --> 00:25:56,120 pero eso es arbitrario. 521 00:25:56,120 --> 00:26:00,140 Una declaración es sólo una pieza del rompecabezas, o, más en general, una instrucción, que 522 00:26:00,140 --> 00:26:03,370 narra la computadora para hacer algo, un comunicado. 523 00:26:03,370 --> 00:26:04,680 >> Así que aquí está una muestra simple. 524 00:26:04,680 --> 00:26:05,930 Say hello world. 525 00:26:05,930 --> 00:26:08,180 Otra podría ser, espera un segundo. 526 00:26:08,180 --> 00:26:10,840 Así que esta pieza del rompecabezas, que es apoyado en Scratch, vamos a dejar que su 527 00:26:10,840 --> 00:26:13,050 personajes se detienen por algún número de segundos. 528 00:26:13,050 --> 00:26:15,330 Esto, también, es sólo una declaración. 529 00:26:15,330 --> 00:26:18,640 >> Aquí al lado, tenemos otro más interesante, jugar maullido de sonido, y 530 00:26:18,640 --> 00:26:21,480 la pequeña flecha significa que en Scratch, este es un menú desplegable. 531 00:26:21,480 --> 00:26:22,590 Así que usted puede importar sonidos. 532 00:26:22,590 --> 00:26:25,095 Puede grabar sonidos y hacer otra cosas divertidas en cero. 533 00:26:25,095 --> 00:26:28,450 Y eso, también, sin embargo, al final y al cabo, es sólo una declaración. 534 00:26:28,450 --> 00:26:31,250 Pero ahora vamos a introducir una mayor pieza interesante, que se conoce como una 535 00:26:31,250 --> 00:26:32,630 Expresión booleana. 536 00:26:32,630 --> 00:26:35,180 Capital B, el nombre de un tipo llamado Bool. 537 00:26:35,180 --> 00:26:39,500 >> Y una expresión booleana es sólo un pieza del rompecabezas o, más en general, un 538 00:26:39,500 --> 00:26:42,980 pieza de información que es verdadero o falso - 539 00:26:42,980 --> 00:26:45,830 uno o cero, sí o no. 540 00:26:45,830 --> 00:26:48,420 Así que es sólo uno de los dos opuestos. 541 00:26:48,420 --> 00:26:52,840 Así que uno de esos expresión booleana en el mundo de scratch tiene este aspecto azul 542 00:26:52,840 --> 00:26:53,560 pieza del rompecabezas. 543 00:26:53,560 --> 00:26:56,735 Y está haciendo una pregunta, ratón hacia abajo, y que, o bien puede ser, de 544 00:26:56,735 --> 00:26:58,430 Por supuesto, verdadero o falso. 545 00:26:58,430 --> 00:27:01,710 Así que con esta pieza de puzzle en el Scratch, así, usted será capaz de detectar si un 546 00:27:01,710 --> 00:27:05,490 descifrar si el ratón es, de hecho, ser celebrada por el que interactúa humana 547 00:27:05,490 --> 00:27:06,550 con su programa. 548 00:27:06,550 --> 00:27:08,860 >> Éste es un poco más abstracto, pero esos dos cajas blancas 549 00:27:08,860 --> 00:27:09,740 son sólo para los números. 550 00:27:09,740 --> 00:27:12,950 Así que usted puede hacer cosas como es este número menor que el otro? 551 00:27:12,950 --> 00:27:16,180 Y si es así, Scratch se comportará de una manera u otra. 552 00:27:16,180 --> 00:27:17,505 Éste es un poco más gráfico. 553 00:27:17,505 --> 00:27:21,840 Es si el sprite, si el gato, por ejemplo, en realidad está tocando el 554 00:27:21,840 --> 00:27:22,510 puntero del ratón. 555 00:27:22,510 --> 00:27:25,780 Así que si la pequeña punta de la flecha se cierne sobre el gato, entonces este 556 00:27:25,780 --> 00:27:28,030 pieza del rompecabezas se evaluará como true. 557 00:27:28,030 --> 00:27:31,870 Será verdad, en cuyo caso, si utilizar esta expresión booleana, como veremos 558 00:27:31,870 --> 00:27:36,340 ver en un momento, en una rama, puede o bien hacer esto, o usted puede hacer eso, 559 00:27:36,340 --> 00:27:39,940 al igual que tuvimos una condición que comprobado, ¿hay uno más última persona 560 00:27:39,940 --> 00:27:40,460 en la habitación? 561 00:27:40,460 --> 00:27:42,070 Si es así, añada una. 562 00:27:42,070 --> 00:27:44,430 De lo contrario, no te preocupes más. 563 00:27:44,430 --> 00:27:48,650 >> Por lo tanto una expresión booleana puede ser también y ed-juntos o o-ed juntos. 564 00:27:48,650 --> 00:27:53,120 Así que usted puede combinar expresiones booleanas y decir esto y esto debe ser cierto para 565 00:27:53,120 --> 00:27:54,710 todo esto para ser verdad. 566 00:27:54,710 --> 00:27:56,520 Y aquí está un ejemplo del mundo más real. 567 00:27:56,520 --> 00:28:00,060 Si ha utilizado Cursos CS50 hacer curso comerciales, estas casillas de verificación 568 00:28:00,060 --> 00:28:03,520 allí, donde si marcas la casilla de al lado a los cursos, que va a decir, sí, 569 00:28:03,520 --> 00:28:07,860 sólo mostrarme cursos para los cuales el valor Q es 4.5 o superior. 570 00:28:07,860 --> 00:28:10,610 Si se desactiva, no, no lo hace preocuparse por eso. 571 00:28:10,610 --> 00:28:13,910 O de forma similar, a la derecha, no lo hace Conflictos con cursos que estoy tomando, 572 00:28:13,910 --> 00:28:15,650 eso es verdadero o falso. 573 00:28:15,650 --> 00:28:16,715 Es sólo una expresión booleana. 574 00:28:16,715 --> 00:28:20,080 Así que todo este tiempo en que usted ha utilizado sitios web con casillas de verificación, sólo son 575 00:28:20,080 --> 00:28:23,570 alternando el equivalente de un booleano expresión de encendido y apagado. 576 00:28:23,570 --> 00:28:25,270 >> Así pues, en qué forma usted utiliza estos? 577 00:28:25,270 --> 00:28:28,820 Pues bien, en Scratch, ya veremos dentro de un momento que hay condiciones que 578 00:28:28,820 --> 00:28:29,560 tener este aspecto. 579 00:28:29,560 --> 00:28:33,130 Y eso es algo sensato, porque gran parte como en pseudocódigo, nos sangría 580 00:28:33,130 --> 00:28:38,550 el tipo de piezas de un rompecabezas en forma de U, con una media que nada dentro de esa U es 581 00:28:38,550 --> 00:28:41,390 va a ejecutar, o no, dependiendo en donde está. 582 00:28:41,390 --> 00:28:45,310 Así que si la expresión booleana, a continuación, lo que hay dentro se quieran realizar. 583 00:28:45,310 --> 00:28:46,800 >> Mientras tanto, hay un if / else bloque. 584 00:28:46,800 --> 00:28:50,320 Así que si quieres una rama que va de esta o cual manera, Scratch nos da eso. 585 00:28:50,320 --> 00:28:54,500 Y por esta lógica, ahora, a pesar de que pieza del rompecabezas es claramente demasiado pequeño 586 00:28:54,500 --> 00:28:57,400 para acuñar algo más dentro de ella, las piezas del rompecabezas de cero, que son 587 00:28:57,400 --> 00:28:58,150 sólo va a crecer. 588 00:28:58,150 --> 00:29:01,370 Al arrastrar y soltar sobre algo, que sólo va a crecer para adaptarse a lo que sea 589 00:29:01,370 --> 00:29:02,510 es lo que estás tratando de hacer. 590 00:29:02,510 --> 00:29:07,230 >> Así que podemos tomar dos de estas cosas y hacer un tenedor de tres vías en la carretera, así 591 00:29:07,230 --> 00:29:11,300 que o bien hace esto, o aquello, o esta otra cosa con sólo anidarlas 592 00:29:11,300 --> 00:29:12,070 de esa manera. 593 00:29:12,070 --> 00:29:14,370 Por supuesto, si lo haces demasiado mucho, empieza a ponerse feo. 594 00:29:14,370 --> 00:29:17,660 Pero en ese momento, en realidad estás Probablemente no se programa muy bien. 595 00:29:17,660 --> 00:29:20,490 Y por lo que será recurrente tema, también, la de estilo. 596 00:29:20,490 --> 00:29:22,790 ¿Qué tan bien hacer realidad formatear su código? 597 00:29:22,790 --> 00:29:24,580 O ¿qué tan bien el diseño de su código? 598 00:29:24,580 --> 00:29:26,430 Pero más sobre esto en el futuro. 599 00:29:26,430 --> 00:29:27,470 >> Y ahora tenemos lazos. 600 00:29:27,470 --> 00:29:30,310 Hay un bonito lazo para siempre en scratch lo que significa, literalmente, que - do 601 00:29:30,310 --> 00:29:32,710 lo que hay dentro de este nuevo, y otra vez, y otra vez. 602 00:29:32,710 --> 00:29:35,880 Puede ser más concreto y decir: hacer lo siguiente 10 veces. 603 00:29:35,880 --> 00:29:37,620 También puede utilizar las variables. 604 00:29:37,620 --> 00:29:40,260 Usted puede subir con cualquier nombre en ese poco desplegable y decir, dame un 605 00:29:40,260 --> 00:29:43,190 variable llamada n y ajuste es igual a algún valor. 606 00:29:43,190 --> 00:29:44,910 Y entonces usted puede tener funciones. 607 00:29:44,910 --> 00:29:46,850 Pero más sobre esto en sólo un momento. 608 00:29:46,850 --> 00:29:49,140 >> Déjame volver a mi Interfaz de Scratch. 609 00:29:49,140 --> 00:29:50,970 Y déjame ir por delante en esta ocasión. 610 00:29:50,970 --> 00:29:56,660 Y vamos a seguir adelante y abrir, digamos, un ejemplo de - 611 00:29:56,660 --> 00:29:58,740 eso es un poco más interesante. 612 00:29:58,740 --> 00:30:00,750 Déjame ir delante, y, en realidad, Permítanme hacer yo mismo. 613 00:30:00,750 --> 00:30:01,960 No necesito para abrir éste. 614 00:30:01,960 --> 00:30:03,390 Déjame ir a Archivo, Nuevo. 615 00:30:03,390 --> 00:30:04,740 Voy a ir a eventos. 616 00:30:04,740 --> 00:30:08,460 Me voy a ir cuando la bandera verde hecho clic, y yo voy a ir a Sonido. 617 00:30:08,460 --> 00:30:11,590 Y yo voy a arrastrarlo este pieza del rompecabezas, jugar al maullido de sonido. 618 00:30:11,590 --> 00:30:12,580 Se bloquea juntos. 619 00:30:12,580 --> 00:30:14,327 Y ahora, si hago clic en la bandera verde - 620 00:30:14,327 --> 00:30:16,260 >> [MEOW SONIDO] 621 00:30:16,260 --> 00:30:17,500 >> DAVID MALAN: Adorable. 622 00:30:17,500 --> 00:30:21,560 OK, así que ahora vamos a hacer algo un poco más lógico sólo para demostrar que 623 00:30:21,560 --> 00:30:22,760 podemos, por ahora. 624 00:30:22,760 --> 00:30:25,550 Voy a desenganchar esto de ese tipo. 625 00:30:25,550 --> 00:30:27,000 Voy a ir a control. 626 00:30:27,000 --> 00:30:28,770 Y yo voy a agarrar una condición. 627 00:30:28,770 --> 00:30:30,600 Así que si algo entonces. 628 00:30:30,600 --> 00:30:32,020 Así que esa es la forma en que se ve allí. 629 00:30:32,020 --> 00:30:33,890 Así que necesito una expresión booleana. 630 00:30:33,890 --> 00:30:38,130 Y déjame seguir adelante y decir, déjame ir a los operadores. 631 00:30:38,130 --> 00:30:40,270 Voy a hacer algo un poco mathy, sólo por diversión. 632 00:30:40,270 --> 00:30:43,600 Voy a entrar ahí y decir, si algo menos que otra cosa, 633 00:30:43,600 --> 00:30:45,030 seguir adelante y hacer algo. 634 00:30:45,030 --> 00:30:46,890 Así que ahora, ¿sabes qué, un bloque aleatorio. 635 00:30:46,890 --> 00:30:51,620 Así cuenta cómo, si yo se ciernen sobre esta cosa aquí, que se ajustará en ese país. 636 00:30:51,620 --> 00:30:54,090 >> Así que ahora, aviso, estoy empezando a hacer algo ya más lógica 637 00:30:54,090 --> 00:30:54,650 interesante. 638 00:30:54,650 --> 00:30:59,720 Si un número aleatorio entre 1 y 10 es menos de, digamos seis. 639 00:30:59,720 --> 00:31:03,670 Si elijo seis, que, básicamente, medios, haga lo siguiente con un 50% 640 00:31:03,670 --> 00:31:03,980 probabilidad. 641 00:31:03,980 --> 00:31:05,460 Es como lanzar una moneda. 642 00:31:05,460 --> 00:31:07,330 Ahora, puedo hacer algo de forma condicional. 643 00:31:07,330 --> 00:31:10,800 Y ese algo que voy que hacer es reproducir el sonido. 644 00:31:10,800 --> 00:31:14,280 Así que ahora, cuando hago clic en la pantalla bandera, es como tirar una moneda. 645 00:31:14,280 --> 00:31:14,610 >> [MEOW SONIDO] 646 00:31:14,610 --> 00:31:17,160 >> DAVID MALAN: Fue cabezas o lo que sea allí. 647 00:31:17,160 --> 00:31:17,920 Vamos a hacerlo de nuevo. 648 00:31:17,920 --> 00:31:18,860 >> [MEOW SONIDO] 649 00:31:18,860 --> 00:31:19,790 >> DAVID MALAN: Jefes de nuevo. 650 00:31:19,790 --> 00:31:20,280 >> [MEOW SONIDO] 651 00:31:20,280 --> 00:31:21,500 >> DAVID MALAN: Jefes de nuevo. 652 00:31:21,500 --> 00:31:22,631 Ufff, OK. 653 00:31:22,631 --> 00:31:24,720 Tails ese momento. 654 00:31:24,720 --> 00:31:29,545 Así que el 50% de las veces, si hacemos esto infinitamente largo, vamos a obtener el 50% maullidos 655 00:31:29,545 --> 00:31:32,180 y 50% silencios. 656 00:31:32,180 --> 00:31:34,850 Así que, sólo un edificio básico bloque que nos permite hacer eso. 657 00:31:34,850 --> 00:31:37,710 Pero esto es un poco tedioso que tengo para seguir haciendo clic en ese botón. 658 00:31:37,710 --> 00:31:39,810 Así que vamos a arrastrar y tirar todos aquellos de distancia. 659 00:31:39,810 --> 00:31:42,270 Si usted los ha arrastrado a la mitad, que sólo va a eliminar a sí mismos. 660 00:31:42,270 --> 00:31:43,760 >> Déjame ir a controlar. 661 00:31:43,760 --> 00:31:46,060 Déjame ir a por siempre. 662 00:31:46,060 --> 00:31:49,952 Y esta vez, voy a hacer algo minorly molesto. 663 00:31:49,952 --> 00:31:51,560 >> [Risas] 664 00:31:51,560 --> 00:31:53,370 >> DAVID MALAN: Y déjame ir adelante y hacer control. 665 00:31:53,370 --> 00:31:57,260 Espere un segundo, sólo para no es demasiado rejilla. 666 00:31:57,260 --> 00:31:59,870 >> [MEOW SONIDO] 667 00:31:59,870 --> 00:32:00,970 >> DAVID MALAN: Eso no es natural. 668 00:32:00,970 --> 00:32:01,861 Aceptar. 669 00:32:01,861 --> 00:32:04,510 >> [MEOW SONIDO] 670 00:32:04,510 --> 00:32:06,406 >> DAVID MALAN: Y note lo que es, un buen sobre Scratch, para aquellos de ustedes que 671 00:32:06,406 --> 00:32:09,210 tiene experiencia de programación previa, no es necesario para iniciar y detener. 672 00:32:09,210 --> 00:32:10,060 No es necesario para compilar. 673 00:32:10,060 --> 00:32:13,210 Usted acaba de cambiar, y el programa se adaptará dinámicamente. 674 00:32:13,210 --> 00:32:14,620 Así que esto se está poniendo un poco interesante. 675 00:32:14,620 --> 00:32:16,930 Pero demos un paso más allá. 676 00:32:16,930 --> 00:32:19,760 Déjenme seguir adelante y obtener deshacerse de ese programa. 677 00:32:19,760 --> 00:32:23,300 >> [MEOW SONIDO] 678 00:32:23,300 --> 00:32:25,520 >> DAVID MALAN: Eso es lo que vamos a llamar a un error en los arañazos. 679 00:32:25,520 --> 00:32:26,770 Él no debe seguir haciendo ese sonido. 680 00:32:26,770 --> 00:32:28,340 Así que vamos a decirle que pare. 681 00:32:28,340 --> 00:32:30,435 Muy bien, así que ahora estoy va a entrar en - 682 00:32:30,435 --> 00:32:32,180 Te dejaré saber MIT. 683 00:32:32,180 --> 00:32:35,160 Vamos a repasar aquí para siempre. 684 00:32:35,160 --> 00:32:37,240 Y ahora, yo quiero hacer algo una y otra vez. 685 00:32:37,240 --> 00:32:38,760 Voy a entrar en control. 686 00:32:38,760 --> 00:32:41,570 >> Y vamos a ver, voy a arrastrar mi condición if allí. 687 00:32:41,570 --> 00:32:42,850 Así que ahora cuenta de la lógica. 688 00:32:42,850 --> 00:32:46,430 Cuando se hace clic en la bandera verde, hacer algo para siempre, pero sólo lo que 689 00:32:46,430 --> 00:32:48,890 algo si esta otra cosa es cierta. 690 00:32:48,890 --> 00:32:51,480 Voy a ir a, vamos a decir, sintiendo. 691 00:32:51,480 --> 00:32:54,430 Y yo voy a seguir adelante y elegir tocar y dejarlo allí. 692 00:32:54,430 --> 00:32:55,930 Esa es una expresión booleana. 693 00:32:55,930 --> 00:32:57,740 >> Y ahora, fíjate, en esta caída menú de abajo, hay 694 00:32:57,740 --> 00:32:59,050 algunos valores predefinidos. 695 00:32:59,050 --> 00:33:00,910 Así que puedo decir, estás tocando el borde de la pantalla? 696 00:33:00,910 --> 00:33:03,900 ¿O tocando el puntero del ratón, la flecha en la pantalla? 697 00:33:03,900 --> 00:33:04,620 Así que voy a hacer eso. 698 00:33:04,620 --> 00:33:08,770 Y si es así, entonces yo voy a ir adelante y jugar maullido sonido. 699 00:33:08,770 --> 00:33:11,250 Así que ahora tengo el tipo de inicios de un juego - 700 00:33:11,250 --> 00:33:13,110 un juego adorable. 701 00:33:13,110 --> 00:33:14,060 >> [MEOW SONIDO] 702 00:33:14,060 --> 00:33:17,250 >> DAVID MALAN: OK, un adorable, Buggy juego. 703 00:33:17,250 --> 00:33:20,770 Déjame esperar, digamos, un segundo allí. 704 00:33:20,770 --> 00:33:24,910 Ahora toca de nuevo, haciendo clic en la bandera verde. 705 00:33:24,910 --> 00:33:27,860 >> [MEOW SONIDO] 706 00:33:27,860 --> 00:33:30,460 >> DAVID MALAN: Así que ahora es como acariciar a un gato. 707 00:33:30,460 --> 00:33:31,850 >> [MEOW SONIDO] 708 00:33:31,850 --> 00:33:34,460 >> DAVID MALAN: Muy bien, ahora esto que yo hice por adelantado. 709 00:33:34,460 --> 00:33:39,250 Muy tarde, se pone tipo de fácil de hacer cosas estúpidas. 710 00:33:39,250 --> 00:33:40,240 Así que déjame ir aquí. 711 00:33:40,240 --> 00:33:43,720 Digamos, que era la mascota del gato. 712 00:33:43,720 --> 00:33:46,600 Ahora vamos a abrir no acaricie el Gato. 713 00:33:46,600 --> 00:33:48,330 Ahora, si jugamos éste, se puede adivinar, si eres 714 00:33:48,330 --> 00:33:49,650 mirando a la pantalla - 715 00:33:49,650 --> 00:33:51,090 >> [MEOW SONIDO] 716 00:33:51,090 --> 00:33:52,170 >> DAVID MALAN: Ahora, si yo acaricio al gato 717 00:33:52,170 --> 00:33:55,420 >> [LION ROAR] 718 00:33:55,420 --> 00:33:57,260 >> DAVID MALAN: Así que en realidad no acariciar al gato en ese caso. 719 00:33:57,260 --> 00:34:01,350 Así que ahora sólo tenemos un ejemplo de un rama que va en dos direcciones. 720 00:34:01,350 --> 00:34:03,130 Ahora voy a seguir adelante y abrir otro aquí. 721 00:34:03,130 --> 00:34:07,120 Éste, también, entre nuestra fuente archivos de código para el día. 722 00:34:07,120 --> 00:34:13,199 Así que déjame ir de nuevo en mi Fuente directorio y entrar, vamos a elegir 723 00:34:13,199 --> 00:34:15,610 este chico aquí y ver lo que es diferente. 724 00:34:15,610 --> 00:34:17,449 >> Wow, está bien, por lo que ahora se está haciendo un poco más complejo. 725 00:34:17,449 --> 00:34:21,300 Y antes de que veamos lo que hace este tipo, vamos a tratar de inferir, a partir del programa de 726 00:34:21,300 --> 00:34:22,219 en el lado derecho. 727 00:34:22,219 --> 00:34:25,590 Y ahora rascamos claramente nos permite tener varios guiones, múltiples 728 00:34:25,590 --> 00:34:29,730 programas asociados con uno de sprites, con un carácter, y, al parecer, 729 00:34:29,730 --> 00:34:31,760 Ambos van a correr al mismo ritmo. 730 00:34:31,760 --> 00:34:35,570 Debido a que comienza dos de estos programas con bandera verde cuando se hace clic, se trata de 731 00:34:35,570 --> 00:34:38,650 haciendo alusión a un tema más avanzado, con que algunos de ustedes podrían estar familiarizados, 732 00:34:38,650 --> 00:34:40,580 conocido como roscado, o multi-threading. 733 00:34:40,580 --> 00:34:44,400 >> Resulta que, cuento largo, computadoras hoy puede hacer esencialmente múltiple 734 00:34:44,400 --> 00:34:45,270 cosas a la vez. 735 00:34:45,270 --> 00:34:48,659 O pueden hacer una cosa a la vez, así rápido que no te das cuenta de que 736 00:34:48,659 --> 00:34:50,150 que está haciendo en realidad uno cosa a la vez. 737 00:34:50,150 --> 00:34:53,320 Pero por ahora, vamos a suponer que ambos estos programas van a ejecutar en el 738 00:34:53,320 --> 00:34:54,310 al mismo tiempo. 739 00:34:54,310 --> 00:34:57,350 Y note, ambos tienen rompecabezas para siempre piezas. 740 00:34:57,350 --> 00:35:01,270 Así que están tanto va a seguir funcionando hasta que llegué a la señal de stop de color rojo. 741 00:35:01,270 --> 00:35:02,100 >> Entonces, ¿qué van a hacer? 742 00:35:02,100 --> 00:35:06,030 Por el lado de la mano izquierda, yo soy al parecer Declarar una variable llamada silenciada. 743 00:35:06,030 --> 00:35:09,030 Así que no me llamo algo así como aburrido como N. llamé silenciado este 744 00:35:09,030 --> 00:35:10,240 tiempo para transmitir significado. 745 00:35:10,240 --> 00:35:11,780 Me puse igual a cero. 746 00:35:11,780 --> 00:35:16,200 Vamos a pensar en eso como Falso o vamos a pensar en eso como Falso. 747 00:35:16,200 --> 00:35:17,490 >> Ahora, para siempre hacer lo siguiente. 748 00:35:17,490 --> 00:35:23,280 Si se pulsa la barra espaciadora del teclado, entonces si silenciado es igual a cero, 749 00:35:23,280 --> 00:35:25,930 luego cambiar silenciado igual a uno. 750 00:35:25,930 --> 00:35:27,580 Else, establezca silenciado a cero. 751 00:35:27,580 --> 00:35:30,530 Así que, lógicamente, a pesar de que eso es un todo montón de piezas de un rompecabezas que está en 752 00:35:30,530 --> 00:35:33,160 Sólo digo, cuando me golpeó la barra espaciadora, ¿qué debo hacer para la variable 753 00:35:33,160 --> 00:35:34,750 llamada silenciado? 754 00:35:34,750 --> 00:35:37,170 Cambiarlo por uno a cero, o cero a uno. 755 00:35:37,170 --> 00:35:37,840 Eso es todo. 756 00:35:37,840 --> 00:35:40,740 Así que es como encender un interruptor de luz encendido o apagado y el recuerdo, con un 757 00:35:40,740 --> 00:35:42,330 variables, que yo lo he hecho. 758 00:35:42,330 --> 00:35:45,990 >> Mientras tanto, en el lado derecho, a términos sencillos, ¿cuál es el propósito de 759 00:35:45,990 --> 00:35:47,547 el guión de la derecha? 760 00:35:47,547 --> 00:35:48,860 >> ESTUDIANTE: Para reproducir el sonido de leones marinos. 761 00:35:48,860 --> 00:35:52,500 >> DAVID MALAN: Para reproducir el sonido del león marino, si él no está silenciado, por 762 00:35:52,500 --> 00:35:53,480 naturaleza de esa variable. 763 00:35:53,480 --> 00:35:57,360 Así que estamos compartiendo estado, por así decirlo, compartir información a través de estos dos 764 00:35:57,360 --> 00:36:00,540 guiones porque, aviso aquí, estamos siempre haciendo lo siguiente. 765 00:36:00,540 --> 00:36:04,620 Si silenciado es cero, por lo que si no está silenciado - si silenciado es falso, entonces el juego 766 00:36:04,620 --> 00:36:05,980 este sonido Sea Lion. 767 00:36:05,980 --> 00:36:09,930 Y piensa a sí mismo, hi, hi, hi, para de dos segundos, espere un momento, y luego 768 00:36:09,930 --> 00:36:11,140 puedes volver a intentarlo. 769 00:36:11,140 --> 00:36:15,150 Así que si nos vamos ahora hacia aquí a la izquierda, de donde es este tipo, y dio en el 770 00:36:15,150 --> 00:36:16,662 bandera verde, 771 00:36:16,662 --> 00:36:30,260 >> [SEA LION SONIDO] 772 00:36:30,260 --> 00:36:31,910 >> DAVID MALAN: ¿En qué punto esto pone muy molesto? 773 00:36:31,910 --> 00:36:33,440 Debido a que esto sólo va a durar para siempre. 774 00:36:33,440 --> 00:36:36,490 Así que a veces, bucles infinitos, por así decirlo, son deliberados. 775 00:36:36,490 --> 00:36:41,140 Pero en este caso, tan pronto como pulsa la barra espaciadora, se detiene. 776 00:36:41,140 --> 00:36:42,800 Ahora, el programa no ha dejado. 777 00:36:42,800 --> 00:36:44,760 Todavía está funcionando en estos bucles. 778 00:36:44,760 --> 00:36:46,540 Pero si tengo la barra espaciadora de nuevo - 779 00:36:46,540 --> 00:36:47,851 >> [SEA LION SONIDO] 780 00:36:47,851 --> 00:36:49,650 >> DAVID MALAN: Él va a recoger hasta donde lo había dejado. 781 00:36:49,650 --> 00:36:53,240 Así que hay una manera para que hagamos algo de nuevo y de nuevo, pero, que 782 00:36:53,240 --> 00:36:54,920 tiempo, sólo en determinadas condiciones. 783 00:36:54,920 --> 00:36:58,940 Bueno, ya que estamos en esta línea de hacer cosas una y otra vez, me dejó 784 00:36:58,940 --> 00:37:01,370 ir a otro ejemplo de ello aquí. 785 00:37:01,370 --> 00:37:04,370 Éste lo llamaremos contar ovejas. 786 00:37:04,370 --> 00:37:05,710 >> Y note lo que hace este tipo. 787 00:37:05,710 --> 00:37:08,540 En realidad es un poco más como el pseudocódigo jugamos con el 788 00:37:08,540 --> 00:37:12,230 Miércoles, mediante la cual se establecen algunas de venta libre, pensar en ello es como N de nuevo, para 789 00:37:12,230 --> 00:37:14,030 cero, que siempre hace lo siguiente. 790 00:37:14,030 --> 00:37:17,960 Él dice que el valor del contador para una segundo, espera un segundo, y luego 791 00:37:17,960 --> 00:37:19,430 cambia el contador en uno. 792 00:37:19,430 --> 00:37:21,570 Y en este contexto, que se acaba significa la incrementa. 793 00:37:21,570 --> 00:37:23,250 Así, añade uno a ella. 794 00:37:23,250 --> 00:37:25,830 Así que esto es literalmente - 795 00:37:25,830 --> 00:37:27,890 no es exactamente lo que pensamos de como contar ovejas. 796 00:37:27,890 --> 00:37:33,120 Es la oveja haciendo el recuento, para siempre, por encima de cero. 797 00:37:33,120 --> 00:37:35,560 >> Así que podemos hacer cosas similares allí, lógicamente. 798 00:37:35,560 --> 00:37:37,750 Pero ahora vamos a tratar de limpiar algunas de estas cosas. 799 00:37:37,750 --> 00:37:43,440 Déjame ir adelante ahora en un simple ejemplo en el que nuestro gato es sólo va a 800 00:37:43,440 --> 00:37:44,750 empezar a toser. 801 00:37:44,750 --> 00:37:48,830 Muy bien, así que aquí tiene tos 0 - 802 00:37:48,830 --> 00:37:50,685 los científicos de la computadora inicio a contar desde 0. 803 00:37:50,685 --> 00:37:53,480 Así que este gato es sólo va a toser tres veces. 804 00:37:53,480 --> 00:37:54,890 Y así es como he implementado eso. 805 00:37:54,890 --> 00:38:00,130 Cuando se hace clic en la bandera verde, toser, esperar, tos, espera, toser, espere. 806 00:38:00,130 --> 00:38:02,470 Y lo hice solo arrastra y colocar las piezas del rompecabezas. 807 00:38:02,470 --> 00:38:04,740 O si usted comienza a jugar con Scratch, verás que en realidad se puede 808 00:38:04,740 --> 00:38:08,620 duplicar piezas de manera que usted puede hacer las cosas más rápidamente sin arrastrar 809 00:38:08,620 --> 00:38:10,310 y cayendo hasta la saciedad. 810 00:38:10,310 --> 00:38:12,680 >> Pero no estamos en el mejor camino aquí. 811 00:38:12,680 --> 00:38:15,210 Porque ¿cómo lo hago tos por cuarta vez? 812 00:38:15,210 --> 00:38:16,790 Bueno, podría especie de ir aquí. 813 00:38:16,790 --> 00:38:19,420 Yo podría duplicar y luego pega este ahí. 814 00:38:19,420 --> 00:38:21,740 ¿Cómo puedo hacer toser quinta vez? 815 00:38:21,740 --> 00:38:23,230 Bueno, copie y pegue de nuevo. 816 00:38:23,230 --> 00:38:24,210 O arrastrar y soltar de nuevo. 817 00:38:24,210 --> 00:38:26,920 Y muy rápidamente, este programa se inicia conseguir muy, muy redundante, 818 00:38:26,920 --> 00:38:28,880 muy largo, pero realmente interesante. 819 00:38:28,880 --> 00:38:30,120 Pero hay una manera de limpiar esto. 820 00:38:30,120 --> 00:38:33,680 ¿Cuál es la manera obvia limpiar esto? 821 00:38:33,680 --> 00:38:36,280 >> OK, así que podríamos ir realmente y, cuando se pulse el espacio 822 00:38:36,280 --> 00:38:37,070 bar, pídale que tosa. 823 00:38:37,070 --> 00:38:40,150 Pero si yo sólo quiero hacer algo repetitiva, recordar que nosotros tenemos 824 00:38:40,150 --> 00:38:41,310 algunas construcciones de control. 825 00:38:41,310 --> 00:38:43,800 Permítanme que pase esto de la manera, pasar bajo control. 826 00:38:43,800 --> 00:38:47,340 Permítanme hacer una repetición, decir, tres veces. 827 00:38:47,340 --> 00:38:49,410 Y ahora vamos a robar un poco de de estas piezas del rompecabezas. 828 00:38:49,410 --> 00:38:50,980 Permítanme rompo esto aquí. 829 00:38:50,980 --> 00:38:52,400 Déjame lanzar estas lejos del todo. 830 00:38:52,400 --> 00:38:55,400 >> Y ahora, tengo una mejor programa diseñado. 831 00:38:55,400 --> 00:38:55,920 ¿Por qué? 832 00:38:55,920 --> 00:39:00,540 Si quiero cambiar el número de veces este gato tose, todo lo que tengo que 833 00:39:00,540 --> 00:39:05,640 hacer es cambiar una variable o un valor, en lugar de tres, cuatro, o 834 00:39:05,640 --> 00:39:06,700 cinco, o seis. 835 00:39:06,700 --> 00:39:09,060 O podría hacer algo de forma condicional, incluso, con el espacio 836 00:39:09,060 --> 00:39:10,320 bar si quería. 837 00:39:10,320 --> 00:39:11,780 >> Así que este es un principio general. 838 00:39:11,780 --> 00:39:14,950 Una vez que comience la copia y pegar código, ya sea en Scratch, o en 839 00:39:14,950 --> 00:39:18,340 C, que está haciendo algo mal, lo más probable. 840 00:39:18,340 --> 00:39:21,950 O por lo menos, una vez se ha superado algunos un número razonable de copias y 841 00:39:21,950 --> 00:39:24,610 pastas, usted está probablemente haciendo algo mal. 842 00:39:24,610 --> 00:39:26,740 >> Pero ¿sabes qué? 843 00:39:26,740 --> 00:39:27,590 Realmente no me gusta este. 844 00:39:27,590 --> 00:39:28,980 Este no es el diseño más limpio. 845 00:39:28,980 --> 00:39:32,860 Me gustaría que hubiera una pieza del rompecabezas llamado tos porque entonces yo no lo haría 846 00:39:32,860 --> 00:39:36,100 que aplicar esto a mí mismo, a la manera antigua, por 847 00:39:36,100 --> 00:39:38,220 habiendo decir y esperar - 848 00:39:38,220 --> 00:39:40,320 ¿y si no eran más que una pieza del rompecabezas de la tos. 849 00:39:40,320 --> 00:39:41,330 >> Bueno, realmente puedo hacer eso. 850 00:39:41,330 --> 00:39:45,010 Déjame ir bajo más bloques, haga clic en Hacer un bloque, y ahora me sale este 851 00:39:45,010 --> 00:39:45,610 ventana aquí. 852 00:39:45,610 --> 00:39:47,540 Voy a llamar a esta cosa de la tos. 853 00:39:47,540 --> 00:39:49,400 Voy a seguir adelante y haga clic en Aceptar. 854 00:39:49,400 --> 00:39:53,150 Y ahora fíjense, me sale una nueva partida pieza que está curvado en la parte superior. 855 00:39:53,150 --> 00:39:56,590 ¿Y qué voy a hacer con esto, estoy va a simplemente robar estos bloques. 856 00:39:56,590 --> 00:39:57,800 Voy a poner aquí. 857 00:39:57,800 --> 00:40:00,490 >> Y ahora, con estas tres piezas, no tengo implementado lo que voy a llamar a un 858 00:40:00,490 --> 00:40:03,530 función, o un procedimiento, o algunos de debes saber que como método. 859 00:40:03,530 --> 00:40:05,050 Las pequeñas diferencias entre las palabras. 860 00:40:05,050 --> 00:40:06,950 Pero por ahora, vamos a llamar a esta función. 861 00:40:06,950 --> 00:40:08,750 Esto es sólo una nueva pieza del rompecabezas. 862 00:40:08,750 --> 00:40:11,000 Ahora se implementa como este. 863 00:40:11,000 --> 00:40:15,170 >> Pero note que los arañazos nos ha dado un representación física de que toda 864 00:40:15,170 --> 00:40:16,570 bloquear por aquí. 865 00:40:16,570 --> 00:40:21,930 Así que ahora, puedo sólo tienes que arrastrar esto aquí, por ejemplo, repetir tres veces, y 866 00:40:21,930 --> 00:40:26,420 ¿qué va a pasar ahora, cuando juego este script, es sólo un programa 867 00:40:26,420 --> 00:40:27,500 se está ejecutando en un momento. 868 00:40:27,500 --> 00:40:29,880 Sólo hay uno cuando bandera verde hizo clic. 869 00:40:29,880 --> 00:40:34,010 Pero ese bloque púrpura llamada tos es contando con eficacia a los arañazos, cada 870 00:40:34,010 --> 00:40:38,160 vez que vea a esa pieza del rompecabezas, en realidad ejecutar estos pasos que yo 871 00:40:38,160 --> 00:40:40,420 pasar a aplicar manualmente. 872 00:40:40,420 --> 00:40:41,410 >> Así que es una especie de limpia. 873 00:40:41,410 --> 00:40:44,650 Pero ahora, supongo que me decidí, no lo hago quiero este gato sólo para toser. 874 00:40:44,650 --> 00:40:46,660 Quiero que él sea capaz estornudar también. 875 00:40:46,660 --> 00:40:48,905 Bueno, ¿cómo podemos ir sobre La implementación de estornudar? 876 00:40:48,905 --> 00:40:51,310 Bueno, yo podría muy bien hacer lo mismo. 877 00:40:51,310 --> 00:40:52,690 Podría hacer otro bloque. 878 00:40:52,690 --> 00:40:55,940 Yo podría llamar a este estornudo, haga clic en Aceptar. 879 00:40:55,940 --> 00:40:59,250 >> Entonces, aquí lo que pude en realidad haber, déjame duplicar este - 880 00:40:59,250 --> 00:41:02,850 y allí es donde se debe sentir como es probable que no estás haciendo algo en 881 00:41:02,850 --> 00:41:03,780 la mejor manera. 882 00:41:03,780 --> 00:41:06,670 Yo podría decir algo así como: achoo, durante un segundo. 883 00:41:06,670 --> 00:41:07,440 Espere un segundo. 884 00:41:07,440 --> 00:41:08,715 Ahora tengo un nuevo bloque llamado estornudo. 885 00:41:08,715 --> 00:41:10,210 Y, en efecto, ahí está. 886 00:41:10,210 --> 00:41:14,010 >> Pero esto, también, debe comenzar a sentir - quizás no es la primera semana de clase, pero 887 00:41:14,010 --> 00:41:15,730 por el segundo - sólo un poco redundante. 888 00:41:15,730 --> 00:41:17,800 Claramente, hay algo de redundancia aquí. 889 00:41:17,800 --> 00:41:22,090 Así que permítanme proponer, en cambio, que perfeccionar esta definición de la siguiente manera. 890 00:41:22,090 --> 00:41:24,820 >> Déjame ir a mi menú de archivo. 891 00:41:24,820 --> 00:41:26,090 Yo no voy a guardar esta versión. 892 00:41:26,090 --> 00:41:29,080 Voy a ir a uno de mis archivos prefabricados aquí. 893 00:41:29,080 --> 00:41:31,190 Y voy a seguir adelante y abrir la tos 2. 894 00:41:31,190 --> 00:41:32,220 ¡Vaya que era tos 2. 895 00:41:32,220 --> 00:41:36,900 Déjame ir adelante y abro la tos 3, que es el directorio de origen. 896 00:41:36,900 --> 00:41:42,450 Tos 3 y aviso - oh, yo dije la historia en el orden equivocado. 897 00:41:42,450 --> 00:41:45,030 Déjame recuperarme de esta historia. 898 00:41:45,030 --> 00:41:48,990 >> La historia que quería decirte termina con la tos 4 - 899 00:41:48,990 --> 00:41:50,270 ahí está. 900 00:41:50,270 --> 00:41:54,380 ¿Y qué si, en cambio, definir una pieza del rompecabezas más grande llamada 901 00:41:54,380 --> 00:41:57,250 definir, dicen palabra n veces. 902 00:41:57,250 --> 00:41:59,930 El estornudo es sólo, al parecer, en Scratch, achoo. 903 00:41:59,930 --> 00:42:01,680 Así lo expresamos como una palabra, simplemente porque esa es la 904 00:42:01,680 --> 00:42:02,750 restricción del programa. 905 00:42:02,750 --> 00:42:07,860 Y la tos es [TOS], pero la tos, C-O-T-G-H. Así que eso es sólo dos 906 00:42:07,860 --> 00:42:10,820 palabras diferentes que realizan, esencialmente, la misma cosa. 907 00:42:10,820 --> 00:42:12,820 >> Así que en realidad puedo hacer una nuevo bloque como este. 908 00:42:12,820 --> 00:42:14,220 No hice uso de esta opción de menú anterior. 909 00:42:14,220 --> 00:42:16,960 Pero al hacer clic en Hacer Block, usted puede elegir algunas opciones. 910 00:42:16,960 --> 00:42:20,900 Y se puede decir que este bloque realidad toma algunos insumos, de lo contrario 911 00:42:20,900 --> 00:42:24,710 conocido como argumentos, o parámetros, de modo que puede modificar el comportamiento de los 912 00:42:24,710 --> 00:42:25,520 su bloque. 913 00:42:25,520 --> 00:42:28,780 >> Así que lo que hice hace un momento era Llamé a este bloque de Say. 914 00:42:28,780 --> 00:42:30,880 Y entonces me dije, toma una entrada de cadena. 915 00:42:30,880 --> 00:42:32,810 Y ahora fíjense, por defecto, dice cadena 1. 916 00:42:32,810 --> 00:42:35,440 Una cadena es tan sólo una palabra, o una frase, para nuestros propósitos. 917 00:42:35,440 --> 00:42:37,810 Pero yo sólo voy a poner un poco de texto de marcador de posición allí, al igual que en un 918 00:42:37,810 --> 00:42:40,620 sitio web, cuando ves nombre de usuario, o contraseña, y luego desaparece cuando 919 00:42:40,620 --> 00:42:41,550 de empezar a escribir. 920 00:42:41,550 --> 00:42:42,720 Eso es todo lo que es. 921 00:42:42,720 --> 00:42:44,590 >> Y ahora me voy a añadir una entrada de número. 922 00:42:44,590 --> 00:42:47,180 Y voy a llamar a este n - pero eso es bastante arbitraria. 923 00:42:47,180 --> 00:42:49,510 Y a continuación, sólo una etiqueta, sólo para hacer este bloque un poco más de auto 924 00:42:49,510 --> 00:42:50,570 explicativa - 925 00:42:50,570 --> 00:42:53,010 veces, eso es lo que acabo de hacer. 926 00:42:53,010 --> 00:42:56,540 Y el resultado final es que me sale un bloque que tiene este aspecto. 927 00:42:56,540 --> 00:42:58,880 >> Y ahora noto, estoy usando un bloque de repetición. 928 00:42:58,880 --> 00:43:03,480 Pero en lugar de la codificación dura tres, yo soy arrastrar y soltar n en allí, así que 929 00:43:03,480 --> 00:43:05,530 puede parametrizar la función. 930 00:43:05,530 --> 00:43:08,590 Puedo hacer esta función haga algo un número diferente de veces sobre la base de 931 00:43:08,590 --> 00:43:09,410 ese valor. 932 00:43:09,410 --> 00:43:14,270 >> Y fíjense, por ejemplo, esto es lo que hice aquí, si arrastro palabra, puedo decir que no es un 933 00:43:14,270 --> 00:43:17,860 palabra codificada duro, pero lo que sea se pasa en un segundo. 934 00:43:17,860 --> 00:43:20,200 Mientras tanto, ¿cómo puedo volver a implementar tos? 935 00:43:20,200 --> 00:43:26,980 Yo en cambio defino la tos como diciendo tos n veces. 936 00:43:26,980 --> 00:43:30,480 >> Así que en resumen, estoy pasando por esta rápidamente, pero la idea básica es tan pronto 937 00:43:30,480 --> 00:43:32,750 como se empieza a ver en su programa que, espera un minuto, lo que he hecho 938 00:43:32,750 --> 00:43:36,610 algo como esto antes, encontrar los factores que algunos común 939 00:43:36,610 --> 00:43:37,090 funcionalidad? 940 00:43:37,090 --> 00:43:41,090 ¿Puedo descomponer lo que estoy haciendo en algunas ideas básicas? 941 00:43:41,090 --> 00:43:42,070 Eso es lo que estamos haciendo aquí. 942 00:43:42,070 --> 00:43:44,830 Y he apilan estas cosas, visualmente, en la parte superior de uno al otro 943 00:43:44,830 --> 00:43:47,710 porque es testimonio de esa idea de comenzando con el binario, va a ASCII, 944 00:43:47,710 --> 00:43:51,530 haciendo programas gráficos, tipo de capas de las ideas cada vez más complejas en 945 00:43:51,530 --> 00:43:52,570 uno encima del otro. 946 00:43:52,570 --> 00:43:53,730 >> La misma idea aquí. 947 00:43:53,730 --> 00:43:56,870 Empecé desde cero, la implementación de tos, tos luego se dio cuenta es 948 00:43:56,870 --> 00:43:58,540 realmente sólo decir algo. 949 00:43:58,540 --> 00:44:01,630 Así que déjame en vez poner en práctica las idea de decir algo. 950 00:44:01,630 --> 00:44:05,200 Y encima de eso, ¿puedo aplicar achoo o tos? 951 00:44:05,200 --> 00:44:07,990 Y podríamos hacer más, tales variantes todavía. 952 00:44:07,990 --> 00:44:10,400 >> Así que a partir de este principio básico, podemos empezar a hacer 953 00:44:10,400 --> 00:44:12,180 programas cada vez más complejos. 954 00:44:12,180 --> 00:44:14,100 Permítanme abro éste. 955 00:44:14,100 --> 00:44:18,020 De hecho, podemos tener múltiples sprites interactuar en la pantalla a la vez. 956 00:44:18,020 --> 00:44:23,470 Si entro en mi directorio de origen y agarrar una llamada Temas, recuerdan que una 957 00:44:23,470 --> 00:44:26,920 hilo es realmente la capacidad de dos secuencias de comandos para ejecutar lado a 958 00:44:26,920 --> 00:44:28,350 lado al mismo tiempo. 959 00:44:28,350 --> 00:44:34,490 >> Observe ahora, tienen tanto un sprite de aves y un sprite gato, ambos de los cuales tiene 960 00:44:34,490 --> 00:44:35,270 sus propios guiones. 961 00:44:35,270 --> 00:44:37,690 Así cuenta, cuando hago clic en el gato, me sale estos scripts. 962 00:44:37,690 --> 00:44:39,830 Cuando hago clic sobre el pájaro, Consigo estos scripts. 963 00:44:39,830 --> 00:44:42,070 Así que cada uno de estos tipos tiene sus propios programas. 964 00:44:42,070 --> 00:44:46,680 Cuando ahora hago clic en la bandera verde, el aviso que lo que hace este programa es 965 00:44:46,680 --> 00:44:54,090 tener el gato, increíblemente poco a poco, perseguir a las aves. 966 00:44:54,090 --> 00:44:57,120 Pero el gato tiene la ventaja de tener sido programado de tal manera 967 00:44:57,120 --> 00:45:00,540 que no importa donde el pájaro es, el gato va hacia él. 968 00:45:00,540 --> 00:45:02,150 >> Podemos jugar a ese juego mucho más rápido. 969 00:45:02,150 --> 00:45:07,750 Así que si estoy en el gato, notará que soy usando, digamos que mover una escalera. 970 00:45:07,750 --> 00:45:11,680 Vamos a echar a mudarse cinco pasos en un momento, por lo que los cinco puntos a la vez. 971 00:45:11,680 --> 00:45:13,580 Permítanme haga clic en Reproducir. 972 00:45:13,580 --> 00:45:14,490 >> [LION ROAR] 973 00:45:14,490 --> 00:45:17,170 >> DAVID MALAN: Muy bien, ahora podemos realmente dar al gato la ventaja. 974 00:45:17,170 --> 00:45:18,600 10 pasos a la vez. 975 00:45:18,600 --> 00:45:20,120 >> [LION ROAR] 976 00:45:20,120 --> 00:45:22,770 >> DAVID MALAN: Muy bien, muy rápido, se pone un poco la ventaja 977 00:45:22,770 --> 00:45:23,280 para el gato. 978 00:45:23,280 --> 00:45:25,310 Pero voy a agito mi mano en algunos de los detalles. 979 00:45:25,310 --> 00:45:28,240 Pero la razón de que ese camino es comenzando un poco diferente cada vez 980 00:45:28,240 --> 00:45:29,700 es que me estoy haciendo un poco de aleatoriedad. 981 00:45:29,700 --> 00:45:33,700 En realidad estoy apuntando con el gato en una dirección diferente según el lugar donde me 982 00:45:33,700 --> 00:45:38,710 quiero que comience para que cada vez el juego, o la animación, es un 983 00:45:38,710 --> 00:45:39,760 poco diferente. 984 00:45:39,760 --> 00:45:41,950 >> Ahora, permítanme presentarles a uno otra construcción, aquí. 985 00:45:41,950 --> 00:45:43,860 Así que en este caso, tuvimos funciones. 986 00:45:43,860 --> 00:45:46,950 Hay también va a ser una pieza del rompecabezas conocido como una matriz o una lista, 987 00:45:46,950 --> 00:45:50,980 que le permite almacenar múltiples valores dentro de una variable. 988 00:45:50,980 --> 00:45:53,410 Vimos las discusiones, y ahora hay Eventos. 989 00:45:53,410 --> 00:45:56,330 >> Así que aquí está un evento usando estos dos tipos de aquí. 990 00:45:56,330 --> 00:46:02,490 Y si abro el archivo llamado Eventos a partir de ejemplos de la actualidad, lo haremos 991 00:46:02,490 --> 00:46:06,940 ver un programa que se ve un poco como esto. 992 00:46:06,940 --> 00:46:09,630 Y ahora note este tipo - 993 00:46:09,630 --> 00:46:11,620 por lo que noto que tengo el azul Muppet clic - 994 00:46:11,620 --> 00:46:12,990 que sólo hace lo siguiente. 995 00:46:12,990 --> 00:46:15,540 Él no tiene uno de esos verde bandera piezas de un rompecabezas. 996 00:46:15,540 --> 00:46:18,620 Él tiene una cuando recibo evento - 997 00:46:18,620 --> 00:46:19,970 por lo que algunas palabras arbitraria. 998 00:46:19,970 --> 00:46:21,590 Me acaba de escribir a cabo evento allí - 999 00:46:21,590 --> 00:46:23,740 que va a decir, Polo, durante dos segundos. 1000 00:46:23,740 --> 00:46:25,800 >> Así que aquellos de ustedes que están familiarizados con este juego podría saber 1001 00:46:25,800 --> 00:46:26,460 a dónde va esto. 1002 00:46:26,460 --> 00:46:29,800 Si ahora hago clic en el Muppet naranja, su programa hace esto. 1003 00:46:29,800 --> 00:46:35,020 Siempre, si la barra de espacio del teclado suprimida, él va a decir, Marco, 1004 00:46:35,020 --> 00:46:36,580 durante dos segundos en la pantalla. 1005 00:46:36,580 --> 00:46:39,590 Pero también va a utilizar este colombófilo bloque conocido como difusión. 1006 00:46:39,590 --> 00:46:42,270 Él va a emitir cita Lo dijeron ellos, "event". 1007 00:46:42,270 --> 00:46:47,540 >> Mientras tanto, el chico de color azul, el recuerdo, es escuchando, entre comillas, "event". 1008 00:46:47,540 --> 00:46:50,760 Así que de alguna manera, ahora, podemos tener dos sprites que interactúan. 1009 00:46:50,760 --> 00:46:53,790 Y cuando lleguemos a la programación web, más tarde en el término, como lo será este 1010 00:46:53,790 --> 00:46:58,320 ser ventajoso tener su sitio web hacer algo en respuesta a, por 1011 00:46:58,320 --> 00:47:00,130 ejemplo, un clic del teclado. 1012 00:47:00,130 --> 00:47:02,120 >> Así que déjame ir adelante y pulsa la barra espaciadora. 1013 00:47:02,120 --> 00:47:04,020 Chico de Orange dice Marco. 1014 00:47:04,020 --> 00:47:05,840 El individuo azul dice Polo. 1015 00:47:05,840 --> 00:47:10,780 Si lo hago de nuevo tipo de naranja dice Marco, azul chico dice polo. 1016 00:47:10,780 --> 00:47:14,130 Así que vamos a echar un paso más allá. 1017 00:47:14,130 --> 00:47:18,790 Esta vez, vamos a ir, probablemente, sólo unos pocos minutos más aquí. 1018 00:47:18,790 --> 00:47:19,904 ¿Tenemos - 1019 00:47:19,904 --> 00:47:22,380 lámpara de escritorio, vamos hacia abajo. 1020 00:47:22,380 --> 00:47:24,500 Estás justo en el final. 1021 00:47:24,500 --> 00:47:25,740 Aceptar, puede tanto subir. 1022 00:47:25,740 --> 00:47:26,990 Tenemos las lámparas de escritorio para todos. 1023 00:47:26,990 --> 00:47:28,360 Vamos. 1024 00:47:28,360 --> 00:47:30,090 No sé si podemos mantener este gag ridículo hasta 1025 00:47:30,090 --> 00:47:32,035 todo el semestre, sin embargo. 1026 00:47:32,035 --> 00:47:33,530 Muy bien, vamos hacia abajo. 1027 00:47:33,530 --> 00:47:40,260 >> Y mientras tanto, tenemos la siguiendo los ejemplos de arrancar, sólo para 1028 00:47:40,260 --> 00:47:45,370 acelerar las cosas ahora, de tal manera que nos tener una manifestación de otro 1029 00:47:45,370 --> 00:47:48,360 predecesor suyo utilizando el mismos bloques de construcción básicos. 1030 00:47:48,360 --> 00:47:48,975 ¿Cómo te llamas? 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 Encantado de que te. 1034 00:47:50,400 --> 00:47:50,650 ¿Y? 1035 00:47:50,650 --> 00:47:51,250 >> SETZ: Setz. 1036 00:47:51,250 --> 00:47:53,130 >> DAVID MALAN: Setz, amable conmigo usted. 1037 00:47:53,130 --> 00:47:54,820 John, si desea venir primero, se trata de un viejo 1038 00:47:54,820 --> 00:47:55,910 juego de la escuela llamado Frogger. 1039 00:47:55,910 --> 00:47:57,530 El teclado se utiliza para esto también. 1040 00:47:57,530 --> 00:48:02,425 Y el objetivo es llegar al otro lado la calle y el agua. 1041 00:48:02,425 --> 00:48:12,700 >> [MÚSICA Y SONIDO FROGGER JUEGOS] 1042 00:48:12,700 --> 00:48:14,970 >> DAVID MALAN: Lo siento, no hay lámpara de escritorio para usted hoy. 1043 00:48:14,970 --> 00:48:19,110 Muy bien, Setz, ¿verdad gustaría venir en un máximo? 1044 00:48:19,110 --> 00:48:20,890 Muy bien, vamos a hacerlo de nuevo. 1045 00:48:20,890 --> 00:48:21,430 >> SETZ: ¿Utilizo las flechas? 1046 00:48:21,430 --> 00:48:22,360 >> DAVID MALAN: Sólo las teclas de flecha. 1047 00:48:22,360 --> 00:48:23,624 Arriba, abajo, izquierda, derecha. 1048 00:48:23,624 --> 00:48:35,700 >> [MÚSICA Y SONIDO FROGGER JUEGOS] 1049 00:48:35,700 --> 00:48:37,880 >> DAVID MALAN: Los llamaremos accésits hoy, 1050 00:48:37,880 --> 00:48:38,950 entonces, muy bien hecho. 1051 00:48:38,950 --> 00:48:40,690 En este caso, para los dos, Juan y Setz. 1052 00:48:40,690 --> 00:48:41,940 Felicitaciones, está bien. 1053 00:48:41,940 --> 00:48:46,720 1054 00:48:46,720 --> 00:48:50,620 Así que de nuevo, ya que este juego se juega, pensar en lo que está pasando? 1055 00:48:50,620 --> 00:48:52,060 >> Uno, claramente hay una gran cantidad de movimiento. 1056 00:48:52,060 --> 00:48:55,220 Pero hemos visto cómo, con el gato y el ejemplo aves, cómo se puede hacer el 1057 00:48:55,220 --> 00:48:58,350 ilusión del movimiento, con sólo mover un poco número de píxeles y otra vez. 1058 00:48:58,350 --> 00:49:00,280 Y si usted tiene un bloque para siempre, usted podría tener estos 1059 00:49:00,280 --> 00:49:02,120 coches haciendo esto para siempre. 1060 00:49:02,120 --> 00:49:03,720 Tenemos la capacidad de tener algo de aleatoriedad. 1061 00:49:03,720 --> 00:49:06,310 Así que este juego no tiene que ser exactamente lo mismo cada vez. 1062 00:49:06,310 --> 00:49:09,940 Esos registros, los coches, pueden empezar a ligeramente diferentes para que el 1063 00:49:09,940 --> 00:49:12,690 juego en sí es más interesante con cada juego. 1064 00:49:12,690 --> 00:49:15,320 >> Y mientras tanto, hemos visto la capacidad para escuchar a la barra de espacio. 1065 00:49:15,320 --> 00:49:18,830 Pero es evidente que, en Scratch, puede también escuchar para arriba, abajo, izquierda, derecha, y 1066 00:49:18,830 --> 00:49:20,760 Realmente cualquier tecla del teclado. 1067 00:49:20,760 --> 00:49:22,200 Y también se puede hacer otras cosas. 1068 00:49:22,200 --> 00:49:24,660 Déjenme seguir adelante y volver a la versión web. 1069 00:49:24,660 --> 00:49:30,280 >> Déjame ir a nuestra colección de ejemplos. 1070 00:49:30,280 --> 00:49:36,120 Y bajo mi estudio, de vídeo que es, esencialmente, una en la carpeta 1071 00:49:36,120 --> 00:49:37,780 scratch.mit.edu. 1072 00:49:37,780 --> 00:49:39,710 Tenemos las versiones web de todos estos proyectos. 1073 00:49:39,710 --> 00:49:42,530 Y vamos a ver si puedo conseguir mi ordenador a cooperar aquí. 1074 00:49:42,530 --> 00:49:47,180 Esto está escrito por uno de nuestros amigos en el MIT, llamado Mover la mariposa. 1075 00:49:47,180 --> 00:49:50,250 >> Y una vez que esto se abre, se trata de va a usar en realidad más de 1076 00:49:50,250 --> 00:49:51,430 hardware de mi ordenador. 1077 00:49:51,430 --> 00:49:53,325 Rasguño pasa a ser implementado con Flash. 1078 00:49:53,325 --> 00:49:56,250 Flash puede hablar con su webcam, si usted tiene uno. 1079 00:49:56,250 --> 00:50:00,210 Así que si sigo adelante y pantalla completa este aquí, haga clic en la bandera verde, el aviso 1080 00:50:00,210 --> 00:50:02,530 ese mensaje de seguridad del flash es decir, es lo que quieres 1081 00:50:02,530 --> 00:50:04,210 permitirá usar mi webcam? 1082 00:50:04,210 --> 00:50:05,510 >> Normalmente, usted debe probablemente diría Denegar. 1083 00:50:05,510 --> 00:50:07,180 Pero en este caso, vamos a decir lo permitan. 1084 00:50:07,180 --> 00:50:10,430 Entonces yo voy a decir Chrome para permitir que esto también. 1085 00:50:10,430 --> 00:50:15,010 Y ahora, en un momento, me ves, sí, yo. 1086 00:50:15,010 --> 00:50:18,154 Y si mi mano sube - 1087 00:50:18,154 --> 00:50:20,390 Tengo que no mover mi cabeza al mismo tiempo. 1088 00:50:20,390 --> 00:50:21,740 También hay una reflexión en la pantalla. 1089 00:50:21,740 --> 00:50:23,480 Vamos, ahí vamos - 1090 00:50:23,480 --> 00:50:27,616 se puede mover en la pantalla porque también hay rompecabezas de piezas - oh, 1091 00:50:27,616 --> 00:50:31,640 sé lo que es, es porque también ver la pantalla del proyector detrás de mí. 1092 00:50:31,640 --> 00:50:33,870 Así que tenemos un poco de infinito algo pasa ahí. 1093 00:50:33,870 --> 00:50:36,470 >> Muy bien, así que voy a jugar aquí. 1094 00:50:36,470 --> 00:50:37,220 Eso es. 1095 00:50:37,220 --> 00:50:41,310 Así también hay una pieza del rompecabezas que dice, cuando usted ve el movimiento por debajo de 1096 00:50:41,310 --> 00:50:45,470 uno de los sprites, usted puede tener que ir arriba, abajo, izquierda, derecha o similares. 1097 00:50:45,470 --> 00:50:48,950 Así que tenemos un poco de la realidad virtual pasando aquí también, todo dentro de la 1098 00:50:48,950 --> 00:50:52,570 confines de mi navegador, simplemente Entre aquí usando mi webcam. 1099 00:50:52,570 --> 00:50:53,980 ¿Cuál es entonces en el horizonte. 1100 00:50:53,980 --> 00:50:58,350 El primer conjunto de problemas, como se verá, o el sitio web estará en línea más adelante 1101 00:50:58,350 --> 00:51:01,100 esta noche en cs50.net, es bastante hay mucho que hacer para ser un final abierto. 1102 00:51:01,100 --> 00:51:04,410 Y poner en práctica un proyecto de Scratch de interés para usted, un juego, una 1103 00:51:04,410 --> 00:51:08,350 interacción, algo artístico, y el reto de utilizar cualquier número 1104 00:51:08,350 --> 00:51:09,660 de estas piezas del rompecabezas. 1105 00:51:09,660 --> 00:51:11,580 Y puede ser o bien interactivo de esta manera. 1106 00:51:11,580 --> 00:51:15,470 O puede ser algo más deliberadamente hecho de contar una historia. 1107 00:51:15,470 --> 00:51:19,200 >> Y, de hecho, ahí es donde vamos a terminar fuera hoy, con un último ejemplo. 1108 00:51:19,200 --> 00:51:21,290 Déjame ir a los arañazos localmente. 1109 00:51:21,290 --> 00:51:25,300 Déjenme seguir adelante y abrir esto, y juego un último programa escrito por uno 1110 00:51:25,300 --> 00:51:29,795 de sus predecesores, a saber, que uno aquí. 1111 00:51:29,795 --> 00:51:32,960 1112 00:51:32,960 --> 00:51:35,938 Bueno, suba el volumen para éste. 1113 00:51:35,938 --> 00:52:53,770 >> [REPRODUCCIÓN DE MÚSICA] 1114 00:52:53,770 --> 00:52:57,255 >> NARRADOR: En la próxima CS50, David invita a un voluntario en el escenario. 1115 00:52:57,255 --> 00:52:58,636 >> DAVID MALAN: Para esta demostración, vamos a necesitar un voluntario. 1116 00:52:58,636 --> 00:53:01,050 ¿Le gustaría que vamos hacia abajo? 1117 00:53:01,050 --> 00:53:02,300 ¿Cómo te llamas? 1118 00:53:02,300 --> 00:53:05,320 1119 00:53:05,320 --> 00:53:06,570 Cambiando de tema. 1120 00:53:06,570 --> 00:53:08,394