[MÚSICA DE XOGO] 

[Aplausos] 

David J. Malan: Este é CS50, Introdución da Universidade de Harvard ao intelectual empresas de informática ea arte da programación. Agora, se está entre aqueles que cada ano está sentado aquí cun pouco de nerviosismo na súa mente, tales que non pensa que é aquí, Pensas que a maioría alguén sentado ao seu redor sabe moito máis do que vostede, é de feito máis cómodo que no ordenador ciencia ou ordenadores de xeito máis xeral, enténdese que o 78% dos alumnos que agora tomar CS50 ten ningunha experiencia previa. 

De feito, hai 100 puntos alí na pantalla, 78 dos cales son verde continuo, o que significa que, se está entre ese grupo demográfico, están en moi boa compañía de aquí en diante. E se está en lugar entre os 22% dos estudantes que fan de feito CS50 ter experiencia anterior, sexa en ensino medio ou algún outro programa, entender que, tamén, vai ser contestada no curso. 

Non só temos diferentes temas para os alumnos menos cómodo e máis cómodo iguais en seccións, tamén chamado edicións de hackers de máis conxuntos de problemas que vai desafiar os alumnos con esta experiencia adicional para explorar material semellante pero a partir dun máis perspectiva sofisticado. 

Pero o que é ciencia da computación? Ben, en definitiva, o que vai importa como explorar este campo non é tanto que acaba en relación aos seus compañeiros de clase, pero onde aínda acabar en semana 12 versus onde comeza aquí a semana cero. Agora ordenador science-- ben, imos chaman a ciencia da computation-- onde a computación é realmente só unha xeito elegante de dicir, tendo algunha entrada, producir algunha saída, e facelo a través de algoritmos que executan, conxuntos de instrucións para resolver problemas neses inputs de forma a producir preto de saída ou solución na que che interesa. 

Entón, recentemente, tivemos oportunidade de viaxar fóra a California para atoparse cunha alumna. O nome dela é Susan Wojcicki. E ela quere falar para ti aquí en vídeo para testemuñar o quão aplicable mesmo só unha mostra do ordenador ciencia no nivel introdutorio pode ser. Mesmo se non ir a continuar ciencia da computación como un campo, ou mesmo a enxeñería, ou STEM máis xeral, vai ver, en realidade, como un correcto Claro que tanto influíu a súa vida. E ela só tomou cando estaba no último ano aquí na facultade de Harvard. 

Se puidésemos diminuír as luces para Susan. SUSAN Wojcicki: Ola, mundo. Estou Susan Wojcicki. Eu son o CEO de YouTube. E tomei CS50 cando eu era un senior na Universidade de Harvard en 1990. Eu era realmente unha historia e gran literatura. 

E o meu verán Júnior, Eu entender que talvez quería aprender algo sobre ordenadores. E así, eu volvín. Tomei CS50. Foi difícil, pero foi o máis clase incrible que eu tomei. 

El cambiou o xeito no que eu penso sobre todo. E cando eu me forma en Harvard en 1990, fun para o Silicon Valley. E eu teño un emprego. E eu teño a traballar en tecnoloxía desde entón. DAVID J. Malan: Agora que Susan non mencionou neste vídeo, que era, en realidade, na súa garaxe que o propio Google foi fundada por Larry e Sergey. 

Agora tamén estendeu a man para os nosos amigos en code.org, unha organización que en relación ao ano pasado foi levar a xente particularmente animado sobre ciencia da computación e de programación, en particular. Pero é importante ter en conta que a programación non é ciencia da computación per se. A ciencia da computación non está programando. No canto de programación é só unha tool-- que todos vostedes será moi ben familiarizado con end-- semestre de tal forma que pode non aplicarse só para os futuros cursos de CS pero para o que quere que os campos de onde está a benvida, en humanidades, ciencias sociais, natural ciencia, ou similares. 

De feito, facer que algúns outros ex-alumnos e os seus compañeiros para falar coa aplicabilidade do campo que o espera. 

BILL GATES: Eu tiña 13 anos cando primeiro ten acceso a un ordenador. 

Jack Dorsey: Os meus pais me comprou un Macintosh en 1984 cando tiña oito anos de idade. 

Mark Zuckerberg: Estaba na sexta serie. 

COLUMNA 1: Eu aprendín a programar na facultade. 

Ruchi Sanghvi: primeiro ano, primeiro semestre, Introdución á Ciencia da Computación. 

BILL GATES: Eu escribín un programa que xogou tic-tac-toe. 

DREW HOUSTON: Creo que foi comezos moi humildes. Creo que o primeiro programa Escribín preguntou cousas como: cal é a súa cor favorita? Ou cantos anos tes? ELENA SILENOK: Aprendín primeiro como facer un círculo verde e un cadrado vermello aparecerá na pantalla. Gabe Newell: O primeiro xa que eu realmente tiña algo chegar e dicir: Ola, mundo. E eu fixen un ordenador facelo. Foi simplemente incrible. 

Mark Zuckerberg: Aprender para o programa non comezou como querendo aprender todo de ciencia da computación ou tentando dominar esta disciplina ou algo así. El só comezou porque eu quería facer unha cousa simple. Quería facer algo que Foi divertido para min e para os meus irmás. 

E escribín este pequeno programa. E entón, basicamente, só engadido un pouco a el. E entón, cando eu precisaba para aprender algo novo, Eu olhei para arriba, sexa en un libro ou en Internet, e, a continuación, engade un pouco a el. 

