[Reprodución de música] [Reprodución de música] DAVID Malan: Todo ben. Este é CS50. [Música tocando Tritonal, Cash Cash,  "Untouchable"] [Reprodución de música] COLUMNA 1: Vou Francia, e está indo, tamén. [Reprodución de música] DAVID Malan: Este é CS50, introdución da Universidade de Harvard ao intelectual empresas de informática e as artes de program-- e por primeira vez na historia, da Universidade de Yale tamén. En realidade, se está aquí en Cambridge ou en New Haven ou Miami ou Louis ou Amsterdam ou en calquera lugar arredor do mundo tendo CS50, ordenador ciencia E50, CS50X, CS50 AP, todos somos un eo mesmo. Benvido ao CS50. Que have-- [Aplausos] [Risas] [Aplausos] Entón, eu cometín un erro me algúns tempo, cando comece a facultade. E eu fun para a facultade, e eu decidimos francamente, estar dentro da miña zona de confort. I acabou declarando unha concentración, ou un major, do goberno. Ant que foi todo unha función de min sendo moi familiarizado co goberno ou polo menos a historia ou eu realmente gusta dereito constitucional na escola. E así cando cheguei aquí, eu medio de gravitavam arredor de cousas co cal eu xa estaba familiarizado. Non? Deus me libre de facer mal na clase. Eu certamente quería ficar dentro da miña zona de confort, e non foi ata o segundo ano que finalmente Levantouse a coraxe de pisar nunha aula chamada CS50. E nese punto, eu fixen finalmente entender que, meu Deus, traballos de casa podería realmente ser divertido. En realidade, eu era unha desas nenos que nas noites de venres cando os P-sets sería lanzado, eu Quere volver para o meu cuarto e mergullo na P-sets de noite. E para min, iso foi un sinal que este era un campo para min. Pero o que era máis importante foi o feito de que eu fixen chegar ata este nervio para explorar augas descoñecidas para min e obter ademais da miña propia zona de confort e, a verdade, eu só era capaz de facelo o segundo ano, tendo esta clase aprobación / reprovação. De feito, foi o último día en que Finalmente conmutada e finalmente declarou CS como a miña concentración, poñendo gov nese punto detrás de min. E por iso non estamos establecendo de xeito este curso para transformar todos vostedes en grandes ou concentradores de CS, pero en vez de darlle unha oportunidade para ir espero que ademais do mundo co cal está agora familiarizado e traer de volta a partir deste mundo habilidades e coñecementos e ilustrado que pode aplicar a súa propio mundo, se isto é na área de humanas, ciencias sociais, ciencias naturais, ou aló. En realidade, se está sentindo un pouco intrépido sobre estar nesta sala deixe só nesta clase, entender que, se a historia é calquera indicación, 72% de ti nunca tomou un curso de CS antes. Por iso, é por todos os medios non é o caso que o alumno sentado á esquerda ou á dereita ou na fronte ou detrás de ti sabe máis sobre CS ou programación en particular que. Isto non é de feito o caso. E, de feito, moito do a estrutura de soporte que creamos este claro nos últimos moitos anos foi precisamente para iso razón proporcionar unha rampa en que aínda sae tan rigorosa e tan alta como ever pero a inclinación dos cales permiten aos alumnos menos cómodo e máis cómodo tanto para ter éxito, independentemente do seu fondo anterior. Efectivamente, o que en última instancia materias desta clase non é tanto onde acabar en relación aos seus compañeiros pero onde a semana 12 acaban en relación ao mesmo a semana cero, o que é onde estamos hoxe aquí. De feito, e iso pode moi ben e probablemente se parece grego para moitos de vós. Pero con certeza, que isto e moito máis será totalmente dentro do seu coller en só un pouco de tempo. Pero hoxe, imos concentrar en algúns das ideas de nivel máis alto para darlle un sabor de ciencia CS50 e ordenador no sentido de que está inscribindo. E, de feito, ciencia da computación pode ser destilada máis simplemente como thinking-- computacional pensar como un ordenador, se queres. E hai tantas cousas diferentes ingredientes que entran en que, pero imos propoñer tres para hoxe. Se o obxectivo da clase, en última instancia non é para ensinar-lle a programación, non é para ensinar-lle C ou PHP ou SQL ou calquera número de palabras e siglas en A descrición de curso, senón para ensinalo a resolver os problemas máis eficaz e pensar máis metódica e máis de algoritmos, por así dicir. Imos ver o que exactamente significa isto. Así, quere propoñer que o pensamento computacionalmente se reduce para resolver os problemas. O que precisa para resolver un problema? Debe input-- como a entrada ao problema-- precisa dunha saída, que é esperanza a solución, e entón tes que dun proceso por que para resolver este problema, que imos chamar unha algorithm-- un conxunto de instrucións para resolver algún problema. Pero, primeiro, imos concentrar no primeiro e a última destas entradas e saídas. Ordenadores ao final, ao parecer só entende ceros e uns. Pero como iso pode posiblemente ser? nin aínda se está familiarizado en todo co que está debaixo do capó, probablemente polo menos escoitou falar que ordenadores entenden binary-- só ceros e ones-- Pero como pode posiblemente facer algo interesante? Ben, un dos temas da clase vai ser este layering-- onde hoxe, imos tomar un rápido ollar para o nivel máis baixo detalles, pero con cada día que pasa, en que a capa ou abstracto enriba deses detalles para resolver efectivamente o nivel problemas de interese para nós. Entón aquí é o que poderiamos chamar binary-- con só un alfabeto de 0 e 1. Pero nós, seres humanos son na súa maioría familiarizado coa decimal. Decembro significado 10. Bi significa dous. E así, no decimal sistema, temos 10 díxitos no noso disposal-- de claro, de cero a nove. Entón, se ollar para un número así, a maioría de vós intuitivamente só entender que é 123. Non hai nada realmente difícil sobre iso. Pero por que é 123? Ben, se pensas que volta a school-- grao ou, polo menos, do xeito que eu aprendín iso tipo de mundo-- vostede que lembrar que nós tratamos estas cousas en columnas, ou lugares. Polo tanto, temos o lugar máis á dereita. As decenas poñer no medio. Os centos poñer á esquerda. E entón como é que imos chegar dende estándar symbols-- 1 2 3-- a este nivel idea de que nós coñecemos como 123? Ben, é só un pouco de aritmética simple. Non? A un hai significa esencialmente dános 100 veces 1 máis 10 veces 2 máis 1 veces 3. E, por suposto, se facemos a matemáticas alí, é 100 máis 20 3-- ademais doutro xeito coñecido como 123. Entón, se está no mesma páxina que este dereito agora e son cómodos co chamado sistema decimal como un ser humano, é realmente ben dentro o seu ámbito de confort considerando agora o sistema binario. Tomé un salvaxe adiviñar isto representa, no mundo dos ordenadores en binary-- que número? Cero. Pero por que isto? Ben, parece que as columnas ou lugares aqui-- non son potencias de 10. 1, 10, 100, 1000, e así por diante. Son en vez diso, moi simplemente, potencias de 2. Así, 1, 2, 4, 8, 16, 32, e así por diante. E agora nós, por suposto, chegar a 0 aquí simplemente porque temos 4 veces 0 máis 2 veces 0, máis 1 veces 0, o que obviamente dános 0. Pero como eu vou sobre que representa o número 1? Cal é o nivel de ceros e uns para representar o número que seres humanos saben 1? 001. E 2? 010. E agora o estándar comeza a se repite. Agora é 011. E, de novo, 0 fours, un 2, un 1. Entón 2 máis 1. Isto é 3. E agora a representar 4, nós non basta cambiar isto 0 a 1. Vostede medio que ten que levar, por así dicir, e os números comezar lanzando en torno a só como no mundo decimal. Polo tanto, esta é 4. Isto é 5. Este é 6. Isto é de 7. E así temos contado tan alto como 7. Agora todo o que precisa é só un bits-- máis ceros e un de. E, de feito "bits", se escoitou isto díxito binario term--. Bit é onde isto vén. E así, se queremos representar números grandes, necesitamos máis bits. Pero imos afastar-se lamas agora para que un simple real. Supoña que queremos en realidade, representan esa cousa. Ben, imos dar un ollo agora nunha pequena demostración. Polo tanto, este é unha aplicación baseado na web que un dos do CS50 propia, Michael G, xuntos este verán para axudar -Nos elucidar exactamente esa idea. E que alguén como aventura-se no escenario diante de todos os seus compañeiros? Logo alí diante. Imos cara arriba. Ten que ser cómodo na cámara e internet. Oh, aquí. Aceptar. Estamos Aceptar. Todo ben. Imos cara arriba. Como te chamas? Emily imos para arriba. Polo tanto, esta é Emily. En que ano está? Caloiro. Emily, pracer en coñece-lo. David. Todo ben. Entón, na pantalla aquí, temos esta pantalla táctil que vai permitir realmente interactuar con este programa, e é só un navegador. É Chrome blindado completo no momento, pero é foi programado por Michael para responder de forma que permite -Nos a xogar con díxitos binarios. Así, por exemplo, aquí non ten tres, pero oito ceros e uns bits--. Neste momento, estamos buscando o número 0. E, de feito, as oito ceros en decimal significa cero. Entón, iso é todo o que é sendo necesario aquí. Entón, se quería representan o número 8, cal é o nivel de ceros e aqueles que quere? Pode simplemente tocar arriba ou abaixo ou os propios números. Todo ben. De xeito que, por suposto, é 8, como se pode ver alí enriba. E se quixésemos non 16, o que imos facer? Yep, só tocalo novo. 16. Todo ben. Entón, iso é todo moi ben e bo, aínda é moi baixo nivel. Necesitamos un camiño no mundo real para Emily de verdade representar esas cousas. E así supor que giramos ceros e uns, que é moi conceptual, en lámpadas reais. Non? Un ordenador é un físico, mecánico, dispositivo eléctrico. E a súa, polo menos, se input-- liga-lo ou gravame ele-- é ter a enerxía da batería e electróns que flúen dentro e fóra. Entón, agora, por que non podemos deixar de pensar sobre bits como ceros e uns, pero algo máis físico como lámpadas aquí. E se Dan Armendariz podería xuntar-se me por só un moment-- veña up-- imos facer cola unha aplicación. Veña ata aquí, Emily. Sentímolo este é o máis demostración embarazosa para ti para sempre. Veña ata aquí. Estamos indo para a fila -se con agradecementos a Dan Armendariz, outro membro do noso persoal, unha aplicación coñecido como lámpada binario. Entón o que temos aquí é unha aplicación para iPad que ten o seguinte usuario interface na pantalla para Emily. Simplemente ten a mesma interfaz exacta esencialmente, que está alí. E se agora queren representan o número, digamos 8, como é que vai facer sobre este entendese á dereita, as lámpadas que temos aquí? Ah-ha. Máxico. Polo tanto, se queremos agora transformar isto en algo un pouco máis reto, e imos adiante e elixir un aleatorio número como o número 50 aquí. Input iso. E se pode agora ser desafiado para chegar co número 50, teremos un premio fabuloso para ti. EMILY: OK. Meu Deus. DAVID Malan: Aritmética é realmente difícil diante de centos dos seus compañeiros. Pero 50 foi a resposta aquí. [Aplausos] E agora, este destínase a ser demostrativa para Emily. Entón, aquí, é un pouco de luz lámpadas moi como estes, pero en realidade é o pequenas tiras magnéticas. E o que é legal sobre estes e a razón pola que usalos en CS50 é que soportan unha cousa chamada un API-- unha programación de aplicación interface, que é só un xeito elegante de dicir que o que un dos nosos empregados durante o verán foi crear unha aplicación para iPad aquí que fala a través de internet ás lámpadas por aquí, que son sen fíos conectado a outro dispositivo. Pero esta é agora unha opción para os proxectos finais. E así por Emily, se sería tan como, ao final do prazo, pode decorar o seu cuarto do dormitorio Mentres tanto con aqueles. Grazas a Emily tamén. [Aplausos] Pero agora, imos voltar a nosa atención sobre o que esta mensaxe pode ter coma, e é un pouco algo así. De feito, esta é unha exemplo só como un teaser do que está por vir do que é chamado dunha solicitude da API. E entón o que temos aquí é simplemente exactamente tipo de mensaxe que, despois de algunhas semanas cando en CS50, vai ser capaz de enviar a algo bastante familiar como que para realmente liga-los e off. Pero iso é todo moi ben e bo. Non? Temos o modelo mental esperanza para representar números con ceros e un de. E a partir de ceros e uns, podemos chegar a números máis altos, como 50, como Emily acaba de facer, ou nós pode mover-se a partir de aí. E eu afirmo que podemos representar cousas como cartas tamén. Non? Ordenadores son moito máis interesante que números. E así como ir sobre as palabras que representan na pantalla ou correos electrónicos ou ensaios ou similares? Ben, parece que os ordenadores simplemente abstract enriba destes baixo nivel detalles, e os seres humanos hai algún tempo, veu -se con unha arbitraria, senón un consistente, cartografía de números para letters-- que en calquera momento se ve unha letra maiúscula Un no seu ordenador pantalla, as probabilidades son o que hai de debaixo do capó é un patrón de ceros e uns que representan o número, por este gráfico, 65. E máis aínda permanece dentro do seu ordenador, son millóns de cousas chamadas transistors-- estes dias-- que son só cambia se, cousas que pode ir dentro e fóra e así imaxinar. Non oito desas grandes lámpadas pero millóns destes minúsculos pouca luz bulbos, ou interruptores ou transistores, que poden activar e desactivar baseado en como programalos los. E entón agora temos unha forma de representando letras tamén. En realidade, se eu fose para utilizar esta cartografía aquí e tentar realmente deletrear algo, podemos ollar neste patrón de díxitos decimais agora. Entón, nós non imos nin centrar binario máis. Nós só consideralas como número decimal 72, 73, 33. Pero o que iso pode representar? Alguén ten unha suficientemente memoria fotográfica saber o que está escrito na pantalla aquí? Si algúns. Entón, ola. H-I e, a continuación, un signo de admiración, o que non era verdade en pantalla. Pero en realidade, non hai un mapeamento para cada letra de cada número que pode querer escribir no teclado. Pero os números non teñen que representan letras. Non? Todos sabemos sobre as imaxes e fotos e arquivos de audio e os ficheiros de vídeo e similares. Entón, claramente, podemos representar nivel cousas aínda máis grande. E entón o que un ordenador fai é simplemente escoller para interpretar modelos de cero queridos de forma diferente segundo o contexto. Se fai clic dúas veces un icona de Microsoft Word, ves as palabras na pantalla en vez de cores e imaxes porque a palabra sabe que esta é unha ensaio que realmente ingresaran. Se, en vez de facer dobre clic nun JPEG ou GIF ou PNG, ábrese e é unha imaxe porque o PNG ou .docx ou calquera que sexa o ficheiro extensión é eo que quere software está a usar sabe interpretar un nivel de ceros e uns de forma diferente con base no que o seu propósito na vida é. Así, por exemplo, esta mesma secuencia de números pode representar o que vermello quere, o que verde que quere, e canto azul quere. E, de feito, se nunca escoitou falar RGB-- verde azul entón só vermello. E entón se eu ver números como este dáme 72 vermello, darme 73 verde, e 33 azul, isto é como un ordenador usando tres bytes-- onde é un byte de oito bits ou 24 bits-- representaría un ton bastante desagradable de marrón ou amarelo aquí. E en diferentes contextos, podería aqueles mesmos patróns exactos en ceros e uns significar algo completamente diferente ben. Polo tanto, temos agora unha forma de representar ceros e uns information--. Enriba diso, nós recibir cartas. Ademais, podemos obter cores. E imos supor para hoxe que podemos obter audio e vídeo e as cousas moito máis sofisticado do que iso. Pero agora imos considerar como usamos estas entradas e producir os saídas Agora que temos unha forma de representar a información. Ben, necesitamos algo chamado un algoritmo. Unha vez máis, un conxunto de instrucións para resolver problemas paso a step-- eo Máis precisamente, o mellor. E así un exemplo co que os seres humanos son reconhecidamente menos familiares nos días de hoxe, pero aínda así aínda é nós en software, é o proceso de busca -Se alguén nun libro de teléfono. Agora, cada vez menos xente se coñecen ano que esta reliquia, en realidade, está aquí. Pero de volta o meu día, este foi un libro de teléfono con miles de páxinas e números e os nomes das persoas da a Z. E aínda que estamos tipo de trampas un bit-- Isto é principalmente páxinas amarelas. Tamén eran brancos páxinas no momento, o que tiña todos aqueles nomes e número de seres humanos reais. E se eu quixese mirar de alguén nun libro de teléfono como este, hoxe, por suposto, Só escribir os primeiros caracteres de seu nome, e meu teléfono atopar esta información. Pero o proceso polo cal teléfono iPhone ou Android ou o que é realmente atopar alguén na súa lista de contactos é o mesmo que o que nós, seres humanos probablemente fixo hai algún tempo. Agora eu podería tomar este problema, se quixeren, e as entradas aquí non son ceros e uns. Están pages-- como, digamos 1.000 páxinas. E se eu quería para buscar alguén como Mike Smith neste libro de teléfono, Podería comezar a principios e ver que eu estou na sección A e despois virar unha páxina de un tempo, ollar e ollar como fago para o B eo C do e o D's etc. para Mike Smith. Smith comezando cun S, eu vou espero que, finalmente atopalo. Este algorithm-- que process-- correcto? Si. É correcto. Eu vou atopar Mike se está aquí, pero o que é a excepción de que pode ofrecer. É lento. Non? Sei que Mike S é unha especie de dirección a segunda metade do libro de teléfono. Por que diaños eu son comezando no inicio e ir páxina por páxina por páxina. Entón, por suposto, eu podería lanzalo arredor e comezar a partir da parte traseira, pero iso vai estar alí o mesmo ritmo, se willl-- páxina tras páxina tras páxina. E iso non vai funcionar se eu queira para buscar outra persoa cuxa nome vén a principios do alfabeto. Entón, o que se fago o que me aprendido na escola, unha vez máis, facer as cousas non por outros, pero de dous en dous. Entón, 2, 4, 6, 8, 10, 12, e así por diante. Isto é correcta? Non. É unha especie de correcto. Pero algúns de vostedes que murmurou non, onde está o problema, ou o erro, o erro por así dicir. Si. ALUMNO: Pode saltar sobre a entrada dereita. DAVID Malan: Yeah. Podería ir Mike Smith é porque eu teño tido dúas páxinas dunha soa vez e el só pasa de ser ensanduichada entre estas dúas páxinas. I pode entender que Eu son a sección T Non tendo atopado Mike Smith aínda. E así o que podería o fixo haber? Ben, se eu acertar o Ts no libro de teléfono, Podería ter duplicar copia dun ou de xeito páxina. Polo tanto, é corrigível pero non é tan sinxelo como só indo por dous para acelerar o meu rendemento. Pero o que? Imos. Que é que a maioría dos seres humanos van que ver con este tipo de lista telefónica? Vostede é xa o libro de teléfono. Que fas? Que é iso? Vaia para o medio. Entón eu oín vaia para o medio, e eu atopar-me máis ou menos na sección M, por así dicir. E agora o que quero facer? Bo traballo. Como te chamas? JAMES: James. DAVID Malan: James, todo ben. Que debo facer a continuación? JAMES: Vai na media que ten as S do. DAVID Malan: Todo ben. Eu estou indo a ir á metade que ten as S está nel, porque, unha vez máis, unha estipulação aquí foi que esa cousa está clasificada. É un moi inútil 1,000 páxinas, se Verizon en realidade non clasificar isto para nós de A a Z. Entón, se eu sei que Mike é, probablemente, en a segunda metade do libro de teléfono, Agora podo. [Risas] Rasgar o problema á metade. [Aplausos] Grazas. Rasgar o problema á metade. Isto foi realmente real-- esa loita. Entón rasgar o libro de teléfono ao medio, deixándome con fundamentalmente o mesmo problema. Pero, por suposto, a metade do tamaño. E se eu seguir James consellos de novo, e eu aquí. Digo, oh agora estou na sección T. E así por suposto, eu pode rasgar o libro de teléfono na metade máis unha vez, deixando -me un problema que é agora un cuarto do tamaño. Entón eu fun de 1.000 a 500 a 250 a 125 e así por diante. Parece que eu son tomando mordidas maiores fóra deste problema con cada iteración, ou cada paso na mesma. E, de feito, o tempo que eu vou gastar atopando Mike, neste exemplo, Smith é moito menos porque finalmente son indo tallar este libro pone abaixo para só unha páxina solitario. E se Mike está nesa páxina, eu son indo a ir adiante e darlle unha chamada de encontrar el. Pero como moito mellor é que algorithm-- que ouso dicir intuitiva algorithm-- que os que comezou co que estamos moi linear-- esquerda a direita-- a un ritmo de 1 ou 2x? Ben, imos trazar iso. Non teñen que preocuparse moito con matemáticas ou números, neste caso aquí. Nós só ollar para un gráfico. Entón nos x ou eixe horizontal, é o tamaño do problema-- Cantas páxinas están alí. No Y, é a vertical eixe, é canto tempo é el que me vai levar para resolvelo. E quizais iso é cantas viradas de páxina, cantos segundos, como many-- algunha unidade de medidas. E eu deseño algunhas liñas rectas vermellas aquí, porque cada páxina adicional do libro de teléfono, eu esixo para facer un paso adicional. Polo tanto, se engade un Verizon máis páxina do próximo ano, Podería ter que virar unha páxina para atopar alguén como Mike Smith. Mentres tanto, o segundo algoritmo, que Eu fun por dous, é a mesma forma. Aínda é moi lineal, moi á esquerda dereito, tendo a igualdade de bytes de cada vez, pero a inclinación é un pouco menor. Por exemplo, se o tamaño o problema eran máis ou menos aquí e eu usei o meu primeiro algoritmo, Podería acabar todo o camiño na parte superior da referida liña vermella. Pero se eu pasar a usar twosies para achegar, A liña amarela indica porque é máis baixo, que vai levar me menos tempo a resolver. Pero o que é a forma de terceiro algorithm-- novo, sen dúbida o algoritmo máis intuitiva? Ben, parece un pouco algo así. É curvo ou logarítmica, en forma. E aínda que nunca tipo de esmagacoches, Lo asymptotically polgadas para arriba e arriba e cara arriba, pero terriblemente lento contra o resto. E o que está a levar aínda? Ben, nós chamamos log n. Pero o que realmente significa? Ben, se Verizon dobrou o Número de páxinas do libro de teléfono o ano de 1000 para 2.000. Cantos máis pasos é a miña primeiro algoritmo vai levar? O meu primeiro algoritmo. Quizais máis 1.000 pasos. Se dobraron o libro de teléfono, eu vou ter que percorrer outro 1.000 páxinas para atopar Mike. Claro que, se a segunda algoritmo, quizais 500 porque son indo dúas veces máis rápido. Pero se Verizon duplica o número de páxinas entre este ano eo próximo, coa miña terceira algorithm-- a brecha e conquistar que James proposto, indo ao medio e medio e half-- cantas máis medidas irán me levar o próximo ano para ter un libro de teléfono dun tamaño de 2.000? Só un. Porque con unha mordida, podo tomar, Fóra do problema que, a metade das páxinas distancia. E se pensar sobre iso un pouco locamente agora-- o libro de teléfono non fai ten 1.000 ou 2.000 páxinas, pero digamos 4 millóns pages-- é un gran teléfono book-- como moitas veces ou cantos pasos é el que me vai levar para atopar Mike Smith no libro de teléfono con 4 millóns de páxinas. Pode tipo de comezar a facer a matemática. Todo ben. 4 millóns dividido por 2. Entón, iso é de 2 mil millóns dividido por 1. Isto é 1 billón. Logo metade de mil millóns. Entón 250-- para que poida facelo de novo e de novo, pero non que moitas veces antes comeza a unha páxina. E, de feito, mesmo se o teléfono libro é de 4 millóns de páxinas ou a base de datos que está a buscar é de 4 millóns de rexistros de lonxitude, que vai leva-lo máis ou menos 32 pasos para atopar só Mike Smith. E se dobrar o libro de teléfono próxima ano 4000 a 8000 millóns, 33 etapas, no canto de só 32. E esta é a proba a unha das ideas para que poidamos abrazar no ordenador ciencia en xeral, que é este pensamento computacional e aproximándose a un problema francamente usando ferramentas de súa ferramenta xa está familiarizado kit-- seu mundo real con que está familiarizado, pero aproveitar esas ideas para resolver problemas, en realidade. Pero necesitamos formalizar a nosa solucións para estes problemas. E así déixeme presentar un momento algo que poderiamos chamar de pseudocódigo. Gran parte do tempo, nós imos pasar a usar código real en linguaxes como C e PHP e JavaScript e SQL e similares. Pero, polo de agora, imos só ollar en algo bastante intuitiva como o inglés. Podería destilar que co cal algoritmo Atopei Mike en etapas como este. Incorporarse o libro de teléfono Aberta a través do libro de teléfono Olle para o nome do Se Mike está entre o nome do Chame Mike Else if Smith é o inicio do libro Aberto ao medio a metade esquerda do libro Entón ir á liña 3 Else if Smith é máis tarde no libro Aberto ao medio da metade dereita do libro Vaia á liña de tres máis desistir E hai algunhas características agora iso que é importante resaltar. Entón, unha, todas as liñas Teño resaltado en amarelo imos comezar a chamar declaracións ou funcións ou procedementos. Son só accións facer este, e non hai todo o que moito variabilidade a el. O seguinte paso aquí, con todo, son estes conditions-- if, else, else if, else. E estes son chamados de condicións, ou ramas, e son os puntos de decisión. E nos permiten facer algo condicional. E, de feito, imos dar unha rápida mirar quizais un face-- familiarizado imos chamalo Bill-- e o que estas condicións, como poden ser usados. Bill Gates: As persoas fan decisións todos os días. Por exemplo, antes de ir para fóra de ti tipo de ter unha instrución if que di: se está chovendo, entón eu que incorporarse miña chaqueta. E os ordenadores son sorprendentes xa que decidir estes tipos de declaracións que pode realizar de forma fiable isto a unha velocidade incrible. E así por un programa de ordenador realmente é un pouco de matemáticas e algúns if onde tomouse a decisión. O foco da Entón agora imos: DAVID Malan nalgúns lines-- diferente os que me destacados en amarelo aquí. E verifícase que hai diferentes formas de expresar esta idea. Pero intuitivamente o que as nosas liñas 8 e 11 que teña destacado aquí dicindo a vostede facer? Si, vaia á liña 3, pero o que comportamento é que realmente inducir? É un tipo de loop ou ciclo, e pode tipo de velo. Non? Na liña 8, volver á liña 3, e despois de bater a liña 8 de novo, pode volver para a liña 3, de volta para a liña 3, de volta para a liña 3. Non hai este tipo de ciclo ou bucle. E, de feito, que é inducido en A liña 11 potencialmente moito. E este é un básico programación construír tamén. Non pode querer só facer algo con unha declaración ou facer algo condicional cunha condición ou sector. Pode querer facer algo ciclicamente cun loop. E nós imos ter alguén con quen pode ser familiar-- imos chamalo Mark-- explicar este concepto aquí. Mark Zuckerberg: One que os ordenadores son realmente bo en está repetindo comandos. Como persoa, obtería realmente aburrido, se tiña que facer o mesmo moitas veces nunha fileira, pero un ordenador pode facer o mesmo millóns ou billóns de veces e non se cansar e poder para realizar a vontade moi ben. Así, por exemplo, se eu quero desexar a todos en Facebook un feliz aniversario enviándolles un correo electrónico, pode me levar máis dun século de realmente escribir todos estes correos electrónicos para todos. Pero con só algunhas liñas de código, podo ter un sistema de enviar un correo electrónico a todos en Facebook desexando -lhes un feliz aniversario. Entón é iso que loops son e por que son valiosos e algo que os ordenadores poden facer moi ben. DAVID Malan: Moitas grazas aos nosos amigos en Code.org para as dúas películas. E só a semana pasada, pode ter visto que Mark Zuckerberg e Facebook publicou este anuncio, que é o que eles só pasar un importante marco para a primeira vez. 1 mil millóns de persoas utilizaron Facebook nun único día, especialmente pasado luns. Un de cada sete humanos na Terra aparentemente conectado a Facebook. Ben, iso parece unha boa oportunidade para ollar cara atrás, onde comezou Facebook e pasamos por CS50 propia arquivos pois verifícase se, en 2005, Mark deu unha charla no CS50. Verá que os valores de produción non eran o mesmo de volta, a continuación, en termos de tecnoloxía dispoñibles, e tamén ver que a presenza desta charla non necesariamente espertar o interese do alumnado, os seus antecesores, tanto como el pode ter só algúns anos máis tarde. Entón, imos dar un ollo no Centro de Ciencias C. COLUMNA 2: Únete a min, e benvidos. [Aplausos] Mark Zuckerberg: Yo. Todo ben. Legal esta é a primeira vez que eu xa tiveron que realizar unha desas cousas. Entón, eu estou indo só para anexo-lo moi rapidamente. Todo ben. pode oín-lo? Isto é bo? Este amplificado en todo? Todo ben. Doce. Entón, iso é como unha das primeiras veces Eu fun a unha charla en Harvard, mas-- DAVID Malan: Entón, finalmente, a Ciencia Centro fixo aumentar o zoom no vídeo, pero non antes de capturar este tramo no que fala de Marcos, que discutiu a compañeiro de cuarto, Dustin, que quería dar unha man con esta sitio chamado o Facebook.com e entender que Mark está a piques de mencionar a programación languages-- un chamado Perl, un chamado PHP-- como discute as orixes da contribución de Dustin. Mark Zuckerberg: I comezou a funcionar o sitio e lanzou o en Harvard en febreiro de 2004. Entón eu creo que hai case dous anos agora. E dentro dun par de semanas, un algúns miles de persoas se inscribiron, e comezamos a recibir algúns correos electrónicos de persoas noutras facultades pedindo para nós para lanzalo nas súas escolas. E eu estaba levando 161 na actualidade. Entón, eu non sei se sabedes a reputación que claro, pero era unha especie de abondo. Foi un curso moi divertido, pero non me deixou con moito tempo facer máis nada con Facebook. Entón, meu compañeiro de cuarto Dustin, que eu creo acabara de CS50, era como, hey. Eu quero axudar. Eu quero facer a expansión e axudar Lo a descubrir como facer as cousas. Entón eu estaba tipo, iso é moi legal, cara. Pero realmente non sabe nada PHP ou algo así. Entón, nese fin de semana, foi a casa, Compras o libro Perl for Dummies, volveu e foi como, todo ben. Estou preparado para ir. Eu era como, cara, o sitio está escrito no PHP non Perl, pero iso é legal. Entón colleu PHP máis como algúns días porque prometer que se ten unha boa experiencia en C, PHP é unha cousa moi sinxela para incorporarse. E medio que comezou a traballar. Antes de dar un ollo agora onde o curso vai, permítame a invitar só algunhas de persoal ata o SC50 para escenario. Algúns deles están a mercar seus propios cursos. Pero se estas TFS e CAs e claro cabezas que están aquí podería vir ata e unirse a min para un Ola rápido. Permita-me presentar en particular, Hanna, María, Daven, e Rob, o curso de CS50 dirixe aquí en Cambridge. [Aplausos] DAVID Malan: En realidade, proba da estrutura de apoio que o curso ten construída ao longo dos últimos moitos anos, persoal CS50 números este ano case 100, e que está aquí en Cambridge só. Mentres tanto, en New Haven, hai algúns 40 TFS e CAs e membros do persoal alí para realizar o curso así. Permita-nos presentar en primeiro lugar, Rob Bowden. ROB Bowden: Ola. Eu son Rob. Este é o meu sexto ano TFing no curso. Así, todo o camiño de volta na miña primeiro ano, eu non tomar CS50. O seu calouro fall-- pode estar familiarizado que só se pode tomar catro cursos e hai tantos cursos hoxe. Entón eu son como, eh. Tomei AP CS meu último ano do ensino medio foi horrible. Entón, eu son como, eh. ciencia da computación non é para min. Así, pois, estaba sobre o curso de meu primeiro caer, que tiña un amigo en CS50 e Coido que eu asistir a unha charla con ela. É como, oh, que é o tipo de mellor que o que eu tiña na escola. E co paso do ano, eu tiña os meus propios conxuntos de problemas nos cursos eu estaba realmente tomando. Pero descubrín que cada vez que quería procrastinar sobre aqueles, Quere volver CS50 e ollar para algunhas das cousas que. Entón, si. Eu son legal. I procrastinação con codificación. Así, pois é a finais de a caída que eu entendo, hey, ciencia da computación é moi legal. Eu acabar tendo CS51. O próximo semestre, Eu acabar tendo CS61. E todo a partir de aí, entón eu acabar declarando ciencia da computación, que tiña absolutamente ningunha intención de facer cando entrei na facultade. E agora eu estou aquí. Así, o curso é o que fai dela. Espero que che guste. [Aplausos] DAVID Malan: Grazas a Rob. E agora María, a nosa xefe adxunto do curso. MARIA: Hey guys. O meu nome é María. Eu son un estudante de segundo ano en Cabot House, vindo de Bulgaria, e eu estou super animado para ser parte do equipo este ano. Tomei CS50 como un calouro o ano pasado, e eu nunca sequera penso CS antemán. Entón, eu absolutamente amo o curso, e eu espero que todos ama-lo tanto como eu. E, si. Benvido ao CS50. DAVID Malan: Grazas a María. [Aplausos] Agora Hanna, noso compañeiro de cabeza de ensino. HANNA: Ola, eu son Hanna. Eu son un senior na Cabot estudando ciencia da computación. Tomei CS50 como un calouro e tiña foi TFing-- este será o meu terceiro ano. Entón eu vou ser feliz implicados na CS50 para todos os catro anos, e eu estou mirando para adiante para traballar con todos vós. DAVID Malan: Grazas a Hanna. [Aplausos] E, por último, Daven, o noso precepter. Daven: Hey guys. Eu son un precepto sobre a ciencia da computación aquí. Este será o meu cuarto ano de ensino. Eu tamén axudar a xestionar o curso. Entón, eu estou seguro que vai me ver de todo, especialmente no horario de oficina. Estou sempre en horario de oficina. Entón, se me ver camiñando arredor, en definitiva vir dicir ola. Gústame coñecer todo o mundo. En caso contrario, divertirse, e eu che vexa por aí. DAVID Malan: Grazas a Daven tamén. Entón vai atender a todas as esas persoas antes de tempo. Pero sen máis delongas, se vostedes faría Quere continuar os seus lugares de antes. Permita-me presentar de lonxe agora algúns dos nosos amigos de New Haven, en especial os cabezas do curso, que vai supervisará CS50 há-- Profesor Brian Scassellati, Jason, e Andi, que só-- de xeito que non abusar da sorte con calquera FaceTime ou como-- acabamos de nos enviou minutos hai o seguinte vídeo no que dicir Hola a partir de clase na Universidade de Yale, nos cales charla está a ser transmitido no momento. Así, os nosos amigos de Yale. BRIAN Scassellati: Ola, David. Ola, todos en Harvard. Estamos tan animado por estar levando CS50 para Yale neste semestre. O meu nome é Brian Scassellati, pero todo o mundo me chama SCAS. E eu estou aquí hoxe para presentar -lle o equipo CS50. [Cheering] E o máis importante, eu son aquí para presentar ben todos os estudantes en Yale que dende esta mañá fixeron deste o máis popular curso en Yale os alumnos CS50. [Cheering] Entón, nós estamos moi animado sendo velo aquí o venres eo sábado a Rompe-día e teñen unha gran charla. Bye. [Aplausos] DAVID Malan: Na pantalla aquí os nomes dalgúns dos 140 empregados membros que espera do curso do semester-- algúns deles aquí en Cambridge, algúns deles aquí en New Haven. E, de feito, terá un oportunidade hoxe, como notas SCAS a participar CS50 enigma día. Pode ver pequenos anacos de puzzle esvarou baixo as súas portas pouco. Temos algúns extras aquí máis tarde, cando existe. Se montar os catro puzzle pezas e forzas fundir con cuartos seu próximos, no seu casa ou dormitorio, van montar nun code-- QR ou dúas dimensións de código de barras, que xa montado e dixitalizados co seu teléfono vai levar vostede para algún premio fabuloso ou- Supoño podería simplemente fotografía esta agora ben. Pero atopar estas pezas do puzzle no entanto, a fin de gañar ese fabuloso premio. E, de feito unha das tradicións en SC50-- ah, moi lento. Unha das tradicións en CS50 é servir bolo despois da primeira charla. E así, de feito, nun poucos minutos a partir de agora, haberá bolo servido no exterior tanto aquí como New Haven tamén. Pero first-- nós decoramos los nós mesmos. Pero first-- e esperanza non vai ser suficiente. Pero, primeiro, unha mirada rápido. Entón conferencias é de feito será producidos principalmente aquí en Cambridge. Pero cada mes, imos desc para Yale co equipo de produción do CS50 e córrego o curso no reverso dirección, ben así de aliñar estes dous campus verdadeiramente por primeira vez na historia tan próximas como sexa posible como un mesmo curso. En termos de estrutura de soporte que se foi incrementar-se aquí en Cambridge, así como en New Haven, son seccións. De feito, como algúns de vostedes poden sabe, temos diferentes pistas dentro do curso para aqueles menos cómodo, máis cómodo, e nalgún lugar entre o fin de que independentemente da súa formación previa, pode finalmente ter éxito na clase. o horario de expediente tanto, son unha oportunidade ás segundas e martes e xoves pola noite para traballar tanto aquí e en New Haven no noso curso de conxuntos de problemas con decenas de o persoal do curso preto de ti. Problema define todo, son soportado por cousas que chamamos orientacións, que están baseados vídeo tutoriais que realmente respondendo FAQ de onde comezar desafío dunha semana. E autopsias oriente-lo as posibles solucións de xeito que o extremo do conxunto de problemas, vostede saber o que podería ter feito de xeito diferente ou doutra forma en conxunto. O problema sitúase vir en dúas edicións, unha edición estándar que esperamos e invitar a maior parte o class-- preto de 90% máis para fazer-- e un denominado edición hackers no que cada páxina é estampada edición de hackers, hackers edición, edición de hackers, de xeito que ten que karma se quixeren, para o mergullo en versións máis avanzadas de conxuntos de problemas do curso que a cobertura ostensivamente mesmo material pero cunha visión máis sofisticada e con fondo adicional por veces introducidos. Mentres tanto, hai nove días de atraso que pode aplicar para o problema do curso define, así como a puntuación máis baixa, que caer a finais termos. Pero o que espera? Ben, un gusto do problema define na man o venres e na próxima semana onde se participa por só uns días en algo chamado de risco, a programación gráfica linguaxe desenvolvida polos nosos amigos no Media Lab do MIT que permite que para programar quere por primeira vez ou nun ambiente completamente novo usando un ambiente tipo arrastrar e soltar. En que pezas do puzzle única interlock xuntos se ten sentido lóxico para facelo. Mentres tanto, no conxunto de problemas dous no ano pasado, por exemplo, se introducimos a clase ao mundo da criptografía, a arte de cifrado ou codificación de información. En realidade, este texto aquí descifrar, vai realmente levalo a algún destino divertido. E no conxunto de problemas, o que tiñamos alumnos facer é aplicar exactamente aqueles tipos de coisas- un algoritmo, ou un conxunto de instrucións para barallar e codificación de información. E na edición de hackers dese mesmo conxunto de problemas, fixemos desafiar os alumnos a tomar unha arquivo encriptado dun ordenador típico sistema con lotes de nomes de usuario e contrasinais cifradas e para romper esas passwords-- realmente descubrir o que estaban sen saber nada A priori sobre aqueles contrasinais reais. Mentres tanto, nós transición no problema define, a continuación, ollando para o mundo dos gráficos. E, de feito, que pode imaxinar agora que isto talvez puidese ser o xeito máis sinxelo para representar unha imaxe en branco e negro. Un pixel branco ou cadrado, como na parte superior dereita alí, pode ser representada con a 1 e un cadrado negro pode ser representada cun 0. E só usando máis bits como nós proposto anteriormente con 72 e 73 e 33, poderiamos representar píxeles da cor tamén. E o que facemos durante ese conxunto problema é xeralmente toman un paseo campus cunha cámara dixital, sacar fotos de persoas, lugares e cousas. Entón, dalgunha forma, cada semestre, parece que accidentalmente eliminados ou danarse a tarxeta de memoria en que todas as fotos son, e así é desafiado para, a continuación, escribir software co cal se recuperar eses JPEGs a partir dunha copia da tarxeta de nosa cámara. Mentres tanto, podemos entregar-lle máis tarde na o termo un dicionario de palabras en inglés que ten 143.000 palabras, e ten que vir cara arriba con un xeito intelixente de cargalos na memoria, ou RAM por así dicir, para responder consultas de forma: é esta unha palabra, É esta unha palabra, a posta en marcha da corrector ortográfico máis rápido que pode, mesmo fixando-se potencialmente contra os compañeiros para ver que usa a menor cantidade de tempo Ao executar o seu código e mesmo a menor cantidade de memoria. Posteriormente, no prazo que realmente aplicar o seu propio servidor web. Polo tanto, non só un sitio nun linguaxe chamada HTML e moito máis, pero un servidor web que realmente escoita solicitudes en internet e responde a eles. E, de feito, é así que cubrir noso mundo de C co que familiarizarse-se a próxima semana e PHP e HTML e JavaScript e CSS e similares. Xa que unha primeira banda baseado proxecto que facemos ao final do prazo é historicamente CS50 Finanzas. estilo Etrade.com un sitio web que permite Lo a mercar e vender accións practicamente á vez, escribir código para falar con Yahoo Finanzas quedando stock semi tempo real cita, a fin de actualizar súa propia carteira. Pero, por último, por suposto, é o último project-- unha oportunidade de facer máis nada seu interese para resolver un problema aquí ou alén do seu interese vostede que é de algunha maneira inspirada polas leccións aprendidas na clase. E a clase, como ten que saber, culmina no chamado CS50 hackathon e Fair CS50 e calquera número doutros eventos culturais ao longo do semestre que permiten que se participa entre si e os funcionarios do curso. Por exemplo, no Fire and Ice en sitar este ano, así, nas tardes de venres, invitados a uns 50 alumnos para o xantar, quenquera Quere unirse a nós, eu mesmo, e os funcionarios, e os nosos amigos da industria e ex-alumnos para falar sobre a vida no mundo real e ademais, mentres goza dun bo xantar. No hackathon será ve esas imaxes xa que estes, incluíndo a abundancia de candy-- ea partir de 2014, por primeira vez-- legumes. [Aplausos] Pero antes das 5:00 AM, fai a escena normalmente mirar un pouco algo así. E, a continuación, só unha semana ou despois, é a Feira CS50 á cal algúns Plus 2000 alumnos e funcionarios e profesores membros de todo campus e en campus este ano veñen a ver e pracer na obras de estudantes CS50, que agora é vostede. E, de feito, mentres que este ano imos ser invitado e büsing ninguén no de Yale que quere chegar ata Cambridge hoxe para CS50 enigma Día, e nós imos facer exactamente o mesmo en decembro para o CS50 hackathon para que Harvard e Yale estudantes participan iguais en ambos estes eventos. Imos tamén realizar feiras CS50 en Cambridge e en New Haven este ano para que os alumnos en ambos campus e funcionarios e profesores Pode ver cada respectivo realización do campus. E esas realizacións vai inducir tal memoria como esta e esta e, finalmente este, en que todos lle saír da clase usando un pouco algo no que era esperamos feliz ou orgullo de dicir que eu levei CS50. Pero antes diso e antes de servir o bolo, poñemos together-- grazas a CS50 de equipo de produción e unha certa auto vara, a única ocasión que usan tales cousas for-- cando foi enviado a non só aquí para Cambridge pero tamén para New Haven para reunir algunhas hellos do Os funcionarios do curso e as persoas vai atopar tanto aquí como en Nova Haven nos meses seguintes. Permítame presentar un pouco máis de despacho de CS50. Mark Zuckerberg: Será que isto facelo ir? Oh, está indo. Vai. Ooh. Yarr! [Música tocando Andy Grammer, "Mel, eu son  GOOD "] MARY: Este é Caitlin. Isto é Jay, e eu son Mary. SATO: Ola, persoal. Estou Sato. MICHAEL G.: Hi. O meu nome é Michael, G. Doug LLOYD: Non son. Non. Estou Doug Lloyd. Eu non podo crer que estou seguro un selfie estar agora. COLUMNA 4: Hi. COLUMNA 5: Hi. COLUMNA 6: Ola. COLUMNA 7: Hi. COLUMNA 8: Hey. Estamos camiñando en Yale. Estamos realmente animado para neste semestre porque é a primeira vez que está a benvida para Yale. Vai ser incrible! [Reprodución de música] JACOB SCHERBA: O meu nome é Jacob Scherba. Estou animado para ensinar CS50 porque creo que traen ciencia da computación para persoas e en forma accesible. COLUMNA 9: Estou realmente animado para ensinar CS50 porque eu levei a clase o ano pasado, e é unha das mellores clases. COLUMNA 10: Si. O meu consello é que ten que tomar CS50. JACOB SCHERBA: Eu escollín CS porque Creo que é unha forma divertida e creativa para resolver problemas de forma analítica. COLUMNA 11: Cando eu era un pouco Caloiro e con medo de ciencia da computación e medo de facer enxeñaría e outras cousas, foi a primeira clase duro eu tomei, e foi tamén a miña clase favorita sempre. Doug LLOYD: Este é o meu novena CS50 ensino ano. Faime soar tan vello! Sempre hai algo novo. Sempre hai algo emocionante. Sempre hai novos retos enfrontados polos novos alumnos, e é divertido para axudalos probar os retos con eles e axudalos a resolver os seus problemas. COLUMNA 12: Cando primeiro aprendín a facer CS, era como a aprendizaxe dunha super potencia. E a ver que noutros estudantes e para axudalos a través deste proceso é un dos máis cousas gratificantes que eu xa. COLUMNA 7: Eu escollín porque no CS comezando, eu era un concentrador de matemáticas e eu levei CS50 e namorouse el. Tamén sentín que con CS, eu podería construir cousas. E iso, penso, era un aspecto moi legal. COLUMNA 13: Algúns consellos para a nova estudantes é ir ao horario de oficina e saír coa impresionante TFS. COLUMNA 14: Comeza o P-sets cedo, ir ao horario de oficina, facer frends co TF. COLUMNA 15: Si. Todo o que ela dixo. COLUMNA 16: Non sexa medo de pedir axuda. COLUMNA 17: Si. COLUMNA 18: Comeza o P-sets cedo. COLUMNA 19: É unha grande experiencia social. Facer unha chea de amigos desa forma. COLUMNA 14: Vaia á sección É divertido. COLUMNA 11: É dicir, ir a el. É realmente difícil. Vai saír dela o que poñer nel, pero é un realmente divertido clase especialmente se está dispostos a poñer o tempo para el, pero axuda se pon o tempo para el. Vai ser moito máis fóra del máis tarde. MIKE: Eu son Mike. Camille: Eu son Camille. Hanya: Eu son Hanya. Matt: Eu son Matt. PETER: Eu son Peter. PHILLIP: Eu son Phillip. PATRICK: Eu son Patrick. ROB Bowden: Eu son Rob Bowden. BRIAN Scassellati: My nome é SCAS e isto-- ALL: --is CS50. COLUMNA 20: En Yale. COLUMNA 21: En Yale. [Risas] DAVID Malan: Isto é todo para CS50. Imos velo desde Yale en Venres, Quebra-día o sábado. O bolo é agora servido. Este é CS50. [Reprodución de música]