[Ruído de fondo] Funciona? PATRICK Rebeschini: Podemos comezar. OK. Grande. Imos comezar. Por iso, é o meu pracer para recibila lo aquí hoxe para a primeira charla de, así, Introdución a computación e Programación. Tamén coñecida como CS50 ou ben, CPSC 100, oficialmente aquí en Yale. Polo tanto, non podería estar máis animado para recibila lo todos aquí. O meu nome é Patrick Rebeschini. Eu son o instrutor principal para a clase. Estou aquí representa un grupo de preto de 60 membros do equipo que pode traballar con vostede ao longo do semestre. Este número é case 60 nós. Con todo, ao longo da extraordinaria nivel de compromisos que dedicou a este clase, fai CS50 da clase na Universidade de Yale que ofrece o maior nivel de apoio a todos vostedes. E nós non poderiamos estar máis orgullosos de ofrecendo esta clase aquí de novo. De feito, como vai probar, CS50 é moito máis que unha clase. É unha comunidade. E fará parte logo desta comunidade. Este é o segundo ano que Yale está ofrecendo esta clase. Estamos construíndo na extrema o éxito do ano pasado, onde por primeira vez, aquí nesta universidade, asistente de graduación de aprendizaxe foron adoptadas en aulas. Todo comezou con esta clase o ano pasado. Entón, como vostede sabe, a clase se ensina en conxunto coa Universidade de Harvard. Para ensinar este curso estamos relying-- pudermos contar coa gran experiencia de David Malan eo equipo de Harvard. Entón David foi ensino CS50 para o ben, 10 anos agora. E todos os anos ten sido empurrando os límites e mellorando a experiencia de aula. Unha vez máis, non poderiamos estar máis felices de seguir esta colaboración con eles. De feito, un dos a maioría das pezas interesantes, Eu vou dicir de realizar esta clase agora, tanto en Harvard e aquí en Yale, é o realmente incrible fertilización cruzada de ideas, que ten como obxectivo mellorar a experiencia de aprendizaxe para todos vós. Así, como resultado desta extensa colaboración entre ambos universidade, CS50 ten o orgullo de anunciar a nova versión deste ano con cambios perceptibles. David todo vai dicir sobre eles agora. Entón please-- este ser dixo, por favor unirse a min e benvido a facer un gran aplauso para acoller David e equipo de Harvard aquí en Yale. [Aplausos] DAVID Malan: Grazas. Grazas. Este é CS50, Harvard University de ea introdución da Universidade de Yale ao intelectual empresas de informática ea arte da programación. E o que iso significa que este curso En definitiva, é a resolución de problemas. De feito, moitos de vostedes poden teñen de saír do ensino medio ou pasar os últimos dous anos pregunta o que algúns dos seus amigos fixo o ano pasado ou noutras clases. E, con todo, a realidade é, non importa o que nós facer ao final do día nesta clase, que vai ser sobre a resolución de problemas. E, como tal, é posible levar algunha tranquilidade no feito que o 73% dos estudantes que tomar esta clase, tanto aquí en Yale, así como en Harvard, nunca tomou unha clase CS antes. Entón, se está sentado aquí en público hoxe pregunta por que está sentado aquí na audiencia de hoxe, ou quizais só seguido xunto con algúns amigos, ou que fose un pouco curioso sobre o que ciencia da computación e programación é, entender que a maioría dos seus compañeiros para á esquerda e á dereita de ti son moi nesa mesma demográfica. E, de feito, se miramos as estatísticas últimos anos dentro do corpo do estudante de CS50, tanto aquí e en Harvard, o 58% dos alumnos descríbense como menos cómodo. 9% é máis cómodo. E, a continuación, o 33% está nalgún lugar no medio. E non hai ningunha definición formal que estes baldes significa. Vostede medio que sabe que é menos cómodo se está. Vostede está sentindo un pouco incómodo con talvez estar na clase. Non está seguro de se un ordenador aula de ciencias é, en última instancia para vostede, e entender que é en moi boa compañía. E, de feito a clasificación, ea avaliación, eo feedback, e todo iso estrutura de apoio na clase en definitiva é moi individualizada. Máis do que a maioría calquera outra clase de deseño. E, de feito, o que, en última instancia materias desta clase non é tanto onde remata -se en relación aos outros, pero onde, a semana 11 ou pasado e en relación a si mesmo a semana 0 aquí a nosa primeira. Entón, o que significa isto? Ben, isto significa aqueles de 73% de estudantes o ano pasado, que nunca tomaran unha clase CS antes, pola inicio do semestre eles foron xogar nun idioma chamado de risco, que nós mesmos vai ver aquí hoxe. E por un extremo do semestre tivesen ido a través de toda esta lista de retos. Comezando cunha linguaxe chamada C. Implantación, o que é a primeira vista, indo a ser un pouco de un desafío para algúns, pero moi gratificante, xa que obter Super Mario saltando arriba e abaixo dunha pirámide aplicada, aínda que, con só algo chamado de arte ASCII. Aplicando última ano-- o que os alumnos do último ano, logo que despois diso foi aplicar o cifra de César propia e cifrado de Vigenère. Así, algoritmos de cifrado co cal podería información carreira e despois desembaralhar información para enviar mensaxes secretas. O xogo de 15. Se se lembrar de infancia ou algún favor de partido, este joguinho de plástico onde se move os números para arriba, abaixo, esquerda e dereita para tratar de obtelos en orde, realmente aplicar ese xogo e resolvendo a lóxica necesaria alí. E, entón, participou en forense o ano pasado. Así, a través do tempo, estudantes que nunca tiveron usaron seus teclados para este fin antes, estaban escribindo software para recuperar, por así dicir, JPEGs ou fotografías que tiñamos accidentalmente excluída dun dixitais tarxeta de memoria dunha cámara. Recuperando mensaxes secretas dentro dunha imaxe bitmap, e outros tales tipos de gráficos tamén. Logo trasladada para dar toda clase dun dicionario. Só un arquivo de texto moi grande con 150.000 palabras en inglés. E todo o mundo foi contestada dalgún xeito ler, por así dicir, esas palabras no recordo. Na memoria do ordenador. E, a continuación, responder a preguntas da forma, esta é unha palabra? Será esta unha palabra? Será esta unha palabra? Realmente só aplicando un corrector ortográfico. E, a continuación, desafiando uns ós a outra cunha gran board-- un cadro de líderes para ver quen podería utilizar a menor cantidade de memoria, na menor cantidade de tempo para en realidade, a corrección ortográfica de documentos grandes. Nós trasladada de continuación, para aplicar os propio servidor web. Polo tanto, non facer páxinas web en idiomas como HTML e CSS, se está familiarizado. Pero realmente aplicar que o servidor escoita en Internet para solicitudes de navegadores e, a continuación, responder a estas peticións. Logo aplicar a nosa propia e-comercio, como sitio onde estudantes poderían mercar e vender accións. Deseño en tempo case real presupostos de accións de Yahoo Finance. E permitindo aos alumnos a ver como a súa carteira desenvolve. E entón, finalmente, un mash up Google News e Google Mapas que os alumnos polo prazo de conformidade fin tiña a capacidade de facer clic, e rolda, e investigación nun mapa de Google. E despois ver todos os artigos de noticias que son proximal a estas áreas particulares. Entón, en realidade vai de cero a 60. E ao longo do camiño co que tiñamos o ano pasado chamado, adicións de hackers. Que levantar a barra aínda máis para aqueles de vostedes que podería moi ben ter un bo cantidade de experiencia de estar na que 9% de máis cómodo. Entón entender que hai un límite moi alto mesmo dentro dos retos para os alumnos vindo dun fondo diferente. Porque ao final de o día, estamos en definitiva, centrado moi simplemente sobre este asunto. Pero o que fai este É dicir, a resolución de problemas? Entón, imos propoñer que nós destilar-lo como esta. Así, a resolución de problemas é realmente só este tipo de imaxe. Entón tes entradas para algún problema, algo que realmente quere resolver. O obxectivo é obter resultados, unha solución para este problema. E, a continuación, no medio é o que imos chamar unha caixa negra. Non precisa necesariamente saber ou mesmo importa o que está dentro desa caixa negra. Todo o que sei é que, cando alimenta de entrada para el, espera obter unha saída ou unha solución a partir del. E mentres hoxe ollaremos tanto en entradas e saídas, nós imos longo prazo, e sobre o longo de todo o semestre, concentrarse no que está dentro desa caixa. E é aí onde vai mentir algo chamado algoritmos. Instrucións paso a paso para en realidade resolución dalgúns problemas. Pero o que é un exemplo de algúns insumos? Entón, talvez algo simple na inicio de cada curso escolar, alguén pode querer dar atención. Así, poderiamos facer un, dous, tres, catro, cinco, seis, e como eu estaba a manter a par de tales información. Só pode ir un, dous, tres, catro, cinco, seis. E usar só unha especie de un díxito. Ou eu podería realmente gardar iso un pouco máis longo prazo. E como fago para representar todos os seres humanos neste cuarto? Ben, eu podería facer algo así, OK. Eu vexo unha persoa. Todo ben. Vexo outra persoa, un terceira persoa, e así por diante. Pero ninguén conta a xente como esta. Entón, literalmente, a maioría de nós se estivermos mesmo indo para deseñar algo, son, probablemente, indo a ir Un, dous, tres, catro, quizais un pouco extravagante, cinco, seis, sete, oito, nove, dez e así por diante. E iso é realmente unha sistema chamado unário. Uno, como uno implicando un, onde só ten unha letra do alfabeto. Só ten esta marca hash. E eu, para a eficiencia, acaba de deseñar estas marcas de hash, en última instancia como liñas rectas. Pero eu podería tirado deles como pequenas figuras da vara. onde representan unha persoa, unha entrada, Eu só deseñar unha vara figura ou unha marca hash. Pero iso non é todo o que expresivo. Se todo o que teño son esas de hash marcas, imos figuras da vara só, como eu podería representar algo así como o número 15? Ou 15 persoas na sala? Eu podería facer algo como 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15. El só non escala moi ben. Como as entradas de obter grandes, nos Debe dun sistema mellor que este. E verifícase que o sistema que os ordenadores empregan non é tan diferente desde o que ti e eu sabemos. En realidade, a maioría das persoas nesta sala, aínda se está entre os menos cómodo, non necesariamente saben como o seu Mac ou PC realmente funciona, probablemente polo menos escoitou falar, que debaixo do capó son 0 e 1 .. O chamado sistema binario. Entón, en realidade, os ordenadores teñen máis de só marcas de hash no seu vocabulario, pero non tanto dun vocabulario, como nós, seres humanos. En realidade, nós, humanos, non empregue binario. Bi o que significa 2, 0 e 1. Pero decimal, deca significando 10, de 0 a 9. Polo tanto, temos máis expresiva capacidades no noso mundo humano normal. Pero eu diría que estes sistemas, binario e decimal, e todo entre e ademais dela, están Realmente todo moi familiar. Por exemplo, considere Neste exemplo aquí, 123. Entón, iso realmente é, por suposto, un número que coñecemos como 123. Pero todo o que acaba de deseñar era só iso patrón de símbolos, glifos por así dicir. Tipo de formas na tarxeta en giz. Pero por que nós inmediatamente e intuitivamente entender isto como 123? Ben, se fose como me na escola, probablemente aprendeu que este é o 1s columna, é dicir a columna 10s, esta é a columna 100s. E por que é útil? Ben, é simple aritmética agora facer para comezar a partir dun patrón de símbolos a un número entendemos intuitivamente. É o que, 100 veces 1, e, a continuación, 10 veces 2 e 1 veces 3, que, por suposto, é só 100, e esta é de 20, e este é tres. E por iso, se sumamos os together-- ah. Entón é aí onde reside o tipo de razoamento detrás porque este conxunto de símbolos significa algo real e numérica. Así, os ordenadores fan exactamente o mesmo, pero eles só poden contar tan alto como un. Tendo en conta que eu era capaz de contar ademais de tres. E, de feito, se eu continuase vou podería ir tan alto como nove neste sistema. Ordenadores só ceros e os do seu alfabeto. Entón, o que significa isto? Ben, iso significa só que un ordenador quere representar, din que o número 0, quizais usando tres de caracteres tres letras do alfabeto, por así dicir, que é como un ordenador representa 0. Entón, non todo o que asustado ata agora. É o que nós, seres humanos faría. E, de feito, a maioría de nós só faría ignorar os ceros á esquerda de calquera maneira. Un ordenador, se queres para almacenar o número 1, Acontece que vai facer. E un ordenador para almacenar o número 2 non é vai facer o sistema unário, que aludi anteriormente. Realmente vai facelo. E este é, probablemente, onde o patrón comeza para facer-se menos evidente para a maioría da xente. Isto é 2, é dicir 3. Curiosamente, esta é agora 4. E agora realmente fai parecen ser, se cadra, enigmático, pero non é, se consideramos o binario realmente significa. Significa que ten dous letras do seu alfabeto. Así, dous caracteres posibles para cada espazo reservado. Entón iso realmente significa que imos ter un lugar 1s ou 2s lugar, un lugar 4s e despois 8, e 16, 32, e 64. E cal é a diferenza alí? Como son 1, 2, 4, 8, 16, 32, 64. E antes de que tivemos 110, 100.000, 10.000. Cal é a semellanza alí? E o que é o estándar? Si. ALUMNO: potencias de 2 en vez de potencias de 10. DAVID Malan: Yeah. Potencias de 2 en vez de potencias de 10. E entón se eu quería manter indo, 8, 16s e así forth-- pero agora se ten este tipo de pista, agora o sistema binario é realmente moi simple. ¿Por que este patrón de 0 do no mundo dos ordenadores 0? Ben porque é 4 veces 0, 2 tempos 0, 1 veces 0 e comeza 0. Por que este é o número 1? Mesmo razoamento, pero agora nós ten un 1 na columna 1. Por que iso é 2? Temos un 1 na columna 2s. E entón como eu represento dicir, o número 7 en binario? Diga máis alto. ALUMNO: Tres 1s. DAVID Malan: Tres 1s. Entón, 1, 1, 1, porque só necesitamos 4 máis 2 máis 1 dáme 7. Todo ben. Entón, a partir de aí, como imos representan 8 con 3 espazos reservados? Si. ALUMNO: 1, 0, 0, 0. DAVID Malan: Si 1, 0, 0, 0. E, con todo, se cadra, eu medio de tecnicamente ten para engadir outro espazo reservado para o consello. Se eu queira para caber que de feito que facer algo coma isto. Entón, eu realmente teño usar agora a columna de 8s, e iso é bo. Pero o curioso é na computación que iso vai custar algo. Precisa máis memoria RAM no seu ordenador agora. Precisa máis memoria porque precisa de algo físico para almacenar este bit adicional, por así dicir. díxitos binarios. E, de feito todo o que pasou aquí, como o sistema decimal, Continuamos a adición de números arriba e cara arriba e cara arriba, imos para 5-6 a 7-8 é como cargar a 1, literalmente. E entón o resto volverá abaixo a cero. Pero como é que imos realmente representan estas cousas fisicamente nun ordenador? Ben, ao final do día, o único entrada física de ir para o meu ordenador aquí é o cable de alimentación, de xeito electricidade ou electróns do muro. E así como fago para comezar a partir de algo físico como que para realmente representando unha idea como esta vez. Ben, o que poderiamos facer? Poderiamos considerar que, todo ben, quizais a electricidade está fluíndo Podería almacena-lo e seguro-lo. E se eu estou me sostendo a algunha electricidade, que só vai arbitrariamente representan un 1. E se eu tirar o plug e non hai nada alí, vostede sabe que só vai para representar arbitrariamente a 0. Entón, se algo está aí, 1. Se nada está aí, 0. Ou pode facelo algo máis visual. Aquí é un 0. Non hai nada suceder interesante nuns parte de atrás do meu teléfono. Pero se eu permitir que algo pouco de electricidade flúa, aínda que sexa un pouco claros aquí, a miña lanterna continuou. Entón, eu estou almacenar unha carga e ergo, este teléfono agora representa un 1. Entón 0 1. Así, cun iPhone; alto podo contar con este tipo de enfoque? Quero dicir a 1. Non é todo o que atractivo. Entón, o que máis poderiamos facer? Ben, imos ver, ten alguén na súa teléfono agora que eu podería pedir? Calquera persoa que teña un teléfono cunha lanterna construído? Podo prestar? Eu non teño de desbloqueo. Todo ben. Grazas. Déixeme pedir iso. Todo ben. Entón, se eu agora vai para arriba e aquí, o que estou representando agora? Si. Polo tanto, é un tres por iso é o columna de 1s, este é na columna 2s. Entón 1 máis 2 e 3. E entón si tentar obter Realmente creative-- oh, grazas. Moi preventivo. Todo ben. Agora teño tres iPhones. Todo ben. E agora isto-- eu non vou facer máis lonxe do que iso. O que estou representando agora? Só setes. Pero eu precisaba fisicamente máis memoria neste caso. Pero iso é todo o que é. Pode pensar que está a suceder on-- grazas você-- dentro do seu teléfono como só unha chave que é sendo conexionada e desconectada. E se nunca escoitou falar a palabra transistor. Ou se xa escoitou o comercialización falar Intel dentro, que está falando co tipo de hardware que está dentro do seu ordenador. Intel fai CPUs, unidades de procesamento central, que son como os cerebros dentro do seu ordenador. E estas CPUs e cousas que están conectados ter lotes e lotes de pequenos conmutador. Millóns, millóns de switches que tanto pode ser activado ou desactivado. Entón, ordenadores, por sorte, como os nosos Macs e PCs, pode contar moito maior que 7 ou 8 porque eles teñen moito máis que tres ou catro bits. Moito máis que o equivalente ao tres lanternas que tivemos só. Pero agora iso comeza a ser moi pouco atractivo rapidamente. Se eu agora quero realmente ser capaz para facer algo máis interesante, Quero ser capaz de ir para algo así. Entón ASCII, non é realmente un útil siglas, pero American Standard Code Information Interchange. Significa só que, algúns anos atrás, os humanos decidiron, Vostede sabe o que, queremos ser capaces de facer máis con ordenadores que números. Non queremos que só ser calculadora caros, nós queremos ser capaz de facer cousas como procesamento de texto, aínda que de forma moi sinxela. Posteriormente, tivemos de correo e outros medios. E así o mundo decidiu hai uns anos atrás segundo este sistema ASCII, sabe o que? En certos tipos de programas en calquera momento ver o equivalente do número 65, como o patrón de bits. E poderíamos facer o Matemáticas aquí no cadro. O patrón de bits que representan 65. Non pense nisto como 65 en decimal. Pense nisso como arbitrariamente, senón globalmente, de forma consistente como a capital A. E entón o mundo decidido, vostede sabe o que? Imos dar un outro nivel de bits. E se algunha vez ver a número 66, imos asumir que ese é o de capital B. Avanzando para H e eu, se ves 72 ou 73, que debe ser un H e un I, respectivamente. E así, desde que o conxunto mundo de acordo con iso. De xeito que cando recibe un correo electrónico ou tería un arquivo nun stick USB, ou algo así isso-- cando ve que o patrón de bits, sabe que debe ser este carta ou algunha outra letra. Pero é contexto específico, non. Un programa de correo electrónico pode interpretar estas cousas como personaxes, pero unha calculadora gráfica ou calculadora pode representar ou interpretar estas cousas, por suposto, como letras. Así, co que dixo, pouco rápida revisión. Este é quizais un dos tres personaxes correo electrónico que foi enviado para min. Debaixo do capó está todo en 0s e 1s, pero non me importa. Nós imos comezar a abstraerse por riba dos 0s e 1s para letras. E se eu ver un estándar de 0s e 1s que realmente representan 72, Consello, suxestión, 73, e despois 33, cal é a mensaxe? Estudante: [inaudível] DAVID Malan: Entón, se pensa atrás só un momento atrás, HI foi a mensaxe que eu estaba tentando comunicar aquí porque H é de 72, I é de 73, e agora 33-- non faría necesariamente saber iso con antelación, pero resulta que se realmente ver máis gráfico e do sistema que a humanidade acordado anos atrás, é só un punto de exclamación. E, de feito, non hai un patrón de símbolos e números para cada personaxe que pode ter no seu teclado. Todo ben. Imos abstracto máis. Se non queremos só ter cousas como números e letras, Nós realmente quere aplicar gráficos. Ben, se xa escoitou a sigla RGB. É unha especie de datada agora, pero aínda é tipo de alí. RGB é vermello, verde, azul. E é só un sistema de de dicir, vostede sabe o que, imos usar tres conxuntos de bits. Un conxunto de 8 bits, outro conxunto de 8 bits, e outro conxunto de 8 bits. E imos usar estes bits para almacenar o que nós vermello quere na nosa pantalla, como verde que queremos na nosa pantalla, e canto azul queremos na nosa pantalla. E isto significa só que se ter un lot-- un número grande para o vermello, isto significa que me dar unha morea de vermello. Se vostede ten un número grande para verde, dáme moita verde. E se ten só un pouco de azul ou un pequeno número como 33, dáme un pouco de azul. E se ocorrer de combinar os tres magnitudes, por así dicir, comeza isto-- apenas pode ver en o proxector aquí, pero este escuro ton de amarelo ou marrón. Pero isto é dicir, usando este patrón de 8 plus 8 plus plus 8-- este estándar de 24 bits É así que un ordenador faría almacenar ese ton de amarelo nun pontinho un pixel na pantalla. Entón, nós fomos de 0s e 1s para decimal números por letras do alfabeto. Ou máis interesante, puntos de cores. Ben, o que, por suposto, a continuación, ven a continuación? Ben, o que é unha imaxe que ver en Facebook ou entrar nun correo electrónico? Ou algo semellante? Cal é a definición tecnicamente dunha imaxe? Si. ¿Que é unha imaxe composta de ollar moi preto na súa pantalla? Si. É só unha morea de píxeles. En realidade, se levar o seu portátil quizais máis tarde, e ollar moi de preto a ele-- dependendo sobre como caro o portátil é e como de alta calidade da pantalla é, pode moi ben ver todas os pequenos puntos na pantalla. E eses puntos ou píxeles, que significa que hai 24 bits que representan cada pixel naquela fotografía que ve en Facebook, ou que acaba de sacar no seu iPhone recentemente. E entón é así que obtemos a cousas como gráficos. Ben, o que é un vídeo? Un vídeo é só un conxunto de gráficos voando pola pantalla de novo e de novo e de novo. E así vídeos realmente, son só estándares de bits que representan reixas, liñas e columnas de puntos, voando a imaxe da pantalla, tras imaxe, conforme a imaxe, a.k.a. Imaxes en movemento. Entón é iso para entradas e saídas. Todo o que temos agora é unha presuposto de que, sabe o que, se queremos un ordenador para representar información, temos un sistema para facelo. Podemos facelo con 0s e 1S ao final do día. Pero podemos abstraerse, de xeito para falar, enriba do que para representar máis cousas interesantes. E de aquí en diante en CS50 e, en ciencia da computación de modo máis xeral, agora estamos firmes sobre os ombreiros de todas as persoas que viñeron antes de nós, que descubriu iso. E agora só supor que os ordenadores pode representar entradas e saídas. Pero agora imos realmente facer algo con eles. Así, un algoritmo é só un conxunto de instrucións, paso a paso, para resolver problemas. E o que pode un problema de tal ser. Polo tanto, esta é unha vella escola tecnoloxía, un libro de teléfono. E dentro dun libro de teléfono é un Toda chea de nomes e números. E eses nomes son xeralmente clasificados en orde alfabética. Entón, se eu quería atopar alguén este libro teléfono como Mike Smith, o que é un ser humano típico vai facer? Ben, pode simplemente abrir Lo, ollar para a primeira páxina. Non vexo Mike Smith. Xire se para a segunda páxina, Non vexo Mike Smith. E só manter indo e indo. esta visión paso a paso é a correcta? Si. É unha especie de idiota, non. É ineficiente, certo. Que vai levar unha eternidade para chegar a Mike, pero é correcta. Porque se Mike é aquí I vai realmente atopalo. Así que é algo máis persoa razoable vai facer? Eles aínda poden abrir para adiante, e quizais voar a través do libro de teléfono dúas páxinas á vez. Dous, catro, seis, oito. Non podo realmente fisicamente facelo moi ben. Pero, en teoría, este debe ser dúas veces máis rápido, dúas páxinas á vez. Este algoritmo é correcto? Estudante: [inaudível] DAVID Malan: Non necesariamente. Bo. Por que esa advertencia? ALUMNO: Por podería estar nunha das páxinas que está saltando. DAVID Malan: Yeah. Así, mesmo se eu ir cada vez máis preto. E se é só accidentalmente, por mala sorte, ensanduichada entre as dúas páxinas que eu estou voando sobre? Entón, necesitamos unha corrección para iso. Nós realmente precisa logo dicir, agarde un minuto, quizais se nos ir lonxe de máis, quizais se bater a sección de T, para T vén despois de Smith, entón debemos polo menos o dobre de volta polo menos unha páxina. Así fixável, pero hai Hai un problema condicional. Polo tanto, é dúas veces máis rápido, pero pode Ten que dobrar cara atrás un pouco. Pero ninguén no seu cuarto, aínda se realmente non usar teléfono libros máis, comezará a principios. Que vas facer buscando Mike Smith? Está indo a ir máis ou menos ao S do. Ou se realmente non ten a folla de fraude no papel, está indo a ir, polo menos, aproximadamente polo medio. E certamente non para a portada do libro. Vai mirar para abaixo. E matematicamente probablemente vai ver a sección M, que é máis ou menos no medio. E entón vai entender, o que é certo? Onde está Mike? Estudante: [inaudível] DAVID Malan: Yeah. Entón, está deste lado. E entón o que podes facer? Ben, figurativa e literalmente pode rasgar o problema á metade xa? E despois saber que pode xogar esta parte do problema de distancia. E agora estivemos con fundamentalmente o mesmo problema, pero é a metade do tamaño. E agora, cal é a un conxunto de instrucións? Cal é o algoritmo para atopar Mike Smith? É exactamente o mesmo. Agora, este pasa a ser M sección e esta é a sección Z, pero fundamental fórmula é aínda o mesmo. Ir aproximadamente polo medio, mirar para abaixo, oh, danado. Agora estou na sección T, Teño demasiado lonxe. Pero tamén aquí pode vostede aplicar a mesma lóxica. metade lance do problema de distancia, e agora estamos deixou con un problema que é un cuarto do tamaño. E podemos repetir, e podemos repetir, e podemos repetir ata que, en teoría, hai só unha páxina á esquerda na que Mike é ou non é. Así que é tan poderosa sobre esta idea? Quero dicir, ao final, é moi intuitiva. Ninguén vai comezar no inicio do libro de teléfono e virar 1.000 páxinas para atopar Mike Smith. A maioría das persoas nesta sala vai para facer máis ou menos este tipo de algoritmo aforrar ao resgar. E entón por que facemos isto? Ben, considerada a eficiencia. Considero só como mellor este algoritmo foi por división lo nas súas partes compoñentes. Entón o que eu primeiro facer? Peguei o libro de teléfono. E un científico da computación, e un programador, de xeito máis xeral que parece, vai para comezar a contar todo a 0. Por que? Ben, é un pouco raro que nós, humanos, contan, en xeral, a partir dun. Porque o que é o menor número podemos representan claramente baseada mesmo na nosa matemáticas antiga escola primaria? Ben, foi 0, se é en decimal é binario. E así que vai ver no mundo da computación e programación, En concreto, comezamos contando todo, dende 0. Entón eu peguei o libro etapa teléfono 0. Eu estou indo para abrir a medio do libro de teléfono. E iso é de feito un expresión do que eu fixen. E entón o segundo paso foi buscar os nomes. Paso tres é algo diferente conceptualmente. Estou me pregunta unha pregunta. Se Smith está entre os nomes, Vou tomar unha decisión. Se está entre os nomes, entón eu vou chamar a Mike. E eu vou tomar unha decisión con base nesa información. Con todo, se non, se é Smith anteriormente no libro á esquerda, Vou abrir para o medio da metade esquerda do libro. E entón aquí está a intelixencia, Vou volver para a etapa dous. Vou tipo de estar nos meus propios ombros e só repetir o pasado traballo que fixen. Pero o traballo que me queda é menos, e menos, e menos. Pero aínda está indo para o traballo. Pero se Mike, en vez diso, é máis tarde no libro a dereita, Vou abrir para o medio da metade dereita do libro, logo voltar á etapa dous. Pero hai realmente un cuarto escenario. Mike, quere aquí, ou aquí, ou aquí, ou- ALUMNO: Non hai. DAVID Malan: Non hai. E, de feito, se non prevé Neste cuarto e último escenario O noso programa pode ser buggy ou fallo dalgún xeito. Else, saia no caso de que non atopamos Mike en todo. E, de feito, se observa sempre o ordenador de suspensión, ou todos dunha palabra súbita ou algunha outra programa só é pechado inesperada, e ás veces che erro mensaxe é literalmente iso. Este programa pechar inesperadamente. Pode ser para calquera número de razóns. Pero ás veces é algo tan simple como iso. O programador humano que escribiu que software non entender que, oh, hai unha ante o que realmente pode acontecer. E se non escribir código para capturar ese cuarto escenario, é realmente inesperado, por veces, o que o ordenador pode realmente facer. Agora imos chamar un Algunhas destas cousas. Entón en amarelo aquí, eu teñen termos realzados que, de agora en diante, somos só vai chamar funcións. Funcións no mundo da programación son como accións, declaracións de accións. Entón tome, aberto a, ollar a chamada, aberto, aberto, saia. Isto é unha función, un procedemento, unha acción, calquera número de sinónimos ía funcionar tan ben. Agora, cales son esas cousas agora, en amarelo? Se outra persoa, máis, se máis, estes son o que imos chamarlle condicións en programación, ou filiais, a decisión apunta, se quere. Pero como vostede sabe cal garfo no camiño a tomar, por así dicir? necesitamos destacar as palabras á dereita alí, as cales son si, non hai dúbida. Estes verdadeiros falsos preguntas. Smith entre os nomes? Smith no inicio do libro? Smith máis tarde no libro? Estas son preguntas para cal hai un si ou non, ou equivalentemente verdadeira ou falsa, ou equivalentemente, un ou cero resposta. E, con todo, hai só unha última peza. Este aquí ten que tipo de efecto? Queres ou non programar antes, como describir o paso sete e 10 están a facer? Que dixeches? ALUMNO: Un paso recursiva. DAVID Malan: Un paso recursiva. Si, esencialmente. É tecnicamente iterativa aquí se está familiarizado. Pero imos voltar a iso. Pero está facendo algo claramente. De novo, é inducir unha ciclo, un ciclo, non. Vai literalmente de volta a algunha etapa anterior. E así, de feito, que vai aplicar algún tipo de ciclo. Pero non vai conseguir preso neste sen parar, non. Porque se está constantemente comprobando é Mike aquí, ou á esquerda, ou non aquí, finalmente, non vai estar alí. E pode simplemente deixar completamente por esa última liña. Entón é iso para vocabulario. E iso foi o que faría xeralmente chamar código pseudocódigo. Non é unha linguaxe real. É só moi concisa Inglés, pero se comunica o punto. Non hai ningunha estrutura formal aquí. Só usalo dalgúns palabras, pero palabras como claros como pode comunicarse a súa idea. Agora, como bo é que o algoritmo e canto mellor é? Ben, non temos para entrar no especificidades de números ou nada así. Pero podemos ollar para o moldes desta solución. Entón, se nós só deseñar algunha trama xy aquí no eixe horizontal aquí. Imos chamar o tamaño do problema. E un científico da computación sería normalmente usan n como a variable aquí. Entón n páxinas, ou n persoas na sala, ou Sexa o que sexa que está tentando contar. E, a continuación, sobre o eixe vertical no esquerda, que sería o tempo para resolver. Entón, cantos segundos o fai Léveme para atopar Mike Smith? Ou cantos pasos que hai que? Cantas voltas páxina leva? Entón, iso é canto custa me o tempo para resolver un problema. E pode deseñar o primeiro algoritmos de inclinación, se quixeren, como só esta liña recta en vermello. E eu vou chamalo n. Por que n? Por que é só un agasallo para unha relación? Ben, se Verizon ou calquera que sexa empresa de telefonía engade unha páxina para o libro de teléfono o próximo ano, que pode empurrar un Mike un paso máis preto do final, dependendo de onde esta páxina é. E así o efecto só podería a de engadir un segundo. Ou unha páxina virada. Unha proporción 00:59. En contrapartida, o segundo algoritmo. Canto máis rápido foi que intuitivamente? Onde eu fun dúas páxinas á vez? Si. Estudante: [inaudível] DAVID Malan: Yeah. Por iso, será dúas veces máis rápido. E quere chamar iso aquí dependendo da escala. Aínda é unha liña recta, pero menor que a liña vermella. Porque, por algún número de páxinas, se leva isto moitas etapas con o primeiro algoritmo, que vai leva-lo a metade como moitos pasos co segundo. E así, a liña amarela describindo a segunda algoritmo é só será abaixo dela. Pero o que é realmente poderoso é pensar sobre a terceira e última, e sorprendentemente máis intuitiva algoritmo, que ten esta forma. Tecnicamente nós chamariamos esta unha curva logarítmica. Rexistro base 2 n neste caso. Pero iso realmente non importa. O que importa realmente é o fundamental forma diferente que ten. E pode considerar o quão moito máis curto esta liña realmente é a longo prazo. Está constantemente a aumentar. Non esmagar perfectamente. Pero ela crece sempre moito máis lentamente como o problema se fai maior e máis grande. E pode pensar desta way-- se Verizon non só Engadir unha páxina o próximo ano, pero dobres o número de páxinas do libro de teléfono, o primeiro algoritmo pode tomar o dobre de pasos. Se é de 1.000 páxinas esta ano, 2.000 páxinas o próximo ano, Mike pode ser que máis lonxe. Polo tanto, é de 1.000 medidas adicionais para atopalo. O segundo algoritmo pode ser só 500 pasos para atopalo porque unha vez máis, Estou voando por el dous á vez. Pero o que sobre o terceiro algoritmo? Se Verizon duplica a tamaño da lista de teléfonos ano de 1000 a 2000 páxinas, cantos máis pasos é o meu terceiro algoritmo vai levar? Si, é só un. E esa é a idea poderosa. Pode tomar 1.000 páxinas mordida fóra deste problema dunha vez. E agora, se considerar un escenario de parvo, pero que tipo de fala ao poder deste tipo de intuition-- Un libro de teléfono tivo, como, catro millóns páxinas, se sente como un problema moi grande. E, de feito, pode me levar de catro millóns de page vólvese para atopar Mike Smith naquela caso co primeiro algoritmo. Pero cantos pasos sería el tomar o terceiro algoritmo para atopar Mike entre os catro mil millóns de anacos de papel? Entón, catro millóns de ti rasga ao medio. Obter dous millóns. Logo mil millóns, a continuación, 500 millóns, 250 millóns, 125 milhões-- pero Parece que este é vai levar un pouco. Podería ter 32 dedos contarlle que a alta. Pero é de feito como poucos como 32 bágoas páxina. Pode ir de catro millóns para unha páxina divisoria o número orixinal de Páxinas na metade 32 veces ata que é deixar con só que unha única páxina. Agora, por suposto, eu estou enganando aquí. Non é que estamos só a ser sorte de estúpida enteiramente cos dous primeiros algoritmos. Estou traizoando dalgún xeito, é Realmente estou aproveitando unha suposición. O que era verdade sobre o libro de teléfono na súa forma orixinal que permitiu eu mesmo usar este terceiro algoritmo? Si? Audiencia: Foi en orde alfabética. DAVID Malan: Foi alfabetizado, non? Se fose só de forma aleatoria fin, isto é un desperdicio de tempo, toda esa conversa. Teño que mirar para cada A páxina que está en orde aleatoria para atopar Mike Smith antes de pódese concluír que está alí ou non. E así o que canto cortar é que eu teño que asumiu outra persoa en Neste caso fixo o traballo para min. E para que, finalmente, invita a cuestión, así, agarde un minuto. Como clasificar 1.000 páxinas de nomes e números? Isto é realmente unha persoa diferente problema, algo imos voltar no futuro. Pero cando pensa sobre sitios como Facebook e Google para Gmail e cousas como a de Google índices propios de busca, cando ten millóns ou billóns de anacos de datos almacenados nos días de hoxe, searching-- e sen esquecer clasificando estas problems-- é en definitiva, un desafío en si mesmo. E, de feito, este é, entón, só un deses retos que imos estar mirando. Entón agora imos ter un momento e vexan o CS50 -se e darlle unha sensación de que está na tenda neste semestre. En realidade, se non ten, non bótalle un ollo neste URL. E, como Patrick aludiu para este ano estamos facendo un investimento significativo todo canto máis en apoio do curso estrutura en termos de axencias de viaxes eo CAS, o horario de expediente, seccións dispoñibilidade, e materiais dixitais en liña, tamén. De feito, en termos de curso de charla, que estamos aquí hoxe. E as expectativas deste ano oficialmente do curso son asistir aos días de hoxe, do curso última charla, e un campo de máis ou menos no medio do semestre con cada charla entre facilitados en xeral nunha venres á tarde en liña, tanto para alumnos de Yale e estudantes de Harvard este ano. Efectivamente, un dos cambios fundamentais é que estamos adoptando no Harvard un paradigma moi como fixemos aquí última ano e agora este ano, para que do mesmo xeito, aínda filme máis de conferencias do curso en Cambridge pero tornalos dispoñibles antes do que temos no pasado de xeito que os de você-- se Quere, por exemplo, obter unha vantaxe inicial sobre os materiais no primeiro fin de semana en vez que o segundo fin de semana, terá acceso a estes tipos de materiais, searchable, incorporável, hyperlinkable aos recursos relacionados toda a anterior. En termos de temas, para darlle un sentido de trajectory-- do curso e algúns que pode ser xerga para agora, pero non por moito tempo, seguro. Imos comezar hoxe, en definitiva, con ollar a unha programación linguaxe chamada cero. Nós imos facer a transición despois a próxima semana para algo chamado C e logo, mirando para outro edificio bloques para resolver problemas, cousas chamadas matrices e algoritmos, como podemos utilizar a memoria para a nosa vantaxe e inconvenientes, e cousas como estruturas de datos, e, a continuación, en dirección ao fin da cola da clase mirando para a aprendizaxe de máquina e mirando para outro linguaxe chamada Python, como a web funciona como a internet máis xeralmente funciona, protocolos como HTTP, linguaxes para bases de datos como SQL, JavaScript para a web, e, finalmente, amarre conxuntamente todas estas. E así, de feito, en final do día, non vai aprender nesta clase cero ou C ou Python ou SQL ou JavaScript. Vostede, pola contra, máis xeralmente aprenden ciencia da computación e as fundacións do mesmo, e vai aprender a programar en calquera número de estas linguas ao longo do camiño. Así, en realidade, un dos obxectivos do curso ao final é aproveitar todo o curso de rodinhas por aquelas semanas finais para que, tras iso, pode volver á súa propia fields-- se iso é ou Non ciencia da computación ou enxeñaría, no natural ciencias, artes, humanidades, ou beyond-- e traer un pouco desa As ideas de curso e este campo de ideas e prácticas habilidades para o seu propio dominio a fin de resolver problemas no seu interior. O que imos facer aquí, con todo, na maioría dos xoves a partir de hoxe é con cabezas do curso conducente o que imos chamar de orientacións de conxuntos de problemas do curso. Así, cada semana cando ter un conxunto de problemas, imos estar camiñando a través dunha situación así retos do curso, ofrecéndolle algúns consellos e trucos e técnicas de deseño. Pero se non é capaz para facer aqueles en persoa, realizar eses mesmos recursos incorporaranse por un curso de asistentes de ensino no problema define-se como ben. O problema define este ano, a diferenza o ano pasado, a base do producto, aínda será lanzado en venres. Pero en vez de ser por a posterior venres dando así só sete días, será efectivamente debido 10 días máis tarde. E, de feito, isto quere dicir que van sobrepasar por un fin de semana. Pero esperamos que este ano especialmente este será permitir que os alumnos a mellor acomodar fluxo e refluxo nas súas axendas, se é ou académicos extracurriculars ou atletismo ou a estación de medio termo. Pode front-load ou back-load súa semana focando CS50 base na carga curso real seu propio semana. O problema sitúase cubrirá unha variedade de linguas, porén imos concentrar predominantemente no inicio en C antes de concentrarse logo en maior nivel, máis linguaxes web-céntrica. E, a continuación, un par de FAQs aqui-- ten que tomar unha clase como CS50 como un primeiro ano? Entón, con certeza. E, de feito, non é necesariamente algo ten que retrasar ata que teña cortado os dentes en outros tipos de clases. Mais en vez diso, considerada que, para moitos alumnos, eu incluído atrás o día, este é un campo moi estraño, especialmente se nunca o fixo tomar unha CSA AP ou algo así na escola. Pero entendemos que en principio, se é este curso ou algún outro curso introdutorio, agora é realmente o mellor tempo, Coido que, para atopar algún novo camiño ou algún novo interese académico, así. E, a continuación, levando con outra courses-- Polo tanto, unha das principais diferenzas aquí contra Harvard é que só tomar catro cursos por semestre en Harvard, por algún motivo. E vostedes realmente tirar off algúns 36 cursos en total ao longo dos seus catro anos, o que significa xeralmente catro ou cinco clases. E eu creo que é moi xusto dicir e asumen CS50, polo proxecto, é probablemente non o tipo de clase que ten que normalmente levar con catro outros cursos para un total de cinco Serie de exercicios porque son por deseño bastante intensivo. En realidade, eu tamén aprendín esta de volta o día. Non describir CS50 e ciencia da computación, programación como moi difícil que é só lento. Non é o tipo de cousas onde tras a cea, pode volver para o seu dormitorio sala, sentir e comezar centrándose na pset pensar, todo ben, Vou bater este para fóra esta noite e, a continuación, movemento no meu próximo tema o día seguinte. Ás veces só bater nunha parede. Ten erros no seu código. Non precisa necesariamente saber como resolver problemas. E unha das principais características do programación para min até hoxe é que só tipo de necesidade de tomar un paso atrás, ás veces, durmir con ela ou pensar sobre el durante o curso dunha carreira ou algunha outra actividade, e, a continuación, volver a el fresco. E só precisa destas ventás de tempo. E, de feito, é por iso que temos alongou a cantidade de tempo dispoñible para os conxuntos de problemas este ano e tamén, por que URL Engada anteriormente como a Que hai de novo neste semestre, aparado o problema define para que son fundamentalmente non menos rigorosa, e os temas non son menos, pero hai moito menos materia fronte, moito menos traballo braçal que precisa facer diante de cada conxunto de problemas, como podes ver, antes de que poida mergullo de feito na carne del. Así, entender que estes e outros cambios están no horizonte para mellor acomodar os alumnos, pero en definitiva para asegurarse que os temas son de feito o máis alto posible. Así, mentres que máis traballo do que pode estar nunha clase típica, Esperamos que os retorno para vostede e os takeaways para ti e as habilidades e ideas co que saír son aínda máis atractivo como un resultado. E para que obteña há-- e este é unha das principais leccións, como Patrick aludiu earlier-- é estrutura de apoio do curso. Así, non só CS50 ten un dos as maiores equipos do curso no campus. Tamén ten un do máis de graduación. De feito, CS50 último ano Foi a primeira clase ter un equipo de graduación de ensino. E a proba diso éxito facer agora moitos outros cursos dentro Yale CS Ten que, como ben. E para estudantes, especialmente, farán estes ATS é asistentes do curso apoiando ser un enteiro rede de recursos de soporte, entre eles seccións ou recitações, oportunidades semanais ter discusións máis íntimos e opinións de material de visión selectiva para diferentes grupos, para estudantes menos cómodo, máis cómodo, ou algures no medio. Estes han seguir a dispoñibilidade de as conferencias de varios días cada semana ás segundas e martes. E entón oficina horas-- one-on-one oportunidades para a axuda do CAs curso e TAS será os mércores e xoves e domingos, ás múltiple veces, as cales publicaranse na páxina web do curso, aínda máis que o ano pasado, tamén. Pero o que é fundamental para CS50, se non reconhecidamente un pouco inusual, é a cultura do curso que nós tratamos cultivo, tanto en Cambridge, durante moitos anos e agora máis recentemente en New Haven. E, de feito, chegando neste Sábado, se aínda non escoitou, é o Día CS50 enigma, que ten nada que ver con ciencia da computación pero é totalmente deseñado para enviar unha mensaxe que a informática é sobre a resolución de problemas. E, de feito, se quere compañeiro cun ou dous ou tres amigos e formar un equipo para CS50 Rompe-día, bótalle un ollo aos anuncios que están no camiño para fóra. E tres horas de pizza e puzzles e premios agardan. E, de feito, para o primeira vez este ano, non se celebrará en conxunto con Harvard. Vai estar aquí de forma independente en Yale. Polo tanto, manteña en conta para quen se non ten. A maioría toda venres no semestre é que imos tratar de facer unha gran clase sentir-se pequeno e traer uns 50 alumnos para xantar co persoal do curso, con ex-alumnos, amigos da industria para falar sobre como é a vida despois dun clase como CS50 e nos veráns e despois da graduación. Polo tanto, manteña en conta para invitacións a iso. Por primeira vez xa este ano nós realizar a primeira vez CS50 codificación competición, un opt-in opcional oportunidade medio do semestre, despois de todo de nós xa tivo uns seis ou sete semanas de programación no C baixo as súas correas para competir, se así choose-- novo en teams-- intentando resolver tantos retos como pode en programación con amigos de vostedes contra os outros. E cara á cola do semestre o faremos charter algúns autobuses, realmente pasar algún tempo en Cambridge, se Quere unirse a nós, ao chamada CS50 hackathon. No 19:00 imos comezar. Ao redor de 21:00, teremos pizza. Ao redor de 01h00, teremos burritos. E ninguén aínda acordado na Autobuses Debido a casa ao redor das 5:00 AM, imos deixar para panquecas no IHOP no camiño casa-- unha oportunidade de 12 horas para mergullo -se con compañeiros e funcionarios no proxecto final do curso, que é unha oportunidade para ir moito máis alá do conxuntos de problemas do curso e elaborar e aplicar máis algo de interese para vostede, que será finalmente caracterizado aquí en Commons. A primeira feira xa CS50 foi o último ano, unha exposición de finais de outono ou celebración do que todos na clase realizara, especialmente aqueles, unha vez máis, que pasou de nada para algo, de cero a 60, ter ningún coñecemento previo e mostrando, en definitiva, algo para toda a campus e, se en liña, o mundo ver, tamén. Agora, estas aquí son só algúns dos Tas e CAs que fai CS50 posible. Permítame invitar calquera destes funcionarios que están aquí para chegar no escenario, así como cabezas do curso, ofrecer algunhas palabras de inspiración, así. ANDI: Ola, persoal. Vostedes poden me escoitar? Grazas por unirse a nós nesta encantador, xoves chuviosa tarde. O meu nome é Andi. Eu son un júnior en Berkeley. E xunto con Stelios e verán, que será o seu ensino tres cabezas asistentes a este ano. Entón, eu creo, demostración de hands-- cantos de vós non teñen a intención de ser un CS grande nin realmente mergullo profundamente en ciencia da computación como un importante aquí? Impresionante. Isto é brillante. Entón, eu son realmente un dos asuntos globais e ciencia cognitiva major. Eu literalmente veu a Yale coa intención de nunca ter que ollar a unha número cada vez máis na miña vida. Cando vin para Yale, este foi algo que nunca estaba no meu radar. Eu quería aprender sobre poesía. Quería coñecer Asuntos Internacionais. Quería coñecer debuxos en acuarela. Si, nos ofrece unha clase en deseños de acuarela. Pero eu nunca realmente estaba interesado en calquera cousa STEM relacionado. Pero, entón, canto máis vello me ficaba, máis podo entender que todos os campos realmente nalgún sentido emprega ciencia da computación, ou se non ciencia da computación, informática. De feito, ao meu mundo proxecto de albardilla asuntos, Utilizamos análise de datos para analizar ataques terroristas para Boko Haram na Nixeria. E así como se pode ver, con independencia que importante acaba perseguindo ou o que os seus intereses aquí en Yale son, de programación e as fundacións de todo o que habilidades son super útil. E CS50 realmente está ben equipado para tipo de prestar unha morea de seus recursos para ti, independentemente do como está cómodo ou como che interesa na consecución da clase. Verán vai falar un pouco pouco sobre o que están Vai aprender sobre este ano. VERÁN: Ola, todo o mundo. Estou verán Wu. Eu son un júnior en Morse. E eu realmente comezou como un estudante CS50 min. Así, tres anos, eu estaba en un ano sabático. Nunca tivera un CS clase na escola, pero eu penso que, no meu tempo libre, que sería legal para aprender a codificar. Entón eu fixen unha busca rápida en Google, mirou para o que estaba dispoñible en liña, e vin este vídeo cos Muppets e DJs e sitios legal. Estaba tipo, quero aprender a facelo. Entón eu fixen o curso, e eu só caeu no amor con el. Pero eu recordo estar tan celoso do nenos que puideron asistir á maratón hacker, participar do Día do puzzle, participar de oficina horas, comezar a axuda de axencias de viaxes en persoa. E así eu nunca imaxinei que eu tería a oportunidade estar aquí implicado o curso que comezou primeiramente me interesa ordenador ciencia e é a razón pola que Eu son unha ciencia da computación importante hoxe. Entón, eu vou aviso-lo, esta clase vai estirala-lo. Vai desafia-lo. Pero tamén vai ensinar-lle como facer as cousas que nunca imaxinou que puidese. Stelios: Ola, todo o mundo. O meu nome é Stelios. Eu son un júnior en Branford College e un dos principais CS. Eu tamén son de Atenas, Grecia. Estou realmente ansioso para atender a todos vostedes, falando con vostede na sección, polo o horario de expediente, en comidas de venres. Estou moi animado, porque poñemos moito esforzo para crear un soporte único estrutura para todos vós para facer a súa experiencia con o curso o mellor posible. E eu espero que, aínda que a maioría dos probablemente non tomar un CS Claro antes, eu espero que iso sexa CS50 para ti é a que acende o interese a continuar ordenador ciencia no futuro, como fixo con tan moita xente no pasado. Entón, grazas por ser aquí, animado para velo. Jason Hirschhorn. JASON Hirschhorn: Ola, persoal. O meu nome é Jason Hirschhorn. Eu vivo en Silliman. E eu fun a Harvard como unha graduación e se formou en estudos sociais e minored en ciencia da computación. E un dos meus papeis principais aquí é apoiar esa equipo marabillosa como apoialo todo. En realidade, este non é de todos eles. Hai 55 alumnos de graduación e graduados aquí para apoia-lo todo. E atrévome a dicir que un dos mellores partes do curso para ti todo comeza a traballar con Los, coñece-los, empezando a velos, tanto en CS50 e fóra do CS50 este semestre e para moitos semestres para vir. Polo tanto, esperamos que vai tomar a Claro, porque espero que comeza a interactuar co equipo marabillosa que temos no escenario. Orador: Ben, deixe-me terminar dicindo que vai ser divertido. DAVID Malan: Ben, Grazas a toda a noso equipo. Permítanme que diminúa as luces e permitir un pouco máis do noso equipo, ambos de Cambridge e New Haven, para dicir Hola como arquivar estes faces. E despois diso é que imos facer a transición cara o primeiro dos nosos compromisos de programación con este idioma chamada cero. Así, grazas ao equipo. Imos diminuír as luces e escoitar de algúns outros. [Aplausos] [Reprodución de vídeo] -A Misión do CS50 é facer máis cómodo con un xeito totalmente nova de pensar, esa mentalidade computacional. -El Fixo ciencia da computación interesante, que é algo que realmente non entender foi posible ata eu levei a clase. -Eu Era como, whoa. Estou realmente traducir meus pensamentos nun ordenador agora. -Mesmo Se non ten ningún fondo en ciencia da computación, ou de calquera experiencia, esta é realmente a clase para ti. -Entón Eu sempre quero meus alumnos a só estar animado sobre a ciencia da computación. Non só a programación, pero pensar como un científico da computación é realmente o que quero tentar ensinar o meu primeiro. -CS50 É difícil e gratificante. experiencia -Un. -Extravaganza. -É Nos traendo ao seguinte nivel. [Reprodución de música] -As TFS son, penso eu, o Forza Vital do curso. -Estou Animado para ter meus alumnos estou axudando Ten que aha momento para entender o que eles están realmente intentando facer, para descubrir como facer un pset. -CS50 É en definitiva un curso difícil. Pero a diferenza de calquera outro curso realmente en Yale, ten un tan grande, comunidade de apoio. -Vostede Absolutamente non Debe saber nada sobre o conxunto de poder para facer o curso. -É Incrible ver como lonxe as persoas veñen nun semestre. -Vostede Non estaban sós sentado seu cuarto aprender a código, pero era máis que unha clase. Foi unha experiencia. -A Mellor forma de aprender conceptos e para proceso-los é de ensinar os outros. -O Que é a división de teléfono? [Reprodución de música] -E Este é CS50. [Reprodución de música] -Este É CS50. -Got Un problema? Trazo-lo ao medio. [Reprodución de música] Xoga-lo fóra. DAVID Malan: Todo ben. Entón, imos tackle-- en algo bit, de feito, é foi esa tradición para algunha razón a 10 anos para servir a torta na iniciar e ao final do CS50. Entón, esperando por ti ao final do Hoxe en día, ademais de programas de estudo, será unha peza de bolo, así como, e equipo do curso de dicir Hola. Pero agora, imos transición ao primeira das nosas linguas, onde nós imos pasar realmente só unha semana e un conxunto de problemas neste ámbito, cero. E vai atopar se ten programado antes, moitos das ideas e do posibilidades son familiares para ti. Pero vai descubrir que é divertido ao longo do camiño para descubrir como traducir algunhas das ideas que xa coñece a este ambiente específico realmente impresionar a súa familia e amigos co seu traballo, o que pode ir en liña, se así o desexan, despois. E se non ten experiencia previa e son entre a maioría dos alumnos menos cómodos, entender que moitas das ideas que só explotado coas cousas reality-- como libros de teléfono e atención e así por forth-- traducir moi ben a un ordenador, pero non se usa, inicialmente, unha linguaxe como esta. Polo tanto, este é un programa escrito nunha linguaxe chamada C. E nós imos gastar un pouco de tempo en C, en definitiva. Pero as probabilidades son, iso vai parecer un pouco criptográficas para ti a primeira vista. En realidade, hai unha morea de estraño sintaxe, parénteses, corchetes, chaves, citas e punto e coma. E, de feito, se mergullar programación por primeira vez mirando e intentando crear cousas así, honestamente, queda tan Atol tantas veces en só estúpido minuciosa que non ten nada intelectualmente interesante sobre el. Pero imaxine se puidese crear este mesmo program-- que, como pode tipo de inferir, probablemente imprime "Ola, mundo" ou outro. Podemos destilar esa mesma idea en só dúas pezas do puzzle, se quere. De feito, é interesante arañazos porque é esta linguaxe gráfica. Pode arrastrar e soltar eses pezas do puzzle que só interlock se ten sentido lóxico para facelo. E así, en perigo, que en breve vai ver, este é Como podería aplicar esa mesma programa, con só dúas pezas do puzzle que practicamente facer o que eles din. Pero imos ver en só un momento que algúns dos bloques de construción que aludimos anteriormente e un pouco máis son todo o que en definitiva, van constituír algúns dos nosos primeiros programas. Nós imos ter cousas como funcións no só accións que fan algo, como dicir Ola, mundo. Nós imos ter loops, cousas que inducen ciclos novo e de novo, así como nós fixo hai pouco coa investigación para Mike Smith. Variables, como na álxebra, se ten x ou y, que poden almacenar un número. Ben, nun programa, pode realmente almacenar máis que números. Pode almacenar palabras e frases e gráficos e outras cousas aínda. expresións booleanas, só perguntas-- si ou non, verdadeiro ou falso. Condicións, para tomar decisións con base nesas respostas si / non. E cousas, a continuación, máis extravagantes como array e temas e eventos e calquera número de outras características, pero todos os que mapear moi ben a moi bloques amigables como este. Esta vai ser unha función, un parte do enigma vermello que di o que o seu nome é-- neste caso, din. E, a continuación, moitas veces, non hai unha caixa branca que pode escribir ou arrastre un valor en. E iso é o que adoita chamado un argumento ou parámetro. É un xeito de cambiar a comportamento estándar dun enigma peza ou unha función para que fai algo personalizado para ti gusta de dicir, Ola, mundo ou ola, Andy é Ola, Jason ou algunha outra frase no seu lugar. Se quere dicir que un lot-- literalmente sempre-- pode tomar outro parte do enigma chamado para sempre e só prensa o dous xuntos como este. E ese ciclo, como a imaxe suxire, significa só dicir Ola, mundo para sempre, de novo e de novo e de novo. Ou, se só quere facelo un número finito de veces, como 50 veces, alí vai ser outro puzzle peza para isso-- repetir 50 veces. Mentres tanto, se quere ter unha variable nesta lingua estamos a piques de xogar con, pode utilizar un bloque de laranxa como este. E esta variable I arbitrariamente chamado i para enteiro. E eu só define-lo igual a 0. E quizais por iso eu, neste case-- este variable-- representa puntuación de alguén nun xogo. Comeza no cero, e cada vez que facer un gol ou algo así, recibe un punto adicional. Pode facer preguntas en perigo. Arrastrar e soltar puzzle pezas nun momento como este, podes facer preguntas como, ben, é i menos de 50? Quizais ten que de 50 puntos para gañar. E así que este sería a pregunta que ía preguntar. Ou, máis xeralmente, podería dicir é x menos y, onde hai dúas variables implicadas? Agora, este é un monte maior a primeira vista, pero realmente non todo o que máis complexo. Esta é só unha combinación de condicións e variables e expresións booleanas para preguntar tres perguntas-- x é menor que y? Se é así, digamos así. Digamos, x é inferior a y. Logo, se x é maior que Y, o resto X debe ser igual a y. E que con Mike Smith, había catro escenarios, aquí no mundo dos números, x ou é inferior a, maior que ou igual a. Todo o que temos son tres garfos na estrada. E despois hai máis extravagante pezas do puzzle como este para cousas como matrices, onde estamos vai ser capaz de almacenar información. Veremos bloques que permiten -Nos a aplicar múltiples, Outra característica que imos usar e entón tamén algo chamado eventos. Pero antes de chegar a ese punto e crear aínda, en definitiva, o noso propio costume partes do enigma, imos realmente abrir o propio programa. Polo tanto, esta é cero. Está dispoñible en scratch.mit.edu. E é benvido para xogar agora ou máis tarde, tamén. Isto acontece por ser a versión offline. Para as persoas que non o fan necesariamente ten gran internet, podes descargar a mesmo software, así. E non hai realmente só tres compoñentes para este software. Na esquina superior esquerda da a pantalla é o tipo de prácticas que cero, que por defecto parece un gato, vive dentro. Pode mover cara arriba, abaixo, esquerda e dereita e facer calquera número de outras cousas, e pode ollar para calquera número de formas baseadas sobre os traxes que atribúe a el. Pero iso é o que imos chamar un Sprite, unha especie de personaxe. E pode ter varios caracteres, como veremos en breve. No medio están todos estes crebacabezas pezas e estas categorías ou palés dos mesmos. Entón, agora, prema en Movemento. E así eu estou vendo todo o movemento relacionados con pezas do puzzle ou bloques, así funcións que teñen que ver con ir cara arriba, abaixo, á esquerda ou á dereita ou algunha outra operación. Pero se prema en Looks, vostede podía ver cousas como o bloque digamos que vimos só un momento atrás. E se eu premer no control, verás cousas como a repetición ea sempre e se o bloque que vimos un momento atrás. E así vai atopar que imos rabuñar a superficie de algúns dos puzzle anacos xuntos, pero é todo moi intuitiva e apuntar e premer. Efectivamente, foi concibido arañazos para os estudantes máis novos para axudar a darlles unha saída para o pensamento creativo. E aínda así marabillosas, é unha pedra marabillosa Stepping exactamente as ideas que imos explotar en C e Python e JavaScript, ben. Do lado da man dereita, finalmente aquí este é, a así chamada zona de scripts. E esta é só a pantalla en branco con que comeza a escribir un programa. E eu vou exactamente isto. Agora resulta que sei onde as cousas son porque eu fixen iso algunhas veces. Pero sei que, baixo Categoría Events, hai esa aqui-- bloque cando a bandeira verde premendo. E teña en conta si reducir e volta aquí no escenario, vidas scratch neste pequeno mundo rectangular, na parte superior de que é un verde bandeira e un sinal vermello. Entón vai e deixar, respectivamente. E entón o que quero facer cando a bandeira verde é premendo? Ben, deixe-me ir ao parecer categoría. E deixe-me ir adiante e arrastrar e soltar iso. E teña en conta, logo que queda preto, son tipo de magnético. Entón, se eu agora deixar ir, que se encaixe conxuntamente agradable e limpo. E eu estou indo a ir adiante e dicir algo como Ola, mundo durante dous segundos. Déixeme reducir e prema agora bandeira verde, e dicir: Ola, mundo. Todo ben. Entón, iso é todo moi ben e bo. Non todo o que emocionante. Imos facelo un pouco máis bonito. E sei que en antelación, risco pasa para vir con algunhas cousas fofas como este. Entón, xogar miado de son ata feito. Entón, imos facelo. [Meow] Aw, iso é encantador. E se eu premer nel novamente-- [Meow] E unha vez máis. [Meow] Pero eu sigo tendo de reanimar cero. Pero podo facer mellor que este. Por que non pode arrastrar tres destes. E agora é tres veces máis encantador. [Miando] OK, en realidade, é un pouco asustado. Entón, necesitamos algo entre alí. Se eu fose a de control, parece que hai realmente un bloque de espera. E así entender se eu pasar o rato sobre há-- e deixe-me facer esta un pouco maior. Se eu pasar o rato, que vai para encaixar no lugar. Entón, agarde un segundo, agarde un segundo. Imos bater bandeira verde de novo. [Miando] OK, algo máis natural, pero non moi eficiente. Entón, iso é correcto o meu programa de meta foi Meow tres veces. Pero non é moi ben deseñado. Eu medio que cortar algúns cantos. Eu teño un pouco preguiceiro. Que se sente como-- o que me parece ter feito mal, que diría? Si? Si, no medio. Audiencia: Usado máis memoria do que o necesario para porque está a usar tantos liña diferente. DAVID Malan: Si, por iso máis liñas. E non sería necesariamente memoria, aínda que pode ser visto como aquela forma. Pero é definitely-- hai redundancia. E eu literalmente tipo de arrastrado e deixou caer as mesmas cousas. E se tipo de extrapolate-- se non é obvio aqui-- ben, como sería Eu Meow 30 veces? Desexa arrastrar e soltar, como, 30 pares de pezas do puzzle. E, por suposto, hai un xeito mellor. E vimos un xeito mellor. Que intuitivamente sería ser o mellor camiño? Si, só tes que usar un loop. Non copiar e pegar. E, de feito, en calquera momento presente semestre, se comezar atopando-se arrastrando e soltando, ou realmente copiando e colando, perigoso costume de entrar, porque este non é só moi doado de manter. Por exemplo, se quero cambiar o son para outra cousa, Teño que mudalo agora, en tres locais, no canto de só un. Xa que, de feito, se eu romper este away-- estou indo só para disociar-lo así. Déixeme coller un bloque de repetición e prema en tres, escriba tres, Xoga algúns destes afastado por só deixar ir. E, a continuación, entender que Non parece que encaixa, pero magneticamente, vai non só encaixar no lugar pero crecer para se axustar á forma. Entón, iso é bo. E agora eu premer xogo. [Miando] Very nice. Todo ben. E agora é moi fácil cambiar, tamén, porque eu só podo cambiar un número nun só lugar. Pero iso, tamén, non é todo o que interesante. Imos realmente ter Cero non miar, pero se mover. Déixeme ir ao Movemento e mover 10 pasos dentro de-- berros, déixeme corrixir isto. Déixeme telo moverse 10 steps-- en realidade, imos non repetir. Déixeme coller un bloque de control, e faga o seguinte para sempre. Para sempre, mover 10 pasos. E prema en Executar. OK. Entón, por sorte, el deixa. En caso contrario, os nenos se ve moi chat cando tipo de perder o seu gato. Pero polo menos eu pode arrastrar Lo de volta á pantalla. Pero iso non é todo o que grande dun xogo ou animación. Sería bo que quizais el saltou para fóra do borde. Entón, o que facemos? O constructo que necesitamos ter Acoitelado decidir ir, pensas que, mesmo se nunca visto cero antes? Si, na parte de atrás. Audiencia: Debe dun Se bloque ou if-then. DAVID Malan: Si, por iso, algúns tipo de bloque if ou if-then. Entón, en realidade, temos un deses aquí. Entón se-- entón déixeme comezar librarse do movemento. Deixe-me facer zoom polo que é máis grande. Así como sobre iso. Para sempre, se Sensing-- nós non vimos isto antes. Eu teño unha expresión booleana. E verifícase se tocar o que? Se tocar a bordo, o que quero facer? Ben, se eu volver a Cámara, Acontece que, oh, eu podo virar. Déixeme arrastrar esta aquí. Por que non vai adiante e virar 180 graos? E agora, déixeme moverse no final. Podería poñer o movemento na o inicio ou o final. Pero, loxicamente, cada vez que eu pasar, eu pretende comprobar, estou tocando a bordo? Estou tocando a bordo? Estou tocando a bordo? Así que, loxicamente, eu me viro en caso afirmativo. Entón, imos bater o xogo. OK. Por iso é un pouco de buggy, por así dicir. E un erro é só un erro nun programa de ordenador. Pero polo menos está a traballar. E, de feito, podo ir aquí. E déixeme facelo non 10 pasos de cada tempo, pero iso é todo animación é. Isto todo é un deseño animado ou mesmo unha película é. Déixeme ir 20 pasos de cada vez. Entón, 20 veces como moitas cousas están a ocorrer unha vez ou dúas veces máis, neste caso. E se está movendo máis rápido. Déixeme pasar a 30. 100. 1000. E está indo moi rápido. E iso é-- si, OK. Entón, agora estamos só a xogar con el. OK, entón buggy. Pero podemos arrastralo lo para fóra do camiño aquí. Pero podemos facer máis divertido con iso, tamén. Como case isto-- está de cabeza para baixo. Pero acontece Scratch-- e non hai, en realidade, Teño que asumen, non académica valor para o que eu estou a piques de facer. Pero se eu abrir o micrófono, imos detelo e facer algo así. Ouch! [Risas] Iso foi encantador. Grazas. Agora, iso é o que a miña voz Parece que cando berrar ouch. Eu non creo que pegamos o riso. Está ben. Déixeme salva como "ai". Imos gardalo como "ai". E agora imos voltar a Scripts. E agora eu need-- veremos, Sound. Oh, xogar ouch son. Entón, se eu estou tocando a bordo, déixeme primeira ouch xogo, e tras pasar. E agora imos poñelas no medio. [Dicir "ai"] Dúas veces máis rápido. OK. Pero é literalmente facendo o que estou dicindo. Por iso, é de feito correcta, é só un pouco aburrido rapidamente. Entón imos engadir algo máis interesante a este. Déixeme realmente abrir un que eu feitas con antelación, apropiadamente chamado Pet o Gato, que fai iso. Aquí está o script aquí. Que isto vai facer en termos ingleses? ¿Que é iso deseñado para facer? Si, imos some-- si? Audiencia: Cando acariñar o gato, el mia. DAVID Malan: Si, por iso, cando acariñar o gato, que vai miar. Polo tanto, noutras palabras, hai agora bucle para sempre aínda, combinado cunha condición, combinada cunha expresión booleana, quedar un par de funcións, o efecto de que, unha vez que eu toco este programa, non é nada acontece ata que eu mover o cursor cada vez máis preto e máis preto e- [Meow] Entón é como acariñar o gato. [Meow] Só unha vez que realmente move o cursor sobre el. Agora, eu tamén instigou non pet o gato, que fai iso en vez. [Miando] Entón, el está só constantemente miando. [Miando] Pero se eu ficar moito close-- [Miando] [ROAR] Entón, como funciona isto? Agora eu só teño un Bidireccional bifurcación na estrada. Se tocar punteiro do rato, logo reproducir o son león. Else só reproducir o son Meow, e despois esperar tres segundos para que é unha especie de facer moi tranquilamente. Todo ben. Entón esta é a combinación máis algunhas ideas fixas. Imos dar un ollo neste exemplo Eu chicoteado ata chamadas threads. E este é fundamentalmente diferente, xa que aproveita unha característica de moitas linguaxe de programación chamada temas, a capacidade de un programa de literalmente facer dúas cousas á vez. En realidade, estes días se está a usar Google Docs ou Microsoft Word, eo seu documento está constantemente a ser verificadas ortograficamente, aínda que type-- ou prema Ctrl-P ou Control-P e algo de impresión, está imprimindo mentres continúa a escribir. Programas de hoxe pode realmente facer múltiple cousas á vez, así como en perigo aquí. Entón, aquí, teño dúas sprites agora, un paxaro e un gato. E se eu premer en cada un dos Os caracteres nun de cada vez, Vexo agora o paxaro de roteiros na dereita superior. Agora vexo o gato. Paxaro, gato. Entón, cada un deles ten o seu propio script. Pero o aviso previo, o que parte do enigma que ambos comezar? Cando a bandeira verde premendo. E paxaro, cando a bandeira verde premendo. Entón, cando fai clic na bandeira verde, ambos os scripts ou programas van executar en paralelo. E notará que o paxaro é só estupidamente saltando fóra do borde. O gato claramente foi programado cunha vantaxe estratéxica. e- [ROAR] Todo ben. Así o gato colleu o paxaro neste caso. Por que é iso? Ben, primeiro edital só temos o paxaro só descoidada indo a este lugar de inicio, e logo, sempre, se non tocar o gato, basta mover. E se está no bordo, ir. E só mover. E se está no bordo, ir. Pero o gato, mentres tanto, Ten algunha lóxica adicional que di isto-- primeira, só así que este non é completamente tendenciosa contra o paxaro, entender que eu teño usou unha peza do puzzle verde alí que realmente escolle un número aleatorio. Unha característica de moitas linguas é dar vostede números aleatorios ou pseudo-aleatorios. Polo tanto, neste caso, o gato inicialmente escolle un número aleatorio entre, como, 90 graos e 180 graos, esencialmente, de xeito que hai un pouco de varianza. E, a continuación, para sempre, se tocar o paxaro, reproducir o son león. Se non, pode apuntar para o paxaro. Apuntan ao paxaro. Apuntan a ave, que é un parte do enigma en si mesmo neste caso. Ben, podemos facer outra cousa aquí. Déixeme abrir o programa eventos aquí. E aquí temos de novo dous sprites, que se parecen con estes dous bonecos aquí. E o que é interesante aquí é iso. A cara laranxa ten iso conxunto de pezas do puzzle aquí. Sempre facer o following-- Se a barra de espazo é presionado, logo dicir, Marco, e logo transmitir un evento. E mentres tanto, a cara azul ten aquí isto-- cando recibir o evento, din Polo. Así, verifícase en risco e noutras linguas, hai formas para dous programas ou dous guións, neste caso, a intercomunicación de xeito que cando preme a barra de espazo, di Marco. E o outro escoita que, por así falar, e di Polo en resposta. Así, pode escribir programas que realmente interactuar deste xeito. E se eu fai iso de novo, Eu ata creo variables, só usando un Sprite neste caso. Este é especialmente molesto. [Barking SEAL] Agora, teña en conta no lado dereito temos algunha lóxica adicional aquí. ¿Como deixar este selo de latir? [Barking SEAL] Parece que na man dereita banda é o que hai de tocar o son. Pero é só xogar un soar o que é verdade? Un laranxa variable-- block-- silenciado é cero. ¿Como cambiar silenciado para ser 1, é dicir verdadeiro, facer este silenciado? Ao parecer, o outro guión, podo preme a barra de espazo, e agora para. Así, podemos ter a intercomunicación mediante scripts, así, por só compartir unha variable do outro lado os dous como este. Agora, iso non é todo o que interesante. Imos ir adiante e facer, e combinar moitas destas ideas con este programa aquí. Antes de facelo, pero, Como cerca dun voluntario? Déixeme aproveitar a presión de min porque eu realmente non xogar este xogo. Imos ter alguén que non teña visto antes. Ten que ser cómodo benvida no escenario aquí, diante das cámaras. OK, imos para arriba. Moi valente. Como te chamas? Idris: Idris. DAVID Malan: Sentímolo? Idris: Idris. DAVID Malan: Idris, pracer en coñece-lo. Imos cara arriba. E agora, no seu propio teléfono móbil teléfono, xoga Galiza ir? Idris: No. DAVID Malan: Serio? Idris: Yeah. DAVID Malan: OK. Todo ben. Ben, pracer en coñece-lo. Veña ata aquí. Eu tampouco. Entón, imos descubrir xuntos como xogar este, que alguén realmente fun e aplicado en risco cambiando o gato para esencialmente personaxes diferentes todos xuntos. E se eu fullscreen iso aquí, imos para ver o seguinte xogo xuntos. Aínda se está cargando, aínda que leva. Imos. Déixeme facelo. Imos. Este xogo é tan grande que caeu. Estado de repouso. Probe isto unha vez. Imos. Todo ben. Alí imos nós. OK. bandeira verde. Entón, imos alí. [Reprodución de música] Escolla o nivel medio aquí. Preme o individuo azul alí. Todo ben. E pode usar a frecha keys-- arriba, abaixo, esquerda, dereita. Agora, imos considerar como facemos isto-- e despois ir despois de que o personaxe alí. Yep. E agora, prema nel co rato. Oh si. Mover. Onde está a frecha? Aquí vai. Prema alí. Si. Todo ben. Entón, agora, eu dixen que ten unha Pokébola, que, se premer nel, que vai facelo. Moi bo. Na práctica por hoxe, atopar esta versión do xogo de en realidade, non é moi difícil. Entón, se quere ir de novo aquí, camiñar ata esta Pokébola. E, a continuación, ir tomar un dereito. Proba premer sobre ela. Oh, en realidade, iso é a tenda, aparentemente. OK tan preto diso. Nunca fixen iso antes. Quizais ir esta cousa aquí. Oh, alí vai. Espera, hai unha alí. Oh, non hai outra. OK. Down. Si, prema. OK, iso é moi fermoso. OK, moi ben feito. Este xogo non é moi difícil. OK. Parabéns. Aquí temos unha CS50 bola de estrés para ti. Pero considere por un momento que algúns dos temas están alí. Máis fácil do que o xogo real, aparentemente. Pero todos temos en curso aquí é un personaxe que probablemente ten algún tipo do circuíto asociado con el. Non é un gato. É ese personaxe no seu lugar. E ese ciclo é só constantemente dicindo si frecha para arriba presionado, se frecha para abaixo premida si frecha cara á esquerda ou á dereita preme arrow presionado, subir ou abaixo ou cara á esquerda ou á dereita. Ou se hai outra parte do enigma alí que di ao tocar outro sprite, ao tocar un dos personaxes a Pokébola, se tocar, logo facelo. Así, todas as ideas que temos benvida a empregar ata agora realmente pode só ser aplicado nese particular contexto para xogar este xogo, tamén. Deixe-me ir adiante e puxe -Se outro aquí, en realidade. Deixe-me ir adiante e puxe -Se, digamos, iso. Isto é algo que remixado. Feito por un dos nosos estudantes en Cambridge, e entón eu pase e cambiou practicamente todas as instancias de Harvard para Yale este tempo. Será que alguén quere competir contra os Ivies aquí noutra acumulación de todas estas ideas? Veña, si. Como te chamas? DINA: Dina. DAVID Malan: Adina? DINA: Dina. DAVID Malan: Dina, imos para abaixo. Todo ben, Dina. Polo tanto, este xogo está máis máis difícil, porque neste xogo, hai variables que están a ser utilizados, así que están constantemente a manter o control de que nivel está en xogo. Entón pracer en coñece-lo. Vén por aquí. E así, o obxectivo aquí é clasificar de facer o seu camiño a través dun labirinto que este estudante aplicado. E só para definir o escenario, cada destas imaxes na pantalla é a súa propia Sprite, o seu propio carácter. Entón, eses foron por gatos estándar, pero o estudante cambiou a eles para os distintos logotipos Heras aquí. E entón podes ver que só usando condicións e loops e as funcións e moito máis, ten iso. [Reprodución de música] [MUSIC - MC Hammer, "U non pode tocar  Este "] Si, OK. Si, continúe. Primeiro é moi fácil nivel. Vostede só ten que ir alí. Pero, de novo, considerada, este é só un loop de escoitar a frecha keys-- arriba, abaixo, esquerda, dereita. E agora un bloque de detección. Very nice. [MUSIC - MC Hammer, "U non pode tocar  Este "] Very nice. [MUSIC - MC Hammer, "U non pode tocar  Este "] Very nice. Moi fácil, carmesim. Todo ben. Levels-- uh-oh. [MUSIC - MC Hammer, "U non pode tocar  Este "] E, de novo, nestes tres cristas de Harvard, só ten lóxica dicindo que no bordo, salto. [MUSIC - MC Hammer, "U non pode tocar  Este "] OK, o que está facendo é máis interesante do que iso. Very nice. Very nice. Uh-oh. [MUSIC - MC Hammer, "U non pode tocar  Este "] Eu creo que ten que sacrificar-se. [MUSIC - MC Hammer, "U non pode tocar  Este "] Rápido! [MUSIC - MC Hammer, "U non pode tocar  Este "] Niza. Está ben. Vai busca-la. Si, si! Very nice. [Cheering] [MUSIC - MC Hammer, "U non pode tocar  Este "] Nice! [MUSIC - MC Hammer, "U non pode tocar  Este "] Entendín. Imos alí! Segundo o último nivel. [MUSIC - MC Hammer, "U non pode tocar  Este "] Todo ben. [MUSIC - MC Hammer, "U non pode tocar  Este "] Si. Bo uso de variables aquí. [MUSIC - MC Hammer, "U non pode tocar  Este "] Si. [MUSIC - MC Hammer, "U non pode tocar  Este "] Niza. [MUSIC - MC Hammer, "U non pode tocar  Este "] Está ben. Debemos chegar ao final. Non. Oh! [MUSIC - MC Hammer, "U non pode tocar  Este "] Pode realizar tarde hoxe, pero que vai valer a pena. [MUSIC - MC Hammer, "U non pode tocar  Este "] Podes facelo! Yeah! [Cheering] [MUSIC - MC Hammer, "U non pode tocar  Este "] Este é realmente difícil. [MUSIC - MC Hammer, "U non pode tocar  Este "] Imos darlle dúas vidas. podes facelo? [MUSIC - MC Hammer, "U non pode tocar  Este "] Todo ben. Como sobre unha gran rolda de aplausos, con todo. Chegou ao segundo ao último nivel. Grazas. [Aplausos] Polo tanto, esta é só para dicir o que pode facer con estes tipos de cousas. E entender, tamén, que cando pezas do puzzle non exist-- e, de feito, que vai ser un das potencias co primeiro problema conxuntos e é beyond-- realmente crear o seu propio. E este é só un fragmento dun dos exemplos vai ser capaz de xogar con liña, onde se non construír en risco algo así como unha peza de puzzle da tose, realmente pode facelo só. E entón todo isto e moito máis espera. E só para pintar unha final foto de feito o que é á fronte da tenda para a clase para ti, baseado nalgunhas fotos de compañeiros pasado, permitan-me que diminúa as luces unha última vez e amosar-lle CS50. [Reprodución de música] Todo ben. Isto é todo para CS50. O bolo é agora servido. [Reprodución de música]