DREW HOUSTON: Realmente non é diferente de tocar un instrumento ou algo ou practicar un deporte. DAVID J. Malan: Todo ben. Entón, nós imos agora, en realidade, mergullo un pouco máis fondo. Cales son esas entradas e saídas que estamos a falar aquí? 

Entón, que tal algo sinxelo? Probablemente sabe, mesmo se ten ningunha familiaridade coa informática que sexa, de que os ordenadores de algunha maneira usar e comprende só ceros e uns. Pero como é que isto pode, eventualmente, ser dada como escritorios como portátiles de hoxe e do mesmo xeito pode facer? 

O ADN do día, a única alfabeto que comprendan é un cero ou un un. Ben, considere isto. Nós, os seres humanos, tenden a utilizar a sistema decimal. "Decembro", que significa 10. E iso é 10 porque temos 10 díxitos, de 0 a nove. 

Agora, os ordenadores, por contraste, tenden a usar binario. "Bi" significa dous. Así, eles tenden só cero e un para usar. Pero acontece que, aínda só con ceros e uns, que é suficientemente grande alfabeto coa cal a representar máis calquera peza de datos que quere, se é un número, se é unha carta, se é unha gráfica ou de vídeo na pantalla. 

Considero, por exemplo, como nós, seres humanos normalmente interpretar ese número aquí. Este é só tres díxitos, un, dous, tres. Pero sabemos que este número innately agora como 123. Pero por que isto? 

Ben, se pensas que volta quizais para a escola, probablemente foi ensino a pensar en estas cifras como, en columnas onde un é na orde dos centos lugar, a dous está na casa das decenas, e os tres está na casa das unidades. Por que iso é realmente útil? Ben, pense sobre o aritmética super sinxelo que todos temos sido facendo desde hai anos. Efectivamente, se ten un na casa dos centos, Vostede fai a matemática rápida 100 veces 1 máis 10 veces 2-- porque dous é na casa das decenas lugar-- máis 1 veces 3-- porque tres é na casa das unidades. Así, é evidente que, se realmente multiplicar tanto, o que realmente estamos representando con este pattern-- dous três-- é de 100 máis 20 máis 3, o que, naturalmente, é de 123. 

Agora binario, e os ordenadores realmente, fundamentalmente falan a mesma lingua o que facemos. Eles só teñen un alfabeto menor. Así, os ordenadores só ten ceros e aqueles á súa disposición. Así, mentres que nós seres humanos temos esencialmente potencias de 10 en cada unha destas places-- 10 para o cero, a 10 a un, dez para os dous, dándolle 110 e 100 respectivamente. 

Como os computadores só ten dous valores que se poidan entender, cero e un, eles teñen que usar valores distintos nesas columnas, un, dous, catro. E se continuou, oito, 16, 32, 64, e así por diante. Pero o patrón e o mentalidade é exactamente o mesmo. 

Entón, por esta lóxica, calquera, como sería Vou sobre o que representa o número un par en? Se nunca sequera pensou en iso antes, o que é o seu intestino dicir? 

Audiencia: One. DAVID J. Malan: One. Exactamente. Só necesitamos un un no queridos lugar porque os ceros suficiente para darnos nin un, nin un de catro dous. Entón, un veces un é igual a un. Agora as cousas están un pouco interesante. Se eu queira representar no binario número dois-- pero, de novo, aínda que nunca fala esa lingua, antes, como é que imos representar en binario O valor que os humanos saben como dous? Cero un cero. Basta pór un no columna que quere. 

Agora está quedando moi fácil probablemente agora. Entón, se eu queira representar três-- hai columna tres. Entón, de novo, eu agora pode engadir eses valores xuntos, poñendo un aquí. Polo tanto, 2 veces 1 máis 1 veces 1 é, evidentemente, 3. 

Agora as cousas están un pouco de diversión quen agora se fixo cero. E para representar catro, entendo iso. E se aumentar lentamente aqui-- que sería cinco. Este sería seis. Este sería sete. 

Pero agora me parece atopou con un problema. Cómo podería ir sobre a representación eight-- sería o seguinte valor. Si, por iso necesitamos un novo bits. E, de feito, se ten escoitou esta frase antes, anacos, iso é só a abreviación de díxito binario, cero ou un. 

E así acontece que eu estar representando só tres deses anacos aquí. Pero se eu tivese un xeito de non gardar tres diferentes bits, pero catro, seguramente podería representar oito, nove e despois, e logo 10, e aínda máis e máis. 

Pero que chama entón trate como podemos ir sobre o que supón estes cousas en primeiro lugar. É unha cousa para deseñar los aquí en un slide, pero como representa-los se é un dispositivo mecánico? ¿Que é un ordenador que fai a representan as entradas e saídas que fundamentalmente axustar computación ao final do día? 

Ben, o que dicir de algo super sinxelo coma este? É só unha lámpada. E podo accionar esta lámpada para ir xirando un pouco de electricidade on e permitindo que os electróns a fluír a través, que cambia a súa estado ou o seu valor, por así dicir. Por exemplo, esta é unha lámpada de mesa vella escola aquí con un tal lámpada dentro del. E agora non é realmente facendo algo útil. Pero así que eu liga-lo a unha toma de corrente e, a continuación, usar ese switch-- ou podemos ata chamalo dun transistor ou pensar nel como such-- Agora podo representar tanto ese valor, se a lámpada do obviamente, fóra, ou ese valor. Este valor é ese valor. Este valor e así por diante. 

