[Muusika mängib] [MUSIC - Rossini "RANZ DES VACHES "William SOOVITA] [MUSIC - INGLISE BEAT "MÄRTS OF pöörlev HEADS "] [APLAUS JA cheering] DAVID Malan: Nii et see on CS50. Minu nimi on David Malan. Ja 73%, mida ei ole varasemat kogemust koos arvutiteadus, vastupidiselt võite arvata. Nii et täna me arvasime me Seeläbi sel teadmatus, aga ka annab sulle tunde, neile, rohkem mugavust, mis suunas võid minna see semester. Alustame sellega. Ma tõesti ei tea, mis seal sees on arvuti, kuigi, nagu te ma kasuta seda iga päev. Aga see on mingi kast ja seal mitte palju sisendite ta. Minimaalselt, seal on, mida? Tõenäoliselt toitejuhe. Ja tõepoolest see üks koostisosa, elekter, me ilmselt suutma teeb üsna vähe neid päevi. Aga lõpus päeval, me on esindada asjad et me hoolime. Me peame esindama info mingis vormis. Ja sa oled ilmselt vähemalt ähmaselt tuttav idee poolt binaarne või bits ühel või teisel moel, arvutid vähendatakse nulli ja ones. Aga me saame omaks seda ja vähemalt pane natuke valgust, mis? Nii et mul on neid vähe laualambid siin. Mul on vooluvõrku siin. Ja ma lähen ettepaneku sees mu arvuti on vähemalt üks need asjad, mida saab , mida on sisse või välja lülitatud. Sellisel juhul on see tõepoolest laualamp, kuid madalamal tasemel, see on midagi nimetatakse transistor. Aga meie maailm, see on laualamp, nii Ma lähen edasi minna ja ühendada see minu elektri siin. Ja ma väita, et kasutades seda lihtsat, lihtne seade, see lihtne lüliti, I võib kujutada teavet. Näiteks praegu, olen esindavad midagi, eks? Ma kujutan ma helistan 0 või vale, vastand midagi viibiks. Aga kui ma keerake seda lülitit, nüüd ma olen esindatud 1. Seega kasutades seda väga lihtne tükk mälu, kui soovite, võin esindada teavet. Nüüd kahjuks minu arvuti ei saa seda teha kõik, et palju. See võib esindada vaid kaks väärtust kogu maailmas - 0 või 1. Aga mis on ilmne lahendus, nüüd, kui me tahame laiendada oma arvuti mälu ja esindama rohkem kui ainult 0 ja 1? Noh, ostke teine ​​selline natuke. Olgem haarata teise lüliti, teine transistor, aga sa tahaks mõtle selle peale. Lubage mul minna ja ühendage see minu arvuti samuti. Ja ma lähen väidab nüüd, et kasutades natuke rohkem elektrit ja keerates mitu neist lülitid ja off, ma ei esinda enam sellist teavet. Nii kohe, et see on 1. Kui ma tahan nüüd moodustavad 2, ma ei tee seda. Aga tavaliselt, printsiibist, paneme lõpuks näha, on mul seda teha. Nii et see on 0, see on 1. See oleks 2. Ja see ei ole üllatav, et see oleks 3. Nii et sel viisil, ikka, saab loeme üles veelgi? Kui ma saan kolmanda bit, kolmas lüliti, Milline on suurim arv suudan nüüd loendama kuni 0? Nii 7 kui ma hakkan 0, eks? Sest kui ma omakorda seda valgust ja tegelikult plug see kolmas ja viimane valguseks mu pistikupesa siin siis mul on võime esindada iga kahe väärtused siin, kaks väärtust siin, kaks väärtust siin - ja nii ma saan esitada 2 korda 2 korda 2 või kaheksa võimalikud väärtused. Ja kui ma hakkan raamatupidamist 0, seega see on 0, 1, 2, 3, 4, 5, 6, 7. Nii et see binaarne. See on tõesti nii lihtne. Ja ma tahaks väita, et see on tegelikult üsna tuttav paljudele kõik selles ruumis. Lubage mul minna ja avada väike tekstiredaktor siin. Ja võite mäletate algkool et meil oli asju sadu koht, kümneid koht, ja need, koht. Ja meenutada, et kui sul oli mingi kohaga number, nagu midagi juhuslikku nagu 123, siis oleks sisuliselt kirjutada, et välja kujul Nende kolme veergu. Ja miks on 1, 2, 3, mida me teame, kui 123? Noh, kõige vasakpoolsema veeru meil üks 100 pluss kaks 10s, nii et see on 120, pluss kolm 1s, et on 123. Nüüd on see maailm, mida me lihtsalt põlema on täpselt sama olete olnud tuttavad juba aastaid, välja arvatud nüüd, meie kolonnid ei ole volitusi 10. Nad on lihtsalt volitusi 2. Nii et see on need olemas, see saab olema kahekesi koht, see on saab olema püksid koht. Ja kuna ma kasutan ainult lihtsamaid mehhanismide omakorda asju sisse ja välja lülitada - elekter voolab või elekter ei voola - Ma ei ole päris sama väljendusrikas vahemikku 0 kuni üheksa. Me läheme, et hoida seda super lihtne selles maailmas arvuteid. Mul on ainult 0 või 1 - sisse või välja, on õige või väär. Ja mis ma kujutan kohe on 1, 1, 1, sest iga tuled ei põle. Noh, see annab mulle üks 4 ja üks 2, nii see on 6 pluss üks 1, ja see on 7. Ja ergo teeb seda kolmest järjestikusest bitti esindama number 7. Nii et kõik see aeg, sees oma arvuti, on toimunud mitmeid transistorid, iga bittide arv. Aga lõpus päeval, me võib esindada info nii lihtsalt kui seda. Nüüd kahjuks oleme Arvestatakse kuni 7 CS50 siiani, kuid loodetavasti saame teha natuke paremini. Ja tõepoolest suudame. Oletame, et me inimestel lihtsalt otsustasin, et me seostama numbrid nagu 1 ja 2, 3, 4, 5, 6, 7, konkreetsed tähed tähestikku. Ja ajaloolistel põhjustel ma lähen alustada mõnevõrra meelevaldselt, aga ma olen kavatse öelda inimestele, me otsustada, kui standard, ülemaailmselt, et 65 tähistab number täht A. 66 esindab B. Dot, dot, dot. 90 esindab täht Z. Ja oletame, et kui me tõesti teinud mõningaid mõelnud, siis me võiks tulla numbritega jaoks hüüumärgi ja väiketähti, ja tõepoolest, teised inimesed on teinud, et meie jaoks. Nüüd oli meil bitti, mille abil saame esindavad numbrid, arv, mille saame esindada tähtede ja kirju saab nüüd hakkate e-kirju ja sümbolite ekraanil. Nii et lubage mul paluda, kui suutsin, Kaheksa vaprat vabatahtlikud - kes ei pahanda ilmumise mitte ainult kaamera vaid internetis - tulla siia ja esindavad kaheksa selline bitti, mitte need kolm. Niisiis, kuidas üks, kaks? Kuidas umbes kolm? Kuidas neli valguses sinine, viis otsas? Keegi siin? Kuus ees, seitse ees, ja kaheksa ees, samuti. Nii et ma lihtsalt juhtus nii, et tulevad valmis koos terve hunnik paberilipakad. Ja need paberitükid on numbrid mis esindavad mida veerud kutid hakkavad esindama. Nii et teil on - Mis su nimi on? Üliõpilane: Anna Lea. DAVID Malan: Anna Lea sa saab 128s veerus. Sa oled? Üliõpilane: Chris. DAVID Malan: Chris tahe olla 64s veerus. Sa oled? Üliõpilane: Dan. DAVID Malan: Dan olla 32s veerus. Üliõpilane: Pramit. DAVID Malan: Pramit tahe olla 16s veerus. Üliõpilane: Lillian. DAVID Malan: Lillian on 8s. Üliõpilane: Jill. DAVID Malan: Jill tahe olema 4s veerus. Üliõpilane: Mary. DAVID Malan: Mary on 2s ja? Üliõpilane: David. DAVID Malan: David olema 1s veerus. Nii et kui te poisid võiks tõhustada vähe ettepoole, nii et igaüks võib näha. Mis te ei näe, et on tagasi need paberilipakad on vähe petma lehte, mis on umbes juhendada neid kaheksa bitti kas tõsta oma käsi või mitte tõsta oma käsi. Kui oma käsi läheb üles, et nad moodustab 1. Kui nende käsi jääb maha, nad on esindavad 0. Vahepeal me publikule peaks olema võimalik aru saada, põhinevad kaardistamine, mida kolmetäheline sõna need inimesed on umbes täpsustada. Nii et üks hetk, sa lähed loe esimene rida välja tagasi sinu petma lehte, ja sa oled kas tõstan või ei tõsta oma käsi. Kui sa oled 1, siis tõsta, kui sa oled 0, seisad seal kohmakalt, just niimoodi. Mine. Mis number, ennekõike on need poisid esindavad? 66. 66, eks? Meil on 1 64s veeru 1 2s veerus. See annab mulle 66, nii et tundub, tuleb esindavad B. Seega kutid on kirjutatud - OK, sellest piisab. B. Nüüd liigume peale meie teine ​​kiri. Mine. Kes on kiireim matemaatikat siin? Nii 79. Jällegi, kui liidame kokku kõik veerud kus seal on 1, praegu, just nagu me tegime enne lihtsaim näited 7, nüüd saada number 79. Mis meie kaardistamine on kiri O. Nii et me oleme peaaegu kohal. B, O. Ja viimaks minema. Mida nad esindavad nüüd? Vähem üksmeel. See on lihtsalt absoluutne kahin. Jah, see on tegelikult 87. Hea. Nii et kui me nüüd map et tagasi kuni - olgem alustada kutsudes meie ASCII tabel, American Standard Code Infovahetuse. See annab meile kiri - mitte "bo", vaid "vibu". Ja see on ideaalne kii kutid võtta vibu ja pea tagasi. Suur aitäh. [APLAUS] DAVID Malan: Saate hoida neid. Kuigi tegelikult peaks keegi nagu laualamp, ka? [Huilgama vaatajaskonna] DAVID Malan: laualamp? [Naer] DAVID Malan: Kas tõesti? Laualambid kõigi jaoks? Hea küll. Nii alustades väga lihtsamaid põhimõtted, oleme praegu mitte ainult arvestata kuni 0 kogu tee kuni 7 oleme Eeldatakse, et lihtsalt visates rohkem bitti või rohkem, tuled või enam transistori selles probleem, saame esindama suuremaks numbreid ja ergo, suuremaks valikuid tähestikku, nagu inglise keeles. Ja lihtsalt võtame usul täna et samamoodi võiks hakkame esindavad graafika ja video ning mitmeid muid meedia, kellega me oleme tuttav täna. Nii et see on CS50 ja selles klassis kõrval teist on jällegi väga palju klassikaaslastega, kes on nii vähe kogemus kui sina. Ja ma mainin seda vaid seetõttu üsna sageli, sealhulgas hiljuti, üks uustulnuk nõustamine sündmuste ja Keväällinen üliõpilane nõustamine sündmus, mida me sageli kuuleme õpilased loobuma tulles kuni CS tabel, noh, Ma olen mõelnud võtmist intro klass, aga ma ei ole tõesti arvuti inimene. Või, kuid igaüks kindlasti teab rohkem kui mina. Ja panin selle suurim font võimalik, et selle sõnumi, et see ei ole tegelikult nii. Ja kui sa ei tea, peaks Ma tegelikult siin olla? Mõistma, et mitte ainult see kursuse pealkiri Sissejuhatus Arvuti Teadus on Sissejuhatus Arvuti Teadus I. Seega on tõepoolest Teine selline sissetoomine. Nii et sa pole tegelikult vales kohas. Ja vahel eesmärgid on mul täna leevendada selliseid probleeme te Võib-olla, kuid ka maalida pildi sellest, mis on poe õpilased vähem ja mugavamaks sarnased seda muidugi. Aga kõigepealt paar sõna ühe jaotusmaterjalide sul on täna, mille hulgas On mitmeid KKK. See on olnud nägemus meie juba mõnda aega nüüd kasutusele uue hindamissüsteemi valikuvõimalus seda muidugi - nimelt, SAT / UNSAT. Filosoofiliselt minu jaoks, see on palju palju, palju olulisem, et klassi õpilaste arvust suhelda materjal, saab vaidlustada materjal, ja muret palju, palju vähem umbes mehaanika tegelik skoori ja kirja klassid kell semestri end, kuid tõeliselt omaks kursuse ja selle materjal. Ja tegelikult see tundub üldisemalt mida on huvitav neile, et tunnen vaidlustada ja premeerida, kuid kartmata läbikukkumist. Ja tõepoolest, see liiga on korduv teema selles jm sissejuhatav kursusi teistes valdkondades, et teil on see hirmunud, kui tegemist on paneb oma varbad harjumatu vetes. Ma ise, aastal 1995, oli uustulnuk. Ma olin väga keskendunud olemine Gov koondaja siin. Ja veel ma alati üles kasvanud natuke ning huvi infotehnoloogia. Ma olin alati uudishimulik. Aga tollal, isegi, mul oli see hirm isegi astu CS50, nii palju nii et ma isegi ei osta see uustulnuk aastal. Ja ainus põhjus, miks ma panna jalga uks üliõpilane aastas oli, sest ma lubati võtta see katse läbimise / mitteläbimise. Kuid isegi positiivse / negatiivse vaja, et ma saan üles julgust panna professor Kernehan ajal, toob see suur paberileht ja paluge teda tema allkiri ja tema luba, et uurida neid harjumatu vetes. Ja see ei ole aidanud viimastel aastatel et kui teed seda CS50, kui me varem läbimise / mitteläbimise sarnaselt oleks kümneid või sadu oma klassikaaslastega välja tulla, Jumal hoidku, kell ees Sanders seda vormi, et mõnel mõtetes kujutab suutmatus Julgen öelda, et täita on oma eakaaslastega tasandil. Mis on naeruväärne, aga ma arvan, seal on see mentaliteet. Ja seal pole kunagi olnud selles kultuuris ja SAT / UNSAT või positiivse / negatiivse rohkem üldiselt, seda muidugi, või tõesti on see campus. Nii et sel aastal me muutnud. Oleksin ekstaatiline poole Selle klassi või rohkem lõppenud asumist CS50 SAT / UNSAT. Ühe aasta jooksul, see oleks suurepärane kui peaaegu kõik on. Seejärel võib-olla me töö letter klassid Harvardi College üldisemalt. Aga nüüd, et me teeks seda meie oma valdkonnas, ja ma südamest soovitame teil vaadata need KKK ja küsida küsimusi nagu näed, nii et loodetavasti teile, erinevalt mind, mitte päris on sama hirm tegur uurida, mida on ilmselt võõras kohas. Mis on CS50? See on sissejuhatus intellektuaalse ettevõtete arvuti teaduse ja kunsti programmeerimine. Aga mida see tegelikult tähendab? Noh, seni oleme rääkinud väga lühidalt umbes esindavad andmed. Aga oletame, et me tegelikult tahame midagi teha sellega. Me peame kasutusele mõiste mida me kutsume algoritm. Algoritm on protseduur, protsess, juhistega midagi. Ja algoritm saab midagi super lihtne. Näiteks näide, millega mõned võite olla tuttav on see asi siin. Nii et see raamat on siin järjest kuupäevaga, aga kunagi ammu, see sisaldas kogu palju nimesid ja telefoninumbreid. Ja tõepoolest, kui ma tahtsin, et leida keegi selles telefoniraamat - öelda, keegi nimega Mike Smith - Ma võiksin leida Mike Smith igal number küllaltki lihtne viisil. Ma võiks alustada algusest ja liikuda lehele 1, ei ole seal. Lehekülg 2, ei ole seal. Page 3. Kas see algoritm, on see, et protsess, on õige? Nii et see on õige, eks? Ma olen selline idioot teeb seda sel viisil, kuid lõpuks ma leida perekonnanimi S ja loodetavasti Mike on selles osas ja ma muutunud teha oma algoritm. Aga kindlasti see ei ole intuitiivne. Enamik iga mõistlik inimene selles ruumi ei oleks seda teinud. Mida te olete teinud? Sa on läinud otse keskele, eks? Umbes, et keskel. Ja sa mõistad, oh, need on pr Nii Mike Smith, perekonnanimi on Smith, ei ole selge, siis vasakul pool raamatut. Ta peab olema poole S on õiges. Ja selles punktis, kuigi enamik meist ei tee seda tegelikult, saame sõna otseses mõttes pisar selle probleemi poole. [Cheering JA APLAUS] DAVID Malan: Aitäh. [Cheering JA APLAUS] DAVID Malan: Võid sõna otseses mõttes pisar see probleem pooleks, jättes mulle, sõna otseses mõttes, probleem pool nii suur. Nii et kui see telefoniraamat oli - ja see ilmselt oli - umbes 1000 lehekülge, nüüd see on ainult 500. Kui ma seda uuesti ja ma mõistan, oh, Kurat, ma läksin liiga kaugele, ma olen Ts osa, ma ei saa samamoodi - piltlikult või sõna otseses mõttes - rip telefoniraamat - see oli tegelikult palju lihtsam sel ajal. Ma sõna otseses mõttes rip telefoniraamat pooleks, jättes mind nüüd ei 1000, ei 500 - 250 lehekülge. Ja ma ei saa minna 125, ja pool sellest, ja pool sellest, ja pool sellest, kuni lõpuks ma ei jää vaid üks lehekülg. [Naer] DAVID Malan: See on I osa ebaõnnestuda. Ühele lehele, kus Mike loodetavasti on. Nüüd neid erinevaid algoritme võib olla justkui hinnata või hinnatakse erinevalt. Esimene oli väga lineaarne, eks? Lülita lehel otsima Mike. Lülita lehel otsima Mike. See on väga lineaarne. Kui seal on veel üks leht on telefoni raamat, see on ilmselt läheb mind veel üks teine, veel üks ajaühik, aga me arvutamise kord. Nii et ma võiks teha niimoodi see rida siin, kusjuures nagu suurus Probleem suureneb vasakult paremale - telefoniraamat muutub väiksemaks, et suurem - ja aeg läheb tõusta vertikaalteljel, seda suurem telefoniraamat on. Nii n on vaid üldine muutuja, mis arvuti teadlased kasutavad esindama mingi väärtus, mingi number. Nii n läheb suureneb lineaarselt. Kahekordistada telefoniraamat, see on kavatseme mind kaks korda nii palju aega, on üsna tõenäoline, et leida Mike. Nüüd ma ei olnud tark sellest, eks? Ma imestasin igav kiiresti. Oleks võinud teha seda kahekesi. Nii kaks lehekülge, siis neli, siis kuus, siis kaheksa. Ja ma võiks alustada sõidavad läbi vähe kiiremini, kuigi risk väike ületamise Mike, kuid et kõver ei ole saab olema kõik, mis erinevad. See on ikka saab olema sirge line, kuid veidi kiirem. Aga mida ma tegin? Ma tegelikult ei midagi fundamentaalselt parem. Ma saavutanud, mida me kutsume logaritmiline ajal log n, kusjuures see roheline line on palju, palju, palju vähem sirge serv ta. Ja mitte, see ütleb, sest see omamoodi läheneb lõpmatusele kunagi nii järk-järgult, et ma võiks tegelikult võtta 1000-leheküljeline telefoniraamat, kahekordistada oma suurus järgmisel aastal - kuna arvan palju rohkem inimesed liiguvad linnas. Nüüd mul on 2000 lehekülge, aga kuidas palju rohkem samme, et targemaks algoritm läheb võtma? Lihtsalt üks. Ma mõtlen, et see on võimas asi. Kui läheme 4000 lehekülge järgmisel aastal et aega võtab mind ainult kaks sammu. Nii et sa ei viska suuremaks probleemid mind, ei ole erinevalt veebis on viskamine suuremaks probleeme iga päev kell Googles ja Facebooks kohta maailmas, ja see ei ole nii suur asi. Sest ma panen rohkem mõelnud ja hooldus arvesse minu algoritm, mille abil saaks lahendada probleeme tõhusalt. Ja tõepoolest, see on üks eesmärgid selle käigus. Soovite, mööda teed, õppida, kuidas programmi. Te õpite, kuidas programmeerida iga keelte arvu. Aga lõpus päeval, muidugi on umbes probleemide lahendamine ja saada paremini lahendada probleeme - ja nagu juhtudel, probleemide lahendamine tõhusamalt. Nüüd siiani oleme seda teinud üsna intuitiivselt. Olgem tutvustada midagi üsna geneerilise nimega pseudokoodi. Nii me lõpuks saada, seda muidugi, et erinevaid programmeerimiskeeli. Aga täna me teeme seda inglise moodi süntaks, kus sa lihtsalt omamoodi öelda mida sa mõtled, kuid sa oled kunagi nii sisutihe ja te ei muretse grammatika ja terveid lauseid. Sa lihtsalt väljendada ennast lühidalt kui võimalik. Nii pseudokoodi on inglise moodi süntaks, mis tähistab programmeerimiskeelt. Ja suunas, et lõpuks, andke mulle ettepaneku, et me nüüd modelleerida protsessi me lihtsalt kirjeldatud lugedes midagi veidi teisiti, seekord võetakse vaata seda viieminutiline video toodetud Meie sõbrad TED et määratleb pseudokoodi on määratletud, mida algoritm mõtlemine on, ja isegi kuigi näiteks sa parasjagu näha on iseenesest super lihtne, see on kavatse hakata meile vaimse mudel, sõnavara, mille abil teha palju, palju keerulisem algoritme üsna kiiresti. [BEGIN VIDEO PLAYBACK] [Muusika mängib] Jutustaja: Mis on algoritm? Informaatikas, algoritm on juhistega lahendada mõned probleem samm-sammult. Tavaliselt algoritme teostatakse arvutid, kuid meil, inimestel, algoritmid, samuti. Näiteks, kuidas te minna umbes loendades inimesed ruumis? Noh, kui sa oled nagu mina, siis tahaks ilmselt punkti iga inimene, üks ajal ja loota kuni 0. 1, 2, 3, 4, ja nii edasi. Noh, see on algoritm. Tegelikult, proovime seda väljendada natuke rohkem formaalselt pseudokoodi - Inglise-like süntaks, mis sarnaneb programmeerimiskeelt. Olgu N võrdub 0. Iga inimene toas, määrata N võrdub N pluss 1. Kuidas seda tõlgendada pseudokoodi? Noh, esimene rida deklareerib, niiöelda, muutuja nimega N ja käivitab selle väärtuseks 0. See tähendab lihtsalt, et alguses meie algoritm, asi, mille Me loodame, mille väärtus on 0. Lõppude lõpuks, enne kui me alustame lugemist me ei ole loendatud midagi veel. Üleskutse see muutuja N on vaid konventsiooni. Ma oleks võinud seda nimetas kõige midagi. Nüüd joon kaks demarks algust loop, sammud, mis korrata mõned mitu korda. Seega meie näites, samm me võtame loodab inimesi ruumis. Beneath liinil on rida kolm, mis kirjeldab täpselt, kuidas me minna lugedes. Taandus tähendab, et see on line kolm mis kordub. Nii et mida pseudokoodi ütleb on et pärast alguseks 0, iga inimene toas, me suurendada N 1. Nüüd on see algoritm on õige? Noh, olgem paugu see natuke. Kas see töötab siis, kui on kaks inimest toas? Vaatame. Kooskõlas üks, me initsialiseerida N 0-ga. Iga nimetatud kaks inimest, me siis juurdekasvu N 1. Nii et esimene reis läbi loop, uuendame N 0-1. On teine ​​reis läbi sama loop, uuendame N 1-2. Ja nii käesoleva algoritm lõpuks, n on 2, mis tõesti sobib arvu inimesed ruumis. Siiani on kõik hästi. Kuidas nurga puhul, kuigi? Oletame, et on 0 inimest ruumis - peale minu, kes teeb lugedes. Kooskõlas üks, me initsialiseerida N 0-ga. Seekord aga kolmas rida ei Teostame kõik, sest seal ei ole inimene toas. Ja nii N jääb 0, mis ühtib inimeste arvu ruumis. Päris lihtne, eks? Aga lugedes inimesed ühekaupa on üsna ebatõhus, liiga, ei? Kindlasti me saame teha paremini. Miks ei arvestata kaks inimest korraga? Arvestamise asemel 1, 2, 3, 4, 5, 6, 7, 8, ja nii edasi, siis miks mitte loota, 2, 4, 6, 8, ja nii edasi? See isegi kõlab kiiremini, ja see kindlasti on. Olgem väljendada seda optimeerimine aastal pseudokoodi. Olgu N võrdub 0. Iga paari inimest toas määratud N võrdub N pluss 2. Päris lihtne muuta, eks? Selle asemel, et loota inimeste üks korraga, siis selle asemel loota need kaks korraga. See algoritm on seega kaks korda nii kiiresti kui viimane. Aga see on õige? Vaatame. Kas see töötab siis, kui on kaks inimest toas? Kooskõlas üks, me initsialiseerida N 0-ga. Sest, et üks paar inimest, me siis juurdekasvu N kahega. Ja nii käesoleva algoritm lõpuks, N 2, mis tõesti sobib arvu inimesed ruumis. Oletame kõrval, et on olemas 0 inimest toas. Kooskõlas üks, me initsialiseerida N 0-ga. Nagu varemgi, joon kolm ei tee üldse, sest seal ei ole paari inimesi ruumis. Ja nii N jääb 0, mis tõepoolest sobib arvu inimesed ruumis. Aga mis siis, kui seal on kolm inimesed ruumis? Kuidas see algoritm hind? Vaatame. Kooskõlas üks, me initsialiseerida N 0-ga. Sest paari neid inimesi, me siis juurdekasvu N 2. Aga mis edasi? Ei ole veel täielik paari inimest ruumis, et liinil ei ei kehti. Ja nii käesoleva algoritm lõpuks, N on veel 2, mis ei ole õige. Tõepoolest, see algoritm on öelnud, et lollakas, sest see on viga. Lets hüvitamise mõned uued pseudokoodi. Olgu n võrdne 0 iga paari inimeste tuba. Määra N võrdub N pluss 2. Kui üks inimene jääb paaritu, määratud N võrdub N pluss 1. Et seda lahendada konkreetne probleem, me oleme kasutusele kooskõlas neli, seisund, mida nimetatakse filiaal et see täidab üksnes juhul, kui seal on üks inimene, et me ei saa paari teisega. Ja nüüd, kas seal on üks või kolm või paaritu arv inimesi ruumi, see algoritm Nüüd neid lugeda. Kas me saame seda veelgi paremini teha? Noh, me ei lähe 3s või 4s või isegi 5s ja 10s, kuid pärast seda, see on hakka natuke raske punkt. Lõpus päeval, kas täidetakse arvutid või inimeste, algoritmid on lihtsalt kogum instruktsioonide koos mis probleeme lahendada. Need olid vaid kolm. Mis oleks probleem teil lahendada koos algoritm? [END VIDEO PLAYBACK] DAVID Malan: See on ainus aeg I ilmuvad multifilmide abil. Aga kui see lugu jätab maha, nüüd on see, kuidas me saame teha paremini? Kolmekesi ja püksid, me väita, saame loota inimesed palju kiiremini, kuid me saame teha fundamentaalselt parem kui see? Ja ma kihlvedu suudame. Kui me võtame kasutusele natuke meie enda pseudokoodi siin, ma lähen ettepaneku et suudame saavutada sellist rida. Me ei kavatse lugeda inimesi üks, kaks, kolm, neli. Me ei kavatse minna kaks, neli, kuus, kaheksa. Me teeme fundamentaalselt parem muutmise kaudu probleem ja selles juhul, võimendades teisiti alakasutatud ressurss. Vaid hetk, ma loodan, et andestate ja huumor meile püsti koht, kus punkt me läheme küsida iga saate võtta oma mõtetes number 1. Sa oled siis läheb järjest kohmakalt, kui aeg möödub, leida keegi, kes seisab, ühendada oma numbrid koos lisades need üles. Üks teist on siis läheb rassi istuda maha esimene ja teine ​​inimene läheb kordama. Nii teisisõnu, külvamisel kõik Teile number 1 ja seejärel ühendades need 1s arvesse 2s ja need 2s arvesse 4s, kõigiga üha istudes peaksime lõpus Selle algoritmi, on ainult üks laen hing, kes ei istu piisavalt kiiresti, kuid kes on kogu publiku arv tema meelt. Nii et kui teil oleks, lähme edasi ja - Esimene etapp - seista paigal. Ja täita. [CROWD vulisev] DAVID Malan: Kas sa tead, kus Lauren on? 729? [CROWD vulisev] DAVID Malan: Kõik on korras? [CROWD vulisev] DAVID Malan: Olgu, me peaksime olema lõpusirgel. Me näeme ühe mehe seisab siin veel. Kes veel tuleb siduda? Kui te tahate paarideks. Keegi üleval. Miks ma ei appi siin. Sest väga vähe inimesi, kes on veel seistes, mis numbrid sa on oma meelt? Üliõpilane: 78. DAVID Malan: 78 plus - kes seisab siin all? Üliõpilane: 39. DAVID Malan: Plus 39. Plus, kes muidu on veel püsti? 81? OK, kes siis veel? Teine 81? Wow. Ja siis mis kasu on tagasi? Üliõpilane: 49. DAVID Malan: 49, pluss? Üliõpilane: 98. DAVID Malan: 98 pluss? Kas see on keegi teine? 12? Hea töö. [Naer] DAVID Malan: Oh, 112 - oh. Hea töö! [Naer] [APLAUS] DAVID Malan: Keegi teine veel püsti? Vabandust? Üliõpilane: 99. DAVID Malan: 99. Keegi teine ​​veel püsti? Ja õpilaste koguarvust siin tegelikult, vastavalt - Kas teil on number? Oh, tegelik arv inimesi tuba, vastavalt arvesse, et õpetamise stipendiaatide tegid igaühe, kuidas oli 729. Nii välja toatäis Harvardi üliõpilastele kes loendatakse ise Vastus on 637. [Naer] DAVID Malan: nii lähedal. Aga ikkagi. OK, nii et see on õpetamise hetk, eks ole? See on nüüd see, mida me kirjeldada viga. Kuskil mööda teed, tegime mõned aritmeetika valesti, või keegi istus, või vasakule, või on midagi valesti läinud. Aga see on hea. Sest isegi veel, me sain üsna lähedal. Ja ma tahaks väita, et meil on vale vastata palju kiiremini, kui ma oleks kasutades minu rohkem lineaarne lähenemine. Nii oletame, me ei tegelikult saada, et õige, kuid arvan, et nüüd, mida juhtub iga kord, võrreldes mu enda naiivne osutades algoritm. Üks, kaks, kolm. Kui on tõesti 729 või 637 inimest siin, et oleks võtnud mind sõna otseses mõttes 637 või 729 pointings banaani ja incrementing minu kogunäidu. Ja ma võiks teha natuke paremini läheb kaks, neli, kuus, kaheksa, ja kahekordistada kiirust, võib-olla isegi kolmekordne või neljakordne, sõltuvalt sellest, kui hästi suudan seda lugedes peas. Kuid see lähenemine, et kutid võtsid oli täiesti erinev. Sest alguses, te kõik püsti. Nii et kõik 729. Ja siis sõna otseses mõttes pool teist istus. Ja pärast seda, teine poole sa istusid. Ja pärast seda, teine poole sa istusid. Ja kogu mitu korda, et sa poisid oleks istunud on umbes kaheksa või üheksa või kümme kokku ajad, sõltuvalt sellest, mida meie kogu arv on. Ja meil on võimalik järjestada ning teha see muul viisil. Kui meil oli 1024 inimest toas kokku, mitu korda sa võid poole võrra 1024 inimest on 10. Nüüd mõtle selle teise suunda. Oletame, naeruväärselt, et meil oli, ütleme 4000000000 inimesed selles ruumis, või veidi suurem tuba. Mitu korda oleks meil läinud läbi selle algoritmi nii, et pool selle klassi istub? See on ainult kavatse võtta 32 sellist toimingud, isegi klassi suurus 4000000000. Miks? Sest 4000000000 läheb kaks miljardit läheb ühe miljoni, läheb 500000000, läheb 250 miljonit, dot, dot, dot. Võin ainult seda jaotust umbes 32 korda, kus punkt, kõik, välja arvatud üks inimene jääks seisma. Ja see on ka see omamoodi võimas Idee, et üha püüame võimendada seda muidugi ja programmeerimine ja infotehnoloogia rohkem Üldiselt on need idud idee mida me saame siis lahendada probleeme palju, palju võimsamalt. Nii alustasime üsna lihtne selle pseudokoodi ja poiss ruumis, kuid nüüd kogu tuba täis inimesi, me oleme teinud põhimõtteliselt parem. Noh, nüüd üleminekut pseudokoodi mõned tegelikku koodi. See keel, mida parasjagu näha juhtuma mida nimetatakse JavaScript, ja me tagasi selle suunas semestri lõpuks. See on programmeerimiskeel, mida kasutada, et muuta veebilehed ja muu selline tarkvara nendel päevadel. Ja me oleme seda kasutanud, tänu sõbrale on meie Stanfordi kodeerida mõned varjatud teabe siin. See on kunst steganography, niiöelda, kus saate peita informatsiooni, mida muidu tundub olla müra või hoopis pilt kokku. Aga varjatud just selle pildi on tõesti salajane sõnum kehvasti. Nii et lubage mul minna ja tõmba Sama pilt siin, see aega veebibrauser. Ja ma lähen laine mu kätt mõned andmed täna, eriti Neile, kes seda näeb mitte ainult JavaScript kuid kreeka, kuna täiesti võõras keeles. Aga see on näide sellest, programmeerimiskeelt. Ja nüüd, võtta usus, et see esimene rida koodi - ja koodi, ma lihtsalt tähendab teksti. Tekst, mis ma oleks sõna-sõnalt kirjutatud Microsoft Wordi, kui mul oleks õigus tarkvara siis midagi teha. Programmeerimine lähtekoodi, programmeerimine kood on tõesti ainult teksti ja see välja erinevad vastavalt sellele, milline keel te kasutate, ei ole erinevalt inglise ja Hispaania ja Venemaa kõik teistmoodi kui kirjutad neid klaviatuuri. Nii et see esimene rida, nüüd võtma usu, lihtsalt avab graafika internet, et lärmakas graafiline me just nägin. See järgmise line siin on näide loop, ja me tegelikult nägime, et sama kõnepruugis TED video. Silmus on midagi, mis juhtub jälle ja uuesti, ja isegi kui see absoluutselt tundub segasena koos märksõna ja mõned sulud ja mõned semikoolonit. Me tuleme tagasi, et enne kaua, kuid mis vimka sisuliselt on ütlen programmi korrata üle kõik nende lärmakas dots, vasakult paremale, ülevalt alla. Sest lõpus päev, pilt meeldib see - ja te võite tegelikult objekti näha selle projektoriga - on tõesti ainult ruudustik dots. Nii saame kindlaks kõik need punktid poolt koordinaatide x, y, ja selle programm, nüüd saame hakata midagi teha, et need täpid. Niisiis, mida ma lähen edasi minna siin ja ei ei ma lähen tegema mõned muudatused. Esiteks ma lähen edasi minna ja vabaneda kõik selle rohekas ja sinakas müra, ja ma lähen edasi minna ja tippige järgmine küll segasena süntaks. im kujutise. Sinine on asukoht x, koma asukoht y, 0. Teisisõnu, ma tahan lihtsalt lülitage kõik sinine punktidena, et pilt. Ma lähen edasi minna nüüd ja kliki see Run / Save nuppu ja sa märkate paremal servas, Saadud kujutis. Nüüd oma super roheline, kuid see ei ole üllatav, sest ma sõna otseses mõttes sisse maha, tehes 1 0, kõik sinine mis pildil. Noh, nüüd teeme seda natuke rohkem. im piltide, dot setGreen, x, y. Ja see tähendab lihtsalt Kerrata vasakult paremale ja siis ülevalt alla. Keera see kinni, mille väärtus 0, samuti. Salvesta. Ja projektor, sa ei saa tegelikult tõesti näha midagi. Minu sülearvuti ekraani, kui ma peer vaid õige, ma näen natuke pilt, sest nad on ikka veel mõned punased seal. Kui olete kunagi kuulnud akronüüm RGB - punane, roheline, sinine - see viitab sellele koostis kasutades kujutise lihtsalt need kolm värvi. Ja just nüüd, me visata kõik roheline, kõik sinised, kuid seal ei ole palju punast. Nii et lubage mul vänt kuni punane. Kuidas ma saan seda teha? Noh, esiteks, ma lähen küsida Selle programmi küsimus. Ma lähen edasi minna ja kutsume seda muutuja, nagu algebra. Sul võib olla x või y või z. Ma lähen kuulutada muutuja ja öelda, pane see muutuja, ajutiselt, väärtus pilte getRed väärtus x, y. Ja veel, me tuleme tagasi kõik Selle detail tulevikus. Aga nüüd, lihtsalt võtta usus, et see liin küsib programm, mis on punane väärtus x, y? Tol eriti dot? Siis ma lähen tegema midagi ta. Siis ma teen pilti dot komplekt punane kell x, y, y, kuid seekord ma lähen seda soodustada, tehes punane korda oletame, 10. Nii seda suurendada 10 korda. Lubage mul välja suumida nüüd ja klikk Run / Save. Ja voila, et seal oli kogu aega, kuigi meie inimsilm ei saanud päris seda näha. Nii et taas, see on praegu reaalne kood, näiteks keel, et me tuleme tagasi enne pikk. Aga mõistma, eriti neile, kellel ei ole selline kogemus, et see on üsna kiiresti, et me ise oleks kirjalikult koodi niimoodi seal. Tegelikult vahend, millega te olete kõik mõnevõrra tuttav, võib-olla on CS50 on oma kursuse-shopping tööriist, mis oli tegelikult rebooted sel suvel mõne kohta CS50 enda endised õpilased, nüüd omakorda TF. Nii see juhtub olema kodulehel ehitatud keeles nimetatakse PHP. Ta kasutab andmebaasi nimega MySQL asjad kellega me jõuame meie kätes määrdunud hiljem semester. Aga uskuge või mitte, isegi midagi nagu see lõpuks taandub Lihtsaim silmuseid ja tingimused ning oksad, nagu need, mida me nägime vaid hetk tagasi TED video. Mida ma mõtlesin, et ma nüüd tegema, on jagada ei lihtsalt midagi, mida meie töötajad on teinud jaoks campus, vaid midagi endine õpilane - kolm üliõpilased, tegelikult - teinud seda viimase aasta jooksul, Sierra, Daniel ja Sam, viimane neist ei olnud varem Planeerimise kogemus kui ta võttis CS50. Ja nende lõplik projekt, nad eksponeerida, kell CS50 Fair, rakendus nimega wrdly, mis on veebipõhine programm, mis nad tegid see video, et ma mõtlesin, et ma jagan annab teile tunde lihtsalt, mis on võimalik tähtaja lõppu. [Muusika mängib] DAVID Malan: See nädalast Zero 12. nädalani möödunud aastal. [APLAUS] DAVID Malan: Nagu teaser ka, tegelikult huvi äratamiseks on see, mida on võimalik, siis võib juba näinud, või võib varsti näha, market.cs50.net, uus vahend, mis kursuse meeskond on töötanud, seekord koostöös Harvard Student Ametid, näiteks, et alates käesoleva aasta ja jätkates loodetavasti sellesse eeloleval suvel pead standard võimalus ülikoolilinnakus osta ja müüa asju teile huvi pakkuda. Ja partnerluse kaudu HSA, saate saama ka tilk punkte maha ühes HSA füüsilise kauplustes on mõned hetkel tulevikus, et proxy asjad, eriti kui lõpetaja ja ei pruugi taha visata asju, kuid tegelikult maksab see edastama inimesed, kes võiksid teid jälgida siin ülikooli. Seega rohkem, et tulla. Aga veidi konkreetsemalt, tööriist mis on välja tulnud CS50 viimastel aastat, mida mõned teist võivad olla tuttavad ja teised võite olla googling nüüd, CS50.net/2x, saate leida lingi Chrome laiendamine mis on demonstratiivne, kuidas saab kasutada JavaScripti, et sama keelt me kasutada Eiffeli torn hetk tagasi rakendada 2x taasesituskiirus kõigi Harvard iSites videos. See on midagi, mis on ehitatud sisse CS50 enda video mängija. Aga ka see, kui sa hakkad kaevama arvesse lähtekoodi, mis me tulen õnnelikult kättesaadavaks, näete, kuidas saate isegi lahendada probleeme nagu, et kiirendades vidinad veebilehed mis sa oled juba hästi tuttav. Nii sõna nüüd käigus ja ootused ja mis ees ootab. Üldiselt me ​​tõepoolest kogunevad siin esmaspäeviti ja kolmapäeviti - kuigi Selle reede, me koguda sest uudised Week - 1:00-14:00, kuigi mõnikord kuni 02:30. Arvestades seda, et sa võiksid seetõttu tahame või pead võtma mõned klass kell 2:00 aastast või isegi varem, saan aru Loomulikult toetab, mida nimetatakse samaaegne liitumine, mille paneme toetada avalduse Ad Board ja oma resident dekaanid teie nimel, kui teil on konflikt kuskil selles 1:00-02:30 vahemikus. Head selle URL online täiendavad üksikasjad. Aga nii tugistruktuur mis iseloomustab CS50, üliõpilaste rohkem ja vähem mugav samasugused, me pakuvad erinevad lood lõigud. Ja see on paar nädalat ära, kuid Enne pikk, siis saad küsida, oma mugavuse tase. Oled sa nende hulgas vähem mugav, mugavamaks, või kuskil vahel? Ja me peame kolm erinevat rajad, et rahuldada just neid publikule. Nii et ei ole mõtet sõna peaks teie isegi tunne, nagu sa oled konkureerivate igasuguse õpilasele rohkem või vähem tausta kui sina. Tõepoolest, muidugi on mõeldud palju rohkem koostööd ja palju avatum kui see. Seoses probleem komplekti, saate leida ka seda, et lisaks standardväljaandele iga nädal probleem seada, seal on sageli "häkker väljaanne ", mis on mõeldud selleks, et suunata kell 5% kuni 10% või nii demograafiline kes tõepoolest nende seas mugavamaks ja tahaks rohkem väljakutset kui standard väljaande et pset ootab. Rohkem infot nende olla Leiti ainekava. Kuid ka seal võib leida üksikasju Kursuste kohta hilinenud päeva. Tavaliselt probleem seab on tingitud neljapäeviti. Siiski saab laiendada paljud oma tähtajad see kukkumine neljapäeviti kuni Reedeti lihtsalt täites meie poolel, niiöelda vastates mõned soojenduseks küsimusi mõned nädala probleem komplekti, mis automaatselt Seejärel annab sulle ekstra 24 tundi. Samuti kaotage madalaim tulemus, kui ühe ainekava. Et anda teile tunne, mis probleem kogumid - sest see on tõepoolest Muidugi probleem seab see lõpuks määratleda peaaegu iga õpilase kogemus, seda enam, kui loengud, seda enam, et kui osa, rohkem nii kui kõige muu aspekt muidugi. Eelmisel aastal näiteks alustasime, kui hakkame sel aastal Scratch. Eriti see reede, me kasutame, sest vaid üks päev aega, graafiline programmeerimiskeel, mille abil muudame programmeerimise alustamiseks tõmmates ja kukutades puzzle tükki, et ainult koguda füüsiliselt kui mõttekas seda loogiliselt. Järgmisel nädalal, me kiiresti üleminek C, üsna vana, kuid väga väike ja lihtsas keeles, mis võimaldab meil minda 0-60 jooksul vaid paar nädalat ja siis parlay need samad oskused ja teadmised põhiprogrammeerimist konstrueerib sisse kõrgema taseme keeltes nagu PHP, JavaScript ja veel teised ikka. Mullu kolmandas pset käigus oli see, et krüptograafia, valdkonnapõhised taotlus, mille me vaidlustas õpilased rakendada arvu ciphers, programmid, mille rüselus või lahti harutama info krüptimiseks. Sest häkker väljaanne seevastu andsime häkker õpilased fail alates standard Unix arvuti sisaldab kasutajanimed ja paroolid, millest viimane oli krüpteeritud ja me vaidlustas need häkker õpilased dekrüpteerida, nii hästi kui võiks, need paroolid veel, et sama domeeni. Rüselus, mäng, kus mõned teist on ehk tuttav. Kohtuekspertiisi tükk, kus me palume õpilased andmete taastamine, mis oli muidu kustutatakse mu enda digitaalse kaamera Compact Flash kaart, mida tegelikult kirjutamise tarkvara välja mõtlema, kus olid nulli ja omadega et digitaalne kaamera, mis varem koosseisus JPEG graafilise? Väljakutse kehvasti mullu hõlmab kirjalikult kiiremini õigekirja kontrollija võimaluse konkureerida vastu sõprade ja klassikaaslastega, kui nad tahaks. Rakendamine Huff 'n Puff, pakkimise programm. Ja siis lõpeb semester koos CS50 Finants, veebipõhine rakendus mis loote Etrade-like koduleheküljel osta ja müüa aktsiad, nii et räägi, mida tegelikult tõmbab ligi reaalajas hinnapakkumisi Yahoo! Rahastamisele. Mida me ei teinud eelmisel aastal üks probleem komplekt, mis jääb siiski lemmik. Kui olete kunagi läinud shuttle.cs50.net, näete kasutaja liides veidi niimoodi. Aga kaks aastat tagasi, klass rakendada, kasutades Google Maps ja Google Earth plug-in ja natuke Savvy koos sõidu ümber campus, nii et mängu eesmärgiks oli nagu näete mõned näod, on sõita ümber campus otsin töötajate ja õpetuse stipendiaatide ja CASi ja kui sa, pannes neid peale oma liinibuss. Ükski neist tegelikult tundub, et siin, nii me sisestada cheat koodi. [Naer] DAVID Malan: Vot nii. Hea küll. Ja nüüd siin on töötajad õmmeldud kogu campus. Ja nagu näete, on paremal pool ekraani, liinibuss on tühjad kohad. Ja eesmärk oli kirjutada kood, mille abil simuleerida seda sõidu ja pealevõtmine ja kukkumine off reisijat. See üks, liiga, kasutades keel kutsus JavaScript. Nii mõistad, et programmid nagu mis olema meie sama trajektoori see aastal, samuti. Seoses, nüüd, täiendava toetuse, meil tööajal. Nagu te olete näinud oma maja söögisaal või Annenberg, saadame majas söögituba saali neli ööd nädalas - Leverett, Pfoho, Eliot ja Annenberg Tänavu 20:00-23:00. Ja see, mida me arvasime me tahaks seda teha aasta on midagi veidi erinev. Kui olete kuulnud Margid eelmisel aastal, et see oli natuke liiga stressirohke, seda aasta tööajal, kui me kirjeldada Järgmisel nädalal on rohkem orgaanilisi mille saabumisel, siis saad lähetata ühes konkreetses tabelis Kui mitu töötajat ootama, ja me teeme asju palju rohkem orgaaniliselt. Enam järjekorda, mitte rohkem iPad, kuid pigem on intiimsem vestlused laua lihtsalt kaheksa või nii õpilastele, et me ligikaudne tunda, mida muidu oleks palju väiksem klass. Pakume, samuti on need asjad, mida me nimetatakse walkthroughs, videod filmitud eelnevalt kindlaks ühe kursuse õpetamine stipendiaatide Zamyla, kus ta te loeksite nädala probleem komplekti, mis pakuvad nõuandeid ja näpunäiteid ülesannetega toimetulekuks ette. Ja vastupidi, pärast probleem kogumid sest sel aastal me ka vabastama vähe klippe helistada lahkamisi et tegelikult sõelub esindaja lahendusi, nii hea ja halb, mille kaudu saab järeldada, kuidas teil võiks olla või peaks olema rakendada oma lahendus. Ja mida me pakkuda esmakordselt ka sel aastal, eriti nendele üliõpilastele, kes kasutavad muidugi teised ressursse, kuid sellest hoolimata on hädas liiga palju, muidugi ise siduda need üliõpilaste ressursid lubavad, juhendajaid, et sul on palju intiimsem võimalust kui maja söögisaali võimaldab üks-üks toetus. Nüüd viimane pilguheit mõned aasta lõpu mängud silmapiiril. Sul võib olla tuttav CS50 hackathon. Noh, tulevad selle aasta detsembris, alates 08:00 PM to 07:00, alguses Lugemine perioodile, annab võimaluse koguda koos klassikaaslastega - see oleks umbes 21:00 - mille jooksul sa sukelduda oma lõpliku Projekti rakendamise kõrval klassikaaslased, sõbrad, ja toit. See oleks umbes 01:00, kui Esimene partii toit saabus. Ja see on umbes 04:00, et eriti aasta CS50 hackathon. Aga tõsi haripunkt on muidugi mõeldud CS50 Fair, ülikoolilinnak hõlmav näitus oma lõpliku projekti, et mis pere ja sõbrad on kõik kutsutud, sest meie värbajad ja meie sõbrad tööstus. See näiteks on pilguheit 2000-pluss inimesed, kes olen käinud viimastel aastatel. Väljendid see ei ole ebatavaline, ja samamoodi ei oma klassikaaslastega rõõmu asjad olete saavutanud. Ja tegelikult, suunas, et lõpuks on meil start-of perspektiivis juhul samuti. Kui asjad niimoodi üleskutse teile, või sa oled vähemalt uudishimulik, mida seda tean, et uus traditsioon Loomulikult on nn CS50 Puzzle Day. Ja see on asutatud paar aastat tagasi tõesti signaali campus et infotehnoloogia ei räägi programmeerimine, ja see kindlasti ei ole umbes omaks ainult need üliõpilased kellel on eelnev kogemus. See on tõesti umbes probleemilahendamise üldisemalt. Ja nii Puzzle Day, viimastel aastat, on kujunenud kena koostöös meie sõpradega Facebook, kusjuures seal saad vapustav Auhinnad ja pitsa üle jõe juures i-lab tuleval laupäeval. Head, et URL on kaks või kolm sõbrad, kui soovid osa saada see uus traditsioon. Nii et ma tahaksin paluda, et te ei hoia üks asi meeles, ja meil on lihtsalt kahe minuti klipp mis sulgeda täna. 73% on number meeles. Cake Ka ootame teid väljaspool seda TRANSEPT kui me edasi lükata vaid paar hetki, mis on traditsioon muidugi, kui hästi. Aga see on võti tsitaat kursuse ainekava meeles pidada. Kõige tähtsam on see muidugi ei ole nii palju, kui sa lõpuks võrreldes oma klassikaaslastega, kuid kus te, 12. nädalal, lõpuks võrreldes ennast nädal 0. Aga pilguheit et me ei jäta teid koos siin täna on see viimane siin Meie sama Daniel, kes tegid wrdly video hetk tagasi. Ma jätan teid selle pilguheit mis ees ootab. Ja kui me seda teeme, kui meil oleks CS50 töötajate ees tuba tulema etapini maalida kõik rohkem visuaalne pilt, et Mis ootab sind sel aastal - saada ebamugav. Me sõlmida käesoleva siin ekraanil. [Muusika mängib] DAVID Malan: See on CS50. [MUSIC - MATT & Kim "Pole midagi"] SPEAKER 1: Ma armastan CS50 üle kassidele. SPEAKER 2: Whoaaaa! [Naer] DAVID Malan: See on siis CS50. Me näeme reedel. [APLAUS JA cheering] Jutustaja: Järgmisel CS50, laval demo ei lähe plaanipäraselt. DAVID Malan: me tahame leida Mike Smith selles telefoniraamat. Noh, mis on oma instinkte? Ma võin hüpata umbkaudu keskel telefoniraamatust pilgu alla, näen, et Ma olen M, ja ma tean, et Mike Smith ei vasakule. Ta peab olema õige. Ja et selles kohas, me võib sõna otseses mõttes pisar - Sel hetkel, saame sõna otseses mõttes pisar - Siinkohal saame piltlikult pisar telefoniraamatust pooleks. [Ukelele strumming]