[MUZIKO Ludante] [Aplaŭdo] DAVID J. Malan: Jen CS50, Harvard University enkonduko al la intelektulo entreprenoj de komputiko kaj la arto de programado. Nun, se vi estas inter tiuj kiuj ĉiujare sidas tie kun iom de nervoj en via menso tian ke vi ne kredas ke vi apartenas tien, Vi pensas, ke la plimulto Iu sidantaj ĉirkaŭ vi scias multe pli ol vi, estas ja pli komforta ol vi ĉe komputilo scienco aŭ komputiloj pli ĝenerale, realigi ke 78% de la lernantoj, kiuj nun preni CS50 havi neniun antaŭan sperton. Ja, ekzistas 100 dots tie sur la ekrano, 78 el kiuj estas solida verda, kion signifas al vi, se vi estas inter tiu demografia, estas tre bona kompanio tie sur ekstere. Kaj se vi estas anstataŭe inter la 22% de CS50 studentoj kiuj faras ja havas antaŭan sperton, ĉu en alta lernejo aŭ iu alia programo, rimarkas ke vi ankaŭ estos esti defiita en la kurso. Ne nur ni havas malsamajn temojn por studentoj malpli komforta kaj pli komforta egale en sekcioj, ni ankaŭ tn hacker eldonoj de plej problemo aroj kiuj defios tiuj lernantoj kun tiu aldona sperto esplori simila materialo sed el pli kompleksa perspektivo. Sed kio estas komputiko? Nu, finfine, kio tuj afero kiel vi esploras ĉi kampo estas ne tiel kie vi finos relativa al via samklasanoj, sed kie vi mem finas en Semajno 12 kontre kie vi komencas ĉi tie en semajno nulo. Nun komputilo science-- bone, ni nomas ĝin la scienco de computation-- kie kalkulado estas vere nur fancy maniero diri, prenante iuj enigo, produkti iuj eligo, kaj fari tiel per kurante algoritmoj, aroj de instrukcioj por solvanta iu problemo je tiuj enigoj por produkti iun eligo aŭ solvo en kiuj vi interesiĝas. Do ni ĵus havis okazon vojaĝi ekster al Kalifornio por kunveni kun lernantino. Ŝia nomo estas Susan Wojcicki. Kaj ŝi ŝatus paroli al vi tie en video atesti kiom aplikebla eĉ nur gusto de komputilo scienco ĉe la enkonduka nivelo povas esti. Eĉ se vi ne iru persekuti komputiko kiel kampo, aŭ eĉ inĝenierio, aŭ tigo pli ĝenerale, vi vidos, fakte, kiel iu Kompreneble tiel influis lian vivon. Kaj ŝi nur simple prenis ĝin kiam ŝi estis altranga tie en Harvard College. Se ni povus malhelan la lumojn por Susan. Susan WOJCICKI: Saluton, mondo. Mi Susan Wojcicki. Mi estas la CEO de YouTube. Kaj mi prenis CS50 kiam mi estis altranga ĉe Harvard en 1990. Mi estis vere historion kaj literaturon granda. Kaj mia junior somero, Mi rimarkis ke mi eble volis lerni ion pri komputiloj. Kaj tiel, mi revenis. Mi prenis CS50. Estis malfacile, sed estis la plej miriga klaso mi prenis. Ĝi ŝanĝis kiom mi pensas pri ĉio. Kaj kiam mi diplomiĝis de Harvard en 1990, mi iris al Silicon Valley. Kaj mi trovis laboron. Kaj mi laboras en tech tiam. DAVID J. Malan: Nun kio Susan ne menciis en ĉi tiu video, ke tio efektive en ŝia garaĝo ke Google mem estis fondita de Larry kaj Sergey. Nun ni ankaŭ etendis al niaj amikoj ĉe code.org, organizo kiu dum la pasinta jaro estis atingi popolon aparte ekscitita pri komputiko kaj programado, precipe. Sed valoras notanta ke programado ne komputiko mem. Komputika ne plani. Prefere programado estas nur tool-- per kiuj vi ĉiuj Estos tro bone familiara por sesmonato de end-- tia, ke oni povas apliki ne nur al estontaj kursoj en CS sed al kiom kampoj de kie vi venas, en homaroj, sociaj sciencoj, natura scienco, aŭ simile. Ja, permesi kelkaj aliaj Lernantoj kaj iliaj kolegoj por paroli al la aplikeblon de la kampo, ke lin atendas. Bill Gates: Mi estis 13 kiam mi unue akiris aliron al komputilo. Jack Dorsey: Miaj gepatroj aĉetis min Macintosh en 1984 Kiam mi estis ok jaroj aĝa. Mark Zuckerberg: mi estis en la sesa grado. SPEAKER 1: mi lernis programi en kolegio. RUCHI SANGHVI: Freshman jaro, unue semestro, Intro al Komputila Scienco. Bill Gates: Mi verkis programon kiu ludis tic-tac-piedfingro. Drew HOUSTON: mi kredas ke estis bela humilaj komencoj. Mi kredas ke la unua programo Mi skribis demandis tion kiel, kio estas via plej ŝatata koloro? Aŭ kiom vi aĝas? HELENA SILENOK: Mi unue lernis kiel fari verda rondo kaj ruĝa kvadrato aperas sur la ekrano. Gabe Newell: La unua tempo mi fakte havis io venas supre kaj diru, saluton, mondo. Kaj mi faris komputilon fari. Estis nur miriga. Mark Zuckerberg: Lerni al programo ne dividi kiel voli lerni ĉiuj komputiko aŭ klopodante majstri ĉi disciplino aŭ io simila. Ĝi ĵus komencis ekstere ĉar mi volis fari ĉi tiun simplan aferon. Mi volis fari iun kiu estis amuza por mi kaj miaj fratinoj. Kaj mi skribis tion iom programo. Kaj tiam esence nur aldonis iom al tio. Kaj tiam, kiam mi bezonis lerni ion novan, Mi rigardis ĝin, ĉu en libro aŭ en Interreto, kaj aldonis iom al tio. Drew HOUSTON: Estas vere ne kontraste ludi instrumenton aŭ io aŭ ludante sporto. DAVID J. Malan: Bone. Do ni nun reale plonĝi en iom pli profundaj. Kion signifas tiuj enigoj kaj eligoj ke ni parolas tie ĉi? Do kio pri io simpla? Vi verŝajne konas, eĉ se vi havas sen familiareco kun komputiko ajn, ke komputiloj iel uzi kaj komprenas nur nuloj kaj. Sed kiel eblas kiu eble estos donita kiel multe hodiaŭa labortabloj kaj tekkomputiloj egale povas fari? La DNA de la tago, la sola alfabeto, ke ili komprenu estas nulo aŭ unu. Nu, konsideru tion. Ni, homoj, emas uzi la dekuma sistemo. "Dec" signifu 10. Kaj tio estas 10 ĉar ni havas 10 ciferoj, 0 tra naŭ. Nun komputiloj, per kontrasto, emas uzi duuma. "Bi" signifanta du. Do ili emas uzi nur nul kaj unu. Sed rezultu, ke eĉ nur kun nuloj kaj, ke Estas sufiĉe granda alfabeto kun kiu reprezentas pli ajna peco de datumoj vi volas, ĉu ĝi estas numero, ĉu ĝi estas letero, ĉu ĝi estas grafika aŭ vídeo sur la ekrano. Konsideru, ekzemple, kiel ni homoj tipe interpreti ĉi numeron tie. Tiu estas ĝuste tri ciferoj, unu, du, tri. Sed ni scias, ĉi tiu nombro innately nun kiel 123. Sed kial estas tiu? Nu, se vi opinias reen eble grado lernejo, Vi verŝajne instruis pensi tiuj nombroj kiel estante en kolumnojn, kie oni trovas en la centoj loko, la du estas en la dekoj loko, kaj la tri en la lokon de unuoj. Kial estas ke vere utila? Nu, pensu pri la súper simpla aritmetiko ke ni ĉiuj estis fari por jaroj nun. Efektive, se vi devas unu en la centoj lokon, vi faru rapidan math 100 fojojn 1 plus 10 fojojn 2-- ĉar du estas en la dekoj place-- plus 1 fojoj 3-- ĉar tri estas en la lokon de unuoj. Do, kompreneble, se ni fakte multipliki ĉi ekstere, kion ni vere reprezentas kun tiu pattern-- unu du three-- estas 100 plus 20 plus 3, kiuj, kompreneble, estas 123. Nun duuma, kaj komputiloj vere, funde paroli la saman lingvon kion ni faras. Ili nur havas malgrandan alfabeton. Do komputiloj nur havas nulojn kaj aĵoj je ilia dispono. Do dum ni homoj havas esence potencoj de 10 en ĉiu de ĉi tiuj places-- 10 al la nulo, 10 al la dek al la du, donante al vi 110 kaj 100 respektive. Ĉar komputiloj havas nur du valoroj ili povas kompreni, nulo kaj unu, ili devas uzi malsamajn valorojn en tiuj kolumnoj, unu, du, kvar. Kaj se ni konservis tuj, ok, 16, 32, 64, ktp. Sed la mastro kaj la pensmaniero estas ekzakte la sama. Do per tiu logiko, iu, kiel farus Mi irad reprezentanta la numeron en duuma? Se vi neniam eĉ pensis pri antauxvidante, kion via gut diri? Publiko: Unu. DAVID J. Malan: Unu. Ĝuste. Ni nur bezonas unu en la karaj loko ĉar la nuloj sufiĉas por doni nin nek kvar nek du. Do unu fojojn unu egalas unu. Nun aĵoj iom interesa. Se mi volas prezenti en Duuma la numeron two-- sed, denove, eĉ se vi neniam parolis tiun lingvon antaŭ, kiel do ni reprezenti en duuma la valoron ni homoj scias kiel du? Nulo unu nulo. Nur metu unu en la kolumno kiun vi volas. Nun Fariĝas bela facila probable nun. Do se mi volas reprezenti three-- ne ekzistas tri kolumno. Do, denove, mi povas nun aldoni tiujn valorojn kune por meti tie. Do 2 fojojn 1 plus 1 fojoj 1 estas, kompreneble, 3. Nun aĵoj iom amuza en ke tiuj fariĝis nuloj. Kaj reprezenti kvar, mi alvenas ĉi. Kaj se ni pliigo malrapide here-- ke estus kvin. Tiu estus ses. Tiu estus sep. Sed nun mi ŝajnas havi kolizii problemo. Kiel povus mi veturas sur reprezenti eight-- estus la proksima valoro. Yeah, do ni bezonas novan bitoj. Kaj efektive, se vi havas aŭdis ĉi tiun frazon antaŭ, bitoj, tio estas nur mallonga por binara cifero, nulo aŭ unu. Kaj tial mi okazi esti reprezentanto nur tri tiaj bitoj tie. Sed se mi havus vojon de stoki ne tri malsamaj bitoj, sed kvar, certe mi povus reprezenti ok, kaj tiam naŭ, kaj tiam 10, kaj eĉ pli kaj pli alten. Sed kiu tiam vokas en demando kiom ni povas irad reprezenti tiujn aferoj en la unua loko. Estas unu afero desegni ilin tien sur tobogano, sed kiel vi reprezentas ilin se estas mekanika aparato? Kio komputilo faras al reprezenti la eniroj kaj eliroj ke fundamente difini kalkulado ĉe la fino de la tago? Nu, kio pri io súper simpla kiel tio? Estas nur ampolo. Kaj mi povas deĉenigi ĉi ampolo iri sur deturnante iuj elektro sur kaj permesante elektronoj flui tra, kiu ŝanĝas sian ŝtata aŭ ĝian valoron, por tiel diri. Ekzemple, tiu estas malnova lernejo tablo lampo tie kun tiaj ampolo interne. Kaj ĝuste nun ne vere fari ion utilan. Sed kiam mi ŝtopi ŝin en elektra ingo kaj uzu tiun switch-- aŭ Ni povas eĉ nomas ĝin transistoro aŭ pensas de ĝi kiel such-- Mi povas nun reprezentas ĉu tiu valoro, kie la ampolo estas evidente ekstere, aŭ tiun valoron. Tiu valoro aŭ tiun valoron. Tiu valoro ks. Do ene de komputilo, supozeble, estas multe pli malgrandaj pecoj de aparataro, sed ke fine de la tago simple havi uzi electricity-- eble kapti it-- kaj poste aux teni ion on aŭ subteni ion. Kompreneble, tio ne estas aparte interese fari kun nur unu ampolo. Fakte, kiom alte mi povas rakonti en binara kun ĉi skribtablo lampon tien? Publiko: Unu. DAVID J. Malan: Unu, ĉu ne? Mi bezonas pli da skribtablo lampoj se mi efektive volas rakonti pli alta. Sed ni povas fari pli bone ol tio. Ĉar la ampoloj kiuj ni metu en tion fakte amatoro ampoloj ol la pasintaj tempoj permesus. Kaj ili estas reale reto ampoloj. Kaj aroj da kompanioj fari tion tiuj tagoj. Sed rezultu ke ĉi tiu en aparta venas kun trajto per kiu Vi povas ŝanĝi liajn kolorojn. Do ekzemple, se vi ornamita via dormejo ĉambron kun kelkaj el tiuj lumo bulboj, dependanta sur via humoro, dependanta sur kiu venas, depende de la vetero, depende de la tempo de tago, vi povas reale ŝanĝi la kolorojn de la bulbojn en via ĉambro. Kaj tio estas ĉar tiuj lumo bulbojn kaj aliaj kiel ĝi havas kio estas nomita API, apliko programado interfaco, kiu estas temo kun kiu vi estos bone konanta de semestro la fino. Kaj tio estas nur fantazio, kamufla maniero diri, vi povas plani tiujn lumo bulboj fari vian proponon. Vi povas sendi ilin mesaĝojn samkiel vi, homo, povas sendi mesaĝon al reta servilo dirante al mi la hodiaŭaj novaĵoj aŭ donu al mi mian retpoŝton. Vi povas sendi pli arcano mesaĝojn al tiuj ampoloj diri, ŝalti kaj malŝalti. Sed tio ne estas ĉiu tiu interesa. Vi povas diri, ŝalti kolorigitaj ŝalti verda turnigxu sur blua, ĉiuj kun la sama ampolo. Kaj vi povas eĉ kun iom pli savvy, diru, turnu vin al blua kiam ĝi estas morna tago ekstere, ekz. Ĝi povas fakte fliki en meteorológico API kaj eltrovi kion la vetero aux la tempon de tago, aŭ aliaj tiaj ekigiloj. Do, fakte, du el CS50 propra stabanojn Dan Bradley kaj Ansel Duff tie, afable kauxzis ni tutan faskon da tiuj ampoloj. Kaj ili konstruis CS50 La unua iam duuma bulboj, kie ni reprezentis here-- kun tiuj ludaj iom magnets-- diversaj anstataŭiloj ni aludis nur iom semajnoj. Do vojo tien estas karaj loko, du, kvar. Kaj ni ne vidis pli alta ol tio. Sed kompreneble, ili estas potencoj de du. Ok, 16, 32, 64, kaj 128. Do se mi nun volas esti iom amatoro ol uzi tiun malnovan lernejon ŝaltilo, Mi havas ĉi tie en ĉi tiu iPad súper simpla interfaco ke Dan Bradley, iama studento kaj nun instruas ulo, programed uzante HTML kaj JavaScript, kiu estas markado kaj programado lingvoj respektive. Kaj vi povas verŝajne see-- eĉ en la back-- tie estas granda plus kaj granda minus, plus unu butonon por ĉiu de ĉi tiuj bulboj. Kaj kion tio tuj permesos min ne estas, ekzemple, alklaku la alpago kaj nun reprezentas, de Certe, kiu nombro? Unu. Kaj mi povas bati lin denove. Du. Tri. Kvar. Kvin. Ses. Sep. Kaj tie nun ni atingas ke seguidilla, sed ni havas kvaran iom tiu fojo, tial nun ni havas ok. Do ni povus fari tion dum iu tempo. Fakte, kiel flanken, kiom alta ni povus kalkuli? Iu ajn? Publiko: 255. DAVID J. Malan: 255, dekstra? Ne tro maltrankviliĝu pri la math por nun, sed tio estas sufiĉe deca nombro. Sed fakte tio ligis nur kiom pecoj de informo: kiel leteron, aŭ grafika ke ni povus reprezenti. Sed ne gravas nun. Mi tuj iros antaŭen kaj turni ilin ĉiuj ekstere. Se mi povus, mi ŝatus peti volontulo, nia unua volunteer-- ho, hello-- sur scenejo. La ruzo estas vi devas esti komforta aperante, kiel vi klare estas fronte al ĉiuj viaj samklasanoj, tiel kiel sur la interreto. Kaj lasu min rigardi iom pli tie the-- kion pri cxi tie en la blanka ĉemizo? Kaj transdonos supren. Venu supren. Kio estas via nomo? Publiko: Jackie. DAVID J. Malan: Jackie. Jackie, venu supren. Do kio estas ankaŭ sur tiu iPad estas butono nomata Ludo Mode. Kaj ĉi Ludo Mode estas tuj permesos min enigo anticipe apartan decimalan nombro, la nombroj Ni homoj estas familiara kun. Kaj tiam vi estos defiita tien por uzi la butonojn sur la top-- unu por ĉiu el tiuj bulbs-- por vere elkompreni la ŝablono de ampoloj kiu reprezentas la numeron en demando. Mi bedaŭras, kio estas via nomo denove? Publiko: Jackie. DAVID J. Malan: Jackie. Bone. Bonan renkonti vin. Do lasu min antaŭeniri kaj programo en por la mondo por vidi la numeron 15. Ni gardu gxin malgranda unue ĉi tie. Kaj mi tuj iras en Ludo Mode. Kaj mi tuj specifi, donu al ni la numeron 15. OK. Kaj nun kun ĉiuj watching-- se Vi volas eble stari ĉi vojon, ĉar tio vicigas up-- antaŭeniri kaj mastrumi ok butonoj kune la supro turni la bulbojn en aŭ ekstere kiel vi decidos. Publiko: OK. DAVID J. Malan: Kaj ne trompas batante plus 15 fojojn. Ho, ni tuj faros. Publiko: Ho, atendu. Mi tiom pardonpetas. DAVID J. Malan: Vi povas ankaŭ turni la ampoloj sur individue kun ĉiu el tiuj butonoj supre. Publiko: Oh, OK. Do estus like-- DAVID J. Malan: Bone. Do nun ni havas ok. Do ni paŭzo por la aŭdienco engaĝiĝi tie. Kio nombro estas Jackie aktuale reprezentas? 11. Do ni estas preskaŭ tie. Kaj bonega. Do ni havas niajn unuajn venkinto. Gratulojn. Kaj ni pensis, ke ni devus iuj fabelaj Giveaways. Se vi ŝatus esti tia dormejo ĉambro tien surterene, Vi povas mem havi fina projekto uzante nun tiu API, danke al Jackie. Do now-- [Aplaŭdo] --if ni povis, pli tiaj ĉirkaŭ tio. Ho, nun ĉiuj volas iun ampoloj. Por la tn hacker eldono, Ni tuj ramplo ĝin a-- ho, yeah, noncommittal. Mi pensas vi venas nun Se via mano tuj malsupren. Kio estas via nomo? Publiko: Alex. DAVID J. Malan: Alex, venu ĉi tien. Do por Alex, ni tuj programo en iomete pli granda nombro. Eble en ordo. La nombro 50. Publiko: OK. DAVID J. Malan: Sed, kiel Mi said-- kaj vi povus volas stari ĉi tie ĝis ke la butonoj laŭliniigi kiel vi expect-- sed mi faris nomas la hacker eldono. So-- bonŝancon! [Ridado] Vi povos turni ilin se you-- OK. Bonega. Mirinda. Gratulojn. [Aplaŭdo] Mi supozas ke mi devus pagi supren. Gratulojn al Alex tiel. OK. Do la finfina takeaway jen espereble, sincere, la simplicity-- la simpleco kun kiu vi povas akiri iuj bela lumo bulboj, ŝajne en [inaudible]. Sed ili reprezentas, finfine, la samaj ideoj kun kiuj ni homoj estas Jam tro familiara. Do kio eble la proksima paŝo en la progreso provi fari ion interesaj kun datumoj kaj reprezentas enigoj, kiuj ne nur nombroj sed estas eble leteroj aŭ pli? Nu, ĝi rezultas ke la komputila mondo, por multaj jaroj, simple adoptis arbitra sed konsekvenca normo kiu mapas nombroj leteroj de la alfabeto. Ekzemple, tie ĉi estas ekstrakto de tiu surĵeto. Ĝi nomiĝas ASCII. A-S-C-mi-mi. Kaj tio estas simple tablon kiu mapas majuskla letters-- en ĉi case-- por decimalaj numeroj. Sed kio estas la implikaĵo? Nu, se vi vere volas reprezenti iu kiel retpoŝto aŭ tekston en retpaĝo, vi evidente volas montri la homa literoj de la alfabeto, ne nombroj. Do laŭ la kunteksto de la programo ke uzanto uzas, se estas foliumilo aŭ retpoŝta kliento, nombroj certe povas esti interpretita kiel leteroj. Tio estas, la mastroj de bitoj povas facile interpretebla kiel leteroj. Kaj kion ni povas havi estas la litero A estaĵo reprezentitaj kiel 65, B estante reprezentita kiel 66. Do se ni havas súper vorteto, kiel hi, kion komputilo farus finfine vendejo en dekuma sed vere en duuma, uzante iu sekvenco de bitoj, utiligante iom da elektro iel, estus la du nombroj 72 kaj 73. Sed la mastro de bitoj kiuj reprezentas tiujn valorojn. Do tiuj do kiel ni povas reprezenti nian eniroj kaj eliroj. Kaj sufiĉas diri, ni povas fari pli kompleksajn reprezentoj fine kun aĵoj kiel grafikaĵoj, filmetoj, muziko, kaj pli kiel ni vidos poste tiu termino. Tiel ke nur lasas tiam algoritmoj, tiuj aroj de instrukcioj per kiuj ni solvi realajn problemojn. Ni pasante en enigoj por algoritmoj. Kaj tiuj algoritmoj produktas eliroj, espereble korekta eliroj kaj mi esperas, ankaŭ, kompetente kolektis eliroj. En aliaj vortoj, ĝi estas unu afero implementar ion korekte. Estas alia afero implementar io bone aŭ kompetente. Ekzemple, unu pruvo ke ni ŝatis la kurson Estas ĉi tiu. Sed tion estas akirantaj pli malfacile trovi. Sed tio estas ja malnova lernejo telefono libro, ene de kiu Estas 1.000 plus paĝoj nomoj kaj telefonnumeroj. Kaj se mi volis serĉi iu en ĉi tiu telefono libro, Mi povis simple fari tre naiva algoritmo. Mi povis malfermi al la unua paĝo, kaj Mi povus komenci al serĉi, diru, ke iu nomita Mike Smith. Kaj se li ne estas sur la unua paĝo, mi progresus al la dua, kaj poste la tria, kaj tiam la kvara, ktp, ĝis mi fine trovos Mike Smith. Nun ke algoritmo korekta? Publiko: Jes. DAVID J. Malan: Jes. Se li estas en tie, mi eventuale trovi lin. Sed estas defendeble ne tre eficiente, certe ne fastas, ĉar, mia dio, kial mi estas malŝparas mian tempon turnadon tra ĉiuj tiuj paĝoj kiam mi povis certe faros ĉi fizike pli rapida? Nu, eta optimumigo, tiel paroli, povus esti ne unu paĝo samtempe, sed du, kvar, ses, ok, 10. Ankoraŭ korekta? Publiko: Ne DAVID J. Malan: Do ne se mi por Ekzemple salti super Mike Smith. Sed tiel longe, kiel mi ripetas pedalo unu paĝo, se mi ekapero li, eble ni povus korekti kion povus alie esti Gotcha. Sed estas pli bone? Ĉu pli rapida? Mi volas diri, yeah. Estas laŭvorte duoble rapida se mi faras du paĝoj en tempo. Do se mi origine havis 1.000 paĝoj, Nun mi nur devas klaki 500 fojojn ne tute 1.000 paĝojn por akiri potenciale en la plej malbona kazo al la fino de la telefono libro, kie iu kiel Mike Smith aŭ iu kun posta nomo povus reale esti. Sed, kompreneble, ni homoj certe ne estas tuj estos fari tion, certe Ne ĉe tiu punkto en niaj vivoj. Kio estas racia homa verŝajne faros? Publiko: Iru rekte al the9 S aj jaroj. DAVID J. Malan: Iru rekte al la S-a? Kjel mi iru rekte al la S-a? Publiko: Rip ĝin en duono. DAVID J. Malan: Bone, ne estas markiloj. Do, jes, se estis ja etiketo aŭ pegajosa langeton por S, ni devas salti rajtas tie. Sed ĝi estas sufiĉe nenoca. Do la plej bona mi povas fari estas malglate al la S sekcio aŭ eble malafable en la mezo. Sed la ŝlosilo takeaway now-- kaj la intuicion ke vi prenis por koncedita por jaroj probably-- estas ke kion vi nun scii pri ĉi tiu problemo? Publiko: [inaudible] DAVID J. Malan: Mike Smith estas sekura ne en tiu duono de la problemo ĉar Smith venas post la mezo kiu estas malglate la M sekcio, ŝajnas esti. Do kiel vi eble vidis en Vizitoj, ni nun povas laŭvorte dissxiros tiun problemon en duono. Publiko: Woo! DAVID J. Malan: Estas atingi facilan kaj pli facila. [Aplaŭdo] Tie vi iru. [Ridado] Kaj nun mi fundamente havas la saman problemon, sed estas laŭvorte duone tiel granda. Mi ankoraŭ serĉas Mike Smith. Kaj mi daresay, mi povas ankoraŭ serĉi lin en la sama maniero, dividi la problemon en duono denove, ŝirante la problemon denove duono, kiu nun min lasas kun problemo kvarono de la grandeco, draste ĵeti ke duono forigis, ripeti tiun procezon denove kaj denove kaj denove, ekrigardante malsupren je ĉiu punkto vidi se Mike Smith estas La paĝo en demando. Sed se mi faras ĉi rajto, finfine mi trovas min kun nur unu paĝo sur kiu Mike Smith estas se ĝi estas ĝuste en la telefono libro. Kompreneble, mi povis neniam nomos Mike denove. Sed la punkto estas, ke se ni komencis kun 1.000 paĝoj, mia unua algoritmo, klaki la paĝo, eble 1.000 times-- certe malpli ĉar estas S nomo kaj ne Z nomon, sed kiel kiom 1.000 paĝojn potenciale. Dua algoritmo, bona. 500 paĝoj. Tria algoritmo, kvankam, kiom da paŝoj farus gxin preni dividi 1.000 paĝo telefono libro en duono tiel? 10, donu aŭ preni. Do nur per klakanta tra tiu telefono libro, plonĝado kaj venkanta, tiel diri, 10 fojoj mi faros Mian vojon malsupren al nur unu sola paĝo. Kaj tiel ni povas kapti ĉi intuicion nun iomete grafike se vi nur konsideri tiu súper simpla grafeo. Ni estas sur la x-akso, aŭ horizontale akso, estas la grandeco de mia problemo, la nombron de paĝoj en la telefono libro. Kaj komputilaj sciencistoj ĝenerale ŝatas nomi la amplekso de problemo n, kie n estas nur iuj variablo kiu represents-- en tiu case-- numeron da paĝoj. La vertikala, aŭ y-akso, jen tuj estos la tempo por solvi, eble la nombro de paĝo turnoj, eble la nombro de sekundoj aŭ minutoj ajn via unueco de mezuro estas. Kaj tiu ruĝa linio reprezentas la unua algoritmo, ĉar tie estas unu al unu interrilato inter nombro de paĝoj kaj kvanto de tempo kiu postrestas. Se Verizon duobligas la nombron de paĝoj en la telefono libro sekva jaro, mia kurado time-- la lernotempo ekzekuti ke unue algorithm-- duobligas en la plej malbona kazo. Sed la dua algoritmo, kie mi klakanta du, postulas malpli da tempo por donita amplekso problemon. Do se mi havas multajn paĝoj here-- avizo ke la flava linio sugestas malpli da tempo por solvi. Kaj efektive, ĝi reprezentas, ni diros, n super du. Sed kio estas la formo de la tria kaj fina kurbo tuj aspekti? Jes, ĝi estas ja tuj look-- mi ne scias kion vi intencis diri. Sed ni vidu kion vi intencis diri. Publiko: Kiel tio. DAVID J. Malan: Ĝi tuj aspekti tiu, logaritma slope-- exactly-- per vi havas ĉi scivola deklivo. Ĝi ne plu rekto. Kaj kio estas konvinka pri tio estas, ke kvankam la grafo nun ekstermitaj, vi povas extrapolar en via gravas ke verda linio ne tuj pliigos en alton ke multe kiel vi procedi plu malsupren ke horizontala akso. Ja, Verizon, por Ekzemple, eblus duobligi la nombron de paĝoj en la telefono libro inter tiu jaro kaj la proksima jaro de 1000 ĝis 2000 paĝoj, sed ne granda interkonsento. Kun ĉi tiu tria kaj lasta, tie estas intuicia algoritmo la dividadon kaj konkerante. Ĝi tuj prenos min kiom pli paŝas apud jaro trovi iun like Mike Smith? Publiko: Unu. DAVID J. Malan: Ekzistas nur unu. Kaj oni povas kvarobligas ĝin, ĝi estas tuj prenos min nur du pli paŝoj ks. Kaj tiu estas testamento al ĝuste kiel kelkaj zorgema dezajno kaj iom aprezon por kio viaj enigoj estas povas fari eĉ pli bone. Nun ni trompas a iom en la senco ke ni utiligante supozo. Kio estas mia supozo pri nia telefono libro kiu min permesis dividi kaj venki en tiu intuicia kaj ankoraŭ ĝusta vojo? Publiko: [inaudible] DAVID J. Malan: Jes. Do ĝi estis ordigita. Estis alfabetizado per la telefono libro kompanio. Se ĝi estis en hazarda ordo, ke estus infere telefono libro, sed certe ne prunti al la algoritmo Mi uzis, ĉar vi neniam nur okazi tra Mike Smith se vi trompe dividadon en duono en tiu maniero por hazardo. Do ni nun formaligi kio estas klare intuicia. Do io nomata _pseudocode_ estas kie ni komenci kelkaj el niaj komencaj problemoj. Kaj tio estas ĝenerala maniero de priskribi algoritmon aŭ komputila programo, Ne uzante C aŭ C ++ aŭ Java, aŭ iu specifa lingvo, sed nur per la angla, kun kion ajn homo povus esti familiara. Kaj ni povus skribi la _pseudocode_ pro tiu problemo jene. Paŝi unu, repreni la telefono libro. Ŝtupo du, malfermita al mezo de telefono libro. Paŝo tri, rigardu la nomojn. Paŝi kvar, se Smith estas inter names-- Kaj nun tiu estas interesa konstruo. Estas decido punkto. Estas forko en la vojo, se vi Mi, branĉo, por tiel diri. Do mi tuj Krommarĝenon nur konvencio step-- Ne five-- kio estas diru, mi vokos Mike. Do tiu deŝovon, tute arbitra homa konvencio, sed estas simple signifis transdoni semantike ke se Smith estas inter nomoj tiam mi devus voki Mike. Dume en ŝtupo ses, avizo ke la deŝovon foriris. Do alia estas alia forko en la vojo, alia vojo mi povus vojaĝi. Do alie se Smith estas pli frue en la libro, kio estas mia sekva paŝo probable tuj estos tie? Publiko: Vi iros al la maldekstra flanko. DAVID J. Malan: Jes, do iru al maldekstre duono de la telefono libro. Forĵetu la dekstran duonon se Smith estas antaŭe en la libro. Tiel malfermita al la mezo de maldekstre duono de la libro. Kaj tiam paŝon ok, iru al linio tri. Kaj tio estas kurioza buklo min indukti, rekursio tiel diri. Sed pli en kiuj en la estonteco. Mi uzas mian saman algoritmon, miaj saman _pseudocode_, por solvi la saman problemon denove ĉar lin sola kiu estas ŝanĝita estas la grandeco de la problemo, ne mia celo, kaj ne la homo Mi serĉas. Do mi povas reutilizar la algoritmo ke mi jam difinita. Else se Smith estas poste en book-- vi povus guess-- malfermita al la mezo de la dekstran duonon de la libro. Kaj denove, iru al linio tri. Else-- kio estas la fina linio en tiu programo tuj estos? Se li ne estas inter la nomojn en la paĝo mi estas plu, se li ne estas antaŭe en la libro kaj ne poste en la libro, kion mi scias veras pri Mike Smith nun? Publiko: Li ne estas en la libro. DAVID J. Malan: Li ne estas en la libro. Do la plej bona mi povas fari estas simple rezigni kaj halti ĉi programo. Bone. Do, je tiu punkto, ni preni rapida ĝiras de kelkaj el kio atendas. Kaj fakte, mi aliĝis tien per nombro de CS50 bastonon. Se tiuj uloj povis ĉiuj aliĝi min tie sur la scenejo. [Aplaŭdo] Atentas vin, tiu estas nur subaro de CS50 bastonon ĉar ĉiu jaro ni havas preskaŭ 100 personaro membroj en listoj kompreneble helpantoj, instruante uloj, kaj pli. Venu supren. Do ili kunigos nin tien mallerte por nur momento kiel ni donu ventego ĝiras de kio Vi devus atendi ĉi tie en la kurso. Do unuavice ni havos SAT / UNS kiel grading opcion en la kurso. Tio signifis intence esti eblo per se vi estas iomete maltrankvila ĉe esti en la kurso, kaj vi timos failure-- eĉ se sincere fiasko signifas vundi vian GPA, prenanta B kaj ne A-- kiu estas precize kion, certe por ponteton Kompreneble kiel CS50 kaj aliaj enkondukaj kursoj ĉi grading opcio estas intencita por permesi. Mi tutkore kuraĝigi students-- speciale se sur la fence-- komenci la Kompreneble SAT / UNS, eĉ restas SAT / UNS. Sed vi certe povas ŝalti al letero grado de la kvina lundo en la termino. Sincere, dorso, kiam mi Estis novulo en 1995, Mi mem eĉ ne prenis CS50 ĉar mi ne iru la nervo por fakte paŝo piedon en la klasĉambro. Ŝajnis domajno tro nekonataj al mi kaj vere nur por tiuj amikoj miaj, sincere, kiuj estis programado ĉar ili six- aŭ eble 10-jaroj-malnova. Kaj tio estis nur ĉar mi trovis povi preni CS50 en mia tago en la ekvivalenta versio de SAT / UNS-- pass / malsukcesas reen en la day-- ke eĉ mi prenis 50. Kaj iel aŭ alia, mi tien kun vi hodiaŭ. Nun dume kion ajn vi devus teni en menso 50 estas samtempaj numerplato. Kontraŭe al la famoj kiuj vi eble auxdis, Vi povas, fakte, samtempe enskribi en CS50 kaj alia klaso kiu kunvenas la sama aŭ iu superposición tempo CS50 la prelegoj rajton tie. Vidu la Syllabus por detaloj de la implementación de gxi. Prelegoj, dume, kontraŭe al kio estas oficiale en la katalogo, ĝenerale nur renkonti por nur unu horo. Okaze oni povas kuri iom longa. Sed memoru ke la golon en CS50 la prelegoj estas provizi vin kun conceptual superrigardon, espereble iuj manifestacioj, eble eĉ iuj Giveaways, de kio atendas por la semajno kiu sekvas. Kaj tiel en prelegoj, ni esploros tiuj temoj kaj ekzemploj kune, alportante studentoj sur scenejo, kaj Staff supren sur scenejon tiel ofte kiel ni povas, por nur kelkaj horoj ĉiun semajnon. Sekcioj, dume, estos proponu tiujn ulojn here-- multaj ili instruis kamaradoj, iuj el ili kompreneble assistants-- volo pasante ĉiusemajne. Kaj kio estas ŝlosilo por subteni en menso estas ke ni ĉu have-- ne kontraste Unua Noktoj, la muziko class-- malsamaj aŭtoveturejoj de sekcioj por studentojn malpli komfortaj, pli komforta, kaj ie en inter. Kaj sincere, vi scias se vi estas malpli komforta. Kaj vi verŝajne scias se vi estas pli komforta. Se vi ne estas vere certa ke vi estas per difino ie en inter. Do kiam temas tempon sekcio en semajno aŭ tiel, per la Syllabus, ni petas vin, ke demando. Kaj vi povas mem elekti Based sur via propra komforto nivelo kaj estu kun students-- kun verda dots-- simila en komforto nivelo al vi. Dume, ni havas problemon aroj, kiu volas finfine difini vian sperton en tiu kurso. Ili proponis tipe en multnombraj eldonoj. Insigno eldono kiun ni atendas pli ĉiu lernanto en la kurso por pritrakti sed ankaŭ tn hacker eldono kiuj proponas neniun formon de ekstra kredito kategorie sed vere la bragging rajtoj diri ke vi provis kaj pritraktis la kurso hacker eldonojn kiuj alproksimigi la simila materialo sed de pli kompleksaj angulo. Kion ni proponas por la norma eldono, cxar denove, súper plimulto de lernantoj, estas ne nur marŝi-throughs, kiuj estas videos ĉefitaj de la kurso bastono ke vere promeni vin tra la Kompreneble problemoj kaj eblaj dezajno implementaciones. Kaj ni ankaŭ, post la Fakte, proponi postmortems, per se vi scivolas kiel vi povus havi aŭ devus esti solvita iuj problemon, la instruistaro irados vin tra tiuj en video ankaŭ. Dume, kio atendas tro trovas kvin malfrua tempo kaj al la fakto ke ni falos via malalta problemo starigis partituro. Ni certe estimas ke en interŝanĝo cxar la laborŝarĝo ke 50 atendas de vi, vivo ricevas la vojon kelkfoje, se ne kvinfoje. Kaj tiel ĉi proponos vi iom de fleksebleco, etendante vian limdato de, diru, Ĵaŭdo tagmeze al vendredo tagmeze. Vidu la Syllabus la efektivigo detaloj largxo. Nun kio nun atendas? Kaj ĝi estas nur okazanta Min nun kiom longe Mi havas vin infanoj stari ĉi tie sur la scenejo. [Ridado] DAVID J. Malan: Sed ni atingos la klimataj metas antaux longe. Do kio atendas en terminoj de la problemo aroj? Nu, eble teaser de kion ni ĉiuj faris lastan jaron kun via antaŭuloj. En la unua problemo aro lasta jaro, ni enkondukis Scratch, grafika programlingvo ke permesas plani laŭvorte por trenante kaj delasante puzlo pecoj kiel tiuj, kiuj estas memoras la konstruojn vidos nur unu semajno tial, kiam ni ŝanĝi al pli tradicia lingvo, konata kiel C. Pasintjare ni pluiris al tiu problemo aro, engaĝante por ĉifriko, la grimpadi informo teni ĝin de registaraj aŭ amikoj okulojn ke vi ne volas vidi ĝin. Kodita en tie estas mesaĝo kiu baldaŭ vi povos deĉifri aŭ de-scramble. Breakout estis problemo metis lastan jaron, kien vi uzu tiujn novajn trovita programado kapablecojn por fakte implementar ludo wherein-- kiel vi eble memoras de childhood-- la celo estis Bash la brikoj kiuj estas sur la pinto de la ekrano tie, amasigante noti survoje, kaj efektivigi viajn proprajn algoritmojn kun kiu tiu solvo finfine permesas ludi la ludon. Dume, poste en la semestro, ni donos al vi vortaro de 143.091 anglaj vortoj. Kaj vi estos defiita skribi programon kiu literumi ĉekoj, dokumentoj, per ŝarĝi ke multaj vortoj en memoro kiel kompetente kiel ebla. Ĝenerale pitting vin kontraŭ viaj samklasanoj Se vi elektas en iom de defio en ĉefo tabulo por vidi kiu povas uzi la malplej duaj de rultempo, kaj la malplej kvanto de megabajtoj da memoro, kaj fakte Pliprecizigi viaj programoj esti nekredeble de rimedoj eficiente ne nur tempon. Pasintjare tro, ni rigardis la fino de la semestro ĉe ttt programado. Kaj efektive, ni faru tion denove ĉi jaro kun multnombraj problemo aroj, enkonduki vin al la teknikoj kaj la pensmanieron per kiu vi povas apliki tiuj programado kapablecoj por retejoj, dinamikaj retejoj, retejojn kiuj efektive solvi problemoj kaj kondutos malsame kaj ne simple statikaj ejoj kun statika informo. La fina projekto finfine difinos, kvankam, La klimakso de la kurso por lernantoj, kiuj vi estos defiita implementar plej ion de intereso al vi, tiel longe kiel ĝi iel flamo sur la kurso lecionoj. Kaj ke vi vidis la video ĉe la komenco, Ni finos la semestro kun la CS50 Hackathon, kiu se, nekonataj, komencos ĉe 7:00 PM nokton kaj enflui 7:00 AM la sekva mateno. Ĉirkaŭ 9:00 am, ni ordo en la unua vespermanĝo. Ĉirkaŭ 1:00 AM, ni ordo en duan vespermanĝon. Kaj se vi estas ankoraŭ starante ĉe 5:00 AM, ni volo shuttle buso al IHOP por matenmanĝo. La CS50 Foiro, dume, estas evento al kiu 2.000 plus fakultato, studentoj, kaj bastono el trans campus volo veni vidi vian atingoj en la kurso kaj la fino projektoj kaj kreaĵoj ke vi kreas vian tekkomputiloj, labortabloj, aŭ eble eĉ ampoloj. Dume, oficejo horoj kaj la apogo strukturo. Kaj nun ĝi jam estis bona tempo por alporti al vi ĉiujn supren. Oficejo horoj okazos kvar noktoj semajne por multnombraj horoj ĉiunokte kun ĝenerale 20 al 30 de la Kompreneble bastono deĵoras senprokraste provizi vin kun intima unu-sur-unu ŝancojn subteno kun la paso de la problemo aroj. Tutoring tro estos disponebla, aparte por studentoj malpli comfortable-- aŭ Supozeble almenaŭ comfortable-- por kiu oficejo horoj ne estas la plej akcelis medio kaj certe ne la plej streso-libera. Speciale kiam templimoj estas premita, ni proactivamente duo vi mem kun membro de la stabo labori kun en iu regula horaro kiel viaj necesecoj kaj ilia horaro permesas. Kaj bastono. Permesu al mi prezenti Davon, Rob, kaj Gabriel, ĉijara kapoj. Se vi estus ĉiu ŝatas say-- [Aplaŭdo] --a vorto. [Aplaŭdo] Davon super tie estas la Certe la direktisto, kiu signifas en lia plentempa rolon li helpas kun la ekzekuto kaj loĝistiko de CS50. DAVON: Yeah, hi, knaboj. Vi vidos multajn al mi en oficejo horoj. Mi povas instrui sekcioj. Kaj se vi pafos retmesaĝoj antaŭe, Mi probable respondi. Do mi vidos multan vi ĉiuj semestro. Kaj bonvenon al CS50. DAVID J. Malan: Nun Gabriel, kiu mem estis nur novulo lastan jaron, sed dum la pasintaj kelkaj jaroj havas estis operaciante sian propran version de CS50 en Brazilo, per kiu li elŝutis ĉiuj kurso content-- kio estas klare esti filmado kaj metita online-- tiel ke li povus traduki ĝin al Portugala kaj tiam instruu pli ol 100 el lia samklasanoj super la kurso de paro de jaroj, instruante en sia denaska lingvo la kurso kursaro. GABRIEL: Saluton. [Aplaŭdo] GABRIEL: Saluton, mi estas Gabriel. Mi la kapon TF de la kurso. Kaj mi esperas, ke vi amas CS50. Jen CS50. DAVID J. Malan: Nun por Rob. Ho, vi volas enkondukon? ROB: Ne, mi ne scias. [Ridado] DAVID J. Malan: Kaj Rob Boden. [Ridado] ROB: Saluton, mi estas Rob. Tiu estas mia kvina jaro implikita kun la kurso. Ĉiujare estas nur pli kaj pli bona klaso, tial vi uloj estas klare tuj estos imponega. Mi esperas ke vi ĉiuj havas amuzon kun ĝi. Mi tuj amuzos kun ĝi. Do vidu vin. DAVID J. Malan: Kaj tempo ne permesas us-- [Aplaŭdo] Tempo ne permesis al ni enkonduki ĉiuj sur la scenejo kaj ĉiuj liaj kolegoj kiuj aĉetojn klasoj hodiaŭ. Sed permesu al mi prezenti Belinda kaj CS50 Puzlo Tago, kiu atendas ĉi venanta Sabato, kiu Estas la unua de la Certe la grandskala okazaĵoj. Ĉi tiu en aparta signifis al martelo domo la punkto ke komputiko estas finfine ne pri programado, sed prefere pri problemo solvanta pli ĝenerale. Kaj Puzzle Tago, kiel vi vidu, venigos vin kaj via samklasanoj together-- Ni esperas, ke tiu sabato. Belinda: OK. Saluton, infanoj. Do dankon. Do kiel nia ilustras kapitano diris mia nomo Belinda. Mi estas sophomore ĉe Quincy House. Mi nur ŝatas vin, knaboj, kaptis CS50 lasta jaro, vere amis ŝin. Mi havas debilidad por vi uloj en la tria vico. Kaj Mi fieras diri, mi estas nun en la rilato kun CS50 [inaudible]. OK. Tio estis mia lama versio de ŝerco. Ĉiuokaze, do movi plu, nur volis inviti vi uloj ĉiujn al la i-laboratorio aux HBS abelujoj. Ni tuj estos devi Puzzle Tago de 12:00 al 3:00. Kaj estas granda ŝanco por vi infanoj por kontentigi vian proksimulon CS amikojn solvos iu ne-CS enigmoj, kiel Kapitano menciis, kaj manĝas ankaŭ iom da libera manĝo, gajni iom timinda premiojn, kiel donaco kartoj, $ 75 po persono, kaj also-- kio estis tio? Wii Aŭ ia? Wii Aŭ? Jes. Por nia loterio. Awesome. Do mi batas ĉirkaŭ post klaso. Kaj se vi infanoj havas ajnan demandojn, lasu min scii. DAVID J. Malan: Kaj vi vidos, preter ĉi tie estas nenio por fari hodiaŭ. La unua problemo starigis eliros Vendredo. Sed, por venigi nin al domo hodiaŭ, mi ŝatus enkondukos vin specife pli membro de la stabo, Colton Ogden tie, kies manoj estas nun protektatino supre vin tiu MIDI adaptilo al martelo domo la punkto pli ke komputiko, tro, havas aplikeblon malproksime trans inĝenierio kaj tigo kaj komputiko mem, etendante gxis tia domajnoj kiel muziko. Colton havas afable offered-- mi pensis unu el ili tuj riparos la fokuso. Andreo, se ni povus kunvoki fokuso tien por nur momento. Kio Colton faris anticipe estas programo tiu mekanismo, ĉi kajero de butonoj ke vi vidas bildigis ĉi tie, kiel MIDI adaptilo, per ĉiu el tiuj butonoj estas telegramis al aparta muzika noto aŭ sonon, pli ĝenerale registrado, tia ke ludante mastroj de tiuj butonoj, multe kiel mastroj de bitoj, povas reprezenti aliajn alta nivelo konceptoj. Ĉu li povos finfine preni nin hejme hodiaŭ? Sen pli enkonduko, se ni povis malhelan la lumoj, kaj ŝalti la ekrano malantaŭ Colton. Publiko: Woo! DAVID J. Malan: Jen CS50. [MUZIKO Ludante] [Aplaŭdo] Estas tio por CS50. Ni vidos vin Vendredo. Iuj kuko atendas vin en la transepto. [MUZIKO Ludante]