1 00:00:08,483 --> 00:00:11,477 [Powered by Google Translate] [MÚSICA ROCK] 2 00:00:32,435 --> 00:00:35,429 [MÚSICA - "Happy Together" LAS TORTUGAS] 3 00:01:27,330 --> 00:01:30,170 David Malan: Hoy comenzamos nuestra exploración de la 4 00:01:30,170 --> 00:01:32,710 fundamentos de la ciencia de la computación y la introducción, 5 00:01:32,710 --> 00:01:35,070 Ahora, a la técnica de programación, de los cuales es que 6 00:01:35,070 --> 00:01:36,260 sólo un ejemplo. 7 00:01:36,260 --> 00:01:39,600 Pero en el mismo sentido de la resolución de problemas, saben que 8 00:01:39,600 --> 00:01:42,080 Día Puzzle tradicional CS50 es mañana. 9 00:01:42,080 --> 00:01:45,190 Si aún no has enviado un RSVP para el evento, usted puede ir a 10 00:01:45,190 --> 00:01:47,510 cs50.net/rsvp. 11 00:01:47,510 --> 00:01:50,940 Usted puede traer equipos de dos o tres o cuatro. 12 00:01:50,940 --> 00:01:53,080 Usted será desafiado con problemas como el que viste 13 00:01:53,080 --> 00:01:54,190 allá en el principio. 14 00:01:54,190 --> 00:01:57,000 Todos los nuevos problemas este año si participó el año pasado, y 15 00:01:57,000 --> 00:01:59,680 tendrá la oportunidad luego de ganar premios fabulosos. 16 00:01:59,680 --> 00:02:02,750 Entre ellos, un Wii y algunos certificados de regalo y artículos similares, 17 00:02:02,750 --> 00:02:05,650 a la vez que salir con CS50 estudiantes y compañeros de clase 18 00:02:05,650 --> 00:02:07,720 y la pizza y Facebook. 19 00:02:07,720 --> 00:02:10,430 Así que más que el mañana si quieres. 20 00:02:10,430 --> 00:02:13,330 >> Esta es, pues, CS50, para aquellos de ustedes unirse a nosotros para la 21 00:02:13,330 --> 00:02:14,510 primera vez. 22 00:02:14,510 --> 00:02:18,030 Y sé que este curso está especialmente decidido a conseguir 23 00:02:18,030 --> 00:02:22,605 a través de este curso hasta su término final, momento en el que 24 00:02:22,605 --> 00:02:24,270 tendrá no sólo una comprensión de estos 25 00:02:24,270 --> 00:02:26,450 fundamentos de la informática, sino que tendrá que 26 00:02:26,450 --> 00:02:29,120 esta habilidad muy práctico conjunto que puede tomar de nuevo a 27 00:02:29,120 --> 00:02:31,370 su propio departamento, si se trata de ciencias de la ingeniería, 28 00:02:31,370 --> 00:02:33,570 matemáticas aplicadas, las ciencias físicas y naturales 29 00:02:33,570 --> 00:02:34,780 ciencia, o similares. 30 00:02:34,780 --> 00:02:37,030 En efecto, ¿qué es tan emocionante de la informática estos 31 00:02:37,030 --> 00:02:39,900 día es que es tan sólo aplicable a los 32 00:02:39,900 --> 00:02:40,990 todo tipo de campos. 33 00:02:40,990 --> 00:02:46,210 Y aunque hoy en día, sólo arañar la superficie de un 34 00:02:46,210 --> 00:02:49,020 lenguaje de programación muy tradicional conocido como C, vamos a 35 00:02:49,020 --> 00:02:51,040 en lugar de mirar a algo llamado Scratch, algo con 36 00:02:51,040 --> 00:02:53,420 que esa historia de amor cookie fue ejecutado por uno de sus 37 00:02:53,420 --> 00:02:57,020 predecesores en los últimos años, a contar historias, crear juegos, 38 00:02:57,020 --> 00:03:00,060 para crear arte interactivo, y para realmente empezar a envolver nuestro 39 00:03:00,060 --> 00:03:02,240 mente alrededor de algunas de las construcciones fundamentales que 40 00:03:02,240 --> 00:03:05,390 subyacen en la programación, pero en un contexto, como se verá, es que 41 00:03:05,390 --> 00:03:09,140 mucho menos miedo, eso es mucho menos misterioso, de lo que se ve 42 00:03:09,140 --> 00:03:10,140 en poco tiempo. 43 00:03:10,140 --> 00:03:12,410 Y darse cuenta, también, para aquellos de ustedes que nos acaba de unirse a este 44 00:03:12,410 --> 00:03:16,170 semestre, las frases en que terminamos conferencia del miércoles, 45 00:03:16,170 --> 00:03:20,260 no es tan importante cuando usted termina su relación con 46 00:03:20,260 --> 00:03:22,950 compañeros de clase en esta clase, pero en el que, por el final del semestre 47 00:03:22,950 --> 00:03:27,190 en la semana 11, terminan con respecto a ti mismo en el día de hoy. 48 00:03:27,190 --> 00:03:32,000 >> Así que sin más preámbulos, este es también digno de mención que 49 00:03:32,000 --> 00:03:34,450 los menos cómodo, aquellos en algún punto intermedio, están 50 00:03:34,450 --> 00:03:36,825 también, por su diseño de este curso, no a cualquier desventaja 51 00:03:36,825 --> 00:03:38,760 vis-a-vis los más cómodo 52 00:03:38,760 --> 00:03:39,920 que entra en esta categoría. 53 00:03:39,920 --> 00:03:41,810 Como verás en las semanas por venir, tenemos diferentes 54 00:03:41,810 --> 00:03:44,600 pistas de fondo de nuevo dispares, secciones para los 55 00:03:44,600 --> 00:03:46,500 menos cómodo, más cómodo, aquellos en algún lugar 56 00:03:46,500 --> 00:03:47,250 en el medio. 57 00:03:47,250 --> 00:03:49,520 Como podrá ver este fin de semana y la próxima semana, dos versiones de 58 00:03:49,520 --> 00:03:52,410 la mayoría de los conjuntos de problemas, tanto en edición estándar y hacker para 59 00:03:52,410 --> 00:03:55,390 que todos puedan auto-selecciona por el camino con el que 60 00:03:55,390 --> 00:03:56,615 se sienta más cómodo. 61 00:03:56,615 --> 00:03:58,770 >> Así que hoy, nos sumergimos en esta programación 62 00:03:58,770 --> 00:04:00,060 lenguaje llamado Scratch. 63 00:04:00,060 --> 00:04:02,250 Es un lenguaje de programación gráfica, y sin embargo tiene la 64 00:04:02,250 --> 00:04:04,500 mismas características de algunos de los lenguajes de alto nivel que vamos a 65 00:04:04,500 --> 00:04:07,050 explorar más adelante en el semestre, entre ellos C y 66 00:04:07,050 --> 00:04:08,670 JavaScript y PHP. 67 00:04:08,670 --> 00:04:11,890 Pero va a permitir a nosotros para evitar algunas de las distracciones 68 00:04:11,890 --> 00:04:14,890 desde el principio de la sintaxis, las cosas como puntos y comas, paréntesis, 69 00:04:14,890 --> 00:04:17,720 y otros detalles arcanos que, a primera vista, no son 70 00:04:17,720 --> 00:04:19,916 en absoluto intelectualmente interesante y tienden a ponerse en 71 00:04:19,916 --> 00:04:22,310 la forma de una cierta comprensión fundamental. 72 00:04:22,310 --> 00:04:24,870 En términos de la estructura de soporte ahora por delante, se dio cuenta de esto 73 00:04:24,870 --> 00:04:27,570 herramienta, CS50 Discutir, que estará vinculada a la del curso 74 00:04:27,570 --> 00:04:30,320 sitio web el día de hoy, es el foro de discusión en línea en 75 00:04:30,320 --> 00:04:32,480 el que serás capaz de hacer preguntas a los demás y 76 00:04:32,480 --> 00:04:35,020 personal, y es también una herramienta, como veremos la próxima semana, 77 00:04:35,020 --> 00:04:37,240 que vamos a utilizar muy integradamente en 78 00:04:37,240 --> 00:04:38,780 las horas de oficina también. 79 00:04:38,780 --> 00:04:41,670 De hecho, las horas de oficina comenzará el lunes, y francamente, el primer 80 00:04:41,670 --> 00:04:43,930 semana del horario de oficina es bastante bajo llave. 81 00:04:43,930 --> 00:04:46,820 >> No creo que usted encontrará todo lo que Rasguño inaccesible. 82 00:04:46,820 --> 00:04:48,930 Es bastante explica por sí mismo, como vamos a ver, ¿y qué 83 00:04:48,930 --> 00:04:51,380 lo usaremos para hoy es para extraer algunas de las 84 00:04:51,380 --> 00:04:53,990 las ideas fundamentales que, por tanto, persisten a lo largo de la 85 00:04:53,990 --> 00:04:54,900 resto del semestre. 86 00:04:54,900 --> 00:04:57,980 Pero a partir del lunes, a las 8:00 PM hasta 23:00 será 87 00:04:57,980 --> 00:05:01,530 en horas de oficina durante las vacaciones de Annenberg cerebro. 88 00:05:01,530 --> 00:05:04,490 Seccionamiento dos comenzará esta noche, así que en algún momento este 89 00:05:04,490 --> 00:05:07,260 fin de semana, ir a cs50.net/section, y te 90 00:05:07,260 --> 00:05:08,530 se le pedirá una serie de preguntas. 91 00:05:08,530 --> 00:05:10,290 Entre ellos, ¿cómo describiría su 92 00:05:10,290 --> 00:05:12,040 nivel de confort al día de hoy? 93 00:05:12,040 --> 00:05:14,450 No hay regla dura y rápida en cuanto a quién está en qué cubeta. 94 00:05:14,450 --> 00:05:17,170 Es justo el tipo de cosa que usted probablemente sabe si 95 00:05:17,170 --> 00:05:20,280 están entre los que el menos confortable o de otra manera. 96 00:05:20,280 --> 00:05:21,350 >> Y ahora, tutoriales. 97 00:05:21,350 --> 00:05:24,020 La especificación del conjunto de problemas para esta semana, tanto estándar 98 00:05:24,020 --> 00:05:28,560 y la edición pirata por igual, está en línea en cs50.net partir de ahora. 99 00:05:28,560 --> 00:05:31,500 Y verás que la primera de estas ediciones, la 100 00:05:31,500 --> 00:05:33,940 edición estándar de cada semana, va acompañado de algo de lo que 101 00:05:33,940 --> 00:05:36,550 llamar a un tutorial de código, una sesión dirigida por uno de los 102 00:05:36,550 --> 00:05:39,100 becarios de los cursos de enseñanza para guiarle a través de, proporcionar 103 00:05:39,100 --> 00:05:42,290 consejos, y se obtiene por un camino particular cuando se trata 104 00:05:42,290 --> 00:05:44,150 para iniciar estos boletines de problemas. 105 00:05:44,150 --> 00:05:46,790 Así, con cada uno de estos boletines de problemas, si alguna vez querer 106 00:05:46,790 --> 00:05:50,250 por ti mismo ¿por dónde empezar, comenzar con estos 107 00:05:50,250 --> 00:05:50,890 tutoriales. 108 00:05:50,890 --> 00:05:53,450 Y de hecho, permítame presentarle Zamyla Chan, esta 109 00:05:53,450 --> 00:05:55,870 año compañero docente que estará al frente de todos y cada uno 110 00:05:55,870 --> 00:05:56,910 uno de estos tutoriales. 111 00:05:56,910 --> 00:05:57,961 Zamyla? 112 00:05:57,961 --> 00:06:03,370 >> [Aplausos] 113 00:06:03,370 --> 00:06:03,975 ZAMYLA CHANDLER: Oh, hola a todos. 114 00:06:03,975 --> 00:06:05,130 Mi nombre es Zamyla. 115 00:06:05,130 --> 00:06:08,250 Soy un joven estudiando ingeniería en Winthrop House. 116 00:06:08,250 --> 00:06:10,890 Pero creo que ésta quepa en tantos cursos de informática como yo 117 00:06:10,890 --> 00:06:13,350 puede, por lo que estoy realmente entusiasmado de liderar este 118 00:06:13,350 --> 00:06:14,590 año tutoriales. 119 00:06:14,590 --> 00:06:16,950 Tutoriales, para mí, son una parte esencial de mi CS50 120 00:06:16,950 --> 00:06:17,910 experiencia. 121 00:06:17,910 --> 00:06:22,710 Durante el tutorial, para todo p-set, vamos a ir a través de 122 00:06:22,710 --> 00:06:25,580 el conjunto de problemas juntos, mirar por encima de los problemas, el tipo de 123 00:06:25,580 --> 00:06:27,360 dividir para arriba en pedacitos manejables. 124 00:06:27,360 --> 00:06:28,990 Te voy a dar consejos, técnicas, para obtener 125 00:06:28,990 --> 00:06:30,820 a través de E INTRODUCCIÓN. 126 00:06:30,820 --> 00:06:33,510 Espero verlos a todos en los tutoriales. 127 00:06:33,510 --> 00:06:34,720 Si usted no puede asistir en persona, entonces 128 00:06:34,720 --> 00:06:36,580 por favor sintonice en línea. 129 00:06:36,580 --> 00:06:36,840 >> David Malan: Excelente. 130 00:06:36,840 --> 00:06:37,950 Gracias, Zamyla. 131 00:06:37,950 --> 00:06:40,870 Así que darse cuenta de que los recorridos son, de hecho, un viernes 132 00:06:40,870 --> 00:06:43,110 tarde, pero esto es deliberadamente por diseño para que 133 00:06:43,110 --> 00:06:45,750 aunque prefiere no asistir a clase un viernes 134 00:06:45,750 --> 00:06:48,490 tarde, los vídeos estarán hasta lo más rápidamente sobre 135 00:06:48,490 --> 00:06:48,990 el fin de semana. 136 00:06:48,990 --> 00:06:51,880 Así que darse cuenta de que cs50.net estarán todos los Zamyla 137 00:06:51,880 --> 00:06:53,130 tutoriales. 138 00:06:54,800 --> 00:06:56,890 Y que no es la fecha y hora de hoy, a las 3:00 PM, 139 00:06:56,890 --> 00:06:58,370 Harberd Hall, 104. 140 00:06:58,370 --> 00:07:00,080 Y algunos de los compañeros docentes también han preparado 141 00:07:00,080 --> 00:07:03,250 algunas observaciones para que en ausencia del acusado para darle un poco de 142 00:07:03,250 --> 00:07:06,760 perspectiva en cuanto a cuál es su experiencia que entra y 143 00:07:06,760 --> 00:07:08,990 salir de CS50 era. 144 00:07:08,990 --> 00:07:11,250 Así que si podíamos apagar las luces por un momento, yo te doy 145 00:07:11,250 --> 00:07:18,100 parte del personal del CS50. 146 00:07:18,100 --> 00:07:20,440 >> JACKSON Steinkamp: Tomé CS50 año pasado como estudiante de primer año en la 147 00:07:20,440 --> 00:07:22,880 caer, y absolutamente me dejó alucinado. 148 00:07:22,880 --> 00:07:25,090 Yo nunca había tomado clases de programación anterior, 149 00:07:25,090 --> 00:07:26,380 y nunca entró con toda la informática 150 00:07:26,380 --> 00:07:27,320 experimentar en absoluto. 151 00:07:27,320 --> 00:07:29,240 Y así, he oído los rumores acerca de la clase y 152 00:07:29,240 --> 00:07:30,050 decidió tomarlo. 153 00:07:30,050 --> 00:07:31,780 >> JULIA Mitelman: Fue muy divertido, muy atractivo. 154 00:07:31,780 --> 00:07:33,480 Todavía, a día de hoy - 155 00:07:33,480 --> 00:07:36,560 Hace poco vi que tengo el disco que David nos dio 156 00:07:36,560 --> 00:07:38,140 en nuestro primer día de clase. 157 00:07:38,140 --> 00:07:40,020 Lo había colgado en mi pared. 158 00:07:40,020 --> 00:07:42,410 Esto es probablemente un poco nerd, pero me quedé en en mi 159 00:07:42,410 --> 00:07:46,930 pared durante la clase como un recordatorio de lo bueno que era. 160 00:07:46,930 --> 00:07:49,240 >> TRAVIS DOWNS: Es tan vergonzoso. 161 00:07:49,240 --> 00:07:50,770 >> JACKSON Steinkamp: La informática es algo que 162 00:07:50,770 --> 00:07:52,370 debe tratar incluso si usted no es uno de 163 00:07:52,370 --> 00:07:54,980 las ciencias tradicionales. 164 00:07:54,980 --> 00:07:58,510 Es su propia experiencia, y CS50 se asegurará de que usted es 165 00:07:58,510 --> 00:08:01,520 bien apoyado a través de ella con su verdadero ejército de TFS. 166 00:08:01,520 --> 00:08:03,700 >> ALI Nahm: Lo tomé como un estudiante de primer año, y así lo hizo mucho 167 00:08:03,700 --> 00:08:04,215 de nuevos amigos. 168 00:08:04,215 --> 00:08:07,170 También me he presentado a esta concentración todo 169 00:08:07,170 --> 00:08:10,770 toda la escuela de ingeniería, por lo que lo recomiendo encarecidamente 170 00:08:10,770 --> 00:08:14,360 y le damos la bienvenida a nuestra familia CS50. 171 00:08:14,360 --> 00:08:17,510 >> Yaniv Yacoby: CS50 sólo te enseña cómo utilizar las herramientas 172 00:08:17,510 --> 00:08:19,210 que son muy accesibles. 173 00:08:19,210 --> 00:08:21,840 Sólo se necesita un ordenador portátil, se necesita un navegador web, y usted 174 00:08:21,840 --> 00:08:26,030 Necesitamos aprender a escribir algo de código, y usted puede construir realmente 175 00:08:26,030 --> 00:08:27,400 cosas interesantes. 176 00:08:27,400 --> 00:08:31,660 >> KAREN XIAO: Es tan bueno ser capaz de hacer algo 177 00:08:31,660 --> 00:08:34,580 y que la gente lo use y que la gente lo ve, y eso es 178 00:08:34,580 --> 00:08:35,900 lo que realmente me gusta de ella. 179 00:08:35,900 --> 00:08:37,429 >> Tim McLaughlin: - un sentido de comunidad, creo que, en este 180 00:08:37,429 --> 00:08:39,470 por supuesto, más que cualquier otro curso que he tomado hasta ahora. 181 00:08:39,470 --> 00:08:41,350 No sólo estás tomando otro - 182 00:08:41,350 --> 00:08:42,740 usted no está llenando otro requisito. 183 00:08:42,740 --> 00:08:45,310 No sólo vamos a conferencias e ir a la sección. 184 00:08:45,310 --> 00:08:49,630 Pero estás haciendo un montón de cosas que son todos acerca de 185 00:08:49,630 --> 00:08:51,560 programación y todo sobre la tecnología, pero no es así 186 00:08:51,560 --> 00:08:53,090 Realmente te sientes como una clase más de las veces. 187 00:08:53,090 --> 00:08:55,012 >> TRAVIS DOWNS: ¿Y en el primer día, repartieron torta, y 188 00:08:55,012 --> 00:08:56,215 Me vendieron al instante. 189 00:08:56,215 --> 00:08:57,822 >> JACOB PRITT: caramelos gratis y pizza. 190 00:08:57,822 --> 00:08:59,820 >> ZAMYLA CHAN: - sin importar su nivel de interés, creo que 191 00:08:59,820 --> 00:09:05,170 que CS50, te divertirás y podrás intelectualmente 192 00:09:05,170 --> 00:09:06,070 estimulado. 193 00:09:06,070 --> 00:09:07,926 >> MARK GROZEN-SMITH: Siempre es una fiesta en la clase, y es un 194 00:09:07,926 --> 00:09:09,990 fiesta cada noche trabajando en su p-set. 195 00:09:09,990 --> 00:09:11,880 >> JACKSON Steinkamp: Cada vez que termine un boletín de problemas, 196 00:09:11,880 --> 00:09:13,710 se sentirá como usted ha terminado un proyecto. 197 00:09:13,710 --> 00:09:16,580 >> MELISSA NIU: Fue el primer año, y se hizo la compra. 198 00:09:16,580 --> 00:09:19,030 Yo tenía mis cuatro clases listo, y yo estaba en Annenberg. 199 00:09:19,030 --> 00:09:21,670 Y me encuentro con un amigo, y él dice, hey, voy de compras 200 00:09:21,670 --> 00:09:24,330 esta clase llamada CS50, y usted debe venir conmigo. 201 00:09:24,330 --> 00:09:28,150 Acabé teniendo que ese otoño, y después de esa clase, que 202 00:09:28,150 --> 00:09:30,510 pensé que tal vez voy a menores en CS. 203 00:09:30,510 --> 00:09:33,760 Pero aquí estoy, tres años después, todavía está estudiando ordenador 204 00:09:33,760 --> 00:09:36,680 la ciencia y de hecho lo está haciendo como un mayor, y me encantó cada 205 00:09:36,680 --> 00:09:37,780 momento de ella. 206 00:09:37,780 --> 00:09:39,030 >> ROB BOWDEN: No tengo ni idea. 207 00:09:46,408 --> 00:09:48,060 >> ALI Nahm: Vamos a ver. 208 00:09:48,060 --> 00:09:49,200 >> MELISSA NIU: locura. 209 00:09:49,200 --> 00:09:50,610 >> Ponencia 1: Siento que sería muy cliché. 210 00:09:50,610 --> 00:09:52,530 Que acababa de decir, como, impresionante. 211 00:09:52,530 --> 00:09:53,540 >> Yaniv Yacoby: Accesibilidad. 212 00:09:53,540 --> 00:09:55,080 >> JACOB PRITT: caramelos gratis y pizza. 213 00:09:55,080 --> 00:09:57,310 >> TRAVIS DOWNS: No se puede bajar una clase que se reparte la torta. 214 00:09:57,310 --> 00:09:58,510 >> Tim McLaughlin: Energética. 215 00:09:58,510 --> 00:10:00,040 >> VIPUL Shekhawat: Essential. 216 00:10:00,040 --> 00:10:02,636 >> ROB BOWDEN: Déjame pensar en una respuesta. 217 00:10:02,636 --> 00:10:04,480 Creo que tengo algo. 218 00:10:04,480 --> 00:10:07,092 Oh, dios. 219 00:10:07,092 --> 00:10:13,370 Sí, mi nombre es Rob Bowden, y esto es CS50. 220 00:10:13,370 --> 00:10:16,340 >> [Aplausos] 221 00:10:20,810 --> 00:10:23,390 David Malan: Muy bien, así que vamos a empezar a pintar un cuadro 222 00:10:23,390 --> 00:10:26,230 de la dirección en la que podemos ir, y vamos a introducir 223 00:10:26,230 --> 00:10:28,190 este concepto aquí conocido como pseudocódigo. 224 00:10:28,190 --> 00:10:29,560 Así que no es un pseudocódigo de programación 225 00:10:29,560 --> 00:10:30,810 lenguaje en sí mismo. 226 00:10:30,810 --> 00:10:33,250 No es nada técnico per se, pero es sólo una especie de 227 00:10:33,250 --> 00:10:36,490 forma general de expresarse con bastante precisión, 228 00:10:36,490 --> 00:10:39,730 bastante algorítmica, procesalmente justa, pero sin 229 00:10:39,730 --> 00:10:42,570 tener que preocuparse por el idioma que usted está expresando 230 00:10:42,570 --> 00:10:43,150 usted mismo pulg 231 00:10:43,150 --> 00:10:46,280 Es cierto modelo de Inglés y lenguajes de programación con 232 00:10:46,280 --> 00:10:48,790 que usted sea familiar, para que podamos empezar 233 00:10:48,790 --> 00:10:50,600 escribir este tipo de cosas sobre la marcha. 234 00:10:50,600 --> 00:10:54,450 Y de hecho, Joseph, ¿podría usted pedir prestado al escenario para ser 235 00:10:54,450 --> 00:10:55,490 escriba aquí? 236 00:10:55,490 --> 00:11:00,130 He seguido adelante aquí con anticipación y olvidado de poner 237 00:11:00,130 --> 00:11:02,920 unos calcetines de hoy, y esto va a ser uno de nuestros más 238 00:11:02,920 --> 00:11:03,780 ejemplos ridículos. 239 00:11:03,780 --> 00:11:04,580 >> Ahora, te necesito aquí. 240 00:11:04,580 --> 00:11:05,630 Voy a hacer la parte de calcetines. 241 00:11:05,630 --> 00:11:08,040 Así que aquí tenemos un pequeño bloc de notas. 242 00:11:08,040 --> 00:11:09,940 Esto es, literalmente, sólo TextEdit en Mac. 243 00:11:09,940 --> 00:11:12,270 No estamos realmente va a escribir un programa ejecutable, pero 244 00:11:12,270 --> 00:11:14,220 sólo vamos a empezar a esbozar pseudocódigo basado en 245 00:11:14,220 --> 00:11:17,830 en algunos de los consejos que usted proporciona a mí aquí. 246 00:11:17,830 --> 00:11:20,760 Así que aquí está mi pila de calcetines en casa. 247 00:11:20,760 --> 00:11:23,320 No tengo calcetines cuando me despierto por la mañana, y ahora estamos 248 00:11:23,320 --> 00:11:26,280 que escribir un programa, un algoritmo de clases, con el que 249 00:11:26,280 --> 00:11:27,900 para obtener estos calcetines en los pies. 250 00:11:27,900 --> 00:11:30,860 Y en el camino, vamos a ver si podemos tropezar, o encuentro, 251 00:11:30,860 --> 00:11:32,860 algunas de las ideas que usted va a tener que empezar 252 00:11:32,860 --> 00:11:35,470 pensar mucho más seriamente en la programación 253 00:11:35,470 --> 00:11:37,950 no sea que sus programas no se comportan bien como se esperaba. 254 00:11:37,950 --> 00:11:39,580 >> Así que siéntate aquí. 255 00:11:39,580 --> 00:11:41,180 Tengo mi pila de calcetines. 256 00:11:41,180 --> 00:11:43,780 ¿Qué es lo primero que un ser humano razonable sería 257 00:11:43,780 --> 00:11:46,600 hacer cuando el objetivo es poner en un par de calcetines? 258 00:11:46,600 --> 00:11:49,190 Que alguien me dé un paso, y sólo el primer paso. 259 00:11:49,190 --> 00:11:49,796 ¿Sí? 260 00:11:49,796 --> 00:11:50,690 AUDIENCIA: Dobla hacia abajo. 261 00:11:50,690 --> 00:11:54,290 David Malan: Inclínate, está bien. 262 00:11:54,290 --> 00:11:55,540 Paso dos. 263 00:11:59,975 --> 00:12:00,645 Paso dos. 264 00:12:00,645 --> 00:12:01,840 AUDIENCIA: Toma tu calcetín. 265 00:12:01,840 --> 00:12:03,220 David Malan: Toma tu calcetín. 266 00:12:03,220 --> 00:12:07,610 Vale, ambigüedad tan leve aquí, y este es uno de los primeros 267 00:12:07,610 --> 00:12:09,380 obstáculos que que se supone que deliberadamente 268 00:12:09,380 --> 00:12:10,290 Encontramos aquí. 269 00:12:10,290 --> 00:12:14,110 Es un poco ambiguo, así que toma tu calcetín. 270 00:12:14,110 --> 00:12:17,425 Está bien, me quedo con este, pero un ordenador, realizar en un 271 00:12:17,425 --> 00:12:20,420 poco, no va a tener ese tipo de instinto humano de sólo 272 00:12:20,420 --> 00:12:21,490 escoger el más cercano. 273 00:12:21,490 --> 00:12:23,590 Vamos a tener que empezar, en poco tiempo, expresando 274 00:12:23,590 --> 00:12:24,610 nosotros mismos con mayor precisión. 275 00:12:24,610 --> 00:12:26,600 >> De acuerdo, entonces el segundo paso es levantar el calcetín. 276 00:12:26,600 --> 00:12:27,520 Vamos a tomarlo. 277 00:12:27,520 --> 00:12:28,620 Paso tres. 278 00:12:28,620 --> 00:12:29,532 En la parte posterior. 279 00:12:29,532 --> 00:12:30,900 AUDIENCIA: Encuentra una pareja. 280 00:12:30,900 --> 00:12:32,060 David Malan: Encuentre par coincidente. 281 00:12:32,060 --> 00:12:34,740 Bien, eso es bueno. 282 00:12:34,740 --> 00:12:35,650 Tuve que elegir este calcetín. 283 00:12:35,650 --> 00:12:39,200 Así que el objetivo es encontrar una coincidencia de calcetín, ahora, pero lo 284 00:12:39,200 --> 00:12:39,990 Qué significa eso? 285 00:12:39,990 --> 00:12:42,130 Un ser humano es razonable, al igual que el miércoles, cuando me 286 00:12:42,130 --> 00:12:44,700 supo encontrar Mike Smith en una guía telefónica, sólo un poco de 287 00:12:44,700 --> 00:12:45,640 fue con su instinto. 288 00:12:45,640 --> 00:12:49,220 Pero aquí, es, obviamente, este calcetín aquí, pero de una computadora 289 00:12:49,220 --> 00:12:51,350 no va a ser tan instintivo. 290 00:12:51,350 --> 00:12:53,830 Un equipo que va a tener una colección de bits, como hemos 291 00:12:53,830 --> 00:12:55,380 discutió el miércoles, y son los 292 00:12:55,380 --> 00:12:56,710 organizado de alguna manera en la memoria. 293 00:12:56,710 --> 00:13:00,400 Pero el punto es que un equipo sólo tiene la capacidad de 294 00:13:00,400 --> 00:13:03,390 a mirar las cosas de una en una, y de hecho, incluso se 295 00:13:03,390 --> 00:13:05,980 los seres humanos - a pesar de que se siente como que miró hacia abajo ya la ruptura 296 00:13:05,980 --> 00:13:08,900 segundo después yo sé dónde está el calcetín, mi cerebro y mis ojos 297 00:13:08,900 --> 00:13:12,000 presumiblemente tuvo un rápido descremada de los calcetines, y enganchado a continuación 298 00:13:12,000 --> 00:13:13,400 a la que nos ocupa. 299 00:13:13,400 --> 00:13:15,780 >> Así que si podemos ser aún más deliberado ahora como un ordenador, 300 00:13:15,780 --> 00:13:17,780 ¿Cómo puedo encontrar a este par a juego? 301 00:13:17,780 --> 00:13:18,890 Bueno, tenemos que iterar. 302 00:13:18,890 --> 00:13:21,440 Tenemos que quizás lazo sobre este lío de los calcetines en el 303 00:13:21,440 --> 00:13:25,760 piso por el que me diga algo como PARA CADA calcetín, recogerlo 304 00:13:25,760 --> 00:13:30,195 , y si la misma forma y tamaño que el otro, entonces 305 00:13:30,195 --> 00:13:32,150 punto, punto, punto, vamos a continuar la historia. 306 00:13:32,150 --> 00:13:34,430 Así, por cada calcetín, así que recoger esto. 307 00:13:34,430 --> 00:13:36,520 Reviso es éste igual a esta. 308 00:13:36,520 --> 00:13:38,250 No es, por lo que dejar de lado lateral. 309 00:13:38,250 --> 00:13:39,220 Entonces iterar de nuevo. 310 00:13:39,220 --> 00:13:40,340 ¿Es esta una igual? 311 00:13:40,340 --> 00:13:42,010 No, no lo es, así que lo puse a un lado. 312 00:13:42,010 --> 00:13:42,710 ¿Es este? 313 00:13:42,710 --> 00:13:43,200 No. 314 00:13:43,200 --> 00:13:43,670 Éste? 315 00:13:43,670 --> 00:13:44,520 No, y así sucesivamente. 316 00:13:44,520 --> 00:13:48,730 Y, por último, con suerte, voy a encontrar este calcetín aquí. 317 00:13:48,730 --> 00:13:51,350 Así que si se trata de la misma forma, tamaño, tómalo. 318 00:13:51,350 --> 00:13:53,980 >> Y ahora, ¿cuál sería el siguiente paso en esta lista? 319 00:13:53,980 --> 00:13:54,402 ¿Sí? 320 00:13:54,402 --> 00:13:56,090 AUDIENCIA: Identificar derecha de la izquierda. 321 00:13:56,090 --> 00:13:58,980 David Malan: Está bien, identificar a derecha e izquierda, por lo que 322 00:13:58,980 --> 00:14:01,870 Afortunadamente, este tipo de obras. 323 00:14:01,870 --> 00:14:04,020 Un poco simétrico, o me he gastado sólo ellos de esa manera. 324 00:14:04,020 --> 00:14:07,020 Muy bien, así que me he identificado la derecha. 325 00:14:07,020 --> 00:14:09,980 Y ahora, antes de continuar, permítanme señalar lo que José 326 00:14:09,980 --> 00:14:12,890 estado haciendo aquí como una especie de programador versado. 327 00:14:12,890 --> 00:14:15,800 Así que de nuevo, no hay una sola manera de hacer esto, pero más allá de 328 00:14:15,800 --> 00:14:18,480 numeración de las líneas, Joseph ya ha empezado a hacer esto 329 00:14:18,480 --> 00:14:19,460 especie de sangría. 330 00:14:19,460 --> 00:14:21,950 De hecho, esta es una convención muy común en la programación, 331 00:14:21,950 --> 00:14:26,110 por lo que cuando se hace algo repetitivo, bucles estilo, 332 00:14:26,110 --> 00:14:28,480 estamos dando a entender con la frase en Inglés "PARA CADA 333 00:14:28,480 --> 00:14:31,090 calcetín, "la convención en pseudocódigo y, como veremos, 334 00:14:31,090 --> 00:14:33,410 lenguajes de programación habituales, es justo guión. 335 00:14:33,410 --> 00:14:36,240 Pulsa la barra espaciadora varias veces, presione la tecla Tab o similar, 336 00:14:36,240 --> 00:14:40,660 para que anidado debajo "PARA CADA calcetín" es el pedazo de 337 00:14:40,660 --> 00:14:43,430 cosas que tiene que hacer como resultado de ese bucle. 338 00:14:43,430 --> 00:14:45,940 Así que eso es todo lo que está transmitiendo semánticamente. 339 00:14:45,940 --> 00:14:48,620 Ahora, mientras tanto, el "Si se trata de la misma forma y tamaño," la 340 00:14:48,620 --> 00:14:51,590 hecho de que "Take it" una sangría adicional sólo significa 341 00:14:51,590 --> 00:14:54,370 eso es lo único que debe hacer si esa condición, 342 00:14:54,370 --> 00:14:59,770 si esa rama, que tenedor en la carretera, es de hecho verdad. 343 00:14:59,770 --> 00:15:02,130 >> Así que ahora aquí, estamos en el cuarto paso, identificar a la derecha ya la izquierda. 344 00:15:02,130 --> 00:15:03,410 He identificado derecha. 345 00:15:03,410 --> 00:15:05,150 Give me paso cinco. 346 00:15:05,150 --> 00:15:07,880 Y técnicamente, realmente podríamos llamar 347 00:15:07,880 --> 00:15:09,510 el para cada cosa - 348 00:15:09,510 --> 00:15:11,450 probablemente debería numerar todas las líneas si 349 00:15:11,450 --> 00:15:12,190 vamos a hacer esto. 350 00:15:12,190 --> 00:15:14,006 JOSEPH: [inaudible] 351 00:15:14,006 --> 00:15:14,610 David Malan: [inaudible]? 352 00:15:14,610 --> 00:15:16,070 Bueno, está bien, está bien, vamos a hacerlo a tu manera. 353 00:15:16,070 --> 00:15:19,590 De acuerdo, entonces el paso cinco, ¿cómo podemos hacer el calcetín derecho? 354 00:15:19,590 --> 00:15:22,310 ¿Cómo procedemos próximo, aquí? 355 00:15:22,310 --> 00:15:22,730 ¿Sí? 356 00:15:22,730 --> 00:15:24,300 AUDIENCIA: Levante la pierna derecha. 357 00:15:24,300 --> 00:15:27,100 David Malan: Levante la pierna derecha, está bien. 358 00:15:27,100 --> 00:15:29,330 Paso seis? 359 00:15:29,330 --> 00:15:30,728 Rápidamente. 360 00:15:30,728 --> 00:15:31,202 Si. 361 00:15:31,202 --> 00:15:33,100 AUDIENCIA: Encuentre un extremo abierto del calcetín. 362 00:15:33,100 --> 00:15:34,440 David Malan: Está bien, encontrar el extremo abierto del calcetín. 363 00:15:34,440 --> 00:15:34,840 Tan bueno. 364 00:15:34,840 --> 00:15:37,180 Así que aquí, de verdad, un instinto muy común sólo sería 365 00:15:37,180 --> 00:15:39,880 poner en calcetín derecho, pero eso también es bastante ambigua. 366 00:15:39,880 --> 00:15:42,750 A menos que el ordenador o humano sabe exactamente lo que quiere decir, 367 00:15:42,750 --> 00:15:45,160 no va a ser para ejecutar eso, así que aquí, no tengo 368 00:15:45,160 --> 00:15:46,520 encontró la apertura del stock. 369 00:15:46,520 --> 00:15:48,222 Paso siete? 370 00:15:48,222 --> 00:15:49,700 AUDIENCIA: Tócate los dedos de los pies. 371 00:15:49,700 --> 00:15:51,070 David Malan: dedos de los pies Touch. 372 00:15:51,070 --> 00:15:53,546 Bien, ahora vamos - 373 00:15:53,546 --> 00:15:56,480 Está bien, me voy a tomar algunas libertades aquí. 374 00:15:56,480 --> 00:15:57,110 Gracias. 375 00:15:57,110 --> 00:15:59,210 Paso ocho? 376 00:15:59,210 --> 00:16:00,060 Póngase calcetines. 377 00:16:00,060 --> 00:16:02,060 Está bien, así que ahora, creo que estamos lo suficientemente cerca a una especie de toma 378 00:16:02,060 --> 00:16:03,480 esta uno en casa. 379 00:16:03,480 --> 00:16:05,980 Muy bien, así que esto va para arriba. 380 00:16:05,980 --> 00:16:07,950 Voy a tomar algunas libertades con lo que significa, en realidad. 381 00:16:07,950 --> 00:16:08,920 Coloque el calcetín en. 382 00:16:08,920 --> 00:16:10,853 Muy bien, ahora paso nueve? 383 00:16:10,853 --> 00:16:11,740 AUDIENCIA: Colocar el pie hacia abajo. 384 00:16:11,740 --> 00:16:12,510 David Malan: Gracias. 385 00:16:12,510 --> 00:16:15,610 Paso nueve, poner pie en el suelo, y ahora, repetimos puede. 386 00:16:15,610 --> 00:16:19,540 Así que probablemente, ahora podemos entrar en el paso 10 y decir identificar 387 00:16:19,540 --> 00:16:21,960 dejó calcetín, pero eso es probablemente ya está hecho. 388 00:16:21,960 --> 00:16:24,100 >> Y entonces, puedo ordenar de repetir estos pasos. 389 00:16:24,100 --> 00:16:25,260 Pero este tipo de petición de principio. 390 00:16:25,260 --> 00:16:28,100 Antes, la última vez que queríamos repetir algo, 391 00:16:28,100 --> 00:16:30,730 hizo iterativamente, una y otra vez, una PARA 392 00:16:30,730 --> 00:16:32,660 Cada bucle por así decirlo. 393 00:16:32,660 --> 00:16:36,420 ¿Tendría sentido utilizar un bucle con el fin de manejar tanto 394 00:16:36,420 --> 00:16:38,470 la izquierda y la media derecha? 395 00:16:38,470 --> 00:16:40,460 Porque se siente como si estas operaciones son más o menos 396 00:16:40,460 --> 00:16:43,090 idénticos, excepto por el hecho de que uno comienza aquí y uno 397 00:16:43,090 --> 00:16:44,850 comienza aquí? 398 00:16:44,850 --> 00:16:47,400 ¿Tenemos bucle, o simplemente seguir los pasos de escritura 399 00:16:47,400 --> 00:16:48,745 10 y 11 y 12? 400 00:16:48,745 --> 00:16:50,540 AUDIENCIA: Loop. 401 00:16:50,540 --> 00:16:52,240 >> David Malan: Muy bien, así bucle. 402 00:16:52,240 --> 00:16:54,730 De hecho, me podría haber dicho simplemente seguir adelante. 403 00:16:54,730 --> 00:16:55,720 ¿Por qué es este el caso? 404 00:16:55,720 --> 00:16:57,940 Bueno, esto es en realidad el primero de nuestra no-obvio 405 00:16:57,940 --> 00:17:01,210 decisiones de diseño y, de hecho, uno de los indicadores con los que 406 00:17:01,210 --> 00:17:03,990 vamos a empezar a evaluar, para nosotros y para usted, el 407 00:17:03,990 --> 00:17:06,780 calidad de un programa es lo bien diseñado que es. 408 00:17:06,780 --> 00:17:09,619 ¿Ha hecho la mínima cantidad de trabajo necesario para 409 00:17:09,619 --> 00:17:12,480 hacer el trabajo lo más rápidamente, ya sea en términos de 410 00:17:12,480 --> 00:17:15,430 su tiempo o en términos de tiempo de funcionamiento de la computadora? 411 00:17:15,430 --> 00:17:17,589 ¿Cuántas operaciones hace que se necesita para ejecutar? 412 00:17:17,589 --> 00:17:20,180 Así que podría decirse que esta es una oportunidad para un bucle porque 413 00:17:20,180 --> 00:17:22,829 tan pronto como comience a copiar y pegar, como José eficazmente 414 00:17:22,829 --> 00:17:25,010 sería empezar a hacer en un momento, usted está perdiendo el tipo de 415 00:17:25,010 --> 00:17:27,140 tiempo, y que está siendo doblemente expresivo. 416 00:17:27,140 --> 00:17:30,260 >> Pero al mismo tiempo, estos son en realidad dos especiales 417 00:17:30,260 --> 00:17:31,890 casos, izquierda y derecha. 418 00:17:31,890 --> 00:17:34,930 Y mientras que antes, podría tener 10 o 20 o más medias en 419 00:17:34,930 --> 00:17:37,960 una pila, que sin duda no tiene sentido tener 50 líneas de 420 00:17:37,960 --> 00:17:40,180 código diciendo mira esto calcetín, luego el siguiente, 421 00:17:40,180 --> 00:17:41,300 entonces el siguiente. 422 00:17:41,300 --> 00:17:43,450 Aquí, es un poco menos obvio, y me propuso que 423 00:17:43,450 --> 00:17:44,390 que podíamos ir en cualquier dirección. 424 00:17:44,390 --> 00:17:46,720 O bien podría tener ese lazo, aunque sólo los bucles 425 00:17:46,720 --> 00:17:50,620 dos veces, o podemos simplemente copiar y pegar un poco 426 00:17:50,620 --> 00:17:53,270 aquí con el fin de hacer el trabajo. 427 00:17:53,270 --> 00:17:55,210 Pero este programa está libre de errores, por así decirlo. 428 00:17:55,210 --> 00:17:59,120 Es posible que tenga algunos errores, errores o casos de esquina, así 429 00:17:59,120 --> 00:18:00,860 Hablaré, pues, que en realidad no anticipar. 430 00:18:00,860 --> 00:18:03,400 Nada salió mal esta vez, pero lo que pudo haber salido mal 431 00:18:03,400 --> 00:18:06,100 durante la ejecución de este programa? 432 00:18:06,100 --> 00:18:07,040 AUDIENCIA: Usted no tiene ningún calcetines. 433 00:18:07,040 --> 00:18:08,980 >> David Malan: Así que no puede haber medias hay alguna. 434 00:18:08,980 --> 00:18:10,380 Así que vamos a considerar ese caso esquina. 435 00:18:10,380 --> 00:18:14,670 Así que si pudiéramos retroceder hasta el paso uno, paso uno era tan 436 00:18:14,670 --> 00:18:16,540 doblar hacia abajo, de manera que concuerda. 437 00:18:16,540 --> 00:18:21,250 El segundo paso, toma tu calcetín, pero luego encontrar calcetines a juego, 438 00:18:21,250 --> 00:18:22,420 identificar la derecha. 439 00:18:22,420 --> 00:18:25,050 Es como que hizo un montón de suposiciones, y esto es, 440 00:18:25,050 --> 00:18:27,720 francamente, ¿por qué a veces el programa bloquee. 441 00:18:27,720 --> 00:18:30,240 Si usted, el programador, han hecho ciertas suposiciones, como 442 00:18:30,240 --> 00:18:33,000 seguramente no va a ser calcetines o seguramente no va 443 00:18:33,000 --> 00:18:35,310 a ser memoria disponible en el ordenador, seguramente no va 444 00:18:35,310 --> 00:18:37,420 ser espacio en el disco en el disco duro - 445 00:18:37,420 --> 00:18:39,040 Bueno, si usted hace estos supuestos, y que no lo es, 446 00:18:39,040 --> 00:18:41,880 de hecho, la realidad, ¿quién sabe lo que a veces la computadora 447 00:18:41,880 --> 00:18:42,520 vamos a hacer? 448 00:18:42,520 --> 00:18:44,450 Y a veces, cuando recibe el balón de playa giratorio o el 449 00:18:44,450 --> 00:18:47,750 congelado Windows o similares, eso es precisamente debido a que algunos 450 00:18:47,750 --> 00:18:50,980 programador no previó esos casos extremos llamados. 451 00:18:50,980 --> 00:18:53,050 ¿Qué otra cosa podría haber ido mal en este programa? 452 00:18:53,050 --> 00:18:53,330 ¿Sí? 453 00:18:53,330 --> 00:18:55,950 >> AUDIENCIA: Usted no tiene la pierna derecha y la pierna izquierda. 454 00:18:55,950 --> 00:18:58,920 David Malan: Bueno, tal vez no tenga tanto una pierna derecha y un 455 00:18:58,920 --> 00:19:01,940 la pierna izquierda, por lo que este programa puede no ser universalmente 456 00:19:01,940 --> 00:19:02,590 aplicable. 457 00:19:02,590 --> 00:19:03,658 ¿Otros? 458 00:19:03,658 --> 00:19:05,650 AUDIENCIA: Usted podría haber recogido un calcetín huérfano. 459 00:19:05,650 --> 00:19:07,970 David Malan: Podría haber cogido un calcetín huérfano, por lo que un 460 00:19:07,970 --> 00:19:11,250 no correspondiente calcetín que sólo no tiene hermanos porque he 461 00:19:11,250 --> 00:19:13,650 lo perdió, se rompe, es en el lavado todavía, o similares. 462 00:19:13,650 --> 00:19:15,550 Así que, también, en realidad no ha sido manipulado. 463 00:19:15,550 --> 00:19:15,790 ¿Sí? 464 00:19:15,790 --> 00:19:17,510 PÚBLICO: Es posible que ya tenga calcetines. 465 00:19:17,510 --> 00:19:19,050 David Malan: Ya podría tener calcetines. 466 00:19:19,050 --> 00:19:20,080 Yo en realidad no check. 467 00:19:20,080 --> 00:19:23,350 SI usted no tiene los calcetines, y luego proceder a hacer 468 00:19:23,350 --> 00:19:24,330 la línea uno y dos. 469 00:19:24,330 --> 00:19:24,980 Y eso podría suceder. 470 00:19:24,980 --> 00:19:26,880 Te quedas dormido con los calcetines y similares, así 471 00:19:26,880 --> 00:19:28,860 eso, también, un caso esquina muy razonable. 472 00:19:28,860 --> 00:19:29,630 Y tal vez otro? 473 00:19:29,630 --> 00:19:31,310 AUDIENCIA: El calcetín está al revés. 474 00:19:31,310 --> 00:19:34,000 David Malan: Así que el calcetín está al revés, así que hicimos ningún error 475 00:19:34,000 --> 00:19:35,330 comprobar, en definitiva. 476 00:19:35,330 --> 00:19:38,550 No comprobar si el estado del mundo es como esperamos. 477 00:19:38,550 --> 00:19:41,310 No comprobar si en realidad encontramos lo que estamos buscando. 478 00:19:41,310 --> 00:19:43,310 >> Y a pesar de que esto es una especie de un ejemplo ridículo 479 00:19:43,310 --> 00:19:46,110 la participación de calcetines, al final de la día, esto es exactamente la 480 00:19:46,110 --> 00:19:48,740 tipo de mentalidad es necesario tener al escribir programas, 481 00:19:48,740 --> 00:19:51,740 incluso en Scratch, así como en C, en JavaScript, en PHP, 482 00:19:51,740 --> 00:19:53,920 porque de lo contrario, los programas se presentan el 483 00:19:53,920 --> 00:19:56,980 equivalente de esa pelota de playa o simplemente dar vueltas 484 00:19:56,980 --> 00:19:58,210 resultados inexactos. 485 00:19:58,210 --> 00:20:00,250 Así que muchas gracias aquí a nuestro escribano José. 486 00:20:00,250 --> 00:20:05,060 [Aplausos] 487 00:20:05,060 --> 00:20:06,850 >> David Malan: Muy bien, ¿y qué es, en 488 00:20:06,850 --> 00:20:08,230 hecho, un programa de ordenador? 489 00:20:08,230 --> 00:20:09,670 Bueno, vamos a echar un vistazo rápido a un 490 00:20:09,670 --> 00:20:11,100 representante de uno aquí. 491 00:20:11,100 --> 00:20:15,260 Así que este es un programa escrito en un lenguaje llamado C. C es 492 00:20:15,260 --> 00:20:17,830 nuevos lenguajes muy antiguos en estos días, pero muchos se construyen 493 00:20:17,830 --> 00:20:18,460 en la parte superior de la misma. 494 00:20:18,460 --> 00:20:21,180 De hecho, PHP, uno de los lenguajes web centradas vamos a 495 00:20:21,180 --> 00:20:24,050 usar hacia el final del plazo, se tiene lo que se llama un 496 00:20:24,050 --> 00:20:27,550 intérprete, un programa que está escrito en C, pero más de eso 497 00:20:27,550 --> 00:20:28,690 en muchas semanas a partir de ahora. 498 00:20:28,690 --> 00:20:30,840 Pero este programa, y ​​esto es lo que significa escribir un 499 00:20:30,840 --> 00:20:32,880 programa, si bien de manera muy simple. 500 00:20:32,880 --> 00:20:35,540 Tenemos una sintaxis bastante críptico aquí, pero se puede 501 00:20:35,540 --> 00:20:38,340 probablemente adivinar, incluso si nunca has programado antes, lo que 502 00:20:38,340 --> 00:20:39,750 que hace el programa. 503 00:20:39,750 --> 00:20:43,640 De hecho, yo no sé lo que printf es, pero ciertamente imprimir 504 00:20:43,640 --> 00:20:45,700 evoca la idea de imprimir algo. 505 00:20:45,700 --> 00:20:48,590 Y sí, este programa es en última instancia va a imprimir 506 00:20:48,590 --> 00:20:50,250 las palabras "Hola, mundo". 507 00:20:50,250 --> 00:20:53,390 >> Ahora, si usted tiene un Mac o un PC o un ordenador con Linux, lo más probable 508 00:20:53,390 --> 00:20:55,550 son, al menos si ha descargado algún libremente 509 00:20:55,550 --> 00:20:58,000 software disponible, que podría haber estado escribiendo programas en 510 00:20:58,000 --> 00:21:00,310 su propio ordenador portátil desde hace bastante tiempo. 511 00:21:00,310 --> 00:21:03,040 En Mac OS, por ejemplo, hay un programa llamado 512 00:21:03,040 --> 00:21:05,340 Terminal que viene con un Mac, que es por lo general en su 513 00:21:05,340 --> 00:21:07,550 Carpeta Utilidades, y por lo general se abre un negro y 514 00:21:07,550 --> 00:21:09,820 blanco o una ventana en blanco y negro en el que aparece un 515 00:21:09,820 --> 00:21:11,410 indicativo en el cual puede escribir comandos. 516 00:21:11,410 --> 00:21:13,060 Así que esto es realmente una reminiscencia de lo que las computadoras 517 00:21:13,060 --> 00:21:15,100 solía ser antes gráfica de usuario 518 00:21:15,100 --> 00:21:16,710 interfaces, interfaces de usuario, llegó. 519 00:21:16,710 --> 00:21:19,200 Ahora, en Windows, tiene un mecanismo similar en la forma 520 00:21:19,200 --> 00:21:20,130 del símbolo del sistema. 521 00:21:20,130 --> 00:21:23,430 >> Pero, ¿qué voy a hacer es abrir, digamos, 522 00:21:23,430 --> 00:21:26,580 TextEdit otra vez, por lo que el mismo programa que utilizábamos para 523 00:21:26,580 --> 00:21:28,870 pseudocódigo hace un momento, y yo voy a seguir adelante y 524 00:21:28,870 --> 00:21:30,080 escribir mi primer programa. 525 00:21:30,080 --> 00:21:34,030 Incluir stdio.h, sea lo que sea, int main 526 00:21:34,030 --> 00:21:36,880 vacío, sea lo que sea, y luego en el medio aquí, 527 00:21:36,880 --> 00:21:40,560 printf ("hola, mundo."). Y luego cita estrecha, 528 00:21:40,560 --> 00:21:42,340 cerrar paréntesis, punto y coma. 529 00:21:42,340 --> 00:21:44,460 Ahora voy a seguir adelante y acaba de golpear Comando-S. Voy 530 00:21:44,460 --> 00:21:47,650 seguir adelante y guardar esto como hello.c, por lo que la convención en 531 00:21:47,650 --> 00:21:50,530 el mundo de la programación C es el nombre del archivo del punto c. 532 00:21:50,530 --> 00:21:52,880 Voy a poner justo en el directorio de Inicio John Harvard, 533 00:21:52,880 --> 00:21:56,370 aquí, haga clic en Guardar, y ahora me voy a ir a este 534 00:21:56,370 --> 00:21:59,110 ventana de terminal, que de nuevo es este indicador en blanco y negro 535 00:21:59,110 --> 00:22:00,860 donde puedo ejecutar comandos. 536 00:22:00,860 --> 00:22:04,550 >> Puedo ejecutar programas escribiendo su nombre, no por 537 00:22:04,550 --> 00:22:06,710 doble clic en los iconos en el sentido habitual. 538 00:22:06,710 --> 00:22:10,590 Pero la cosa se trata de C es que un lenguaje como C primero 539 00:22:10,590 --> 00:22:13,150 viene en esta forma, algo que se llama código fuente. 540 00:22:13,150 --> 00:22:15,400 Algo que se parece un poco como el Inglés, pero es 541 00:22:15,400 --> 00:22:17,980 definitivamente menos como el Inglés de un pseudocódigo de José 542 00:22:17,980 --> 00:22:18,930 momento antes. 543 00:22:18,930 --> 00:22:20,560 Es un poco más arcano. 544 00:22:20,560 --> 00:22:22,830 Parece que seguir algunas pautas o reglas. 545 00:22:22,830 --> 00:22:25,300 El hecho de que tengo las llaves, punto y coma, comillas, 546 00:22:25,300 --> 00:22:28,240 soportes en ángulo, se siente como un equipo se le ocurrió esta 547 00:22:28,240 --> 00:22:29,250 tipo de lenguaje. 548 00:22:29,250 --> 00:22:32,010 Pero si me voy, ahora, a esta ventana de terminal, puedo correr un 549 00:22:32,010 --> 00:22:35,250 comando que se va a convertir ese código fuente es 550 00:22:35,250 --> 00:22:36,610 algo que se llama código objeto. 551 00:22:36,610 --> 00:22:39,690 Eso va a convertir Inglés-como sintaxis a ceros 552 00:22:39,690 --> 00:22:41,760 y unos, los mismos tipos de ceros y unos que nosotros 553 00:22:41,760 --> 00:22:42,820 habló el miércoles. 554 00:22:42,820 --> 00:22:44,810 Ahora, me voy a correr un comando llamado Clang. 555 00:22:44,810 --> 00:22:47,750 Más sobre esto en las próximas semanas, pero es un programa con 556 00:22:47,750 --> 00:22:52,330 que puedo convertir hello.c en un montón 557 00:22:52,330 --> 00:22:53,640 de ceros y unos. 558 00:22:53,640 --> 00:22:54,950 >> Ahora, me he encontrado este comando. 559 00:22:54,950 --> 00:22:57,940 He corrido Clang, y luego me dijo que correr a ti mismo en el archivo 560 00:22:57,940 --> 00:23:00,630 llamado hello.c, que he creado hace un momento, y 561 00:23:00,630 --> 00:23:02,090 nada parece suceder. 562 00:23:02,090 --> 00:23:05,550 Pero en realidad, si me metió en mi directorio personal, me gustaría ver 563 00:23:05,550 --> 00:23:09,620 que este programa estúpidamente llamado a.out ahora existe. 564 00:23:09,620 --> 00:23:12,250 Esto es sólo el nombre predeterminado para un programa cuando se escribe en 565 00:23:12,250 --> 00:23:15,140 C. Podemos cambiar este tiempo, pero es la a.out 566 00:23:15,140 --> 00:23:18,340 nombre del programa que acaba de convertir en ceros y unos. 567 00:23:18,340 --> 00:23:21,490 Y ahora que él es ceros y unos, mi Mac, en este caso, o 568 00:23:21,490 --> 00:23:24,670 el PC con Windows, puede entender los bits, los 569 00:23:24,670 --> 00:23:25,410 ceros y unos. 570 00:23:25,410 --> 00:23:29,130 Y así, cuando yo pulse Enter, veo "hola, mundo!" 571 00:23:29,130 --> 00:23:31,270 >> Pero es un poco buggy. 572 00:23:31,270 --> 00:23:34,110 Yo no acababa de decir "hola, mundo: el aire: - jharvard". El aire es 573 00:23:34,110 --> 00:23:35,020 el nombre de mi equipo. 574 00:23:35,020 --> 00:23:37,730 Jharvard es el nombre de la cuenta, así que lo hice con claridad 575 00:23:37,730 --> 00:23:41,070 omitir en el programa? 576 00:23:41,070 --> 00:23:42,480 Una especie de salto de línea. 577 00:23:42,480 --> 00:23:45,150 No le pegué el equivalente a Enter o el retorno de carro, 578 00:23:45,150 --> 00:23:47,760 y esto es, de nuevo, testimonio del hecho de que los ordenadores pueden 579 00:23:47,760 --> 00:23:49,800 sólo hacer lo que les dicen que hagan. 580 00:23:49,800 --> 00:23:52,400 Y el hecho de que yo no le dijo al mover el ordenador 581 00:23:52,400 --> 00:23:53,860 cursor a la línea siguiente - 582 00:23:53,860 --> 00:23:55,200 así, no es seguro que va a hacer sólo lo 583 00:23:55,200 --> 00:23:56,750 presuntuosamente para mí. 584 00:23:56,750 --> 00:24:00,860 Así que si vuelvo a ir a mi programa, y ​​digo \ n - 585 00:24:00,860 --> 00:24:03,180 Entonces, \ n, como pronto veremos, es la forma de 586 00:24:03,180 --> 00:24:06,910 representar las cosas extrañas como caracteres de nueva línea, cosas 587 00:24:06,910 --> 00:24:08,840 que de otro modo sería el resultado de 588 00:24:08,840 --> 00:24:09,940 pulsando la tecla Enter. 589 00:24:09,940 --> 00:24:11,730 Pero, por ahora, sólo sé que pulsando la tecla Enter se 590 00:24:11,730 --> 00:24:14,170 acaba de hacer nuestro código parecer extraño, por lo que el mundo decidieron, ya sabes 591 00:24:14,170 --> 00:24:16,580 lo que, para mantener las cosas más bonitas, para mantenerlo en una línea, vamos a 592 00:24:16,580 --> 00:24:19,070 acaba de decir \ n representa una nueva línea. 593 00:24:19,070 --> 00:24:22,260 Permítanme volver a guardar mi archivo, vuelva a la ventana de terminal, y 594 00:24:22,260 --> 00:24:25,290 vuelva a ejecutar a.out, Intro. 595 00:24:25,290 --> 00:24:28,374 Aún con errores, pero ¿por qué? 596 00:24:28,374 --> 00:24:29,750 >> AUDIENCIA: [inaudible] 597 00:24:29,750 --> 00:24:31,540 David Malan: Sí, así que tengo que volver a compilar. 598 00:24:31,540 --> 00:24:34,610 Así que para compilar un programa sólo significa convertir lo de la fuente 599 00:24:34,610 --> 00:24:37,660 código para el código objeto del código fuente, en ceros y unos. 600 00:24:37,660 --> 00:24:40,830 Ahora bien, el mero hecho de que llegué a guardar en la presente edición de textos no 601 00:24:40,830 --> 00:24:43,450 teniendo en esos ceros y unos, porque primero tiene que 602 00:24:43,450 --> 00:24:48,260 tell Clang hey, he cambiado de esas líneas de código, el 603 00:24:48,260 --> 00:24:49,040 código fuente. 604 00:24:49,040 --> 00:24:51,010 Es necesario regenerar a.out. 605 00:24:51,010 --> 00:24:52,990 Nada parece haber pasado, pero en un ordenador, 606 00:24:52,990 --> 00:24:55,820 en una línea de comandos, por así decirlo, cuando no pasa nada, 607 00:24:55,820 --> 00:24:57,510 que por lo general significa que todo está bien. 608 00:24:57,510 --> 00:24:59,040 Cuando algo sucede, significa 609 00:24:59,040 --> 00:25:00,420 usted en mal estado, en general. 610 00:25:00,420 --> 00:25:04,020 >> Así que vamos a ir ahora a a.out, y de hecho ahora tengo "hola, 611 00:25:04,020 --> 00:25:04,440 mundo ". 612 00:25:04,440 --> 00:25:05,990 Y ahora, ¿qué pasa con estos ceros y unos? 613 00:25:05,990 --> 00:25:07,520 Donde, de hecho, son los? 614 00:25:07,520 --> 00:25:10,710 Bueno, no puedo realmente sólo un poco de hurgar muy 615 00:25:10,710 --> 00:25:11,210 eficazmente. 616 00:25:11,210 --> 00:25:12,650 Permítanme abrir TextEdit. 617 00:25:12,650 --> 00:25:14,060 Esto es a.out. 618 00:25:14,060 --> 00:25:17,390 Déjenme seguir adelante y abrir esto, y esto es al parecer lo que mi 619 00:25:17,390 --> 00:25:19,080 programa parece. 620 00:25:19,080 --> 00:25:21,570 Así que he abierto, hello.c no, pero a.out. 621 00:25:21,570 --> 00:25:23,960 Pero esto no es realmente lo que mi programa es en realidad. 622 00:25:23,960 --> 00:25:26,450 Es evidente que esto es algún tipo de caracteres alfabéticos. 623 00:25:26,450 --> 00:25:28,670 Veo que no hay ceros y unos, pero esto es 624 00:25:28,670 --> 00:25:30,780 porque a.out es un programa. 625 00:25:30,780 --> 00:25:33,540 Ceros y unos - pero TextEdit, como su nombre indica, es 626 00:25:33,540 --> 00:25:37,130 al igual que el Bloc de notas de Windows, es un editor de texto, por lo que es 627 00:25:37,130 --> 00:25:39,730 confundiendo todos esos ceros y unos como 628 00:25:39,730 --> 00:25:41,870 aunque lo fueran, ¿qué? 629 00:25:41,870 --> 00:25:43,380 Caracteres ASCII. 630 00:25:43,380 --> 00:25:45,020 >> Así que recuerda el miércoles, sólo se le ocurrió esta 631 00:25:45,020 --> 00:25:48,740 asignación arbitraria de números, o bits, a las letras del 632 00:25:48,740 --> 00:25:51,690 alfabeto y los símbolos de puntuación y similares. 633 00:25:51,690 --> 00:25:54,920 Así TextEdit, que es un editor de texto se malinterpretando 634 00:25:54,920 --> 00:25:57,270 esos patrones de ceros y unos que se supone que son 635 00:25:57,270 --> 00:25:59,990 palabras de impresión, como "hola, mundo". Les está mostrando 636 00:25:59,990 --> 00:26:02,150 como ASCII, y por eso se ve un poco desordenado. 637 00:26:02,150 --> 00:26:04,910 Ahora, hay algunos indicios de corrección de aquí. 638 00:26:04,910 --> 00:26:08,090 Observe si destaco, hay un atisbo de realidad "hola, 639 00:26:08,090 --> 00:26:10,810 mundo, "así que en algún lugar de ese programa es 640 00:26:10,810 --> 00:26:12,120 la frase que escribí. 641 00:26:12,120 --> 00:26:14,610 Pero vamos a seguir adelante y ahora veo con un programa diferente. 642 00:26:14,610 --> 00:26:17,420 Esto no es un usaremos a menudo, pero también viene con 643 00:26:17,420 --> 00:26:19,970 un Mac y estará dentro del aparato CS50. 644 00:26:19,970 --> 00:26:23,940 Déjenme seguir adelante y abrir con un programa llamado XXD. 645 00:26:23,940 --> 00:26:26,530 >> De vuelta en el día, la mayoría de los programas fueron nombrados bastante críptica, 646 00:26:26,530 --> 00:26:28,200 y por lo que la tendencia continúa. 647 00:26:28,200 --> 00:26:31,160 Pero-b significa escupir a cabo este programa en forma binaria. 648 00:26:31,160 --> 00:26:32,330 No lo ejecute. 649 00:26:32,330 --> 00:26:35,770 Muestra a mí como ceros y unos, y esta es la C 650 00:26:35,770 --> 00:26:37,190 programa que acabo de escribir. 651 00:26:37,190 --> 00:26:39,920 Ahora bien, yo, como ser humano aquí, sinceramente, no tienen idea de lo que 652 00:26:39,920 --> 00:26:42,230 estos diversos patrones de ceros y unos representan. 653 00:26:42,230 --> 00:26:45,320 De vuelta en el día, yo, con mis tarjetas perforadas o similares, lo haría 654 00:26:45,320 --> 00:26:48,080 en realidad hay que buscar lo que estos diversos patrones de 655 00:26:48,080 --> 00:26:51,560 01111000, en realidad representan. 656 00:26:51,560 --> 00:26:54,390 O peor aún, que tendría que hacer la perforación o la creación 657 00:26:54,390 --> 00:26:56,130 de estos patrones de ceros y unos. 658 00:26:56,130 --> 00:27:00,410 Pero por ahora, tener fe en que una CPU, Intel Inside, así 659 00:27:00,410 --> 00:27:03,440 decirlo, dentro de todas nuestras computadoras en estos días, sabe 660 00:27:03,440 --> 00:27:05,100 cómo interpretar estos ceros y unos. 661 00:27:05,100 --> 00:27:07,010 Y algunos ceros y unos significar impresión. 662 00:27:07,010 --> 00:27:09,040 Algunos ceros y unos significa reproducir un sonido. 663 00:27:09,040 --> 00:27:13,630 Algunos ceros y unos significar tomar la entrada del usuario desde un teclado. 664 00:27:13,630 --> 00:27:15,960 Hay todo tipo de diferentes modelos, pero por suerte, 665 00:27:15,960 --> 00:27:19,680 como seres humanos, en general, sólo tiene que preocuparse acerca de la programación en 666 00:27:19,680 --> 00:27:21,270 este nivel bastante alto. 667 00:27:21,270 --> 00:27:24,320 Y en otras clases CS puede ahondar más profundamente y buscar 668 00:27:24,320 --> 00:27:26,820 las cosas como esos ceros y unos, o aún 669 00:27:26,820 --> 00:27:28,000 otras cosas fijas. 670 00:27:28,000 --> 00:27:29,210 >> Así que ahora vamos a convertir esto. 671 00:27:29,210 --> 00:27:32,550 Vamos a pasar muy rápidamente de C y pasar a algo un 672 00:27:32,550 --> 00:27:36,390 poco más reconfortante, un poco más emocionante, en el que 673 00:27:36,390 --> 00:27:39,340 podemos volver nuestras animaciones y sonidos y similares, que 674 00:27:39,340 --> 00:27:40,940 claramente nos han escapado en esta 675 00:27:40,940 --> 00:27:42,480 interfaz bastante primitivo. 676 00:27:42,480 --> 00:27:46,430 Así que este mismo programa en C puede ser representada ahora en este 677 00:27:46,430 --> 00:27:50,060 lenguaje de programación llamado rasguño de la siguiente manera. 678 00:27:50,060 --> 00:27:54,230 Este es el equivalente de este programa hola mundo escrito en 679 00:27:54,230 --> 00:27:57,370 esta pieza del rompecabezas estilo lenguaje llamado Scratch. 680 00:27:57,370 --> 00:28:00,600 Así que permítanme seguir adelante y abrir el programa mismo. 681 00:28:00,600 --> 00:28:01,850 Se volvió a pedir Scratch. 682 00:28:01,850 --> 00:28:03,880 Es de libre disposición, y esto es lo mismo que 683 00:28:03,880 --> 00:28:05,120 Empiece hoy mismo en. 684 00:28:05,120 --> 00:28:07,790 >> Así que aquí es Scratch, y está dividida en unos pocos 685 00:28:07,790 --> 00:28:09,700 diferentes piezas. 686 00:28:09,700 --> 00:28:12,690 En la parte superior derecha, tenemos la llamada fase, y 687 00:28:12,690 --> 00:28:13,670 de hecho, ahí es donde las galletas 688 00:28:13,670 --> 00:28:15,440 realizó sólo un poco atrás. 689 00:28:15,440 --> 00:28:19,660 Y en esa etapa son cosas llamadas sprites, caracteres o 690 00:28:19,660 --> 00:28:21,030 objetos o entidades. 691 00:28:21,030 --> 00:28:23,320 Realmente no importa lo que piensa de ellos, pero 692 00:28:23,320 --> 00:28:26,740 cosas son programables, móviles, y en este caso, esto, 693 00:28:26,740 --> 00:28:30,730 programa que nuestro estudiante escribió tiene un par de pan de jengibre 694 00:28:30,730 --> 00:28:32,990 galletas, un par de galletas circulares, una gran cantidad de 695 00:28:32,990 --> 00:28:35,430 corazones, un montón de gafas. 696 00:28:38,170 --> 00:28:42,420 Debido a esto, él o ella es capaz de programar cada uno de los 697 00:28:42,420 --> 00:28:44,720 caracteres individuales por separado. 698 00:28:44,720 --> 00:28:46,480 >> Ahora bien, ¿qué significa para programar estos personajes? 699 00:28:46,480 --> 00:28:49,440 Bueno, déjame seguir adelante y hacer clic en esta cookie mano izquierda 700 00:28:49,440 --> 00:28:51,830 y desplácese hasta la parte superior izquierda aquí. 701 00:28:51,830 --> 00:28:53,670 En la parte superior izquierda de la pantalla ahora es el 702 00:28:53,670 --> 00:28:55,280 la llamada área de scripts. 703 00:28:55,280 --> 00:28:58,790 Esta es una especie de pizarra en blanco, en un principio, sobre el que puedo 704 00:28:58,790 --> 00:29:01,540 arrastrar y soltar las piezas del rompecabezas que, francamente, hacer 705 00:29:01,540 --> 00:29:03,020 exactamente lo que dicen. 706 00:29:03,020 --> 00:29:05,820 En la parte superior de la pila de pedazos del rompecabezas es la palabra 707 00:29:05,820 --> 00:29:09,340 Al hacer clic encima Bandera Verde, y si no te diste cuenta antes, 708 00:29:09,340 --> 00:29:12,300 la forma en que comenzó esa canción cookie fue hacer clic, literalmente, 709 00:29:12,300 --> 00:29:13,320 una bandera verde. 710 00:29:13,320 --> 00:29:16,590 Así que esa pieza del rompecabezas en la parte superior izquierda hay significa que cuando el 711 00:29:16,590 --> 00:29:19,780 clics humanos de la bandera verde, procedió a hacer 712 00:29:19,780 --> 00:29:21,110 las siguientes cosas. 713 00:29:21,110 --> 00:29:23,330 >> Ahora bien, ¿qué hicieron galleta proceder a hacer? 714 00:29:23,330 --> 00:29:25,810 No se sabe muy bien cómo interpretar esto todavía, pero la 715 00:29:25,810 --> 00:29:29,220 galleta aparentemente establezca su ranura a cero, entonces se esperaba 716 00:29:29,220 --> 00:29:31,740 tres segundos, luego cambió de grupo a uno, entonces 717 00:29:31,740 --> 00:29:33,590 Esperó un segundo, y luego cambió su 718 00:29:33,590 --> 00:29:35,100 ranura de nuevo a uno. 719 00:29:35,100 --> 00:29:37,373 Y luego esta realidad se parece un poco a un error, no debe 720 00:29:37,373 --> 00:29:39,440 tiene que cambiar su ranura y otra vez a menos que sea 721 00:29:39,440 --> 00:29:43,380 se cambia en otra parte, pero esta serie de medidas es lo que está 722 00:29:43,380 --> 00:29:46,800 dictando el comportamiento de esta cookie en particular. 723 00:29:46,800 --> 00:29:49,180 Así que en realidad no desplazarse hacia atrás y mirar algo 724 00:29:49,180 --> 00:29:50,430 tan complejo todavía. 725 00:29:50,430 --> 00:29:52,260 Déjenme seguir adelante e ir a Archivo, Nuevo, 726 00:29:52,260 --> 00:29:53,560 y obtener un borrón y cuenta nueva. 727 00:29:53,560 --> 00:29:56,590 >> Así que ahora, en efecto tener un área vacía guión, un escenario vacío, 728 00:29:56,590 --> 00:29:59,380 con nuestro duende rayado defecto, y en la parte superior izquierda 729 00:29:59,380 --> 00:30:01,670 en mi pantalla tengo la paleta de la totalidad de su 730 00:30:01,670 --> 00:30:03,400 piezas disponibles puzzle. 731 00:30:03,400 --> 00:30:06,300 Y no vamos a pasar casi que muchas de estas cosas 732 00:30:06,300 --> 00:30:09,470 hoy, porque, una vez más, la mayoría se explican por sí, pero lo haremos 733 00:30:09,470 --> 00:30:12,370 tratar de categorizar y destacar las similitudes 734 00:30:12,370 --> 00:30:15,380 con estos lenguajes futuros a los que vamos a bucear. 735 00:30:15,380 --> 00:30:19,180 Y aquí arriba a la izquierda es la primera Bandera Verde Cuando Seguido, 736 00:30:19,180 --> 00:30:22,170 así que voy a arrastrar esto aquí, alejar un poco. 737 00:30:22,170 --> 00:30:25,780 Y si hago clic en la bandera verde, nada sucede porque 738 00:30:25,780 --> 00:30:29,360 No he incluido ninguna lógica, cualquier declaración por así decirlo, a 739 00:30:29,360 --> 00:30:31,040 esa bandera verde, así que déjame ir hasta el 740 00:30:31,040 --> 00:30:32,500 categorías aquí. 741 00:30:32,500 --> 00:30:34,840 Actualmente estoy en la categoría de control. 742 00:30:34,840 --> 00:30:37,630 Estoy en vez de ir a bajar a la categoría Apariencia, y 743 00:30:37,630 --> 00:30:39,970 hay un montón de cosas aquí que digas Di, 744 00:30:39,970 --> 00:30:43,110 Piensa, cambio de color, vestuario Switch. 745 00:30:43,110 --> 00:30:44,860 >> Así que usted puede hacer cosas tontas con los trajes y 746 00:30:44,860 --> 00:30:45,870 sonidos y similares. 747 00:30:45,870 --> 00:30:49,970 Déjenme seguir adelante y decir Say y ahora note como me arrastre 748 00:30:49,970 --> 00:30:52,940 y colocar esta pieza del rompecabezas, va a querer aferrarse 749 00:30:52,940 --> 00:30:55,010 en la forma correspondiente. 750 00:30:55,010 --> 00:30:58,020 Así que cuando me vaya a continuación y soltar el ratón, se bloquea 751 00:30:58,020 --> 00:31:01,770 juntos, y ahora si me voy de aquí y haga clic en la bandera verde, 752 00:31:01,770 --> 00:31:05,910 el gato es de hecho saludar porque eso es lo que hay dentro 753 00:31:05,910 --> 00:31:06,980 de esta caja blanca. 754 00:31:06,980 --> 00:31:08,900 Pronto veremos que esta caja blanca es lo que se llama una 755 00:31:08,900 --> 00:31:10,250 argumento, o un parámetro. 756 00:31:10,250 --> 00:31:12,560 Es una forma de cambiar el comportamiento de, en este caso, una 757 00:31:12,560 --> 00:31:15,070 pieza del rompecabezas, pero si quiero decir exactamente lo que dije 758 00:31:15,070 --> 00:31:18,610 antes, decir hola, mundo, ahora puedo volver por aquí, 759 00:31:18,610 --> 00:31:21,990 Haga clic en Reproducir y "hola, mundo" es lo que se dice. 760 00:31:21,990 --> 00:31:24,340 >> Así que literalmente estamos programando ahora. 761 00:31:24,340 --> 00:31:27,540 No es todo lo que obliga de un programa, pero por lo menos 762 00:31:27,540 --> 00:31:30,140 que es un poco de algo más convincente que parece que, en 763 00:31:30,140 --> 00:31:31,300 A primera vista, así. 764 00:31:31,300 --> 00:31:34,190 Y podemos obtener muy rápidamente tanto más expresiva 765 00:31:34,190 --> 00:31:36,600 porque en Scratch, como en otros idiomas, no es todo 766 00:31:36,600 --> 00:31:40,010 tipo de declaraciones no, acaba de decir o imprimir algo, pero 767 00:31:40,010 --> 00:31:42,650 usted puede hacer cosas como espera, como acabamos de ver con 768 00:31:42,650 --> 00:31:44,240 la cookie, un cierto número de segundos. 769 00:31:44,240 --> 00:31:46,440 Puede reproducir sonidos en el entorno de Scratch sólo 770 00:31:46,440 --> 00:31:49,050 como se hace en una reproducción de sonido de ordenador normal del programa. 771 00:31:49,050 --> 00:31:52,440 Usted puede comprobar lo que se llaman expresiones booleanas. 772 00:31:52,440 --> 00:31:55,630 Así que ahora, vamos a empezar a añadir a nuestra caja de herramientas un poco de terminología 773 00:31:55,630 --> 00:31:58,840 que en realidad se refiere al ejemplo que José y yo 774 00:31:58,840 --> 00:32:00,080 aquí con los calcetines. 775 00:32:00,080 --> 00:32:03,040 Así que las declaraciones son declaraciones de hechos. 776 00:32:03,040 --> 00:32:04,160 Haga esto. 777 00:32:04,160 --> 00:32:07,370 Una directiva para el sprite, o me lo humano, para hacer algo. 778 00:32:07,370 --> 00:32:10,420 Una expresión booleana es algo que tiene un valor, un 779 00:32:10,420 --> 00:32:14,580 llamado valor de verdad, eso es un cero o uno, falsa o 780 00:32:14,580 --> 00:32:17,890 cierto, apagado o encendido, no o sí. 781 00:32:17,890 --> 00:32:19,730 Realmente no importa lo que pienses sobre esto, pero es un 782 00:32:19,730 --> 00:32:20,700 binario Estado. 783 00:32:20,700 --> 00:32:22,610 Como Nate discutido en vídeo del miércoles, dos 784 00:32:22,610 --> 00:32:23,570 cosas diferentes. 785 00:32:23,570 --> 00:32:25,740 >> Así que en Scratch, expresiones booleanas pasar a buscar 786 00:32:25,740 --> 00:32:28,910 como estos objetos azul aquí, y en este caso, la cuestión 787 00:32:28,910 --> 00:32:30,960 marca implica que usted está haciendo una pregunta. 788 00:32:30,960 --> 00:32:34,250 ¿Está el gato, o el duende, tocando el puntero del ratón? 789 00:32:34,250 --> 00:32:36,580 Así que esto es sólo un ejemplo de un bloque de Scratch que está pasando 790 00:32:36,580 --> 00:32:39,950 que nos permita comprobar si o no, es el ratón toca el 791 00:32:39,950 --> 00:32:40,790 sprite en la pantalla? 792 00:32:40,790 --> 00:32:42,840 Y esto puede ser útil si usted realmente quiere hacer las cosas 793 00:32:42,840 --> 00:32:43,820 con el ratón. 794 00:32:43,820 --> 00:32:46,470 Además de las expresiones booleanas, tenemos cosas 795 00:32:46,470 --> 00:32:49,110 como es el ratón hacia abajo, para que pueda detectar ese tipo de 796 00:32:49,110 --> 00:32:50,200 cuestionar también. 797 00:32:50,200 --> 00:32:52,590 Podemos hacer las matemáticas si usted quiere realmente, y hay 798 00:32:52,590 --> 00:32:55,170 usos realidad más convincentes para que este sólo pura de 799 00:32:55,170 --> 00:32:56,400 aritmética, como ya veremos. 800 00:32:56,400 --> 00:32:59,690 Pseudo aleatorio y hacer que su programa parecen pensar 801 00:32:59,690 --> 00:33:03,490 o se comportan de manera diferente sobre la base de unos valores aparentemente al azar, 802 00:33:03,490 --> 00:33:06,610 y luego tenemos cosas como expresiones booleanas como AND. 803 00:33:06,610 --> 00:33:08,830 Así que si usted realmente quiere comprobar dos valores, vamos a ver en 804 00:33:08,830 --> 00:33:11,110 Raspe que realmente podemos probar si esto es 805 00:33:11,110 --> 00:33:13,190 cierto y esto es cierto. 806 00:33:13,190 --> 00:33:15,300 Por ejemplo, en el caso de mis calcetines, que podría haber en el 807 00:33:15,300 --> 00:33:19,045 muy extremo preguntado si calcetín izquierdo está encendido y calcetín derecho 808 00:33:19,045 --> 00:33:20,610 está encendido, deje de hacerlo. 809 00:33:20,610 --> 00:33:22,710 Está todo hecho para el día, así que sería una 810 00:33:22,710 --> 00:33:24,300 oportunidad para que. 811 00:33:24,300 --> 00:33:27,740 >> Así que vamos a seguir adelante y tratar de reconstruir algunas de ellas junto 812 00:33:27,740 --> 00:33:31,570 y entrar en un par de ejemplos más 813 00:33:31,570 --> 00:33:32,610 convincente que esta. 814 00:33:32,610 --> 00:33:35,770 Así que déjame ir delante aquí y abrir algunos de los ejemplos 815 00:33:35,770 --> 00:33:38,350 que siempre estará en la página web de la asignatura, así, y 816 00:33:38,350 --> 00:33:39,870 abrir hello2. 817 00:33:39,870 --> 00:33:42,910 Así que en hello2 aquí, tenemos un programa que se está haciendo un poco 818 00:33:42,910 --> 00:33:46,290 cosas, pero no lo hace tan eficazmente como lo haríamos. 819 00:33:46,290 --> 00:33:48,900 Así que aquí se dice "hola, mundo" durante un segundo y luego espera 820 00:33:48,900 --> 00:33:49,450 por un segundo. 821 00:33:49,450 --> 00:33:51,720 Y lo hace de nuevo, y luego lo hace de nuevo. 822 00:33:51,720 --> 00:33:55,530 Así que si hago clic en la bandera verde, Scratch dice: "Hola, mundo. 823 00:33:55,530 --> 00:33:57,160 ¡Hola, mundo. 824 00:33:57,160 --> 00:34:00,080 ¡Hola, mundo. "Y esta es, obviamente, ahora candidato para 825 00:34:00,080 --> 00:34:00,860 mejora. 826 00:34:00,860 --> 00:34:03,070 >> ¿Cuál es la mejora marginal, con suerte, podemos 827 00:34:03,070 --> 00:34:07,610 ahora si hacer scratch apoya el concepto? 828 00:34:07,610 --> 00:34:08,310 Una especie de bucle. 829 00:34:08,310 --> 00:34:10,960 Una especie de repetición, ahora, estaría bien, así que permítanme 830 00:34:10,960 --> 00:34:11,920 realmente intentarlo. 831 00:34:11,920 --> 00:34:13,870 Permítanme realmente ir y seguir esto. 832 00:34:13,870 --> 00:34:16,449 Así que aviso se puede desprender bloques tan fácilmente como usted puede agregar a 833 00:34:16,449 --> 00:34:17,420 adjuntarlos. 834 00:34:17,420 --> 00:34:20,730 Déjame ir bajo control, desplácese hasta aquí, y de hecho, 835 00:34:20,730 --> 00:34:24,000 hay esta pieza del rompecabezas aquí, repetida y siempre y 836 00:34:24,000 --> 00:34:24,870 Siempre If. 837 00:34:24,870 --> 00:34:28,500 Así que hay un número de maneras de expresar construcciones de bucles 838 00:34:28,500 --> 00:34:29,340 en Scratch. 839 00:34:29,340 --> 00:34:31,730 La que probablemente quiere aquí no es para siempre, porque sólo 840 00:34:31,730 --> 00:34:34,639 desea que esto ocurra tres veces, pero Repita probablemente. 841 00:34:34,639 --> 00:34:38,449 Así que me arrastra Repita hasta aquí, arrastrar y soltar, y 842 00:34:38,449 --> 00:34:42,530 ahora en lugar de decir "Hola, mundo" en tres ocasiones separadas, 843 00:34:42,530 --> 00:34:44,230 déjame arrastrar esta pieza del rompecabezas aquí. 844 00:34:44,230 --> 00:34:46,610 Y a pesar de que no parece encajar, el programa es inteligente 845 00:34:46,610 --> 00:34:48,920 lo suficiente como para darse cuenta de que crecerá para llenar, así que es el 846 00:34:48,920 --> 00:34:51,270 formas que la materia y no el tamaño absoluto. 847 00:34:51,270 --> 00:34:54,030 Vamos a cambiar la repetición a tres, y ahora me deja ir 848 00:34:54,030 --> 00:34:56,560 adelante y arrastrar espere un segundo en allí también. 849 00:34:56,560 --> 00:34:59,220 Va a romper adentro también, y por eso ahora me voy a arrastrar 850 00:34:59,220 --> 00:35:01,370 estos chicos de aquí y simplemente tirarlos a la basura porque 851 00:35:01,370 --> 00:35:02,710 no los necesita más. 852 00:35:02,710 --> 00:35:05,920 Permítanme alejar la imagen y haga clic en la bandera verde ahora, y tenemos 853 00:35:05,920 --> 00:35:09,600 el mismo programa, pero, como yo predije antes, mejor 854 00:35:09,600 --> 00:35:12,200 diseñado porque se puede imaginar lo mal que este programa 855 00:35:12,200 --> 00:35:14,410 tendría, sin duda estéticamente, si tiene que 856 00:35:14,410 --> 00:35:16,640 empezar a copiar y pegar, copiar y pegar, o 857 00:35:16,640 --> 00:35:20,020 arrastrar y soltar las cosas darn mismos una y otra vez. 858 00:35:20,020 --> 00:35:22,260 >> Ahora, simplemente diciendo cosas en la pantalla, la impresión al 859 00:35:22,260 --> 00:35:25,350 pantalla, en realidad no es tan emocionante, así que vamos a abrir un 860 00:35:25,350 --> 00:35:26,580 varianza tercero aquí. 861 00:35:26,580 --> 00:35:29,810 Y ahora, como se verá, este da gusto ser molesto - 862 00:35:29,810 --> 00:35:30,850 [MEOW] 863 00:35:30,850 --> 00:35:31,940 David Malan: - pero también es algo lindo. 864 00:35:31,940 --> 00:35:35,244 [MEOW] 865 00:35:35,244 --> 00:35:37,460 David Malan: Bueno, mejor así, y sin duda podemos usar esa 866 00:35:37,460 --> 00:35:41,060 misma transición de fragmentación esto en un bucle 867 00:35:41,060 --> 00:35:43,520 estructura, pero vamos a hacerlo más interesante aún. 868 00:35:43,520 --> 00:35:47,480 >> Déjenme seguir adelante y abrir una variación cuarto aquí, donde 869 00:35:47,480 --> 00:35:50,020 tomar las cosas un paso más allá. 870 00:35:50,020 --> 00:35:54,450 Así que de acuerdo con esto, tonto aunque esto es en primera 871 00:35:54,450 --> 00:35:58,530 mirada, lo que este programa va a hacer? 872 00:35:58,530 --> 00:35:59,790 Va a maullar una vez. 873 00:35:59,790 --> 00:36:00,160 ¿Por qué? 874 00:36:00,160 --> 00:36:03,340 Bueno, uno es, hasta donde yo sé, siempre inferior a dos. 875 00:36:03,340 --> 00:36:04,890 No hay noción de aleatoriedad aquí. 876 00:36:04,890 --> 00:36:07,240 Literalmente, he codificado uno y dos, pero este es un 877 00:36:07,240 --> 00:36:10,370 ejemplo ahora de utilizar realmente una expresión booleana. 878 00:36:10,370 --> 00:36:13,650 Al igual como lo hizo José en su pseudocódigo, la sangría SI 879 00:36:13,650 --> 00:36:17,170 a encontrar calcetines a juego, haz lo siguiente, aquí tenemos 880 00:36:17,170 --> 00:36:19,750 una expresión si uno es menor de dos THEN - 881 00:36:19,750 --> 00:36:21,820 y, de hecho, incluso tenemos un poco de sangría, 882 00:36:21,820 --> 00:36:24,480 donde el morado es un poco sangría a la derecha - 883 00:36:24,480 --> 00:36:26,600 Entonces usted va a jugar el maullido de sonido. 884 00:36:26,600 --> 00:36:30,060 Ahora, en este caso, que uno es siempre inferior a dos, por lo que este 885 00:36:30,060 --> 00:36:31,970 es una especie de pérdida de la condición. 886 00:36:31,970 --> 00:36:34,890 Pero vamos a ser capaces, como veremos, para tapar otras cosas en 887 00:36:34,890 --> 00:36:37,420 estos marcadores de posición donde uno y dos son ahora. 888 00:36:37,420 --> 00:36:41,340 Así que vamos a avanzar ahora al ejemplo cinco de estos varios 889 00:36:41,340 --> 00:36:45,850 saludos y mirada a lo que este programa va a hacer. 890 00:36:45,850 --> 00:36:48,710 >> Así que ahora, en una sentencia de Inglés, ¿cómo funciona esto 891 00:36:48,710 --> 00:36:51,460 programa de comportarse? 892 00:36:51,460 --> 00:36:52,950 AUDIENCIA: Meows mitad del tiempo. 893 00:36:52,950 --> 00:36:55,380 David Malan: la mitad de Meow parte del tiempo, por lo que esta es una forma de 894 00:36:55,380 --> 00:36:56,700 transmitir una idea muy simple. 895 00:36:56,700 --> 00:36:59,400 A pesar de que se esté utilizando algunas desigualdades aquí 896 00:36:59,400 --> 00:37:01,860 en algunos números, esto es en realidad un programática 897 00:37:01,860 --> 00:37:09,490 Así, de manera precisa, de decir si la moneda sale cara, vaya 898 00:37:09,490 --> 00:37:10,270 adelante y maullar. 899 00:37:10,270 --> 00:37:13,540 O a la inversa, si la moneda sale cruz, no miau. 900 00:37:13,540 --> 00:37:15,110 Y en este caso, ¿cómo expresar eso? 901 00:37:15,110 --> 00:37:17,950 Vamos a escoger un número al azar entre 1 y 10, y si eso 902 00:37:17,950 --> 00:37:21,110 número es inferior a 6, adelante, miau. 903 00:37:21,110 --> 00:37:22,260 ¿Y cómo llegó esto aquí? 904 00:37:22,260 --> 00:37:24,620 Bueno, de nuevo, sólo la cuenta de arrastrar y soltar y 905 00:37:24,620 --> 00:37:26,190 cosas encaje. 906 00:37:26,190 --> 00:37:28,020 >> Así que ahora vamos a ver si esta aleatoriedad funciona. 907 00:37:28,020 --> 00:37:29,845 Déjenme seguir adelante y haga clic en la bandera verde. 908 00:37:29,845 --> 00:37:31,120 [MEOW] 909 00:37:31,120 --> 00:37:32,000 David Malan: Muy bien. 910 00:37:32,000 --> 00:37:33,430 [MEOW] 911 00:37:33,430 --> 00:37:35,260 David Malan: Muy bien. 912 00:37:35,260 --> 00:37:38,510 Bueno, bueno, así que nos dieron cabezas, cabezas, colas eficaz. 913 00:37:38,510 --> 00:37:39,295 Tails. 914 00:37:39,295 --> 00:37:39,590 [MEOW] 915 00:37:39,590 --> 00:37:41,829 David Malan: Heads. 916 00:37:41,829 --> 00:37:43,220 [MEOW] 917 00:37:43,220 --> 00:37:44,040 David Malan: Excelente. 918 00:37:44,040 --> 00:37:46,220 Siempre es difícil cuando sólo estadísticamente se obtiene una mala 919 00:37:46,220 --> 00:37:48,510 ejecutar, y es todos los jefes, y el programa en realidad no 920 00:37:48,510 --> 00:37:49,230 trabajar como era de esperar. 921 00:37:49,230 --> 00:37:51,210 Pero esta vez, funcionó, y parece que tenemos, si lo hiciéramos 922 00:37:51,210 --> 00:37:53,830 este número infinito de veces, las probabilidades del 50%. 923 00:37:53,830 --> 00:37:56,950 Ahora, de nuevo, no todo es tan interesante, justo lo que los gatos 924 00:37:56,950 --> 00:37:59,840 miau, así que vamos a ver si podemos avanzar en esto un poco más lejos 925 00:37:59,840 --> 00:38:01,820 aquí en la sexta versión. 926 00:38:01,820 --> 00:38:05,620 Así que ahora, tenemos versión realmente molesto - 927 00:38:05,620 --> 00:38:08,215 [Maullidos cada pocos segundos] 928 00:38:08,215 --> 00:38:10,640 David Malan: - y esto es lo que se conoce, en general, como un 929 00:38:10,640 --> 00:38:11,670 bucle infinito. 930 00:38:11,670 --> 00:38:14,190 >> Así bucle infinito en este caso se siente mal. 931 00:38:14,190 --> 00:38:16,970 Es, definitivamente, va a empezar a sonar mal, y sin embargo infinito 932 00:38:16,970 --> 00:38:18,740 lazos no son siempre malas. 933 00:38:18,740 --> 00:38:20,910 ¿Puede pensar en el contexto de programas de ordenador en el que había 934 00:38:20,910 --> 00:38:22,910 en realidad quieren un bucle infinito? 935 00:38:22,910 --> 00:38:23,691 ¿Sí? 936 00:38:23,691 --> 00:38:26,520 AUDIENCIA: Si usted quiere comprobar una condición. 937 00:38:26,520 --> 00:38:28,240 David Malan: Está bien, si desea mantener el control de una enfermedad? 938 00:38:28,240 --> 00:38:29,190 ¿Cómo qué? 939 00:38:29,190 --> 00:38:30,440 AUDIENCIA: [inaudible] 940 00:38:36,060 --> 00:38:38,170 David Malan: Bueno, bueno, así que si tienes algún programa, algún 941 00:38:38,170 --> 00:38:40,440 tipo de cosas domótica, en la que desea constantemente 942 00:38:40,440 --> 00:38:41,980 monitor es algo así. 943 00:38:41,980 --> 00:38:42,850 ¿Son las luces encendidas? 944 00:38:42,850 --> 00:38:45,020 ¿Son las luces encendidas porque tal vez usted tiene un temporizador y 945 00:38:45,020 --> 00:38:47,360 desea que se apaga, es posible que tenga que hacer algo 946 00:38:47,360 --> 00:38:48,290 una y otra vez. 947 00:38:48,290 --> 00:38:50,540 Y de hecho, hablando de los temporizadores, cualquiera de ustedes que han 948 00:38:50,540 --> 00:38:53,100 relojes en tu ordenador o relojes digitales, es una 949 00:38:53,100 --> 00:38:54,210 bucle infinito. 950 00:38:54,210 --> 00:38:56,980 Se continúa actualizando el tiempo porque es constantemente 951 00:38:56,980 --> 00:38:59,750 la comprobación y el control y la comprobación tiene el tiempo cambiado, 952 00:38:59,750 --> 00:39:01,000 y si es así, oh, mi dios. 953 00:39:03,670 --> 00:39:04,740 El reloj finalmente ha cambiado. 954 00:39:04,740 --> 00:39:07,020 Es necesario mostrar ese valor para usted. 955 00:39:07,020 --> 00:39:10,880 Así, mientras la mayoría de los ciclos infinitos de tiempo son un error, 956 00:39:10,880 --> 00:39:13,950 o por lo menos una decisión de diseño pobre, a veces lo hacen 957 00:39:13,950 --> 00:39:14,785 tienen su valor. 958 00:39:14,785 --> 00:39:18,170 >> Bueno, vamos a seguir avanzando para hello7. 959 00:39:18,170 --> 00:39:20,410 Así que ahora el programa se ponen un poco más interactivo. 960 00:39:20,410 --> 00:39:23,120 Permítanme hacer un zoom aquí, de nuevo, esto es lo que es bueno 961 00:39:23,120 --> 00:39:23,640 acerca de Scratch. 962 00:39:23,640 --> 00:39:26,760 Y vamos a usarlo para que quede claro, Scratch, sólo hoy y en 963 00:39:26,760 --> 00:39:27,780 problema la semana que viene configurado. 964 00:39:27,780 --> 00:39:31,920 Pero el lunes, nos sumergimos en C. En este programa, lo hace, 965 00:39:31,920 --> 00:39:33,190 siempre, el siguiente. 966 00:39:33,190 --> 00:39:35,890 SI tocar el puntero del ratón - ahora, ¿quién es el 967 00:39:35,890 --> 00:39:36,420 contexto aquí? 968 00:39:36,420 --> 00:39:39,670 Bueno, y observe que quien selecciona aquí abajo, en el fondo 969 00:39:39,670 --> 00:39:43,060 derecho es el gato, sprite, así que estas secuencias de comandos, esto 970 00:39:43,060 --> 00:39:45,720 programa, se aplica a él específicamente. 971 00:39:45,720 --> 00:39:48,950 Así que si el gato está en contacto con el puntero del ratón, entonces va 972 00:39:48,950 --> 00:39:51,350 para jugar a este y esperar dos segundos, y 973 00:39:51,350 --> 00:39:53,030 repita hasta la saciedad. 974 00:39:53,030 --> 00:39:55,360 >> Así que vamos a seguir adelante y llegar a jugar. 975 00:39:55,360 --> 00:39:57,580 No pasa nada, pero si quiero acariciar al 976 00:39:57,580 --> 00:39:59,310 gato ahora, yo simplemente puedo. 977 00:39:59,310 --> 00:40:01,130 [MEOW] 978 00:40:01,130 --> 00:40:02,244 David Malan: Adorable. 979 00:40:02,244 --> 00:40:05,956 [MEOW] 980 00:40:05,956 --> 00:40:08,750 David Malan: Bueno, menos molesto, pero también consigue aburrido, 981 00:40:08,750 --> 00:40:11,480 así que vamos a seguir adelante y ver si no podemos inyectar 982 00:40:11,480 --> 00:40:12,460 una lógica poco más. 983 00:40:12,460 --> 00:40:14,300 Ese fue el ejemplo de siete. 984 00:40:14,300 --> 00:40:16,090 >> Aquí en el ejemplo ocho, vamos a 985 00:40:16,090 --> 00:40:18,670 introducir una condición ELSE. 986 00:40:18,670 --> 00:40:21,440 Tanto literal como un tenedor en la carretera, en la que se puede ir 987 00:40:21,440 --> 00:40:24,260 hacia la izquierda o usted puede ir a la derecha, una condición en la programación 988 00:40:24,260 --> 00:40:28,120 lenguaje como Scratch, o como veremos C, puede permitir 989 00:40:28,120 --> 00:40:32,230 ir en una dirección u otra a través de un IF ELSE construir. 990 00:40:32,230 --> 00:40:35,160 Así que, literalmente, SI tocar puntero del ratón, este 991 00:40:35,160 --> 00:40:38,680 se reproducirá un sonido, de lo contrario va a jugar este otro 992 00:40:38,680 --> 00:40:39,800 sonido, miau. 993 00:40:39,800 --> 00:40:42,510 Ahora, si usted puede deducir del nombre de estos sonidos, puede 994 00:40:42,510 --> 00:40:45,310 probablemente adivinar lo que este programa está destinado a evocar 995 00:40:45,310 --> 00:40:46,250 la idea de. 996 00:40:46,250 --> 00:40:48,742 Este gato está maullando feliz. 997 00:40:48,742 --> 00:40:49,230 [MEOW] 998 00:40:49,230 --> 00:40:51,410 David Malan: Felizmente, pero no 999 00:40:51,410 --> 00:40:52,926 bastante como para ser tocado. 1000 00:40:52,926 --> 00:40:54,550 [ROARS] 1001 00:40:54,550 --> 00:40:57,500 David Malan: Así que ahora tenemos un gato que va a gritar en usted. 1002 00:40:57,500 --> 00:41:00,570 >> Bueno, bueno, un último ejemplo con los gatos aquí, y 1003 00:41:00,570 --> 00:41:02,920 vamos versión abierta de nueve de esto aquí. 1004 00:41:02,920 --> 00:41:06,190 Así que ahora, tenemos el siguiente sonido más molesto que he podido 1005 00:41:06,190 --> 00:41:11,630 encontrar, así que tenemos una morsa o león marino que aquí va a 1006 00:41:11,630 --> 00:41:13,222 haga lo siguiente. 1007 00:41:13,222 --> 00:41:20,870 [Foca] 1008 00:41:20,870 --> 00:41:23,310 David Malan: Bueno, esto continuará hasta que averiguar cómo 1009 00:41:23,310 --> 00:41:24,640 este programa funciona. 1010 00:41:24,640 --> 00:41:28,560 Así que esta vez, este animal tiene dos guiones, y es lo que 1011 00:41:28,560 --> 00:41:31,050 interesante aquí es que estos scripts se va a ejecutar 1012 00:41:31,050 --> 00:41:32,260 en paralelo. 1013 00:41:32,260 --> 00:41:35,340 Por lo tanto, ya que ambas comienzan con una bandera verde se hace clic, 1014 00:41:35,340 --> 00:41:38,080 es como ir de esta manera, y ambos programas se inician de ejecutarlo 1015 00:41:38,080 --> 00:41:41,370 una vez incluso si están bucle para siempre. 1016 00:41:41,370 --> 00:41:44,420 Así que en el script de alto, tengo un poco de lógica. 1017 00:41:44,420 --> 00:41:49,275 ¿Qué funcionalidades que proporcionan hasta allí? 1018 00:41:49,275 --> 00:41:50,740 [Foca] 1019 00:41:50,740 --> 00:41:51,670 AUDIENCIA: [inaudible] 1020 00:41:51,670 --> 00:41:53,295 David Malan: Si se trata de qué? 1021 00:41:53,295 --> 00:41:53,760 [Foca] 1022 00:41:53,760 --> 00:41:55,852 AUDIENCIA: Si silencia a cero, se va a seguir jugando el 1023 00:41:55,852 --> 00:41:58,410 sonar. [Foca] 1024 00:41:58,410 --> 00:41:58,940 David Malan: Está bien, está bien. 1025 00:41:58,940 --> 00:42:01,960 Así que si silenciado, sea lo que sea, esa cosa naranja es cero, 1026 00:42:01,960 --> 00:42:05,370 A continuación, reproducir el sonido de lobos marinos y pensar "Oh, 1027 00:42:05,370 --> 00:42:06,770 hola, "durante dos segundos. 1028 00:42:06,770 --> 00:42:09,380 Ahora, yo no sé lo que es silenciado, pero cero evoca la 1029 00:42:09,380 --> 00:42:11,230 idea de falso o apagado. 1030 00:42:11,230 --> 00:42:14,490 Así que si silenciada es falso, por lo que si no está silenciado, 1031 00:42:14,490 --> 00:42:15,660 mantener la reproducción del sonido. 1032 00:42:15,660 --> 00:42:17,350 De acuerdo, bien, ¿cómo podemos desactivar esta cosa? 1033 00:42:17,350 --> 00:42:19,310 >> Bueno, echemos un vistazo a la segunda secuencia de comandos ahí abajo. 1034 00:42:19,310 --> 00:42:22,130 El segundo guión dice establecer silenciado a cero. 1035 00:42:22,130 --> 00:42:25,180 Observe también es naranja, así que lo que hace es que los arañazos colores 1036 00:42:25,180 --> 00:42:27,400 bloques en el mismo tono que si es una especie 1037 00:42:27,400 --> 00:42:28,850 de lógicamente relacionados. 1038 00:42:28,850 --> 00:42:32,850 Así como recargar silenciado era de color naranja, por lo que se silencia aquí 1039 00:42:32,850 --> 00:42:34,060 mencionado en el bloque naranja. 1040 00:42:34,060 --> 00:42:36,170 Pero esto es una asignación de variables, por lo que al igual que en 1041 00:42:36,170 --> 00:42:39,170 álgebra, tienes x e y y z, en la programación tiene 1042 00:42:39,170 --> 00:42:41,440 variables, pero son generalmente - 1043 00:42:41,440 --> 00:42:42,580 hagamos una pausa por un momento y figura como 1044 00:42:42,580 --> 00:42:44,280 para detener esta ladridos. 1045 00:42:44,280 --> 00:42:45,480 ¿Cómo puedo hacer esto? 1046 00:42:45,480 --> 00:42:46,480 [Foca] 1047 00:42:46,480 --> 00:42:47,920 David Malan: Muy bien. 1048 00:42:47,920 --> 00:42:49,490 Se detuvo. Bien. 1049 00:42:49,490 --> 00:42:52,230 >> Así como en el álgebra tiene variables x, y, z, pero en 1050 00:42:52,230 --> 00:42:55,260 programación, que tiene variables como x, y, y z es generalmente 1051 00:42:55,260 --> 00:42:57,330 mal visto, porque no son del todo expresivo. 1052 00:42:57,330 --> 00:43:00,070 Ellos no tienen ningún significado semántico alguno, por lo que en la mayoría 1053 00:43:00,070 --> 00:43:02,110 lenguajes de programación, las variables pueden tener plena 1054 00:43:02,110 --> 00:43:05,270 nombres de pleno derecho o palabras o frases similares en silencio, para decir 1055 00:43:05,270 --> 00:43:06,030 lo que hacen. 1056 00:43:06,030 --> 00:43:09,380 Así que este segundo script también se escucha siempre, y dijo que 1057 00:43:09,380 --> 00:43:12,100 si la tecla, el espacio tecla del teclado, es 1058 00:43:12,100 --> 00:43:13,370 presionado, signo de interrogación. 1059 00:43:13,370 --> 00:43:16,300 Así que hay una condición con una expresión booleana que es 1060 00:43:16,300 --> 00:43:19,010 va a responder a una pregunta sea verdad o falso, 1061 00:43:19,010 --> 00:43:22,880 entonces tengo dentro de ella si la tecla de espacio se presiona y 1062 00:43:22,880 --> 00:43:28,020 SI apagado es cero, ajuste silenciado a uno, ELSE establecer silenciado a cero. 1063 00:43:28,020 --> 00:43:30,510 Así que este otro tenedor en la carretera, y observe cómo he 1064 00:43:30,510 --> 00:43:33,500 anidar las dos condiciones IF, es una manera de comprobar es la 1065 00:43:33,500 --> 00:43:36,610 Barra espaciadora presionada porque si es así, yo tampoco quiero ir esta 1066 00:43:36,610 --> 00:43:38,000 o esa manera. 1067 00:43:38,000 --> 00:43:40,210 ¿Y cómo invertir el valor de apagado? 1068 00:43:40,210 --> 00:43:41,410 Tengo que comprobar es cero? 1069 00:43:41,410 --> 00:43:45,890 Si es así, lo convierten en uno, de lo que sea cero para alternar tanto 1070 00:43:45,890 --> 00:43:47,670 sus dos estados. 1071 00:43:47,670 --> 00:43:50,030 >> Muy bien, así que tenemos a continuación algunas de estas fundamental 1072 00:43:50,030 --> 00:43:50,540 construcciones. 1073 00:43:50,540 --> 00:43:52,810 Tenemos expresiones booleanas, y se dan cuenta, también, estos son 1074 00:43:52,810 --> 00:43:54,050 no todo lo que no familiar. 1075 00:43:54,050 --> 00:43:56,730 De hecho, aquí está una captura de pantalla rápida de su curso de Harvard CS50 1076 00:43:56,730 --> 00:43:59,740 herramienta de compras, y cualquier sitio web por ahí que tiene casillas de verificación 1077 00:43:59,740 --> 00:44:02,420 y menús desplegables que realmente, todo este tiempo, ha sido el uso 1078 00:44:02,420 --> 00:44:03,430 Expresiones booleanas. 1079 00:44:03,430 --> 00:44:05,760 En este caso aquí, si hace clic en la casilla de verificación junto a 1080 00:44:05,760 --> 00:44:08,620 Por supuesto mayor que o igual a 4,5, o el siguiente al mismo 1081 00:44:08,620 --> 00:44:11,200 facultad, se especifica una expresión booleana. 1082 00:44:11,200 --> 00:44:14,780 Muéstrame los cursos para los que dicha expresión es verdadera. 1083 00:44:14,780 --> 00:44:17,080 O a la derecha, no entre en conflicto con los cursos que estoy 1084 00:44:17,080 --> 00:44:20,440 adoptar, si es que se comprueba, entonces sí, usted quiere comprobar 1085 00:44:20,440 --> 00:44:22,890 esa condición, más que quieras ignorarlo. 1086 00:44:22,890 --> 00:44:25,170 Así expresiones booleanas son una especie de todo, pero cuando 1087 00:44:25,170 --> 00:44:28,080 los ponemos en condiciones, si las condiciones de SI, SI 1088 00:44:28,080 --> 00:44:30,480 Vigilara, o incluso podemos simular más profundo 1089 00:44:30,480 --> 00:44:32,830 niveles, IF ELSE IF ELSE - 1090 00:44:32,830 --> 00:44:34,430 así que eso es una especie de estado ternario. 1091 00:44:34,430 --> 00:44:36,920 Usted puede ir de esta manera o de esta manera o de esta manera. 1092 00:44:36,920 --> 00:44:39,680 Podemos mantener las cosas de anidación para ir en direcciones diferentes. 1093 00:44:39,680 --> 00:44:41,800 >> Así scratch tiene estos lazos, como siempre. 1094 00:44:41,800 --> 00:44:44,750 Tiene estas características como la repetición 10, algunos 1095 00:44:44,750 --> 00:44:46,260 número finito de veces. 1096 00:44:46,260 --> 00:44:49,040 Tenemos la capacidad actual para definir las variables, por lo que en este caso 1097 00:44:49,040 --> 00:44:51,810 He señalado, por ejemplo, a medias llamados variables. 1098 00:44:51,810 --> 00:44:54,340 He inicializado a 0, y eso es otra dirección 1099 00:44:54,340 --> 00:44:56,940 que podríamos haber tomado aquí con José, el cual tal vez 1100 00:44:56,940 --> 00:45:00,150 sólo un seguimiento de cuántos calcetines que tengo en y terminar 1101 00:45:00,150 --> 00:45:03,490 el programa cuando el valor de esa variable es 2. 1102 00:45:03,490 --> 00:45:05,660 Eso sería otra manera de una especie de generalización que 1103 00:45:05,660 --> 00:45:08,820 problema y hacer algo una y otra vez. 1104 00:45:08,820 --> 00:45:12,080 Bueno, vamos a seguir adelante y ahora introducir un par de cosas nuevas. 1105 00:45:12,080 --> 00:45:14,100 Así que aquellos de ustedes que tienen experiencia previa de programación se 1106 00:45:14,100 --> 00:45:17,120 Sabemos que muchos de los idiomas tienen matrices o vectores o 1107 00:45:17,120 --> 00:45:19,970 listas y, de hecho, Scratch tiene algo como esto, también. 1108 00:45:19,970 --> 00:45:22,510 Así que vamos a ver si no podemos llevar las cosas al siguiente nivel aquí. 1109 00:45:22,510 --> 00:45:24,920 Si tiene la posibilidad, ahora, con estas piezas del rompecabezas para 1110 00:45:24,920 --> 00:45:29,080 añadir algo, como una palabra o un número, una variable, no puedo 1111 00:45:29,080 --> 00:45:30,550 empiezan a acumular las cosas. 1112 00:45:30,550 --> 00:45:33,630 Y esto es en realidad bastante a propósito para cosas como juegos, 1113 00:45:33,630 --> 00:45:35,810 juegos de rol donde eres un poco por los alrededores 1114 00:45:35,810 --> 00:45:38,600 un mundo de fantasía recogiendo cosas, recoger las cosas, 1115 00:45:38,600 --> 00:45:39,900 ganar puntos, o similares. 1116 00:45:39,900 --> 00:45:42,310 Es posible que desee hacer un seguimiento de algún tipo de inventario, y 1117 00:45:42,310 --> 00:45:45,180 de hecho, eso es lo que uno de nuestros antiguos alumnos aquí hizo con 1118 00:45:45,180 --> 00:45:47,750 algo que se llama Fruitcraft RPG. 1119 00:45:47,750 --> 00:45:51,820 >> Así que permítanme seguir adelante y abrir esta cosa aquí, y en 1120 00:45:51,820 --> 00:45:56,260 Fruitcraft, tenemos este mundo hacia la parte superior. 1121 00:45:56,260 --> 00:45:58,820 Así que permítanme seguir adelante y haga clic en la bandera verde. 1122 00:45:58,820 --> 00:46:01,040 Aviso en la parte superior izquierda es una especie de inventario. 1123 00:46:01,040 --> 00:46:04,110 Eso es implementado en Scratch como lo que vamos a llamar a una matriz o 1124 00:46:04,110 --> 00:46:06,890 una lista, y ahora tenemos esta pequeña animación. 1125 00:46:06,890 --> 00:46:10,440 Así que cuando empezamos antes con esta historia de amor cookie, 1126 00:46:10,440 --> 00:46:13,320 y luego avanzó a los gatos y leones marinos, ahora podemos tener 1127 00:46:13,320 --> 00:46:15,100 lo que es aún más interactivo. 1128 00:46:15,100 --> 00:46:18,250 Y este tipo azul poco, puedo empezar a moverse por su 1129 00:46:18,250 --> 00:46:19,500 pequeño hogar aquí. 1130 00:46:19,500 --> 00:46:22,570 Así que parece que tiene una salida de aquí, así que estoy usando 1131 00:46:22,570 --> 00:46:25,260 las teclas de flechas, arriba, abajo, izquierda, derecha. 1132 00:46:25,260 --> 00:46:28,370 Y ahora estoy fuera, así que es lo que tenemos aquí. 1133 00:46:28,370 --> 00:46:30,920 Parece que una naranja, y, de hecho, tan pronto como me toque la 1134 00:46:30,920 --> 00:46:33,110 color naranja, se dejó caer en mi inventario. 1135 00:46:33,110 --> 00:46:35,640 Si me voy de aquí a las cerezas, ahora tengo algo 1136 00:46:35,640 --> 00:46:36,760 más en mi inventario. 1137 00:46:36,760 --> 00:46:39,100 Y esto es todo bonito y lindo, pero pensar en cómo, ahora, en este 1138 00:46:39,100 --> 00:46:39,840 se implementa. 1139 00:46:39,840 --> 00:46:42,490 Bueno, tenemos esta noción de una lista, y eso es al parecer un 1140 00:46:42,490 --> 00:46:45,470 pieza del rompecabezas que usted acaba de decir lo que quiere añadir a la misma, añadir 1141 00:46:45,470 --> 00:46:46,950 naranja, añadir las cerezas. 1142 00:46:46,950 --> 00:46:48,540 Ahora, ¿qué es este chico poco de azul haciendo? 1143 00:46:48,540 --> 00:46:49,810 Bueno, él es un sprite. 1144 00:46:49,810 --> 00:46:52,190 Y es de suponer, la naranja y las cerezas - 1145 00:46:52,190 --> 00:46:54,140 ellos mismos eran sprites separados. 1146 00:46:54,140 --> 00:46:56,980 Y el uso de las condiciones en las expresiones booleanas, las 1147 00:46:56,980 --> 00:47:00,530 estudiante era probablemente capaz de expresar si es hombre azul 1148 00:47:00,530 --> 00:47:04,590 cerezas tocar a continuación, añadir las cerezas de palabras para su 1149 00:47:04,590 --> 00:47:07,890 inventario, y luego también ocultar el sprite cereza. 1150 00:47:07,890 --> 00:47:10,600 Así que debajo del capó, que probablemente todavía es una cereza 1151 00:47:10,600 --> 00:47:11,350 Sprite allí. 1152 00:47:11,350 --> 00:47:14,160 Hemos contado a llegar a ser efectivamente invisible. 1153 00:47:14,160 --> 00:47:16,340 >> Ahora, si me sigues andando por aquí, también podemos hacerlo 1154 00:47:16,340 --> 00:47:19,150 Lo proximal, donde puedo ir y leer el cartel. 1155 00:47:19,150 --> 00:47:23,170 Así que si hombre azul tocando signo, podemos tener este bloque Say 1156 00:47:23,170 --> 00:47:26,455 al igual que el gato nos habló en palabras, hola, antes, "Got 1157 00:47:26,455 --> 00:47:26,880 un poco de fruta? 1158 00:47:26,880 --> 00:47:29,290 Lleve al lugar fruto. "Muy bien, ahora lo que, al parecer, 1159 00:47:29,290 --> 00:47:30,550 Tengo mis instrucciones. 1160 00:47:30,550 --> 00:47:33,050 Yo puedo ir de aquí hasta el lugar de frutas, alinear a mí mismo 1161 00:47:33,050 --> 00:47:33,740 con la puerta. 1162 00:47:33,740 --> 00:47:35,390 Ahora, yo estoy aquí. 1163 00:47:35,390 --> 00:47:38,120 Puedo ir hasta el hombre en el mostrador. 1164 00:47:38,120 --> 00:47:40,330 Se detecta que estoy cerca de él, por lo que no tiene por qué ser 1165 00:47:40,330 --> 00:47:46,780 absolutamente idéntica tocar, y me he ganado el juego. 1166 00:47:46,780 --> 00:47:49,890 Así que tenemos Fruitcraft RPG. 1167 00:47:49,890 --> 00:47:52,200 >> Así que podemos hacer las cosas aún más avanzados que esto. 1168 00:47:52,200 --> 00:47:53,200 Podemos añadir sonidos. 1169 00:47:53,200 --> 00:47:54,610 Podemos añadir aleatoriedad pseudo. 1170 00:47:54,610 --> 00:47:56,260 Podemos añadir complejidad. 1171 00:47:56,260 --> 00:47:58,490 Déjame ir adelante aquí, y en vez de hacer esto por mí mismo, 1172 00:47:58,490 --> 00:48:01,240 deja que te enseñe una de las presentaciones más sofisticadas 1173 00:48:01,240 --> 00:48:06,640 nos dieron el año pasado de una persona que se llamaba Blake. 1174 00:48:06,640 --> 00:48:08,910 ¿Podemos tener un voluntario que es cómodo que aparece en 1175 00:48:08,910 --> 00:48:12,600 cámara y es para jugar un juego? 1176 00:48:12,600 --> 00:48:13,450 ¿Y de ahí? 1177 00:48:13,450 --> 00:48:15,380 Vamos arriba. 1178 00:48:15,380 --> 00:48:19,680 Muy bien, así que el juego que usted acaba de saberlo, 1179 00:48:19,680 --> 00:48:20,780 se ofreció para jugar - 1180 00:48:20,780 --> 00:48:25,910 [Aplausos] 1181 00:48:25,910 --> 00:48:28,610 David Malan: - es algo de antaño llamado 1182 00:48:28,610 --> 00:48:30,100 "Frogger". ¿Cuál es su nombre? 1183 00:48:30,100 --> 00:48:30,730 RENDA: Renda. 1184 00:48:30,730 --> 00:48:31,050 David Malan: REDNA? 1185 00:48:31,050 --> 00:48:32,530 RENDA: Es como Brenda con una b. 1186 00:48:32,530 --> 00:48:33,190 David Malan: Bueno, Renda. 1187 00:48:33,190 --> 00:48:33,590 David. 1188 00:48:33,590 --> 00:48:34,580 Gusto en conocerlo. 1189 00:48:34,580 --> 00:48:38,690 >> Así que aquí en "Frogger", y si podemos aumentar el volumen justo 1190 00:48:38,690 --> 00:48:39,780 un poco, se encuentra esta pequeña 1191 00:48:39,780 --> 00:48:41,010 rana verde en la parte inferior. 1192 00:48:41,010 --> 00:48:43,940 Puede utilizar la izquierda, derecha, arriba y abajo, y su objetivo es 1193 00:48:43,940 --> 00:48:46,510 cruzar la calle, cruce el río, y tocar las hojas de lirio 1194 00:48:46,510 --> 00:48:47,760 en la parte superior. 1195 00:48:52,090 --> 00:48:53,440 Aw. 1196 00:48:53,440 --> 00:48:54,630 Una t más - 1197 00:48:54,630 --> 00:48:56,400 rehacer, ¿de acuerdo? 1198 00:48:56,400 --> 00:48:58,890 Vamos a dejar de golpe. 1199 00:48:58,890 --> 00:49:00,140 Nadie lo vio. 1200 00:49:10,470 --> 00:49:12,930 [Aplausos] 1201 00:49:17,023 --> 00:49:17,850 [Aplausos] 1202 00:49:17,850 --> 00:49:19,341 David Malan: Si. 1203 00:49:19,341 --> 00:49:20,832 Muy bien hecho. 1204 00:49:20,832 --> 00:49:22,082 Excelente, gracias. 1205 00:49:27,300 --> 00:49:29,430 >> Así que no había Frogger. Ahora que sabes lo que has 1206 00:49:29,430 --> 00:49:32,170 llegado a vosotros mismos, voluntario uno más para un diferente 1207 00:49:32,170 --> 00:49:34,910 juego presentado por otro estudiante. 1208 00:49:34,910 --> 00:49:35,560 ¿Quieres venir a arriba? 1209 00:49:35,560 --> 00:49:36,576 ¿Cuál es tu nombre? 1210 00:49:36,576 --> 00:49:37,000 RICHARD: Richard. 1211 00:49:37,000 --> 00:49:37,420 David Malan: Richard. 1212 00:49:37,420 --> 00:49:39,732 Muy bien, Richard, vamos arriba. 1213 00:49:39,732 --> 00:49:42,187 [Aplausos] 1214 00:49:45,140 --> 00:49:47,030 David Malan: Tiene algo que va a sonar 1215 00:49:47,030 --> 00:49:54,180 familiarizarse pronto, así que aquí están sus instrucciones. 1216 00:49:54,180 --> 00:49:56,580 Así que en cierto momento, algunas piezas del rompecabezas se van a desplazar hacia arriba 1217 00:49:56,580 --> 00:49:58,150 en la pantalla que se ven bien a la izquierda 1218 00:49:58,150 --> 00:49:59,450 o la derecha arriba o hacia abajo. 1219 00:49:59,450 --> 00:50:01,230 Vas a tener que tocar las teclas de dirección, de tal manera 1220 00:50:01,230 --> 00:50:04,540 que corresponde a las piezas del rompecabezas que se alinean con 1221 00:50:04,540 --> 00:50:05,720 los marcadores de posición en la parte superior. 1222 00:50:05,720 --> 00:50:07,500 Así que cuando usted ve una flecha hacia la izquierda, y las líneas hacia arriba con la izquierda 1223 00:50:07,500 --> 00:50:09,260 flecha, pulse la flecha de la izquierda. 1224 00:50:09,260 --> 00:50:10,866 Usted puede comenzar. 1225 00:50:10,866 --> 00:50:13,674 [MÚSICA - "Stronger" Kayne West] 1226 00:51:21,222 --> 00:51:23,470 David Malan: Todo correcto, gran aplauso para Richard. 1227 00:51:23,470 --> 00:51:26,082 [Aplausos] 1228 00:51:32,426 --> 00:51:33,720 David Malan: Muy bien hecho. 1229 00:51:33,720 --> 00:51:34,110 Gracias. 1230 00:51:34,110 --> 00:51:37,104 [Aplausos] 1231 00:51:41,600 --> 00:51:44,330 >> David Malan: Volando y, aparentemente, una especie de 1232 00:51:44,330 --> 00:51:46,590 intimidante como podría ser la de implementar algo como 1233 00:51:46,590 --> 00:51:49,550 aparentemente sofisticado como este, se dan cuenta de que el estudiante 1234 00:51:49,550 --> 00:51:51,450 no partían y acaba de escribir esto de una vez. 1235 00:51:51,450 --> 00:51:54,200 Más bien, se puede descomponer un problema aparentemente tan complejo 1236 00:51:54,200 --> 00:51:56,840 como esta en pedazos mucho más pequeños, y esto, también, es 1237 00:51:56,840 --> 00:51:57,560 Va a ser un tema. 1238 00:51:57,560 --> 00:52:00,490 La peor cosa que puedes hacer por escrito un programa en la mayoría de cualquier 1239 00:52:00,490 --> 00:52:03,480 el lenguaje es para sentarse, ponerse realmente emocionado, escriba el 1240 00:52:03,480 --> 00:52:07,200 maldita cosa, y entonces sólo espero que funcione por el 1241 00:52:07,200 --> 00:52:08,510 vez que haya terminado de escribir. 1242 00:52:08,510 --> 00:52:10,920 Más bien, el proceso de la programación general, debería 1243 00:52:10,920 --> 00:52:13,440 ser muy deliberado, muy iterativo, en el que sólo 1244 00:52:13,440 --> 00:52:16,955 establecer medidas muy pequeñas para ustedes mismos, trozos pequeños 1245 00:52:16,955 --> 00:52:20,070 Qué quieres arrancar con los dientes, y así que usted tiene estos cordura 1246 00:52:20,070 --> 00:52:21,740 cheques, hitos pequeños que puedan cumplir. 1247 00:52:21,740 --> 00:52:24,170 Y luego construir en la parte superior de los que crean más 1248 00:52:24,170 --> 00:52:25,400 cosas sofisticadas fijas. 1249 00:52:25,400 --> 00:52:26,820 >> Así, por ejemplo, ¿cómo hacemos para 1250 00:52:26,820 --> 00:52:28,380 la implementación de un juego como este? 1251 00:52:28,380 --> 00:52:30,160 Bueno, sinceramente, me volvería a empezar con sólo 1252 00:52:30,160 --> 00:52:32,260 apoyar una tecla a la vez. 1253 00:52:32,260 --> 00:52:34,840 Vamos a implementar el soporte para la flecha izquierda. 1254 00:52:34,840 --> 00:52:37,610 De modo que el estudiante tuvo que crear de alguna manera en Photoshop, o en 1255 00:52:37,610 --> 00:52:40,340 Raspe sí mismo usando el editor gráfico pequeño, un 1256 00:52:40,340 --> 00:52:42,680 tecla de flecha que se parece a la de arriba a la izquierda allí, 1257 00:52:42,680 --> 00:52:43,910 el marcador de posición grises. 1258 00:52:43,910 --> 00:52:46,610 Entonces el estudiante tenía que averiguar qué x, coordenada y en 1259 00:52:46,610 --> 00:52:48,380 lo puso, dónde ponerlo en la ventana. 1260 00:52:48,380 --> 00:52:50,730 0, 0 es aquí, así que tienes que calcular el número de 1261 00:52:50,730 --> 00:52:53,690 píxeles, o puntos, para compensar esa flecha de 1262 00:52:53,690 --> 00:52:54,800 la parte superior de la pantalla. 1263 00:52:54,800 --> 00:52:57,040 Y luego, una vez que esté en funcionamiento, el programa en realidad no 1264 00:52:57,040 --> 00:53:00,380 hacer nada, por lo que este caso es necesario un sprite en segundo lugar, para 1265 00:53:00,380 --> 00:53:04,470 ejemplo, una flecha verde que apunta hacia la izquierda también, y usted 1266 00:53:04,470 --> 00:53:06,710 A continuación, deberá comenzar a escribir algunos scripts para ello. 1267 00:53:06,710 --> 00:53:09,310 >> Y te das cuenta, tal vez, que estas cosas empezaron a llegar a 1268 00:53:09,310 --> 00:53:11,470 velocidades diferentes, y los colores fueron en diferente 1269 00:53:11,470 --> 00:53:13,750 lugares, y eso es debido a que el estudiante usa un poco de 1270 00:53:13,750 --> 00:53:14,990 aleatoriedad pseudo. 1271 00:53:14,990 --> 00:53:17,440 Y por casualidad pseudo, me refiero sólo a recoger un número 1272 00:53:17,440 --> 00:53:20,230 entre algo y algo porque se puede 1273 00:53:20,230 --> 00:53:22,890 comenzar con las cosas del mapa, como si el número está entre uno y 1274 00:53:22,890 --> 00:53:24,940 cinco, bueno, vamos a hacer la cosa verde. 1275 00:53:24,940 --> 00:53:28,290 Si es entre 6 y 10, vamos a hacer la pieza del rompecabezas 1276 00:53:28,290 --> 00:53:29,730 rojo en su lugar. 1277 00:53:29,730 --> 00:53:31,840 Siempre y cuando usted tiene una manera de generar algún tipo de 1278 00:53:31,840 --> 00:53:34,730 aleatoriedad, puede tomar decisiones sobre la base de que 1279 00:53:34,730 --> 00:53:35,260 aleatoriedad. 1280 00:53:35,260 --> 00:53:37,490 Y sigo diciendo seudo aleatoria, porque hay un 1281 00:53:37,490 --> 00:53:38,390 pequeño y sucio secreto. 1282 00:53:38,390 --> 00:53:41,130 Las computadoras no pueden llegar a números aleatorios. 1283 00:53:41,130 --> 00:53:42,800 Ellos sólo pueden hacer lo que les dicen porque 1284 00:53:42,800 --> 00:53:44,110 son dispositivos creados por el hombre. 1285 00:53:44,110 --> 00:53:45,880 No pueden adivinar un número como nosotros los humanos 1286 00:53:45,880 --> 00:53:46,960 sentir como nos sea posible. 1287 00:53:46,960 --> 00:53:50,970 Un equipo tiene que hacer algo matemático para conjurar la 1288 00:53:50,970 --> 00:53:53,970 ilusión del número matemático, utilizando a veces la 1289 00:53:53,970 --> 00:53:57,420 día actual del tiempo como un insumo para averiguar lo que 1290 00:53:57,420 --> 00:53:59,570 número para volver, pero más de eso en otro momento. 1291 00:53:59,570 --> 00:54:02,060 Por ahora, sólo sé que podemos generar aleatoriedad pseudo. 1292 00:54:02,060 --> 00:54:04,610 >> Así que una vez que tengo la capacidad para la flecha izquierda para comenzar 1293 00:54:04,610 --> 00:54:07,990 que aparece en momentos diferentes y a velocidades diferentes, entonces 1294 00:54:07,990 --> 00:54:10,230 Me puede volver atrás y añadir un poco de estos si las condiciones. 1295 00:54:10,230 --> 00:54:14,950 SI este elemento sprite está en contacto con el otro, y la flecha izquierda 1296 00:54:14,950 --> 00:54:16,330 ha pulsado la tecla - 1297 00:54:16,330 --> 00:54:17,900 por lo que las tres condiciones en ese caso. 1298 00:54:17,900 --> 00:54:20,750 Puedo usar ese bloque AND tal vez, en este caso - 1299 00:54:20,750 --> 00:54:23,210 Entonces quiero seguir adelante y aumentar la puntuación. 1300 00:54:23,210 --> 00:54:25,130 Y en la parte superior, tenemos un resultado, tenemos Awesome, 1301 00:54:25,130 --> 00:54:26,510 Cool, bueno, y Boo. 1302 00:54:26,510 --> 00:54:29,810 Así que hay cinco variables que al parecer este estudiante 1303 00:54:29,810 --> 00:54:32,220 utiliza para realizar un seguimiento de estos indicadores diferentes. 1304 00:54:32,220 --> 00:54:34,180 Así que en resumen, el resultado final es increíble. 1305 00:54:34,180 --> 00:54:37,320 Es divertido, es divertido de jugar, es atractivo, pero esto no es 1306 00:54:37,320 --> 00:54:38,380 donde el estudiante comenzó. 1307 00:54:38,380 --> 00:54:42,210 Él o ella comenzó a un conjunto mucho más pequeño de pasos. 1308 00:54:42,210 --> 00:54:44,470 >> ¿Cuáles son algunos otros bloques de construcción que podemos 1309 00:54:44,470 --> 00:54:45,760 tejer en estos programas? 1310 00:54:45,760 --> 00:54:48,750 Bueno, hay un concepto distinto en la mayoría de los idiomas, 1311 00:54:48,750 --> 00:54:50,730 Rayar entre ellos, conocido como roscas. 1312 00:54:50,730 --> 00:54:54,660 Así que un equipo no puede realmente realmente hacer varias cosas a la 1313 00:54:54,660 --> 00:54:56,730 tiempo, por lo menos no lo general. 1314 00:54:56,730 --> 00:54:59,930 Más bien, un equipo generalmente tiene un solo CPU, e incluso 1315 00:54:59,930 --> 00:55:02,230 Aunque las computadoras son súper rápido y puede, por lo tanto, 1316 00:55:02,230 --> 00:55:04,740 crear la ilusión de hacer varias cosas a la vez - 1317 00:55:04,740 --> 00:55:06,180 revisar su correo, obtener al instante 1318 00:55:06,180 --> 00:55:07,770 mensaje, la impresión de un documento - 1319 00:55:07,770 --> 00:55:11,530 en realidad, un ordenador es sólo saltar de impresión para enviar mensajes instantáneos 1320 00:55:11,530 --> 00:55:15,160 para enviar correos electrónicos, volver y volver y volver y que adelante tan rápido que 1321 00:55:15,160 --> 00:55:18,170 lentos humanos ingeniosos no se dan cuenta que en realidad es 1322 00:55:18,170 --> 00:55:21,240 explotación de dichos programas un poco a la vez. 1323 00:55:21,240 --> 00:55:23,960 Ahora, esto un poco de blanco se encuentran en estos días, ya que, hoy en día, 1324 00:55:23,960 --> 00:55:26,740 muchos de nuestros ordenadores son lo que se denomina multi-core, por lo que 1325 00:55:26,740 --> 00:55:29,760 tiene una CPU de múltiples núcleos, pero, lo que es algo así como 1326 00:55:29,760 --> 00:55:31,760 tener múltiples CPUs. 1327 00:55:31,760 --> 00:55:35,020 >> Y así, a veces, las computadoras pueden realmente hacer varias cosas 1328 00:55:35,020 --> 00:55:38,500 a la vez, pero generalmente dentro de un programa, los programas 1329 00:55:38,500 --> 00:55:40,200 confiar en estas cosas llamadas roscas. 1330 00:55:40,200 --> 00:55:43,160 Así que un hilo es algo así como un programa en miniatura que puede 1331 00:55:43,160 --> 00:55:46,540 coexisten con otro programa en miniatura y puede correr 1332 00:55:46,540 --> 00:55:51,250 en paralelo, o al menos se puede ejecutar bajo la ilusión de que 1333 00:55:51,250 --> 00:55:52,990 se están ejecutando al mismo tiempo. 1334 00:55:52,990 --> 00:55:55,060 Así arañazos apoya estas cosas llamadas roscas. 1335 00:55:55,060 --> 00:55:57,580 Usted puede tener varias secuencias de comandos de ejecución a la vez, igual que nosotros 1336 00:55:57,580 --> 00:56:00,220 hizo con el león marino, y esto nos permite en realidad 1337 00:56:00,220 --> 00:56:03,620 entonces tienen interacciones entre estos sprites. 1338 00:56:03,620 --> 00:56:09,910 Déjame ir por delante aquí y tire hacia arriba, digamos, hilos, y 1339 00:56:09,910 --> 00:56:11,870 jugar de la siguiente manera. 1340 00:56:11,870 --> 00:56:13,950 Tenemos dos sprites, cada uno de los cuales vamos a ver 1341 00:56:13,950 --> 00:56:15,720 sólo tiene un guión. 1342 00:56:15,720 --> 00:56:18,000 Y te das cuenta parece que hay un poco de inteligencia en el 1343 00:56:18,000 --> 00:56:21,335 gato en éste porque está cada vez más cerca - 1344 00:56:21,335 --> 00:56:21,730 [ROARS] 1345 00:56:21,730 --> 00:56:24,540 David Malan: - cada vez más al pajarito. 1346 00:56:24,540 --> 00:56:26,570 >> Entonces, ¿cómo es el sistema operativo pájaro? 1347 00:56:26,570 --> 00:56:28,200 Bueno, vamos a echar un vistazo a la primera ave. 1348 00:56:28,200 --> 00:56:31,220 El guión pájaro dijo cuando la bandera verde se hace clic en, vaya a x 1349 00:56:31,220 --> 00:56:34,020 es igual a negativo y es igual a 115 y 150. 1350 00:56:34,020 --> 00:56:37,010 Así que me di cuenta de una ubicación aleatoria donde yo quería que el 1351 00:56:37,010 --> 00:56:39,580 ave para empezar, y que sólo le dejó caer allí por defecto. 1352 00:56:39,580 --> 00:56:42,800 Entonces siempre si no tocando gato, así que esto es diferente 1353 00:56:42,800 --> 00:56:45,080 tipo de construcción de bucle, pero la misma idea, hacer esto una y otra 1354 00:56:45,080 --> 00:56:45,780 una y otra vez. 1355 00:56:45,780 --> 00:56:49,410 Siempre y cuando usted no está tocando el gato, se mueven tres pasos, y 1356 00:56:49,410 --> 00:56:51,680 si estás en el borde, rebote, donde es una especie de 1357 00:56:51,680 --> 00:56:53,320 reflexión en el sentido de billar. 1358 00:56:53,320 --> 00:56:56,140 Así es como el ave se mueve alrededor tipo de 1359 00:56:56,140 --> 00:56:58,890 aparentemente al azar, pero es sólo porque está rebotando 1360 00:56:58,890 --> 00:57:00,170 las paredes en este caso. 1361 00:57:00,170 --> 00:57:03,170 >> Ahora el gato, por su parte, es una especie de trampa. 1362 00:57:03,170 --> 00:57:05,520 El gato, cuando la bandera verde se hace clic en Sí, se inicia en 1363 00:57:05,520 --> 00:57:07,390 alguna ubicación, un lugar al azar - 1364 00:57:07,390 --> 00:57:09,590 al menos en parte como por la selección 1365 00:57:09,590 --> 00:57:11,430 de bloques al azar verde allí - 1366 00:57:11,430 --> 00:57:14,660 y luego para siempre si tocar al ave, reproducir el sonido león, 1367 00:57:14,660 --> 00:57:15,790 y luego dejar de guión. 1368 00:57:15,790 --> 00:57:18,560 Así que cuando me dijo que cancelar o salir antes, hay un rompecabezas 1369 00:57:18,560 --> 00:57:20,600 pieza en Scratch que se acaba de cerrar el programa en ese 1370 00:57:20,600 --> 00:57:22,900 punto porque es una especie de lógica por hacer. 1371 00:57:22,900 --> 00:57:25,030 Pero por lo demás, aquí, fíjate en lo que va a pasar. 1372 00:57:25,030 --> 00:57:28,470 Punto hacia el pájaro y avanzar un paso. 1373 00:57:28,470 --> 00:57:31,390 Así que este punto hacia el ave es una especie de ventaja al gato 1374 00:57:31,390 --> 00:57:34,640 tiene en que es homing en el ave en movimiento, y podemos 1375 00:57:34,640 --> 00:57:37,370 ahora que este programa sea aún más interesante. 1376 00:57:37,370 --> 00:57:41,520 En lugar de mover un paso a la vez por cada ciclo de la CPU, por 1377 00:57:41,520 --> 00:57:44,280 huelga de peaje de la campana, por decirlo así, déjame seguir adelante y 1378 00:57:44,280 --> 00:57:47,350 mover, digamos, cinco pasos a la vez como el gato. 1379 00:57:47,350 --> 00:57:51,120 Haga clic en Ejecutar, y ahora realmente lo encuentra rápidamente. 1380 00:57:51,120 --> 00:57:55,620 Si duplicamos esto más de 10 pasos, es como que va 1381 00:57:55,620 --> 00:57:56,370 adecuada para él. 1382 00:57:56,370 --> 00:57:57,750 Ahora, podemos dar el pájaro, 1383 00:57:57,750 --> 00:57:59,540 tal vez, un poco de ventaja. 1384 00:57:59,540 --> 00:58:02,370 Vamos a ir al pájaro y decir en lugar de mover tres pasos, 1385 00:58:02,370 --> 00:58:07,140 lo vamos a pasar 30 pasos. 1386 00:58:07,140 --> 00:58:08,700 Pero todavía quedó atrapado en el final. 1387 00:58:08,700 --> 00:58:10,430 >> Así que aquí tenemos dos hilos. 1388 00:58:10,430 --> 00:58:13,230 Está encarcelado en Scratch con dos guiones y dos 1389 00:58:13,230 --> 00:58:16,150 sprites, pero la idea en otros idiomas es que se puede 1390 00:58:16,150 --> 00:58:19,220 escribir, en esencia, demasiados programas como éste y tener 1391 00:58:19,220 --> 00:58:22,950 correr de verdad, o imaginariamente, en paralelo. 1392 00:58:22,950 --> 00:58:25,280 >> Ahora bien, también existe este concepto en programación conocido como 1393 00:58:25,280 --> 00:58:28,010 eventos, y esto es algo que no veremos en C, el 1394 00:58:28,010 --> 00:58:30,500 lenguaje conocido como C. Vamos a ver hacia el final del semestre 1395 00:58:30,500 --> 00:58:33,240 en la programación web, cuando introducimos JavaScript y el 1396 00:58:33,240 --> 00:58:36,970 noción de construcción de páginas web que son dinámicas e interactuar 1397 00:58:36,970 --> 00:58:37,710 con los usuarios. 1398 00:58:37,710 --> 00:58:40,430 Así, en este caso, tenemos un ejemplo muy simple de dos 1399 00:58:40,430 --> 00:58:43,860 sprites, niño y niña, cada uno de ellos con su respectivo 1400 00:58:43,860 --> 00:58:48,040 hilos, pero de alguna manera estos dos son inter-comunicación por medio 1401 00:58:48,040 --> 00:58:49,490 de algo que se llama los acontecimientos. 1402 00:58:49,490 --> 00:58:52,750 Así que déjame ir delante aquí y acercar guión del chico, 1403 00:58:52,750 --> 00:58:54,050 que se parece a esto. 1404 00:58:54,050 --> 00:58:57,510 Cuando hace clic en bandera verde, para siempre hacer lo siguiente. 1405 00:58:57,510 --> 00:59:01,510 Si el espacio clave, o la barra espaciadora, se pulsa, por ejemplo 1406 00:59:01,510 --> 00:59:03,900 Marco por dos segundos, que es puramente estético en el 1407 00:59:03,900 --> 00:59:06,860 pantalla, un bocadillo pequeño, pero luego emitir. 1408 00:59:06,860 --> 00:59:09,240 >> Así difusión es otra pieza Scratch que es 1409 00:59:09,240 --> 00:59:12,050 representante de una clase de funcionalidad en la programación 1410 00:59:12,050 --> 00:59:15,080 que permite a los diferentes programas, diferentes hilos, 1411 00:59:15,080 --> 00:59:17,120 a inter-comunicación, para enviar alguna manera 1412 00:59:17,120 --> 00:59:18,520 mensajes, uno a otro. 1413 00:59:18,520 --> 00:59:21,930 Pasar un trozo de papel en clase es una especie de baja tecnología 1414 00:59:21,930 --> 00:59:22,700 equivalente. 1415 00:59:22,700 --> 00:59:24,300 Así evento transmitido. 1416 00:59:24,300 --> 00:59:26,210 Puedo enviar este mensaje, y la palabra evento 1417 00:59:26,210 --> 00:59:27,270 es completamente arbitraria. 1418 00:59:27,270 --> 00:59:30,000 Rayado a veces tiene estas listas desplegables, así que se acercó 1419 00:59:30,000 --> 00:59:33,230 con una palabra al azar como evento porque ahora, lo que el niño hace 1420 00:59:33,230 --> 00:59:36,600 al presionar la clave es que emite este evento. 1421 00:59:36,600 --> 00:59:39,270 Y si miro ahora en el guión de la niña, su guión es 1422 00:59:39,270 --> 00:59:42,690 super simple, porque todo lo que tiene que hacer es no actuar cuando 1423 00:59:42,690 --> 00:59:44,100 la bandera verde se hace clic. 1424 00:59:44,100 --> 00:59:47,910 Está diseñado para la acción cuando reciba Lo dijeron ellos, 1425 00:59:47,910 --> 00:59:51,210 "Event", y en ese momento, ella está escuchando, por consiguiente, 1426 00:59:51,210 --> 00:59:52,960 el evento llamado una y otra vez. 1427 00:59:52,960 --> 00:59:55,790 Tan pronto como se reciba ese caso, ella va a gritar 1428 00:59:55,790 --> 00:59:57,680 Polo durante dos segundos. 1429 00:59:57,680 --> 01:00:01,090 >> Y por lo que tal vez pueda deducir de esto exactamente lo que el 1430 01:00:01,090 --> 01:00:03,190 resultado que viene va a ser. 1431 01:00:03,190 --> 01:00:04,910 Permítanme clic en la bandera verde. 1432 01:00:04,910 --> 01:00:06,610 No pasa nada porque tengo que hacer qué? 1433 01:00:06,610 --> 01:00:07,310 AUDIENCIA: barra espaciadora. 1434 01:00:07,310 --> 01:00:08,630 David Malan: barra espaciadora. 1435 01:00:08,630 --> 01:00:11,990 Boy dice Marco, chica dice Polo. 1436 01:00:11,990 --> 01:00:13,670 Pero eso no es de codificación fija per se. 1437 01:00:13,670 --> 01:00:16,740 Esa es la intercomunicación entre las secuencias de comandos, por lo que ahora 1438 01:00:16,740 --> 01:00:19,240 tienen la capacidad de hacer que los programas aún más complejo en el que 1439 01:00:19,240 --> 01:00:22,830 estos dos son de alguna manera inter-comunicación. 1440 01:00:22,830 --> 01:00:25,260 >> Así pues, en qué dirección podemos tomar esto? 1441 01:00:25,260 --> 01:00:28,260 Pues bien, en conjunto problema 0, en realidad, el objetivo es 1442 01:00:28,260 --> 01:00:29,830 divertirse con Scratch. 1443 01:00:29,830 --> 01:00:32,440 Para la edición pirata, en su lugar se divertirá con más 1444 01:00:32,440 --> 01:00:35,850 versión sofisticada de Scratch llamado BYOB, urbanizado 1445 01:00:35,850 --> 01:00:38,040 Sus propios bloques, pero la idea es la misma. 1446 01:00:38,040 --> 01:00:38,780 Usted será capaz de - 1447 01:00:38,780 --> 01:00:39,710 Sí, eso fue deliberado. 1448 01:00:39,710 --> 01:00:42,450 Venía de Berkeley. 1449 01:00:42,450 --> 01:00:45,200 BYOB es la versión de la edición pirata de esto, pero a la vez 1450 01:00:45,200 --> 01:00:48,180 demografía, la edición estándar y edición pirata por igual, el 1451 01:00:48,180 --> 01:00:50,940 objetivo a la mano para la próxima semana es en realidad para sumergirse en 1452 01:00:50,940 --> 01:00:53,050 profundo, ensuciarse las manos con la programación, y hacer 1453 01:00:53,050 --> 01:00:55,240 algo interesante, hacer algo interactivo, haga 1454 01:00:55,240 --> 01:00:58,020 algo artístico, hacer algo divertido que en realidad 1455 01:00:58,020 --> 01:01:01,020 demostrar, de manera que a finales de semana, tendrá un proyecto, 1456 01:01:01,020 --> 01:01:03,770 no sólo para su primera CS50 conjunto de procesadores, pero vas a tener un 1457 01:01:03,770 --> 01:01:05,620 poco de algo que se puede mostrar en Annenberg para 1458 01:01:05,620 --> 01:01:08,830 amigos o familiares, incluso por subirlo a la página web del MIT. 1459 01:01:08,830 --> 01:01:11,760 Y así, como dije el miércoles, se espera que el 90% de la clase, 1460 01:01:11,760 --> 01:01:13,970 en general, a hacer las ediciones estándar. 1461 01:01:13,970 --> 01:01:16,660 Darse cuenta de que también hay esta salida para aquellos de ustedes que 1462 01:01:16,660 --> 01:01:18,990 de lo contrario puede ser que se encuentre un poco aburrido con lo básico 1463 01:01:18,990 --> 01:01:21,650 y realmente quiere sumergirse y crear una visión que ya 1464 01:01:21,650 --> 01:01:25,380 tenemos con conocimientos previos en este más amigable 1465 01:01:25,380 --> 01:01:26,240 ambiente. 1466 01:01:26,240 --> 01:01:29,030 >> Así que me tire otro ejemplo que uno de nuestros ex 1467 01:01:29,030 --> 01:01:33,830 estudiantes aquí hizo y decirles algo a través del canto. 1468 01:01:33,830 --> 01:01:37,430 Que del mismo modo, ya que esto juega, piense en cómo usted va sobre la 1469 01:01:37,430 --> 01:01:40,520 la aplicación de este programa utilizando precisamente estos mismos 1470 01:01:40,520 --> 01:01:44,180 bloques de construcción, un poco de aleatoriedad, y un pseudo- 1471 01:01:44,180 --> 01:01:46,010 poco de canción familiar. 1472 01:01:46,010 --> 01:01:47,910 Si pudiéramos subir el volumen un poco? 1473 01:01:47,910 --> 01:01:49,160 [MÚSICA - "Es Raining Men" The Weather Girls] 1474 01:03:02,261 --> 01:03:03,930 >> David Malan: Eso es todo por CS50. 1475 01:03:03,930 --> 01:03:05,860 Nos vemos el lunes. 1476 01:03:05,860 --> 01:03:21,152 [Aplausos]