Entón, dentro dun ordenador, presuntamente, son pezas moi pequenas de hardware, pero que ao final do día simplemente ter usar electricity-- quizais capturar ele-- e logo manter algo ou manter algo fóra. Por suposto, este non é particularmente interesante para facer con só unha única lámpada. 

De feito, como alto podo contar en binaria con esta lámpada de mesa aquí? 

Audiencia: One. 

DAVID J. Malan: un, non? Necesito máis lámpadas de mesa se eu Realmente quere contar superior. Pero podemos facer mellor que iso. Porque as lámpadas que poñemos nestas cousas son realmente extravagantes lámpadas que antigamente permitía. E son, en realidade, lámpadas en rede. E grupos de empresas facer isto nos días de hoxe. 

Pero parece que este en particular ven con un recurso a través do cal pode cambiar as súas cores. Así, por exemplo, se adornada seu cuarto do dormitorio con algúns destes luz lámpadas, dependendo do seu humor, dependendo de quen vén, Dependendo do tempo, dependendo do tempo do día, pode realmente cambiar as cores as lámpadas no seu cuarto. E iso é porque estes luz lámpadas e outros como el ten o que fai chamado dunha API, unha aplicación interface de programación, que é un tema co que estará ben familiarizado con ata o final do semestre. 

E esta é só unha fantasía, forma críptica de dicir: pode programar estes luz lámpadas para facer o seu tiro. Pode enviar-lles mensaxes así como, un ser humano, Pode enviar unha mensaxe a un servidor web dicindo, dáme a noticia de hoxe ou dar-me o meu correo electrónico. 

Pode enviar máis arcano mensaxes para estas lámpadas quere dicir, activar e desactivar. Pero isto non é tan interesante. Pode dicir, chame vermello, conectar verde, chame azul, todas coa mesma lámpada. E aínda pode, con algo máis savvy, din, Xire se para o azul cando é un día sombrío fóra, por exemplo. É realmente fixar en unha API tempo e descubrir que o tempo é, ou o tempo do día, ou outros tales gatillo. 

Así, en realidade, dous Propios membros do equipo do CS50, Dan Bradley e Ansel Duff aquí, por favor adquiridos nós unha morea desas lámpadas. E eles construíron CS50 da primeiros bulbos xa binarios onde temos representado aqui-- con estes pequenos magnets-- brincallón os distintos espazos reservados nos aludido só un pouco atrás. 

Entón ata aquí é o queridos lugar, dous, catro. E nós non vimos máis alto do que iso. Pero, por suposto, son potencias de dous. Oito, 16, 32, 64 e 128. Entón, se eu agora quero ser un pouco afeccionado que o uso desta opción da vella escola, Teño aquí neste iPad unha interface sinxela super que Dan Bradley, ex estudante e agora ensinando compañeiro, programado empregando algún HTML e JavaScript, que son de traza e programación idiomas respectivamente. E pode ser ver-- mesmo na traseira-- hai unha gran vantaxe e unha gran desvantaxe, un botón para cada unha destas lámpadas. E o que iso me vai deixar non é, por exemplo, prema no signo máis e agora representan, de Por suposto, o que número? Unha. E podo bate-lo de novo. Dous. Tres. Catro. Cinco. Six. Sete. 

E aquí agora temos que rollover, pero temos un cuarto bit este tempo, entón agora temos oito. Entón, poderíamos facelo por algún tempo. De feito, como un aparte, ; alto poderiamos contar? Calquera? 

Audiencia: 255. 

DAVID J. Malan: 255, non? Non te preocupes moito coa matemática para agora, pero que é un número moi decente. Pero, en realidade, non vinculada só cantas pezas de información, como unha carta ou un gráfico que podería representar. 

Pero non importa agora. Eu estou indo a ir adiante e transformalo los todos fóra. E se eu puidese, gustaríame pedir un voluntario, o noso primeiro volunteer-- Oh, hello-- no escenario. O problema é que ten que ser cómodo aparecendo, como claramente están diante de todos os seus compañeiros de clase, , Así como en internet. E déixeme mirar un pouco máis aló o-- E aquí na camisa branca? E entregarse. Imos cara arriba. Cal é o seu nome? 

Audiencia: Jackie. 

DAVID J. Malan: Jackie. Jackie, imos cara arriba. Entón, o que hai é tamén neste iPad é un botón chamado Modo de Xogo. E este modo de xogo é me vai permitir a entrada anticipadamente un decimal especial número, as cifras que os seres humanos son familiarizado. E entón será desafiado aquí para usar os botóns na para unha top-- cada un destes bulbs-- para realmente descubrir o estándar de lámpadas que representa o número en cuestión. 

E eu sinto moito, o que era o seu nome? 

Audiencia: Jackie. 

DAVID J. Malan: Jackie. Todo correcto. Pracer en coñece-lo. 

Entón deixe-me ir adiante e no programa para que o mundo vexa o número 15. Imos mantelo pequeno a principio aquí. E eu estou indo a entrar en Modo de Xogo. E eu vou especificar, ofrécenos o número 15. 

Está ben. E agora, con todo watching-- se quere destacar, quizais deste xeito, porque vai aliñar up-- dalle cambiar entre os oito botóns na parte superior para conectar as lámpadas en ou fóra como ve o axuste. 

Audiencia: Aceptar. 

DAVID J. Malan: E sen trampas por bater máis de 15 veces. Oh, nós imos facelo. 

Audiencia: Oh, espera. Eu sinto moito. 

