1 00:00:00,000 --> 00:00:15,059 >> [REPRODUCIENDO MÚSICA] 2 00:00:15,059 --> 00:00:19,170 >> Esto es CS50-- Harvard La introducción de la Universidad 3 00:00:19,170 --> 00:00:22,070 a lo intelectual empresas de ciencias de la computación 4 00:00:22,070 --> 00:00:23,800 y la técnica de la programación. 5 00:00:23,800 --> 00:00:27,020 Y mi nombre es David Malan, y Estaba pensando esta mañana, 6 00:00:27,020 --> 00:00:33,120 que ha sido asombrosamente 20 años hoy desde la última vez senté en el que ustedes hacen ahora. 7 00:00:33,120 --> 00:00:33,840 >> Era 1996. 8 00:00:33,840 --> 00:00:37,550 Yo era un estudiante de segundo año, y yo estaba tomando CS50 por primera vez. 9 00:00:37,550 --> 00:00:40,890 Y ni siquiera me había reunido el valor tomar yo mismo el primer año, 10 00:00:40,890 --> 00:00:42,500 en parte debido al tiempo. 11 00:00:42,500 --> 00:00:44,782 la informática para mí Era un poco como, meh. 12 00:00:44,782 --> 00:00:46,990 Yo era un poco de un geek de crecimiento arriba, pero no lo hice de verdad 13 00:00:46,990 --> 00:00:49,180 tener ningún intelectual interés en lo que parecía 14 00:00:49,180 --> 00:00:51,920 ser sólo un montón de la gente todo el tiempo de programación. 15 00:00:51,920 --> 00:00:53,904 >> Y yo tenía miedo de ser honesto. 16 00:00:53,904 --> 00:00:56,820 El curso y la informática más generalmente tenido y en cierta medida, 17 00:00:56,820 --> 00:01:01,230 todavía tiene esta reputación de un campo de ten cuidado, aunque sólo sea porque muchos de nosotros 18 00:01:01,230 --> 00:01:04,410 no están familiarizados con ella y no está seguro de ello. 19 00:01:04,410 --> 00:01:08,480 Y realmente no fue hasta que buscaras esta clase de segundo año que fall-- 20 00:01:08,480 --> 00:01:10,880 e incluso entonces, sólo matriculé porque el professor-- 21 00:01:10,880 --> 00:01:13,950 uno de mis primeros mentores, Brian Kernighan ahora en Princeton-- 22 00:01:13,950 --> 00:01:15,700 me permitió tomar el pase de clase falle. 23 00:01:15,700 --> 00:01:18,020 Y, de hecho, es por eso Hoy nos permita y anime 24 00:01:18,020 --> 00:01:20,030 estudiantes para tomar esta clase se sentaron / unsat. 25 00:01:20,030 --> 00:01:22,040 >> Y sólo entonces, por la final del semestre 26 00:01:22,040 --> 00:01:24,870 No me daba cuenta como, wow, esto No era un campo tan poco familiar. 27 00:01:24,870 --> 00:01:26,850 De hecho, esta fue una muy enriquecedor campo, 28 00:01:26,850 --> 00:01:28,970 y más emocionante, especialmente más adelante, 29 00:01:28,970 --> 00:01:32,809 mientras tomaba cursos de Arte Dramático y América 101 A 30 00:01:32,809 --> 00:01:34,600 y luego, eventualmente la arqueología de postgrado, 31 00:01:34,600 --> 00:01:37,860 ¿realmente empezar a ver el intersecciones de este campo, ordenador 32 00:01:37,860 --> 00:01:41,979 la ciencia, con las humanidades, ciencias naturales, las artes, la medicina, 33 00:01:41,979 --> 00:01:42,520 y similares. 34 00:01:42,520 --> 00:01:44,420 Y eso es lo que es tan bueno de la informática 35 00:01:44,420 --> 00:01:46,930 en última instancia, como esperamos que primero ver-- es su aplicabilidad 36 00:01:46,930 --> 00:01:50,280 a estos otros campos, y cómo se puede tomar algo de hoy y el semestre de 37 00:01:50,280 --> 00:01:53,070 ideas y habilidades prácticas de nuevo a su propio dominio, 38 00:01:53,070 --> 00:01:58,200 y, de hecho explorar esta intersección de las artes liberales y las ciencias. 39 00:01:58,200 --> 00:02:02,690 >> Así el 73% de que, si la última año es una indicación, 40 00:02:02,690 --> 00:02:04,390 nunca han tomado un curso de CS antes. 41 00:02:04,390 --> 00:02:06,389 Así que si, como yo, eres sintiendo un poco 42 00:02:06,389 --> 00:02:09,190 miedo, o francamente no estás entendemos para qué estás incluso en este caso. 43 00:02:09,190 --> 00:02:11,510 Tal vez sólo algunos seguido amigos a través de Sanders ahora mismo. 44 00:02:11,510 --> 00:02:12,490 Eso es totalmente bien. 45 00:02:12,490 --> 00:02:15,059 El objetivo aquí es para enganchar usted y asegurarles 46 00:02:15,059 --> 00:02:17,100 que si miras a la izquierda y a la derecha, 47 00:02:17,100 --> 00:02:21,480 vas a ver con los compañeros de clase tan poco o mucha experiencia 48 00:02:21,480 --> 00:02:22,890 que usted mismo pueda tener. 49 00:02:22,890 --> 00:02:25,280 Y, de hecho, vamos a compartir algunas estadísticas más tarde hoy 50 00:02:25,280 --> 00:02:28,120 en cuanto a lo de la demografía la clase tienen la apariencia típica. 51 00:02:28,120 --> 00:02:31,440 >> Y como añade reassurance-- y esto nos ¿Quiere decir desde que tomé durante el curso 52 00:02:31,440 --> 00:02:33,252 algunos años ago-- en programa del curso 53 00:02:33,252 --> 00:02:35,460 es esto- que lo que en última instancia materia en este curso 54 00:02:35,460 --> 00:02:38,040 no es tanto dónde terminan arriba en relación con sus compañeros de clase, 55 00:02:38,040 --> 00:02:43,110 pero donde en semana 11, el final de la semestre, terminan con relación a sí mismo 56 00:02:43,110 --> 00:02:46,280 en la semana 0, lo que es donde estamos hoy aquí. 57 00:02:46,280 --> 00:02:48,704 Y esto es lo que me di cuenta hace todos esos años. 58 00:02:48,704 --> 00:02:50,620 Y sé que un montón de clases dicen esto, pero es 59 00:02:50,620 --> 00:02:52,450 especialmente cierto en la informática. 60 00:02:52,450 --> 00:02:55,320 Al final de la día, este campo es desconocida, ya que era para mí 61 00:02:55,320 --> 00:02:58,590 y podría ser para usted, es realmente sólo de la resolución de problemas. 62 00:02:58,590 --> 00:03:01,324 Y, como tal, tiene esto aplicabilidad a conseguir otros campos. 63 00:03:01,324 --> 00:03:03,490 Y de hecho, si lo intentamos para destilar lo que esto significa, 64 00:03:03,490 --> 00:03:06,897 esta es la resolución de problemas en su esencia, me atrevería a decir. 65 00:03:06,897 --> 00:03:09,480 Hay input-- así que lo que se es que estamos tratando de resolver. 66 00:03:09,480 --> 00:03:12,264 No hay salida, que es de esperar la solución a ese problema. 67 00:03:12,264 --> 00:03:14,180 Y entonces, como lo haríamos decir en informática, 68 00:03:14,180 --> 00:03:17,310 hay este cuadro negro en el media que no necesariamente 69 00:03:17,310 --> 00:03:19,450 tienen que preocuparse por la forma en que funciona. 70 00:03:19,450 --> 00:03:22,230 Usted mismo podría eventualmente poner en práctica lo que hay dentro de esa caja. 71 00:03:22,230 --> 00:03:25,194 Sin embargo, para los propósitos de la actualidad y más en general, en la vida, todo lo que importa 72 00:03:25,194 --> 00:03:26,610 es que estos problemas se resuelven. 73 00:03:26,610 --> 00:03:29,340 >> Y lo que es este curso en última instancia, sobre el que se explora 74 00:03:29,340 --> 00:03:31,700 la intersección de estas entradas y salidas, 75 00:03:31,700 --> 00:03:34,410 y estos llamados algoritmos, como pronto veremos, 76 00:03:34,410 --> 00:03:37,450 que implementan lo que es debajo hay, el capó. 77 00:03:37,450 --> 00:03:40,487 Pero estas entradas y éstos outputs-- lo que significa realmente? 78 00:03:40,487 --> 00:03:43,570 Bueno, al final del día, necesitamos alguna manera de representar la información. 79 00:03:43,570 --> 00:03:46,660 Esto es especialmente cierto en un ordenador, la cual es tan elegante y complejo, ya que 80 00:03:46,660 --> 00:03:48,160 podría parecer, es un dispositivo bastante tonto. 81 00:03:48,160 --> 00:03:52,240 Se necesita electricity-- ya sea de un cable o una batería como input-- 82 00:03:52,240 --> 00:03:55,820 y entonces se produce alguna respuestas preprogramados en la pantalla. 83 00:03:55,820 --> 00:03:57,970 >> Pero ¿cómo podemos obtener a partir de principio a fin allí? 84 00:03:57,970 --> 00:03:59,470 Pues bien, ¿qué es un problema a resolver? 85 00:03:59,470 --> 00:04:01,050 Bueno, tal vez podríamos, por lo el inicio de un semestre, 86 00:04:01,050 --> 00:04:02,841 tratar de tomar la asistencia en una habitación como esta. 87 00:04:02,841 --> 00:04:04,750 Por lo que podría hacer como una, dos, tres. 88 00:04:04,750 --> 00:04:07,060 O tal vez, si lo hiciera al tipo de seguimiento 89 00:04:07,060 --> 00:04:10,560 myself-- de hacer un seguimiento de las cosas-- Podría correr rápidamente de los dedos. 90 00:04:10,560 --> 00:04:14,650 Así que yo podría hacer hash de una marks-- persona, dos, tres, cuatro, cinco, seis, 91 00:04:14,650 --> 00:04:15,431 siete ocho. 92 00:04:15,431 --> 00:04:17,930 Y todos nosotros tenemos probablemente hecho esto, ya sea en sus manos 93 00:04:17,930 --> 00:04:19,680 o en un trozo de papel. 94 00:04:19,680 --> 00:04:22,140 Y esto es en realidad algo que se llama notation-- unario 95 00:04:22,140 --> 00:04:26,130 donde si sólo tiene una letra en su alfabeto, uno o hachís 96 00:04:26,130 --> 00:04:29,440 marca en este caso, para cada de entrada que desea contar, 97 00:04:29,440 --> 00:04:32,330 que necesita para acabar con uno de estos letters-- una de estas marcas. 98 00:04:32,330 --> 00:04:32,510 >> Todo bien. 99 00:04:32,510 --> 00:04:34,790 Eso es todo bien y bueno y no tan complicado. 100 00:04:34,790 --> 00:04:37,800 Pero las computadoras no son todos que mucho más complicado. 101 00:04:37,800 --> 00:04:40,770 De hecho, la mayoría de ustedes probablemente saber incluso si no tienes realmente 102 00:04:40,770 --> 00:04:44,080 considera lo que esto significa, que ordenadores sólo entienden ceros 103 00:04:44,080 --> 00:04:45,870 y ones-- el llamado sistema binario. 104 00:04:45,870 --> 00:04:49,390 Los seres humanos, por el contrario, son tan mucho más sofisticado en la medida en 105 00:04:49,390 --> 00:04:51,770 tal como la entendemos ceros a través de nueves. 106 00:04:51,770 --> 00:04:55,740 >> Pero incluso si binario es, en primera vista, no todo lo que conoce, 107 00:04:55,740 --> 00:05:00,330 Resulta que es igual que los sistemas y las ideas que ya conocen. 108 00:05:00,330 --> 00:05:02,420 Así, por ejemplo, considere esto. 109 00:05:02,420 --> 00:05:03,896 Esto es sólo una secuencia de símbolos. 110 00:05:03,896 --> 00:05:05,770 Y todos ustedes, cuando mirando a ella, probablemente 111 00:05:05,770 --> 00:05:09,380 pensar en nada 123-- realmente interesante allí. 112 00:05:09,380 --> 00:05:11,940 Pero ¿por qué es este número, 123? 113 00:05:11,940 --> 00:05:14,440 Estos son sólo glifos en la screen-- sólo patrones 114 00:05:14,440 --> 00:05:16,387 que alguien podría haber dibujado o escrito. 115 00:05:16,387 --> 00:05:18,970 Pero si usted es como yo, Probablemente recuerde desde la escuela primaria 116 00:05:18,970 --> 00:05:21,610 que hay una especie de columnas o lugares aquí. 117 00:05:21,610 --> 00:05:25,340 Hay lugar y el de la el lugar de diez y el lugar de los ciento. 118 00:05:25,340 --> 00:05:29,820 Y la razón por la que esto es 123 y no sólo un patrón de tres símbolos 119 00:05:29,820 --> 00:05:33,090 es porque, por supuesto, si tener un uno en el lugar de las centenas, 120 00:05:33,090 --> 00:05:36,610 se hacen las cuentas de 100 veces uno, y luego dos en lugar de las decenas. 121 00:05:36,610 --> 00:05:41,390 Así que eso es 10 veces 2, y luego tres en lugar de las unidades y eso es 1 Tiempos 3. 122 00:05:41,390 --> 00:05:45,670 Y cuando se agrega a todos los de arriba, de Por supuesto, se obtiene el 100 más 20 más 3. 123 00:05:45,670 --> 00:05:48,220 >> Así que empezamos con sólo un patrón symbols-- de un alphabet-- 124 00:05:48,220 --> 00:05:51,670 pero luego hemos mapeado en sentido que por medio de estas columnas. 125 00:05:51,670 --> 00:05:54,450 Pues bien, resulta que las computadoras no son realmente 126 00:05:54,450 --> 00:05:56,300 tan diferente de ti y de mí. 127 00:05:56,300 --> 00:06:01,840 Pero en lugar de utilizar potencias de 10, así speak-- 1, 10, 100, 1000, 128 00:06:01,840 --> 00:06:04,330 10,000 lugar y así forth-- que realmente 129 00:06:04,330 --> 00:06:08,930 sólo tiene que utilizar los poderes de 2-- por lo que uno, 2, 4, y luego 130 00:06:08,930 --> 00:06:12,810 si ponemos más dígitos, 8, 16, 32, 64, 128, y así sucesivamente. 131 00:06:12,810 --> 00:06:16,050 Y así es como un ordenador representaría el número 0, 132 00:06:16,050 --> 00:06:17,300 al igual que los humanos. 133 00:06:17,300 --> 00:06:21,660 >> 0, 0, 0-- y que es fácil adivinar ¿Qué patrón de ceros y unos, 134 00:06:21,660 --> 00:06:24,610 si sólo puede un ordenador 0 hablar o lo 1-- 135 00:06:24,610 --> 00:06:29,110 patrón se va a representar los números de los seres humanos conocen como 1? 136 00:06:29,110 --> 00:06:30,590 Yeah-- 0, 0, 1. 137 00:06:30,590 --> 00:06:31,090 Todo bien. 138 00:06:31,090 --> 00:06:35,900 Por lo que 0, 0, 1 es la forma en que representamos 1, por lo que podría estar inclinado a continuación, 139 00:06:35,900 --> 00:06:39,510 para representar el número 2, si usted tiene el lugar de los cuatro y el lugar de los dos 140 00:06:39,510 --> 00:06:48,290 como un solo lugar, se podría decir, bueno, si tuviéramos un 1 en lugar de las unidades, 141 00:06:48,290 --> 00:06:50,430 y ahora queremos contar hasta 2, es posible que 142 00:06:50,430 --> 00:06:53,310 hacer esto y dejar que se trata de un cero. 143 00:06:53,310 --> 00:06:56,397 Pero por supuesto esto no es cómo el sistema decimal funciona bien. 144 00:06:56,397 --> 00:06:58,230 Si pones un dígito en tanto de esas columnas, 145 00:06:58,230 --> 00:06:59,563 usted tiene que hacer la aritmética. 146 00:06:59,563 --> 00:07:01,930 Entonces, ¿qué número me hizo accidentalmente acaba de representar? 147 00:07:01,930 --> 00:07:06,710 >> Así que es 3, ya que 2 veces 1 más 1 1 veces, por supuesto, nos da tres. 148 00:07:06,710 --> 00:07:08,340 Así que esto sería dos. 149 00:07:08,340 --> 00:07:12,730 El bit especie de lanza, por así decirlo, como 0 se convierte en un ser, al igual que un niño de 9 papeles más 150 00:07:12,730 --> 00:07:14,840 y se convierte en un 0 cuando transporte la 1. 151 00:07:14,840 --> 00:07:16,510 Esto entonces sería de tres por supuesto. 152 00:07:16,510 --> 00:07:20,170 Four-- otra cosa interesante sucede, donde los ruedan sobre 153 00:07:20,170 --> 00:07:21,750 y transporta la 1, por así decirlo. 154 00:07:21,750 --> 00:07:23,320 Así que esto, por supuesto, es 4. 155 00:07:23,320 --> 00:07:25,160 >> Pero si el avance rápido ahora, ¿cuál es el mayor número que va 156 00:07:25,160 --> 00:07:26,660 siendo que una computadora puede representar? 157 00:07:26,660 --> 00:07:30,420 158 00:07:30,420 --> 00:07:32,380 Así que es sólo siete en este caso, ¿verdad? 159 00:07:32,380 --> 00:07:35,570 Debido a que tiene un uno en el cuatro, uno de los dos, un uno en uno. 160 00:07:35,570 --> 00:07:36,900 Así que eso es 4 más 2 más 1. 161 00:07:36,900 --> 00:07:37,972 Así que le da siete. 162 00:07:37,972 --> 00:07:39,680 Y, en efecto, que lo haría parecer a primera vista 163 00:07:39,680 --> 00:07:43,750 que los ordenadores pueden contar no más que esto. 164 00:07:43,750 --> 00:07:45,210 >> Pero esto por supuesto no es cierto. 165 00:07:45,210 --> 00:07:48,243 ¿Qué hacen los humanos cuando queremos contar más allá de como 999? 166 00:07:48,243 --> 00:07:51,000 167 00:07:51,000 --> 00:07:53,900 Sólo llevar a la una y acaba añadir un cuarto dígito a la izquierda. 168 00:07:53,900 --> 00:07:55,070 Y así, de hecho, hemos podido. 169 00:07:55,070 --> 00:07:57,900 Podríamos tener un ocho de lugar y el lugar de la 16ª, 170 00:07:57,900 --> 00:08:02,000 y el lugar de una de 32, 64, y 128-- simplemente puede seguir adelante hasta el infinito. 171 00:08:02,000 --> 00:08:04,640 Por lo que estos ceros y ones-- el llamado system-- binario 172 00:08:04,640 --> 00:08:10,290 son lo que lo haría un científico de la computación en general, llamar a un bit o dígito binario. 173 00:08:10,290 --> 00:08:13,590 >> Pero ahora, ¿cómo conseguir que desde el concepto o los gráficos de estas cosas 174 00:08:13,590 --> 00:08:14,620 a un equipo real? 175 00:08:14,620 --> 00:08:17,170 Parece que estamos saltarse un paso aquí. 176 00:08:17,170 --> 00:08:20,210 Bueno, la única entrada al final del día, a mi ordenador portátil aquí 177 00:08:20,210 --> 00:08:22,060 Es este flujo de electricidad. 178 00:08:22,060 --> 00:08:24,560 Incluso si ha pasado un largo tiempo desde que has pensado 179 00:08:24,560 --> 00:08:26,580 o nunca pensado ¿Cómo funciona la electricidad, 180 00:08:26,580 --> 00:08:30,909 no hay electrones que fluyen en o hacia fuera, y eso es mi tipo de entrada. 181 00:08:30,909 --> 00:08:34,659 >> Así que si eso es todo lo que somos recibiendo como entrada aquí, 182 00:08:34,659 --> 00:08:36,830 ¿qué podemos hacer con esa información? 183 00:08:36,830 --> 00:08:40,040 Bueno, podríamos pensar en un cero como sólo una ausencia de electricidad. 184 00:08:40,040 --> 00:08:42,540 Nada es flowinw, nada es en movimiento, no pasa nada. 185 00:08:42,540 --> 00:08:44,690 Eso es sólo el valor por defecto Estado-- cero. 186 00:08:44,690 --> 00:08:48,200 Pero si no hay electricidad que fluye, ¿por qué no acabamos de forma arbitraria, sino a nivel mundial 187 00:08:48,200 --> 00:08:50,250 consistentemente, llame que un uno. 188 00:08:50,250 --> 00:08:54,760 >> Por lo tanto, simplemente por tener ningún poder, tenemos, sí potencia de un cero, 189 00:08:54,760 --> 00:08:57,520 tenemos una, sí el poder uno-- ningún poder. 190 00:08:57,520 --> 00:09:01,520 Y de esa forma, el uso de algo más físico o electrónico 191 00:09:01,520 --> 00:09:05,340 empezamos a poner en práctica esta noción de algo que es ya sea uno o un cero. 192 00:09:05,340 --> 00:09:07,230 De hecho, podríamos hacerlo aquí. 193 00:09:07,230 --> 00:09:10,590 No aquí, tengo tres, pero ocho focos de luz, cada uno de los cuales 194 00:09:10,590 --> 00:09:11,810 tiene su propio interruptor. 195 00:09:11,810 --> 00:09:15,760 >> Y por lo que si quería representar el número siete aquí, 196 00:09:15,760 --> 00:09:18,510 Yo podría activar estas tres bombillas. 197 00:09:18,510 --> 00:09:21,470 Y, en efecto, en el interior de mi equipo es de millones, 198 00:09:21,470 --> 00:09:25,650 miles de millones de cosas que son simplemente menor que, llamados transistores, 199 00:09:25,650 --> 00:09:27,330 interruptores, que acaba de encender y apagar. 200 00:09:27,330 --> 00:09:30,420 Así que estos son relativamente big-- interruptores big-- dentro de mi laptop-- 201 00:09:30,420 --> 00:09:32,150 son muchos, muchos, muchos, muchos más interruptores. 202 00:09:32,150 --> 00:09:35,160 Pero lo único que hacen es exactamente eso-- convertir algo en, convertir algo fuera. 203 00:09:35,160 --> 00:09:38,076 Y, como tal, un ordenador puede representar, con esos millones o billones 204 00:09:38,076 --> 00:09:40,480 de los transistores, los lotes y un montón de ceros y unos. 205 00:09:40,480 --> 00:09:43,160 Y hay otros equipos que todavía le permite almacenar información a largo plazo, 206 00:09:43,160 --> 00:09:45,243 de modo que cuando se tire de la enchufe, que no se pierda. 207 00:09:45,243 --> 00:09:46,900 Pero esa es una historia para otro día. 208 00:09:46,900 --> 00:09:51,170 >> Entonces, ¿qué podemos hacer con estos bits? 209 00:09:51,170 --> 00:09:54,309 Podríamos sólo para tomar la presión de me-- 210 00:09:54,309 --> 00:09:56,600 es que alguien puede querer venir aquí y ofrecer una demostración? 211 00:09:56,600 --> 00:09:57,516 Vi por primera vez este lado. 212 00:09:57,516 --> 00:09:58,709 ¿Cuál es tu nombre? 213 00:09:58,709 --> 00:09:59,250 MADAY: Maday. 214 00:09:59,250 --> 00:10:00,542 DAVID MALAN: Maday, vamos arriba. 215 00:10:00,542 --> 00:10:01,250 Encantada de conocerte. 216 00:10:01,250 --> 00:10:02,390 MADAY: Gusto en conocerte. 217 00:10:02,390 --> 00:10:02,930 >> DAVID MALAN: Ven esta manera. 218 00:10:02,930 --> 00:10:04,182 No voy a tener al labio para arriba. 219 00:10:04,182 --> 00:10:04,682 Todo bien. 220 00:10:04,682 --> 00:10:11,090 Así que aquí tenemos, notice-- uno, dos-- editaremos que out-- uno, dos, cuatro, 221 00:10:11,090 --> 00:10:13,350 ocho, 16, 32, 64, 128. 222 00:10:13,350 --> 00:10:14,220 Esto es deliberado. 223 00:10:14,220 --> 00:10:17,370 Hay ocho bits aquí-- binario de ceros y unos digits--. 224 00:10:17,370 --> 00:10:21,460 Y un poco es una unidad útil de measure-- no es tan útil una unidad de medida 225 00:10:21,460 --> 00:10:21,999 sobre sí misma. 226 00:10:21,999 --> 00:10:24,290 Por lo general, usted quiere al menos ocho de estas cosas, también denominado 227 00:10:24,290 --> 00:10:24,790 un byte. 228 00:10:24,790 --> 00:10:26,230 Así que tenemos un byte de bits aquí. 229 00:10:26,230 --> 00:10:31,130 >> Así que si queríamos que desafiar con, por ejemplo, explicando, en binario, 230 00:10:31,130 --> 00:10:33,230 este valor aquí-- 42. 231 00:10:33,230 --> 00:10:35,140 ¿Quieres tomar una puñalada en eso? 232 00:10:35,140 --> 00:10:36,034 >> MADAY: [inaudible]. 233 00:10:36,034 --> 00:10:38,700 DAVID MALAN: Sí, sólo empujar el pequeños interruptores blancos delante. 234 00:10:38,700 --> 00:10:41,290 Y quiere deletrear cabo de 42 años, y en juego 235 00:10:41,290 --> 00:10:44,061 Es esta tensión CS50 bola si usted consigue esto. 236 00:10:44,061 --> 00:10:44,560 Todo bien. 237 00:10:44,560 --> 00:10:46,420 Por lo que tiene 32. 238 00:10:46,420 --> 00:10:48,430 Vamos a necesitar 42. 239 00:10:48,430 --> 00:10:51,410 Así que es un ocho, así que eso es 40. 240 00:10:51,410 --> 00:10:54,160 Y excelente-- muy bien hecho. 241 00:10:54,160 --> 00:10:55,186 Gracias. 242 00:10:55,186 --> 00:10:58,790 >> [APLAUSOS] 243 00:10:58,790 --> 00:10:59,290 Todo bien. 244 00:10:59,290 --> 00:11:00,623 Así que tenemos una bola de la tensión más. 245 00:11:00,623 --> 00:11:03,595 Vamos a hacer esto una vez más si puede. 246 00:11:03,595 --> 00:11:05,368 Otro voluntario? 247 00:11:05,368 --> 00:11:07,970 La bola libre de estrés, bola de la tensión libre. 248 00:11:07,970 --> 00:11:08,470 DE ACUERDO. 249 00:11:08,470 --> 00:11:11,640 Aquí en el medio, ¿quieres bajar? 250 00:11:11,640 --> 00:11:14,100 Todo bien. 251 00:11:14,100 --> 00:11:15,552 Lo sé. 252 00:11:15,552 --> 00:11:16,360 Aquí vamos. 253 00:11:16,360 --> 00:11:20,818 >> Así que los números aquí-- vamos hacia abajo. 254 00:11:20,818 --> 00:11:21,567 ¿Cuál es su nombre? 255 00:11:21,567 --> 00:11:21,984 >> Davey: Davey. 256 00:11:21,984 --> 00:11:22,820 >> DAVID MALAN: Davey. 257 00:11:22,820 --> 00:11:23,320 DE ACUERDO. 258 00:11:23,320 --> 00:11:24,810 Vamos arriba, Davey. 259 00:11:24,810 --> 00:11:25,890 Encantada de conocerte. 260 00:11:25,890 --> 00:11:28,639 Y lo que vamos a tener que spell-- si pudiera quedarse allí 261 00:11:28,639 --> 00:11:32,810 por sólo una moment-- es el número 50. 262 00:11:32,810 --> 00:11:36,293 Pero, pero, pero, pero, pero, estos son imanes de la escuela primaria por una razón. 263 00:11:36,293 --> 00:11:39,370 264 00:11:39,370 --> 00:11:43,327 Ha hecho un poco más difícil, ¿de acuerdo? 265 00:11:43,327 --> 00:11:44,160 Todavía hay ocho. 266 00:11:44,160 --> 00:11:46,820 267 00:11:46,820 --> 00:11:47,320 Todo bien. 268 00:11:47,320 --> 00:11:48,486 Entonces, ¿qué tenemos allí? 269 00:11:48,486 --> 00:11:51,356 Tenemos 32. 270 00:11:51,356 --> 00:11:54,344 Bonito. 271 00:11:54,344 --> 00:11:58,610 32 más el 16 nos da 48-- tan cerca. 272 00:11:58,610 --> 00:12:00,390 Y maravillosa. 273 00:12:00,390 --> 00:12:02,831 Felicitaciones a Davey también. 274 00:12:02,831 --> 00:12:05,720 >> [APLAUSOS] 275 00:12:05,720 --> 00:12:06,516 >> Todo bien. 276 00:12:06,516 --> 00:12:09,390 Por lo que podemos hacer esto todo el día, y que no recibe todo lo que mucho más 277 00:12:09,390 --> 00:12:10,800 interesante y más difícil. 278 00:12:10,800 --> 00:12:13,250 Pero eso es realmente el point-- es la forma relativamente simple 279 00:12:13,250 --> 00:12:16,930 que es, al final del día, lo que es una computadora hace para almacenar información, 280 00:12:16,930 --> 00:12:21,740 para almacenar entradas y en última instancia almacenar o representar esas salidas. 281 00:12:21,740 --> 00:12:23,750 Pero los números por sí solos no son tan interesante. 282 00:12:23,750 --> 00:12:26,069 >> Así que los seres humanos, hace unos años, decidido, ¿sabes qué? 283 00:12:26,069 --> 00:12:27,860 Sería bueno si las computadoras no eran sólo 284 00:12:27,860 --> 00:12:31,030 calculadoras para la aritmética operaciones, pero en realidad se podría 285 00:12:31,030 --> 00:12:35,209 hacer cosas como procesamiento de textos, o correo electrónico, o encarnaciones más modernos 286 00:12:35,209 --> 00:12:36,500 de este tipo de tecnologías. 287 00:12:36,500 --> 00:12:40,680 Y así el mundo decidió arbitrariamente, sino universalmente, 288 00:12:40,680 --> 00:12:44,380 que si se desea almacenar la capital letra A en un ordenador, ¿sabes qué? 289 00:12:44,380 --> 00:12:47,730 Vamos a todos de acuerdo para almacenar un patrón de ceros y ones-- 290 00:12:47,730 --> 00:12:52,422 bits-- que en última instancia representa el número decimal 65. 291 00:12:52,422 --> 00:12:53,630 Sólo tendremos que todos estamos de acuerdo en eso. 292 00:12:53,630 --> 00:12:56,620 >> 66 representaría B, 67 representaría C, 293 00:12:56,620 --> 00:13:00,210 y hay montones de otros patrones de ceros y unos, o números subyacentes, 294 00:13:00,210 --> 00:13:02,224 que representaría otras cartas fijas. 295 00:13:02,224 --> 00:13:04,390 Así que si usted tipo de mental absorber esto por un momento, 296 00:13:04,390 --> 00:13:10,900 Deliberadamente poner un medio I, donde H a 72 y es 73. 297 00:13:10,900 --> 00:13:15,830 Si un equipo a continuación, en el contexto de un procesador de texto o un correo electrónico, 298 00:13:15,830 --> 00:13:19,620 reveló debajo de la campana tener estos patrones de patrón bits-- 299 00:13:19,620 --> 00:13:22,500 de bits que representan 72, a continuación 73, a continuación, 33-- 300 00:13:22,500 --> 00:13:26,640 lo que esto podría significar en ese programa? 301 00:13:26,640 --> 00:13:28,150 >> Así hola, y luego algo. 302 00:13:28,150 --> 00:13:31,460 Nosotros no necesariamente sabemos, pero de hecho 33-- no en el gráfico antes les hablé 303 00:13:31,460 --> 00:13:33,170 era simplemente un signo de exclamación. 304 00:13:33,170 --> 00:13:38,870 Así fue 72 H, 73 es I, 33 sucede ser un punto de exclamación todavía. 305 00:13:38,870 --> 00:13:41,719 Pero eso es todo bien y bueno, y, de hecho, hoy en día, en lugar de 306 00:13:41,719 --> 00:13:43,760 sólo tiene que utilizar siete u ocho bits, gracias a algo 307 00:13:43,760 --> 00:13:46,530 llamado Unicode en oposición a ASCII vuelta en el día, 308 00:13:46,530 --> 00:13:50,010 en realidad podemos representar aún más personajes interesantes que sólo 309 00:13:50,010 --> 00:13:52,980 éstos Inglés originales sesgada letras. 310 00:13:52,980 --> 00:13:56,030 Pero también podemos representar incluso cosas más ordenadas como los colores. 311 00:13:56,030 --> 00:13:59,750 >> Si alguna vez has escuchado el acrónimo RGB, rojo, verde, azul, que 312 00:13:59,750 --> 00:14:03,510 sólo significa que un ordenador normalmente utiliza tres conjuntos de bits-- 313 00:14:03,510 --> 00:14:06,760 cierto número de bits que representan un número para la cantidad de rojo que desee, 314 00:14:06,760 --> 00:14:08,940 otro conjunto de bits para la cantidad de verde que desee, 315 00:14:08,940 --> 00:14:11,430 y otro grupo de número la cantidad de azul que desea. 316 00:14:11,430 --> 00:14:14,457 Por lo que un gran número significa un montón de , Número pequeño de color rojo significa que no hay rojo. 317 00:14:14,457 --> 00:14:16,290 Y por lo que estos son una especie de los valores medios aquí. 318 00:14:16,290 --> 00:14:20,180 >> Así que me da un poco de rojo, dame un poco verde, y me da un poco de azul. 319 00:14:20,180 --> 00:14:24,260 Y si se mezclan los tres tonos del color juntos, en este caso, 320 00:14:24,260 --> 00:14:26,850 se obtiene esta sombra turbia de color amarillo o marrón. 321 00:14:26,850 --> 00:14:32,330 Pero este modelo de ocho más ocho más eight-- de modo 24 bits-- 322 00:14:32,330 --> 00:14:36,550 de izquierda a derecha, es como un ordenador representaría ese color en particular. 323 00:14:36,550 --> 00:14:38,090 Ahora bien, esto es sólo un punto en una pantalla. 324 00:14:38,090 --> 00:14:42,230 Si se mira muy de cerca a su TV de su ordenador, verá puntos o píxeles. 325 00:14:42,230 --> 00:14:45,420 Y si usted tiene toda una red de píxeles, horizontal y verticalmente, 326 00:14:45,420 --> 00:14:46,630 Tiene imágenes. 327 00:14:46,630 --> 00:14:49,029 Y a continuación, si se toma una imagen y luego lavar 328 00:14:49,029 --> 00:14:52,070 a sí mismo mostrar otra imagen, otra imagen, otra imagen, otra imagen, 329 00:14:52,070 --> 00:14:54,760 muy rápido, que por supuesto tiene películas. 330 00:14:54,760 --> 00:14:56,109 >> Y así notar al punto de partida. 331 00:14:56,109 --> 00:14:57,650 Empezamos con estos ceros y unos. 332 00:14:57,650 --> 00:15:00,570 Se trabajó a partir de ahí a decimal números, la forma en que ellos representan. 333 00:15:00,570 --> 00:15:02,070 Ahora tenemos letras del alfabeto. 334 00:15:02,070 --> 00:15:05,664 Pero en otros contextos esperan, podemos utilizar unos cuantos más bits y representar colores. 335 00:15:05,664 --> 00:15:07,830 Tan pronto como usted tiene la capacidad para representar los colores, 336 00:15:07,830 --> 00:15:11,200 usted tiene la capacidad de representar fotografías y gifs animados 337 00:15:11,200 --> 00:15:13,780 y otros tales personajes en la pantalla. 338 00:15:13,780 --> 00:15:17,160 Y cuando usted tiene un montón de imágenes que vuelan por el ser humano a la vez, 339 00:15:17,160 --> 00:15:21,480 parece que las imágenes en movimiento, y para que pueda obtener videos también. 340 00:15:21,480 --> 00:15:23,460 >> Así, utilizando estos mismos primitivas simples que hacen 341 00:15:23,460 --> 00:15:28,070 tener la forma de representar en última instancia, todas estas formas de medios de comunicación. 342 00:15:28,070 --> 00:15:30,450 Y hemos resumieron nuevo y otra vez y otra vez, hasta que 343 00:15:30,450 --> 00:15:33,467 llegar desde el nivel más bajo a este nivel más alto. 344 00:15:33,467 --> 00:15:35,550 Lo que nos da este idea general de la abstracción. 345 00:15:35,550 --> 00:15:36,990 Pero empezamos aquí. 346 00:15:36,990 --> 00:15:38,790 >> Aquí ahora, podríamos representar en un ordenador 347 00:15:38,790 --> 00:15:41,920 nuestras entradas con ceros y unos, nuestras salidas en ceros y unos, 348 00:15:41,920 --> 00:15:43,640 pero lo que pasa dentro de la caja? 349 00:15:43,640 --> 00:15:46,080 Ahí es donde la computadora la ciencia se pone interesante. 350 00:15:46,080 --> 00:15:49,770 Eso es donde realmente llevar su propia mente a cargar para resolver problemas. 351 00:15:49,770 --> 00:15:52,590 Ahora podemos estipular, por la resto del semestre, sí. 352 00:15:52,590 --> 00:15:53,870 Sé cómo funciona binarios. 353 00:15:53,870 --> 00:15:57,942 Recuerdo como ASCII o Unicode-- la asignación a letters-- obras. 354 00:15:57,942 --> 00:15:59,650 Y sin duda se destaca la razón de que nos 355 00:15:59,650 --> 00:16:03,470 podría representar rojo y verde y azul, y representan multimedia también. 356 00:16:03,470 --> 00:16:05,390 Pero esta es la materia interesante. 357 00:16:05,390 --> 00:16:09,790 Esto es lo que hace que alguien capaz de resolver los problemas. 358 00:16:09,790 --> 00:16:11,980 >> Y uno de esos problemas nos gusta hacer, de hecho, 359 00:16:11,980 --> 00:16:15,345 se está llevando a la asistencia, o haciendo esto algorítmicamente. 360 00:16:15,345 --> 00:16:16,470 Y de nuevo, podría hacer esto. 361 00:16:16,470 --> 00:16:19,580 Yo podría hacer una, dos, tres, cuatro cinco, seis, siete, ocho y nueve. 362 00:16:19,580 --> 00:16:21,520 Y pude escribirlo hacia abajo para realizar un seguimiento de la misma. 363 00:16:21,520 --> 00:16:23,769 Pero eso es sólo la forma en que lo haría representar la información. 364 00:16:23,769 --> 00:16:27,550 O podría hacer esto faster-- dos, cuatro, seis, ocho, diez, 12, 14, 16, 18, 20, 365 00:16:27,550 --> 00:16:30,380 22-- se siente como dos veces tan rápido pero sigue siendo 366 00:16:30,380 --> 00:16:32,050 va a tomar un montón de tiempo. 367 00:16:32,050 --> 00:16:35,990 >> Pero resulta que, sin embargo, si aprovechamos resource-- otros ordenadores y, de hecho 368 00:16:35,990 --> 00:16:38,940 en estos días tienen varias CPU o el cerebro. 369 00:16:38,940 --> 00:16:41,970 Resulta que las computadoras pueden hacer muchas cosas a la vez, 370 00:16:41,970 --> 00:16:44,460 y de hecho, en esta sala, podría representar exactamente esto. 371 00:16:44,460 --> 00:16:47,130 >> Así que es un poco de vista social torpe, pero si lo haría con mi humor 372 00:16:47,130 --> 00:16:51,550 por sólo un proceso de tres pasos, y mucho Me pregunto a cada uno en su lugar allí sólo 373 00:16:51,550 --> 00:16:54,640 de ponerse de pie por un momento. 374 00:16:54,640 --> 00:16:57,380 Levántate. 375 00:16:57,380 --> 00:17:01,580 Así piensa a sí mismo, el número de uno-- para que todos en esta sala, 376 00:17:01,580 --> 00:17:05,010 excepto la gente que no lo hicieron oblige, están pensando en el número uno. 377 00:17:05,010 --> 00:17:06,510 De modo que sea su número en este momento. 378 00:17:06,510 --> 00:17:09,399 Esta es la primera etapa, o como una científico de la computación o un programador 379 00:17:09,399 --> 00:17:11,827 normalmente lo haría, vamos para empezar a contar desde cero. 380 00:17:11,827 --> 00:17:14,410 Si el número más pequeño que podamos representar con esas bombillas 381 00:17:14,410 --> 00:17:17,410 es cero, por lo que les deja solo fuera poco, puede ser que también acaba 382 00:17:17,410 --> 00:17:19,271 empezará a contar a partir cero es lugar de uno. 383 00:17:19,271 --> 00:17:21,020 Y lo que es lo Los informáticos. 384 00:17:21,020 --> 00:17:23,750 Así que paso a cero, ponerse de pie y pensar en el número uno. 385 00:17:23,750 --> 00:17:26,339 El siguiente paso es esto- par con alguien de pie 386 00:17:26,339 --> 00:17:27,660 y añadir sus números. 387 00:17:27,660 --> 00:17:30,660 388 00:17:30,660 --> 00:17:32,850 Maravilloso. 389 00:17:32,850 --> 00:17:37,640 >> Así que en este momento en el tiempo, literalmente, todos los participantes 390 00:17:37,640 --> 00:17:41,930 está pensando en el número 2, excepto para una persona extraña si tenemos 391 00:17:41,930 --> 00:17:43,450 un número impar de personas en la habitación. 392 00:17:43,450 --> 00:17:50,640 Y ahora el tercer paso aquí va a esto- ser uno de vosotros debe sentarse. 393 00:17:50,640 --> 00:17:54,490 Uno de vosotros debe sentarse, y si usted está todavía en pie, 394 00:17:54,490 --> 00:17:56,590 volver al paso uno. 395 00:17:56,590 --> 00:18:44,799 396 00:18:44,799 --> 00:18:45,790 Todo bien. 397 00:18:45,790 --> 00:19:00,760 398 00:19:00,760 --> 00:19:01,650 Todo bien. 399 00:19:01,650 --> 00:19:03,880 Por lo que cada vez más personas debe estar sentado abajo. 400 00:19:03,880 --> 00:19:08,280 Observe que esto ha inducido un loop-- algún tipo de ciclo. 401 00:19:08,280 --> 00:19:11,983 Algunos de ustedes debe haber pegado con torpeza, yendo y viniendo entre el paso uno 402 00:19:11,983 --> 00:19:14,180 y dos, uno y dos, uno y dos. 403 00:19:14,180 --> 00:19:21,190 404 00:19:21,190 --> 00:19:21,810 Está bien. 405 00:19:21,810 --> 00:19:22,630 Nuestro primer error. 406 00:19:22,630 --> 00:19:24,740 Nos ocuparemos de eso. 407 00:19:24,740 --> 00:19:25,320 Todo bien. 408 00:19:25,320 --> 00:19:27,370 Voy a tratar de impulsar las cosas. 409 00:19:27,370 --> 00:19:31,454 >> En teoría, sólo una persona está de pie como todo el mundo sigue emparejarse. 410 00:19:31,454 --> 00:19:33,870 Pero permítanme acelerar las cosas con la gente que sigue en pie. 411 00:19:33,870 --> 00:19:35,480 ¿Qué número está pensando? 412 00:19:35,480 --> 00:19:36,070 46. 413 00:19:36,070 --> 00:19:36,570 DE ACUERDO. 414 00:19:36,570 --> 00:19:37,820 Vaya por delante y sentarse. 415 00:19:37,820 --> 00:19:39,190 Ustedes se mantienen en pie. 416 00:19:39,190 --> 00:19:42,130 Que todavía está de pie? 417 00:19:42,130 --> 00:19:45,240 ¿Qué número está pensando? 418 00:19:45,240 --> 00:19:46,160 DE ACUERDO. 419 00:19:46,160 --> 00:19:47,900 >> Así que vamos a volver a usted. 420 00:19:47,900 --> 00:19:49,630 ¿En la espalda? 421 00:19:49,630 --> 00:19:50,790 ¿Que es eso? 422 00:19:50,790 --> 00:19:53,100 22. 423 00:19:53,100 --> 00:19:56,540 Aceptar a alguien más top-- sí? 424 00:19:56,540 --> 00:19:57,720 34. 425 00:19:57,720 --> 00:19:58,300 DE ACUERDO. 426 00:19:58,300 --> 00:20:02,780 Por aquí en mi derecha- aquí arriba? 427 00:20:02,780 --> 00:20:06,820 132, muy agradable. 428 00:20:06,820 --> 00:20:08,380 22? 429 00:20:08,380 --> 00:20:08,990 >> DE ACUERDO. 430 00:20:08,990 --> 00:20:10,031 Y que todavía está de pie? 431 00:20:10,031 --> 00:20:11,000 ¿Aqui? 432 00:20:11,000 --> 00:20:14,520 46, muy agradable. 433 00:20:14,520 --> 00:20:16,890 72. 434 00:20:16,890 --> 00:20:18,220 No puedo detener mucho más tiempo. 435 00:20:18,220 --> 00:20:20,520 ¿Sí? 436 00:20:20,520 --> 00:20:22,490 30, agradable. 437 00:20:22,490 --> 00:20:24,120 ¿Aqui? 438 00:20:24,120 --> 00:20:26,200 23? 439 00:20:26,200 --> 00:20:27,270 23. 440 00:20:27,270 --> 00:20:30,920 >> Y creo que eso es todo el mundo excepto ustedes, no hay presión. 441 00:20:30,920 --> 00:20:32,860 Oh espera. 442 00:20:32,860 --> 00:20:33,360 28? 443 00:20:33,360 --> 00:20:37,500 444 00:20:37,500 --> 00:20:38,281 Sólo ocho. 445 00:20:38,281 --> 00:20:38,780 DE ACUERDO. 446 00:20:38,780 --> 00:20:41,030 Sólo ocho. 447 00:20:41,030 --> 00:20:42,580 ¿Aquí abajo? 448 00:20:42,580 --> 00:20:44,570 30. 449 00:20:44,570 --> 00:20:47,344 23. 450 00:20:47,344 --> 00:20:47,843 24. 451 00:20:47,843 --> 00:20:50,810 452 00:20:50,810 --> 00:20:52,310 18. 453 00:20:52,310 --> 00:20:54,690 Este es el peor ejecución de este algoritmo nunca. 454 00:20:54,690 --> 00:20:55,190 DE ACUERDO. 455 00:20:55,190 --> 00:20:59,760 Así que cualquier otra persona? 456 00:20:59,760 --> 00:21:00,421 ¿Alguien mas? 457 00:21:00,421 --> 00:21:00,920 DE ACUERDO. 458 00:21:00,920 --> 00:21:03,300 Uno mas. 459 00:21:03,300 --> 00:21:04,400 ¿dieciséis? 460 00:21:04,400 --> 00:21:04,900 DE ACUERDO. 461 00:21:04,900 --> 00:21:05,510 dieciséis. 462 00:21:05,510 --> 00:21:06,010 Todo bien. 463 00:21:06,010 --> 00:21:09,070 Así que si no me he perdido a nadie en el resplandor aquí, cuando pulso Intro, 464 00:21:09,070 --> 00:21:13,091 vamos a ver, de forma algorítmica, el número total de personas en Sanders. 465 00:21:13,091 --> 00:21:16,340 Porque, de nuevo, es como si todo el mundo como te sentabas, pasado su número fuera 466 00:21:16,340 --> 00:21:19,215 a otra persona, a otra persona, a otra persona, por lo que, en teoría, 467 00:21:19,215 --> 00:21:22,304 Al final, sólo una incómoda persona debe dejarse de pie. 468 00:21:22,304 --> 00:21:22,970 Pero eso está bien. 469 00:21:22,970 --> 00:21:24,290 Aceleramos las cosas manualmente. 470 00:21:24,290 --> 00:21:27,590 Es especialmente difícil de ver en este espacio particular. 471 00:21:27,590 --> 00:21:34,200 >> Y el número total de personas creemos que hay aquí es 546. 472 00:21:34,200 --> 00:21:37,330 El número total me entregaron por los becarios de enseñanza, 473 00:21:37,330 --> 00:21:40,660 quién lo hizo el viejo de manera lenta la escuela, era de 820. 474 00:21:40,660 --> 00:21:43,660 >> [Risas] 475 00:21:43,660 --> 00:21:47,170 >> [APLAUSOS] 476 00:21:47,170 --> 00:21:48,670 >> Está bien. 477 00:21:48,670 --> 00:21:50,740 Por lo que seguramente entonces, hay estos insectos. 478 00:21:50,740 --> 00:21:51,460 Y eso está bien. 479 00:21:51,460 --> 00:21:53,810 Y por lo que pensar de nuevo en este la primera vez que algo 480 00:21:53,810 --> 00:21:55,420 se escribe no necesariamente tiene que funcionar. 481 00:21:55,420 --> 00:21:57,620 Esto me ha pasado aquí también. 482 00:21:57,620 --> 00:22:00,844 Pero ahora vamos a considerar cómo podría aplicar esta misma idea a algo 483 00:22:00,844 --> 00:22:03,760 que podría haber visto antes, lo cual es esta vieja tecnología de la escuela aquí-- 484 00:22:03,760 --> 00:22:05,130 una libreta de teléfonos muy grande. 485 00:22:05,130 --> 00:22:09,380 Y supongamos que esta libreta de teléfonos tiene 1.000 páginas y 1.000 nombres 486 00:22:09,380 --> 00:22:11,360 y los números alfabéticamente dentro de ella. 487 00:22:11,360 --> 00:22:14,860 >> Bueno, podríamos tipo de aplicar un similares idea para este problema muy físico, 488 00:22:14,860 --> 00:22:16,270 simplemente usando mí. 489 00:22:16,270 --> 00:22:18,810 Yo sólo tipo de trampa mediante el aprovechamiento de todos ustedes 490 00:22:18,810 --> 00:22:23,240 con montones y montones de diferentes CPUs o cerebros ejecutar algún algoritmo. 491 00:22:23,240 --> 00:22:25,440 Pero si es sólo poco viejo yo, todavía puedo 492 00:22:25,440 --> 00:22:29,630 aprovechar esa misma esencia de una idea de dividir y conquistar ese problema 493 00:22:29,630 --> 00:22:32,970 una y otra vez, por lo que la mitad de ustedes, la mitad de ustedes, la mitad de ustedes, la mitad de ustedes, 494 00:22:32,970 --> 00:22:35,830 teóricamente mantenerse sentado, hasta que nos fuimos, en teoría, 495 00:22:35,830 --> 00:22:36,990 con una sola persona. 496 00:22:36,990 --> 00:22:39,810 >> Así que en esta vieja escuela la tecnología, como no lo hacemos 497 00:22:39,810 --> 00:22:43,030 necesita esta map-- este La tecnología de la vieja escuela, 498 00:22:43,030 --> 00:22:47,300 podríamos empezar a buscar a alguien como Mike Smith, una página a la vez. 499 00:22:47,300 --> 00:22:49,410 Y veo que no, Mike no está aquí. 500 00:22:49,410 --> 00:22:51,110 Todavía estoy en la sección A. 501 00:22:51,110 --> 00:22:53,900 Con el tiempo, me parece a mí mismo en la sección B. 502 00:22:53,900 --> 00:22:56,910 Y esto es un algorithm-- paso a paso la instrucción. 503 00:22:56,910 --> 00:22:59,890 Comience en la página de inicio y uno a la vez, buscar Mike Smith. 504 00:22:59,890 --> 00:23:03,410 ¿Es esta correct-- este algoritmo o método? 505 00:23:03,410 --> 00:23:04,550 >> Sí, es correcto. 506 00:23:04,550 --> 00:23:06,840 Si Mike está aquí, con el tiempo Voy a llegar a él. 507 00:23:06,840 --> 00:23:08,139 Pero no es eficiente. 508 00:23:08,139 --> 00:23:09,180 Es obvio que es muy lento. 509 00:23:09,180 --> 00:23:11,340 Así que se puede aprovechar la twosies mismas se aproximan. 510 00:23:11,340 --> 00:23:15,350 Puedo hacer una especie de dos, cuatro, seis, ocho, 10, 12. 511 00:23:15,350 --> 00:23:16,330 Es dos veces más rápido. 512 00:23:16,330 --> 00:23:18,290 Voy a llegar a Mike más rápido si está allí. 513 00:23:18,290 --> 00:23:20,770 ¿Es correcto? 514 00:23:20,770 --> 00:23:22,320 Sí, pero no oí un poco--. 515 00:23:22,320 --> 00:23:24,200 Ahora oí un no. 516 00:23:24,200 --> 00:23:24,700 Sí. 517 00:23:24,700 --> 00:23:26,190 Hay un insecto potencialmente. 518 00:23:26,190 --> 00:23:29,374 Tal vez Mike consigue simplemente por accidente intercalada entre dos páginas, 519 00:23:29,374 --> 00:23:31,290 porque yo estoy volando a través esta dos a la vez. 520 00:23:31,290 --> 00:23:33,580 Así, al menos, necesitamos un poco de tipo de solución condicional. 521 00:23:33,580 --> 00:23:35,330 Necesito decir, hey, si golpeo a alguien cuya 522 00:23:35,330 --> 00:23:39,190 nombre comienza con una T en lugar de una S, Será mejor doble vuelta al menos una página. 523 00:23:39,190 --> 00:23:40,767 Así que con errores al principio, pero puede arreglar. 524 00:23:40,767 --> 00:23:43,850 Pero ninguno de nosotros va a buscar Mike Smith a través de un teléfono de 1.000 páginas 525 00:23:43,850 --> 00:23:45,290 reservar una página a la vez. 526 00:23:45,290 --> 00:23:48,486 ¿Qué es una persona normal va a hacer? 527 00:23:48,486 --> 00:23:50,860 Vas a ir a la década de S, si sabía dónde estaba el del S. 528 00:23:50,860 --> 00:23:54,230 Usted puede ir más o menos a la mitad o ligeramente sesgado hacia el final. 529 00:23:54,230 --> 00:23:56,850 Y miro aquí y Estoy en la sección M. 530 00:23:56,850 --> 00:23:58,952 Pero qué sabes sobre este problema ahora, 531 00:23:58,952 --> 00:24:02,160 que no necesariamente saber antes con todos nosotros simplemente contando a nosotros mismos 532 00:24:02,160 --> 00:24:03,030 equivalentemente? 533 00:24:03,030 --> 00:24:06,010 Bueno, Mike va claramente estar en esta parte del libro 534 00:24:06,010 --> 00:24:07,920 si está aquí en absoluto porque está ordenada. 535 00:24:07,920 --> 00:24:10,160 >> Y por lo que puede muy dramatically-- 536 00:24:10,160 --> 00:24:11,250 >> [Jadeando] 537 00:24:11,250 --> 00:24:12,300 >> Lo sé. 538 00:24:12,300 --> 00:24:16,940 >> [APLAUSOS] 539 00:24:16,940 --> 00:24:19,450 >> En realidad es muy fácil si lo hace en la espina dorsal allí. 540 00:24:19,450 --> 00:24:22,070 Pero a continuación, puede tirar la mitad del problema de distancia. 541 00:24:22,070 --> 00:24:25,950 Ahora, me quedo con el mismo problema-- Mike Smith en encontrar un teléfono book-- 542 00:24:25,950 --> 00:24:29,610 pero ahora la guía telefónica comienza a M y va a la Z, pero es la mitad de grande. 543 00:24:29,610 --> 00:24:30,890 >> Pero esto es lo que es impresionante. 544 00:24:30,890 --> 00:24:34,170 Al igual que en la teoría, chicos, cuando que todos se sentaron sólo la mitad a la vez, 545 00:24:34,170 --> 00:24:37,150 el problema tiene la mitad del tamaño, la mitad de grande, una y otra vez. 546 00:24:37,150 --> 00:24:40,260 Por lo tanto se ha convertido en el problema de la mismo problema, pero la mitad de grande. 547 00:24:40,260 --> 00:24:42,670 Ahora se trata de un problema de 250 páginas. 548 00:24:42,670 --> 00:24:45,340 Tan pronto como me di cuenta, oh, estoy en la sección T accidentalmente. 549 00:24:45,340 --> 00:24:46,590 He ido demasiado lejos. 550 00:24:46,590 --> 00:24:48,500 Puedo tirar que la mitad de la guía telefónica de distancia. 551 00:24:48,500 --> 00:24:50,410 Ahora, estoy abajo a una trimestre del problema. 552 00:24:50,410 --> 00:24:53,910 >> Y se puede repetir, repetir, repetir hasta que, en teoría, estás 553 00:24:53,910 --> 00:24:55,460 la izquierda con una sola página. 554 00:24:55,460 --> 00:24:59,010 Y si Mike es en esa página, Ahora puedo resolver este problema. 555 00:24:59,010 --> 00:25:00,810 Pero la rapidez con lo soluciono? 556 00:25:00,810 --> 00:25:05,420 En el primer caso, me tomó como tal vez 1.000 pasos para encontrar Mike Smith. 557 00:25:05,420 --> 00:25:09,260 Podría haber tomado me-- Cogí la guía telefónica 558 00:25:09,260 --> 00:25:11,440 y empecé a buscar una página a la vez, 559 00:25:11,440 --> 00:25:13,480 y Mike podría ser de 1.000 páginas más adelante. 560 00:25:13,480 --> 00:25:16,020 >> Segundo enfoque tal vez me lleva 500 pasos, 561 00:25:16,020 --> 00:25:17,960 porque yo estoy volando a través de dos en dos. 562 00:25:17,960 --> 00:25:21,082 Y el tercer enfoque, sin embargo, es especialmente potente. 563 00:25:21,082 --> 00:25:23,790 Pero vamos a considerar lo que en realidad hizo con este tercer enfoque. 564 00:25:23,790 --> 00:25:27,590 Voy a tener lo que llamaré sólo estos declaraciones aquí, uno a la vez. 565 00:25:27,590 --> 00:25:28,560 Recoger una guía de teléfonos. 566 00:25:28,560 --> 00:25:30,130 Abrir a la mitad de la guía telefónica. 567 00:25:30,130 --> 00:25:31,419 Mira nombres. 568 00:25:31,419 --> 00:25:33,960 Y entonces las cosas se ponen un poco intelectualmente más interesante, 569 00:25:33,960 --> 00:25:35,170 si sigue sencilla. 570 00:25:35,170 --> 00:25:38,350 Si Smith se encuentra entre la nombres en esa página actual, 571 00:25:38,350 --> 00:25:40,170 a continuación, hacer algo de forma condicional. 572 00:25:40,170 --> 00:25:41,840 Es como un tenedor en la carretera. 573 00:25:41,840 --> 00:25:42,660 Llame a Mike. 574 00:25:42,660 --> 00:25:44,930 Si Mike es uno de los nombres en esa página, llamado Mike. 575 00:25:44,930 --> 00:25:49,720 Pero sólo lo hacen si la línea línea de cuatro árbol, si se quiere, es cierto. 576 00:25:49,720 --> 00:25:51,590 La respuesta a esa pregunta es sí. 577 00:25:51,590 --> 00:25:55,520 >> Porque si Smith es más temprano en el book-- en otras palabras, si estoy en la sección H 578 00:25:55,520 --> 00:25:58,540 y estoy buscando a alguien para la izquierda, a continuación, lo que debe hacer 579 00:25:58,540 --> 00:26:00,300 es algo muy similar. 580 00:26:00,300 --> 00:26:03,440 Entonces debería abrir a la mitad de la mitad izquierda del libro. 581 00:26:03,440 --> 00:26:07,930 Así que ir a la izquierda, y luego vuelva al paso dos. 582 00:26:07,930 --> 00:26:09,290 Mire los nombres allí. 583 00:26:09,290 --> 00:26:12,779 >> Así, en otras palabras, hacer lo mismo, pero en un problema que se ha reducido a la mitad. 584 00:26:12,779 --> 00:26:13,570 ¿Sabes qué más? 585 00:26:13,570 --> 00:26:16,470 Si Smith es tarde en el libro sobre la base de la página que estoy mirando, 586 00:26:16,470 --> 00:26:18,790 abierto a la mitad de la la mitad derecha del libro 587 00:26:18,790 --> 00:26:22,050 y luego volver de nuevo al paso dos, else-- 588 00:26:22,050 --> 00:26:24,000 hay una cuarta posibilidad aquí. 589 00:26:24,000 --> 00:26:28,830 Mike ya sea aquí o hacia la izquierda o hacia la derecha o no. 590 00:26:28,830 --> 00:26:30,570 Y aquí es mejor que consideramos esto. 591 00:26:30,570 --> 00:26:33,360 Y de hecho, si usted ha tenido alguna vez el equipo acaba de estrellarse en usted, 592 00:26:33,360 --> 00:26:36,822 que es a veces, pero no siempre, el resultado de sólo un programador humano no 593 00:26:36,822 --> 00:26:39,280 darse cuenta, oh disparar, hay En realidad este cuarto escenario. 594 00:26:39,280 --> 00:26:41,650 Y si usted no escribe código para manejar ese escenario, 595 00:26:41,650 --> 00:26:43,220 a veces no se sabe lo que el equipo puede hacer. 596 00:26:43,220 --> 00:26:44,770 Y de hecho un programa podría bloquearse. 597 00:26:44,770 --> 00:26:47,550 >> Pero en este caso, pensé sobre él, y le dije, de lo contrario dejar de fumar, 598 00:26:47,550 --> 00:26:49,850 porque esa es la cuarta escenario lógica posible. 599 00:26:49,850 --> 00:26:51,950 Ahora, vamos a añadir algo de vocabulario, así que 600 00:26:51,950 --> 00:26:55,320 puede empezar a girar alrededor de los términos que son por lo demás bastante intuitiva. 601 00:26:55,320 --> 00:26:57,870 Todas las cosas que acabamos de resaltado en amarillo aquí, 602 00:26:57,870 --> 00:27:00,140 Sólo voy a la funciones o procedimientos. 603 00:27:00,140 --> 00:27:01,590 Son sólo tipo de acciones. 604 00:27:01,590 --> 00:27:04,900 Así que recoger, abierto a, mira a, llamar, abierta, abierta, 605 00:27:04,900 --> 00:27:09,170 quit-- estos son sólo las acciones, o lo llamarlos de manera más formal, funciones. 606 00:27:09,170 --> 00:27:11,410 >> Mientras tanto, ahora en amarillo, He destacado cosas 607 00:27:11,410 --> 00:27:14,084 que- vamos a empezar a llamar ellos condiciones o ramas. 608 00:27:14,084 --> 00:27:16,750 Estos son los puntos de decisión donde usted puede ir por este camino, de esta manera, 609 00:27:16,750 --> 00:27:18,100 o alguna otra dirección todavía. 610 00:27:18,100 --> 00:27:19,430 Así que los habrá condiciones. 611 00:27:19,430 --> 00:27:20,930 Y ahora éste es un poco más elegante. 612 00:27:20,930 --> 00:27:24,600 Vamos a llamar a estas preguntas Las expresiones booleanas, 613 00:27:24,600 --> 00:27:26,530 después de que alguien con un apellido Bool. 614 00:27:26,530 --> 00:27:28,340 >> Y una expresión booleana es sólo algo 615 00:27:28,340 --> 00:27:30,290 eso es verdadero o falso, sí o no. 616 00:27:30,290 --> 00:27:35,870 Por lo que es la pregunta cuya respuesta se preocuparse, de manera que en una condición 617 00:27:35,870 --> 00:27:39,210 hacer una vuelta en decisión conseguir una respuesta, y luego ir a la izquierda oa la derecha, o algo 618 00:27:39,210 --> 00:27:40,450 más en conjunto. 619 00:27:40,450 --> 00:27:42,860 >> Y a continuación, por último, estos líneas aquí-- se remontan 620 00:27:42,860 --> 00:27:44,737 al paso dos, volver al paso que podría dos-- 621 00:27:44,737 --> 00:27:46,320 poner en práctica esta idea de diferentes maneras. 622 00:27:46,320 --> 00:27:49,028 Y a continuación, los que tengáis experiencia en programación podría haber hecho 623 00:27:49,028 --> 00:27:50,670 o se puede imaginar haciendo esto de manera diferente. 624 00:27:50,670 --> 00:27:53,170 Sin embargo, para los propósitos de la actualidad, es sólo la idea que importa. 625 00:27:53,170 --> 00:27:55,400 Esta es la inducción de lo que llamaremos general 626 00:27:55,400 --> 00:28:00,110 un loop-- algún tipo de ciclo, porque me está haciendo hacer algo nuevo. 627 00:28:00,110 --> 00:28:03,340 >> Así que ahora, vamos a considerar lo bueno que este algoritmo es. 628 00:28:03,340 --> 00:28:03,899 Es correcto. 629 00:28:03,899 --> 00:28:06,940 Si Mike está en el libro, que es una de los cuatro scenarios-- una y otra vez 630 00:28:06,940 --> 00:28:08,023 y otra vez, lo encontraremos. 631 00:28:08,023 --> 00:28:08,890 Pero lo bueno es? 632 00:28:08,890 --> 00:28:10,150 Bueno, no tenemos ser demasiado formal aquí. 633 00:28:10,150 --> 00:28:12,066 Pero vamos a trazar algo, X e Y, para conseguir 634 00:28:12,066 --> 00:28:14,470 un sentido de la forma de este problema. 635 00:28:14,470 --> 00:28:17,160 >> En el eje x es aquí el tamaño de mi problema. 636 00:28:17,160 --> 00:28:20,256 Y un eje Y aquí será el momento de resolver. 637 00:28:20,256 --> 00:28:21,630 Así que tal vez este es el número de páginas. 638 00:28:21,630 --> 00:28:24,400 Tal vez esto es cuestión de segundos o La página de turns-- lo que sea. 639 00:28:24,400 --> 00:28:27,290 Sin embargo desea contar es lo que esta imagen representará. 640 00:28:27,290 --> 00:28:30,630 Y ese primer algoritmo, voy para describir simplemente como una línea recta. 641 00:28:30,630 --> 00:28:33,120 Si hay n páginas en la guía telefónica, entonces 642 00:28:33,120 --> 00:28:36,010 Me podría tomar hasta como n pasos para encontrar Mike. 643 00:28:36,010 --> 00:28:38,930 Si Verizon o la compañía telefónica añade una página más el próximo año, 644 00:28:38,930 --> 00:28:42,170 me podría tomar una más step-- una unidad más de tiempo para encontrar Mike. 645 00:28:42,170 --> 00:28:44,230 Así que no sólo esta relación uno a uno. 646 00:28:44,230 --> 00:28:45,970 Es una pendiente recta. 647 00:28:45,970 --> 00:28:49,110 >> Mientras tanto, ese segundo algorithm-- si estoy 648 00:28:49,110 --> 00:28:51,570 ir de dos en dos en dos tiempo--, cuatro, seis, ocho, o double-- 649 00:28:51,570 --> 00:28:54,550 pasando por las páginas dos veces a la vez, de dos en dos, 650 00:28:54,550 --> 00:28:55,710 aún así es la línea recta. 651 00:28:55,710 --> 00:28:58,720 Ahora hay de uno a dos relación, pero un poco más bajo. 652 00:28:58,720 --> 00:29:02,240 Así que si hay esta cantidad de páginas en la tabla de aquí en amarillo, 653 00:29:02,240 --> 00:29:04,800 que me podría aprovechar esta muchos pasos o segundos, 654 00:29:04,800 --> 00:29:07,980 de lo contrario, me va a tomar el doble que en la línea roja. 655 00:29:07,980 --> 00:29:10,190 >> Pero la línea verde es la comida para llevar real. 656 00:29:10,190 --> 00:29:12,290 Esto es lo que generalmente llamar a un registro de logorithm-- 657 00:29:12,290 --> 00:29:13,840 de n, donde n es el número de páginas. 658 00:29:13,840 --> 00:29:16,450 Pero es la forma lo que importa hoy en día, porque no tenemos 659 00:29:16,450 --> 00:29:17,950 para pensar en el trazado de puntos. 660 00:29:17,950 --> 00:29:19,830 >> Piense en un escenario extremo. 661 00:29:19,830 --> 00:29:23,070 Supongamos Verizon duplica la mañana número de páginas de ese directorio, 662 00:29:23,070 --> 00:29:24,900 de 1.000 a 2.000. 663 00:29:24,900 --> 00:29:28,440 En el primer algoritmo, I podría perder un extra de 1.000 664 00:29:28,440 --> 00:29:32,080 pasos en busca de Mike, sólo porque Verizon duplicó el tamaño del libro. 665 00:29:32,080 --> 00:29:34,740 El segundo algorithm-- que podría llevarme un extra de 500 pasos. 666 00:29:34,740 --> 00:29:38,370 1.000 páginas más, que van de dos en dos tiempo-- 500 pasos más para encontrar Mike. 667 00:29:38,370 --> 00:29:41,020 >> Pero eso tercera algoritmo es una especie de mágico. 668 00:29:41,020 --> 00:29:44,270 Verizon duplica el número de páginas de 1.000 a 2.000, 669 00:29:44,270 --> 00:29:47,730 Pero, ¿cuántos más pasos hace que me llevan a buscar a Mike? 670 00:29:47,730 --> 00:29:51,220 Es sólo uno, porque sólo puedo rasgar el directorio telefónico una vez más 671 00:29:51,220 --> 00:29:55,280 de un problema de 2000 página a un 1.000 problema de la página, y listo. 672 00:29:55,280 --> 00:29:57,030 Me he tomado un bocado masiva fuera de él. 673 00:29:57,030 --> 00:29:59,405 >> Y si vas realmente extremo, suponer que la guía telefónica 674 00:29:59,405 --> 00:30:03,600 compañía tenía algo loco como un directorio telefónico de 4 mil millones página. 675 00:30:03,600 --> 00:30:07,020 Así la cantidad de pasos que puede tomar para encontrar Mike Smith en un 4 mil millones 676 00:30:07,020 --> 00:30:09,990 La página de la guía telefónica? 677 00:30:09,990 --> 00:30:16,450 Es un número grande, pero sólo 4 millones de dólares para 2 mil millones a 1000 millones a la 500 millones, 678 00:30:16,450 --> 00:30:18,720 250 millones-- todavía suena como grandes números, 679 00:30:18,720 --> 00:30:20,980 pero soy muy rápidamente llegar a valores más pequeños. 680 00:30:20,980 --> 00:30:24,790 >> Y de hecho, si no hago la matemáticas derecho, sólo puedo dividir 4 mil millones 681 00:30:24,790 --> 00:30:28,750 por aproximadamente 32 veces antes Me pongo a sólo uno. 682 00:30:28,750 --> 00:30:31,640 Así que si ese libro de teléfono eran 4 miles de millones de páginas, no es gran cosa. 683 00:30:31,640 --> 00:30:35,270 Al cabo de unos segundos, tal vez 32 segundo, que podrían dividir por la mitad 684 00:30:35,270 --> 00:30:39,560 y, finalmente, encontrar o Mike la conclusión de que él no está allí. 685 00:30:39,560 --> 00:30:42,219 Y esa es la esencia de una algorithm-- un buen algoritmo. 686 00:30:42,219 --> 00:30:44,260 Y eso es una de las objetivos de una clase como esta, 687 00:30:44,260 --> 00:30:47,350 está tratando de averiguar cómo puedo resolver el problema no sólo correctamente, 688 00:30:47,350 --> 00:30:52,360 como siempre supe cómo hacerlo uno página a la tiempo-- pero correctamente y bien. 689 00:30:52,360 --> 00:30:55,034 ¿Cómo diseño buena soluciones a los problemas? 690 00:30:55,034 --> 00:30:57,200 Así que tomemos un momento aquí y darle un sentido ahora 691 00:30:57,200 --> 00:31:00,260 de CS50 el curso itself-- introducir miembros del personal de algunos de golf. 692 00:31:00,260 --> 00:31:02,010 Justo antes de las 2:00, vamos a tomar un breve descanso 693 00:31:02,010 --> 00:31:03,520 de manera que aquellos de ustedes que se puede ir de compras 694 00:31:03,520 --> 00:31:05,130 pato y tomar una mirar a alguna otra clase 695 00:31:05,130 --> 00:31:06,580 y ver el resto de esta línea. 696 00:31:06,580 --> 00:31:09,250 Pero por ahora, voy a presentar CS50, la propia clase, 697 00:31:09,250 --> 00:31:11,330 y sobre todo lo que es nuevo. 698 00:31:11,330 --> 00:31:13,960 >> Por lo que la primavera pasada, nos pasado un poco de tiempo-- 699 00:31:13,960 --> 00:31:17,911 El personal del curso y yo-- pensar acerca de qué es lo que queremos que sea CS50, 700 00:31:17,911 --> 00:31:19,910 y volver a la primera principios, por así decirlo, 701 00:31:19,910 --> 00:31:22,760 considerar qué es lo que queremos este curso para que parezca y sea 702 00:31:22,760 --> 00:31:23,740 al igual que para sus estudiantes. 703 00:31:23,740 --> 00:31:26,480 Y por lo que verá en el problema establecer un nivel cero, una invitación 704 00:31:26,480 --> 00:31:28,780 para echar un vistazo a esa URL que resume 705 00:31:28,780 --> 00:31:33,270 algunas de las motivaciones detrás de la siguiendo las características de caída de 2016. 706 00:31:33,270 --> 00:31:35,570 >> Así como puede haber recogido Del TL: DR folleto, 707 00:31:35,570 --> 00:31:39,060 el programa de hoy, así como de el catálogo de cursos, este año en CS50, 708 00:31:39,060 --> 00:31:42,540 solo se espera que asistan hoy-- por lo trabajo bien done-- 709 00:31:42,540 --> 00:31:45,960 y la última conferencia el 21 de noviembre. 710 00:31:45,960 --> 00:31:49,150 Y de nada, pero no se espera que asistir a las conferencias en el medio, 711 00:31:49,150 --> 00:31:51,180 porque lo que estamos haciendo este año, está disparando 712 00:31:51,180 --> 00:31:52,661 en tiempo real el material del curso. 713 00:31:52,661 --> 00:31:54,660 Así que todo se quedará actual e incorporado 714 00:31:54,660 --> 00:31:57,410 lo mejor que can-- eventos actuales y conversaciones que la gente podría 715 00:31:57,410 --> 00:32:00,400 estar teniendo en la industria de la mundo, pero hacer que el material 716 00:32:00,400 --> 00:32:03,892 disponible, como resultado, incluso antes les hablé completo con las transcripciones de texto completo 717 00:32:03,892 --> 00:32:05,850 y capacidad de búsqueda y enlaces a otros recursos. 718 00:32:05,850 --> 00:32:07,930 >> Y, de hecho, hemos sido reclamando algún tiempo 719 00:32:07,930 --> 00:32:10,830 y que hacemos ahora creemos esto, que podemos crear, digitalmente, 720 00:32:10,830 --> 00:32:15,170 una mayor inmersión, una más convincente experiencia educativa, en contraposición 721 00:32:15,170 --> 00:32:19,110 para reunir aquí unas 23 veces en persona, escuchar a alguien como yo 722 00:32:19,110 --> 00:32:22,925 hablar simplemente de la informática, en oposición a participar más activamente. 723 00:32:22,925 --> 00:32:25,800 Por lo que verá en el curso del plan de estudios un boceto del semestre aquí, 724 00:32:25,800 --> 00:32:27,840 junto con conferencias cuando se ser filmado, a la que estás 725 00:32:27,840 --> 00:32:29,710 bienvenidos, pero no se espera, y cuando se 726 00:32:29,710 --> 00:32:31,640 ser lanzado el sitio web del curso. 727 00:32:31,640 --> 00:32:34,300 >> Y lo que haremos aquí en Los miércoles a partir la próxima semana, 728 00:32:34,300 --> 00:32:37,362 es mucho más íntimamente, con la única aquellas personas que quieran participar, 729 00:32:37,362 --> 00:32:39,820 es una llamada a pie a través, donde yo y cabezas del curso 730 00:32:39,820 --> 00:32:41,730 en realidad hacer las cosas un poco más íntimo 731 00:32:41,730 --> 00:32:44,313 aquí abajo, en la orquesta sección, todavía tiene algo de tecnología 732 00:32:44,313 --> 00:32:46,365 y caminar a través de la conjunto de problemas de la semana en curso, 733 00:32:46,365 --> 00:32:50,020 y le ofrecen principalmente: si entre los menos comfortable-- tanto más 734 00:32:50,020 --> 00:32:52,790 orientación que es posible que desee o necesitará para el desafío de la semana. 735 00:32:52,790 --> 00:32:55,820 Y del mismo modo, para los que no pueden asistir a los de la persona, no es gran cosa. 736 00:32:55,820 --> 00:32:58,486 No serán conducidos de manera similar por uno de los altos funcionarios de la asignatura, 737 00:32:58,486 --> 00:33:02,650 Zamalya, la misma oportunidad incrustado en el problema configura a sí mismos. 738 00:33:02,650 --> 00:33:04,960 >> Problema establece este año será lanzado el viernes 739 00:33:04,960 --> 00:33:08,080 y ya no lo hacen siete días más tarde, pero 10 días tarde-- deliberadamente 740 00:33:08,080 --> 00:33:10,910 superposición con cada problema establecer, a fin de acomodar mejor, 741 00:33:10,910 --> 00:33:13,050 esperamos, flujo y reflujo en horarios de los estudiantes, 742 00:33:13,050 --> 00:33:16,550 especialmente cuando los exámenes parciales o atletismo o académicos o extracurriculares 743 00:33:16,550 --> 00:33:18,465 tienden a aparecer y desaparecer en especial de mitad de semestre. 744 00:33:18,465 --> 00:33:21,340 Eso te dará un poco más discreción en cuanto a si usted delante 745 00:33:21,340 --> 00:33:25,690 cargar su semana con CS50 o la carga de nuevo que en el fin de semana siguiente en su lugar. 746 00:33:25,690 --> 00:33:28,817 Así que mira al programa del curso aquí para la programación del mismo. 747 00:33:28,817 --> 00:33:30,900 Y se dará cuenta también entre los cambios este año, 748 00:33:30,900 --> 00:33:34,082 para aquellos más familiarizados con programación en el pasado, 749 00:33:34,082 --> 00:33:36,290 vamos a empezar el semestre como lo haremos hoy en Scratch, 750 00:33:36,290 --> 00:33:39,730 centrarse especialmente en la lengua llamada C, y luego no la transición 751 00:33:39,730 --> 00:33:43,430 a PHP, sino a un lenguaje llamado Python hacia el final del semestre 752 00:33:43,430 --> 00:33:46,565 en el contexto de la programación web, junto con SQL y JavaScript, 753 00:33:46,565 --> 00:33:48,930 HTML, CSS, y aún más. 754 00:33:48,930 --> 00:33:51,790 >> Y en respuesta a una pregunta más frecuente, es de hecho el caso 755 00:33:51,790 --> 00:33:55,520 que el CS no es tan temible como una vez pensó que era, pero es tanto trabajo 756 00:33:55,520 --> 00:33:57,280 ya que había oído que podría ser. 757 00:33:57,280 --> 00:34:03,210 Pero este es el ejemplo que aquí están algunos estadísticas de la caída 2015 alumnado, 758 00:34:03,210 --> 00:34:06,460 por lo que las líneas azules horizontales representar el número medio de horas 759 00:34:06,460 --> 00:34:06,960 reportado. 760 00:34:06,960 --> 00:34:10,570 Y verá un promedio de seis a 10 a 12-- tal vez 16 761 00:34:10,570 --> 00:34:14,580 o así, y así sucesivamente, pero con alta varianza para ser claros. 762 00:34:14,580 --> 00:34:18,570 Y así se da cuenta de que no sólo hay estudiantes más cómodo y menos 763 00:34:18,570 --> 00:34:22,150 cómodo en el curso, pero un soporte correspondiente 764 00:34:22,150 --> 00:34:25,699 estructura para conseguir esos estudiantes hasta el semestre con éxito. 765 00:34:25,699 --> 00:34:29,409 >> En efecto, en respuesta a una pregunta más frecuente, debe CS50 se toma como primer año? 766 00:34:29,409 --> 00:34:30,139 Absolutamente. 767 00:34:30,139 --> 00:34:32,690 Y, de hecho, me arrepiento no haber encontrado el camino 768 00:34:32,690 --> 00:34:35,170 o encontrado un nuevo campo ese primer año también. 769 00:34:35,170 --> 00:34:39,149 Y se debe tomar con CS50 otros cursos, como sin duda bien-- 770 00:34:39,149 --> 00:34:41,940 y los consejos generales que podríamos dar a los estudiantes, que es probablemente CS50 771 00:34:41,940 --> 00:34:44,929 no el tipo de clase o clase de introducción que usted debe tomar con tres 772 00:34:44,929 --> 00:34:47,199 otra u otras cuatro clases de p-set. 773 00:34:47,199 --> 00:34:50,583 Pero si usted está tomando otros dos p-set clases, algo más, y CS50, 774 00:34:50,583 --> 00:34:51,499 absolutamente manejable. 775 00:34:51,499 --> 00:34:54,900 He tenido muchos estudiantes en el pasado hecho con bastante éxito. 776 00:34:54,900 --> 00:34:57,490 >> Y para llegar hacia ese la línea de meta con éxito, 777 00:34:57,490 --> 00:35:00,260 ¿El curso tiene las Categorías-- diferentes pistas para los estudiantes 778 00:35:00,260 --> 00:35:03,100 menos cómodo, más cómodo, y en algún lugar en el medio, 779 00:35:03,100 --> 00:35:04,850 por lo que en el curso de Conjunto primer problema, 780 00:35:04,850 --> 00:35:06,360 se le pedirá que describes. 781 00:35:06,360 --> 00:35:09,151 Y si usted está entre los menos cómoda, que es el tipo de cosa 782 00:35:09,151 --> 00:35:10,420 que acaba bien sabe. 783 00:35:10,420 --> 00:35:13,010 Y, de hecho, que ha sido el crecimiento demográfico en CS50 784 00:35:13,010 --> 00:35:14,090 desde hace unos años. 785 00:35:14,090 --> 00:35:17,680 >> Desde la última caída de ejemplo, el 58% de la clase 786 00:35:17,680 --> 00:35:20,560 se describe a sí mismos como entre los que menos cómodo, 787 00:35:20,560 --> 00:35:23,210 con un 9% entre los más cómoda, y luego 788 00:35:23,210 --> 00:35:25,900 los otros estudiantes allí en rojo describen a sí mismos 789 00:35:25,900 --> 00:35:27,890 como en algún punto intermedio. 790 00:35:27,890 --> 00:35:31,980 Y verá aquí los temas en general y el horario de las secciones, todas las cuales 791 00:35:31,980 --> 00:35:34,820 se ofrecen en persona, en en tiempo real, con el curso de 792 00:35:34,820 --> 00:35:38,320 increíble personal de becarios de enseñanza y los asistentes del curso, algunos de los cuales 793 00:35:38,320 --> 00:35:39,660 va a coincidir en un momento. 794 00:35:39,660 --> 00:35:42,993 >> Secciones sí mismos, como se verá, la voluntad será los lunes y martes y miércoles, 795 00:35:42,993 --> 00:35:45,910 a fin de permitir a bucear después de participar en, si así lo 796 00:35:45,910 --> 00:35:48,110 elegir, en el curso de dar una conferencia a principios de esa semana. 797 00:35:48,110 --> 00:35:51,420 Y después de horas de oficina, los cuales Ciertamente, con cada año que pasa, 798 00:35:51,420 --> 00:35:54,110 no han sido menos de una luchar por el curso. 799 00:35:54,110 --> 00:35:57,040 Y este año, no estamos planeando Sólo en el cargo uno horas-- 800 00:35:57,040 --> 00:36:00,300 en uno oportunidades de ayuda para estudiantes los miércoles los jueves 801 00:36:00,300 --> 00:36:03,790 y los domingos, el último de los estar en la tarde por el diseño 802 00:36:03,790 --> 00:36:06,910 para reducir algo de la tensión que se invariablemente surge con la noche 803 00:36:06,910 --> 00:36:10,180 p-settting con un plazo looming-- sino que también se ofrecerán horas de oficina 804 00:36:10,180 --> 00:36:14,920 los lunes y martes y Los miércoles y los viernes y sábados, 805 00:36:14,920 --> 00:36:17,080 Gracias a nuestros amigos de HSA. 806 00:36:17,080 --> 00:36:20,330 >> CS50 tiene ahora su propio espacio para estudiantes y personal CS50, 807 00:36:20,330 --> 00:36:23,070 67 en lo alto calle Mount Auburn, allí mismo, en Harvard Square. 808 00:36:23,070 --> 00:36:26,340 La visión de los cuales es que CS50 de TFS y las CA durante toda la semana, 809 00:36:26,340 --> 00:36:29,052 más o menos en la mayor parte días, estarán allí para acompañarlo. 810 00:36:29,052 --> 00:36:30,760 Así que si usted tiene un cierto pregunta en un p-set 811 00:36:30,760 --> 00:36:33,093 o te sientes un poco bloqueada o un poco confundido, 812 00:36:33,093 --> 00:36:35,640 y diablos, tienes una hora o media hora entre las clases, 813 00:36:35,640 --> 00:36:38,920 especialmente en el square-- puede usted entrar y echar a esa pregunta respondió 814 00:36:38,920 --> 00:36:41,720 de tener esa confusión clarified-- muy en el espíritu, 815 00:36:41,720 --> 00:36:45,490 usted está familiarizado, de la matemáticas propio centro de las preguntas de matemáticas del departamento, 816 00:36:45,490 --> 00:36:49,300 pero casi todo el día por [? Gcal?] Que vamos a publicar en línea. 817 00:36:49,300 --> 00:36:52,400 >> Tutoría también está disponible para aquellos estudiantes, libremente desde el curso de 818 00:36:52,400 --> 00:36:54,750 personal propio si lo desea más íntimo de uno a uno, 819 00:36:54,750 --> 00:36:58,940 o únicamente dos o tres compañeros de clase, trabajando con uno de los miembros del personal del curso. 820 00:36:58,940 --> 00:37:02,320 Y, de hecho, estos aquí son sólo algunos de los miembros del personal del curso, 821 00:37:02,320 --> 00:37:04,120 algunos de los cuales podrás reunirse en un momento. 822 00:37:04,120 --> 00:37:07,440 De hecho, la propia CS50 compañero de la enseñanza cabeza, 823 00:37:07,440 --> 00:37:09,790 y el curso de la cabeza ayudante, y el preceptor, 824 00:37:09,790 --> 00:37:12,998 podría llegar en un máximo, permitir ellos decir hola. 825 00:37:12,998 --> 00:37:22,498 >> [APLAUSOS] 826 00:37:22,498 --> 00:37:23,456 ALTAVOZ 1: [inaudible]. 827 00:37:23,456 --> 00:37:51,842 828 00:37:51,842 --> 00:37:57,856 >> [APLAUSOS] 829 00:37:57,856 --> 00:37:58,814 ALTAVOZ 2: [inaudible]. 830 00:37:58,814 --> 00:38:17,240 831 00:38:17,240 --> 00:38:27,238 >> [APLAUSOS] 832 00:38:27,238 --> 00:38:28,196 ALTAVOZ 3: [inaudible]. 833 00:38:28,196 --> 00:38:58,951 834 00:38:58,951 --> 00:39:03,120 >> [APLAUSOS] 835 00:39:03,120 --> 00:39:06,740 >> DAVID MALAN: Y nos permiten llevar a bordo dos de CS50 de la mayoría 836 00:39:06,740 --> 00:39:09,730 el personal directivo, Rob y Zamayla también. 837 00:39:09,730 --> 00:39:15,120 >> [APLAUSOS] 838 00:39:15,120 --> 00:39:17,226 >> De hecho, tanto Rob y Zamayla han estado con nosotros 839 00:39:17,226 --> 00:39:19,940 durante tanto tiempo, que yo era capaz para entrar en los archivos del CS50 840 00:39:19,940 --> 00:39:22,470 y encontrar este mismo SD metraje de ellos participando 841 00:39:22,470 --> 00:39:25,402 en sí mismos escenarios hace algunos años. 842 00:39:25,402 --> 00:39:26,110 ROB: [inaudible]. 843 00:39:26,110 --> 00:39:53,660 844 00:39:53,660 --> 00:39:59,247 >> [APLAUSOS] 845 00:39:59,247 --> 00:40:00,080 ZAMAYLA: [inaudible] 846 00:40:00,080 --> 00:40:50,888 847 00:40:50,888 --> 00:40:52,467 >> [APLAUSOS] 848 00:40:52,467 --> 00:40:53,425 DAVID MALAN: Gracias. 849 00:40:53,425 --> 00:40:56,160 850 00:40:56,160 --> 00:40:58,030 Así que además de éstos los miembros del equipo aquí, 851 00:40:58,030 --> 00:41:01,662 CS50 cuenta con un equipo de casi 100 todos los miembros del personal, de los cuales 852 00:41:01,662 --> 00:41:04,370 estará disponible para las secciones y las horas de oficina y mucho más. 853 00:41:04,370 --> 00:41:06,920 Y como dice Rob también, esto es la reforma más significativa 854 00:41:06,920 --> 00:41:09,534 de CS50 en los 10 años que He estado en [inaudible]. 855 00:41:09,534 --> 00:41:12,200 [Inaudible] centrado especialmente en la provisión de una estructura de soporte, 856 00:41:12,200 --> 00:41:14,050 el recorte de distancia una gran cantidad de el grueso que ha sido 857 00:41:14,050 --> 00:41:16,870 acumulado en 10 años desarrollos de iterativos 858 00:41:16,870 --> 00:41:18,120 en los boletines de problemas del curso. 859 00:41:18,120 --> 00:41:21,470 >> Así que este año, no sólo en clase, pero también en la forma del problema del curso 860 00:41:21,470 --> 00:41:24,800 conjuntos, que deben descubrir propuestas ser más ágil, condensador de ajuste, tanto 861 00:41:24,800 --> 00:41:26,700 más manejable que en los últimos años, a medida que 862 00:41:26,700 --> 00:41:31,330 arrojar algo del equipaje que es desarrollado por naturaleza de año en evolución 863 00:41:31,330 --> 00:41:32,970 tras año y la iteración. 864 00:41:32,970 --> 00:41:35,110 Por lo que el nuevo y mejorado comienza hoy. 865 00:41:35,110 --> 00:41:37,860 >> Te encontrarás con un poco más de la El personal del curso en el [inaudible] 866 00:41:37,860 --> 00:41:40,186 a las 2:30, donde se sirve, como una tradición, la torta. 867 00:41:40,186 --> 00:41:42,060 Hay un poco más de la torta que eso, pero usted 868 00:41:42,060 --> 00:41:44,690 Erin se reúnen y Tobias y otros aún. 869 00:41:44,690 --> 00:41:46,470 Y te voy a dar un recorrido antes de oír 870 00:41:46,470 --> 00:41:49,600 de algunos de los otros miembros del personal en la clase, de lo que espera también. 871 00:41:49,600 --> 00:41:52,730 De hecho, siempre empezamos de CS50 semestre el próximo sábado, 872 00:41:52,730 --> 00:41:54,330 con lo que se llama CS50 Puzzle día. 873 00:41:54,330 --> 00:41:56,710 >> No tiene nada que ver con ciencias de la computación per se, 874 00:41:56,710 --> 00:41:58,669 pero con aproximadamente problema resolver de manera más general. 875 00:41:58,669 --> 00:42:01,210 Y si así lo desea participar, por algunas de las invitaciones, 876 00:42:01,210 --> 00:42:03,460 que podría haber visto puerta caído o en el escenario aquí, 877 00:42:03,460 --> 00:42:05,830 que es una oportunidad en equipos de dos o tres o cuatro, 878 00:42:05,830 --> 00:42:10,680 para participar por los rompecabezas y pizzas y los premios y más-- este sábado, 879 00:42:10,680 --> 00:42:12,560 Estén atentos para más. 880 00:42:12,560 --> 00:42:15,082 >> Encontrará también que cada Viernes, a fuego y hielo, 881 00:42:15,082 --> 00:42:16,790 trae una CS50 Gran cantidad de los estudiantes 882 00:42:16,790 --> 00:42:19,100 para el almuerzo, para hacer un gran la clase se sienta más íntimo, 883 00:42:19,100 --> 00:42:21,820 y, en general reunirá ex alumnos y amigos de la industria 884 00:42:21,820 --> 00:42:24,710 para hablar de lo que han estado haciendo desde que se graduó. 885 00:42:24,710 --> 00:42:27,820 Del mismo modo, este año, se nos inaugurar el primer CS50 50 886 00:42:27,820 --> 00:42:31,390 contest-- codificación de una mitad de semestre oportunidad para que todos 887 00:42:31,390 --> 00:42:35,430 en una opción en la base, para tener una desafío de ingenio contra sus compañeros de clase, 888 00:42:35,430 --> 00:42:39,250 de nuevo en equipos de dos o tres o cuatro, utilizando sólo que la programación 889 00:42:39,250 --> 00:42:41,920 conocedores de que, a continuación tienes bajo el cinturón después de sólo seis o siete 890 00:42:41,920 --> 00:42:44,710 semanas de la clase, y participar en este tipo de competencia 891 00:42:44,710 --> 00:42:50,261 online-- si desea perfeccionar su propia habilidades aún más en ese desafío. 892 00:42:50,261 --> 00:42:52,760 Al final del semestre es el llamado CS50 Hackathon-- 893 00:42:52,760 --> 00:42:56,970 una oportunidad que comienza a las 7:00 PM termina a las 7:00 de la mañana, y en el camino 894 00:42:56,970 --> 00:43:01,900 Son 12 horas de la noche en la que a bucear en proyecto-- final del curso 895 00:43:01,900 --> 00:43:04,820 la oportunidad de diseñar y aplicar la mayor parte de nada de interés 896 00:43:04,820 --> 00:43:06,980 a usted con su enseñanza la guía del compañero. 897 00:43:06,980 --> 00:43:09,600 Alrededor de las 9:00 AM de que normalmente sirven pizza, la 1:00 AM, 898 00:43:09,600 --> 00:43:13,210 Philippe, y los pocos de nosotros que todavía están despiertos a las 5:00 de la mañana, 899 00:43:13,210 --> 00:43:16,310 son de transporte, ordenó el traslado por la camino a IHOP para el desayuno. 900 00:43:16,310 --> 00:43:19,340 >> Y luego unos días más tarde es el llamado CS50 fare-- 901 00:43:19,340 --> 00:43:23,450 un fin de semestre en la exposición celebración de cuán lejos tantos 902 00:43:23,450 --> 00:43:28,200 CS50 de estudiantes han venido de la semana cero hasta el final a la semana, 903 00:43:28,200 --> 00:43:32,610 y teniendo en cuenta que el 73% de las personas compañeros y la suya este año han 904 00:43:32,610 --> 00:43:34,840 Nunca tomado una clase de CS antes. 905 00:43:34,840 --> 00:43:39,226 De hecho, para enfatizar tanto, aquí es una pocas caras más del personal del CS50. 906 00:43:39,226 --> 00:43:40,184 ALTAVOZ 4: [inaudible]. 907 00:43:40,184 --> 00:43:45,909 908 00:43:45,909 --> 00:43:46,867 ALTAVOZ 5: [inaudible]. 909 00:43:46,867 --> 00:43:51,332 910 00:43:51,332 --> 00:43:52,290 ALTAVOZ 6: [inaudible]. 911 00:43:52,290 --> 00:43:55,276 912 00:43:55,276 --> 00:43:56,234 ALTAVOZ 7: [inaudible]. 913 00:43:56,234 --> 00:44:01,727 914 00:44:01,727 --> 00:44:02,643 ALTAVOZ 8: [inaudible] 915 00:44:02,643 --> 00:44:10,066 916 00:44:10,066 --> 00:44:11,024 ALTAVOZ 9: [inaudible]. 917 00:44:11,024 --> 00:44:14,475 918 00:44:14,475 --> 00:44:15,461 >> ALTAVOZ 4: [inaudible]. 919 00:44:15,461 --> 00:44:16,461 >> ALTAVOZ 10: [inaudible]. 920 00:44:16,461 --> 00:44:21,456 921 00:44:21,456 --> 00:44:23,438 ALTAVOZ 11: [inaudible]. 922 00:44:23,438 --> 00:44:24,438 ALTAVOZ 12: [inaudible]. 923 00:44:24,438 --> 00:44:30,438 924 00:44:30,438 --> 00:44:31,396 El altavoz 13: [inaudible] 925 00:44:31,396 --> 00:44:37,360 926 00:44:37,360 --> 00:44:40,342 >> ALTAVOZ 14: [inaudible]. 927 00:44:40,342 --> 00:44:42,863 >> El altavoz 13: [inaudible]. 928 00:44:42,863 --> 00:44:43,821 ALTAVOZ 15: [inaudible] 929 00:44:43,821 --> 00:44:48,785 930 00:44:48,785 --> 00:44:49,785 ALTAVOZ 16: [inaudible]. 931 00:44:49,785 --> 00:44:53,761 932 00:44:53,761 --> 00:44:55,252 >> ALTAVOZ 11: [inaudible] 933 00:44:55,252 --> 00:44:57,773 934 00:44:57,773 --> 00:44:58,731 ALTAVOZ 5: [inaudible]. 935 00:44:58,731 --> 00:45:11,250 936 00:45:11,250 --> 00:45:15,130 DAVID MALAN: Algunos del equipo son ellos mismos haciendo compras clases. 937 00:45:15,130 --> 00:45:17,760 Pero si los miembros CS50 del personal están aquí, 938 00:45:17,760 --> 00:45:19,230 podría llegar en un máximo de un momento. 939 00:45:19,230 --> 00:45:23,450 TFS del CS50 y AC y [? el personal?] miembros aquí-- estos son sólo algunos 940 00:45:23,450 --> 00:45:28,880 del faces-- uno de los cuales acaba sierra, y unos pocos otro-- y algunos otros 941 00:45:28,880 --> 00:45:30,020 todavía. 942 00:45:30,020 --> 00:45:33,242 ¿Por qué no vamos adelante y permitimos ustedes un descanso de cinco minutos. 943 00:45:33,242 --> 00:45:35,450 Si necesita pato a clases de taller, eso está bien. 944 00:45:35,450 --> 00:45:38,900 Y en cinco minutos, vamos a reanudar, echar un vistazo a la primera Scratch-- 945 00:45:38,900 --> 00:45:42,420 de nuestro lenguaje de programación, conocer el personal del curso aquí un poco más, 946 00:45:42,420 --> 00:45:45,020 y se centran en última instancia, el problema planteado cero. 947 00:45:45,020 --> 00:45:46,710 Así que estaremos de vuelta en cinco minutos. 1 00:45:46,864 --> 00:45:47,370 >> Todo bien. 2 00:45:47,370 --> 00:45:48,590 Así que estamos de vuelta. 3 00:45:48,590 --> 00:45:51,330 Y en nuestro restante tiempo de hoy en día, el objetivo 4 00:45:51,330 --> 00:45:54,320 es para nivelar el campo de juego en cuanto a la terminología, 5 00:45:54,320 --> 00:45:55,297 en términos de algunas ideas. 6 00:45:55,297 --> 00:45:57,380 Debido a que de hecho, como por algunas de las tablas anteriores, 7 00:45:57,380 --> 00:46:00,130 no va a haber una serie de niveles de experiencia en la clase, 8 00:46:00,130 --> 00:46:03,210 algunos de cuyos alumnos tienen tomado algo de programación antes, 9 00:46:03,210 --> 00:46:04,200 algunos de los cuales no tienen. 10 00:46:04,200 --> 00:46:07,430 Y así, con este primer problema establecer y con esta primera lengua 11 00:46:07,430 --> 00:46:10,830 tenemos la oportunidad de empezar a dar por sentado después de hoy 12 00:46:10,830 --> 00:46:12,960 algo de vocabulario y la idea común. 13 00:46:12,960 --> 00:46:15,590 >> Y lo haremos a través de Las Lenguas primera del curso 14 00:46:15,590 --> 00:46:21,070 además de C y Python y JavaScript y SQL y HTML y CSS, 15 00:46:21,070 --> 00:46:24,450 nos centraremos inicialmente y sólo por un problema asigna el valor cero 16 00:46:24,450 --> 00:46:28,160 en este lenguaje gráfico, llamado Scratch, desarrollado por el MIT Media Lab 17 00:46:28,160 --> 00:46:30,880 por el camino, para ayudar estudiantes y niños, especialmente 18 00:46:30,880 --> 00:46:35,070 expresarse algorithmically-- de una forma más consistente con lo 19 00:46:35,070 --> 00:46:37,300 que podríamos llamar el pensamiento computacional. 20 00:46:37,300 --> 00:46:40,985 >> Y es una lengua útil porque muy rápidamente la próxima semana en la semana uno, 21 00:46:40,985 --> 00:46:44,360 Por qué hacemos la transición a una mayor lenguaje tradicional y arcano llamado 22 00:46:44,360 --> 00:46:46,370 C, que es puramente textual. 23 00:46:46,370 --> 00:46:48,930 Sólo se utiliza en su teclado Para escribir instrucciones 24 00:46:48,930 --> 00:46:50,230 como estos en la pantalla. 25 00:46:50,230 --> 00:46:52,840 Pero incluso si usted nunca ha visto un lenguaje de programación antes, 26 00:46:52,840 --> 00:46:55,170 en tan sólo echar un vistazo a esto, todo sea críptico, 27 00:46:55,170 --> 00:47:00,010 que es fácil adivinar que Probablemente imprime Hello World. 28 00:47:00,010 --> 00:47:02,050 Pero hay una gran cantidad de sobrecarga sintáctica allí. 29 00:47:02,050 --> 00:47:05,770 No es raro el hash símbolo o etiqueta de hash encima de la tapa. 30 00:47:05,770 --> 00:47:08,900 Hay los paréntesis angulares, algunos paréntesis, corchetes, semi-colon-- 31 00:47:08,900 --> 00:47:11,880 sólo hay tanto visual sintaxis que se interpone en el camino. 32 00:47:11,880 --> 00:47:13,940 Empezamos el curso con De cero a fin de obtener 33 00:47:13,940 --> 00:47:17,600 pasado todos los intelectualmente distracciones, sin interés 34 00:47:17,600 --> 00:47:20,290 y centrarse en las ideas. 35 00:47:20,290 --> 00:47:22,540 >> De hecho, esto podría ser antes. 36 00:47:22,540 --> 00:47:24,830 Esto, por esto, la semana será después. 37 00:47:24,830 --> 00:47:26,760 Esto, en esta gráfica Rasguño de la lengua, 38 00:47:26,760 --> 00:47:29,870 es cómo se llevaría a cabo ese mismo program-- un programa que cuando se ejecuta, 39 00:47:29,870 --> 00:47:31,340 Simplemente dice hola mundo. 40 00:47:31,340 --> 00:47:34,740 Y lo que es bueno de Scratch es que es esta programación gráfica 41 00:47:34,740 --> 00:47:38,780 entorno que utiliza las piezas del rompecabezas o bloques, que sólo se ensamblan por acoplamiento 42 00:47:38,780 --> 00:47:40,440 si tiene sentido lógico para hacerlo. 43 00:47:40,440 --> 00:47:43,810 Y con los arañazos se puede desarrollar animaciones y juegos interactivos 44 00:47:43,810 --> 00:47:47,270 y el arte, y cualquier número de cosas que se puede imaginar en su propia mente, 45 00:47:47,270 --> 00:47:51,200 y ponerlas en práctica simplemente arrastrar y soltar las piezas del rompecabezas. 46 00:47:51,200 --> 00:47:54,265 >> Y, de hecho, vamos a tener la capacidad para expresar algunas de las mismas ideas 47 00:47:54,265 --> 00:47:56,890 que acabo de mencionar un momento hace en el contexto de Mike Smith 48 00:47:56,890 --> 00:48:00,670 y buscando cosas que un teléfono book-- que las funciones, sólo las acciones, 49 00:48:00,670 --> 00:48:03,070 cosas como bucles que hacen cosas una y otra vez, 50 00:48:03,070 --> 00:48:05,170 variables, que es algo que vamos a introducir, 51 00:48:05,170 --> 00:48:08,086 pero es conocida tal vez de algebra-- sólo una especie de marcador de posición 52 00:48:08,086 --> 00:48:10,840 para almacenar un valor que podría necesitará expresiones booleanas tarde--, 53 00:48:10,840 --> 00:48:13,720 donde aquellos que sí no o verdadero falsas preguntas de antes. 54 00:48:13,720 --> 00:48:17,117 Las condiciones son esas bifurcaciones en el road-- aquellas ramas por así decirlo. 55 00:48:17,117 --> 00:48:19,700 Y luego hay algunos más elegante características que veremos aún hoy en día, 56 00:48:19,700 --> 00:48:22,850 llamados matrices y las discusiones y eventos, que a continuación Volveremos a lo largo 57 00:48:22,850 --> 00:48:24,460 tiempo en diferentes idiomas. 58 00:48:24,460 --> 00:48:26,790 Pero los arañazos nos permite para explorar todos estos. 59 00:48:26,790 --> 00:48:30,779 Así que aquí en Scratch, este púrpura bloque es una función de lo que es típicamente 60 00:48:30,779 --> 00:48:31,570 va a parecer. 61 00:48:31,570 --> 00:48:35,620 Esta pieza de rompecabezas de color púrpura que tiene algún palabra como por ejemplo, que es la acción, 62 00:48:35,620 --> 00:48:38,490 y entonces podría tener una argumento o una parameter-- alguna manera 63 00:48:38,490 --> 00:48:41,140 del tipo de personalización lo que hace que el bloque 64 00:48:41,140 --> 00:48:45,182 por lo que no está predeterminado por MIT lo que dice este bloque de color púrpura. 65 00:48:45,182 --> 00:48:47,390 De hecho, se verá en una momento en que soy capaz de escribir 66 00:48:47,390 --> 00:48:49,931 las palabras como hola mundo, o hola David, o hola Zamayla, 67 00:48:49,931 --> 00:48:53,750 o lo que quiera, en el argumento a ese rompecabezas piece-- la caja blanca 68 00:48:53,750 --> 00:48:54,251 ahí. 69 00:48:54,251 --> 00:48:57,166 Mientras tanto, si quiero un bucle, vamos a ver que hay piezas de un rompecabezas que 70 00:48:57,166 --> 00:48:58,640 mirar un poco de color naranja como este. 71 00:48:58,640 --> 00:49:01,690 Y su forma tipo de sugiere que algo que sucede una y otra vez 72 00:49:01,690 --> 00:49:02,680 en un ciclo. 73 00:49:02,680 --> 00:49:06,800 >> Así que si yo envuelvo un bloque saludar mundo con un bloque para siempre en Scratch, 74 00:49:06,800 --> 00:49:10,307 que sólo va a seguir diciendo hola mundo para siempre, literalmente. 75 00:49:10,307 --> 00:49:12,390 Mientras tanto, hay otro tipo de bucle en Scratch 76 00:49:12,390 --> 00:49:14,348 que vamos a ver-- una repetición block-- donde, si se 77 00:49:14,348 --> 00:49:17,940 saber de antemano cuántas veces quiere que el bucle para ejecutar 78 00:49:17,940 --> 00:49:21,850 un número finito de veces en que fact-- puede especificar que escribiendo en una serie 79 00:49:21,850 --> 00:49:25,380 o incluso enchufar en una variable, como X o Y, como veremos. 80 00:49:25,380 --> 00:49:27,690 >> De hecho, al igual que las variables i en este caso, que 81 00:49:27,690 --> 00:49:30,109 es un nombre común para una variable entera que 82 00:49:30,109 --> 00:49:31,900 simplemente almacena una number-- un número entero podría ser, 83 00:49:31,900 --> 00:49:35,470 utilizar este bloque de naranja aquí para establecer una variable igual a cero i. 84 00:49:35,470 --> 00:49:38,900 He aquí un ejemplo en el verde de un expresión booleana en Scratch. 85 00:49:38,900 --> 00:49:43,700 A pesar de que esto parece una matemáticas fórmula, las desigualdades matemáticas como este 86 00:49:43,700 --> 00:49:45,320 Realmente son expresiones booleanas. 87 00:49:45,320 --> 00:49:46,570 Esto es verdadero o falso. 88 00:49:46,570 --> 00:49:48,300 I es menos de 50. 89 00:49:48,300 --> 00:49:51,815 Es un sí o un no o respuesta verdadera o falsa. 90 00:49:51,815 --> 00:49:53,940 Y que llamaremos general esas expresiones booleanas. 91 00:49:53,940 --> 00:49:55,148 Y no tiene por qué ser 50. 92 00:49:55,148 --> 00:49:57,970 Puede ser x menor que y, mayor que y, igual a Y- 93 00:49:57,970 --> 00:50:00,020 cualquier número de otra podrían hacer preguntas. 94 00:50:00,020 --> 00:50:03,250 >> Ahora, a primera vista, esto puede parecer De repente bastante audaz aquí, y lo es. 95 00:50:03,250 --> 00:50:06,540 Pero el concepto racional, es bastante familiar de antes. 96 00:50:06,540 --> 00:50:09,370 Si x es menor que y, que, por ejemplo como mucho. 97 00:50:09,370 --> 00:50:12,230 Porque si x es mayor que y, a continuación, decir lo mismo. 98 00:50:12,230 --> 00:50:14,260 Otro decir de x es igual a y. 99 00:50:14,260 --> 00:50:17,220 Así que tenemos un ejemplo no de una tercera scenario-- 100 00:50:17,220 --> 00:50:20,600 la única possibility-- tercera x es o bien mayor que, menor que, o igual a. 101 00:50:20,600 --> 00:50:22,420 Así que tenemos un tenedor de tres vías en la carretera. 102 00:50:22,420 --> 00:50:26,290 >> Y notar lo que es rasguño fresco aquí--, al parecer, tiene sólo un rompecabezas 103 00:50:26,290 --> 00:50:28,840 pieza, en este caso, en si el bloque más. 104 00:50:28,840 --> 00:50:32,090 Y sin embargo, eso parecería implicar que se puede sólo tienen un tenedor de dos vías en la carretera. 105 00:50:32,090 --> 00:50:34,631 Puede ir hacia la izquierda o hacia la derecha, pero ¿qué pasa con ese tercer escenario? 106 00:50:34,631 --> 00:50:35,760 ¿Qué pasa si x es igual a y? 107 00:50:35,760 --> 00:50:36,500 No es gran cosa. 108 00:50:36,500 --> 00:50:39,640 Tomar una pieza del rompecabezas, puesto otra dentro de ella 109 00:50:39,640 --> 00:50:45,759 para crear el equivalente semántico de si, de lo contrario si, else-- y ahora 110 00:50:45,759 --> 00:50:47,300 tener su tenedor de tres vías en la carretera. 111 00:50:47,300 --> 00:50:49,091 Y como veremos, la piezas del rompecabezas de cero 112 00:50:49,091 --> 00:50:51,820 se puede estirar y crecer, por lo como de meter más cosas en ellos. 113 00:50:51,820 --> 00:50:54,420 Usted no tiene que ajustarse todo a su tamaño predeterminado. 114 00:50:54,420 --> 00:50:56,690 >> Esto es algo que vamos a pronto verá que se llama una matriz. 115 00:50:56,690 --> 00:51:00,880 Es como un películas-- alguna forma de el almacenamiento de varias piezas de información 116 00:51:00,880 --> 00:51:02,886 en una variable, no sólo un número. 117 00:51:02,886 --> 00:51:05,760 Estos veremos un representante de algo que se llama multi-threading. 118 00:51:05,760 --> 00:51:08,280 De hecho, la totalidad de su Mac y PC en estos días 119 00:51:08,280 --> 00:51:10,810 soporte multi-threading, lo que significa que puede, literalmente, 120 00:51:10,810 --> 00:51:12,390 hacer varias cosas a la vez. 121 00:51:12,390 --> 00:51:15,390 Usted puede tener Microsoft Word en el primer plano, trabajando en algún ensayo. 122 00:51:15,390 --> 00:51:17,160 Es posible que tenga un navegador en la apertura de fondo 123 00:51:17,160 --> 00:51:18,720 G-mail o Facebook o similares. 124 00:51:18,720 --> 00:51:22,730 El ordenador puede hacer varias cosas hoy en día, ya que es multi-hilo, 125 00:51:22,730 --> 00:51:26,390 y los programas que están en en en particular también son multi-hilo. 126 00:51:26,390 --> 00:51:28,970 >> Hay cosas que se llaman eventos como bien en el mundo de los arañazos, 127 00:51:28,970 --> 00:51:32,640 y luego hay una manera también, para hacer nuestras propias piezas del rompecabezas a medida, si las cosas 128 00:51:32,640 --> 00:51:34,810 en realidad no existe de antemano. 129 00:51:34,810 --> 00:51:38,260 Así que vamos a motivar a esto de la siguiente manera. 130 00:51:38,260 --> 00:51:40,580 Hace algunos años, cuando descubrió por primera vez Scratch, 131 00:51:40,580 --> 00:51:43,530 cuando yo era en realidad una estudiante de doctorado en el MIT, nos 132 00:51:43,530 --> 00:51:45,640 nosotros mismos se encargaron de hacer los deberes. 133 00:51:45,640 --> 00:51:47,614 Y implemented-- lo que, en retrospectiva, 134 00:51:47,614 --> 00:51:50,780 Fue una decisión muy mala porque es la canción más irritante en el mundo 135 00:51:50,780 --> 00:51:53,321 para escuchar durante ocho horas mientras trabaja en su homework-- 136 00:51:53,321 --> 00:51:57,180 pero algo había llamado Oscar Tiempo, que es tal vez una canción familiar. 137 00:51:57,180 --> 00:51:59,820 >> CS50s poseen Jordan Hayashi, una de nuestro personal más altos, 138 00:51:59,820 --> 00:52:03,920 ha actualizado para 2015 y Ahora el año 2016, ya de vuelta en el día, 139 00:52:03,920 --> 00:52:06,610 Tenía todo lo que acaba de ir en un cubo de basura de Oscar. 140 00:52:06,610 --> 00:52:09,320 Ahora apoyamos el reciclaje y el compostaje. 141 00:52:09,320 --> 00:52:12,050 >> Sin embargo, para pintar el cuadro de lo que podemos hacer aquí 142 00:52:12,050 --> 00:52:14,130 y para motivar a algunos de los ejemplos de nivel inferior, 143 00:52:14,130 --> 00:52:16,400 podríamos conseguir otro voluntario que acaba de llegar en un máximo 144 00:52:16,400 --> 00:52:18,331 y jugar mi primera tarea nunca? 145 00:52:18,331 --> 00:52:18,830 Vamos arriba. 146 00:52:18,830 --> 00:52:19,250 ¿Cuál es tu nombre? 147 00:52:19,250 --> 00:52:20,030 >> HENRY: Henry. 148 00:52:20,030 --> 00:52:22,660 >> DAVID MALAN: Henry, vamos arriba. 149 00:52:22,660 --> 00:52:24,190 Vamos arriba. 150 00:52:24,190 --> 00:52:27,070 La cabeza de cualquier manera, y se verá en un momento, 151 00:52:27,070 --> 00:52:29,870 Voy a seguir adelante y golpear la bandera verde en la parte superior derecha 152 00:52:29,870 --> 00:52:31,100 esquina, lo que significa ir. 153 00:52:31,100 --> 00:52:33,320 El icono de la muestra pequeña parada va a decir basta, 154 00:52:33,320 --> 00:52:35,490 y eso es cuando se inicia y detener el programa. 155 00:52:35,490 --> 00:52:36,450 Encantada de conocerte. 156 00:52:36,450 --> 00:52:36,950 Todo bien. 157 00:52:36,950 --> 00:52:39,100 Así que vamos a ver las instrucciones en la pantalla en un momento. 158 00:52:39,100 --> 00:52:41,450 Y sólo por jugar este juego para unos pocos seconds-- confía en mí, 159 00:52:41,450 --> 00:52:43,670 no vamos a querer jugar todo el camino a la end-- se quiere 160 00:52:43,670 --> 00:52:45,470 tener una idea de lo que hace el programa. 161 00:52:45,470 --> 00:52:49,170 Y más que sólo se centran en Henry ser bueno o malo en este juego, el enfoque 162 00:52:49,170 --> 00:52:52,600 y cómo se implementa por mí inicialmente y luego por Jordan. 163 00:52:52,600 --> 00:52:54,640 En otras palabras, ¿dónde están las variables? 164 00:52:54,640 --> 00:52:55,520 ¿Dónde están los bucles? 165 00:52:55,520 --> 00:52:56,520 ¿Dónde están las funciones? 166 00:52:56,520 --> 00:53:00,700 Y ya veremos si no vemos los que debajo de la campana. 167 00:53:00,700 --> 00:53:03,660 >> Basta con hacer clic y arrastrar la basura a la bandeja adecuada. 168 00:53:03,660 --> 00:54:02,100 >> [REPRODUCIENDO MÚSICA] 169 00:54:02,100 --> 00:54:02,600 Todo bien. 170 00:54:02,600 --> 00:54:03,160 Eso es muy bueno. 171 00:54:03,160 --> 00:54:04,286 ¿Por qué no nos detenemos ahí. 172 00:54:04,286 --> 00:54:04,786 Gracias. 173 00:54:04,786 --> 00:54:05,830 Felicitaciones a Henry. 174 00:54:05,830 --> 00:54:07,002 Gracias. 175 00:54:07,002 --> 00:54:10,690 >> [APLAUSOS] 176 00:54:10,690 --> 00:54:12,450 >> Imagínese que la depuración del programa. 177 00:54:12,450 --> 00:54:15,880 Si hay un problema de dos en el song-- pero hasta minutos 178 00:54:15,880 --> 00:54:17,430 lo que está pasando aquí realmente? 179 00:54:17,430 --> 00:54:20,900 Tan complicado como podría comenzará a parecerse conseguir a través del tiempo, 180 00:54:20,900 --> 00:54:22,910 de hecho más y más cosas comenzaron a caer, 181 00:54:22,910 --> 00:54:25,370 lo interesante de este tipo de ejemplo-- 182 00:54:25,370 --> 00:54:27,270 y vamos a ver unos cuantos otros- es que si 183 00:54:27,270 --> 00:54:30,416 mirar más allá de la complejidad o la sofisticación del juego, 184 00:54:30,416 --> 00:54:33,040 hay un edificio muy sencillo bloques que play-- todos los cuales, 185 00:54:33,040 --> 00:54:35,840 si los destilar a las bloques de construcción, son muy accesibles 186 00:54:35,840 --> 00:54:37,401 y aplicables en sí mismos. 187 00:54:37,401 --> 00:54:39,150 Por ejemplo, es pasado algún tiempo, pero estoy 188 00:54:39,150 --> 00:54:42,900 bastante seguro de lo que inicialmente hice cuando haciendo de este juego por primera vez 189 00:54:42,900 --> 00:54:44,787 Yo estaba completamente como demorado. 190 00:54:44,787 --> 00:54:47,120 No me concentro en absoluto en el la lógica o las piezas del rompecabezas, 191 00:54:47,120 --> 00:54:50,810 Me concentré en los gráficos y el hallazgo el poste de la calle y el bote de basura 192 00:54:50,810 --> 00:54:51,540 y todo eso. 193 00:54:51,540 --> 00:54:53,456 Pero esos eran necesarios ingredientes en un principio. 194 00:54:53,456 --> 00:54:57,220 Y una vez que he terminado de dilatar y trazar el marco general, 195 00:54:57,220 --> 00:55:00,337 Decidí, me dejaron de hacer uno pedazo de basura caída del cielo. 196 00:55:00,337 --> 00:55:02,170 Y veremos los arañazos apoya cosas llamadas 197 00:55:02,170 --> 00:55:06,386 sprites-- caracteres que pueden tener diferentes trajes en lo que 198 00:55:06,386 --> 00:55:07,010 se ve diferente. 199 00:55:07,010 --> 00:55:09,660 >> Y por lo que poner un cubo de basura vestuario en uno de esos sprites. 200 00:55:09,660 --> 00:55:12,007 Y yo sólo necesitaba a caer del cielo. 201 00:55:12,007 --> 00:55:14,590 Y así resulta que, Scratch, como la mayoría de los lenguajes de programación, 202 00:55:14,590 --> 00:55:18,099 utilizando números aleatorios o números aleatorios técnicamente pseudocódigo, 203 00:55:18,099 --> 00:55:20,390 de manera que arrastrando y dejando caer algunas piezas de un rompecabezas, 204 00:55:20,390 --> 00:55:22,890 Yo era capaz de tener la basura venido de la izquierda en un primer momento. 205 00:55:22,890 --> 00:55:25,580 Y entonces la próxima vez que cayó, desde la derecha y luego desde la mitad. 206 00:55:25,580 --> 00:55:28,060 Y todo el juego no era sólo tener la basura que cae del cielo. 207 00:55:28,060 --> 00:55:29,770 No se podía apuntar a ella o haga clic en él. 208 00:55:29,770 --> 00:55:31,103 No se podía abrir el bote de basura. 209 00:55:31,103 --> 00:55:32,160 No se podía hacer nada. 210 00:55:32,160 --> 00:55:34,450 Pero fue un paso de bebé hacia mi última visión. 211 00:55:34,450 --> 00:55:36,720 >> Y después de eso, en realidad implementado algún tipo 212 00:55:36,720 --> 00:55:41,230 de detección de modo que si se hizo clic y arrastre en la pieza de basura 213 00:55:41,230 --> 00:55:44,350 sobre el cubo de la basura, Oscar tapa sería abrir y cerrar. 214 00:55:44,350 --> 00:55:47,650 No pasaría nada a la basura, pero al menos la tapa sería abrir y cerrar. 215 00:55:47,650 --> 00:55:49,642 Así que a continuación, comprobar, paso dos de dos. 216 00:55:49,642 --> 00:55:52,100 Y esto es lo que va a ser clave tanto problema asigna el valor cero 217 00:55:52,100 --> 00:55:55,970 y en la programación de manera más general, es tomar estos pequeños pasos muy deliberados. 218 00:55:55,970 --> 00:55:59,390 Debido a que no sólo se le permite sentir sinceramente logrado mucho más 219 00:55:59,390 --> 00:56:01,250 quickly-- es la Lo peor en el mundo 220 00:56:01,250 --> 00:56:06,149 para tratar de poner en práctica todas Oscar Tiempo, a continuación, horas más tarde golpeó la bandera verde, 221 00:56:06,149 --> 00:56:08,440 y nada funciona como se esperaba porque donde se puede incluso 222 00:56:08,440 --> 00:56:11,150 comenzar a depurar o de solucionar ese programa? 223 00:56:11,150 --> 00:56:12,470 Es simplemente abrumadora. 224 00:56:12,470 --> 00:56:16,792 >> Y así, erigiéndose en esta idea de tomar pasos de bebé steps-- nuevo 225 00:56:16,792 --> 00:56:19,000 y la construcción de otra vez-- algo que es, al final, 226 00:56:19,000 --> 00:56:23,672 realmente impresionante y complejo, pero en un principio, no es tan es así. 227 00:56:23,672 --> 00:56:24,630 De hecho, vamos a hacer esto. 228 00:56:24,630 --> 00:56:28,989 Déjame ir por delante y- rascarse existe en la web en Scratch.MIT.edu, 229 00:56:28,989 --> 00:56:30,780 y se le dijo que otro tanto en el problema 230 00:56:30,780 --> 00:56:34,200 establecer cero, el pliego de condiciones de que ya está en el sitio web del CS50. 231 00:56:34,200 --> 00:56:35,725 >> Pero esto es lo que es rascarse. 232 00:56:35,725 --> 00:56:38,210 Y no hay realmente solo tres áreas principales. 233 00:56:38,210 --> 00:56:40,980 En la parte superior izquierda hay es la etapa llamada. 234 00:56:40,980 --> 00:56:41,810 Se trata de Scratch. 235 00:56:41,810 --> 00:56:43,710 El traje por defecto es un gato. 236 00:56:43,710 --> 00:56:46,950 Y este es el mundo rectangular que se puede move-- arriba, abajo, izquierda, 237 00:56:46,950 --> 00:56:48,130 derecho y algunas otras cosas. 238 00:56:48,130 --> 00:56:51,839 A mediados aquí están nuestras categorías o nuestros palets de piezas de un rompecabezas, 239 00:56:51,839 --> 00:56:53,630 y colores diferentes significar cosas diferentes. 240 00:56:53,630 --> 00:56:56,520 Y si hurgar, verá cosas como bucles y condiciones 241 00:56:56,520 --> 00:56:58,160 y las variables y otros ingredientes. 242 00:56:58,160 --> 00:57:00,060 >> Y entonces aquí es el área de scripts. 243 00:57:00,060 --> 00:57:03,020 Aquí es donde puede arrastrar y soltar esas piezas del rompecabezas para hacer las cosas. 244 00:57:03,020 --> 00:57:04,690 Así que vamos a hacer una cosa de tal. 245 00:57:04,690 --> 00:57:06,630 Déjame ir por delante y- y sé donde está. 246 00:57:06,630 --> 00:57:10,110 Así que voy a hacer clic inmediatamente en donde sé que las cosas están listos para ser, 247 00:57:10,110 --> 00:57:13,140 pero señalando y haciendo clic en y hurgando son inevitables. 248 00:57:13,140 --> 00:57:15,320 Por eso, cuando hace clic en bandera verde, ¿Qué quiero hacer? 249 00:57:15,320 --> 00:57:17,100 Voy a hacer esto. 250 00:57:17,100 --> 00:57:20,699 Voy a arrastrar este rompecabezas de color púrpura pieza, saluda durante dos segundos, 251 00:57:20,699 --> 00:57:21,490 y deja que el zoom. 252 00:57:21,490 --> 00:57:23,865 >> Y voy a cambiar esta a ser lo que yo quiero que ser-- 253 00:57:23,865 --> 00:57:26,471 hola mundo durante dos segundos está muy bien. 254 00:57:26,471 --> 00:57:28,970 Ahora, voy a hacer clic en el bandera verde, o si realmente quiero, 255 00:57:28,970 --> 00:57:31,820 Puedo pantalla completa y luego volver. 256 00:57:31,820 --> 00:57:34,060 Se acaba de mantener todo en una sola ventana. 257 00:57:34,060 --> 00:57:36,141 hola mundo flag-- verde. 258 00:57:36,141 --> 00:57:36,640 Todo bien. 259 00:57:36,640 --> 00:57:38,789 No todo lo que interesante. 260 00:57:38,789 --> 00:57:40,080 Así que permítanme seguir adelante y hacer esto. 261 00:57:40,080 --> 00:57:41,038 Déjame intentarlo otra. 262 00:57:41,038 --> 00:57:44,740 Cuando la bandera verde clicked-- vamos hacer algo como un sonido. 263 00:57:44,740 --> 00:57:46,880 Y notar que de la caja de forma gratuita se obtiene 264 00:57:46,880 --> 00:57:49,910 un sonido de gato, como es el sprite predeterminado. 265 00:57:49,910 --> 00:57:52,380 Así que ahora déjame ir adelante y golpear la bandera verde ahora. 266 00:57:52,380 --> 00:57:53,224 >> [Meowing] 267 00:57:53,224 --> 00:57:54,490 >> Aw. 268 00:57:54,490 --> 00:57:55,370 Eso es adorable. 269 00:57:55,370 --> 00:57:57,040 Estoy programando. 270 00:57:57,040 --> 00:57:58,550 Entonces, ¿qué he hecho? 271 00:57:58,550 --> 00:58:00,430 Este es el equivalente de un programa. 272 00:58:00,430 --> 00:58:01,600 Es obvio que es super simple. 273 00:58:01,600 --> 00:58:05,300 En realidad no tomar todo lo que mucho esfuerzo y el MIT hicieron la mayor parte de la obra, 274 00:58:05,300 --> 00:58:07,890 pero os he llamado una función. 275 00:58:07,890 --> 00:58:08,940 He utilizado una función. 276 00:58:08,940 --> 00:58:12,480 He hecho un poco de acción, utilizando sólo que una pieza del rompecabezas de color púrpura. 277 00:58:12,480 --> 00:58:15,960 >> Bueno, si yo quiero hacer maullidos tres en una fila? 278 00:58:15,960 --> 00:58:18,570 Déjame seguir adelante y hacer dos y tres. 279 00:58:18,570 --> 00:58:20,910 Y notar que cuando se coloque cerca de una pieza del rompecabezas, 280 00:58:20,910 --> 00:58:22,970 aparece una pequeña línea blanca tipo de magnéticamente, 281 00:58:22,970 --> 00:58:25,190 y se encajará juntos cuando se suelta. 282 00:58:25,190 --> 00:58:26,600 Vamos a ver lo que pasa aquí. 283 00:58:26,600 --> 00:58:27,920 >> [Meowing] 284 00:58:27,920 --> 00:58:32,390 285 00:58:32,390 --> 00:58:34,510 >> Hay un insecto. 286 00:58:34,510 --> 00:58:35,650 Sólo oigo un maullido. 287 00:58:35,650 --> 00:58:37,440 ¿Por qué podría ser? 288 00:58:37,440 --> 00:58:39,001 ¿Sí? 289 00:58:39,001 --> 00:58:39,500 Sí. 290 00:58:39,500 --> 00:58:41,650 En realidad, no oír, a fin pero eso es una buena intuición. 291 00:58:41,650 --> 00:58:43,400 Todos ellos están jugando al mismo tiempo. 292 00:58:43,400 --> 00:58:44,000 ¿Por qué? 293 00:58:44,000 --> 00:58:46,587 Pues bien, el ordenador es sólo va para hacer lo que diga que haga. 294 00:58:46,587 --> 00:58:48,670 Así que si usted dice, el juego de sonido, reproducir sonido, sonido, 295 00:58:48,670 --> 00:58:52,887 pero no le dice a jugar hasta haya terminado, el juego hasta que haya terminado, 296 00:58:52,887 --> 00:58:54,970 que va a soplar a través de el programa muy rápido 297 00:58:54,970 --> 00:58:56,830 y no sólo lo que se diga que haga. 298 00:58:56,830 --> 00:58:59,040 >> Así que realmente se necesita para arreglar esto en un par de maneras. 299 00:58:59,040 --> 00:59:00,623 Yo sólo podía hacer esto, deshacerse de este. 300 00:59:00,623 --> 00:59:04,180 Permítanme tratar este otro rompecabezas piece-- jugar maullido sonido hasta que esté hecho, 301 00:59:04,180 --> 00:59:07,072 a continuación, arrastre tres de estos y haga clic en Reproducir. 302 00:59:07,072 --> 00:59:09,430 >> [Meowing] 303 00:59:09,430 --> 00:59:13,350 >> En realidad no es very-- gracias usted-- muy natural. 304 00:59:13,350 --> 00:59:16,590 Así que ¿por qué no dejar que yo-- me vaya a controlar aquí. 305 00:59:16,590 --> 00:59:17,090 Bonito. 306 00:59:17,090 --> 00:59:22,230 Espera un segundo, y ahora déjame volver a los sonidos, y el sonido de juego hasta que esté hecho, 307 00:59:22,230 --> 00:59:24,620 y luego voy a buscar espere un segundo. 308 00:59:24,620 --> 00:59:28,692 Y entonces déjame ir a buscar uno más sólida, y aquí vamos. 309 00:59:28,692 --> 00:59:31,350 >> [Meowing] 310 00:59:31,350 --> 00:59:35,930 >> Un poco más natural, pero esto no es muy eficiente. 311 00:59:35,930 --> 00:59:39,830 Como estaba aburriendo, ser todos en pocas palabras, al hacer clic ida y vuelta 312 00:59:39,830 --> 00:59:42,724 y realmente duplicar mi trabajo-- más o menos copiar y pegar. 313 00:59:42,724 --> 00:59:44,640 De hecho, si yo controlo clic o se hace clic derecho, 314 00:59:44,640 --> 00:59:46,500 Me podría haber copiado y pegado. 315 00:59:46,500 --> 00:59:49,870 ¿Cuál sería una mejor construir usar? 316 00:59:49,870 --> 00:59:51,090 ¿Qué idea de antes? 317 00:59:51,090 --> 00:59:51,990 >> Sí, por lo que un bucle. 318 00:59:51,990 --> 00:59:54,580 Y de hecho, si nos clavaban alrededor, podríamos encontrar exactamente eso. 319 00:59:54,580 --> 00:59:57,730 Déjame ir a eventos o mejor dicho control. 320 00:59:57,730 --> 00:59:59,650 Así que yo no repeat-- quiero que sea 10 veces. 321 00:59:59,650 --> 01:00:01,370 Eso va a ser molesto rápidamente. 322 01:00:01,370 --> 01:00:03,380 Pero voy a repetir tres veces. 323 01:00:03,380 --> 01:00:06,355 Déjame volver al sonido y reproducir el sonido hasta que se hace. 324 01:00:06,355 --> 01:00:08,480 Déjame volver al Control y sólo tiene que esperar un segundo. 325 01:00:08,480 --> 01:00:10,271 Y el aviso, es posible que creo que no encaja, 326 01:00:10,271 --> 01:00:13,520 pero de nuevo, si se deja que magnéticamente broche de presión en su lugar, que crecerá para llenar. 327 01:00:13,520 --> 01:00:14,971 ¿Qué se juega ahora? 328 01:00:14,971 --> 01:00:18,500 >> [Meowing] 329 01:00:18,500 --> 01:00:19,000 DE ACUERDO. 330 01:00:19,000 --> 01:00:19,660 Bonito. 331 01:00:19,660 --> 01:00:22,540 Y esto es lo que se llamaría un programa que también es correcto. 332 01:00:22,540 --> 01:00:27,590 Se maulló tres veces bastante naturalmente, pero es mejor diseñado. 333 01:00:27,590 --> 01:00:29,580 Estoy usando menos redundancia. 334 01:00:29,580 --> 01:00:30,970 No copiar y pegar cualquier cosa. 335 01:00:30,970 --> 01:00:32,470 Acabo de utilizar una idea mejor. 336 01:00:32,470 --> 01:00:35,340 >> Ahora, esto todavía no es tan interesante con arañazos no hacer 337 01:00:35,340 --> 01:00:35,930 cualquier cosa. 338 01:00:35,930 --> 01:00:37,388 Así que vamos a hacer algo más en su lugar. 339 01:00:37,388 --> 01:00:38,670 Vamos a hacer algo para siempre. 340 01:00:38,670 --> 01:00:39,420 ¿Y sabes qué? 341 01:00:39,420 --> 01:00:40,470 El movimiento parece interesante. 342 01:00:40,470 --> 01:00:45,760 Tengamos que se mueva 10 pasos y pulsar el botón Reproducir ahora. 343 01:00:45,760 --> 01:00:46,570 >> DE ACUERDO. 344 01:00:46,570 --> 01:00:49,300 Así que podemos tipo de arrastre traerlo de vuelta, y él sigue siendo 345 01:00:49,300 --> 01:00:51,250 correr porque él está haciendo esto para siempre. 346 01:00:51,250 --> 01:00:53,150 Así que el bucle está haciendo lo que está diciendo que hacer, 347 01:00:53,150 --> 01:00:54,650 pero esto no es tan interesante. 348 01:00:54,650 --> 01:00:55,310 Hagámoslo. 349 01:00:55,310 --> 01:00:59,870 Permítanme añadir un bloque de control, y utilizar una de esas condiciones por primera vez. 350 01:00:59,870 --> 01:01:03,119 >> Por lo que va a pasar 10 steps-- 10 puntos, 10 píxeles en la screen-- 351 01:01:03,119 --> 01:01:04,660 a continuación, se va a hacer esta pregunta. 352 01:01:04,660 --> 01:01:09,340 Si algo es cierto, y luego hacer algo dentro de este bloque. 353 01:01:09,340 --> 01:01:13,060 Así que resulta de detección tiene su totalidad manojo de expressions-- booleana 354 01:01:13,060 --> 01:01:16,580 preguntas del sí no o verdadero falsa form-- dejarme hacer esto. 355 01:01:16,580 --> 01:01:19,260 >> Si touching-- y luego está este pequeño menú desplegable. 356 01:01:19,260 --> 01:01:20,410 Puedo parametrizar ella. 357 01:01:20,410 --> 01:01:23,010 Si tocar la edge-- vamos hacer algo así. 358 01:01:23,010 --> 01:01:27,310 Así que si tocar edge-- déjeme volver al movimiento. 359 01:01:27,310 --> 01:01:32,281 ¿Y por qué no nos dar la vuelta 180 grados? 360 01:01:32,281 --> 01:01:32,780 Todo bien. 361 01:01:32,780 --> 01:01:35,070 Así que siempre, mover 10 pasos. 362 01:01:35,070 --> 01:01:37,670 Si usted está tocando el borde, un giro de 180 grados. 363 01:01:37,670 --> 01:01:39,720 Y ese no es el final del programa porque estás en un bloque para siempre, 364 01:01:39,720 --> 01:01:42,053 así que va a ir una y otra una y otra y otra vez. 365 01:01:42,053 --> 01:01:43,980 Así que vamos a ver qué pasa. 366 01:01:43,980 --> 01:01:44,785 DE ACUERDO. 367 01:01:44,785 --> 01:01:48,270 Un poco con errores, pero un poco de fresco. 368 01:01:48,270 --> 01:01:51,710 >> Y podemos añadir a esto algunas cosas tontas que no son todo lo que intelectualmente 369 01:01:51,710 --> 01:01:52,270 interesante. 370 01:01:52,270 --> 01:01:57,210 Pero si llegamos a esta pequeña micrófono button-- ay. 371 01:01:57,210 --> 01:01:58,480 Déjame limpiar esto. 372 01:01:58,480 --> 01:02:01,540 Permítanme como mejorar este decían en la televisión. 373 01:02:01,540 --> 01:02:05,400 Limpiar eso, Guardar y ahora sube a los guiones. 374 01:02:05,400 --> 01:02:07,500 >> Y ahora, déjame ir a sonar. 375 01:02:07,500 --> 01:02:09,002 Déjenme darles un nombre. 376 01:02:09,002 --> 01:02:12,440 Voy a llamar a este ay. 377 01:02:12,440 --> 01:02:13,840 Y ahora jugar ay sonido. 378 01:02:13,840 --> 01:02:16,520 Observe que aparece en el pequeño menú desplegable. 379 01:02:16,520 --> 01:02:17,612 Veamos. 380 01:02:17,612 --> 01:02:20,444 >> [AY] 381 01:02:20,444 --> 01:02:24,377 >> [Risas] 382 01:02:24,377 --> 01:02:25,835 Pero podemos cambiar su camiseta sobre la marcha. 383 01:02:25,835 --> 01:02:28,106 Podemos ser dos veces tan molesto. 384 01:02:28,106 --> 01:02:31,760 >> [AY] 385 01:02:31,760 --> 01:02:35,332 >> O si lo hacemos como 1.000 pasos a la vez-- 386 01:02:35,332 --> 01:02:39,900 387 01:02:39,900 --> 01:02:40,670 >> DE ACUERDO. 388 01:02:40,670 --> 01:02:42,295 Así que vamos a dejar que uno solo. 389 01:02:42,295 --> 01:02:45,290 Así que de nuevo, el edificio I blocks-- comenzado con algo muy simple, 390 01:02:45,290 --> 01:02:47,930 y luego he añadido una característica, añadido una característica, una característica añadida. 391 01:02:47,930 --> 01:02:50,721 Y ya no tiene que preocuparse por la forma en la primera de estas características 392 01:02:50,721 --> 01:02:53,690 se puso en práctica a medida que continúo cosas a la capa en la parte superior. 393 01:02:53,690 --> 01:02:55,430 Así que, de hecho, me deja hacer otra aquí. 394 01:02:55,430 --> 01:03:00,580 Déjame ir adelante y abrir un archivo que Traje de antemano, llamado ovejas. 395 01:03:00,580 --> 01:03:03,970 >> Por lo tanto, tiene un poco diferente personaje que se parece a esto. 396 01:03:03,970 --> 01:03:07,370 Y vamos a ver si no puedo hacer algo utilizando un contador 397 01:03:07,370 --> 01:03:09,310 en este caso-- una variable llamada. 398 01:03:09,310 --> 01:03:15,540 Voy a seguir adelante y bajo fuere el caso: voy a buscar una bandera verde ha hecho clic. 399 01:03:15,540 --> 01:03:19,030 Entonces déjame ir a los datos, que sé desde simplemente jugando antes, 400 01:03:19,030 --> 01:03:20,214 es donde las variables son. 401 01:03:20,214 --> 01:03:21,880 Y voy a seguir adelante y arrastrar este. 402 01:03:21,880 --> 01:03:25,144 >> Así que una variable llamada contador, y Voy a inicializar a cero. 403 01:03:25,144 --> 01:03:27,560 Puedo llamarlo cualquier cosa-- xo Y o z-- pero en la programación, 404 01:03:27,560 --> 01:03:30,410 llamar a algo en un semánticamente forma útil, como contador, 405 01:03:30,410 --> 01:03:34,540 que describe lo que es, se trata de una mucho más fácil de leer su código más tarde. 406 01:03:34,540 --> 01:03:37,460 Déjame seguir adelante y conseguir un bloque para siempre aquí. 407 01:03:37,460 --> 01:03:41,289 Y me dejó ir a las miradas página y hacer un bloque de Say. 408 01:03:41,289 --> 01:03:44,330 Pero lo bueno de las variables es lo no tiene que sólo tiene que escribir algo 409 01:03:44,330 --> 01:03:47,850 como hola mundo, que ya hemos hecho, yo puedo ir a su lugar de Datos 410 01:03:47,850 --> 01:03:50,690 y arrastre mi variables, e incluso aunque la forma no bastante 411 01:03:50,690 --> 01:03:53,000 parecer que debe ajustarse, que crecerá para llenar. 412 01:03:53,000 --> 01:03:58,396 Y sólo voy a decir el contador para una spoiler-- second-- que va a contar. 413 01:03:58,396 --> 01:04:00,380 Diremos que durante un segundo. 414 01:04:00,380 --> 01:04:02,840 A continuación, voy a ir y hágalo esperar durante un segundo, 415 01:04:02,840 --> 01:04:04,650 por lo que no cuenta demasiado rápido. 416 01:04:04,650 --> 01:04:08,430 Y a continuación, por último, cambiar contador por uno-- en otras palabras, 417 01:04:08,430 --> 01:04:13,520 incrementar el contador por uno un valor adicional y hacer esto para siempre. 418 01:04:13,520 --> 01:04:16,129 >> Así las ovejas también, como una programador, cuenta desde 0. 419 01:04:16,129 --> 01:04:20,350 420 01:04:20,350 --> 01:04:23,740 Y si esperamos lo suficiente, que va a hacer esto para siempre. 421 01:04:23,740 --> 01:04:27,740 Pero eso no es del todo cierto, porque de hecho, como vamos a descubrir en la semana uno, 422 01:04:27,740 --> 01:04:31,871 enteros y las computadoras, más en general, técnicamente sólo tienen un finite-- así, 423 01:04:31,871 --> 01:04:33,829 más bien, cuando los ordenadores que representan números enteros, 424 01:04:33,829 --> 01:04:35,670 sólo tienen un número finito de bits. 425 01:04:35,670 --> 01:04:37,860 Esas bombillas allí sólo puede contar tan alto 426 01:04:37,860 --> 01:04:39,239 antes de que esté fuera de las bombillas. 427 01:04:39,239 --> 01:04:41,590 Y un ordenador también, Sólo tiene tanta memoria, 428 01:04:41,590 --> 01:04:44,640 Sólo tiene tantos transistores, por lo que sólo puede contar tan alto. 429 01:04:44,640 --> 01:04:47,409 >> Así resulta que las ovejas, Creo, puede contar hasta 2 mil millones 430 01:04:47,409 --> 01:04:48,409 o algo bastante grande. 431 01:04:48,409 --> 01:04:50,325 Por lo que no vamos a esperar a que esto suceda. 432 01:04:50,325 --> 01:04:54,850 Pero con el tiempo algunos errores sucederá que puede tener un mundo muy real 433 01:04:54,850 --> 01:04:55,970 ramificaciones. 434 01:04:55,970 --> 01:04:58,861 Pero más allá de las ovejas, que simplemente introduce una variable. 435 01:04:58,861 --> 01:05:01,110 Vamos a seguir adelante y abrir algo que hice con antelación 436 01:05:01,110 --> 01:05:07,430 aquí se llama Pet el Cat-- Acariciar al gato por aquí. 437 01:05:07,430 --> 01:05:10,420 Y note aquí es unos pocos bloques, pero cuando la bandera verde 438 01:05:10,420 --> 01:05:12,474 se hace clic, siempre haciendo lo siguiente. 439 01:05:12,474 --> 01:05:15,265 Si va a tocar el ratón pointer-- por lo que el cursor en la pantalla, 440 01:05:15,265 --> 01:05:18,529 el juego arrow-- maullido sonido y luego esperar dos segundos. 441 01:05:18,529 --> 01:05:19,570 Y justo hacer esto para siempre. 442 01:05:19,570 --> 01:05:22,619 Sólo tiene que esperar constantemente para ver si el pointer-- 443 01:05:22,619 --> 01:05:24,710 si el gato está en contacto con el puntero. 444 01:05:24,710 --> 01:05:26,060 >> Así que pulsar el botón Reproducir. 445 01:05:26,060 --> 01:05:26,920 Nada esta pasando. 446 01:05:26,920 --> 01:05:28,980 Pero a medida que muevo el cursor sobre el gato, 447 01:05:28,980 --> 01:05:31,960 >> [Meowing] 448 01:05:31,960 --> 01:05:34,750 >> Y si me mudo a la basura, no acariciar el gato más. 449 01:05:34,750 --> 01:05:38,090 Así que un poco de lógica condicional anidado dentro de un bucle. 450 01:05:38,090 --> 01:05:43,070 ¿Qué hay de este ejemplo, deliberadamente No se llama acariciar al gato? 451 01:05:43,070 --> 01:05:45,253 ¿Qué es esto va a hacer? 452 01:05:45,253 --> 01:05:47,880 >> [Meowing] 453 01:05:47,880 --> 01:05:50,215 >> ¿Por qué no acariciar al gato? 454 01:05:50,215 --> 01:05:59,440 >> [Meowing] 455 01:05:59,440 --> 01:06:00,699 >> DE ACUERDO. 456 01:06:00,699 --> 01:06:03,880 Así que este es un ejemplo de un caso de otra cosa. 457 01:06:03,880 --> 01:06:06,482 Es un punto de decisión y porque está sentado en el bucle, 458 01:06:06,482 --> 01:06:07,690 los dos están siendo marcada. 459 01:06:07,690 --> 01:06:08,280 ¿Es esto cierto? 460 01:06:08,280 --> 01:06:08,760 ¿Es esto cierto? 461 01:06:08,760 --> 01:06:09,250 ¿Es esto cierto? 462 01:06:09,250 --> 01:06:09,791 ¿Es esto cierto? 463 01:06:09,791 --> 01:06:11,880 Y, finalmente, una de los que se va a aplicar 464 01:06:11,880 --> 01:06:16,480 y lo que se escucha ya sea el maullido o el rugido del león en ese caso. 465 01:06:16,480 --> 01:06:21,400 >> Bueno, vamos a hacer un poco más de uno de lujo que hice con antelación demasiado-- hilos. 466 01:06:21,400 --> 01:06:25,210 Así que un hilo es sólo uno cosa que una computadora puede hacer. 467 01:06:25,210 --> 01:06:29,349 Así, un programa multi-roscado es un programa que puede hacer varias cosas a la vez. 468 01:06:29,349 --> 01:06:31,140 Y todos estos ejemplos hasta ahora han tenido 469 01:06:31,140 --> 01:06:35,980 sólo una secuencia de comandos, por lo que speak-- un programa como este aquí. 470 01:06:35,980 --> 01:06:38,810 Pero nótese que este programa tiene dos sprites, dos caracteres. 471 01:06:38,810 --> 01:06:40,020 Uno de ellos es un pájaro. 472 01:06:40,020 --> 01:06:40,870 Uno de ellos es un gato. 473 01:06:40,870 --> 01:06:45,080 >> Y darse cuenta cuando hago clic en estas abajo izquierda, cada uno tiene sus propias secuencias de comandos 474 01:06:45,080 --> 01:06:47,120 o programas asociados con ellos. 475 01:06:47,120 --> 01:06:49,420 Y ambas cosas programas, aviso, comienzo 476 01:06:49,420 --> 01:06:52,600 con la bandera cuando está verde clicked-- vamos a ver el cat-- 477 01:06:52,600 --> 01:06:54,030 cuando se hace clic en bandera verde. 478 01:06:54,030 --> 01:06:58,220 Y así, de hecho, cuando me golpeó el juego ahora, dos cosas van a suceder a la vez. 479 01:06:58,220 --> 01:07:01,750 El gato y el pájaro son a la vez va a funcionar a la vez 480 01:07:01,750 --> 01:07:03,815 para crear este efecto. 481 01:07:03,815 --> 01:07:05,440 Y se puede imaginar lo que está pasando. 482 01:07:05,440 --> 01:07:08,340 Hay un lazo y el pájaro y el gato están en un bucle. 483 01:07:08,340 --> 01:07:11,270 El ave se acaba rebotando como Que era antes cuando dije ay. 484 01:07:11,270 --> 01:07:13,040 Pero el gato tiene claramente una ventaja. 485 01:07:13,040 --> 01:07:16,040 Hay otro bloque de detección señala que el gato deliberadamente 486 01:07:16,040 --> 01:07:19,836 al pájaro en este caso aquí. 487 01:07:19,836 --> 01:07:22,960 Así que podríamos desmenuzar, mirando a través de esos bloques, lo que está sucediendo. 488 01:07:22,960 --> 01:07:25,460 Pero el ingrediente clave aquí es uno. 489 01:07:25,460 --> 01:07:28,520 El pájaro, por lo que este juego no es por completo o boring-- este animation-- 490 01:07:28,520 --> 01:07:30,060 comienza a una dirección aleatoria. 491 01:07:30,060 --> 01:07:32,890 Y el equipo se está recuperando un número entre 90 y 180 492 01:07:32,890 --> 01:07:36,110 en esencia, por lo que es un poco animación diferente cada vez. 493 01:07:36,110 --> 01:07:39,480 >> Y luego notar aquí, si el gato está en contacto con el ave, a continuación, 494 01:07:39,480 --> 01:07:42,030 reproducir el león de cuatro sound-- el rugido. 495 01:07:42,030 --> 01:07:46,330 Pero mientras tanto en el ave de paleta, tenemos este. 496 01:07:46,330 --> 01:07:49,229 Para siempre, si no se toca el gato, simplemente mantenerse en movimiento tres pasos. 497 01:07:49,229 --> 01:07:50,770 Y entonces aquí es otra pieza del rompecabezas. 498 01:07:50,770 --> 01:07:52,030 Si se encuentra en el borde, rebotar. 499 01:07:52,030 --> 01:07:54,840 Por lo que el ave es sólo un poco ocupándose de su propio negocio, 500 01:07:54,840 --> 01:07:57,330 simplemente volar alrededor y rebotando, y es realmente 501 01:07:57,330 --> 01:08:01,780 el gato que tenía la lógica condicional para determinar si se había alcanzado el ave. 502 01:08:01,780 --> 01:08:02,280 Todo bien. 503 01:08:02,280 --> 01:08:08,800 Así que vamos a hacer otra aquí, éste se llama hi hi hi. 504 01:08:08,800 --> 01:08:15,100 Y esta de aquí sólo hace esto en un bucle infinito. 505 01:08:15,100 --> 01:08:18,925 Pero notice-- ¿Cómo detenemos este programa muy molesto? 506 01:08:18,925 --> 01:08:21,600 507 01:08:21,600 --> 01:08:22,640 Pulsa la barra espaciadora. 508 01:08:22,640 --> 01:08:27,990 Porque si lo hago, program-- la mano izquierda 509 01:08:27,990 --> 01:08:31,550 notará que está en constante listening-- es el espacio de prensa tecla. 510 01:08:31,550 --> 01:08:34,090 Si pulsa la barra espaciadora, y si es así, ¿qué hacer? 511 01:08:34,090 --> 01:08:35,980 Se hace una técnica muy común. 512 01:08:35,980 --> 01:08:38,590 Se establece una variable igual a algún valor. 513 01:08:38,590 --> 01:08:39,741 Pero cambia ese valor. 514 01:08:39,741 --> 01:08:41,490 [? Así apariencia?] basado en el I shape-- 515 01:08:41,490 --> 01:08:43,160 tener una variable que escribió con antelación llamada 516 01:08:43,160 --> 01:08:44,770 Silenciado, que se limita a decir sí o no. 517 01:08:44,770 --> 01:08:45,880 Se silencia el sonido o no? 518 01:08:45,880 --> 01:08:46,990 ¿Verdadero o falso? 519 01:08:46,990 --> 01:08:51,580 Y el aviso, lo que digo esto- si silenciado es cero, a continuación, cambiar a uno, 520 01:08:51,580 --> 01:08:53,840 otro conjunto de silencio a cero. 521 01:08:53,840 --> 01:08:55,540 Así que sólo tapa el valor de cero a uno. 522 01:08:55,540 --> 01:08:58,320 Podría tener que cambiar done-- de dos a tres y una y cincuenta y siete 523 01:08:58,320 --> 01:09:00,162 o cuatro a cinco o cuatro a seis. 524 01:09:00,162 --> 01:09:01,870 Pero no importa lo que los números que utilizo, 525 01:09:01,870 --> 01:09:04,090 siempre que sigo cambiándolo lo contrario. 526 01:09:04,090 --> 01:09:07,290 >> Y la mayoría lo haría cualquier programador solo elegir cero y uno-- falso y verdadero, 527 01:09:07,290 --> 01:09:09,510 apagado y en-- para representar a este. 528 01:09:09,510 --> 01:09:10,930 Y esto todavía está en marcha. 529 01:09:10,930 --> 01:09:12,190 Si lo golpeo la barra espaciadora de nuevo 530 01:09:12,190 --> 01:09:13,590 >> [SELLO SONIDOS] 531 01:09:13,590 --> 01:09:15,440 >> El programa todavía se está ejecutando. 532 01:09:15,440 --> 01:09:18,400 Debido a que hay este otro script que dice, siempre haga lo siguiente. 533 01:09:18,400 --> 01:09:21,390 534 01:09:21,390 --> 01:09:24,770 Si la variable es igual a silenciado zero-- por lo que si usted no está silenciado 535 01:09:24,770 --> 01:09:29,609 es la lógica-- si es falsa o no, a continuación, reproducir el sonido, 536 01:09:29,609 --> 01:09:30,650 porque usted no está silenciado. 537 01:09:30,650 --> 01:09:33,358 Usted debe reproducir el sonido y luego pensar hi hi hi durante dos segundos 538 01:09:33,358 --> 01:09:35,790 y luego esperar, y hacerlo una y otra y otra vez. 539 01:09:35,790 --> 01:09:40,760 >> Y así, de esta manera tenemos una forma de a-- personas para los programas para interactuar. 540 01:09:40,760 --> 01:09:43,120 Y no tienen que ser como fecha como otros. 541 01:09:43,120 --> 01:09:46,280 De hecho, asomando around-- sin juego de palabras intended-- 542 01:09:46,280 --> 01:09:49,250 alguien gasta una enorme cantidad de tiempo en el Internet implementación 543 01:09:49,250 --> 01:09:51,580 PokemonGo en Scratch. 544 01:09:51,580 --> 01:09:55,440 Incluso le geolocates en Cambridge o Allston aquí. 545 01:09:55,440 --> 01:10:03,120 Así que si quieres ver lo que la gente demasiado puede hacer es esto- menú muy elegante. 546 01:10:03,120 --> 01:10:04,780 Haga clic en aquí. 547 01:10:04,780 --> 01:10:07,430 >> Este soy yo con mis teclas de flecha ahora. 548 01:10:07,430 --> 01:10:09,446 Voy a ir después de esto. 549 01:10:09,446 --> 01:10:09,946 Hacer clic. 550 01:10:09,946 --> 01:10:12,949 551 01:10:12,949 --> 01:10:14,240 Y ahora hace clic en el Pokeball. 552 01:10:14,240 --> 01:10:17,130 553 01:10:17,130 --> 01:10:20,260 Es decir, yo creo que eres se supone que haga clic en el Pokeball. 554 01:10:20,260 --> 01:10:20,760 Todo bien. 555 01:10:20,760 --> 01:10:22,680 Así que lo hice. 556 01:10:22,680 --> 01:10:23,950 Puedo ir por aquí. 557 01:10:23,950 --> 01:10:27,790 Y esta persona implementado algunos más PokéBalls más de tres aquí-- PokéBalls. 558 01:10:27,790 --> 01:10:29,950 >> Vamos a publicar un enlace a esta en línea para que pueda jugar. 559 01:10:29,950 --> 01:10:32,364 Pero notificación no es sólo algunos bloques de construcción básicos. 560 01:10:32,364 --> 01:10:33,780 Se parece mucho más elegante, y lo es. 561 01:10:33,780 --> 01:10:35,905 Esto es impresionante y más de lo que lo haría normalmente 562 01:10:35,905 --> 01:10:37,740 esperar, sin duda para un problema de ajuste a cero. 563 01:10:37,740 --> 01:10:40,809 No tengo ni idea de cuánto tiempo esta persona pasó en línea. 564 01:10:40,809 --> 01:10:41,850 Pero todo es sólo un bucle. 565 01:10:41,850 --> 01:10:43,180 Hay un juego de sonido. 566 01:10:43,180 --> 01:10:44,850 Hay una especie de bucle la escucha de si estoy 567 01:10:44,850 --> 01:10:47,558 golpear la flecha hacia arriba o hacia abajo el flecha oa la izquierda ya la derecha, 568 01:10:47,558 --> 01:10:49,834 y luego, si es así, se está moviendo que cierto número de píxeles. 569 01:10:49,834 --> 01:10:51,750 Y luego, si hago clic en otro elemento sprite, hay 570 01:10:51,750 --> 01:10:53,390 algún tipo de condición si existe. 571 01:10:53,390 --> 01:10:54,806 Sí, esto se está poniendo demasiado intenso. 572 01:10:54,806 --> 01:10:56,100 Vamos a parar. 573 01:10:56,100 --> 01:10:57,750 Es todos esos bloques de construcción básicos. 574 01:10:57,750 --> 01:11:01,530 No hay otros ingredientes distintos que las que hemos visto ya. 575 01:11:01,530 --> 01:11:04,670 >> Y sin embargo, aquí, déjame hacer un último conjunto de ejemplos 576 01:11:04,670 --> 01:11:06,960 que pinta un cuadro demasiado de lo que se puede hacer aquí. 577 01:11:06,960 --> 01:11:10,481 He aquí un programa muy simple que simplemente hace esto- la tos, la tos, la tos. 578 01:11:10,481 --> 01:11:12,480 Se basa exclusivamente en lo hemos visto hasta ahora, 579 01:11:12,480 --> 01:11:14,570 ¿dónde está la obvia oportunidad para mejora. 580 01:11:14,570 --> 01:11:15,570 Este programa es correcto. 581 01:11:15,570 --> 01:11:17,980 Se tose tres veces, que es lo que pretendía. 582 01:11:17,980 --> 01:11:19,650 Pero está bien aplicada. 583 01:11:19,650 --> 01:11:20,600 Está mal diseñado. 584 01:11:20,600 --> 01:11:22,000 ¿Por qué? 585 01:11:22,000 --> 01:11:22,500 Sí. 586 01:11:22,500 --> 01:11:23,230 No es un bucle. 587 01:11:23,230 --> 01:11:24,610 Y no es tanto que no es un bucle, 588 01:11:24,610 --> 01:11:26,400 es que hay una gran cantidad de redundancia. 589 01:11:26,400 --> 01:11:28,830 No se copia y se código pegado, por así decirlo. 590 01:11:28,830 --> 01:11:31,830 Y la solución probablemente es de hecho un bucle. 591 01:11:31,830 --> 01:11:34,350 Así que déjame ir por delante y mejorar en este aspecto. 592 01:11:34,350 --> 01:11:36,250 Y voy a arrastrar estos por aquí. 593 01:11:36,250 --> 01:11:39,986 Déjame seguir adelante y conseguir una repetición bloque, cambie esto a tres. 594 01:11:39,986 --> 01:11:41,860 Voy a tirar a la basura algunos de esos bloques. 595 01:11:41,860 --> 01:11:43,150 >> Y se dará cuenta de que es bastante intuitiva. 596 01:11:43,150 --> 01:11:45,691 Usted arrastrar y soltar y cosas aparecen y desaparecen con el tiempo. 597 01:11:45,691 --> 01:11:49,170 Y yo sólo puedo arrastrar esto aquí, y ahora tengo aún una versión más limpia. 598 01:11:49,170 --> 01:11:50,730 ¿Pero sabes que? 599 01:11:50,730 --> 01:11:52,940 Hay esta oportunidad ahora para abstraction-- 600 01:11:52,940 --> 01:11:56,350 para empezar a definir un nuevo vocabulario que el MIT no anticipó. 601 01:11:56,350 --> 01:11:59,110 Hay esperar y repetir y siempre y si, 602 01:11:59,110 --> 01:12:02,590 pero lo que si quiero introducir la palabra tos como un bloque? 603 01:12:02,590 --> 01:12:06,230 ¿Y si quiero una pieza del rompecabezas cuyo propósito en la vida es la tos? 604 01:12:06,230 --> 01:12:10,720 >> Bueno, vamos a ver esta versión aquí, el cual hice como sigue. 605 01:12:10,720 --> 01:12:13,579 Por arte de magia, he creado esta pieza del rompecabezas aquí, 606 01:12:13,579 --> 01:12:14,870 el cual los arañazos le permite hacer. 607 01:12:14,870 --> 01:12:16,787 Y, en efecto C y Python y JavaScript son 608 01:12:16,787 --> 01:12:18,370 va a permitir hacer esto también. 609 01:12:18,370 --> 01:12:21,830 Puede crear su propia piezas que llama con lo que quiere. 610 01:12:21,830 --> 01:12:24,890 En este caso, la tos se siente como una definición razonable. 611 01:12:24,890 --> 01:12:27,880 Y luego, con estas piezas abajo aquí se puede definir lo que significa. 612 01:12:27,880 --> 01:12:30,290 >> Me arrastre o las caídas de esta gama de colores más aquí-- 613 01:12:30,290 --> 01:12:33,500 blocks-- esta gran púrpura bloque, donde he escrito en la tos 614 01:12:33,500 --> 01:12:35,290 como el nombre de mi nueva pieza del rompecabezas. 615 01:12:35,290 --> 01:12:39,920 Y entonces yo estoy diciendo cada vez que un usuario llama a esta nueva pieza del rompecabezas de la tos, 616 01:12:39,920 --> 01:12:41,770 hacer algo que decir y una espera. 617 01:12:41,770 --> 01:12:46,160 Y así hasta aquí en mi bloque de repetición, Yo sólo puedo toser tres veces. 618 01:12:46,160 --> 01:12:49,972 >> Y yo diría, sobre todo Si ahora se oculta este detalle. 619 01:12:49,972 --> 01:12:51,430 A quién le importa cómo se implementa la tos? 620 01:12:51,430 --> 01:12:54,390 Todo lo que importa como programador que pueda toser. 621 01:12:54,390 --> 01:12:56,280 No me importa cómo decir es implementado. 622 01:12:56,280 --> 01:12:58,620 Yo sólo importa que la gato puede decir algo. 623 01:12:58,620 --> 01:13:02,720 Que pueda abstraer ese detalle y sólo se centran en lo que está en la pantalla aquí. 624 01:13:02,720 --> 01:13:04,400 Pero puedo llevar esto un paso más allá. 625 01:13:04,400 --> 01:13:08,070 >> Tenga en cuenta que aquí, tengo implementado el bucle tres veces. 626 01:13:08,070 --> 01:13:11,560 Pero lo que si en vez agarro esta versión? 627 01:13:11,560 --> 01:13:14,640 ¿Y si en vez en esta versión aquí, 628 01:13:14,640 --> 01:13:18,730 Acabo de cambiar mi pieza del rompecabezas para tomar un argumento y la entrada en sí mismo? 629 01:13:18,730 --> 01:13:21,100 Y que la entrada puede ser igual número tres. 630 01:13:21,100 --> 01:13:24,580 Así que ahora, si yo escribo un programa y quiero que el gato para la tos, 631 01:13:24,580 --> 01:13:28,270 De hecho, me puedo decir el rompecabezas piece cuántas veces al toser, 632 01:13:28,270 --> 01:13:31,990 porque en el fondo aquí, un colombófilo versión de estas piezas del rompecabezas de encargo 633 01:13:31,990 --> 01:13:34,500 me permite especificar que tos toma realidad 634 01:13:34,500 --> 01:13:36,951 un input-- toma un argumento como este. 635 01:13:36,951 --> 01:13:37,700 ¿Y sabes qué? 636 01:13:37,700 --> 01:13:38,890 Tal vez me doy cuenta, espera un minuto. 637 01:13:38,890 --> 01:13:40,680 La tos es el same-- es fundamentalmente 638 01:13:40,680 --> 01:13:42,120 la misma idea que el estornudo. 639 01:13:42,120 --> 01:13:44,040 Es sólo una diferente palabra en la pantalla. 640 01:13:44,040 --> 01:13:46,550 Que pueda abstraer y aplicando 641 01:13:46,550 --> 01:13:48,750 esta versión final de un tos, que a primera vista 642 01:13:48,750 --> 01:13:50,660 es mucho más compleja que mira. 643 01:13:50,660 --> 01:13:52,140 Pero Tenga en cuenta lo que he hecho. 644 01:13:52,140 --> 01:13:55,930 Tengo ahora generalized-- genericized realmente-- esta pieza del rompecabezas 645 01:13:55,930 --> 01:13:59,900 a llamarse decir palabra n veces. 646 01:13:59,900 --> 01:14:04,410 >> Y ahora tengo dos nuevas piezas del rompecabezas aquí abajo definir la tos n veces. 647 01:14:04,410 --> 01:14:06,790 ¿Y qué hace la función de la tos? 648 01:14:06,790 --> 01:14:08,420 ¿Qué hace mi pieza del rompecabezas de encargo? 649 01:14:08,420 --> 01:14:11,996 Simplemente llama al bloque digamos, pasando por la palabra que quiero decir, 650 01:14:11,996 --> 01:14:13,870 pasando en el número de veces que quiero decir. 651 01:14:13,870 --> 01:14:18,210 Porque ahora puedo poner en práctica estornudar, simplemente diciendo achoo, 652 01:14:18,210 --> 01:14:20,320 en este caso, un número de veces. 653 01:14:20,320 --> 01:14:22,360 >> Y, entonces, capas y capas. 654 01:14:22,360 --> 01:14:25,690 Y de nuevo, la clave aquí no es la forma en que he implementado, pero el hecho 655 01:14:25,690 --> 01:14:28,070 que si yo sólo, literalmente, moverlos fuera de la pantalla, 656 01:14:28,070 --> 01:14:31,280 mira que si no simples bastante mi programa ahora se ve. 657 01:14:31,280 --> 01:14:33,930 Porque hace lo que dice, he abstraído 658 01:14:33,930 --> 01:14:37,640 lejos de lo que es dentro de esa caja negro. que pasa a ser una caja púrpura aquí, 659 01:14:37,640 --> 01:14:41,430 pero he obstruida de distancia lo que hay dentro porque no me importa cómo funciona. 660 01:14:41,430 --> 01:14:43,650 Yo sólo importa ahora que funciona. 661 01:14:43,650 --> 01:14:46,375 >> Y, en efecto, en el problema asigna el valor cero, esto es exactamente 662 01:14:46,375 --> 01:14:49,250 el tipo de estratificación de las ideas Vas tener la oportunidad de explorar. 663 01:14:49,250 --> 01:14:53,510 Es exactamente la oportunidad de aplicar técnicas de resolución de problemas, 664 01:14:53,510 --> 01:14:55,550 a lo que es, probablemente, una ambiente desconocido. 665 01:14:55,550 --> 01:14:57,890 Y si no se ha programado antes o programada antes, 666 01:14:57,890 --> 01:14:59,500 usted encontrará que hay un poco algo 667 01:14:59,500 --> 01:15:00,874 en este entorno para todo el mundo. 668 01:15:00,874 --> 01:15:02,770 Y con conjunto de problemas uno en el plazo de una semana, 669 01:15:02,770 --> 01:15:06,630 vamos a realizar la transición de centrarse en un lenguaje de alto nivel llamado 670 01:15:06,630 --> 01:15:09,290 C-- o más bien una menor lenguaje de alto nivel llamado 671 01:15:09,290 --> 01:15:11,347 C-- eso es aún más poderosa, aunque es 672 01:15:11,347 --> 01:15:12,930 un poco más críptica a primera vista. 673 01:15:12,930 --> 01:15:16,740 >> Y se dará cuenta por TL de hoy: DR, que este problema tiene un set más corto 674 01:15:16,740 --> 01:15:19,880 ventana de tiempo que los futuros, simplemente porque debería buscar que sea relativamente 675 01:15:19,880 --> 01:15:20,420 accesible. 676 01:15:20,420 --> 01:15:22,211 Y no hay que preocuparse si agregar la clase de retraso. 677 01:15:22,211 --> 01:15:23,920 Trataremos que en poco tiempo. 678 01:15:23,920 --> 01:15:28,480 Y antes de levantar la sesión para la torta, vamos a terminar con sólo una mirada de dos minutos 679 01:15:28,480 --> 01:15:30,500 a lo que le espera aquí en CS50. 680 01:15:30,500 --> 01:15:40,950 681 01:15:40,950 --> 01:17:20,803 [REPRODUCIENDO MÚSICA] 682 01:17:20,803 --> 01:17:21,302 Todo bien. 683 01:17:21,302 --> 01:17:22,690 Eso es todo por CS50. 684 01:17:22,690 --> 01:17:23,650 Te veremos pronto. 685 01:17:23,650 --> 01:17:25,526 Torta ahora se sirve. 686 01:17:25,526 --> 01:17:28,998 687 01:17:28,998 --> 01:18:14,267 [REPRODUCIENDO MÚSICA] 688 01:18:14,267 --> 01:18:16,350 ALTAVOZ 17: ¿Ha oído de un año sabático, jefe? 689 01:18:16,350 --> 01:18:29,490 690 01:18:29,490 --> 01:18:31,920 ALTAVOZ 18: Tal vez hay más bajo el capó. 691 01:18:31,920 --> 01:18:38,279