[REPRODUCCIÓ DE MÚSICA] [Aplaudiments] DAVID J. Malan: Aquest és CS50, Introducció de la Universitat de Harvard l'intel · lectual empreses de ciències de la computació i l'art de la programació. Ara bé, si vostè està entre aquells que tots els anys estan asseguts aquí amb una mica de nervis en la seva ment, tal que no pensa que vostè pertany aquí, vostè pensa que la majoria qualsevol persona que se senti al teu voltant sap molt més del que, és de fet més còmode del que a l'ordinador la ciència o els ordinadors més en general, s'adonen que el 78% dels estudiants que ara prendre CS50 no tenen experiència prèvia. De fet, hi ha 100 punts no a la pantalla, 78 dels quals són de color verd sòlid, que significa, si vostè està entre aquest grup demogràfic, estan en molt bona companyia a partir d'ara. I si vostè està en el seu lloc entre els 22% dels estudiants CS50 que fan de fet tenir experiència prèvia, ja sigui en escola secundària o algun altre programa, adonar-se que, també, ser impugnada en el curs. No només tenim diferents pistes per als estudiants menys còmode i més còmode per igual en seccions, També han cridat edicions de hackers de més butlletins de problemes que posarà a prova a aquells estudiants amb aquesta experiència addicional per explorar material semblant però des d'un més perspectiva sofisticat. Però, què és la informàtica? Doncs bé, en última instància, el que va a qüestió a mesura que explora aquest camp no és tant on acabes en relació amb els seus companys de classe, però on tu mateix acaben en setmana 12 enfront d'on vostè comença aquí en la setmana zero. Ara ordinador science-- bé, anem a cridar la ciència de computation-- on la computació és realment només una forma elegant de dir, tenint alguna entrada, produir alguna sortida, i fer-ho pels algoritmes que s'executen, conjunts d'instruccions per resoldre algun problema en les entrades amb la finalitat de produir una sortida o solució en la qual vostè està interessat. Així que recentment hem tingut ocasió per viatjar fora a Califòrnia per reunir-se amb una alumna. El seu nom és Susan Wojcicki. I a ella li agradaria parlar a vostè aquí en vídeo per donar testimoni de com aplicable fins i tot només una mostra de l'ordinador la ciència en la nivell introductori pot ser. Encara que no va a perseguir ciències de la computació com un camp, o fins i tot d'enginyeria, o STEM més en general, veuràs, de fet, com un determinat Per descomptat el va influir en la seva vida. I ella només ho prenem quan ella era estudiant d'últim any aquí a la Universitat de Harvard. Si poguéssim apagar els llums per Susan. SUSAN Wojcicki: Hola, món. Sóc Susan Wojcicki. Sóc el CEO de YouTube. I vaig prendre CS50 quan era el seu últim any a la Universitat de Harvard el 1990. Jo estava en realitat una història i gran literatura. I el meu tercer estiu, Em vaig adonar que potser volgut aprendre alguna cosa sobre les computadores. I així, he tornat. Vaig prendre CS50. Va ser difícil, però va ser la més classe increïble que vaig prendre. Va canviar la meva manera de pensar sobre tot. I quan em vaig graduar de la Universitat de Harvard el 1990, vaig anar a Silicon Valley. I tinc una feina. I he estat treballant en tecnologia des de llavors. DAVID J. Malan: Ara el que Susan no va esmentar en aquest vídeo, que en realitat va ser en el seu garatge que el mateix Google era fundada per Larry i Sergey. Ara també arribem als nostres amics en code.org, una organització que en l'últim any ha estat fer que la gent en particular entusiasmat amb la informàtica i programació, en particular. Però val la pena assenyalar que la programació No és ciència de la computació per se. La informàtica no és la programació. Més aviat la programació és només una tool-- amb la que tots vostès serà molt ben familiaritzat per end-- del semestre de manera que no es pot aplicar només per a cursos futurs en CS però a qualssevol camps d'on véns, a les humanitats, ciències socials, naturals ciència, o similars. En efecte, permetre que alguns altres exalumnes i els seus col · legues parlar amb l'aplicabilitat del camp que l'espera. BILL GATES: Jo tenia 13 anys quan em primer té accés a un ordinador. Jack Dorsey: Els meus pares em comprat un Macintosh el 1984 quan jo tenia vuit anys d'edat. Mark Zuckerberg: jo era en el sisè grau. ALTAVEU 1: aprendre a codificar a la universitat. Ruchi Sanghvi: primer any de carrera, primer semestre, Introducció a la Informàtica. BILL GATES: Vaig escriure un programa que va jugar tic-tac-toe. DREW HOUSTON: Crec que era inicis molt humils. Crec que el primer programa Em va escriure preguntar coses com, Quin és el teu color preferit? O quants anys tens? ELENA SILENOK: La primera vegada que va aprendre com fer un cercle verd i un quadrat vermell apareix a la pantalla. Gabe Newell: La primera temps que en realitat tenia alguna cosa vingui i digui, hola, món. I vaig fer un ordinador faci això. Va ser simplement impressionant. Mark Zuckerberg: Aprendre al programa de no començar com voler aprendre tot de la informàtica o tractant de dominar aquest disciplina ni res d'això. Simplement va començar perquè jo volia fer una cosa simple. Volia fer alguna cosa que va ser divertit per a mi i les meves germanes. I vaig escriure aquest petit programa. I llavors, bàsicament, només afegit una mica a ella. I després quan ho necessitava per aprendre alguna cosa nova, El vaig buscar, ja sigui en un llibre oa Internet, i després s'hi va afegir una mica a ella. DREW HOUSTON: En realitat no és a diferència de tocar un instrument o alguna cosa o jugar un esport. DAVID J. Malan: Molt bé. Així que vegem ara en realitat bussejar una mica més profund. Quines són aquestes entrades i sortides que estem parlant aquí? Així que què tal cosa senzilla? Vostè probablement sap, fins i tot si vostè té cap familiaritat amb la informàtica algun, que els ordinadors utilitzen d'alguna manera i entén només zeros i uns. Però, ¿com pot possiblement ser que tenint en compte el ordinadors d'escriptori i ordinadors portàtils per igual tant de l'actualitat pot fer? L'ADN del dia, l'únic alfabet que entenguin és un zero o un u. Bé, consideri això. Nosaltres, els humans, tendim a utilitzar el sistema decimal. "Desembre", és a dir 10. I això és 10 perquè tenim 10 dígits, del 0 al 9. Ara ordinadors, per contra, tendeixen a utilitzar binari. "Bi", que significa dues. Així que ells tendeixen a usar només zero i un. Però resulta, que fins i tot només amb zeros i uns, que és prou gran alfabet amb la de representar més qualsevol peça de dades que desitja, si es tracta d'un nombre, si es tracta d'una carta, ja sigui un gràfic o vídeo a la pantalla. Considerem, per exemple, com els éssers humans típicament interpretar aquest número aquí. Això és només tres dígits, un, dos, tres. Però sabem que aquest nombre innatament ara com 123. Però per què és això? Bé, si vostè pensa de nou que potser l'escola primària, és probable que se'ls va ensenyar a pensar aquests nombres com estar en columnes, on l'un és en els centenars lloc, els dos està en el lloc de les desenes, i els tres és al lloc de les unitats. Per què és que realment útil? Bé, pensar en el super simple aritmètica que tots hem estat fent des de fa anys. Efectivament, si tens un en el lloc de les centenes, vostè fa la matemàtiques ràpida 100 per 1 més 10 vegades 2-- perquè dos està en les desenes lloc-- més 1 vegades 3-- perquè tres és al lloc de les unitats. Així que, per descomptat, si ens realment multiplicar això, el que realment estem representant amb aquest pattern-- 2 tres-- és 100 més 20 més 3, que, per descomptat, és 123. Ara binari, i els ordinadors realment, fonamentalment parlar el mateix idioma el que fem. Només tenen un alfabet més petit. Així que els ordinadors només tenen zeros i els que disposen. Així, mentre que els éssers humans tenen essencialment potències de 10 en cada un d'aquests places-- 10 a la zero, 10 a la 1, 10 als dos, que li dóna 110 i 100 respectivament. A causa que els ordinadors només tenen dos valors que puguin entendre, zero i un, han d'utilitzar diferents valors de en aquestes columnes, una, dues, quatre. I si seguim endavant, vuit, 16, 32, 64, i així successivament. Però el patró i el mentalitat és exactament el mateix. Esta és la lògica, qualsevol persona, com M'ocupo del que representa el nombre un en binari? Si mai has pensat en això abans, què diu el teu instint? AUDIÈNCIA: Una. DAVID J. Malan: Una. Exactament. Només necessitem un un a la els lloc perquè els zeros suficient per donar-nos ni un quatre ni un dos. Així que una vegades un és igual a un. Ara les coses es posen una mica interessant. Si jo vull representar a binari el nombre dos-- però, de nou, encara que mai ha parlat aquest idioma abans, Com ens representem en binari el valor dels éssers humans coneixen com dos? Zero u zero. Només cal posar l'un al la columna que ho desitgi. Ara s'està fent bastant fàcil probablement ara. Així que si vull representar tres-- no hi ha cap columna de tres. Així que, de nou, ara puc afegir aquests valors junts posant un un aquí. Així que 2 vegades 1 més 1 vegades 1 és, per descomptat, 3. Ara les coses es posen una mica de diversió que els que ara es converteixen en zeros. I per representar 04:00, em surt això. I si incrementem lentament aquí-- que hauria cinc. Això seria 6. Això seria 7. Però ara em sembla que tenen executar en un problema. Com podria jo anar sobre el que representa eight-- seria el següent valor. Sí, per la qual cosa necessitem un nou bits. I, de fet, si no tens escoltat aquesta frase abans, trossets, això és només l'abreviatura d' dígit binari, zero o un. I així passa que representar només tres d'aquests trossets aquí. Però si tingués una forma de no emmagatzemar tres diferents bits, però quatre, segurament jo podria representar 8, i després 09:00, i després 10, i fins i tot més i més alt. Però que després diu en dubte la forma en què podem anar sobre la representació d'aquests les coses en el primer lloc. És una cosa per dibuixar ells aquí a una diapositiva, però com representar si vostè és un dispositiu mecànic? El que està fent un equip per representar les entrades i sortides que fonamentalment definir còmput al final del dia? Bé, què passa amb alguna cosa super simple com això? És només una bombeta. I puc activar aquest bombeta per anar a girant una mica d'electricitat en i permetent que els electrons a fluir a través, que canvia el seu estat o el seu valor, per dir-ho. Per exemple, aquest és un llum d'escriptori de la vella escola aquí amb un d'aquests bombeta de llum a l'interior de la mateixa. I en aquest moment no és realment fent alguna cosa útil. Però tan aviat com em connecto a un endoll elèctric i després utilitzar aquesta switch-- o fins i tot podem anomenar un transistor o pensar en ell com a tal-- Ara puc representar tant aquest valor, on la bombeta de òbviament, fora de, o aquest valor. Aquest valor o aquest valor. Aquest valor i així successivament. Així interior d'un ordinador, presumiblement, són peces molt més petites de maquinari, però que al final del dia simplement tenir utilitzar electricity-- potser capturar it-- i després mantenir, ja sigui alguna cosa o mantenir alguna cosa fora. Per descomptat, això no és particularment interessant de fer amb una sola bombeta. De fet, ¿quina altura puc explicar en binari amb aquest llum d'escriptori aquí? AUDIÈNCIA: Una. DAVID J. Malan: Un, no? Necessito més làmpades d'escriptori si realment vol explicar més. Però podem fer alguna cosa millor que això. A causa que les bombetes que hem posat en aquestes coses són bombetes realment elegants que abans li permetia. I en realitat són bombetes connectades en xarxa. I raïms d'empreses fer aquestes coses en aquests dies. Però resulta que aquest en particular ve amb una característica mitjançant el qual vostè pot canviar els seus colors. Així, per exemple, si vostè adornat la seva habitació de la residència amb alguns d'ells la llum bombetes, depenent del seu estat d'ànim, depenent de qui entra, depenent del clima, depenent de l'hora del dia, en realitat es pot canviar els colors de les bombetes de la seva habitació. I això és perquè aquest la llum bulbs i altres com ell tenen el que hi ha anomenada API, una aplicació interfície de programació, que És un tema amb el qual vostè estarà bé familiaritzat amb el final del semestre. I això és només una suposició, manera críptica de dir, vostè pot programar aquest la llum bombetes per fer la seva fer una oferta. Vostè pot enviar missatges igual que vostè, un ésser humà, pot enviar un missatge a un servidor web dient dóna'm notícies d'avui o donar-me el meu correu electrònic. Vostè pot enviar més arcana missatges a aquestes bombetes dir, encendre i apagar. Però això no és tan interessant. Es pot dir, enceneu el vermell, encengui verd, enceneu blau, tots amb la mateixa bombeta. I fins i tot es pot, amb una mica més intel · ligent, diuen, entrega't a blau quan és un dia ombrívol exterior, per exemple. En realitat, pot apedaçar en una API de temps i saber com està el temps, o el temps de dies, o altres factors desencadenants. Així, de fet, dos dels Mateixos membres del personal del CS50, Dan Bradley i Ansel Duff aquí, amablement va procurar nosaltres un munt d'aquestes bombetes. I van construir de CS50 primers bulbs mai binaris, on hem representat aquí-- amb aquests petits magnets-- juganer els diversos marcadors de posició que nosaltres al·ludit fa només una mica. Així que fins aquí és el les lloc, dos, quatre. I no hem vist més que això. Però, per descomptat, que són potències de dos. Vuit, 16, 32, 64, i 128. Així que si jo ara vull ser una mica més luxós que l'ús d'aquest interruptor de la vella escola, Que tinc aquí en aquest iPad una interfície super simple que Dan Bradley, ex estudiant i company que ara ensenya, programat utilitzen una part de HTML i JavaScript, que són marques i programació idiomes respectivament. I vostè pot probablement veure-- fins i tot en la part posterior-- hi ha una gran avantatge i un gran inconvenient, més un botó per a cadascuna d'aquestes bombetes. I el que això em permetrà a no és, per exemple, feu clic al signe més i ara representen, de Per descomptat, quin nombre? Una. I puc colpejar de nou. Dos. Tres. Quatre. Cinc. Sis. Set. I aquí ara hem de rollover, però tenim un quart bit d'aquest temps, així que ara tenim vuit. Així que podríem fer això des de fa força temps. De fet, en un apart, què tan alt podríem comptar? Algú? AUDIÈNCIA: 255. DAVID J. Malan: 255, oi? No es preocupi massa sobre els càlculs per ara, però això és un nombre bastant decent. Però en realitat no només obligat quantes peces d'informació, com una carta, o un gràfic que podríem representar. Però no importa per ara. Vaig a seguir endavant i que estiguin apagats. I si pogués, m'agradaria demanar voluntari, el nostre primer volunteer-- oh, hello-- a l'escenari. El problema és que has de ser apareixent còmoda, ja que clarament es troben al davant de tots els seus companys de classe, així com a l'Internet. I m'ho dius a mi mirar una mica més enllà ell-- Què hi ha aquí a la camisa blanca? I de la mà cap amunt. Anem amunt. Quin és el teu nom? AUDIÈNCIA: Jackie. DAVID J. Malan: Jackie. Jackie, anem a dalt. Així que el que hi ha també en aquest iPad és un botó anomenat Mode de joc. I aquesta manera de joc és em permetrà a l'entrada per endavant una xifra determinada nombre, els números dels éssers humans som familiaritzats. I llavors seràs reptat aquí per utilitzar els botons per una top-- per cadascun d'aquests bulbs-- d'entendre realment a terme el patró de bombetes que representa el nombre en qüestió. I ho sento, quin era el seu nom? AUDIÈNCIA: Jackie. DAVID J. Malan: Jackie. Bé. Encantat de conèixer-te. Així que m'ho dius a mi anar per davant i el programa de perquè el món vegi el número 15. Anem a mantenir petit al principi aquí. I jo vaig a entrar en la Manera de Joc. I jo vaig a especificar, ens donen el nombre 15. Okay. I ara amb tothom watching-- si vol destacar potser d'aquesta manera, perquè va a alinear up-- seguir endavant i alternar els vuit botons al llarg de la part superior per encendre les bombetes en o fora com millor li sembli. AUDIÈNCIA: OK. DAVID J. Malan: I sense trampes colpejant més 15 vegades. Oh, farem això. AUDIÈNCIA: Oh, espera. Ho sento molt. DAVID J. Malan: També pot activar les bombetes en forma individual amb cada un d'aquests botons a la part superior. AUDIÈNCIA: Oh, OK. Així que seria com-- DAVID J. Malan: OK. Així que ara tenim vuit. Així que farem una pausa per al audiència a participar aquí. Quin nombre és Jackie actualment representen? 11. Així que ja gairebé estem allà. I excel · lent. Així que tenim el nostre primer guanyador. Felicitacions. I nosaltres pensem que el tenen alguns regals fabulosos. Si desitja ser un d'aquests Dorm Room aquí al campus, podeu tenir un projecte final utilitzant ara aquesta API, gràcies a Jackie. Així ara-- [Aplaudiments] --si vam poder, una més tals al voltant d'aquest. Oh, ara tothom vol algunes bombetes. Per l'anomenada edició hacker, anem a la rampa cap amunt un-- oh, sí, evasiu. Crec que està arribant ara si la mà va cap avall. Quin és el teu nom? AUDIÈNCIA: Alex. DAVID J. Malan: Alex, vine aquí. Així que per a Alex, anem a programa en un nombre lleugerament més gran. Potser en ordre. El nombre 50. AUDIÈNCIA: OK. DAVID J. Malan: Però, com Jo dijiste-- i és possible que vull estar aquí pel que els botons s'alineen com era d'expect-- però ho vaig fer anomenar aquesta l'edició dels pirates cibernètics. Llavors-- bona sort! [Rialles] Vostè serà capaç de convertir a retirar-se si usted-- acord. Excel · lent. Meravellós. Felicitacions. [Aplaudiments] Suposo que hauria de pagar. Felicitacions a Alex també. Okay. Així que el menjar per emportar definitiva aquí és d'esperar, francament, la simplicity-- la senzillesa amb la qual vostè pot aconseguir una mica de llum agradable bombetes, pel que sembla en [inaudible]. Però ells representen, en última instància, les mateixes idees amb la qual els éssers humans som ja massa familiar. Llavors, què podria la propera pas sigui en la progressió d'intentar fer alguna cosa interessant amb les dades i en representació de les entrades que no són només números, però són potser les lletres o més? Bé, resulta que la món de la informàtica, durant molts anys, simplement adoptat una arbitrària sinó una estàndard consistent que assigna números a les lletres de l'alfabet. Per exemple, aquí hi ha un extracte d'aquesta assignació. Es diu Ascii. A-S-C-I-I. I això és simplement una taula que assigna letters-- majúscules en aquest cas-- nombres decimals. Però quina és la implicació? Bé, si vostè realment vol que el representi una mena correu electrònic o una mica de text en una pàgina web, òbviament vol mostrar les lletres humans de la alfabet, no números. Així que depenent de la context del programa que un usuari està fent servir, si és un navegador web o client de correu electrònic, nombres sense dubte pot ser interpretat com lletres. És a dir, els patrons de bits poden fàcilment ser interpretat com lletres. I així el que podem tenir és la lletra d'un ésser representat com 65, B sent representat com 66. Així que si tenim un super paraula curta, com hi, el que un ordinador faria en última instància, botiga a decimal, però en realitat en binari, usant una seqüència de bits, l'aprofitament una mica d'electricitat d'alguna manera, serien els dos números 72 i 73. Però el patró de bits que representa aquests valors. Així que aquests són, llavors, com podem representar les nostres entrades i sortides. I cal dir, que podem fer representacions més complexes en última instància, amb coses com gràfics, vídeos, música i més com veurem més endavant aquest terme. Així que li toca a continuació, algoritmes, aquests conjunts d'instruccions amb la qual estem resolent problemes reals. Estem passant d'entrades als algoritmes. I aquests algoritmes estan produint sortides, sortides d'esperar correctes i és d'esperar, també, recollida eficient sortides. En altres paraules, és una cosa implementar alguna cosa correctament. És una altra cosa per posar en pràctica alguna cosa bé o de manera eficient. Per exemple, una demostració que som aficionats a en el curs és aquest. Però aquestes coses estan cada vegada més difícil de trobar. Però això és de fet una vella escola guia telefònica, dins dels quals són 1.000 pàgines, més de noms i números de telèfon. I si volia mirar cap amunt algú en aquest directori, Jo podria simplement fer una algoritme molt ingenu. Jo podria obrir-se a la primera pàgina, i Podria començar a buscar, per exemple, algú anomenat Mike Smith. I si ell no és a la primera pàgina, avanço a la segona, i després a la tercera, i després a la quarta, i així successivament, fins que per fi vaig trobar Mike Smith. Ara és cert que l'algorisme? AUDIÈNCIA: Si. DAVID J. Malan: Si. Si ell hi és, vaig a finalment trobar-lo. Però no és sens dubte molt eficient, sens dubte no és ràpid, perquè, Déu meu, ¿per què estic perdent el temps flipping a través de totes aquestes pàgines quan podia certament fer això físicament més ràpid? Bé, una lleugera optimització, de manera que parlar, podria ser no una pàgina alhora, però dos, quatre, sis, vuit, 10. Encara correcta? AUDIÈNCIA: No DAVID J. Malan: Així que no si per exemple saltar sobre Mike Smith. Però sempre que faig una còpia de pedal una pàgina, si ho excés, potser podríem corregir el d'una altra manera podria ser una de Gotcha. Però, ¿és millor? És més ràpid? Vull dir, si. És, literalment, el doble de ràpid si ho faig dues pàgines alhora. Així que si jo tenia originalment 1.000 pàgines, Ara només he de donar la volta 500 vegades, no està totalment de 1.000 pàgines per obtenir potencialment en el pitjor dels casos fins al final del telèfon llibre, on algú com Mike Smith o algú amb un nom més endavant podria ser en realitat. Però, és clar, els éssers humans no són certament farà que, sens dubte no en aquest moment de les nostres vides. Què és un raonable humà probable que farà? AUDIÈNCIA: Anar directament a The9 de S. DAVID J. Malan: Anar directament als de S? Com puc anar directament als de S? AUDIÈNCIA: Rip per la meitat. DAVID J. Malan: Bé, no hi ha marca. Així que, sí, si no eren de fet una etiqueta o una llengüeta enganxosa per S, hem de saltar a la dreta allà. Però és bastant innocu. Així que el millor que puc fer és més o menys a la secció S o potser més o menys en el medi. Però el punt clau ara-- i la intuïció que vostè ha pres per atorgat per anys probablemente-- és que el que fas ara saber sobre aquest problema? AUDIÈNCIA: [inaudible] DAVID J. Malan: Mike Smith és sens dubte no en aquesta meitat del problema perquè Smith ve després de la meitat que és aproximadament la secció M, sembla ser. Així com vostè pot ser que hagi vist en Visites, ara podem, literalment, trencar aquest problema a la meitat. AUDIÈNCIA: Woo! DAVID J. Malan: És cada vegada més fàcil i més fàcil. [Aplaudiments] Aquí el tens. [Rialles] I ara, fonamentalment, tenen el mateix problema, però és, literalment, la meitat de gran. Encara estic buscant a Mike Smith. I m'atreveixo a dir, que encara pot buscar-lo en la mateixa forma, dividir el problema en un mitjà de nou, arrencant de nou el problema al mig, que ara em deixa amb un problema quart de la mida, llençar dràsticament que la meitat de distància, i repetir aquest procés una i altra vegada i una altra, mirant cap avall en cada punt per veure si Mike Smith està en la pàgina en qüestió. Ara, si ho faig bé, en última instància, em trobo a mi mateix amb només una pàgina en la qual Mike Smith és si ell està de fet en la guia telefònica. Per descomptat, jo podria Mai més cridar Mike. Però el punt aquí és que si comencem amb 1.000 pàgines, el meu primer algoritme, voltejar la pàgina, potser 1000 vegades-- definitivament menys perquè és un nom de S i no un nom Z, però com tants com 1.000 pàgines potencialment. Segon algorisme, millor. 500 pàgines. En tercer algorisme, però, quants passos oi prendre per dividir una pàgina de 1000 llibreta de telèfons enmig d'aquesta manera? 10, més o menys. Així que només per moure d'una tirada a través d'aquest guia telefònica, el busseig i la conquesta, per així dir, 10 vegades, faré el meu camí cap avall a penes una sola pàgina. I així podem copsar aquesta intuïció ara una mica gràficament si només es considera aquesta super simple gràfic. Estem en l'eix x, o horitzontal eix, és la mida del meu problema, el nombre de pàgines de la guia telefònica. I científics de la computació en general, com per cridar la mida d'un problema n, on n és només una variable que represents-- en aquest cas-- nombre de pàgines. L'eix i vertical, o, aquí està serà el moment de resoldre, potser el nombre de voltes de pàgina, Potser el nombre de segons o minuts, qualsevol que sigui la seva unitat de mesura és. I pel que aquesta línia vermella representa el primer algoritme, perquè hi ha una 1-1 relació entre el nombre de pàgines i la quantitat de temps que triga. Si Verizon duplica el nombre de pàgines de la guia telefònica l'any que, meva carrera temps-- la temps necessari per executar que primer algorithm-- es duplica en el pitjor dels casos. Però el segon algorisme, on sóc voltejant per dos, requereix menys temps per un problema determinada mida. Així que si tinc això molts Avís pàgines aquí-- que la línia groga suggereix menys temps per resoldre. I, en efecte, representa, direm, n més de dos. Però el que és la forma de la tercera i la corba final, va a semblar? Sí, ha fet anar a Mira-- I no sap el que anaves a dir. Però anem a veure el que anaves a dir. AUDIÈNCIA: Igual que. DAVID J. Malan: Va a semblar això un exactly-- slope-- logarítmica pel que vostè té aquesta curiosa pendent. Ja no és una línia recta. I el que és convincent sobre això és que tot i que el gràfic està ara tallada, es pot extrapolar en el seu importa que aquesta línia verda no és augmentarà en altura de tot el que molt a mesura que avanci encara més per aquest eix horitzontal. De fet, Verizon, per exemple, podria duplicar el nombre de pàgines al telèfon llibre entre aquest any i l'any que de 1.000 a 2.000 pàgines, però no és gran cosa. Amb aquesta tercera i última, hi ha un algorisme intuïtiu de dividir i conquerir. Em va a prendre com més passos l'any que per trobar algú agradaria Mike Smith? AUDIÈNCIA: Una. DAVID J. Malan: Només n'hi ha una. I poden quadruplicar ell, és em va a prendre només dos passos més i així successivament. I pel que aquesta és una prova de la veritat cuidat disseny i una mica d'estima per la les seves entrades són poden fer encara millor. Ara estem enganyant 1 poc en el sentit que estem aprofitant una suposició. Quina és la meva hipòtesi sobre el nostre directori telefònic que em va permetre dividir i conquerir d'aquesta manera intuïtiva i segueix sent correcta? AUDIÈNCIA: [inaudible] DAVID J. Malan: Si. Pel que se li va ordenar. Va ser ordenada alfabèticament per l'empresa guia telefònica. Si estigués en ordre aleatori, que seria un infern d'una guia telefònica, però certament no ho faria prestar-se a que l'algorisme Jo solia, perquè mai ho faria només succeirà en tota Mike Smith si es mantenia la divisió en mitjà d'aquesta manera per casualitat. Així que ara anem a formalitzar el que és clarament intuïtiva. Així que una cosa que es diu pseudocodi és on anem a començar alguns dels nostres problemes inicials. I aquesta és una forma genèrica de descriure un algoritme o un programa d'ordinador, no usant C o C ++, o Java, o qualsevol llengua específica, però només mitjançant Anglès, amb que qualsevol ésser humà pot estar familiaritzat. I podríem escriure el pseudocodi per aquest problema de la següent manera. Pas un, recollir la guia telefònica. Segon pas, oberta a mitjans de la guia telefònica. Tercer pas, mirar els noms. Pas quatre, si Smith es troba entre noms-- I ara es tracta d'una constructe interessant. És un punt de decisió. És una forquilla a la carretera, si serà, una branca, per així dir-ho. Així que vaig a sagnar només per convenció step-- no cinc-- que és per exemple, vaig a trucar a Mike. Així que aquesta sagnia, totalment convenció humana arbitrària, però és simplement la intenció de transmetre semànticament que si Smith es troba entre noms, llavors he de trucar a Mike. Mentrestant, en el pas 6, previ avís que el sagnat s'ha anat. Així la resta és un altre forquilla al carretera, l'altre camí que podria viatjar. Així la resta si Smith és anteriorment en el llibre, el que és el meu següent pas, probablement, va a ser aquí? AUDIÈNCIA: Vostè va a l'esquerra. DAVID J. Malan: Sí, així que anar a la meitat esquerra de la guia telefònica. Llenci a les escombraries la meitat dreta si Smith és anterior al llibre. Així oberta a la meitat la meitat esquerra del llibre. I després pas 8, passi a la línia de tres. I això és un bucle curiós que sóc induir una recursivitat per dir-ho. Però més sobre això en el futur. Estic usant mi mateix algoritme, mi mateixa pseudocodi, per resoldre el mateix problema de nou perquè l'únic que ha canviat és la magnitud del problema, no el meu objectiu, i no a la persona Jo estic buscant. Així que puc tornar a utilitzar l'algorisme que ja he definit. Perquè si Smith és tard en llibre-- et poden adivinar-- oberta a la meitat la meitat dreta del llibre. I de nou, anar a la línia de tres. Else-- el que és l'última línia en aquest programa serà? Si ell no està entre els noms a la pàgina que estic a, si no és a principis de el llibre, i no més tard de en el llibre, ¿què sé jo és veritat el de Mike Smith ara? AUDIÈNCIA: No està en el llibre. DAVID J. Malan: No està en el llibre. Així que el millor que puc fer és donar-se per vençut i deixar d'aquest programa. Bé. Així que en aquest punt, anem a fer una ràpid recorregut per alguns del que l'espera. I, de fet, m'acompanyen aquí per un nombre de personal CS50. Si aquesta gent pogués tot unir-se a mi aquí a l'escenari. [Aplaudiments] Això sí, això només és un subconjunt de personal CS50, ja que cada any tenim prop de 100 membres del personal membres en els rols dels assistents del curs, Teaching Fellows, i més. Anem amunt. Així que van a unir-se a nosaltres aquí maldestrament per un moment mentre fem un revelarà les últimes novetats vostè ha d'esperar aquí al curs. Així que, abans de res, tenim SAT / UNS com l'opció de classificació en el curs. Això està destinat deliberadament ser una opció mitjançant el qual si vostè és una mica incòmode per estar en el curs, i és que tems failure-- fins i tot si francament fracàs significa perjudicar al seu GPA, aconseguir un B i no un A-- que és precisament el que, sens dubte per una passarel curs com CS50 i un altre cursos d'iniciació, aquesta opció de classificació té per objecte permetre. Estic totalment d'ànim students-- especialment si pel fence-- per iniciar el Per descomptat SAT / UNS, fins i tot romandre SAT / UNS. Però que sens dubte pot canviar a una carta grau al cinquè dilluns al terme. Francament, quan jo era un estudiant de primer any a 1995, Jo mateix ni tan sols vaig prendre CS50 perquè no he tingut el valor suficient al pas realment el peu a l'aula. Semblava un domini massa desconegut per a mi i realment només per a aquests amics meus, francament, que havia estat la programació ja que eren de sis o potser 10 anys d'edat. I va ser només perquè jo era capaç de prendre CS50 en el meu dia en la versió equivalent de SAT / passi UNS-- / commutació per recuperació al dia-- que fins i tot em va portar 50. I d'alguna manera o altra, estic aquí de nou amb vosaltres avui. Ara mentrestant què més ha de tenir en compte sobre 50 és la inscripció simultània. Contràriament als rumors que vostè pot haver sentit, vostè pot, de fet, a la vegada inscriure en CS50 i una altra classe que es reuneix al mateix o algun solapament temps que les conferències de CS50 aquí. Veure el pla d'estudis de les indicacions de l'aplicació dels mateixos. Conferències, per la seva banda, en contra de el que és oficialment en el catàleg, en general, només es reunir per només una hora. De vegades podem córrer una mica més llarg. Fixeu-vos, que el objectiu en les conferències de CS50 és per oferir una visió conceptual, amb sort algunes demostracions, potser fins i tot alguns regals, del que espera la setmana que segueix. I així, en conferències, explorarem aquests temes i exemples junts, amb el que els estudiants a l'escenari, i personal en l'escenari tan sovint com puguem, per només un parell d'hores cada setmana. Seccions, per la seva banda, seran ofert per aquestes persones aquí-- molts d'ells l'ensenyament dels becaris, alguns d'ells voluntat curs assistants-- estar succeint setmanal. I el que és clau per mantenir en compte és que no tener-- diferència de la primera Nits, la música class-- diferents pistes de seccions per estudiants menys còmodes, més còmode, i en algun punt intermedi. I, francament, saps si que és menys còmode. I vostè probablement sap si se sent més còmode. I si vostè no està realment segur, vostè és per definició, en algun punt intermedi. Així que quan arriba el moment de la secció en una setmana més o menys, pel pla d'estudis, li demanarem que aquesta pregunta. I vostè és capaç de seleccioni Basat en el seu propi nivell de comoditat i estar amb students-- estar amb verd dots-- similar al nivell de comoditat per a vostè. Mentrestant, tenim un problema estableix, que en última instància definir la seva experiència en aquest curs. Estan ofereixen normalment en múltiples edicions. Una edició estàndard que més esperem cada estudiant en el curs per fer front a sinó també una anomenada edició pirata informàtic que no ofereix cap forma de crèdit addicional pura i simple, però en realitat els drets de fanfarronejar dir que ho vas intentar i corregeixi edicions de hackers del curs que acostar-se al material semblant però des d'un angle més sofisticat. El que oferim per al edició estàndard, per, de nou, una súper majoria dels estudiants, no són només a peu-through, que són vídeos dirigits pel personal del curs que realment es pot caminar a través de la problemes dels cursos i possible disseny implementacions. I també, després de la fet, oferir autòpsies, pel que si vostè s'està preguntant com es pot tenir o hauria d'haver resolt alguns problema, el personal docent us guiarà a través d' aquells en el vídeo també. Mentrestant, el que li espera també són cinc dies de retard i el fet que anem a deixar la seva problema més baix establert puntuació. Certament Apreciem que a canvi per a la càrrega de treball que 50 Espera de tu, la vida s'interposa en el camí de vegades, si no cinc vegades. I així, aquesta oferirà que una mica de flexibilitat, l'ampliació del seu termini de, per exemple, un Dijous al migdia per un divendres al migdia. Veure el pla d'estudis per a la detalls d'implementació dels mateixos. Ara el que espera ara? I només es produeixen a mi ara quant de temps Estic tenint vostès ser aquí a l'escenari. [Rialles] DAVID J. Malan: Però anem a arribar a l'acabat culminant en poc temps. Així que el que li espera en termes dels conjunts de problemes? Bé, potser un teaser del que tots ho va fer l'any passat amb els seus predecessors. En el primer conjunt de problemes l'any passat, hem introduït Scratch, una gràfica llenguatge de programació que permet programar literalment per arrossegar i deixar anar les peces del trencaclosques, com aquests, que són que recorda a les construccions veurà només una setmana per tant, quan canviem a una més tradicional idioma, conegut com a C. L'any passat es va procedir a aquest conjunt de problemes, que implica per a la criptografia, la codificació de la informació perquè no governamental o amics ' ulls que no volen veure-ho. Codificat en aquí és un missatge que aviat serà capaç de desxifrar o de-scramble. Breakout és un problema establert l'any passat, en què utilitza aquests nous programes trobat habilitats per a posar en pràctica en realitat un joc wherein-- com vostè pot recordar de childhood-- l'objectiu era colpejar a la maons que estan sobre de la pantalla aquí, acumulant una anotar al camí, i implementar els seus propis algoritmes amb la qual aquesta solució en última instància et permet jugar el joc. Mentrestant, més tard al semestre, li donarem un diccionari de 143.091 paraules en anglès. I seràs reptat per escriure un programa que lletrejar xecs, documents, per càrrega que moltes paraules en la memòria tan eficientment com sigui possible. Generalment les picades que en contra dels seus companys de classe si s'opta en una mica d'un desafiament en taula de posicions per veure qui pot utilitzar la menor quantitat segons de temps d'execució, i el menor nombre de megabytes de memòria, i en realitat afinant els seus programes ser increïblement eficient dels recursos no el temps just. L'any passat, també, ens fixem en el final del semestre en la programació web. I, en efecte, ho farem de nou aquest anys amb múltiples conjunts de problemes, la introducció a les tècniques i la mentalitat amb la qual es pot aplicar aquests coneixements de programació per pàgines web, llocs web dinàmics, llocs web que realment resolen problemes i es comporten de manera diferent i no són simplement estàtica llocs amb informació estàtica. El projecte final en última instància, definirà, però, el punt culminant del curs per als estudiants, en el qual vostè serà desafiat per implementar més res d'interès per a vostè, sempre que d'alguna manera dibuixa sobre les lliçons del curs. I com es va veure al vídeo a la sortida, anem a concloure el semestre amb l' CS50 hackathon, que si, poc familiar, començarà a les 7:00 pm una nit i posar fi a les 7:00 am del matí següent. Al voltant de les 9:00 de la tarda, anem a ordre en el primer sopar. Al voltant de la 1:00 del matí, anem a segon ordre en el sopar. I si vostè encara està de peu a les 5:00 del matí, ens voluntat d'autobús que a IHOP per esmorzar. La Fira CS50, per la seva banda, és un esdeveniment a la qual més de 2.000 professors, estudiants, i el personal de tot el campus serà venir a veure els seus èxits en el curs i la final projectes i creacions que creu en els seus ordinadors portàtils, ordinadors d'escriptori o bulbs potser fins i tot lleugeres. Mentrestant, les hores d'oficina i l'estructura de suport. I ara el que hagués estat un millor moment per portar a tots vostès. L'horari d'oficina tindran lloc quatre nits a la setmana durant diverses hores cada nit amb generalment de 20 a 30 de la El personal del curs de servei alhora per oferir íntima un-a-un oportunitats de suport amb conjunts de problemes del curs. Tutoria també serà disponible, en particular per als estudiants menys comfortable-- o s'atreveixen a dir el menys comfortable-- per als qui horari d'oficina no són la més ambient de consolidació i certament no són la més lliure d'estrès. Especialment quan els terminis estan pressionant, anem a vincular de manera proactiva que nosaltres mateixos amb un membre del personal per treballar amb en algun horari regular com les seves necessitats i el seu horari ho permet. I el personal. Permeteu-me presentar-Davon, Rob, i Gabriel, els caps d'aquest any. Si a vostè li agradaria cada dir-- [Aplaudiments] paraula --un. [Aplaudiments] Davon aquí és la gerent del curs, que significa en el seu paper de temps complet ell ajuda amb l'execució i logística de CS50. DAVON: Sí, hola, nois. Vostè veurà un munt per mi en les hores d'oficina. Vaig a estar ensenyant seccions. I si vostè tira correus electrònics per davant, Probablement estaré responent. Així que vaig a veure a molts de vostès durant tot el semestre. I benvinguts a CS50. DAVID J. Malan: I ara Gabriel, que mateix era només un estudiant de primer any l'any passat, però des de fa un parell d'anys té estat operant seva pròpia versió del CS50 al Brasil, pel que va descarregar tots content-- del curs que està sent clarament filmat i lloc online-- perquè pogués traduir a Portuguès i després ensenyar a més de 100 dels seus companys de classe sobre el transcurs d'un parell d'anys, ensenyament en la seva llengua materna pla d'estudis del curs. GABRIEL: Hola. [Aplaudiments] GABRIEL: Hola, sóc Gabriel. Sóc el cap de la TF curs. I espero que t'encantarà CS50. Això és CS50. DAVID J. Malan: Ara per Rob. Oh, vostè vol introducció? ROB: No, jo no ho sé. [Rialles] DAVID J. Malan: I Rob Boden. [Rialles] ROB: Hola, sóc Rob. Aquest és el meu cinquè any involucrat amb el curs. Cada any, és només una millor i millor classe, així que vostès són clarament serà impressionant. Espero que tots es diverteixin amb ella. Vaig a tenir diversió amb ella. Així que ens veiem després. DAVID J. Malan: I temps no permetrà nosaltres-- [Aplaudiments] El temps no ens permetrà introduir tots a l'escenari i tots els seus col · legues que està fent compres classes avui. Però permeteu-me presentar- Belinda i CS50 Trencaclosques Dia, que espera a aquesta Dissabte que ve, que és el primer dels esdeveniments a gran escala de golf. Aquest en particular significat per recalcar el punt que la informàtica és en última instància, No es tracta de la programació, sinó més aviat sobre la resolució de problemes de manera més general. I puzle dia, com vostè veure, li portarà i els seus companys de classe junts-- esperem aquest dissabte. BELINDA: OK. Hola, nois. Així que gràcies. Així com el nostre il · lustre capità Dit això, em dic Belinda. Sóc un estudiant de segon any a Quincy Casa. Jo, igual que vostès, vaig prendre CS50 any passat, realment em va encantar. Tinc una debilitat per vostès a la tercera fila. I estic orgullós de dir que estic ara en una relació de compromís amb CS50 [inaudible]. Okay. Aquesta va ser la meva versió agafo d'una broma. De tota manera, pel que seguir endavant, només volia convidar a vostès tot a la i-lab o urticària HBS. Estarem tenint Trencaclosques dies de 12:00 a les 3:00. I és una gran oportunitat per a vostè nois per satisfer les seves companys CS amics, resoldre alguns puzles no-CS, com el capità esmentat, i també menjar una mica de menjar gratis, guanyar alguns premis increïbles, com targetes de regal, $ 75 per persona, i també-- què era? Wii O o alguna cosa així? Wii O? Sí. Per al nostre sorteig. Impressionant. Així que em quedaré per aquí després de classe. I si vostès tenen alguna preguntes, que em faci saber. DAVID J. Malan: I vostè veurà, més enllà de això no hi ha res a fer avui. Estableix el primer problema sortirà el divendres. Però, per portar-nos a casa avui, m'agradaria presentar a un en concret més membre del personal, Colton Ogden aquí, les mans estan ara protegida per sobre de vostè amb aquest controlador MIDI per recalcar el punt més que la informàtica, també, té una aplicabilitat molt més enllà de l'enginyeria i la tija i la pròpia ciència de la computació, s'estén fins i tot a dominis com ara la música. Colton té amablement offered-- vaig pensar un d'ells anava a fixar l'enfocament. Andrew, si poguéssim convocar enfocament aquí només per un moment. ¿Què ha fet Colton per endavant és el programa aquest dispositiu, aquest pad de botons que veus imaginar aquí, com un controlador MIDI, on cada un d'aquests botons està connectat a una nota musical en particular o un so, més en general un enregistrament, de tal manera que en jugar patrons d'aquestes botons, tant com els patrons de bits, pot representar a un altre conceptes de més alt nivell. Serà capaç d'última instància per portar-nos a casa avui? Sense més preàmbuls, si podríem atenuar les llums, i enceneu la pantalla darrere de Colton. AUDIÈNCIA: Woo! DAVID J. Malan: Aquest és CS50. [REPRODUCCIÓ DE MÚSICA] [Aplaudiments] Això és tot per CS50. Ens veiem el divendres. Alguns pastís li espera al creuer. [REPRODUCCIÓ DE MÚSICA]