DAVID J. Malan: Tamén pode activar as lámpadas en forma individual con cada un destes botóns na parte superior. Audiencia: Oh, Aceptar. Polo tanto, sería como-- DAVID J. Malan: Aceptar. Polo tanto, agora temos oito. Entón, imos facer unha pausa para o público a participar aquí. O número é Jackie representando na actualidade? 11. Entón, nós estamos case alí. E excelente. Polo tanto, temos o noso primeiro gañador. Parabéns. 

E nós cremos que teriamos algúns agasallos fabulosos. Se desexa ser un deses dormitorio cuarto aquí no campus, pódese ter un proxecto final usando agora esta API, grazas a Jackie. Entón agora-- 

[Aplausos] 

--if puidésemos, unha tal arredor deste. Oh, agora todo o mundo quere algunhas lámpadas. Para a chamada edición hacker imos rampla lo a-- oh, si, evasiva. Creo que está chegando agora se a súa man está indo para abaixo. Cal é o seu nome? 

Audiencia: Alex. DAVID J. Malan: Alex, veña aquí. Así, para Alex, imos programa dun número lixeiramente maior. Quizais en orde. O número 50. 

Audiencia: Aceptar. DAVID J. Malan: Pero como Eu disse-- e que pode quero estar aquí para que que os botóns se aliñan como sería expect-- pero eu fixen chamar esta edición hacker. Assim-- boa sorte! 

[Risas] 

Vai ser capaz de transformar los se você-- Aceptar. Excelente. Marabilloso. Parabéns. 

[Aplausos] Creo que eu debería pagar. Parabéns ao Alex tamén. Está ben. 

Así, o takeaway final aquí está espero, sinceramente, o simplicity-- o sinxeleza con que pode obter algunha luz agradable lámpadas, aparentemente en [inaudível]. Pero eles representan, en definitiva, as mesmas ideas co cal nós, seres humanos son xa moi familiar. Entón, o que pode próxima paso estar na progresión de tratar de facer algo interesante con datos e representando as entradas que non son só números, pero son talvez cartas ou máis? 

Ben, acontece que o mundo da informática, por moitos anos, simplemente adoptou un arbitrario, senón un estándar consistente que mapea números para as letras do alfabeto. Por exemplo, aquí está un fragmento do mapeamento. Chámase ASCII. A-S-C-I-I. E iso é simplemente unha táboa que mapea letters-- maiúscula neste caso-- en números decimais. 

Pero cal é a implicación? Ben, se o quere representar algo así como un correo electrónico ou texto nunha páxina web, obviamente quere amosar as letras humanos da alfabeto, non números. Entón, dependendo do contexto do programa que un usuario está a usar, se é un navegador ou cliente de correo electrónico, números pode ser certamente interpretada como letras. É dicir, os patróns de bits pode facilmente ser interpretada como letras. 

E entón o que podemos ter é a letra A ser representada como 65, B sendo representado como 66. Entón, se temos unha super palabra curta, como ola, o que un ordenador faría en última instancia tenda en decimal, pero realmente en binario, usando unha secuencia de bits, panca un pouco de electricidade, de algunha maneira, serían os dous números 72 e 73. 

Pero o patrón de bits que representa os valores. Polo tanto, estas son, entón, como podemos representan as nosas entradas e saídas. E basta dicir, podemos facer representacións máis complexas en definitiva, con cousas como gráficos, vídeos, música e moito máis como veremos a finais deste prazo. 

Entón, iso só deixa entón algoritmos, estes conxuntos de instrucións co cal estamos resolvendo problemas reais. Estamos pasando en insumos para algoritmos. E eses algoritmos están producindo saídas, saídas espero correctas e, esperamos, tamén, eficientemente reunidos saídas. Noutras palabras, é unha cousa aplicar algo correctamente. É outra cousa para aplicar algo ben ou eficiente. 

Por exemplo, unha demostración que estamos Apaixonado por no curso é este. Pero estas cousas están quedando cada vez máis difícil de atopar. Pero esta é realmente unha vella escola libro de teléfono, dentro do cal son 1.000 páxinas, máis de nomes e números de teléfono. E se eu quixese mirar para arriba alguén nesta lista telefónica, Podería simplemente facer unha algoritmo moi inxenuo. Podería abrir a primeira páxina, e Podería comezar a buscar, por exemplo, alguén chamado Mike Smith. E se non está na primeira páxina, que acada para o segundo, e, a continuación, para o terceiro, e logo para o cuarto, e así por diante, ata que eu finalmente atopar Mike Smith. 

Agora é que o algoritmo correcto? 

Audiencia: Si. 

DAVID J. Malan: Yeah. Se está alí, eu vou finalmente atopalo. Pero non é, sen dúbida, moi eficiente, seguro que non é rápido, porque, meu Deus, por que eu son perdendo meu tempo Flipping a través de todas estas páxinas cando podía certamente facelo físicamente máis rápido? 

Ben, unha pequena optimización, a fin de falar, pode non ser unha páxina de cada vez, pero dous, catro, seis, oito, 10. Aínda correcto? 

Audiencia: Non 

DAVID J. Malan: Polo tanto, non se eu para exemplo saltar Mike Smith. Pero mentres eu volver pedal unha páxina, se eu superar el, quizá poderiamos resolver o que poderían ser unha pegadinha. 

