[Muusika mängimine] [APPLAUSE] DAVID J. Humala: See on CS50, Harvardi ülikooli kasutuselevõtt intellektuaalse ettevõtete infotehnoloogia ja programmeerimisest. Nüüd, kui sa oled nende seas, kes igal aastal istume siin natuke närvidele meelt, näiteks et sa ei usu, et sa kuulud siia, sa arvad, et kõige keegi istub ümber teab palju rohkem kui sina, on tõepoolest mugavam kui sa arvuti taga teaduse või arvutid üldisemalt mõistma et 78% õpilasi, kes nüüd võtta CS50 ei ole varasemaid kogemusi. Tõepoolest, seal on 100 täppi seal ekraanile, 78 mis on pidevalt roheline, mis tähendab, et sa, kui sa oled üks, et demograafiline, on väga hea firma siia välja. Ja kui sa oled selle asemel hulgast 22% CS50 õpilased, kes seda tõepoolest on eelnev kogemus, kas keskkooli või mõni muu programm, aru, et sind ka, siis vaidlustada käigus. Mitte ainult meil on erinevad lood õpilastele vähem mugavamaks ja mugav sarnased lõigud, me Samuti on nn häkker väljaanded Enamiku probleem seab mis väljakutse nendele üliõpilastele koos täiendavate kogemuste uurida sarnane materjal kuid rohkem kogenud perspektiivi. Aga milline on infotehnoloogia? Noh, lõpuks, mis hakkab asi nagu te uurida selles valdkonnas ei ole nii palju, kui sa lõpuks võrreldes oma klassikaaslastega, aga kui sa ise sattuda 12. nädalal võrreldes kui sa hakkad siin nädalal null. Nüüd arvuti science-- noh, olgem nimetame seda teadust computation-- kus arvutusvõimsus on tõesti ainult fancy viis öelda, võttes mõned sisend, toodavad mõned väljund ja Seejuures töötab algoritme, komplekti juhiseid lahendamiseks mingi probleem nendele sisenditele et toota mõned väljund või lahendus, kus olete huvitatud. Nii et meil oli hiljuti mõnikord reisida läbi California kohtuda vilistlane. Tema nimi on Susan Wojcicki. Ja ta tahaks rääkida et sa siin video tunnistada, et just kui kohaldatav isegi lihtsalt maitse arvuti teaduses sissejuhatav tasandil võib olla. Isegi kui sa ei lähe jätkata arvutiteadus nagu väljale või isegi inseneri, või STEM üldisemalt näete, et tegelikult, kui teatud Muidugi nii mõjutanud tema elu. Ja ta alles oli see, kui ta oli vanem siin Harvardi kolledž. Kui me suudaksime päevasõidutulede tuled Susan. Susan Wójcicki: Hello, world. Olen Susan Wojcicki. Olen tegevjuht YouTube. Ja ma võtsin CS50 kui olin vanem Harvardis 1990. Ma olin tegelikult ajalugu ja kirjanduse peamine. Ja mu noorem suvel Ma sain aru, et võib-olla ma tahtsin midagi õppida arvutid. Ja nii ma tulin tagasi. Võtsin CS50. See oli raske, kuid see oli Kõige hämmastav klassi võtsin. See muutis kuidas ma mõtlen kõike. Ja kui ma lõpetanud Harvard 1990, läksin Silicon Valley. Ja mul on töö. Ja ma olen töötanud tech ajast. DAVID J. Humala: Mis nüüd Susan ei maininud seda videot, et tegelikult tema garaaž, et Google ise oli asutasid Larry ja Sergey. Nüüd ka ulatasid meie sõbrad at code.org, organisatsioon, mis Viimase aasta jooksul on olnud et inimesed eriti põnevil arvutiteadus ja koostamine, eelkõige. Kuid see on väärt märkimist, et programmeerimine ei arvutiteaduse per se. Arvutiteadus ei ole programmeerimine. Pigem programmeerimine on vaid tool-- kellega te kõik on kõik väga hästi, tuttav poolt semestri väljatöötamiseni nii et saate rakendada ei lihtsalt tulevasi kursusi CS aga mis iganes väljad kust sa tuled, humanitaaria, sotsiaalteadused, loodus teaduse või sarnased. Tõepoolest, võimaldavad mõned muud vilistlaste ja oma kolleege rääkida kohaldatavus valdkonna, mis ootab. Bill Gates: Ma olin 13, kui ma esimest korda sain juurdepääs arvuti. JACK DORSEY: Minu vanemad ostis mulle Macintosh 1984 kui ma olin kaheksa-aastane. Mark Zuckerberg: olin kuuendas klassis. SPEAKER 1: õppisin koodi kolledžis. RUCHI Sanghvi: Uustulnuk aasta esimene semester, tutvustus Computer Science. Bill Gates: Ma kirjutasin programmi et mängitakse trips-traps-trull. DREW HOUSTON: Ma arvan, et see oli üsna tagasihoidlik algus. Ma arvan, et esimene programm Kirjutasin küsis asju, Milline on sinu lemmik värv? Või kui vana sa oled? ELENA SILENOK: Ma esimest õppinud kuidas teha roheline ring ja punane ruut ilmuvad ekraanile. Gabe Newell: Esimene kord, kui ma tegelikult oli midagi tulla ja öelda, tere, maailm. Ja ma tegin arvuti teha. See oli lihtsalt hämmastav. Mark Zuckerberg: õppimine et programm ei alustanud kui tahavad õppida kõik arvutiteadus või üritavad kapten seda distsipliini või midagi sellist. Ta lihtsalt hakkas välja, sest ma tahtsin seda teha üks lihtne asi. Tahtsin teha midagi, mis oli lõbus mina ja mu õde. Ja ma kirjutasin selle väikese programmi. Ja siis põhimõtteliselt lihtsalt lisada veidi ta. Ja siis, kui ma vajasin õppida midagi uut, Ma uurisin seda, kas raamat või Internetis ja seejärel lisatakse veidi ta. DREW HOUSTON: See ei ole tõesti erinevalt mängides instrument või midagi või mängib sport. DAVID J. Humala: Olgu. Olgem nüüd tegelikult sukelduda veidi sügavamale. Mis need on sisendid ja väljundid et me räägime siin? Niisiis, kuidas midagi lihtsat? Te ilmselt teate, isegi kui teil on no tuttav infotehnoloogia üldse, et arvutid kuidagi kasutada ja oskab ainult nulle ja ones. Aga kuidas see võimalik anda, kuidas palju tänapäeva lauaarvutid ja sülearvutid moodi saab teha? DNA päev, ainult tähestik, et nad mõistavad on null või üks. Noh, mõtle sellele. Meie, inimeste, kalduvad kasutama detsimaalsüsteem. "Detsember", mis tähendab 10. Ja see on 10, sest meil on 10 numbrit, 0 kuni üheksa. Nüüd arvutid, seevastu kalduvad kasutama binaarne. "Bi", mis tähendab kahte. Nii nad kalduvad kasutama ainult nulli ja ühe. Aga selgub, et isegi ainult nullidega ja need, mis on piisavalt suur tähestik kellega esindada kõige iga tükk andmed, mida soovite, kas see on number, kas see on kirjas, kas see on graafika või video ekraanil. Võtame näiteks, kuidas me inimesi tavaliselt seda tõlgendada number siin. See on vaid kolm numbrit, üks, kaks, kolm. Aga me teame, et see number loomupäraselt nüüd 123. Aga miks see nii on? Noh, kui te arvate tagasi et võib-olla algkool, sa ilmselt õpetati mõtlema Nende numbrite olevaks veerud kus üks on sadu kohas, kaks on kümneid koha ja kolm on üheliste kohale. Miks see nii on tegelikult kasulik? Noh, mõtle super lihtne aritmeetika et meil kõigil on olnud teeme juba aastaid. Tõhusalt, kui sul üks sadu koha sa kiire matemaatika 100 korda 1 pluss 10 korda 2-- sest kaks on kümneid tulevad-- pluss 1 korda 3-- kuna kolm on üheliste kohale. Niisiis, muidugi, kui me tegelikult selle läbi korrutan, mida me tegelikult esindavad Selle pattern-- üks kaks meeter on 100 pluss 20 pluss 3, mis muidugi on 123. Nüüd binaarne ja arvutid tõesti, põhimõtteliselt räägivad sama keelt mida me teeme. Nad lihtsalt on väiksem tähestikku. Nii et arvutid on ainult nullid ja need, kelle käsutuses. Nii et arvestades, et me inimestel on sisuliselt volitusi 10 kõigis nendes places-- 10 kuni nullini, 10 ühe, kümme Lisa kaks korda, võimaldades 110 ja 100 aastal. Kuna arvutid on ainult kaks väärtust nad saavad aru, nulli ja ühe, nad kasutavad erinevaid väärtusi Nendes veergudes, üks, kaks, neli. Ja kui me elus hoida, kaheksa, 16, 32, 64, ja nii edasi. Aga muster ja mentaliteet on täpselt sama. Nii et see loogika, et keegi, kuidas oleks Ma minna esindavad number üks binaarne? Kui sa pole kunagi isegi mõelnud seda enne, mis su soole öelda? Sihtrühm: One. DAVID J. Humala: One. Täpselt. Meil on vaja ainult üks ones koht, sest nulli piisab meile kumbki nelja ega kaks. Nii et üks korda üks võrdub üks. Nüüd on asjad natuke huvitav. Kui ma tahan esindada kahekomponentsete number kaks-- kuid uuesti, isegi kui te pole kunagi räägitakse seda keelt enne, kuidas me esindame binaarne väärtus meie, inimesed teavad, kui kaks? Zero üks null. Pane üks veerus, et sa tahad seda. Nüüd see muutub üsna lihtne ilmselt nüüd. Nii et kui ma tahan kujutada meeter puudub kolme veeru. Niisiis, jälle saan nüüd lisada need väärtused kokku pannes siin. Seega 2 korda 1 pluss 1 korda 1 on muidugi 3. Nüüd on asjad natuke nalja et need nüüd nulli. Ning esindada neli, ma saan seda. Ja kui me juurdekasvu aeglaselt siin-- et oleks viis. See oleks kuus. See oleks seitse. Aga nüüd ma tundub, et on tekib probleem. Kuidas võiks ma minna esindavad eight-- oleks järgmine väärtus. Jah, me vajame uut bitti. Ja tõesti, kui olete kuulnud seda fraasi enne, bitti, see on lihtsalt lühike Kahendnumber, null või üks. Ja nii ma juhtumisi esindavad kõigest kolm bitti siin. Aga kui mul oleks viis ladustamiseks ei kolme erinevat bitti, kuid neli, kindlasti ma võiks olla kaheksa ja siis üheksa ja seejärel 10 ja isegi kõrgemale ja kõrgemale. Aga mis siis nõuab kahtluse, kuidas me saame minna neid esindavate asjad kõigepealt. See on üks asi, mida teha neid siin slaidile aga kuidas sa neid esindama kui sa oled mehaaniline seade? Mis on arvuti teeb esindavad sisendid ja väljundid, et põhimõtteliselt määratleda arvutamine lõpus päeval? Noh, aga midagi super lihtne nagu see on? See on lihtsalt üks lambipirn. Ja ma ei saa käivitada seda lambipirn minna keerates mõned elekter kohta ja võimaldab elektrone läbivoolu, mis muudab oma riik või selle väärtus, kui nii võib öelda. Näiteks on see vana kooli laualamp siin üks selline lambi sees on. Ja just nüüd, et see pole tõesti teeb midagi kasulikku. Aga niipea, kui ma ühendage see vooluvõrku ja seda siis kasutada switch-- või saame isegi kutsuvad seda transistor või ma arvan et kui such-- Nüüd saan esinda seda väärtust, kui lamp on ilmselt ära, või selle väärtust. See väärtus või selle väärtuse. See väärtus ja nii edasi. Nii sees arvuti, arvatavasti, on palju väiksemad tükid riistvara, kuid lõpus päeval lihtsalt kasutada electricity-- võibolla lüüa Kui-- ja siis kas hoida midagi või hoida midagi välja. Loomulikult ei ole see Eriti huvitav on teha vaid ühe lambipirni. Tegelikult, kui kõrgele ma saan loota sisse binaarne selle laualamp siin? Sihtrühm: One. DAVID J. Humala: Üks, eks? Mul on vaja rohkem laualambid, kui ma tegelikult tahan loota suurem. Aga me saame teha paremini. Kuna lambid, mis meil panna need asjad on tegelikult Kasvataja lambid kui Läinud lubaks. Ja nad on tegelikult võrgustatud lambipirnid. Ja kobarad ettevõtted teha neid asju nendel päevadel. Aga selgub, et see üks eriti Kaasas omadus, mille saate muuta oma värvi. Nii näiteks, kui te kaunistatud oma Dorm tuba mõned neist tuli sibulad, sõltuvalt teie meeleolu, olenevalt sellest, kes on saadaval, sõltuvalt ilmast, sõltuvalt kellaajast päeva, saab tegelikult muuta värve sibulad oma toas. Ja see on sellepärast, et nende valgus sibulad ja teised, nagu see on, mida on nimetatakse API, taotluse programmeerimise liides, mis on teema, mille sa pead olema hästi tuttav poolt semestri lõpus. Ja see on lihtsalt fancy, segasena viis öelda, saab programmeerida neid kerge sibulad teha oma pakkumise. Võite saata neile sõnumeid just nagu sina, inimene, saab sõnumit saata veebiserverisse ütles mulle tänane uudis või anna mulle oma e-posti. Võite saata enam kauge sõnumeid need lambid öelda, sisse ja välja lülitada. Aga see pole veel kõik, et huvitav. Võite öelda, lülitage punane, põleb roheliselt, lülitage sinine, kõik sama lambipirn. Ja te võite isegi natuke rohkem Savvy, ütleme, keera ennast siniseks kui see on sünge päev väljaspool, näiteks. See võib tegelikult plaaster sisse Ilm API ja teada saada, mis ilm on, või aeg päev, või muid selliseid käivitab. Niisiis, tegelikult kaks CS50 enda töötajad, Dan Bradley ja Ansel Duff siin lahkelt hangitud meil terve hunnik neid lampe. Ja nad ehitasid CS50 on esimene binaarne sibulad, kus me oleme esindatud siin-- nende mänguline vähe magnets-- mitmesuguseid kohatäitjaid me vihjas lihtsalt natuke tagasi. Niisiis, kuidas siin on ones kohas, kaks, neli. Ja me ei näinud kõrgem. Aga muidugi, nad on volitused kaks. Kaheksa, 16, 32, 64, ja 128. Nii et kui ma nüüd tahan olla veidi Kasvataja kui kasutate seda vana kooli lüliti, Mul on siin selle iPad super lihtne kasutajaliides et Dan Bradley, endine õpilane ja nüüd õpetab kolleege, programed kasutades mõned HTML ja JavaScript, mis on juurdehindlus ja programmeerimine keelte kohta. Ja võite ilmselt vaadake-- isegi tagasi-- seal on suur pluss ja suur miinus, pluss üks nupp kõigi nende sibulad. Ja mis see läheb lubage mul ei on näiteks klõpsake pluss ja nüüd esindab, ning Muidugi, mis number? Üks. Ja ma ei tabanud seda jälle. Kaks. Kolm. Four. Viis. Kuus. Seitse. Ja nüüd siin me saame, et pikendamist, kuid peame neljas bitine seekord nii et nüüd on meil kaheksa. Nii et me võiks seda teha juba mõnda aega. Tegelikult, nagu kõrvale, kuidas kõrge võiksime loota? Keegi? Sihtrühm: 255. DAVID J. Humala: 255, eks? Ärge muretsege liiga palju matemaatikat nüüd, kuid see on päris korralik number. Aga tegelikult ei seondunud lihtsalt kui palju andmeid, nagu kirjas, või graafiline et meil võiks olla. Aga ükski asi nüüd. Ma lähen edasi minna ja muuta need kõik maha. Ja kui ma saaksin, tahaks küsida vabatahtlike, meie esimene volunteer-- oh, hello-- laval. Saak pead olema mugav ilmumist, kui sa selgelt on ees kõik oma klassikaaslastega, samuti internetis. Ja lubage mul vaadata veidi kaugemale kura kuidas siin valge särk? Ja käsi üles. Tule. Mis su nimi on? Sihtrühm: Jackie. DAVID J. Humala: Jackie. Jackie, tulge siia. Niisiis, mida on ka selles iPad on nupp nimega mäng režiimis. Ja see Mängurežiim luban, et ma sisend eelnevalt konkreetse kohaga number, numbrid meil inimestel on tuttav. Ja siis tuleb väljakutse siin kasutada nuppe aasta top-- üks Kõigi nende bulbs-- et tegelikult aru saada, muster lambid mis tähistab number küsimus. Ja mul on kahju, mis su nimi oligi? Sihtrühm: Jackie. DAVID J. Humala: Jackie. Olgu. Meeldiv kohtuda. Nii et lubage mul minna ja programmi maailma näha number 15. Hoiame seda esialgu väike siin. Ja ma lähen minema mäng režiimis. Ja ma lähen, et täpsustada, anna meile number 15. OK. Ja nüüd kõik watching-- kui tahad äkki seisma nii, sest see liinile up-- minna ja Lülitab kaheksa nupud ülaosas pöörduda Lampide või välja näed. Sihtrühm: OK. DAVID J. Humala: Ja no petmine lööb pluss 15 korda. Oh, me ei kavatse seda teha. Sihtrühm: Oh, oota. Mul on nii kahju. DAVID J. Humala: võid keerata lambid individuaalselt kõigi nende nuppude peal. Sihtrühm: Oh, OK. Seega oleks nagu-- DAVID J. Humala: OK. Nii et nüüd on meil kaheksa. Nii et olgem pausi publik tegeleda siin. Mis number on Jackie praegu on? 11. Nii et me oleme peaaegu kohal. Ja väga hea. Nii et meil on meie esimene võitja. Palju õnne. Ja me arvasime me tahaks olla mõned vapustav meened. Kui soovid olla üks selline Dorm tuba siin ülikoolilinnakus võite ise on lõplik projekt kasutades nüüd see API, tänu Jackie. Nii nüüd-- [APPLAUSE] --if saime veel üks nagu ümber selle. Oh, nüüd igaüks tahab mõned lambid. Sest nn häkker väljaanne, me ramp see üles a-- oh, Jah, millekski. Ma arvan, et sa kohe olemas kui käsi läheb alla. Mis su nimi on? Sihtrühm: Alex. DAVID J. Humala: Alex, tule siia. Nii Alex, me ei kavatse programmi veidi suurem arv. Arvatavasti selleks. Number 50. Sihtrühm: OK. DAVID J. Humala: Aga nagu Ma ütlesin ja te võite taha seista siin, nii et nupud rivistama kui sa oleks expect-- aga ma tegin nimetame seda häkker väljaanne. Nii-- õnne! [Naer] Sul on võimalik pöörduda need ära, kui sind-- OK. Suurepärane. Wonderful. Palju õnne. [APPLAUSE] Ma arvan, et ma peaks maksma. Õnnitlused Alex samuti. OK. Nii ülim Buffee siin on loodetavasti ausalt öeldes simplicity-- lihtsus, millega saad mõne kena valgus sibulad, ilmselt [kuuldamatu]. Aga mida nad esindavad, lõppkokkuvõttes sama ideed kellega meil on inimesed juba liigagi tuttav. Niisiis, milline võiks järgmise etapis olla progresseerumise üritavad teha midagi huvitav andmeid ja esindavad sisendid, mis ei ole lihtsalt numbrid, kuid on võib-olla tähed või rohkem? Noh, selgub, et arvuti maailmas, aastaid lihtsalt vastu meelevaldne, kuid järjepidev standard, mis kaardistab numbrid kuni tähestiku tähti. Näiteks, siin on Katkend et kaardistamine. Seda nimetatakse ASCII. -S-C-I-I. Ja see on lihtsalt tabel, mis kaardistab suurtäheks Kirjad-- Selles juhul-- koma numbrid. Aga mis on kaudselt? Noh, kui sa tegelikult tahad esindada midagi talle või mingi tekst veebilehele, siis ilmselt tahavad näidata inimese tähed tähestik, mitte numbrid. Nii et olenevalt kontekstis programmi et kasutaja kasutab, kui see on veebibrauser või e-posti klient, numbreid saab kindlasti tõlgendada nii, et tähed. See tähendab, mustrid bittide saab lihtsalt tuleb tõlgendada nii tähti. Ja mis meil on on kirjas olemise esindatud 65 B on esindatud 66. Nii et kui meil on super lühike sõna, nagu hi, mida arvuti lõppkokkuvõttes Hoida kohaga, kuid tegelikult binaarne, kasutades teatud bittide jada, võimendades natuke elektrit mingil viisil, oleks kaks numbrit 72 ja 73. Aga muster bitid esindab neid väärtusi. Nii et need on siis kuidas me saame esindada oma sisendid ja väljundid. Ja piisab, kui öelda, et me ei saa seda keerulisem esindused lõpuks on asjad graafika, videod, muusika ja rohkem nagu me näeme hiljem selle aja jooksul. Nii et lihtsalt jätab siis algoritmid, nende komplektid juhiseid, mille me lahendada tegelikke probleeme. Me möödume sisendite algoritme. Ja need algoritmid toodavad väljundid, loodetavasti õige väljundid ja loodetavasti ka efektiivselt kogutud väljundid. Teisisõnu, see on üks asi, rakendada midagi õigesti. See on teine ​​asi, et rakendada midagi hästi või tõhusalt. Näiteks üks meeleavaldus et me oleme kiindunud käigus on see üks. Aga need asjad hakkavad üha raske leida. Aga see on tõesti vana kooli telefoniraamat, mille sees on 1000 pluss lehekülge nimed ja telefoninumbrid. Ja kui ma tahtsin otsida keegi selles telefoniraamatust Ma lihtsalt ei oska väga naiivne algoritm. Ma võiks avada esimesel leheküljel, ja Ma võiks hakata otsima, ütleme, keegi nimega Mike Smith. Ja kui ta ei ole esimesel lehele, ma edu teiseks ja siis kolmas, ja seejärel Lisa neljandat ja nii edasi, kuni ma lõpuks leida Mike Smith. Nüüd on see, et algoritm on õige? Sihtrühm: Jah. DAVID J. Humala: Jah. Kui ta on seal, ma tulen lõpuks ta leida. Aga see on väidetavalt ei ole väga tõhus, kindlasti mitte kiiresti, sest, mu Jumal, miks ma raiskad oma aega flipping läbi kõik need leheküljed, kui suutsin kindlasti seda teha füüsiliselt kiiremini? Noh, kerge optimeerimine, nii et räägi, võib olla mitte üks lehekülg korraga, kuid kaks, neli, kuus, kaheksa, 10. Ikka õige? Sihtrühm: Ei DAVID J. Humala: Nii ei kui I Näiteks vahele üle Mike Smith. Aga nii kaua, kui ma tagasi pedaali üks lehekülg, kui ma ületavad teda, võibolla me võiks parandada seda, mis vastasel juhul võivad olla gotcha. Aga kas see on parem? Kas see on kiirem? Ma mõtlen, jah. See on sõna otseses mõttes kaks korda kiiremini kui ma seda kaks lehekülge korraga. Nii et kui ma algselt oli 1000 lehekülge, nüüd mul on ainult klapp 500 korda ole täielikult 1000 lehekülge, et saada potentsiaalselt kõige halvemal juhul Lisa lõpuks telefoni raamat, kus keegi nagu Mike Smith või keegi hiljem nimi võiks tegelikult olla. Kuid loomulikult inimestel kindlasti ei ole hakkate tegema, et kindlasti mitte sel hetkel meie elus. Milline on mõistlik Inimese tõenäoliselt teeme? Sihtrühm: Mine otse the9 S. DAVID J. Humala: Mine otse S? Kuidas minna otse S? Sihtrühm: Rip see pooleks. DAVID J. Humala: Noh, seal ei ole märgistus. Nii et, jah, kui oleks tõepoolest Valmistaja või kleepuv sakk S, peaksime hüpata seal. Aga see on üsna kahjutu. Nii et parim, mis ma teha saan, on enam-vähem et S jagu või ehk umbes keskele. Aga peamine Buffee nüüd-- ja intuitsioon et olete võetud antakse aastat ehk-- on see, et mida sa nüüd teavad seda probleemi? Sihtrühm: [kuuldamatu] DAVID J. Humala: Mike Smith on kindlasti mitte selles pool probleemi sest Smith tuleb pärast keskel mis on umbes M jagu, see tundub olevat. Nii nagu te võib-olla näha Visitas, saame nüüd sõna otseses mõttes pisar selle probleemi poole. Sihtrühm: Woo! DAVID J. Humala: See on üha lihtsamaks ja lihtsamaks. [APPLAUSE] Seal sa lähed. [Naer] Ja nüüd ma põhimõtteliselt on sama probleem, aga see on sõna otseses mõttes kaks korda väiksem. Ma ikka otsin Mike Smith. Ja Julgen väita, ma ei saa ikka otsida teda samamoodi jagades probleemi pooleks uuesti, pisaravool probleem uuesti poole, mis nüüd jääb mul probleem kvartalis suurus, dramaatiliselt visata, et pool ära ja korrake seda protsessi ikka ja jälle ja jälle, põrkav alla igas punktis näha Kui Mike Smith on Lehe küsimusele. Nüüd, kui ma seda teha küll, lõpuks ma leian end vaid üks leht, kus Mike Smith on, kui ta on tõesti telefoniraamatust. Muidugi, ma võiks kunagi helistada Mike uuesti. Aga point on selles, et kui me alustasime koos 1000 lehekülge, minu esimene algoritm, flip lehele, võibolla 1000 korda-- kindlasti vähem, sest see on S nime ja mitte Z nimi, kuid nagu palju kui 1000 lehekülge potentsiaalselt. Teine algoritm, seda parem. 500 lehekülge. Kolmas algoritm, kuigi Mitu sammu oleks see võtta jagada 1000 lehekülge telefoniraamat pooleks niimoodi? 10, võta või jäta. Nii et ainult flipping kaudu, et telefoniraamat, sukeldumine ja vallutamist, niiöelda 10 korda, siis ma teen Minu tee alla vaid üks lehekülg. Ja nii me saab lüüa see intuitsioon Nüüd natuke graafiliselt kui sa lihtsalt kaaluda see super lihtne graafik. Me oleme x-teljel, horisontaalselt või telg, on suurus minu probleem lehekülgede arvu telefoniraamatus. Ja infotehnoloogid üldiselt meeldib helistada suurus probleemi n, kus n on vaid mõned muutuja, mis represents-- selles juhul-- lehekülgede arv. Vertikaalne või y-telg, siin on läheb aega, et lahendada võibolla arv lehekülje pöördeid, võibolla sekundite arv või protokolli sõltumata oma mõõtühik on. Ja nii see punane joon tähistab esimese algoritmi sest seal on 00:59 suhet number lehekülgede ja aega kulub. Kui Verizon kahekordistab arv lehti telefoniraamatust järgmisel aastal minu jooksvad AEG_ aega täitmisega et esimene algorithm-- kahekordistab halvimal juhul. Aga teise algoritmi, kus ma flipping kaks, nõuab vähem aega antud suurusega probleem. Nii et kui mul on see palju lehti siin-- teade et kollane joon soovitab vähem aega lahendada. Ja tõepoolest, see tähendab, me ütleme, n üle kahe. Aga mis on kuju kolmanda ja lõplik kõver hakkab välja nägema? Jah, see on tõepoolest läheb vaata-- I ei tea, mida te kavatsete öelda. Aga vaatame, mida te ei kavatse öelda. Sihtrühm: Nagu see. DAVID J. Humala: See hakkab välja nägema see, logaritmiline slope-- täpselt-- mille sa pead seda uudishimulik kalle. See ei ole enam sirge. Ja mis mõjuvad umbes see on, et kuigi graafik on nüüd ära lõigatud, saab ekstrapoleerida oma meeles, et see roheline joon ei ole läheb suureneb kõrgus kõik, et palju kui sa edasi tegutseda ette, et horisontaalteljel. Tõepoolest, Verizon, et Näiteks võib kahekordistuda lehekülgede arv telefoninumber Raamatu vahel tänavu ja järgmisel aastal alates 1000 kuni 2000 lehed, kuid pole hullu. Selle kolmanda ja viimase, seal on intuitiivne algoritm jagamise ja vallutamise. See hakkab mind, kui palju astub järgmisel aastal, et leida keegi meeldib Mike Smith? Sihtrühm: One. DAVID J. Humala: Seal on ainult üks. Ja nad saavad neljakordne, see on aega võtab mul veel kaks sammu ja nii edasi. Ja nii on see märk sellest, kuidas mõned hoolikalt läbi mõelda ja mõned tunnustust selle eest, mida oma sisendid on võimalik teha veelgi paremini. Nüüd me petmine natukene mõttes et me võimendades oletus. Mis on minu oletus meie telefoniraamat mis võimaldas mul jaga ja valitse selles intuitiivne ja ikka õige? Sihtrühm: [kuuldamatu] DAVID J. Humala: Jah. Nii et see oli tellitud. See oli Tähestikuline poolt telefoniraamatust ettevõte. Kui see oleks juhuslikus järjekorras, et oleks kuradima Telefoniraamatu kuid see kindlasti ei anda ennast algoritm Ma kasutasin, sest sa ei oleks kunagi lihtsalt juhtub kogu Mike Smith kui te hoida jagades sisse pool niimoodi juhuslikult. Nii et olgem nüüd vormistama mis on selgelt arusaadavad. Nii et midagi, mida nimetatakse pseudokoodi on kus me algab mõned meie esialgsed probleemid. Ja see on üldine viis, kuidas kirjeldada algoritmi või arvutiprogrammi ei kasuta C või C ++ või Java või mis tahes keeles, aga lihtsalt, kasutades inglise keeles, mis tahes inimese võib olla tuttav. Ja me võiksime kirjutada pseudokoodi Selle probleemi järgmiselt. Astu ühte, korja telefoniraamatust. Teine etapp, mis on avatud keset telefoniraamat. Kolmas samm, pilk nimed. Samm neli, kui Smith on üks nimed- Ja nüüd on see huvitav konstruktsioon. See on otsus, punkt. See on tee hargneb, kui te siis, filiaal, nii rääkida. Nii et ma lähen treppimistasemel lihtsalt kokkuleppeliselt step-- ei five-- mis on ütleme, et ma helistan Mike. Nii et see taandus, täiesti suvalise inimese konventsioon, kuid see on lihtsalt tähendas edastada semantiliselt et kui Smith on üks nimesid, siis ma helistan Mike. Vahepeal samm kuus, teade mis taandus läinud. Nii et veel on teine ​​kahvel tee, teiste liiklejate võin reisida. Nii teine ​​kui Smith on varasem raamat, mis on minu järgmine samm ilmselt saab olema siin? Sihtrühm: Lähed vasakule küljele. DAVID J. Humala: Jah, nii minna vasakul pool telefoniraamatust. Viska ära parem pool, kui Smith on varem raamatus. Nii avatud keskel vasakul poolel raamat. Ja siis samm kaheksa, minna liinil. Ja see on uudishimulik loop ma olen indutseerivate, rekursioon niiöelda. Aga rohkem sellest tulevikus. Ma kasutan oma sama algoritmi, minu sama pseudokoodi, lahendada sama probleem uuesti sest ainus asi, mis on muutunud on suurus probleem, mitte minu eesmärk ja mitte inimene Ma otsin. Nii et ma ei saa taaskasutada algoritm et ma olen juba määratletud. Else kui Smith on hilisem aastal book-- võite arvan-- avatud keskel paremal poolel raamat. Ja jälle läheb liinile kolm. Else-- mis on viimane rida Selles programmis saab olema? Kui ta ei ole nende hulgast nimesid lehel ma olen kohta, kui ta ei ole varem raamat ja ta ei ole hiljem raamat, mida ma tean On tõsi, umbes Mike Smith nüüd? Sihtrühm: Ta ei ole raamat. DAVID J. Humala: Ta ei ole raamat. Nii et parim, mis ma teha saan, on lihtsalt loobuda ja lõpetada see programm. Olgu. Nii et sel hetkel, võtame kiirülevaate mõned, mis ootab. Ja tegelikult, ma olen siin poolt mitmeid CS50 personal. Kui need inimesed saaksid kõik minuga siin laval. [APPLAUSE] Mind you, see on ainult alagrupis CS50 personal sest igal aastal on meil ligi 100 töötajat liikmete rollid muidugi assistendid õpetamise stipendiaatide ja rohkem. Tule. Nii nad ühinevad meiega siin kohmakalt hetkeks kui me anname tuulispask tour, mida Peaksite siin muidugi. Nii et ennekõike on meil SAT / UNS kui liigitamise valik muidugi. See on mõeldud tahtlikult oleks võimalus, mille Kui teil on natuke rahutu kell on käigus, ja sa ei karda failure-- isegi kui ausalt jätmine tähendab kannatamist GPA, saada B ja ei A-- mis on täpselt see, mida kindlasti käib värav Muidugi nagu CS50 ja muud sissejuhatavad kursused, sellise liigitamise võimalust eesmärgiks on võimaldada. Ma südamest julgustada students-- eriti kui on Taraga-- alustada Muidugi SAT / UNS isegi jääda SAT / UNS. Aga sa võid kindlasti minna kirja klassi viienda esmaspäeval perspektiivis. Ausalt, tagasi, kui ma oli uustulnuk 1995 Ma ise ei ole isegi võtta CS50 sest ma ei saa üles närvi tegelikult samm jala klassiruumis. Tundus domeeni liiga võõras mulle ja tõesti ainult neile, mu sõbrad, ausalt, kes oli olnud programmeerimine sest need olid kuue või äkki 10-aastane. Ja see oli ainult sellepärast, et ma olin võimalik võtta CS50 minu päev aastal samaväärse versioon SAT / UNS-- läbimise / mitteläbimise tagasi day-- et isegi võtsin 50. Ja ühel või teisel moel, olen jälle siin täna teiega. Nüüd vahepeal mida veel peaksid meeles pidama, umbes 50 Samaaegselt kursusel. Erinevalt kuulujutud, et Te olete kuulnud, saate tegelikult üheaegselt registreeruda CS50 ja teine ​​klass, kohtub sama või osad kattuvad ajal CS50 loenguid siin. Vaata ainekava andmed selle rakendamisele. Loengud, vahepeal vastuolus mis on ametlikult kataloogi üldiselt ainult kohtuvad vaid tund. Mõnikord võime joosta natuke pikk. Kuid pidage meeles, et eesmärk CS50 loengud on pakkuda Teile kontseptuaalne ülevaade, loodetavasti mõned meeleavaldused, võibolla isegi mõned meened, mis ootab jaoks nädalal, mis järgneb. Ja nii loengutes Uurime neid teemasid ja näiteid koos, tuues õpilased lavale ja töötajate lavale nii tihti kui võimalik, vaid paar tundi nädalas. Jaos, vahepeal on pakutud need inimesed siin-- palju neist õpetamise stipendiaatide mõned neist muidugi assistants-- tahet toimumas nädalas. Ja mis peamine, et hoida meeles on see, et me ei peate-- ole erinevalt Esimese Ööd, muusika class-- eri palade sektsioonid üliõpilased vähem mugav, rohkem mugav, ja kusagil vahepeal. Ja ausalt öeldes, sa tead, kui sa oled vähem mugav. Ja te ilmselt teate, kui sa oled rohkem rahul. Ja kui sa ei ole päris kindel, siis on definitsiooni kusagil vahepeal. Nii et kui on aeg jagu nädal või nii, ühe õppekava, küsime sellele küsimusele. Ja sa võid ise valida Based ise mugavuse tase ja olla students-- olla roheline dots-- sarnane mugavuse tase teile. Samas on meil probleem komplektid, mis lõppkokkuvõttes määratleda oma kogemusi selles muidugi. Nad pakutakse tavaliselt mitmes väljaandes. Standard Edition, et ootame kõige iga õpilane käigus tegeleda kuid ka nn häkker väljaanne mis ei paku kujul täiendava laenu otse, kuid tegelikult praalimine õigusi öelda, et te olete proovinud ja lahendada Muidugi on häkker väljaandeid, mis läheneda sarnane materjal kuid keerukamaid nurk. Mida pakume Standard Edition, eest, jälle super enamus õpilased, ei ole ainult walk-läbi ekspordi, mis on videod eesotsas muidugi töötajad et tõeliselt sõelub Loomulikult on probleeme ja võimalikke disain rakendusi. Ja meil on ka pärast Tegelikult pakuvad Lahkamine, kusjuures kui sa ei tea, kuidas te oleksite või oleks lahendanud mõned probleem, õppejõudude sõelub need on video ka. Vahepeal, mis ootab sama ka viie hilinenud päeva ja asjaolu et me kaotage väikseim probleem seatud skoor. Me kindlasti hindan seda, et vahetada töökoormuse et 50 loodab teist, elu jääb jalgu Mõnikord, kui mitte viis korda. Ja nii see annab sa natuke paindlikkust, laiendada oma tähtaja, ütleme, Neljapäev keskpäeval reede keskpäeval. Vaata ainekava rakendamise üksikasjadest. Nüüd sellest, mis nüüd ootab? Ja see on ainult esinevate mulle nüüd lihtsalt, kui kaua Mul on teiega siin seista laval. [Naer] DAVID J. Humala: Aga me jõuame climactic viimistlus enne pikk. Mida ootab poolest Probleemi komplekti? Noh, võib-olla teaser, mida me kõik eelmisel aastal tegid oma eelkäijatest. Esimesel probleem komplekt Eelmisel aastal tutvustasime Scratch, graafiline programmeerimiskeel, mis saab programmeerida sõna otseses mõttes pukseerige puzzle tükki, nagu need, mis on meenutab konstruktid näed vaid üks nädal seega, kui me lülituda et traditsiooniliste keelt, tuntakse C. Eelmisel aastal asus Selle probleemi komplekt, hõlmavad krüptograafia, segipaiskamist info hoida seda riiklike või sõprade silmi, et sa ei taha seda näha. Kodeeritud siin sõnum, et varsti sa suudab dekrüpteerida või de-rüselus. Breakout oli probleem eelmisel aastal püstitatud, milles kasutada neid uue leiti programmeerimine oskusi tegelikult rakendada mäng wherein-- kui võib mäletate childhood-- Eesmärgiks oli bash tellised, mis on atop ekraani siin, akumuleerivad lööb mööda teed, ja rakendades oma algoritme kellega see lahendus lõppkokkuvõttes võimaldab teil mängida mängu. Vahepeal hiljem semester, anname teile sõnastik 143091 ingliskeelseid sõnu. Ja siis tuleb väljakutse Kirjutada programm, mis õigekirja kontroll, dokumentide, mille laadimist, et paljud sõnad mällu võimalikult tõhusalt. Üldiselt pehme sind vastu oma klassikaaslastega kui valite sisse natuke väljakutse juht pardal näha, kes saab kasutada kõige vähem sekundit sõiduaega, ja kõige vähem megabaiti mälu, ja tegelikult peenhäälestus-programmid uskumatult ressursside tõhusa ei lihtsalt aega. Eelmisel aastal liiga, otsisime lõpus semestri ajal veebi programmeerimine. Ja tõepoolest, me teeme seda uuesti seda aastal mitme probleem komplekti, tutvustab teile tehnikaid ja mõtteviisi, millega saab kohaldada Nende programmeerimise oskusi veebilehed, dünaamilisi veebisaite, veebisaidid, mis tegelikult lahendada probleeme ja käituda erinevalt ning ei ole lihtsalt staatiline alade staatiline teave. Lõplik projekt lõpuks määratleb, kuigi kliimaksi käigus õpilastele, kus saate vaidlustas rakendada Kõige midagi huvi teile, nii kaua, kui see kuidagi juhib pärast kursuse õppetunnid. Ja kui sa nägid video alguses, me järeldada semestri CS50 hackathon, mis siis, kui võõras, algab kell 07:00 ühe öö ja lõpeb kell 07:00 järgmisel hommikul. Umbes 09:00, paneme et esimese õhtusöögi. Umbes 01:00, paneme et teise õhtusöögi. Ja kui sa oled ikka seisvat 05:00 oleme hakkab liinibuss sa et IHOP hommikusöögiks. CS50 Fair, vahepeal on sündmus millele 2000 pluss õppejõud, üliõpilased, ja personali kogu linnak tulla, et näha oma saavutusi käigus ning lõpliku projektide ja loomingut et loote oma sülearvuteid, lauaarvutid, või isegi lambipirnid. Vahepeal tööajal ja tugistruktuur. Ja nüüd see oleks olnud paremat aega, et viia teid kõiki üles. Tööaeg toimub neli ööd nädalas mitu tundi igal öösel on tavaliselt 20 kuni 30 kohta Muidugi töötajad tööl korraga pakkuda teile intiimne üks-ühele võimalusi toetust koos muidugi probleem komplekti. Õpetamine liiga on kättesaadav, eelkõige õpilastele vähem comfortable-- või julgen öelda vähemalt comfortable-- kellele tööajal ei ole kõige toitev keskkond ja kindlasti ei ole kõige stressivaba. Eriti siis, kui tähtajad on pressimine, me ennetavalt siduda teile endale liikmega töötajate tööle mõned regulaarset teie vajadustele ja oma ajakava lubab. Ja töötajad. Lubage mul tutvustada Davon, Rob, ja Gabriel, tänavu pead. Kui teil oleks iga meeldib olen öelnud [APPLAUSE] --a sõna. [APPLAUSE] Davon siin on muidugi manager, mis tähendab tema täistööajaga roll ta aitab täitmine ja logistika CS50. Davon: Jah, Tere, kutid. Näete palju mulle tööajal. Ma õpetamise lõigud. Ja kui sa tulistada kirju edasi, Ma ilmselt reageeri. Nii et ma näen palju te kõik semester. Ja tere tulemast CS50. DAVID J. Humala: Ja nüüd Gabriel, kes ise oli lihtsalt uustulnuk eelmisel aastal kuid on viimase paari aasta jooksul on tegutseb oma versiooni CS50 Brasiilias, mille ta alla kõik kursuse content-- mis on selge märk, filmitud ja paigutatud online-- , et ta saaks seda tõlkida Portugali ja seejärel õpetada rohkem kui 100 oma klassikaaslastega üle käigus paar aastat, õpetas oma emakeeles Kursuse õppekava. GABRIEL: Tere. [APPLAUSE] GABRIEL: Tere, mina olen Gabriel. Olen pea TF muidugi. Ja ma loodan, et sa armastad CS50. See on CS50. DAVID J. Humala: Nüüd Rob. Oh, sa tahad kasutuselevõtt? ROB: Ei, ma ei tea. [Naer] DAVID J. Humala: Ja Rob Boden. [Naer] ROB: Tere, ma olen Rob. See on minu viiendal aastal kursusega seotud. Igal aastal, see on lihtsalt paremaks klass, nii et te olete selgelt saab olema fantastiline. Loodan, et te kõik nautige seda. Ma lähen nautige seda. Nii näeme siis. DAVID J. Humala: Ja aeg ei võimalda meid-- [APPLAUSE] Aeg ei luba meil tutvustada kõigile laval ja kõik oma kolleegid kes on ostetavad klasside täna. Aga lubage mul tutvustada Belinda ja CS50 Puzzle Päev, mis ootab seda tulevad laupäev, mis on esimene Muidugi on ulatuslike sündmuste. See üks eriti tähendas haamer kodus punkt et infotehnoloogia on lõppkokkuvõttes mitte umbes programmeerimine, vaid pigem umbes probleemilahendus üldisemalt. Ja Puzzle Day, nagu te peate vaata, jõuad ja oma klassikaaslastega koos-- loodame, et see laupäev. BELINDA: OK. Tere, kutid. Nii et aitäh. Nii nagu meie kuulus kapten ütles minu nime Belinda. Olen üliõpilane at Quincy House. Ma lihtsalt tahan, et te, võttis CS50 eelmisel aastal tõesti meeldis see. Mul on pehme koht kutid kolmandas reas. Ja ma olen uhke öelda, ma olen nüüd aastal toime suhe koos CS50 [kuuldamatu]. OK. See oli minu lame versioon nali. Igatahes, liigub, tahtsin kutsuda te kõik i-lab või HBS nõgestõbi. Me läheme olema võttes Puzzle Day 12:00-03:00. Ja see on suurepärane võimalus teil poisid, et rahuldada oma mehe CS sõbrad, lahendada mõned mitte-CS mõistatusi, nagu Captain nimetatud, ja ka süüa tasuta toitu, teenida vinge auhindu, nagu kinkekaardid, $ 75 inimese kohta, ja also-- mis see oli? Wii U või midagi? Wii U? Jah. Meie loosimine. Lahe. Nii et ma jään umbes pärast klassis. Ja kui te mingit küsimusi, andke teada. DAVID J. Humala: Ja te näete, pärast see pole midagi teha täna. Esimeseks probleemiks seatud lähevad reede. Aga meid koju täna, ma tahaks tutvustada teile konkreetselt ühe personali liige, Colton Ogden siin, kelle käed on nüüd kaitstud üle teile Selle MIDI kontroller haamer kodus punkt veelgi et infotehnoloogia, liiga, on kohaldatavuse kaugemale inseneri ja vars ja infotehnoloogia ise, laiendada ka selliste valdkondade nagu muusika. Colton on lahkelt offered-- ma arvasin üks neist pidi fookust fikseerida. Andrew, kui me võiksime kutsuda fookus siin hetkeks. Mis Colton teinud eelnevalt on programmi see seade käesoleva pad nupud et näete pildil siin, nagu MIDI kontroller, kusjuures kõik need nupud on traadiga eelkõige muusikaline tähele või heli üldisemalt Salvestamise nii et mängides mustrid neist nupud, palju nagu mustrid bitti, võib esindada teisi kõrgema taseme mõisted. Kas ta saaks lõpuks meid koju täna siin? Ilma pikema jututa, kui võiksime päevasõidutulede tuled, ja lülita ekraani taga Colton. Sihtrühm: Woo! DAVID J. Humala: See on CS50. [Muusika mängimine] [APPLAUSE] Ongi CS50. Me näeme reedel. Mõned kook ootab teid Transept. [Muusika mängimine]