[MÚSICA DE XOGO] -Todo Ben! -É CS50. -É CS50. -É CS50. [MUSIC - Iggy Azalea, "Fancy"] -Meu Memoria preferida do CS50 Foi cando eu fun para Quebra-Cabeza Día. -probablemente Só o tempo pasou a traballar na serie de exercicios cos meus amigos e persoas que Abeba eventualmente tornar-se os meus blockmates. -Meu Mellor memoria de CS50 é o hackathon. -The CS50 hackathon. -Hackathon. -Hackathon. -Hackathon. -The Hackathon -Rob Bowden. Só todo sobre el. [MUSIC - Iggy Azalea, "Fancy"] -Meu Memoria preferida é cando estaba no escenario e fixen o papel de prestixio dun nodo [? no Linked?] [? Lista. ?] -Cando Todos temos espazo libre Dropbox e David era como, busque nos seus lugares. E foi así, espazo para todos! [MUSIC - Iggy Azalea, "Fancy"] Consello -Meu para calquera estudante de entrada sería ser realmente traballar en P-sets cos amigos. Tempo -Office é moi seu amigo. -Certifique Ao máximo a súa experiencia e responder a tantas persoas como sexa posible. Non ter medo de pedir axuda. -Comece Os P-sets ao comezo da semana. I Creo que a maior cousa é sacar proveito de todos os recursos que CS50 ten. -Vaia Para o horario de expediente no inicio da semana. -definitivamente Asistir aos shorts. Non procrastinar no seu P-sets. -Certifique-Se atopa un gran grupo de persoas para traballar na P-sets con. Pode ter unha chea de diversión e comezar o traballo feito en conxunto. Non sexas medo de empurrar-se. Ir á edición de hackers ás veces. Cousas -Write no papel antes Sempre toca seu ordenador. -CS50 É realmente grande en introducindo formas de obter axuda. -Meu Un consello é durmir. Alguén xa dixo iso? O sono, con certeza. É doado non facer, pero ten que facelo, eu creo. I Diría realmente estar preparado mentalmente porque vai adorar. [MUSIC - Iggy Azalea, "Fancy"] -É CS50. -É CS50. -É CS50. [MUSIC - Iggy Azalea, "Fancy"] -É CS50. [Aplausos] DAVID J. Malan: Entón este é CS50 e este é o fin de semana 0. E iso era só un de persoal do CS50 que esperan por ti, non só en seccións e as horas de expediente, pero, Ademais, este fin de semana en CS50 enigma Day. Que, de novo, non é todo sobre a programación. De feito, espérase que vostede non terá que programar nada, senón resolver problemas mediante intelixencia e amigos ao seu lado. Estaremos unidos por uns dos nosos amigos da Facebook-- se se rexistrar aqui-- que para os últimos anos, ten realmente foi escrito estes retos coa xente. E así, eles van ser os únicos en definitiva, en execución enigma Day. E así, será desafiado con precisión tipo de cousas e os problemas que a xente en Facebook gusta de pensar. Entón, que é mañá. Registre-se no cs50.harvard.edu/register. Agora unha palabra sobre unha parella de persoal, en particular. Isto aquí é Ansel Duff, que é en realidade un dos co-autores destes binario lámpadas que vimos o mércores, ademais do CS50 propio Dan Bradley. Ansel Duff tamén era un ex calouro orientando meu 3 anos e el, de feito, mesmo construíron esta tribuna. Pasou a facer ciencias da enxeñaría e moito máis. Agora, a foto del aquí é realmente Ansel hai 3 anos no CS50 hackathon cando prestou un dos nosos globos, preso ao seu portátil, e, ao seguinte día 12 un estraño horas, con foco no seu proxecto final, pausas só para abrir bolsas de doces no hackathon. Pero el continuou, máis recentemente, a pasar este verán pasado coa xente, desde CS50 para o seu persoal, e Agora os estudantes neste semestre, ten a súa propia impresora 3D. E en poucas palabras a impresoras 3D é un dispositivo que parece bastante como esta. Vostede enche-lo con un torno de plástico que é derretido polo dispositivo e construir cousas literalmente da nada. Moi parecido a unha impresora inxección de tinta, comeza cuspindo pontinhos de plástico que en conxunto forman a formar obxectos enteiros. E así Ansel por exemplo, máis cedo este verán, ten un iPhone 5 e decidiu que realmente quería para sustentala-lo na súa mesa. Pero el non quería saír e mercar algo da tenda de Apple ou similar, para que sentouse e comezou a deseñar algo. Tomou algunhas medidas como para o espesor e quão grande era o seu iPhone, el tirou esta foto aquí, el decidiu que quería para ter unha inclinación de 75 graos como estaba mirando para el na súa mesa alí. El entón virou iso, usando software, nun modelo 3D CAD que parecía un pouco algo así. E entón el pasou, en definitiva, en realidade, crealo. Entón, en realidade, se algún de vós aquí, quizais nunha liña que eu poida xogar a, ter an-- non temos xente con iPhone 5, e aquí temos máis dous. Agora, para non quedar atrás, CS50 propia Cheng Gong tamén establecido neste verán para construír algunhas cousas e, en realidade, por motivos que aínda están claro, foi lentamente imprimindo un exército de elefantes con articulando os brazos e tronco. Unha parella de que son realmente aquí se alguén vai agora como-- un elefante. Todo correcto ,. pero o que Cheng tamén fixo para nós é que moi xentilmente configurar unha cámara porque aquel elefante, cren ou non, leva uns dous e un media hora de imprimir. Mesmo o soporte iPhone levou unha hora e media para imprimir. E o que Cheng foi adiante e fixo constituíuse unha boa cámara diante desta impresora 3D, filmado por unha hora e medio como o proxecto do Ansel impreso. Nós revestiu algúns sexy música a el, de xeito para che dar esta a mirar o xeito no que a impresión 3D funciona. E aínda que esta é, en realidade, en plástico, entender que se trata dunha zona de interese académico, hai persoas, entre los Jennifer Lewis aquí na Escola de Enxeñaría, que son, en realidade traballar en impresión 3D obxectos de plástico. Pero mesmo, cada vez máis, materiais biolóxicos para resolver problemas fisiolóxicos para seres humanos. Pero aquí é un pouco algo do CS50. [LOUD MECÁNICA ruídos] DAVID J. Malan: Non soa algo así, en realidade, pero é moito máis frío para velo a esa velocidade, e con ese son. Agora, o mércores, como fixemos primeiro chegou aquí? Comezamos a falar sobre ordenador ciencia e preguntas o que era. E é sobre unha serie de cousas, e hai tantas direccións diferentes en que pode ir despois dun curso como CS50. En realidade, se pegou un destes guías non oficiais CS para fóra, o libreto que nos das, se é pensando en tomar só CS50, ou que facer un secundario, ou quizais mesmo concentrando no CS, non navegar iso. E vai ver un diagrama para o fin que mostra os moitos sentidos diferentes CS en que pode ir para fóra en. Pero por hoxe, imos concentrar, unha vez máis, en realmente unha das vistas fundamentais, quizais, onde ten entradas para os problemas, tes saídas problemas, e ten algoritmos coa que crear esas saídas deses insumos. E un exemplo deste tipo, era de Por suposto, este libro de teléfono aquí. E utilizouse como un exemplo para ir mediante un algoritmo que estaba correcta. E despois outra foi correcto, pero un pouco máis rápido. E entón outro que estaba un pouco máis dramático, pero fundamentalmente máis rápido. Certo, iso, libro de teléfono alegou tiña uns 1.000 páxinas. E cantas veces eu teño rasgar o libro de teléfono pola metade para atopar alguén como Mike Smith, máximo, en 1000 páxina do libro? Así, 10 máis ou menos. E así, xa Rompín esa cousa en metade, ou simplemente, máis madura, dividida polo medio, só é 10 páxinas en 1.000. E se extrapolar, algo irreal para unha axenda telefónica, pero se este libro teléfono tiña preto de 4 millóns de páxinas en que, de forma tan completa pesado fisicamente, cantos veces dividir un 4 millóns Teléfonos páxina á metade? Entón é en realidade 32, máis ou menos. E así, só 32 veces, fóra de 4 millóns de páxinas, pode atopa alguén como Mike Smith. E iso é eficiencia. Isto é un bo algoritmo, atrévome a dicir. Pero, entón, cambiou-se de que para tratar de formalizar iso. E eu propuxen este código pseudocódigo. Código pseudocódigo non é nada formal. Non é algo que memorizar. É só algo que expresa moi intuitiva usando inglés, ou calquera linguaxe de feito, que transmite as súas ideas de forma sucinta. Pero o que é importante sobre código pseudocódigo é que tentar anticipar as posibles casos que poidan ocorrer. E, de feito, neste pseudocódigo código, había realmente tres casos cada vez que eu dividido o libro de teléfono. Mike pode ser á esquerda. Mike pode ser para a dereita. Ou pode estar seguro na páxina na que estou. Ou un cuarto caso esquina, por así dicir. Un escenario malo pode ser un which-- o que está pasando? Mike non é só en o libro de teléfono en todos. E cando os programas crash-- cando Mac e software para PC que vostedes executar nos seus ordenadores, por veces, traba ou pecha inesperadamente, que xeralmente significa que algúns programador, algún ser humano como pronto, só asneira e cometer algún erro. Quizais non anticipar que quizais non hai Mike Smith no libro de teléfono. E se realmente non escribo código para manexar situacións como esta, xeralmente imprevisible cousas poden pasar. A máquina pode conxelar. Pode reiniciar. O programa pode parar. E así todos estes estupideces que pode que atopou na súa real vida só usando ordenadores, será cada vez máis só explicada por esa intuición e esa comprensión do que é realmente está a suceder debaixo do capó. Agora imos tratar de dar un ollo nun problema máis xeral. En vez de tomar atención nun lugar como este, o que sería moi lento para facer un, dous, tres, catro. Ou quizais dous, catro, seis, oito. Imos concentrar, no seu lugar, en como podemos formalizar o algoritmo do proceso por que poderiamos ter atención. E ao longo do camiño, imos comezar aplicar algunha nomenclatura que usaremos hoxe, cando, en realidade, comezar a programar nunha linguaxe. Entón, eu doulle agora, un vídeo catro minutos que estamos xuntos cos nosos amigos de TED, a organización. Polo cal nos das un guión e trouxeron os seus animadores de soportar, e realmente creou un 2D animación que un algoritmo é. Se puidésemos diminuír as luces. [MÚSICA DE XOGO] Narrador: O que é un algoritmo? En ciencia da computación, un algoritmo é un conxunto instrucións de resolver algún problema paso a paso. Tipicamente, os algoritmos son executado por ordenadores, pero nós seres humanos temos algoritmos tamén. Por exemplo, como é que vai facer sobre a conta o número de persoas nunha sala? Ben, se vostede é como eu, probablemente apuntar en cada persoa un de cada vez e contar-se a partir de cero. Un, dous, tres, catro, e así por diante. Ben, iso é un algoritmo. De feito, imos tratar expresalo lo un pouco máis formalmente no código pseudocódigo. Sintaxe inglés-así aseméllase a unha linguaxe de programación. Sexa n igual a 0. Para cada persoa, en cuarto, definir n igual a n +1. Como interpretar o pseudocódigo? Ben unha liña declara: por así dicir, unha variable chamado n e inicializa seu valor a 0 Isto só significa que na inicio do noso algoritmo, a cousa coa que estamos conta ten un valor de 0. Ao final, antes de comezar a contar non ter contado nada aínda. Chamar esta variable n é só unha convención. Podería telo chamado máis nada. Agora liña dous demarks o inicio dun ciclo, unha secuencia de pasos que repetir un determinado número de veces. Así, no noso exemplo, o paso que estamos toma está contando a xente na sala. Baixo liña dous é a liña tres, que describe exactamente como nós imos sobre a conta. O retroceso que implica é liña de tres que vai repetir. Así, co código de pseudocódigo é dicindo é que despois de iniciar a 0 para todas as persoas do cuarto que aumentará n por 1 Agora é este algoritmo correcto? Ben, imos bater nel un pouco. Será que funciona se hai dúas persoas na sala? Imos ver. Nunha liña de nós arrincar n a 0. Para cada unha das dúas persoas, nós entón incrementar n en 1. Así, na primeira viaxe a través do loop, nós actualizamos n 0-1. Na segunda viaxe a través deste mesmo loop, nós actualizamos n 1-2. E así, por este algoritmo de final, n é 2, o cal en realidade, corresponde ao número de de persoas na sala. De momento, todo ben. Que tal un caso canto aínda? Supoña que existan 0 persoas no quarto-- ademais de min, quen é facendo a conta. Nunha liña, unha vez máis arrincar n a 0. Esta vez, con todo, a liña tres non executar a todos xa que non hai unha persoa na sala. E así segue n 0, o que de feito corresponde o número de persoas na sala. Moi sinxelo, non? Pero a conta de persoas, unha de cada vez é moi ineficiente, tamén, non? Certamente que podemos facer mellor. Por que non contar dúas persoas de cada vez, no canto de contar un, dous, tres, catro, cinco, seis, sete, oito, e así por diante. Por que non contar dous, catro, seis, oito, e así por diante? Inda soa máis rápido. E certamente o é. Imos expresar esa optimización en código pseudocódigo. Sexa n igual a 0. Para cada par de persoas cuarto, situado n igual a n +2. Moi simple cambio, non? En vez de contar con xente, unha de cada vez, que en vez contalos dúas á vez. Este algoritmo de, así, dúas veces máis rápido que o anterior. Pero será que é correcto? Imos ver. Será que funciona se hai dúas persoas na sala? Nunha liña, nós arrincar n a 0. Para que un par de persoas, nós entón incrementar n por 2. E así por este algoritmo de final n é 2, o cal en realidade, corresponde ao número de de persoas na sala. Supoñamos que hai próxima cero de persoas na sala. Nunha liña de nós arrincar n a 0. Tal como anteriormente, a liña de tres non executa todo xa que non hai ningún par de persoas na sala, e así permanece n 0. Que de feito corresponde ao número de persoas na sala. Pero o que se fai tres persoas na sala? Como é que este algoritmo de tarifa? A ver, nunha liña, inicializamos n a 0. Para un par desas persoas, nós entón incrementar n por 2. Pero e despois? Non hai outro completo par de persoas na sala, de xeito liña dous non máis se aplica. E así ata finais do presente algoritmo, n aínda é 2 o que non é correcto. En realidade, este algoritmo do dito ser buggy porque ten un erro. Imos reparación con algún novo código de pseudocódigo. Sexa n igual a 0. Para cada par de persoas cuarto, conxunto N igual a n +2. Se unha persoa permanece non pareado, definir N igual a n +1. Para solucionar este problema particular, temos introducido na liña de catro nunha condición, doutro xeito coñecido como un filiais, que executa se hai unha persoa que non podería vincular con outro. E agora, se hai un, ou tres, ou calquera número impar de persoas na sala, este algoritmo será agora contalos. Podemos facer aínda mellor? Ben, poderíamos contar en grupos de tres, ou catro, ou mesmo cinco anos e dez, pero, ademais, só pode ir un pouco difícil de apuntar. Ao final do día, se executado por ordenadores ou de seres humanos, algoritmos son só un conxunto de instrucións que para resolver os problemas. Estes foron só tres. Que problema faría resolver cun algoritmo? DAVID J. Malan: Entón, deliberadamente, un programa moi sinxelo, un algoritmo moi simple, para alcanzar algo moi sinxelo, contando o número de persoas na sala. Pero imos desmembrar algún do representante presenta aquí que son realmente será útil ata cando execución máis complexo de software. Así, por exemplo, nesta primeira liña, temos o que chamamos variable, ea álxebra, está familiarizada con x e y ez por veces, e así por diante. Pero, en programación, variables son aínda, ao final do día, moi semellante ao que. Pero quizais sexa máis sinxelo para pensar dunha variable como só un recipiente. E, de feito, é un número de bits aplicadas dalgún xeito no seu disco duro ou na memoria do seu ordenador, pero máis sobre iso no futuro. É só un recipiente. E se di algo como imos n igual a 0, ben, iso é como chamar ese vidro bowl aquí n, só un nome arbitrario, e poñer nada nela inicialmente. Entón, o valor desta bowl agora é cero. E, por suposto, se entender nunha liña posterior, para efectivamente aumentar algúns liña de código, como nesta terceira liña aquí, en 1, que é como dicir cal é o valor actual de n, é 0, máis 1, poñer algo así como un de ping pong aquí. Agora o valor desta variable é simplemente un. E podería moi rapidamente extrapolar, pero agora é 2, agora é 3, e así por diante. Entón, iso é todo o que unha variable é. É unha peza de almacenamento para en realidade, almacenar algúns datos. Por agora é unha bola de ping-pong. Non é un número. Pero tamén pode ser un en palabras dicionario, como o corrector ortográfico Me referín o mércores para un dos conxuntos de problemas do ano pasado. Agora outra idea clave, que do mesmo xeito é moi intuitivo que eu tería a pretensión, que é dun lazo. E o ciclo do proceso conta de todos É, por suposto, facer o mesmo cousa de novo e novamente-- calquera nun momento ou dous de cada vez. E pode expresar isto en inglés, ou pseudocódigo código, en calquera número de formas, pero a través da preposición "a" é unha forma moi común de se facer. Para cada persoa na sala, faino. Unha e outra vez. E o feito de que é recortado, liña de tres, significa só que o ten que facer é o material que está recuado por baixo da liña de si dous. Só unha convención humana, pero un común como veremos en maior real linguaxes de programación de nivel. Agora pouco máis interesante é cando chegar nun caso de canto. Por exemplo, un canto caso cando hai tres persoas, ou cinco, ou sete, ou calquera número impar de persoas na sala, porque facendo iso por freos twos finalmente, porque o seu curso a falta de alguén, sexa no inicio ou o fin dependendo de como o fai. E así, agora, eu teño ese sector, é condición, se unha persoa permanece, entón vai adiante e tratar con isto un persoa solitaria que non puido vinculación con outra persoa. Entón, iso é o que chamariamos unha condición, é unha póla. Código Agora pseudocódigo máis xeralmente, poden escrita para resolver calquera número de problemas. E o que eu penso que ía facer aquí é ter un momento invitar digamos CS50 da posuír Rob Bowden no escenario sendo acompañado por dous voluntarios, que non teñen idea do que o agarda. Unha man descendeu así que eu dixen iso. Que tal vostede na remata aquí, imos cara arriba. E canto máis lonxe de lonxe, que tal camiño na volta. Fila de atrás, imos cara arriba coas mans para arriba. Certo, e cal é o seu nome? ANITA: Anita. DAVID J. Malan: Anita. Ok, pracer de coñece-lo. Deixe-me presentar-lle Rob Bowden. Este é Anita. E cal é o seu nome? Kiersten: Kiersten DAVID J. Malan: Irena. Irena, imos alí para arriba e atender Rob Bowden e Anita. Pracer en coñece-lo. Kiersten: Pracer en coñece-lo. DAVID J. Malan: Todo ben, Rob. ROB BOWDEN: Pracer en coñece-lo. DAVID J. Malan: Anita. Kiersten: Ola Anita. DAVID J. Malan: E o seu varios centos de compañeiros. Entón, agora deixe-me ir adiante e puxe se só un simple programa aquí en Mac OS que me vai deixar realmente anotar algunhas notas para abaixo. E se vostedes queren, cada un leva un posición nunha desas escolas de alí, déixeme ir adiante e comezar unha lista de código de pseudocódigo, se quere. E o que quero facer aquí, en última instancia, é do tipo para ti algunhas instrucións que o noso membros da audiencia son realmente vai recitar para nós. Deixe-me ir adiante e só cambialo para unha lista numerada coincidindo co que estabamos facendo alí enriba. E o que eu vou facer con súa axuda, é escribir un programa en pseudocódigo, co cal estes faces van para aplicar un cacahuete manteiga e marmelada bocadillos. Por iso, é posible que a propósito de amosar algo que algúns de vós pode ver en internet por só un breve momento aburrido. [MUSIC BUCKEWHEAT BOYS ", manteiga de cacahuete  Tempo de marmelada "] DAVID J. Malan: Aceptar. Isto é o suficiente. Entón aquí mentres tanto, eu teño unha par de Google Glass que imos poñer no propio Rob Bowden do CS50 de ver o mundo a través dos seus ollos. E nós imos facer o noso mellor no post produción de realmente tecer a metragem que Rob está a ver agora, a esta charla real vídeo cos nosos dous voluntarios ao lado del. Entón o que eu vou facer é, eu vou ser o datilógrafo. Temos o obxectivo aquí de realmente escribir un programa que facer, en definitiva, unha manteiga de cacahuete e marmelada bocadillos, pero estes tres van comportarse como se fosen ordenadores. E ordenadores, ao final do día, son en realidade dispositivos moi burro. Son super rápido, pero só poden facer literalmente o que se di. Non pode simplemente dicir facer un cacahuete manteiga e marmelada bocadillos. Ten que programalo los a facelo. Ten que dicirlles con precisión o que facer, menos as cousas van moito e, esperanza, divertidamente mal. Así, co que dixo, necesitamos un call-out do público para o que deberá intensificar un ser, se o obxectivo aquí é facer un cacahuete manteiga e marmelada bocadillos. Si? Audiencia: [inaudível] a bolsa de pan. DAVID J. Malan: Abre o saco de pan. Polo tanto, se os tres competidores faría quere seguir facendo iso literalmente. Abre o saco de pan. [Audiencia de risa] DAVID J. Malan: Entón, imos traballar niso. Todo correcto. Entón, paso dous, how-- imos dar máis esta. Si, na fronte. Audiencia: [inaudível] o pan. DAVID J. Malan: ¿Que é iso? Audiencia: Elimina o pan. DAVID J. Malan: Elimina o pan. Igualmente sucinta. Grazas. [Aplausos] DAVID J. Malan: É iso? OK, entón o segundo paso é ir ser eliminar o pan. Todo ben, alguén quere escriba connosco unha frase máis longa? Alguén máis? Un pouco máis [inaudível]. Non, nada agora. Si? Audiencia: Pon dous franxas á beira do outro. DAVID J. Malan: Pon dous franxas á beira do outro. [Audiencia de risa] DAVID J. Malan: Pon dous franxas á beira do outro. Paso Catro. Si? Audiencia: Leve o seu man e coloque o levemente na parte superior da tapa da manteiga de cacahuete. [Audiencia de risa] Audiencia: [inaudível] á beira da manteiga de cacahuete. DAVID J. Malan: O que? Diga iso de novo. Audiencia: Solte a tapa e poñer -o suavemente á beira da manteiga de cacahuete. DAVID J. Malan: Pon-o suavemente á beira da manteiga de cacahuete. OK, o progreso. Paso cinco. Excelente. Si? Tome un coitelo. DAVID J. Malan: Colla un coitelo. OK, paso seis. Si? Audiencia: Manteña o coitelo polo cable. DAVID J. Malan: Manteña coitelo pola alza. Manteña o coitelo polo cable. Paso Sete. Si? Audiencia: Coitelo [inaudível] en cacahuete manteiga e tan pouco para fóra [inaudível]. DAVID J. Malan: coitelo Pon em-- I escoitou "coitelo poñer en manteiga de cacahuete e ter tan pouco como sexa posible ". By the way, elimina o papel primeiro. Todo ben, paso nove. Paso nove. Paso nove. Nós realmente non teño feito un bocadillos aínda. Si? Audiencia: Usando coitelo en manteiga de cacahuete, aplicar manteiga de cacahuete na referida pan. DAVID J. Malan: Usando o coitelo na manteiga de cacahuete, aplique manteiga de cacahuete en dixo pan. [Audiencia de risa] DAVID J. Malan: All paso seguro 10. Paso 10. Si? Audiencia: Gústame cacahuete manteiga para garantir a calidade. [Audiencia de risa] DAVID J. Malan: Paso 11. Paso 11. Paso 11. Veña. Si? Ben alí. Audiencia: Con coidado, tome a marmelada. DAVID J. Malan: Con coidado, tome a marmelada. OK, e despois outra man foi cara arriba. Logo detrás de ti. Si, en azul. Audiencia: Todo ben, elimine tapa de [inaudível], si, retire a tapa da marmelada. [Audiencia de risa] DAVID J. Malan: A partir de marmelada. Ha ha. [Audiencia de risa] DAVID J. Malan: E? Audiencia: E mal varrer calquera [inaudível]. [Audiencia de risa] Audiencia: Claro que, antes de [inaudível] elimina o papel da marmelada. DAVID J. Malan: Elimina o papel da marmelada. Paso 14. Estamos case alí. Si? Audiencia: Inverter o bote de marmelada antes de todo cae. DAVID J. Malan: Invert marmelada botella antes de marmelada cae. Paso 15. Audiencia: Recoloque a cubrir. DAVID J. Malan: Recoloque a cubrir. Paso 16. Si? Audiencia: [inaudível] DAVID J. Malan: Diga iso de novo. Audiencia: Colla tapa fóra da súa marmelada. DAVID J. Malan: Off seu gingado. Entón realmente-- Oops. Veña. Recoloque a cubrir. Pon cap-- Vostede dixo retire a tapa de marmelada. Sinto-se como se estivésemos nun pouco de un loop. Paso 17. Si? Audiencia: [inaudível] DAVID J. Malan: Diga iso de novo. Audiencia: [inaudível] DAVID J. Malan: Voltar para step-- Audiencia: [inaudível] DAVID J. Malan: Eliminar cap de manteiga de cacahuete. Si? Audiencia: Large todo o marmelada co pan. DAVID J. Malan: Large todo a marmelada co pan. DAVID J. Malan: Estamos case alí. Paso 19. Audiencia: Elimina o exceso de marmelada. DAVID J. Malan: Haha, marmelada. [Aplausos] DAVID J. Malan: Por que non nós-- un paso máis para tomar esta casa. Máis un paso e, a continuación, imos servir bocadillos. Si? Audiencia: [inaudível] DAVID J. Malan: Aínda que calquera bocadillos guión Imos remains-- isso-- comer. [Risas do público] DAVID J. Malan: Todo ben, grazas aos nosos voluntarios aquí. [Aplausos} DAVID J. Malan: Temos algunhas agradables agasallos de despedida para cada un de vostedes. A súa propia manteiga de cacahuete, marmelada, e pan para levar a casa. Grazas. Kiersten: Grazas. DAVID J. Malan: [inaudível] benvidos. [Aplausos] DAVID J. Malan: Entón, iso é, Por suposto, un exemplo ridículo. Correcto? Pero iso tipo de revelar como nós humanos pode ter claridade para concedida. E o feito de eu ser falando con outro ser humano, el ou ela simplemente sabe o que quere dicir. Os ordenadores non están indo para saber o que quere dicir, mesmo cando se utiliza, como estamos a piques de facer hoxe, programar algo en risco, unha drag e soltar, linguaxe de estilo peza do puzzle. Mesmo designado para mozos nenos, ten ser tan explícita e tan literal con o que quere que o seu programa para facer. Agora, en definitiva, somos será a programación non no código pseudocódigo Inglés como sintaxe, que o código ou, máis propiamente, o código fonte. O código fonte é só a forma extravagante ao código que describe o que realmente escribir cun teclado que é non en inglés, por si só. É en C ou Java ou C ++ ou algo así, como veremos en breve. E, de feito, só para asustar un algúns de vós, a primeira vista, este é un programa escrito nunha linguaxe chamado C. Pero, para un-susto algo de ti, será totalmente entender o que está a suceder en vir a próxima luns cando trata de algo así. Francamente, isto é unha linguaxe máis vello. É moi misteriosa, pero é representativa dunha serie de linguaxes que a día de hoxe ten unha morea de parénteses e crespos claves e comiñas e comas. E unha morea de presente material sintáctica que non é en todos intelectualmente interesante. En realidade, é unha distracción absoluta a partir das ideas moi simple que están nos mirando na cara. Este programa, como pode só adiviñar, impresións a pantalla do ordenador de alguén as palabras "Ola mundo coma." É iso aí. Entón, claramente, non hai unha morea de cousas que se quedando no camiño de algunha evidencia alí, pero vai desprazar moi rapidamente distancia e ser completamente intuitiva. En realidade, o que nós imos facer hoxe é destilar esta moi complexo programa busca, que unha vez máis vai chegar de entender rapidamente, pero a algo moito máis simple. Nós só dicir o que queremos dicir. Imos deseñar unha imaxe do que queremos dicir, por medio destas pezas de puzzle aquí. Polo tanto, esta é unha programación linguaxe coñecida como cero. Foi desenvolvido polo Laboratorio de Medios do MIT. E o que podes ver no conxunto de problemas cero, , Que será lanzado esta noite, nós imos ter que ir a este URL aquí scratch.mit.edu. E eles teñen un web interface de base a través da cal vai escribir o seu primeiro programa. Ou aqueles de vostedes con previa experiencia, segundo os seus programas, pero nun ambiente que é probablemente algo descoñecido e que vai empurralo para crear algo usando este ambiente moi visual. Agora, o que eu vou facer aquí é abrir o programa en si. Ela existe non só como un explorador, pero tamén como un programa de descarga de xeito que realmente pode usalo se non ten acceso a Internet. E eu vou facer iso aquí, en Sanders, só no caso de que o WiFi non cooperar de super ben. E o que eu vou facer é punto fóra algunhas características deste programa. Entón, para quedar claro, eu teño só dúas veces prema na icona no meu escritorio, ou equivalentemente ir para scratch.mit.edu, e é levado cara arriba nesta xanela. Este é un ambiente de programación. É unha peza de software que algúns dos nosos amigos do MIT escribiu que imos nós e escribe programas nunha linguaxe chamada de borrador. Agora, este pasa a ser un gato que tamén é chamado risco e este é o mundo no que vive. Esta é a fase de, por así dicir, que rectángulo na esquina superior esquerda. E non ten que mirar como un gato. Pode facelo parecer como calquera cousa e pode ter moitos deses sprites, ou personaxes, nun programa. Mentres tanto, aquí na extrema seguro, é unha gran folla en branco. E é aí que, nun momento, imos comezar a programación arrastrando e soltando estes puzzle gráfica pezas que están á dereita aquí no medio. E hai moito máis deles do que imos pasar un tempo aquí na aula porque vai descubrir que todos eles son moi intuitivo. Unha vez máis, el foi designado para os nenos, pero nós usalo para provocar unha separación algúns deses ideas fundamentais de variables, loops, condicións e, en breve, as cousas como funcións e eventos e fíos e outras cousas extravagantes imos chegar ao pouco tempo para realmente crear algo a partir de cero. Trocadilhos. Agora, o que eu vou facer aquí é prema en non o movemento, pero o control. E este é só un categorización de aqui-- e vexo unha diferente cor conxunto de bloques. Pero notar algunhas palabras familiares. "Se" e "else if" e "repetición". E probablemente pode adiviñar que é unha reminiscencia do sector, ou as condicións que vimos, e mesmo a construción de loop. Polo tanto, temos bloques similares aquí. Pero o máis interesante é este aquí. Cando esta bandeira verde é premendo, tanto, para aqueles con programación previa experiencia, equivale para unha función principal. Pero para quen non coñece, esta é a parte do enigma que promoverá toda a nosa programación. Significa literalmente cando vou, neste programa, e prema en unha flag-- verde que se pode ver aquí no esquina superior esquerda da interface de usuario, así que ver a bandeira verde xunto do sinal vermello? Cando premo iso, meu programa será executado. Agora, eu vou facer algo super sinxelo co Scratch. Eu estou indo a ir adiante e vai para o panel de miradas aquí, onde eu teño unha morea de pezas do quebra-vermello, e eu estou indo a ir adiante e facer algo super sinxelo como, digamos. E teña en conta depois-- este texto na caixa branca é editable-- eu vou dicir "Ola mundo", así como nós fixo naquel textual versión dun momento atrás. E agora, se eu for e prema neste bandeira verde, eu xa programada. Non é un particular programa interesante, pero eu fixen o ordenador facer algo. Comece un programa e fixen o que me dixo para facer. Agora, podo seguir arrastrar e soltar máis e máis destas pezas do puzzle e eles van bloquear, pero imos bater un pouco de terminoloxía aquí que veremos recorrentes durante todo o curso, e realmente en toda a ciencia da computación e programación en xeral. Este "dicir" do bloque, en vermello, imos só comezar a chamar a un comunicado. É como unha declaración de feito. Faino. Entón, é unha categoría de instrucións que pode alimentar un ordenador como parte dun programa ou dun algoritmo. E para ser claro, ten probablemente tida como certa que ten programas no seu computador. E son o tipo de algoritmos, pero unha programa é realmente unha gran cantidade de algoritmos que algúns seres humanos, escribiu. Eles embalado cara arriba e eles venderon isto para que, ou eles posta nun sitio web para baixar. Así, un programa é só un todo chea de ceros e uns que, dalgún xeito, os seres humanos crearon. E eses patróns de ceros e os representan cousas, en definitiva, como "dicir Hola mundo" ou "o xogo esta música "ou" reproducir este vídeo " ou "enviar un correo electrónico." Pero imos voltar en forma máis detalles o que un programa é cando, mesmo, escribilos. Aquí está outra statement-- "Espera un segundo." Eu non uso iso aínda, pero se eu queira meu programa para facer unha pausa por un momento facer algo, eu podo dicir que para facelo. Espere un segundo. Agora outro podería ser "reproducir o son." Entón, este é exclusivo para cero, ten a capacidade de reproducir sons. Así, unha declaración que pode utilización é, aquí, "reproducir o son." Mentres tanto, a expresión booleana, polo que esta é unha palabra extravagante en homenaxe a unha cara chamado Mr bool, e iso é todo sobre a cuestión. Certo ou false-- é o rato para abaixo? Unha expresión booleana é só algunha expresión en inglés que é verdadeiro ou falso. Activado ou desactivado. Calquera ou cero. Pode pensar niso en calquera número de formas, pero é certo ou esa falsa, en última instancia. Así, "do rato abaixo punto de interrogação" que sería unha expresión booleana. E pode pensar nos outros, quizais. Por exemplo, "é o número esquerda menor que o número non? " Isto tamén sería unha expresión booleana. "Menos" é unha expresión booleana. Este, tamén, "pointer tocar rato." Non sei por que chamouse o punteiro do rato. Significa só que, se o cursor, é o frecha na pantalla, tocando o gato, por exemplo. Ou algún outro aspecto da pantalla. E é unha cuestión, unha vez máis, e que denota unha expresión booleana. Algo que pode quero usar nunha condición. Entón, nós imos chegar a iso en só un momento. Pode "e" cousas xuntas. Entón, se quere comprobar se este é o caso e que é o caso, pode utilizar un "e" bloque coma este. E aquí está nesa condición. Teña en conta a forma da pequena abertura na parte superior desta parte do enigma amarelo, É unha reminiscencia da forma que acabamos de ver un momento atrás. Cada unha desas expresións booleanas ten esas arestas pontiagudas na parte esquerda e dereita. E iso é porque a xente do MIT decidiu que por formatos de transporte visualmente, pode tipo de axudar a xente, estudantes e nenos, ao tipo de encher os espazos en branco, literalmente. Agora que puzzle-- que apertura é algo pequeno, e, como veremos no programa, en risco, vai medrar para axeitado. El vai manter a súa forma, en última instancia. Así, unha condición permítelle decidir "Eu debería facer algo ou non?" Unha expresión booleana é a cuestión real está a usar para decidir se vou a á esquerda ou ir cara á dereita cando me deparou con este chamado bifurcación na estrada? Pode ter dúas ramas. Se algo é verdade, facer tanto, máis ir por ese camiño, ou pode simplemente non facer nada todo, como este bloque implícita. Do mesmo xeito, pode aninhar estas cousas. Entón, se quere triplicar bifurcación na estrada, ou facer isto ou isto ou aquilo, pode só niño estas cousas xuntas. E iso comeza a ser un pouco feo, finalmente, con certeza, pero a lóxica segue sendo a mesma. Pode literalmente ler este de arriba abaixo e el di que o que means-- se este é verdade, iso, máis se outra cousa. Un ciclo non queda máis simple en perigo. Sempre faga o seguinte. Agora non pode pensar que pode facer moito porque non hai o espazo entre a parte superior e á parte inferior desta apertura peza do puzzle. Pero vai ver Raspadinha vai crecer para atender o maior número de pezas do puzzle como quere enfiar dentro. Outro circuíto se pode expresado con repeticións. Se sabe de antemán ", I quero facer algo 10 veces ", pode só dicir Raspadinha facer algo 10 veces. E, mentres tanto, podemos ter variables. Entón aquí está arbitraria, é laranxa, neste caso, e este é un rápido tour. Unha vez máis, vai atopar iso moi accesible unha vez que comezar a apuntar e premer. Eu nomeei miña variable n, pero eu podería chamado el o que eu queira, e eu estou axustando-lo aquí, en Neste exemplo arbitraria, a cero. Agora a ver un programa como o Hello mundo non é tan convincente, entón imos realmente ceder de algo que un ex-alumno fixo. Deixe-me ir adiante e abrir-se, por exemplo, este aquí, para que eu adoro ter un voluntario. Todo ben, como sobre-- imos máis aló. Si, imos cara arriba. Cal é o seu nome? Abby: Abby. DAVID J. Malan: Abby, imos alí cara arriba. Entón, xa xogou este xogo antes? Abby: N º DAVID J. Malan: Todo ben. David, pracer de coñece-lo. Veña para acá. E cal é a súa programación fondo, de ser o caso. Abby: Aprendín algunhas C ++. DAVID J. Malan: Aprendeu algo C ++. E cal é o seu xogo tocando de fondo? Abby: Non moito. DAVID J. Malan: OK, entón imos levar isto. Entón aquí está como o xogo vai funcionar. Eu estou indo a ir adiante e click na bandeira verde, que está aquí enriba na parte superior dereita. Agora, o seu antecesor na clase deulle algunhas instrucións aquí. E en só un momento, di que "o espazo para comezar." Entón vai adiante e bateu a barra de espazo. XOGO DE COMPUTADOR: Pikachu. DAVID J. Malan: E o obxectivo é incorporarse á comida, como representado non á esquerda. E para [inaudível] [GAME MUSIC Playing] DAVID J. Malan: Ohh, así, Grazas por xogar. Temos aquí un pouco separando agasallo para ti. Temos CS50 balón antiestrés, Se desexa escoller. Todo ben, é bo coñece-lo. Grazas por teren benvida e reto. Polo tanto, temos máis bolas de estrés, de xeito imos facer un exemplo para motivar. Un voluntario? Todo ben, que tal ben aquí na fronte. Cal é o seu nome? Phillip: Phillip. DAVID J. Malan: Phillip. Veña, Phillip. Así, Phillip será reto con outro partido que un dos seus antecesores escribiu como parte do conxunto de problemas cero, chamado O partido máis difícil do Ivy. E nós imos ver en só un momento o que se quere dicir con iso. Phillip, pracer de coñece-lo. Cal é a súa formación? Phillip: Feito unha morea de codificación. Feito un pouco de xogo, tamén. DAVID J. Malan: Aceptar. Ten unha morea de xogos, tamén. E xa xogou este partido antes? Phillip: Non David J. Malan: Todos seguro, entón imos alí. Eu estou indo a ir adiante e premer na bandeira verde. [GAME MUSIC] [MUSIC MC Hammer, "U non pode TOCAR ESTE"] Phillip: [inaudível] DAVID J. Malan: [inaudível] Phillip: [inaudível] [Risas] [MUSIC MC Hammer, "U non pode TOCAR ESTE"] DAVID J. Malan: [inaudível] Arar a través del. Phillip: [inaudível] DAVID J. Malan: Dalle. [MUSIC MC Hammer, "U non pode TOCAR ESTE"] DAVID J. Malan: Todo ben. Parabéns. [Aplausos] DAVID J. Malan: Imos posto que en liña máis tarde, para que pode procrastinar con el tamén. Princeton vén inmediatamente, despois diso. Entón agora imos realmente proceder que comezar de cero, por así dicir, e realmente construír ata podemos desmembrar algunhas destas ideas e chegar a algo aínda máis complexo ao final. Vou por aquí e eu vou ir adiante e crear un novo arquivo. Entón, de novo, o conxunto de problemas andará a través de algunhas destas etapas. Pero todo o que eu fixen foi ir ao menú Arquivo e eu dixo "novo", tan parecido Microsoft Word, ou calquera outro programa como este. E imos adiante agora-- e nós implementado "Ola, mundo" un momento atrás, pero imos facer algo un pouco máis bonito. Eu estou indo a ir ata eventos. E eu vou facer ", cando bandeira verde premendo. " E entón eu vou usar, digamos, unha rama. Entón, eu vou usar un "se" condición. E teña en conta como así que eu chegar preto para el, el quere se encaixan. Entón, eu deixo ir e que se encaixe en conxunto. E agora podo facer algo interesante. Se eu rolar por aquí, eu vou ver unha chea de bloques. Se eu fose a "data" - déixeme zoom em-- hai algo sobre variables. Se eu for a "movemento", pode aparentemente mudar as cousas. Se eu for a "operadores" - Oh, iso é interesante, Podo incorporarse un número aleatorio. Entón deixe-me facer algo con só algunha probabilidade, só porque. Eu estou indo a ir adiante e arrastrar esta parte do enigma, isto é que a menos de bloque, polo que é só "É ese número menor que un?" Pero eu non quero un código ríxido dun número porque que ser moi inútil. Entón eu vou para arrastrar esta peza aquí, e entenda como se encaixe en, e agora déixeme ir adiante e dicir "si o número que é escollido aleatoriamente é menos de seis, faga o seguinte. " Agora, por menos de seis? Cal a probabilidade é iso de forma eficaz me vai dar, só intuitivamente? Cerca de 50%, non? Se o número que de adiviñar aleatoriamente entre 1 e 10, é menos que seis, claramente que é un, dous, tres, catro, ou cinco. E así que me vai dar un 50% de probabilidade de que ocorra? Ben, imos facer algo parecido tanto, "xogar miado de son." E noten, unha vez máis, a peza medra para se axustar, tanto tempo como as formas corresponden. Isto é que é importante. Deixade-me pasar a rabuñar aquí e prema en "xogo". Nada acontece. Isto é un erro? Non, non é necesario. Podería ser só que a número maior foi elixido. Entón, imos facelo de novo. Nada. [Miau] DAVID J. Malan: Velaquí. [Miau] DAVID J. Malan: Máis unha vez. N º [Miando] DAVID J. Malan: Entón, se ten sempre un xogo, por suposto, onde o material está pasando de forma aleatoria, como os bandidos están vindo ou non chegando á pantalla, ou as cousas están a caer ou non caer, iso é só porque algo super- simple como iso está a suceder. Escolla un número aleatorio, e se É menos que algún valor, quizais iso ou que facer. Podemos incorporar que nunha condición. Imos facer algo diferente. Déixeme xogar iso fóra. Pode se librar de cousas por só arrastrando-o para a esquerda e deixar ir. Deixe-me ir adiante e facer un bloque para sempre e moi rapidamente facer algo irritante. Deixe-me ir adiante e dicir "xogar miado de son." Pero eu non quero que iso sexa moi aburrido, entón déixeme coller neste bloque, "Espera un segundo", e previo aviso non hai máis espazo para iso. Pero se vostede é preto o suficiente, el quere ir máis alá. Entón, eu deixo ir e vai crecer para encher o bloque. Entón, agora, este é un loop. [Miando] DAVID J. Malan: Eu son literalmente facelo para sempre. Unha e outra vez. Isto non é só son natural. Deixe-me ir adiante e cambiar esta non dun segundo, a dous segundo e prema Intro. E o que é agradable sobre Scratch é que pode programar de forma interactiva. Fai un cambio, é posible escriba Intro ou xogar de novo, e vai continuar. Ben, agora por que non podemos facer algo un pouco máis bonito? En vez de facer todo a partir de cero, déixeme ir adiante e abrir un avance fixo un, que eu pre-cocido, chama "acariñar o gato." E nós imos publicar todos estes arquivos en liña, e conxunto de problemas de cero pode dicirlle como acceder a eles e abri-los. E teña en conta, iso é moi sinxelo. Pero antes, me parece agarrado un bloque "para sempre", entón eu teño un loop. E entón eu teño un "se" condición. Eu teño unha expresión booleana. Así, en inglés, só mirando para iso, especialmente se nunca programado antes, só de forma intuitiva, que é o que isto vai facer, este programa? [Audiencia Chatter] DAVID J. Malan: Si acariñar o gato, o gato vai miar, non? Porque "para sempre desmarcada" é o punteiro do rato tocando o gato. Entón, para ser claro, e eu non dixen iso antes, todos estes puzzle pezas eo guión que nós os combinados en, por así dicir, un script é sinónimo de programa, en realidade, pertence a este gato. E a razón pola que é-- aviso como ese mesmo gato aquí é destacado, aquí pode crear un segundo gato ou can ou realmente calquera cousa que quere graficamente. Pode descargar algo de Photoshop, ou semellante, e integrar algo se quero facelo para un proxecto. E o que vai atopar, en definitiva, é que pode engadir scripts, engade puzzle pezas, para caracteres individuais. Entón, todos estes pertencen a este gato particular. Polo tanto, agora se eu ir adiante e xogar Neste programa, nada está a suceder. Pero el está en execución. O programa é neste loop para sempre, tipo de espera para que isto ocorre? [Audiencia Chatter] DAVID J. Malan: Para acariñar o gato. Entón, se eu mover o rato cara ele-- [Miando] DAVID J. Malan: Entón agora Estou acariciar o gato. Mentres tanto, podemos ter unha rama de parella. Deixe-me ir adiante e abrir se non acariñar o gato. Imos publicar esta liña tamén. Este é un pouco máis complexo, pero sen dicir pode adiviñar, se cadra, o que vai ocorrer. [Miando] DAVID J. Malan: Gato é miando, grand vellos tempos. Pero este programa claro chamado "Non acariñar o gato," tan claramente, quero acariñar o gato. [RUJE] DAVID J. Malan: Non acariñar o gato. Agora, imos dar un ollo noutro exemplo aquí. Este será chamada "Hi, Hi, Hi," por razóns que será evidente, porque así que eu executar este coisa-- [SEAL Barking] DAVID J. Malan: Moi doado escribir programas de raspadinhas irritantes. [SEAL Barking] DAVID J. Malan: Agora non imos en gran detalle con todos estes, pero ter en conta que hai unha par de novas características aquí. Hai unha variable, chamado "mudo" e entón hai unha morea de condicións. E de momento, déixeme só provoca-lo, dicindo: que se este cara queda moi aburrido, Podo bater a barra de espazo e el deixa. Porque o papel a ser desempeñada polo estes dous certificados é como segue. Un deles está facendo o latindo cada poucos segundos. A outra está só esperando para min a bater a barra de espazo. E se eu bater a barra de espazo, iso vai cambiar o estado desa variable, o valor desta variable, que é, ao parecer, chamado "silenciado" Non chamei algo aburrido como n, Chamei-lle unha palabra en inglés, "silenciado". De 1-0 ou 0-1. De certo para falso ou falso para certo. E para que poida realmente ver agora, que podería ter dous guións, dous programas en execución ao mesmo tempo, e ambos poden estar sentado en un loop facendo algo. Esperando o ser humano facer algo como bater a barra de espazo. [SEAL Barking] DAVID J. Malan: E agora el está en camiño de novo. [SEAL Barking] DAVID J. Malan: Entón, o que máis que podemos facer con estes exemplos? Ben, imos adiante e facer unha exemplo, con contar ovellas. Nós imos seguir este ao longo das liñas aquí de-- imos abrir o exemplo ovellas. E aviso, así como antes, este, por sorte, é algo menos aburrido. Unha vez eu bati xogar aqui-- Oh non, iso é irritante. El vai BAA con algunha probabilidade. Imos xogar iso de novo. [Ovellas BLEETING] David J. Malan: A única diferenza é nós cambiamos o traxe, por así dicir, e imos reducir á metade e dicir o que este número é real. Ben, imos seguir adiante e dar un paso adiante. E déixeme te provocar con Outra característica aquí. Imos adiante e abrir un programa chamado Threads. Entón, así como pode ter un Sprite, tendo varios scripts, pode ter dous sprites, un paxaro en un gato, cada un co seu propio guión. E cada un deles pode operar simultaneamente. Se vostede xa escoitou o palabra "multithreading" un ordenador é medio "multithreaded" pode facer varias cousas á vez, e, de feito, isto pode rabuñar. E agora noten o ave é unha especie de idiota. É só facer as cousas de forma aleatoria, saltando fóra da pantalla. Claramente o gato foi programado ao tipo de ter que buscan capacidades na casa, na que o paxaro porque está sempre apuntando para el. Ata que, finalmente, el colle o paxaro real. Entón eu non vou me debruzouse sobre os detalles aquí, pero pode tipo de albiscar as mesmas formas, algúns "Se" condicións, algunhas variables, pode que algúns loops, son en definitiva, facendo o mesmo. Agora, deixe-me ir adiante e abrir se algo completamente diferente, para provocar algúns de vós, particularmente aqueles máis cómodo, o que realmente pode ver con iso. Eu estou indo a ir adiante e abrir Botón aquí. E este é un super programa sinxelo de aparencia, pero mira o que acontece cando I-- Mira o que ocorre cando abrir esta versión dela, aquí no navegador, scratch.mit.edu. E cando eu premer nese grande e vermello botón, teña en conta o que pasa. Entón, o que está pasando aquí? De feito, hai moito máis complexidade pasando debaixo do capó, aínda que eu teña implantado esta, é, francamente, Dan Bradley aplicou esta tan sinxelo. Creou un puzzle personalizado Raspadinha parte, coñecida como unha extensión de arañazos, chamou de alternancia. E o que fai é cambiar envía unha mensaxe a través de internet. E que a propia mensaxe parece un pouco enigmática. Pero iso, tamén, ten comprender ata o final do prazo. A mensaxe que está realmente enviando parece un pouco algo como isto. É só texto. Cryptic. Vai entender que no momento en que temos o problema de sete set. É só enviar unha mensaxe de texto a través de internet a un servidor. E ese servidor é, en definitiva, falando con esa lámpada, que ten unha desas lámpadas de fantasía en que, en si, está falando ao WiFi na rede aquí, onde un dispositivo local abaixo aqui-- e, en definitiva, é realmente transformando esa luz conexionado e apagado. Pero podemos facer máis cousas interesantes aínda. Teña en conta o que Dan tamén fixo por nós. Fixo varios sprites, cada un dos que ten un guión á espera dun clic. E se eu premer en vermello, el fica vermella. Se eu ficar azul, que vai azulado. Verde, amarelo, laranxa. E todo isto está a suceder por vai saír á internet, recuar aquí para o lámpada, activar e desactivar. E se pode crer ele-- e este é quizais un dos máis complexos Raspadinha proxectos alguén ten implemented-- o fixo, con xustiza, nun día. E ese foi o reto que xogou Dan cando vimos teñen lámpadas binarios, temos cero, como podemos combina-los? E, de feito, iso é absolutamente algo que calquera nesta sala podería facer por end-- semestre é el lámpadas binarios reimplemented usando a mesma interfaz que era na nosa iPad na Mércores. Así que agora, se eu realmente prema no signo máis aquí, temos un, dous, tres. Podo bater o 16 e transformar isto nun. 128, e así por diante. Agora que por si só ten e soprado a súa mente, podería facer cousas moito máis accesible, non inclúen calquera hardware certamente. Só as cousas na propia pantalla. E, de feito, o que máis estudantes acabar facendo algún tipo de xogo, algunha obra artística, ou algún tipo de animación interactiva. E eu vou dicir unha das nosas favoritos foi un regalo. E eu penso que nós podería diminuír as luces, imos dar un ollo neste último Proxecto Scratch en conclusión. Pero o que ten que ter presente, como Podo provocalo-lo con un último detalle, paso comezará a próxima semana. Horario de atención comezará a próxima semana. Problema cero definido será posta CS50.harvard.edu aínda hoxe. E será recibido no conxunto de problemas de cero a propia Zamyla Chan do CS50, que orienta a maioría do noso paso a paso. Estes son vídeos incorporados nos conxuntos de problemas que vai soster a súa man a través dun lote da configuración inicial e a través de moitos das posibles decisións de deseño. Entón, se xa tivo esa emoción cando incorporarse unha lección de casa e se pregunta, por onde eu comezo? Vai ter a resposta para vostede. E agora, un programa final dun dos seus antecesores en resposta á pregunta "Que o raposo di?" [MUSIC YLVIS, "O que a FOX DI?] YLVIS: (cantando) Can pasa trama. O gato vai miar. Paxaro vai tweet e rato vai chiar. Cow vai Moo. Sapo vai coaxar. E o elefante vai toot. Patos dicir charlatão e peixe ir blub. E o selo vai ow ow ow, pero hai un son que ninguén sabe, que é o que o raposo di? E DAVID J. Malan: Isto é todo para CS50. Imos velo en Quebra-Día e na luns. [Aplausos] [MUSIC YLVIS, "O Que Di a FOX?"] Narrador: E agora profundo pensamentos, por Daven Farnham. Hoxe eu fun alcanzado no cara con un libro de teléfono. Confundindo, como eu estou en casa vendo en liña.