Pero será que é mellor? É máis rápido? Quero dicir, si. É, literalmente, dúas veces máis rápido se eu facer dúas páxinas de cada vez. Entón, se eu orixinalmente tiña 1.000 páxinas, agora eu só teño que virar 500 veces, non é total de 1.000 páxinas para obter potencialmente, no peor caso ao final do teléfono libro, en que alguén como Mike Smith ou alguén con un nome máis tarde pode realmente ser. 

Pero, por suposto, nos os seres humanos non son certamente vai estar facendo iso, certamente non neste momento das nosas vidas. ¿Que é un razoable humana probablemente vai facer? Audiencia: Vaia directo para The9 S de. DAVID J. Malan: ir directo ao S do? ¿Como ir directo ao S do? 

Audiencia: Rip-o ao medio. DAVID J. Malan: Ben, non hai ningunha cita. Entón, si, se houbese de feito unha etiqueta ou unha guía pegajosa para S, debemos ir directo alí. Pero é moi inócuo. Entón, o mellor que podo facer é máis ou menos á sección S ou que máis ou menos para o medio. Pero o principal argumento agora-- ea intuición que tomou a concedido por anos probably-- é que o que fai agora sabe sobre este problema? 

Audiencia: [inaudível] 

DAVID J. Malan: Mike Smith é certamente non desa metade do problema porque Smith vén despois do medio que é aproximadamente o punto M, parece ser. Entón, como pode ver en Visitas, agora podemos literalmente rasgar este problema á metade. Audiencia: Woo! DAVID J. Malan: É cada vez máis doado. [Aplausos] Alí vai. [Risas] E agora eu fundamentalmente teñen o mesmo problema, pero é, literalmente, a metade do tamaño. Eu aínda estou buscando por Mike Smith. E eu ouso dicir, eu aínda podo buscalo, do mesmo xeito, dividir o problema en metade de novo, rasgando o problema de novo ao medio, que agora déixame con un problema de un cuarto do tamaño, xogar dramáticas que media de distancia, e Repita este proceso unha e outra vez e de novo, ollando para abaixo en cada punto para ver se o Mike é en Smith a páxina en cuestión. 

Agora, se eu fai iso dereito, en definitiva, eu vou atopar-me con só unha páxina na que Mike Smith é se está de feito no libro de teléfono. Por suposto, eu podería nunca chamar Mike novo. Pero o punto aquí é que se comezou a con 1.000 páxinas, o meu primeiro algoritmo, pasar páxina, quizais 1.000 vezes-- definitivamente menos porque é un nome de S e non un nome de Z, pero como moitos como 1.000 páxinas, potencialmente. 

Segundo algoritmo, mellor. 500 páxinas. Terceiro algoritmo, con todo, cantos pasos sería el levar a dividir unha páxina 1000 Teléfonos ao medio así? 10, máis ou menos. Entón, só por navegar que Teléfonos, mergullo e conquistando, por así dicir, 10 veces, farei meu camiño abaixo a só unha única páxina. 

E así podemos capturar esa intuición agora algo gráficamente se considerar só Neste gráfico super sinxelo. Estamos no eixe x, ou horizontal eixe, é o tamaño do meu problema, o número de páxinas no libro de teléfono. E científicos da computación xeralmente quere chamar o tamaño dun problema n, no que n é só unha variable que represents-- neste caso-- número de páxinas. 

O eixe y vertical, ou, aquí está será o tempo para resolver, quizais o número de viradas de páxina, quizais o número de segundos ou minutos, independentemente súa unidade de medida é. E así esta liña vermella representa o primeiro algoritmo, porque hai un 1-1 relación entre o número de páxinas e cantidade de tempo que leva. 

Se Verizon dobra o número de páxinas lista telefónica o ano que vén, miña carreira tempo-- o tempo necesario para realizar aquel primeiro algorithm-- dobra no peor dos casos. Pero o segundo algoritmo, onde estou lanzando a dous, require menos tempo para un determinado problema de tamaño. Entón, se eu tivera tanto, moitos páxinas aqui-- aviso que a liña amarela suxire menos tempo para resolver. E, de feito, representa, imos dicir, n máis de dous. 

Pero o que é a forma de terceira e curva final, vai parecer? Si, é, en realidade vai look-- I Non sei o que ía dicir. Pero imos ver o que ía dicir. 

Audiencia: Así. 

DAVID J. Malan: Vai parecer este, un exactly-- slope-- logarítmica no que ten esa inclinación curiosa. Xa non é unha liña recta. E o que é interesante sobre iso é que aínda que o gráfico está cortada, pode extrapolar no seu importa que esa liña verde non é vai aumentar en altura todo o que moito a medida que avanzar aínda máis debaixo dese eixe horizontal. 

De feito, Verizon, por exemplo, pode dobrar o número de páxinas no teléfono libro entre este ano eo próximo ano desde 1000 a 2000 páxinas, pero non é gran cousa. Con esta terceira e última, hai un algoritmo intuitivo de dividir e conquistar. Vai me levar cantos máis os pasos o próximo ano para atopar alguén como Mike Smith? 

Audiencia: One. 

DAVID J. Malan: Hai só un. E poden quadruplicar iso, é me vai levar só dous pasos e así por diante. E por iso este é unha proba só como un proxecto coidadoso e algúns aprecio polo que súas entradas son pode facer aínda mellor. Agora, estamos enganando a pouco no sentido que estamos panca unha suposición. Cal é a miña suposición sobre o noso libro de teléfono que me permitiu dividir e conquistar deste xeito intuitivo e aínda correcta? 

