[REPRODUCCIÓN DE MÚSICA] -Está Bien! : Este es CS50. : Este es CS50. : Este es CS50. [MÚSICA - IGGY AZALEA, "LUJO"] -Mi Recuerdo favorito de CS50 fue cuando me fui a Puzzle Day. -Probablemente El momento dedicado a trabajar en los boletines de problemas con mis amigos y la gente que Wold eventualmente convertirse en mis blockmates. -Mi Mejor recuerdo de CS50 es el hackathon. -El CS50 hackathon. -Hackathon. -Hackathon. -Hackathon. -El Hackathon -Rob Bowden. Justo todo lo relacionado con él. [MÚSICA - IGGY AZALEA, "LUJO"] -Mi Mejor recuerdo es cuando yo estaba en escenario y yo jugamos el papel de prestigio de un nodo de [? en el Linked?] [? Lista. ?] -Cuando Todos tenemos espacio libre Dropbox y David era como, mira debajo de sus asientos. Y fue como, espacio para todo el mundo! [MÚSICA - IGGY AZALEA, "LUJO"] Consejos -Mi para cualquier estudiante entrante haría ser trabajar realmente en P-juegos con los amigos. Horas -Oficina es muy su amigo. -Hacer La mayor parte de su experiencia y conocer a tantas personas como sea posible. No seas miedo de pedir ayuda. -Empezar Los P-conjuntos de principios de la semana. -Creo Que lo más importante es que tomar ventaja de todos los recursos que tiene CS50. -ir A las horas de oficina a principios de semana. -Definitivamente Ver los cortos. -No Posponer las cosas en sus P-sets. Hacé click aquí para asegurarse de que encontrar un gran grupo de personas para trabajar en P-sets con. Usted puede tener un montón de diversión y realizar su trabajo juntos. No seas miedo de empujar a ti mismo. Ir a la edición de hackers a veces. Cosas -Escribir en el papel antes de vuelves a tocar el equipo. -CS50 Es realmente grande en proporcionando maneras de obtener ayuda. -Mi Un consejo es dormir. ¿Alguien ha dicho eso? Sueño, seguro. Es fácil no hacer, pero tienes que hacerlo, creo. -diría Que realmente esté preparado mentalmente porque usted va a encantar. [MÚSICA - IGGY AZALEA, "LUJO"] : Este es CS50. : Este es CS50. : Este es CS50. [MÚSICA - IGGY AZALEA, "LUJO"] : Este es CS50. [Aplausos] DAVID J. MALAN: Así que esto es CS50 y este es el final de la Semana 0. Y eso era sólo algunas del personal del CS50 que esperar que no sólo en las secciones y las horas de oficina, pero, También, este fin de semana en CS50 Puzzle Day. Lo cual, de nuevo, no es todo acerca de la programación. De hecho, se espera que no tendrá que programar nada, sino resolver problemas utilizando ingenio y amigos junto a usted. Estaremos unidos por alguna de nuestros amigos de Facebook-- si se registra aquí-- que durante los últimos años, tienen en realidad estado escribiendo estos desafíos con nosotros. Y así, ellos serán los que en última instancia, corriendo Puzzle día. Y así, serás retado precisamente con el tipo de cosas y problemas que gente de Facebook le gusta pensar. Así que es mañana. Regístrese en cs50.harvard.edu/register. Ahora una palabra en un par del personal en particular. Esto aquí es Ansel Duff, que es en realidad una de los co-autores de estos binarios bombillas que vimos el miércoles, además de propio Dan Bradley del CS50. Ansel Duff también era un ex estudiante de primer año aconsejado mío hace 3 años y de hecho incluso construyó este atril. Se ha ido a hacer ciencias de la ingeniería y más. Ahora, su imagen aquí es en realidad Ansel hace 3 años en el CS50 Hackathon cuando él pidió prestado uno de nuestro globos, pegado a su computadora portátil, y, para el próximo 12 de alguna extraña horas, se centró en su proyecto final, tomar descansos sólo para abrir bolsas de caramelos en la hackathon. Pero continuó, más recientemente, a pasar el verano pasado con nosotros, desde CS50 para su personal, y ahora los estudiantes este semestre, tiene su propia impresora 3D. Y en pocas palabras a las impresoras 3D es un dispositivo que se parece bastante como éste. Usted llena con un carrete de plástico que se funde por el dispositivo y construir cosas literalmente de la nada. Al igual que una impresora de inyección de tinta, se inicia escupir pequeños puntos de plástico que forma junto a formar objetos integrales. Y así Ansel por ejemplo, a principios de este verano, tiene un iPhone 5 y decidí que realmente quería para mantenerla sobre su escritorio. Pero él no quería salir a comprar algo desde la tienda de Apple o similares, por lo que se sentó y comenzó a dibujar algo. Dio unos mediciones en cuanto a cómo gruesa y el ancho de su iPhone era, dibujó esta imagen aquí, él decidió que quería tener una inclinación de 75 grados ya que estaba mirando él en su escritorio allí. Luego se volvió esto, utilizando software, en un modelo CAD 3D que parecía un poco algo como esto. Y luego se procedió, en última instancia, para crear realmente. Así que de hecho, si alguno de ustedes aquí, tal vez consecutivo en que puedo lanzar a, tiene an-- no tenemos gente con iPhone 5, y aquí tenemos dos más. Ahora, para no ser menos, CS50 propia Cheng Gong también se propuso este verano para construir un buen número de cosas y, De hecho, por razones que todavía están claro, ha sido lentamente impresión de un ejército de elefantes con brazos articulados y troncos. Un par de los cuales son en realidad aquí si alguien ahora como-- un elefante. Bien,. pero lo que Cheng también hizo para nosotros es él muy amablemente creó una cámara porque ese elefante, lo creas o no, toma un poco de dos y un horas y media para imprimir. Incluso el stand iPhone tomó una hora y media para imprimir. Y lo que Cheng siguió adelante y lo hizo se creó una buena cámara delante de esta impresora 3D, filmado por una hora y un medio como el diseño de Ansel impreso. Nos sobrepusimos algunos sexy música a la misma con el fin para darle esto a mirar cómo funciona la impresión en 3D. Y a pesar de que esta es en realidad en plástico, darse cuenta de que si se trata de un área de su interés académico, hay gente, entre ellos Jennifer Lewis aquí en la Escuela de Ingeniería, que son en realidad trabajando en la impresión 3D objetos de plástico. Pero incluso, cada vez más, materiales biológicos para resolver problemas fisiológicos de los seres humanos. Pero aquí hay un poco de algo de CS50. [LOUD MECÁNICA RUIDOS] DAVID J. MALAN: No suena nada de eso en la realidad, pero es mucho más fresco que verlo a esa velocidad, y con ese sonido. Ahora, el miércoles, cómo hicimos primero llegado hasta aquí? Empezamos a hablar de la computadora las ciencias y nos preguntaron de qué se trataba. Y se trata de una serie de cosas, y hay tantas direcciones diferentes en el que usted puede dirigirse después de un curso como CS50. De hecho, si usted tomó una de esas guías no oficiales al exterior CS, el folleto que hemos proporcionado, si eres pensando en tomar sólo CS50, o tal vez haciendo un secundario, o tal vez incluso para concentrarse en CS, no voltear a través de eso. Y verás un diagrama hacia el final que que muestra las muchas direcciones diferentes en CS que se puede ir en. Pero por hoy, nos centraremos, de nuevo, en Realmente uno de los puntos de vista fundamentales, tal vez, donde usted tiene entradas a los problemas, Tiene salidas de problemas, y que tienen algoritmos con los que crear esas salidas de esos insumos. Y un ejemplo de ello, era de Por supuesto, este libro de teléfono aquí. Y hemos utilizado como ejemplo para ir a través de un algoritmo que era correcto. Y luego había otro correcta, pero un poco más rápido. Y luego otro que era un poco más dramático, pero fundamentalmente más rápido. Cierto, este libro de teléfono reclamado tenía cerca de 1.000 páginas. Y ¿cuántas veces tomó tengo para desgarrar la guía telefónica en medio encontrar a alguien como Mike Smith, como máximo, en 1000 la página del libro? Así, 10 más o menos. Y lo que una vez me rompí esta cosa en medio, o simplemente, con mayor madurez, dividido por la mitad, es sólo 10 páginas de cada 1.000. Y si extrapolamos, un poco poco realista para una libreta de teléfonos, pero si este libro teléfono tenía unos 4 miles de millones de páginas en el mismo, de manera tan completa difícil de manejar físicamente, ¿cuántos veces no se dividen un 4 mil millones página del libro de teléfono a la mitad? Así que en realidad es de 32 años, más o menos. Y así 32 veces única, fuera de 4 mil millones de páginas, puede a encontrar a alguien como Mike Smith. Y eso es eficiencia. Eso es un buen algoritmo, diría. Pero luego nos mudamos de que para tratar de formalizarlo. Y me propuse este código pseudocódigo. Código Pseudocódigo no es nada formal. No es algo a memorizar. Es algo que usted expresa bastante intuitiva utilizando Inglés, o cualquier lenguaje de verdad, que transmite sus ideas de manera sucinta. Pero lo que es clave sobre código pseudocódigo es que usted tratar de anticipar toda la posibles casos que pueden ocurrir. Y, en efecto, en este pseudocódigo código, había realmente tres casos cada vez que divide la guía telefónica. Mike podría estar a la izquierda. Mike podría estar a la derecha. O puede que tenga razón en la página que estoy. O un cuarto caso de la esquina, por así decirlo. Una mala situación podría ser aquella de las cuales: lo que está sucediendo? Mike no es sólo en la guía telefónica en absoluto. Y cuando los programas crash-- cuando Mac y software para PC que ustedes RUN en los equipos a veces cuelga o se cierra inesperadamente, eso significa generalmente que algunos programador, algún humano como usted pronto, simplemente jodido y cometido algún error. Tal vez no anticipar que tal vez hay hay Mike Smith en la guía telefónica. Y si en realidad no escribes código para manejar situaciones como esas, generalmente impredecible cosas pueden suceder. El equipo puede congelar. Se puede reiniciar. El programa puede dejar de fumar. Y así, todos estos estupideces que usted puede han encontrado en su real la vida sólo el uso de computadoras, será cada vez más sólo explicó lejos por esta intuición y esta comprensión de lo que es realmente está pasando debajo de la capucha. Ahora vamos a tratar de echar un vistazo en un problema más general. En lugar de tomar asistencia en un lugar como esto, que sería bastante lento hacer una, dos, tres, cuatro. O tal vez dos, cuatro, seis, ocho. Vamos a centrarnos, en cambio, en cómo podríamos formalizar el algoritmo del proceso por que podríamos tomar asistencia. Y en el camino, vamos a empezar aplicar un poco de nomenclatura que vamos a utilizar hoy cuando en realidad empezar a programar en un lenguaje. Así que te doy ahora, un video cuatro minutos que armamos con nuestros amigos de TED, la organización. Por lo cual hemos suministrado un guión y trajeron sus animadores de soportar, y en realidad creado un 2D animación de lo que es un algoritmo. Si pudiéramos apagar las luces. [REPRODUCCIÓN DE MÚSICA] NARRADOR: ¿Qué es un algoritmo? En ciencias de la computación, un algoritmo es un conjunto instrucciones de resolver algún paso a paso problema. Típicamente, los algoritmos son ejecutado por los ordenadores, pero nosotros los humanos tenemos algoritmos también. Por ejemplo, ¿cómo vas de contar el número de personas en una habitación? Bueno, si eres como yo, lo que probablemente apuntar a cada persona de uno en uno y contar a partir de cero. Uno, dos, tres, cuatro, y así sucesivamente. Bueno, eso es un algoritmo. De hecho, vamos a tratar de expresar una poco más formalmente en código pseudocódigo. Sintaxis Inglés-así se asemeja a un lenguaje de programación. Sea n igual a 0. Por cada persona en la habitación, establecer n igual a n más 1. ¿Cómo interpretar el pseudocódigo? Bueno línea uno declara, por así decirlo, una variable llamado n e inicializa su valor a 0 Esto sólo significa que en el a partir de nuestro algoritmo, la cosa con la que estamos conteo tiene un valor de 0. Después de todo, antes de empezar a contar no hemos contado nada. Llamar a esta variable n es sólo una convención. Yo podría haber llamado más nada. Ahora alinee dos deMarks el inicio de un bucle, una secuencia de pasos que repetir un número de veces. Así, en nuestro ejemplo, el paso que estamos toma está contando la gente en la sala. Debajo de la línea dos es la línea tres que describe exactamente cómo vamos a ir de contar. La indentación que implica es la línea de tres que se repetirá. Así que con el código pseudocódigo es dicho es que después de comenzar a 0 para cada persona en el habitación aumentaremos n por 1 Ahora es correcto este algoritmo? Bueno, vamos a golpear un poco. ¿Funciona si hay dos personas en la habitación? Vamos a ver. En la línea uno inicializamos n a 0. Para cada una de estas dos personas, entonces incrementamos n por 1. Así que en el primer viaje a través de la bucle, actualizamos n de 0 a 1. En el segundo viaje a través de ese mismo bucle, actualizamos n desde 1 hasta 2. Y así, por este algoritmo de final, n es 2, que de hecho coincide con el número de personas en la habitación. Hasta ahora, todo bien. ¿Qué tal un caso esquina sin embargo? Supongamos que hay 0 personas en el habitación-- además de mí, ¿quién es haciendo el recuento. En la línea uno, volvemos a inicializamos n a 0. Esta vez, sin embargo, la línea tres no se ejecuta en absoluto ya que no es una persona en la habitación. Y así sigue siendo n 0, lo que coincide de hecho el número de personas en la habitación. Bastante simple, ¿verdad? Pero contar personas de uno en uno es bastante ineficiente, demasiado, ¿no? Seguro que podemos hacerlo mejor. ¿Por qué no contar con dos personas a la vez, en lugar de contar uno, dos, tres, cuatro, cinco, seis, siete, ocho, y así sucesivamente. ¿Por qué no contar con dos, cuatro, seis, ocho, y así sucesivamente? Incluso suena más rápido. Y seguramente lo es. Vamos a expresar esta optimización en código pseudocódigo. Sea n igual a 0. Para cada par de personas en habitación, coloque n igual a n más 2. Bastante simple cambio, ¿verdad? En lugar de contar a las personas de una en una, en vez de eso les contamos de dos en dos. Este algoritmo de, por lo tanto, dos veces tan rápido como la última. Pero, ¿es correcto? Vamos a ver. ¿Funciona si hay dos personas en la habitación? En la línea uno, inicializamos n a 0. Para que un par de personas, entonces incrementamos n por 2. Y así por este algoritmo de final n es 2, que de hecho coincide con el número de personas en la habitación. Supongamos a continuación que hay cero personas en la habitación. En la línea uno inicializamos n a 0. Como antes, la línea tres no ejecuta todo ya que no hay ningún par de personas en el cuarto, y así sigue siendo n 0. Que de hecho coincide con el número de personas en la habitación. Pero lo que si hay tres personas en la habitación? ¿Cómo funciona esta tarifa algoritmo? Vamos a ver, en la línea uno, inicializamos n a 0. Para un par de esas personas, entonces incrementamos n por 2. Pero entonces, ¿qué? No hay otro completo par de personas en la habitación, así que la línea dos ya no se aplica. Y así, a finales de este algoritmo, n sigue siendo 2, que no es correcto. De hecho este algoritmo de dijo ser defectuoso debido a que tiene un error. Vamos con un poco de reparación nuevo código de pseudocódigo. Sea n igual a 0. Para cada par de personas en habitación, coloque N igual a n más 2. Si una persona sigue siendo no apareado, establecer N igual a n más 1. Para resolver este problema en particular, tenemos introducido en la línea cuatro condiciones, también conocido como un sucursales, que sólo se ejecuta si hay una persona que no podían emparejarse con otro. Y ahora, si hay uno, o tres, o cualquier número impar de personas en la habitación, este algoritmo ahora contarlos. ¿Podemos hacerlo mejor? Bueno, podríamos contar de tres en tres, o cuatro patas, o incluso cinco y diez, pero más allá de eso, se va a poner un poco difícil de señalar. Al final del día, ya sea ejecutado por los ordenadores o los seres humanos, algoritmos son sólo un conjunto de instrucciones con la que para resolver los problemas. Estas fueron sólo tres. ¿Qué problema ¿verdad resolver con un algoritmo? DAVID J. MALAN: Así que deliberadamente, un programa muy sencillo, un algoritmo muy simple, para lograr algo muy simple, contando el número de personas en la habitación. Pero vamos a desmenuzar algunos de los representante características aquí que son en realidad va a ser útil incluso cuando la aplicación de la más complejo de software. Así, por ejemplo, en esta primera línea, tenemos lo que llamamos la variable, y del álgebra, eres generalmente familiarizados con x e y y z veces, y así sucesivamente. Pero en la programación, variables son todavía, al final del día, muy similar al. Pero es quizá más simple de pensar de una variable como sólo un contenedor. Y, de hecho, que es algún número de bits implementado de alguna manera en tu disco duro o en la memoria de su computadora, pero más sobre esto en el futuro. Es sólo un contenedor. Y si usted dice algo como sea n igual a 0, bueno eso es como decir que este vidrio tazón aquí n, sólo un nombre arbitrario, y poner nada en él inicialmente. Así que el valor de este cuenco en este momento es cero. Y por supuesto, si usted percibe en una línea subsiguiente, para incrementar realmente alguna línea de código, como en esta tercera línea de aquí, por 1, que es como decir cuál es el valor actual de n, es 0, más 1, poner algo como un mesa de ping pong en aquí. Ahora el valor de este variable es simplemente 1. Y se podría extrapolar muy rápidamente, pero ahora es 2, ahora es el 3, y así sucesivamente. Así que eso es todo, una variable es. Es un pedazo de almacenamiento para en realidad almacenar algunos datos. Por ahora es una pelota de ping pong. No se trata de un número. Pero podría ser palabras en un diccionario, como el corrector ortográfico Me referí a el miércoles para uno de los boletines de problemas del año pasado. Ahora, otra idea clave, que de igual forma es bastante intuitivo nos atreveríamos a afirmar es el de un bucle. Y el bucle en el proceso de contar todo el mundo es, por supuesto, hacer lo mismo Lo nuevo y nuevo-- cualquiera a la vez o dos a la vez. Y usted puede expresar esto en Inglés, o código de pseudocódigo, en cualquier número de maneras, pero el uso de la preposición "de" es una manera muy común de hacer eso. Para cada persona en la habitación, hacer esto. Una y otra vez. Y el hecho de que es sangría, línea de tres, sólo significa que lo que se supone que debes hacer es la materia que está sangrada por debajo de la línea dos sí. Sólo una convención humana, pero una común como veremos en mayor real lenguajes de programación de nivel. Ahora poco más interesante es cuando te metes en un caso esquina. Por ejemplo, una esquina caso fue cuando hay eran tres personas, o cinco, o siete, o cualquier número impar de personas en la habitación, porque hacerlo de dos en dos los frenos finalmente, porque el va de extrañar a alguien, ya sea en el principio o el final dependiendo de cómo usted lo hace. Y así, ahora, tengo esta rama, o condición, si una persona sigue siendo, a continuación, seguir adelante y tratar de que uno persona solitaria que no recibieron emparejado con alguien más. Así que eso es lo que llamaríamos una condición, o una rama. Código Ahora pseudocódigo más en general puede ser escrito para resolver cualquier número de problemas. Y lo que pensamos que sería mejor hacer aquí es tomar un momento invitar diremos de CS50 poseer Rob Bowden en el escenario a hacer venir a dos voluntarios, que no tienen idea de lo que le espera. Una mano bajó tan pronto como he dicho eso. ¿Qué tal si en la termina aquí, vamos arriba. ¿Y qué hay de más lejos de distancia, ¿qué tal forma en la parte posterior. Fila de atrás, vamos para arriba con las manos en alto. Muy bien, y ¿cuál es tu nombre? ANITA: Anita. DAVID J. MALAN: Anita. Bueno, encantado de conocerte. Permítanme presentarles a Rob Bowden. Esta es Anita. ¿Y cuál es su nombre? Kiersten: Kiersten DAVID J. MALAN: Kiersten. Kiersten, vamos hacia arriba y cumplir con Rob Bowden y Anita. Encantada de conocerte. Kiersten: Encantado de conocerte. DAVID J. MALAN: Muy bien, Rob. ROB BOWDEN: Encantado de conocerte. DAVID J. MALAN: Anita. Kiersten: Hola Anita. DAVID J. MALAN: ¿Y su varios cientos de compañeros de clase. Así que, ahora déjame ir adelante y tire hasta un simple programa aquí en Mac OS que me dejaré realmente apuntar algunas notas hacia abajo. Y si ustedes quieren a cada uno tomar una posición en una de esas escuelas allí, déjame ir adelante y comienza una lista de código pseudocódigo, si se quiere. Y lo que quiero hacer aquí, en última instancia, es el tipo para usted algunas instrucciones que nuestra los miembros del público son en realidad va a recitar para nosotros. Déjame ir por delante y justo cambiar esto a una lista numerada para que coincida con lo que estábamos haciendo allí. ¿Y qué voy a hacer con su ayuda, es escribir un programa en pseudocódigo, con la cual estos chicos van para implementar un cacahuete mantequilla y mermelada. Por lo que es tal vez a propósito de mostrar algo que algunos de ustedes podría haber visto en el Internet por sólo un breve momento molesto. [MÚSICA BUCKEWHEAT MUCHACHOS, "MANTEQUILLA DE MANÍ  JELLY TIME "] DAVID J. MALAN: OK. Eso es suficiente. Así que aquí mientras tanto, tengo un par de Google Glasses que vamos a poner en propio Rob Bowden del CS50 para ver el mundo a través de sus ojos. Y haremos nuestro mejor esfuerzo en el post producción a tejer realidad las imágenes de lo que Rob está viendo Ahora, en esta conferencia real video con nuestros dos voluntarios junto a él. Así que lo que voy a hacer es, voy a ser el mecanógrafo. Tenemos la meta de aquí realmente escribir un programa con el que hacer, en última instancia, una mantequilla de maní y jalea, pero estos tres van a comportarse como si fueran ordenadores. Y los ordenadores, al final del día, son en realidad dispositivos bastante tontos. Son súper rápido, pero sólo pueden hacer, literalmente, lo que les dicen. Usted no puede decir simplemente hacer un cacahuete mantequilla y mermelada. Usted tiene que programar para hacer eso. Tienes que decirles con precisión lo que debe hacer, menos las cosas salen horriblemente y, con suerte, divertidamente mal. Así que dicho esto, necesitamos una llamada de salida de la audiencia por lo que debe intervenir uno sea, si el objetivo aquí es hacer un cacahuete mantequilla y mermelada. Sí? AUDIENCIA: [inaudible] la bolsa de pan. DAVID J. MALAN: Abra la bolsa de pan. Así que si los tres concursantes haría gustaría proceder a hacer eso literalmente. Abra la bolsa de pan. [AUDIENCIA DE RISA] DAVID J. MALAN: Así que vamos a trabajar en eso. Bien. Así que paso dos, cómo-- vamos a llevar esto aún más. Sí, en la parte delantera. AUDIENCIA: [inaudible] el pan. DAVID J. MALAN: ¿Qué es eso? AUDIENCIA: Retire el pan. DAVID J. MALAN: Retire el pan. Del mismo modo sucinto. Gracias. [Aplausos] DAVID J. MALAN: Eso es todo? Aceptar, por lo que el paso dos va ser eliminar el pan. Bien, alguien quiere escribirnos una sentencia más larga? ¿Alguien más? Un poco más de [inaudible]. No, nada ahora. Sí? AUDIENCIA: Coloque dos rebanadas lado de la otra. DAVID J. MALAN: Coloque dos rebanadas lado de la otra. [AUDIENCIA DE RISA] DAVID J. MALAN: Coloque dos rebanadas lado de la otra. Paso cuatro. Sí? AUDIENCIA: Lleve a su la mano y la puso suavemente en la parte superior de la tapa de mantequilla de cacahuete. [AUDIENCIA DE RISA] AUDIENCIA: [inaudible] junto a la mantequilla de cacahuete. DAVID J. MALAN: ¿Qué? Dilo de nuevo. AUDIENCIA: Desenrosque la tapa y poner suavemente al lado de la mantequilla de cacahuete. DAVID J. MALAN: Ponga suavemente junto a la mantequilla de cacahuete. Aceptar, el progreso. Paso cinco. Excelente. Sí? Recoge el cuchillo. DAVID J. MALAN: Pick up cuchillo. Aceptar, paso seis. ¿Sí? AUDIENCIA: Sostenga el cuchillo por el mango. DAVID J. MALAN: Mantenga cuchillo por el mango. Mantenga cuchillo por el mango. Paso siete. Sí? AUDIENCIA: Cuchillo de [inaudible] en maní la mantequilla y la menor a [inaudible]. DAVID J. MALAN: Pon cuchillo en-- I oído "cuchillo puesto en la mantequilla de maní y tomar tan poco como sea posible ". Por cierto, primero retire el papel. Muy bien, el paso nueve. Paso nueve. Paso nueve. En realidad no hemos hecho un sándwich todavía. Sí? AUDIENCIA: Usando un cuchillo en la mantequilla de maní, aplicar mantequilla de maní en dicho pan. DAVID J. MALAN: Usando un cuchillo en mantequilla de maní, mantequilla de maní en aplicar dicho pan. [AUDIENCIA DE RISA] DAVID J. MALAN: Todo paso correcto 10. Paso 10. Sí? AUDIENCIA: Sabor cacahuete mantequilla para garantizar la calidad. [AUDIENCIA DE RISA] DAVID J. MALAN: Paso 11. Paso 11. Paso 11. Venga. ¿Sí? Ahí mismo. AUDIENCIA: Recoja cuidadosamente jalea. DAVID J. MALAN: Recoja cuidadosamente jalea. Aceptar y, a continuación, otra mano subía. Justo detrás de ti. Sí, en azul. AUDIENCIA: Muy bien, quite tapa de [inaudible], sí, retire la tapa de la jalea. [AUDIENCIA DE RISA] DAVID J. MALAN: Desde jalea. Ja, ja. [AUDIENCIA DE RISA] DAVID J. MALAN: ¿Y? AUDIENCIA: Y apenas barrer cualquier [inaudible]. [AUDIENCIA DE RISA] AUDIENCIA: Por supuesto, antes de [inaudible], retire el papel de la jalea. DAVID J. MALAN: Retire el papel de la jalea. Paso 14. Ya casi llegamos. Sí? AUDIENCIA: Botella jalea Invertir antes de que todo se cae. DAVID J. MALAN: Invertir jalea botella antes de jalea cae. Paso 15. AUDIENCIA: Vuelva a colocar la tapa. DAVID J. MALAN: Vuelva a colocar la tapa. Paso 16. ¿Sí? AUDIENCIA: [inaudible] DAVID J. MALAN: Diga eso otra vez. AUDIENCIA: casquillo de la toma fuera de su gelatina. DAVID J. MALAN: Off su gelatina. Así realmente-- Uy. Venga. Vuelva a colocar la tapa. Ponga cap-- Dijiste quite la tapa de la jalea. Siente como si estuviéramos en un poco de un bucle. Paso 17. Sí? AUDIENCIA: [inaudible] DAVID J. MALAN: Diga eso otra vez. AUDIENCIA: [inaudible] DAVID J. MALAN: Volver a step-- AUDIENCIA: [inaudible] DAVID J. MALAN: Retire casquillo de la mantequilla de maní. Sí? AUDIENCIA: caida de todo el jalea en el pan. DAVID J. MALAN: caida de todo la jalea en el pan. DAVID J. MALAN: Estamos casi allí. Paso 19. AUDIENCIA: Retire el exceso de gelatina. DAVID J. MALAN: Haha, la jalea. [Aplausos] DAVID J. MALAN: ¿Por qué no Nosotros-- un paso más para tomar este hogar. Un paso más y luego serviremos sándwiches. Sí? AUDIENCIA: [inaudible] DAVID J. MALAN: Mientras que cualquier sándwich guión nos dejó remains-- esto-- comer. [Risas de la audiencia] DAVID J. MALAN: Muy bien, gracias Gracias a nuestros voluntarios aquí. [Aplausos} DAVID J. MALAN: Tenemos algunas buenas regalos de despedida para cada uno de ustedes. Su propia mantequilla de maní, jalea, y el pan para llevar a casa. Gracias. Kiersten: Gracias. DAVID J. MALAN: [inaudible] bienvenida. [Aplausos] DAVID J. MALAN: Así que, esto es, de Por supuesto, un ejemplo ridículo. ¿Cierto? Pero esto tipo de revelar cómo los seres humanos sólo tienen claridad por sentado. Y el hecho de que he estado hablar con otro ser humano, él o ella sólo sabe lo que quieres decir. Las computadoras no van saber lo que quieres decir, incluso cuando se utiliza, como estamos a punto de hacer hoy, programar algo en Scratch, un lastre y soltar, el lenguaje de puzzle estilo pieza. Incluso diseñado para jóvenes los niños, que tienen ser tan explícita y tan literal con lo que usted quiere que su programa de hacer. Ahora, en última instancia, estamos va a ser la programación no en el código de pseudocódigo, Inglés como la sintaxis, pero el código o, más propiamente, el código fuente. El código fuente es la forma elegante para describir código que en realidad escribir con un teclado que es no en Inglés per se. Está en C o Java o C ++ o algo así, como pronto veremos. Y, de hecho, sólo para asustar a un pocos de ustedes, a primera vista, este es un programa escrito en un lenguaje llamado C. Pero para un-susto a algunos de ustedes, lo harás completamente entender lo que está pasando en venir el próximo lunes cuando se llega a algo como esto. Francamente, esta es una lengua más antigua. Es bastante arcano, pero es representativa de una gran cantidad de idiomas en estos días que tienen un montón de paréntesis y rizado llaves y comillas y puntos y comas. Y mucho de esto cosas sintáctica que no es en absoluto intelectualmente interesante. De hecho, se trata de una distracción absoluta desde las ideas muy simples que nos están mirando en la cara. Este programa, como que sólo podría adivinar, imprime en la pantalla del ordenador de alguien las palabras "Hola mundo coma." Eso es todo. Así que, claramente, no hay un montón de cosas que son en el camino de algunos obviedad allí, pero va a caer muy rápidamente de distancia y ser completamente intuitiva. De hecho, lo que vamos a hacer hoy se destila esta bastante complejo programa que busca, que a su vez le va a venir comprender rápidamente, sino a algo mucho más simple. Digamos lo que queremos decir. Vamos a dibujar una imagen de lo que queremos decir, a través de estas piezas del rompecabezas aquí. Así que esta es una programación lenguaje conocido como arañazos. Fue desarrollado por el Media Lab del MIT. Y lo que usted verá en problema de ajuste a cero, que será lanzado más tarde esta noche, vamos a tener que ir a este URL aquí scratch.mit.edu. Y tienen una web interfaz basada través de la cual usted va a escribir su primer programa. O aquellos de ustedes con anterioridad experiencia, sus programas de segundo, pero en un entorno que es probablemente un poco familiarizado y que te empujará para crear algo utilizando este entorno muy visual. Ahora, lo que voy a hacer aquí es abrir el programa en sí. Existe no sólo como un navegador web, sino también como un programa descargable por lo que en realidad se puede utilizar si usted no tiene acceso a internet. Y yo voy a hacer que aquí, en Sanders, sólo en caso de que el Wi-Fi no es así cooperar súper bien. Y lo que voy a hacer es el punto cabo algunas características de este programa. Así que, para que quede claro, que acabo de doble clic en el icono en el escritorio, o equivalentemente ido a scratch.mit.edu, y se detuvo esta ventana. Este es un entorno de programación. Es una pieza de software que algunos de nuestros amigos en el MIT escribió que vamos nosotros y nos escribe programas en un lenguaje llamado arañazos. Ahora bien, esto pasa a ser un cat quien también nombró arañazos y este es su mundo en el que vive. Esta es la etapa, por así decirlo, que rectángulo en la esquina superior izquierda. Y él no tiene que parecerse a un gato. Usted puede hacer que se vea como cualquier cosa y usted puede tener muchos de estos sprites, o caracteres, en un programa. Mientras tanto, aquí en el extremo derecho, es una gran pizarra en blanco. Y es aquí donde, en un momento, vamos a iniciar la programación arrastrando y soltando estos rompecabezas gráfica piezas que son perfectos aquí en el medio. Y hay mucho más de ellos que vamos a pasar el tiempo aquí en la clase porque usted encontrará que todos son bastante intuitivo. Una vez más, está diseñado para los niños, sino que utilizarlo para desmenuzar algunos de los ideas fundamentales de variables, bucles, condiciones, y, pronto, las cosas como las funciones y eventos y las roscas y otras cosas de lujo que vamos a llegar en poco tiempo para realmente crear algo desde cero. Nunca mejor dicho. Ahora, lo que voy a hacer aquí es haga clic en no movimiento, pero el control. Y esto es sólo una categorización de aquí-- y veo una diferente grupo de colores de los bloques. Pero notar algunas palabras familiares. "Si" y "else if" y "repetición". Y es fácil adivinar que es una reminiscencia de la rama, o las condiciones que vimos, y incluso la construcción de bucle. Así que tenemos bloques similares aquí. Pero lo más interesante uno es este de aquí. Cuando se hace clic en esta bandera verde, esto, para aquellos con la programación previa experiencia, es equivalente a una función principal. Pero para aquellos que no conocen, esta es la pieza del rompecabezas que será poner en marcha todo nuestro programa. Literalmente significa cuando voy, en este programa, y ​​haga clic en un flag-- verde que se puede ver aquí en el esquina superior izquierda de la interfaz de usuario, así que ver la bandera verde junto a la señal de stop de color rojo? Cuando hago clic en eso, mi programa se va a ejecutar. Ahora, yo voy a hacer algo super simple con arañazos. Voy a seguir adelante y vaya al panel de miradas aquí, donde tengo un montón de las piezas del rompecabezas de color púrpura, y yo voy a seguir adelante y hacer algo super simple como, por ejemplo. Y fíjense entonces-- este texto en el cuadro blanco es editable-- voy a decir "Hola mundo", al igual que hizo en ese textual versión hace un momento. Y ahora si me voy y haga clic en este bandera verde, que ahora han programado. No es un particular programa interesante, pero hice que el ordenador haga algo. Empecé un programa y hice lo que me dijeron que hiciera. Ahora, puedo continuar para arrastrar y soltar más y más de estas piezas del rompecabezas y que van a entrelazar, pero vamos a bofetada alguna terminología aquí que veremos recurrentes durante todo el curso, y realmente lo largo de la informática y la programación en general. Este "decir" del bloque, en púrpura, vamos a simplemente empezar a llamar un comunicado. Es como una declaración de hecho. Haga esto. Así que, es una categoría de instrucciones que podría alimentar a un equipo como parte de un programa o un algoritmo. Y para ser claro, que haya probablemente se da por sentado que tiene programas en su ordenador. Y son tipo de algoritmos, sino una programa es en realidad un montón de algoritmos que algunos humanos escribieron. Ellos empacan hacia arriba y lo vendieron por lo que, o se publicarán en una página web para que puedas descargar. Por lo tanto, un programa es sólo una toda montón de ceros y unos que, de alguna manera, los seres humanos crearon. Y esos patrones de ceros y los representan cosas, en última instancia, como o "juego" decir hola mundo " esta música "o" reproducir este vídeo " o "enviar un correo electrónico." Pero vamos a volver en de manera más detalle lo un programa es cuando usted, usted mismo, ellos escriben. Aquí hay otro statement-- "Espere un segundo." No hice uso de esto todavía, pero si quiero mi programa para hacer una pausa por un momento hacer algo, puedo decirle que lo haga. Espere un segundo. Ahora otro podría ser "reproducir el sonido." Así que, esto es único en Scratch, que tiene la capacidad de reproducir sonidos. Por lo tanto, una declaración que podría uso es, aquí, "jugar de sonido." Mientras tanto, la expresión booleana, por lo que esta es una palabra más elegante nombrado después de sólo un tipo llamado Mr. Bool, y esto tiene que ver con una pregunta. Verdadero o false-- es el ratón? Una expresión booleana es sólo alguna expresión en Inglés es decir, ya sea verdadera o falsa. Ya sea dentro o fuera. O bien uno o cero. Usted puede pensar en él en cualquier número de maneras, pero es verdadera o esta falsa, en última instancia. Así "ratón hacia abajo signo de interrogación," eso sería una expresión booleana. Y usted puede pensar en los demás, tal vez. Por ejemplo, "es el número de la izquierda menor que el número correcto? " Eso, también, habría una expresión booleana. "Menos" es una expresión booleana. Éste, también, "puntero del ratón conmovedor." No estoy seguro de por qué llamado puntero del ratón. Sólo quiere decir, es que el cursor, es el flecha en la pantalla, tocando el gato, por ejemplo. O algún otro aspecto de la pantalla. Y es una pregunta, una vez más, y que denota una expresión booleana. Algo que te pueden que desee utilizar en una condición. Así que vamos a llegar a eso en un momento. Usted puede "y" cosas juntas. Así que, si usted quiere comprobar si este es el caso y que es el caso, usted puede utilizar una "y" bloque como este. Y aquí está esa condición. Observe la forma de la pequeña abertura en la parte superior de esta pieza del rompecabezas de color amarillo, que es una reminiscencia de la forma que acabamos de ver hace un momento. Cada una de estas expresiones booleanas tener estos bordes puntiagudos a la izquierda y la derecha. Y eso es porque la gente del MIT decidieron que por las formas de transporte visualmente, usted puede clase de ayudar a la gente, estudiantes y niños por igual, para llenar clase de los espacios en blanco, literalmente. Ahora que puzzle-- que apertura es un poco pequeña, y como veremos en el programa, en Scratch, que crecerá para adaptarse. Se mantendrá su forma, en última instancia. Así que una condición vamos a decidir "Debo hacer algo o no?" Una expresión booleana es la pregunta real que utiliza para decidir qué voy a el OR dejé hago para ir a la derecha cuando me encuentro con este llamado tenedor en la carretera? Usted puede tener dos ramas. Si algo es cierto, hacer esto, de lo contrario ir de esa manera, o simplemente puede no hacer nada en todo, como este bloque implícita. Del mismo modo, se pueden anidar estas cosas. Así que si usted quiere que se triplique en el tenedor carretera, o bien hacer esto o esto o aquello, usted puede apenas nido estas cosas juntas. Y comienza a ser un poco feo, con el tiempo, a ciencia cierta, pero la lógica sigue siendo la misma. Usted puede leer literalmente esta arriba a abajo y dice lo que significa: si este Es cierto, hacer esto, más si lo demás. Un bucle no consigue más simple en scratch. Siempre haga lo siguiente. Ahora usted no puede pensar que puede hacer mucho porque no hay la cantidad de espacio entre la parte superior y la parte inferior de esta abertura pieza del rompecabezas. Pero verás arañazos va a crecer para adaptarse a la mayor cantidad de piezas de un rompecabezas como usted quiere meter ahí. Otro bucle podría ser expresado con repeticiones. Si usted sabe de antemano ", I querer hacer algo 10 veces, " usted puede decirle a los arañazos hacer algo 10 veces. Y, mientras tanto, podemos tener variables. Así que aquí es arbitraria, Es de color naranja en este caso, y este es un viaje relámpago. Una vez más, se encuentra esta muy accesible una vez que empezar a señalar y hacer clic. He nombrado a mi variable n, pero yo podría haber llamado él lo que quiera, y yo estoy dando aquí, en este ejemplo arbitrario, a cero. Ahora viendo un programa como hola mundo no es tan convincente, así que vamos a abrir en realidad algo que un ex estudiante hizo. Déjame ir por delante y abro, por ejemplo, esta de aquí, para los que me encantaría tener un voluntario. Muy bien, ¿sobre-- vamos a ir más lejos. Sí, vamos arriba. Cuál es tu nombre? ABBY: Abby. DAVID J. MALAN: Abby, vamos arriba. Así que ¿alguna vez has jugado este juego antes? ABBY: No. DAVID J. MALAN: Muy bien. David, un placer conocerte. Ven a trabajar. ¿Y cuál es su programación fondo, si los hubiere. ABBY: He aprendido un poco de C ++. DAVID J. MALAN: Has aprendido algo de C ++. Y lo que es su juego tocando fondo? ABBY: No mucho. DAVID J. MALAN: OK, así que vamos a tomar eso. Así que aquí está cómo el juego va a funcionar. Voy a seguir adelante y haga clic en la bandera verde, que es aquí en la parte superior derecha. Ahora su predecesor en la clase te ha dado algunas instrucciones aquí. Y en un momento, se dice que "el espacio para empezar." Así que adelante y pulsa la barra espaciadora. JUEGO DE ORDENADOR: Pikachu. DAVID J. MALAN: Y el objetivo es coger la comida, tal como se representa allí a la izquierda. Y a [inaudible] [JUEGO DE MÚSICA] DAVID J. MALAN: Aww, bueno, gracias por jugar. Tenemos aquí un poco regalo de despedida para ti. Tenemos bola de la tensión CS50, si desea elegir. Está bien, bueno conocerte. Gracias por venir y desafiando. Así que tenemos más bolas de estrés, por lo que vamos a hacer un ejemplo más para motivar. Un voluntario? Muy bien, ¿qué hay de aquí delante. Cuál es tu nombre? PHILLIP: Phillip. DAVID J. MALAN: Phillip. Vamos arriba, Phillip. Así, Phillip se va a ser desafiados con otro juego que uno de sus predecesores escribió como parte del problema de ajuste a cero, llamado juego más difícil de Ivy. Y veremos en tan sólo un momento lo que se quiere decir con esto. Phillip, encantado de conocerte. ¿Cuál es su formación? PHILLIP: Hecho un montón de codificación. Hecho un poco de juego, también. DAVID J. MALAN: OK. Tienes un montón de juegos, también. ¿Y has jugado antes a este juego? PHILLIP: No DAVID J. MALAN: Todos bien, así que aquí vamos. Voy a seguir adelante y haga clic en la bandera verde. [MÚSICA GAME] [MÚSICA MC HAMMER, "U NO PUEDE TOCAR ESTO"] PHILLIP: [inaudible] DAVID J. MALAN: [inaudible] PHILLIP: [inaudible] [Risas] [MÚSICA MC HAMMER, "U NO PUEDE TOCAR ESTO"] DAVID J. MALAN: [inaudible] Arar a través de él. PHILLIP: [inaudible] DAVID J. MALAN: Adelante. [MÚSICA MC HAMMER, "U NO PUEDE TOCAR ESTO"] DAVID J. MALAN: Muy bien. Felicitaciones. [Aplausos] DAVID J. MALAN: Nosotros puesto que en línea más tarde para que se puede posponer las cosas con él también. Princeton aparece al lado, después de eso. Así que ahora vamos a proceder en realidad que empezar de cero, por así decirlo, y en realidad acumulando hasta podemos desmenuzar algunas de estas ideas y llegar a algo aún más complejas para el final. Me voy a ir de aquí y voy seguir adelante y crear un nuevo archivo. Así que de nuevo, el conjunto de problemas caminará a través de algunos de estos pasos. Pero, todo lo que hice fue ir al menú Archivo y yo dicho "nuevo", tan parecido a Microsoft Word, o cualquier programa así. Y vamos a seguir adelante y nos ahora-- implementado "Hola mundo" hace un momento, pero vamos a hacer algo un poco más lindo. Voy a ir a los eventos. Y yo voy a hacer "cuando bandera verde hace clic ". Y luego voy a utilizar, por así decirlo, una rama. Así que voy a utilizar un "si" condición. Y notar cómo en cuanto me acerco a él, que quiere romper juntos. Así que dejé ir y que encaje juntos. Y ahora puedo hacer algo interesante. Si puedo desplazarme por aquí, voy para ver un montón de bloques. Si voy a "Datos" - me deja el zoom en-- hay algo acerca de las variables. Si voy al "movimiento", que pueda aparentemente cambiar las cosas. Si voy a "operadores" - oh, esto es interesante, Puedo elegir un número al azar. Así que déjame hacer algo con sólo cierta probabilidad, porque sí. Voy a seguir adelante y arrastrar esta pieza del rompecabezas, esto es que menos de bloque, por lo que es justo "Es este número a menos de que uno?" Pero yo no quiero un código permanente un número porque eso es bastante inútil. Así que voy a arrastrar esta pieza aquí, y observe cómo que encaje en, y ahora quiero seguir adelante y decir "si el número que se escogió al azar es menos de seis, haga lo siguiente ". Ahora, ¿por menos de seis? ¿Qué probabilidad es esto de manera efectiva me va a dar, sólo intuitivamente? Alrededor del 50%, ¿no? Si el número que puede adivinar al azar entre 1 y 10 es inferior a seis, claramente es uno, dos, tres, cuatro, o cinco. Y por lo que me va a dar una 50% de probabilidad de que ocurra? Bueno vamos a hacer algo como esto, "jugar maullido de sonido." Y fíjense, de nuevo, la pieza del rompecabezas crece para adaptarse, tanto tiempo como las formas coinciden. Eso es lo importante. Déjame ir a los arañazos aquí y haga clic en "play". No pasa nada. ¿Es un error? No, no es necesario. Podría ser simplemente que una mayor número fue elegido. Así que vamos a hacerlo de nuevo. Nada. [Maullar] DAVID J. MALAN: Ahí está. [Maullar] DAVID J. MALAN: Una vez más. No. [Maullando] DAVID J. MALAN: Así que si usted tiene Alguna vez ha jugado un juego, por supuesto, donde la materia está sucediendo al azar, como los chicos malos están viniendo o no venir a la pantalla, o las cosas están cayendo o no comprendida, eso es sólo porque algo súper simple como esto está sucediendo. Escoja un número al azar, y si es menor que un cierto valor, tal vez hacer esto o tal vez hacer eso. Podemos incorporar que en una condición. Vamos a hacer algo diferente. Permítanme desperdiciarlo. Usted puede deshacerse de cosas por simplemente arrastrándolo hacia la izquierda y dejar ir. Déjenme seguir adelante y hacer un bloque para siempre y muy pronto hacer algo molesto. Déjame ir por delante y decir "jugar maullido de sonido." Pero yo no quiero que esto sea demasiado molesto, así que me agarro este bloque, "Espera un segundo," y el aviso no hay más espacio para ella. Pero si vas lo suficientemente cerca, que quiere ir allí. Así que dejar ir y lo hará crezca para llenar el bloque. Así que ahora, se trata de un bucle. [Maullando] DAVID J. MALAN: Soy literalmente, hacer esto para siempre. Una y otra vez. Esto no es sólo un sonido natural. Déjenme seguir adelante y cambiar esta no un segundo, dos segundos y pulsa Enter. Y lo que es bueno de Scratch es que se puede programar de forma interactiva. Hacer un cambio, tal vez presione Enter o Reproducir de nuevo, y se acaba de seguir adelante. Bueno, ahora ¿por qué no lo hacemos algo un poco más lindo? En lugar de hacer todo desde cero, déjame ir por delante y abro un avance hizo uno, que me pre-cocido, llamado "Pet del gato." Y vamos a publicar todos estos archivos en línea, y problema de ajuste a cero le dirá cómo acceder a ellos y abrirlos. Y fíjense, esto es bastante simple. Pero antes, me parece que han agarrado un bloque "para siempre", así que tengo un bucle. Y luego tengo una condición "if". Tengo una expresión booleana. Así que en Inglés, sólo echando un vistazo a esto, especialmente si usted nunca ha programada antes, sólo intuitivamente, lo que es esto va a hacer, este programa? [CHATTER AUDIENCIA] DAVID J. MALAN: Si su mascota al gato, el gato va a miau, ¿verdad? Porque "siempre desmarcando" se el puntero del ratón tocando el gato. Así que para ser claros, y yo no dije esto antes, todos estos rompecabezas piezas y la secuencia de comandos que los hemos combinado en, por así decirlo, una secuencia de comandos es sinónimo programa, en realidad, pertenece a este gato. Y la razón porque es-- aviso se pone de relieve cómo este mismo gato aquí, aquí se puede crear un segundo gato o un perro o realmente todo lo que quieras de forma gráfica. Usted puede importar algo desde Photoshop, o similares, e integrar algo si querer hacer que para un proyecto. Y lo que encontrará, en última instancia, es que usted puede agregar secuencias de comandos, agregue rompecabezas piezas, a caracteres individuales. Así que todos estos pertenecen a este gato particular. Así que ahora si me voy por delante y jugar este programa, no pasa nada. Pero se está ejecutando. El programa es en este bucle siempre, tipo de espera de lo que suceda? [CHATTER AUDIENCIA] DAVID J. MALAN: acariciar al gato. Así que si me muevo mi ratón hacia él-- [Maullando] DAVID J. MALAN: Así que ahora Estoy acariciando al gato. Mientras tanto, podemos tener una rama doble. Déjame ir adelante y abrir hasta no acariciar al gato. Vamos a publicar esta línea también. Esto es un poco más compleja, pero sin decir se puede adivinar tal vez lo que va a suceder. [Maullando] DAVID J. MALAN: Cat es maullando, gran tiempo viejo. Pero este programa es, por supuesto, llamado "No acaricie el Gato," tan claramente, quiero acariciar al gato. [ROARING] DAVID J. MALAN: No acariciar al gato. Ahora, echemos un vistazo en otro ejemplo aquí. Esta será llamada "Hi, Hi, Hi," por razones que quedará claro, porque tan pronto como me dirijo este cosa-- [Foca] DAVID J. MALAN: Muy fácil escribir programas de Scratch molestos. [Foca] DAVID J. MALAN: Ahora no vamos a ir en gran detalle con todo esto, pero note que hay un par de nuevas características aquí. Hay una variable, llamada "silenciado" y luego hay un montón de condiciones. Y por ahora, permítanme solo se burlan de ti diciendo que si este chico se pone demasiado molesto, Puedo golpear la barra espaciadora y se detiene. Debido a que el papel desempeñado por estas dos secuencias de comandos es el siguiente. Uno de ellos está haciendo el ladrando cada pocos segundos. El otro está a la espera para mí para golpear la barra espaciadora. Y si lo hago golpear la barra espaciadora, que va a cambiar el estado de esta variable, el valor de esta variable, que es al parecer llamado "silencio," No me llamo Es algo aburrido como n, Lo llamé una palabra en Inglés, "silenciado". De 1 a 0 o de 0 a 1. De verdadero a falso o falso a verdadero. Y así, en realidad se puede ver ahora, que podría tener dos guiones, dos programas que se ejecutan de forma simultánea, y los dos de ellos podrían estar sentado en un bucle haciendo algo. A la espera de lo humano a hacer algo así como golpear la barra espaciadora. [Foca] DAVID J. MALAN: Y ahora él está en camino de nuevo. [Foca] DAVID J. MALAN: Entonces, ¿qué otra cosa Qué podemos hacer con estos ejemplos? Bueno, vamos a seguir adelante y hacer una ejemplo con contar ovejas. Vamos a continuar esta en la línea aquí de-- vamos a abrir el ejemplo ovejas. Y aviso, al igual que antes, éste, por suerte, es un poco menos molesto. Una vez me golpeó jugar aquí-- ¡Oh, no, esto es molesto. Él va a baa con cierta probabilidad. Vamos a jugar de nuevo. [BLEETING OVEJAS] DAVID J. MALAN: La única diferencia es hemos cambiado el traje, por así decirlo, y estamos reduciendo a la mitad y decir lo que es número real. Bueno, vamos a seguir adelante y llevar esto un paso más allá. Y déjenme burlan con otra característica aquí. Vamos a seguir adelante y abrir un programa llamado Temas. Tanto como usted puede tener uno sprite, que tiene varias secuencias de comandos, usted puede tener dos sprites, un ave en un gato, cada uno con su propio guión. Y cada uno de ellos puede operar simultáneamente. Si alguna vez has escuchado la palabra "multithreading" un ordenador es un medio "multiproceso" que puede hacer varias cosas a la vez, y, de hecho, por lo que puede rayar. Y ahora cuenta el pájaro es un poco tonto. Es sólo hacer las cosas al azar, rebotando en la pantalla. Es evidente que el gato se ha programado al tipo de tener que buscan capacidades a casa en en el ave porque él siempre apuntando a él. Hasta que finalmente, él coge el pájaro real. Así que no voy a detenerme en los detalles aquí, pero usted puede tipo de vislumbrar las mismas formas, algunos "Si" las condiciones, algunas variables, tal vez algunos bucles, son en última instancia, hacer la misma cosa. Ahora voy a seguir adelante y abrir algo más en conjunto, para embromar a algunos de ustedes, particularmente los más cómodos, lo que realmente puede hacer con esto. Voy a seguir adelante y abrir Botón aquí. Y este es un super programa sencillo de apariencia, pero ten cuidado con lo que sucede cuando yo-- Cuidado con lo que sucede cuando abro esta versión de la misma, aquí, en el navegador, scratch.mit.edu. Y cuando hago clic en este gran rojo botón, observe lo que sucede. Entonces, ¿qué está pasando aquí? En realidad hay un montón más complejidad pasando por debajo de la campana, a pesar de que he implementado esto, o, francamente, Dan Bradley ha puesto en marcha esta manera tan simple. Ha diseñado un rompecabezas arañazos personalizada pieza, conocido como una extensión de Scratch, lo llamó Toggle. Y lo Toggle hace es que envía un mensaje en internet. Y ese mensaje en sí se ve un poco críptico. Pero esto, también, podrás entender por fin de plazo. El mensaje de que en realidad el envío de se ve un poco de algo como esto. Es sólo texto. Cryptic. Usted entenderá que por el momento tenemos el problema conjunto de siete. Es sólo el envío de un mensaje de texto a través de Internet a un servidor. Y ese servidor es, en última instancia, hablando con esta bombilla, que tiene una de esas bombillas de lujo en lo que, en sí, es hablar a la red Wi-Fi de la red aquí, donde un dispositivo local abajo aquí-- y, en última instancia, en realidad es convertir esa luz y se apaga. Pero podemos hacer más cosas interesantes todavía. Note lo que Dan también hizo por nosotros. Hizo varios sprites, cada uno de que tiene una secuencia de comandos en espera de un clic. Y si hago clic en rojo, se pone roja. Si consigo azul, va azulado. Verde, amarillo, naranja. Y todo esto está sucediendo por yendo salida al internet, retroceder aquí para la bombilla de luz, encendido y apagado. Y si usted puede creer it-- y esto es quizás uno de los más complejos de Scratch proyectos alguien tiene implemented-- lo hizo, en la justicia, en un día. Y ese fue el reto al que nos tiramos a Dan cuando nos vio tener bombillas binarios, tenemos arañazos cómo, podemos combinarlos? Y, de hecho, esto es absolutamente algo que nadie en esta sala podría hacer por end-- del semestre es él bombillas binarios Reimplementado utilizando la misma interfaz que era en nuestro iPad el miércoles. Así que ahora, si realmente haga clic en el signo más por aquí, tenemos uno, dos, tres. Puedo golpear el 16 y a su vez que uno de. 128, y así sucesivamente. Ahora si que solo tiene y soplado su mente, usted podría hacer las cosas mucho más accesible, no implica ningún tipo de hardware, sin duda. Sólo cosas sobre la propia pantalla. Y, de hecho, lo que más estudiantes terminar haciendo es una especie de juego, alguna pieza de la obra artística, o algún tipo de animación interactiva. Y voy a decir una de nuestras favoritos ha sido éste. Y pensé que si nos podría atenuar las luces, vamos a echar un vistazo a esta final Proyecto de Scratch en conclusión. Pero lo que usted debe tener en cuenta, como Te puedo bromear con un último detalle, seccionamiento comenzará la próxima semana. Horario de oficina comenzarán la próxima semana. Boletín de problemas cero se publicarán CS50.harvard.edu más tarde hoy. Y le dará la bienvenida en conjunto de problemas cero a de CS50 propia Zamyla Chan, quien orienta la mayor parte de nuestro tutoriales. Estos son los vídeos incrustados en los boletines de problemas que llevará a cabo su mano a través de una gran cantidad de la configuración inicial y a través de muchas de las posibles decisiones de diseño. Así que nunca si has tenido esa emoción al recoger una tarea y se pregunta, ¿por dónde empiezo? Ella tendrá que respuesta para usted. Y ahora, un programa final de uno de sus predecesores en respuesta a la pregunta "¿Qué dice la zorra?" [MÚSICA YLVIS, "¿Qué dice la FOX?] YLVIS: (CANTO) Perro va trama. El gato va maullido. Aves del Twitter y el ratón va chillido. Vaca va moo. Rana va graznido. Y el elefante va sonar. Los patos dicen quack y peces van blub. Y el sello va ow ow ow, pero hay un sonido que nadie sabe, ¿qué dice el zorro? Y DAVID J. MALAN: Eso es todo por CS50. Nos vemos en Puzzle día y el lunes. [Aplausos] [MÚSICA YLVIS, "¿QUÉ FOX SAY?"] NARRADOR: Y ahora profunda pensamientos, por Daven Farnham. Hoy me golpeó en el cara con una guía telefónica. Confundir, como estoy en casa viendo en línea.