Audiencia: [inaudível] DAVID J. Malan: Yeah. Por iso, foi orde. Foi clasificada polo a compañía telefónica. Se fose en orde aleatoria, que sería un inferno dun catálogo telefónico, pero certamente non o faría prestar-se ao algoritmo Eu usei, porque nunca faría só terá lugar a través de Mike Smith se mantivo a división en metade dese xeito por casualidade. 

Entón, imos agora formalizar o que é claramente intuitiva. Entón, unha cousa chamada pseudocódigo é onde imos comezar algúns dos nosos problemas iniciais. E esta é unha forma xenérica de describir un algoritmo ou un programa de ordenador, non usar C ou C ++, ou Java, ou dalgunha linguaxe específica, pero só mediante inglés, con que calquera ser humano pode ser familiar. 

E podemos escribir o pseudocódigo a este problema, como segue. Paso un, incorporarse o libro de teléfono. Paso dous, aberta a través da lista telefónica. Paso tres, ollar os nomes. Paso Catro si Smith está entre names-- 

E agora esta é unha construto interesante. É un punto de decisión. É unha bifurcación na estrada, se vai, unha filial, por así dicir. Entón eu vou para recuar só por convención step-- cinco-- que non é por exemplo, eu vou chamar a Mike. Polo tanto, este retroceso, totalmente convención humana arbitraria, pero é simplemente a intención de transmitir semanticamente que se Smith está entre nomes, entón eu debería chamar Mike. 

Mentres tanto, no paso seis, aviso que a retirada marchou. Entón, outra cousa é outra bifurcación na estrada, o outro camiño que eu podería viaxar. Entón else if Smith é no inicio do libro, o que é o meu seguinte paso probablemente vai estar aquí? Audiencia: Vai para o lado esquerdo. DAVID J. Malan: Si, entón vai a a metade esquerda da lista telefónica. Xoga fóra a metade dereita se Smith está no inicio do libro. Entón aberto ata o medio da a metade da esquerda do libro. 

E despois paso oito, vaia á liña tres. E este é un lazo curioso eu son indución, unha recursão por así dicir. Pero máis sobre iso no futuro. 

Estou usando o meu mesmo algoritmo, miña mesmo pseudocódigo, para resolver o mesmo problema novo porque o único que cambiou é o tamaño do problema, non meu obxectivo, e non a persoa Estou buscando. Para que eu poida reutilizar o algoritmo que eu xa teña definido. 

Else if Smith é máis tarde en book-- que pode adiviñar aberta ao medio a metade dereita do libro. E, de novo, vaia á liña tres. Else-- cal é a liña de fondo neste programa vai ser? Se non está entre os nomes na páxina Son on, se non está no inicio o libro, e el non é máis tarde no libro, o que sei é verdade sobre Mike Smith agora? Audiencia: Non está no libro. DAVID J. Malan: Non está no libro. Entón, o mellor que podo facer é só desistir e deixar este programa. Todo correcto. Polo tanto, neste punto, imos dar un rápido paseo un pouco do que espera. E, de feito, estou xuntouse aquí por un número de empregados CS50. Se estas persoas poderían todo unirse a min aquí enriba no escenario. 

[Aplausos] 

Lembre, este é só un subconxunto do equipo CS50, xa que cada ano temos uns 100 empregados membros en función de auxiliar do curso, Teaching Fellows e moito máis. Imos cara arriba. Entón, eles van unirse a nós aquí torpes por un momento como dar un rápido tour que ten que esperar aquí no curso. 

Entón, en primeiro lugar, temos SAT / UNS como a posibilidade de clasificación no curso. Este destino se deliberadamente para ser unha opción na que se é un pouco incómoda a estar en curso, e temer failure-- mesmo francamente fallo significa ferir o seu GPa, a obtención dun B e non un A-- que é precisamente o que, sen dúbida, a unha porta de entrada Claro que como CS50 e outros cursos introdutorios, esta opción de clasificación destinado a permitir. 

Eu sinceramente fomentar students-- especialmente ó fence-- para iniciar o Claro SAT / UNS, aínda permanecen SAT / UNS. Pero certamente pode pasar a unha carta grao xoves en término. 

Francamente, cando era un calouro en 1995, Eu mesmo nin sequera ter CS50 porque eu non tiven coraxe para realmente chegar á aula. Parecía un dominio demasiado descoñecido para min e realmente só para os meus amigos, francamente, que fora programación xa que eles eran seis ou quizais 10 anos de idade. E foi só porque eu era capaz de tomar CS50 no meu día na versión equivalente SAT / pass UNS-- / reprovação de volta na dia-- que mesmo eu levei 50. E de algunha maneira ou doutra, eu son aquí de novo con vostedes hoxe. 

Agora, con todo, o que máis lle debe ter presente uns 50 é a inscrición simultánea. Contrariamente aos rumores que pode ter oído, pode, de feito, á vez alta no CS50 e outra clase que atende ao mesmo ou algunha superposición tempo, como conferencias de CS50 aquí. Vexa o currículo para as indicacións da súa execución. 

Charla, mentres, ao contrario do o que está oficialmente no catálogo, xeralmente só atopar a só unha hora. Na ocasión, podemos correr un pouco longo. Pero ten en conta que a obxectivo en conferencias de CS50 é proporcionar-lle con unha visión xeral conceptual, espero que algunhas manifestacións, quizais mesmo algúns agasallos, que agarda para a semana que segue. 

E así, en conferencias, imos explorar estes temas e exemplos xuntos, traendo os alumnos para o escenario, e persoal enriba do escenario o máis rápido que pudermos, para só un par de horas á semana. Seccións, con todo, será ofrecidos por eles mesmos aqui-- moitos deles ensinando compañeiros, algúns deles curso assistants-- vontade pasar semanalmente. 

E o que é fundamental para manter presente é que nós Non ao contrario da primeira have-- Nights, a música class-- diferentes grupos de seccións para alumnos menos cómodos, máis cómodo, e nalgún lugar no medio. E, francamente, xa sabe se vostede é menos cómodo. E probablemente sabe se está máis cómodo. E se non está realmente certo, é por definición, algures no medio. Entón, cando chega a hora de sección nunha semana ou así, por o plan de estudos, imos pedirlle esta pregunta. E pode auto-selección en base no seu propio nivel de confort e estar con students-- estar con verde dots-- similar a nivel de confort para ti. 

Non obstante, temos problema define, o que acabará definir a súa experiencia neste curso. Son ofrecidos normalmente en varias edicións. A edición estándar que esperamos máis cada alumno no curso de afrontar pero tamén o chamado edición hackers que non ofrece ningunha forma de crédito extra de inmediato, pero realmente os dereitos de se gabar quere dicir que intentou e abordou edicións de hackers do curso que achegamos do material semellante pero desde un ángulo de máis sofisticado. 

O que ofrecemos para o Standard Edition, para, de novo, un super maioría dos estudantes, non son só walk-through, que son videos liderados polo equipo do curso que realmente levalo a través do problemas do curso e posible deseño implementacións. E tamén, despois do feito, ofrecer autopsias, en que se está a pensar como podería ou debería arranxarse ​​algúns problema, o corpo docente o guiará a través aqueles en vídeo tamén. 

Mentres tanto, o que espera tamén son cinco días de atraso eo feito que imos soltar a súa menor conxunto de problemas de puntuación. Nós certamente apreciar que a cambio para a carga de traballo que espera 50 de ti, a vida está no camiño Ás veces, se non cinco veces. E para que isto pode ofrecer lle un pouco de flexibilidade, estender o prazo de, digamos, un Xoves ó mediodía do venres ao mediodía. Vexa o currículo ao detalles de implantación do mesmo. 

Agora, o que agora agarda? E iso se produciron só para min agora canto tempo Estou convosco quedan aquí no escenario. 

[Risas] 

DAVID J. Malan: Pero nós imos chegar a o remate clímax antes de tempo. Entón, o que espera en termos dos conxuntos de problemas? Ben, quizais un teaser do que todos nós fixo o ano pasado cos seus antecesores. O primeiro conxunto de problemas o ano pasado, introducimos Cero, unha gráfica linguaxe de programación que permite programar literalmente por arrastrando e soltando pezas do puzzle, como estes, que están lembra as construcións vai ver só unha semana Así, cando trocamos dun xeito máis tradicional lingua, coñecida como C. 

O ano pasado, procedeu a este conxunto de problemas, envolvendo o cifrado, a codificación da información para evitar que gobernamental ou amigos ' ollos que non quere velo. Codificado aquí é un mensaxe de que en breve poderá descifrar ou de-carreira. 

Breakout era un problema establecido o ano pasado, no que usalos nova programación atopados habilidades para realmente aplicar un xogo como wherein-- debe lembrar de childhood-- o obxectivo era bater o ladrillos que están na parte superior da pantalla aquí, acumulando marcar ao longo do camiño, e aplicar os seus propios algoritmos que esta solución, en definitiva permite que xogue o partido. Non obstante, ao final do semestre, imos darlle un dicionario de 143.091 palabras en inglés. E será desafiado para escribir un programa que deletrear cheques, documentos, por carga que moitas palabras para a memoria forma máis eficiente posible. Xeralmente poñendo vostede contra os seus compañeiros de clase se optar en algo de reto no cadro de líderes para ver quen pode utilizar o menor número segundos de tempo de execución, e o número menor cantidade de megabytes de memoria, e realmente afinar os seus programas para ser incrible eficiente de recursos non tempo só. 

O ano pasado, tamén, miramos para o final do semestre en programación web. E, de feito, nós imos facelo de novo esta ano con varios conxuntos de problemas, introducindo-lle as técnicas e a mentalidade coa que pode aplicar esas habilidades de programación para sitios, sitios dinámicos, sitios que realmente resolver problemas e se comportan de forma diferente e simplemente non son estáticos sitios con información estáticas. 

O proxecto final, en última instancia vai establecer, con todo, o clímax do curso para os alumnos, que Será desafiado a aplicar máis calquera cousa de interese para ti, sempre que de algunha maneira baséase en clases do curso. 

E como viu no vídeo ao principio, imos completar o semestre co CS50 hackathon, que se, non familiar, terá comezo ás 07:00 unha noite e rematará ás 07h00 do día seguinte. Ao redor de 09:00, imos orde no primeiro xantar. Ao redor de 01h00, imos orde en segundo cea. E se aínda está situándose en 5:00, nos vontade de traslado ti para IHOP no almorzo. 

O CS50 Fair, pola súa banda, é un evento a que máis de 2.000 profesores, alumnos, e funcionarios de todo campus veñen a ver as súas realizacións no curso e na final proxectos e creacións que crea nos seus portátiles, escritorios, ou quizais mesmo lámpadas de luz. 

Mentres tanto, o horario de expediente e a estrutura de soporte. E agora xa sería un mellor momento para causar-lle todo. 

Horario de atención terá lugar catro noites por semana durante varias horas por noite con xeralmente 20 a 30 do Os funcionarios do curso de servizo dunha soa vez para ofrece-lo con íntimo one-on-one oportunidades de apoio con conxuntos de problemas do curso. Explicacións tamén será dispoñibles, en especial para os alumnos menos comfortable-- ou atrévome a dicir menos comfortable-- para quen horario de oficina non o son máis ambiente acolledor e, por suposto, non son o máis libre de estrés. Especialmente cando os prazos están presionando, imos Proativo vincular vostedes mesmos con un membro do persoal para traballar con nalgún horario regular como as súas necesidades e súa axenda permite. 

E o equipo. Permita-me presentar Davon, Rob, e Gabriel, os xefes deste ano. Se che gusta de cada dizer-- 

[Aplausos] palabra -Un. [Aplausos] Davon aquí é o director do curso, que significa no seu papel a tempo completo el contribúe coa execución e loxística de CS50. Davon: Si, ola, persoal. Vai ver unha morea para min no horario de oficina. Eu vou estar ensinando seccións. E se lle tire electrónicos adiante, Eu probablemente vou estar respondendo. Entón, eu vou ver moitos de vostedes durante todo o semestre. E benvido ao CS50. 

DAVID J. Malan: E agora Gabriel, que si era só un calouro do ano pasado, pero para os últimos dous anos está a funcionar a súa propia versión do CS50 no Brasil, na que baixou todos content-- do curso que está sendo claramente filmado e posto online-- para que el puidese traducir-lo para Portugués e, a continuación, ensinar máis de 100 dos seus compañeiros sobre o curso de un par de anos, ensino na súa lingua nativa currículo do curso. 

GABRIEL: Ola. 

[Aplausos] GABRIEL: Ola, eu son Gabriel. Eu son o TF cabeza do curso. E eu espero que vai adorar CS50. Este é CS50. 

DAVID J. Malan: Agora para Rob. Oh, quere introdución? 

ROB: Non, eu non sei. [Risas] DAVID J. Malan: E Rob Boden. [Risas] ROB: Ola, eu son Rob. Este é o quinto ano involucrada co curso. Todos os anos, é só un mellor e mellor clase, Entón vostedes son claramente Vai ser incrible. Espero que todos divertirse con el. Eu estou indo a divertirse con el. Entón ve-lo arredor. 

DAVID J. Malan: E o tempo non vai permitir US-- 

[Aplausos] 

O tempo non permítenos presentar todos sobre o escenario e todos os seus compañeiros que están a mercar clases hoxe. Pero permítame presentar Belinda e CS50 enigma Day, que agarda esta próximo sábado, o que é o primeiro da eventos de grande escala do curso. 

Este en particular significado para martelar a punto que a informática é, en definitiva non sobre a programación, senón sobre a resolución de problemas de forma máis xeral. E Enigma do día, como vai ver, lle vai traer e os seus compañeiros together-- Esperamos que este sábado. 

Belinda: Aceptar. Ola, persoal. Entón, grazas. Así como o noso ilustre capitán dixo, Belinda do meu nome. Eu son un estudante de segundo ano en Quincy House. 

Eu, como vostedes, levou CS50 ano pasado, realmente adorei. Eu teño un fraquinho por vostedes na terceira fila. E teño orgullo de dicir, eu son agora nunha relación serio con CS50 [inaudível]. Está ben. Esa foi a miña versión coxo dunha broma. 

Sexa como sexa, así que seguir adiante, só quería invitar vostedes todos ao i-lab ou Urticaria HBS. Nós imos ter Quebra-Day 12: 00-03: 00. E é unha grande oportunidade para vostede caras para coñecer os seus compañeiros amigos CS, resolver algúns enigmas non-CS, como capitán mencionado, e tamén comer algún alimento libre, gañar algúns premios incribles, como tarxetas de agasallo, $ 75 por persoa, e também-- o que era? Wii Ou é algo así? Wii U? Si. Para o noso sorteo. Incrible. Entón, eu vou ir por aquí despois da aula. E se vós ten algunha preguntas, deixe-me saber. 

DAVID J. Malan: E vai ver, ademais iso non hai nada que facer hoxe. O primeiro conxunto de problemas vai saír venres. Pero para traer a casa hoxe, gustaríame presentar-lle máis especificamente un membro do equipo, Colton Ogden aquí, cuxas mans están agora protexido por riba de ti con este controlador MIDI para martelar o punto máis que a informática, tamén, ten aplicabilidade moito máis alá da enxeñería e talo e ciencia da computación en si, estendéndose até mesmo a ámbitos como a música. 

Colton foi xentilmente offered-- Pensei un deles estaba indo a fixar o enfoque. Andrew, se puidésemos convocar foco aquí só por un momento. 

O Colton fixo con antelación é o programa este dispositivo, esta almofada de botóns que ve na imaxe aquí enriba, como un controlador MIDI, en que cada un destes botóns está conectado a unha nota musical particular ou un son, máis xeralmente unha gravación, de tal xeito que ao xogar os patróns de estes botóns, moi parecido os patróns de bits, pode representar outro conceptos de nivel superior. Será que vai ser capaz, en última instancia para levar a casa hoxe? Sen máis delongas, se poderiamos diminuír as luces, e conectar a pantalla detrás Colton. 

Audiencia: Woo! 

David J. Malan: Este é CS50. 

[MÚSICA DE XOGO] 

[Aplausos] 

Isto é todo para CS50. Imos velo venres. Algúns bolo espera por vostede no transepto. 

[MÚSICA DE XOGO]