[TAUSTAMÜRA] Kas see töötab? PATRICK REBESCHINI: Me ei alustada. OKEI. Hea. Alustame. Nii et see on minu suurim rõõm tervitada teid kõiki täna siia Esimese loengu kohta, noh, Sissejuhatus Arvutustehnika ja programmeerimine. Tuntud ka kui CS50 või noh, CPSC 100, ametlikult siin Yale'i. Nii et me ei saa rohkem põnevil tervitada teid kõiki siin. Minu nimi on Patrick Rebeschini. Ma olen pea õpetaja klassi. Olen siin esindavad rühma umbes 60 töötajat mis töötab koos teiega kogu semestri. See arv on peaaegu 60 meist. Kuid mööda erakorralise Kulukohustuste tase et paneme sellesse klassi, teeb CS50 klassi Yale'i ülikooli, mis pakub kõrgeim tase tugi teile kõigile. Ja me ei saa olla uhked pakub selles klassis jälle siin. Tegelikult, nagu te varsti kogeda, CS50 on palju enamat kui klassis. See on kogukond. Ja siis osa Varsti selle kogukonna. See on teine ​​aasta, Yale pakub selles klassis. Me ehitame äärmuslik edu eelmisel aastal, kus esimest korda, siin see ülikool, bakalaureuse õppe assistent Võeti vastu klassiruumides. Kõik algas Selle klassi eelmisel aastal. Nii nagu te teate, klass on õpetanud koos Harvardi ülikooli. Õpetada seda muidugi oleme relying-- saame loota suuri teadmisi David Humala ja Harvardi meeskond. Taavet on õpetanud CS50 hästi, 10 aastat. Ja igal aastal on ta olnud surudes piirid ja parandada klassiruumi kogemus. Jällegi, me ei saa olla õnnelik koostöö jätkub nendega. Tegelikult üks Kõige huvitavam osad Ütlen töötab selles klassis praegu nii Harvardi ja siin Yale'i, on tõesti uskumatu risttolmlemise ideid, mille eesmärk on parandada õppimise kogemus teile kõigile. Nii nagu selle tulemusena kompleksne koostöö kahe ülikoolis CS50 on uhke, et teatada uue versiooni sellel aastal koos märgatavad muutused. David on kõik meile neid nüüd. Nii please-- see olend ütles, palun minuga ja tere anda Suur aplaus tervitada David ja Harvardi meeskonna siin Yale'i. [APPLAUSE] DAVID Humala: Aitäh. Tänu. See on CS50, Harvardi ülikooli ja Yale'i ülikooli kasutuselevõttu intellektuaalse ettevõtete infotehnoloogia ja kunsti programmeerimine. Ja mida see tähendab, et selle käigus lõpuks on umbes probleemide lahendamine. Tõepoolest paljud võite tulnud läbi keskkooli või on veetnud viimased paar aastat ei tea, mida mõned sõbrad eelmisel aastal või teistesse klassidesse. Ja veel, reaalsus on, ükskõik, mida me teha lõpus päeval selle klassi see saab olema umbes probleemide lahendamine. Ja kui selline, võib-olla võtta teatava kindlustunde selles, et 73% õpilastest, et sellesse klassi, nii siin Yale'i samuti Harvardi ei ole kunagi võtnud CS klassi ees. Nii et kui te istute siin publik täna ei tea miks te istute siin publiku täna või äkki sa lihtsalt järgida koos mõned sõbrad, või äkki olete olnud vähe huvitab, mida infotehnoloogia ja programmeerimine, mõistad et enamiku oma klassikaaslastega vasakul ja paremal teil on väga palju sama demograafilise. Ja tõepoolest, kui me vaatame eelmise aasta statistika jooksul üliõpilaskonna CS50, nii siin ja Harvardi 58% õpilastest kirjeldavad end vähem mugav. 9% on mugavam. Ja siis 33% on kusagil vahepeal. Ja pole mingit formaalset määratlust mida need ämbrid tähendab. Sa justkui tead, sa oled vähem mugavam, kui sa oled. Sa vist natuke rahutu võibolla on klassis. Sa ei ole päris kindel, kas arvuti teaduse klass on lõppkokkuvõttes teile, ja mõistavad, et olete väga hea firma. Ja tõepoolest liigitamise, ja hindamine, ja tagasiside ning kõike seda tugistruktuur klassis lõppkokkuvõttes väga individuaalne. Seda enam, et kui enamik tahes teine ​​klass, mille konstruktsioon. Ja tõepoolest, mida lõppkokkuvõttes küsimusi selles klassis ei ole nii palju, kui sa lõpuks up võrreldes teistega aga kus sa, 11. nädalal või eelmisel, ja võrreldes ennast nädal 0 siin meie esimene. Mida see tähendab? Hästi, see tähendab nende 73% õpilased eelmisel aastal, mis oli kunagi tehtud CS klassi ees, mida alustada semestri nad olid dabbling keeles nimetatakse Scratch, mis me ise näed täna. Ja lõpuks semestril oli neil läinud selle kaudu kogu nimekirja väljakutseid. Alustades keeles nimetatakse c. Rakendamine, mis on Esmapilgul läheb olla natuke väljakutse mõned, kuid üsna meeldiv, kui sa saada Super Mario kopsakas üles ja alla püramiid rakendatud, kuigi, vaid midagi, mida nimetatakse ASCII kunsti. Rakendamine viimase year-- mida õpilased eelmisel aastal, siis ei pärast, mis oli rakendada oma enda Caesar salakiri ja vigenere salakiri. Nii krüptimisalgoritme kellega võiks Rüselus informatsiooni ja seejärel Deskrambleeri informatsiooni saata salajasi sõnumeid. Mängu 15.. Kui sa mäletad lapsepõlves või mõnel pool kasuks, et väike plastikust mäng, kus te liikuda numbrid üles, alla, vasakule ja paremale proovida saada neid selleks, tegelikult rakendatakse, et mängu ja lahendada loogika vajalik olemas. Ja siis me elus tegelenud kohtuekspertiisi eelmisel aastal. Nii keskpaigaks poolaasta õpilased, kes ei olnud kunagi kasutatakse nende klaviatuurid Selleks otstarbeks enne, olid kirjutamise tarkvara taastuda, nii et rääkida, JPEG või fotod et meil oli kogemata kustutada digitaalne mälukaardi kaamerast. Taastamine saladus teateid seest bitmap image, ja muud sellised tüübid graafika samuti. Siis üle läinud annab kogu klass sõnaraamatu. Lihtsalt tõesti suur tekstifaili koos 150.000 inglise sõnad. Ja igaüks vaidlustati kuidagi lugeda, nii et rääkida, need sõnad mällu. Into arvuti mällu. Ja siis vastata küsimustele vormi, on see sõna? See sõna? See sõna? Tõesti lihtsalt rakendamisel õigekirjakontrolli. Ja siis väljakutse igale teine ​​suur board-- edetabelit näha, kes võiks kasutage vähem mälu, on vähemalt aega, et tegelikult õigekirja kontrolli suuri dokumente. Läksime üle seejärel alates rakendamisel need oma veebiserver. Nii ei tee veebilehti keeles nagu HTML ja CSS, kui te olete juba tuttav. Aga tegelikult rakendatakse server, mis kuulab internetis taotluste brauseritega ja siis reageerivad need taotlused. Siis rakendatakse meie endi e-kaubandus, nagu veebilehel, kus õpilased võiksid osta ja müüa aktsiad. Joonis peaaegu reaalajas börsikursid Yahoo Finance. Ja mis võimaldab õpilastel näha kuidas oma portfelli areneb. Ja siis lõpuks puder up Google News ja Google Kaardid, mille õpilased poolt perspektiivis mõttes lõpuni oli võime käsku, ja ringi ja otsi Google map. Ja siis vaata kõiki uudiseid artikleid, mis on proksimaalne neile teatud valdkondades. Nii tõesti läheb nullist 60. Ja mööda teed, millel on mis meil oli eelmisel aastal kutsutakse, häkker täiendusi. See tõsta riba edasi neile, kes võib väga hästi olla hea summa kogemus on, et 9% on mugavam. Nii aru, et seal on väga kõrge lagi isegi need, väljakutseid õpilastele pärit erineva taustaga. Sest lõpus päeval, et me oleme lõpuks keskendunud lihtsalt selle. Aga mida see Tähendab, probleemide lahendamine? Nii saab teha ettepaneku, et me destilleerida seda niimoodi. Nii probleemide lahendamine on tõesti lihtsalt selline pilt. Nii et sul sisendite mõned probleemid, midagi, mida sa tegelikult tahad lahendada. Eesmärgiks on saada väljundid, lahendust sellele probleemile. Ja siis keset on mida me nimetame must kast. Sa ei pruugi teada, või isegi huvita, mis sees, et musta kasti. Kõik teadsid, et kui toida panuse see, sa loodetavasti saan väljund või lahus ta. Ja kuigi tänapäeval me vaatame nii sisendid ja väljundid, jagame pikas perspektiivis ja üle Muidugi kogu semestri keskenduda sellele, mis on sees, et kasti. Ja seal lasub midagi, mida nimetatakse algoritme. Samm-sammult juhiseid tegelikult lahendada mõningaid probleeme. Aga mis on näide mõned sisendid? Ehk lihtne asi juures alustada iga kooliaasta keegi võiksite võtta osavõtul. Nii et me võiks teha ühe, kahe, kolm, neli, viis, kuus, ja kuidas ma hoida jälgida, et teave. Ma võiks lihtsalt minna üks, kaks, kolm, neli, viis, kuus. Ja lihtsalt kasutage omamoodi ühekohalised numbrid. Või ma võiks tegelikult salvestada see veidi pikemas perspektiivis. Ja kuidas ma esindavad kõiki inimestele see ruumi? Noh, ma võiks teha midagi sellist, OK. Näen üks inimene. Hästi. Näen teise isiku nõudel kolmandale isikule, ja nii edasi. Aga keegi loeb inimestele meeldib see. Nii sõna otseses mõttes, enamik meist, kui me oleme minnes isegi joonistada üldse midagi, ilmselt läheb minna üks kaks kolm neli, võibolla natuke väljamõeldud, viis, kuus, seitse, kaheksa, üheksa, kümme ja nii edasi. Ja see on tegelikult süsteemi nimetatakse unaarse. Uno, nagu uno tähendab üks, kus te lihtsalt üks täht. Olete just selle räsi märk. Ja mina, tõhususe, lihtsalt tõmbas Nende rebimisjälgi lõpuks nagu sirged jooned. Aga ma oleks saanud neid nii vähe stick arvud. Kus esindama üks inimene, üks sisend, Ma lihtsalt tõmmata kinni Joonisel või räsi märk. Aga see pole veel kõik, et väljendusrikas. Kui kõik, mis mul on neid hash märgid, rääkimata kriipsujukud, kuidas võiks ma esindan midagi arvu 15? Või 15 inimest ruumis? Ma võib-olla midagi nagu 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15. See lihtsalt ei ole skaala väga hästi. Kuna sisendite saada suur, me vaja paremat süsteemi kui see. Ja selgub, et süsteem, mida arvutid kasutavad ei ole nii erinevad mida sa ja ma tean. Tegelikult enamik inimesi siin ruumis isegi kui sa oled nende seas vähem mugav, ei pruugi teada kuidas Mac või PC tõesti toimib, olete ilmselt vähemalt kuulnud, et all kapuuts on 0 tema ja 1-. Niinimetatud kahendsüsteemi. Nii tõepoolest, arvutid on rohkem kui lihtsalt rebimisjälgi oma sõnavara, kuid mitte nii palju sõnavara nagu meie, inimesed. Tõepoolest, meie, inimesed ei kasuta binaarne. Bi tähendab 2, 0 ja 1. Aga kohaga, deka mis tähendab 10, 0 kuni 9. Nii et meil on palju rohkem väljendusrikas võimeid meie normaalse inimese maailmas. Aga ma tahaks väita, et need süsteemid, binaarne ja kohaga, ja kõike vahel kui ka mujal, on tegelikult kõik üsna tuttav. Näiteks kaaluda See näide on siin, 123. Nii see tegelikult on, muidugi, number me teame kui 123. Aga ma joonistasin oli lihtsalt see muster sümbolid, glyphs nii rääkida. Omamoodi kuju laual kriit. Aga miks me kohe intuitiivselt mõista seda, kui 123? Noh, kui sa olid nagu mulle algkool, sa ilmselt teada, et see on 1s kolonn, see on 10s kolonn, see on 100s kolonni. Ja miks on see kasulik? Noh, see on lihtne aritmeetika nüüd tegema, et saada muster sümbolid mitmete mõistame intuitiivselt. Kas mida, 100 korda 1 ja seejärel 10 korda 2 ja 1 korda 3, mis muidugi on vaid 100 ja see on 20 ja see on kolm. Ja kui me lisame need together-- ah. Nii selles peitub omamoodi põhjendusi taga, miks see komplekt sümbolid tähendab midagi reaalset ja numbriliste. Noh, arvutitega teha täpselt sama asi, kuid nad ainult loota koguni üks. Arvestades suutsin loendada kolme. Ja tegelikult, kui ma elus hoida ma võiks ulatuda üheksa selles süsteemis. Arvutid ainult nullid ja need oma tähestikku. Mida see tähendab? Noh, see tähendab, et kui arvuti tahab esindada, ütle number 0, võibolla kasutades kolme characters-- kolm tähestiku niiöelda see on, kuidas arvuti on 0. Nii ei ole nii hirmutav siiani. See on täpselt see, mida me inimestele teeks. Ja tegelikult enamik meist lihtsalt ignoreerida nullid niikuinii. Arvuti, kui ta tahab salvestada nr 1, Selgub läheb seda teha. Ja arvuti poest number 2 ei ole läheb tegema unaarse süsteemi mida ma vihjas varem. See on tegelikult läheb seda teha. Ja see on ilmselt kus muster hakkab saada vähem ilmne, kõige vanemad. See on 2, see on 3. Kummalisel kombel on nüüd 4. Ja nüüd on see tõepoolest Tundub, et võib-olla segasena, kuid see ei ole, kui arvame Mis binaarne tegelikult tähendab. See tähendab, et teil on kaks tähed oma tähestikku. Nii kaks võimalikku tähemärki iga kohatäide. Nii et tegelikult tähendab läheme et vaja 1s kohas või 2s kohas, 4s koht ja seejärel 8 ja 16, 32, ja 64. Ja mis vahet seal on? Nagu need on 1, 2, 4, 8, 16, 32, 64. Ja enne oli meil 110, 100000, 10000. Mis sarnasus on olemas? Ja mis mudel? Jah. Üliõpilane: Powers 2 asemel volitused 10. DAVID Humala: Jah. Powers 2 asemel volituste 10. Ja nii kui ma tahtsin, et hoida läheb, 8, 16s ja nii forth-- aga nüüd, kui sul on selline aimugi, nüüd kahendsüsteemi on tegelikult üsna lihtne. Miks on see muster 0 tema maailma arvutite 0? Noh, sest see on 4 korda 0, 2 korda 0, 1 korda 0 ja saad 0. Miks on see number 1? Sama põhjendust, kuid nüüd on 1 1 veerus. Miks on see 2? Meil on 1 2s veerus. Ja kuidas siis ma esindavad öelda, kui palju on 7 kahendsüsteemis? Ütle kõvemini. Üliõpilane: Kolm 1s. DAVID Humala: Kolm 1s. Nii 1, 1, 1, sest me lihtsalt vaja 4 + 2 + 1 annab mulle 7. Hästi. Nii sealt kuidas me moodustavad 8 3 kohatäitjaid? Jah. Üliõpilane: 1, 0, 0, 0. DAVID Humala: Jah 1, 0, 0, 0. Ja veel äkki ma sellist Tehniliselt on vaja lisada veel kohatäitja pardal. Kui ma tahan, et see sobiks, et ma tõepoolest pead tegema midagi sellist. Nii et ma tegelikult vaja kasutada praegu 8s veerus, ja see on hea. Aga imelik arvutustehnika on et see läheb maksma meile midagi. Sa pead rohkem RAM arvuti nüüd. Sa pead rohkem mälu sest sa pead midagi füüsilise salvestada et veel natuke, nii rääkida. Kahendnumbrist. Ja tõepoolest kõik, mis juhtus siin, nagu detsimaalsüsteem, Kui lisame me numbrid üles ja üles ja üles, me läheme 5-6 kuni 7-8 see on nagu bilansiline 1, sõna otseses mõttes. Ja siis kõik muu ulatub kuni nullini. Aga kuidas me tegelikult esindavad neid asju füüsiliselt arvuti? Noh, lõpus päeval, ainsaks füüsilise sisend läheb minu arvuti siin on see juhe, nii et elekter ja elektronid seinast. Ja nii, kuidas ma saan millestki füüsilise niimoodi tegelikult esindavad selline idee asemel. Noh, mida me saaksime teha? Me võiks kaaluda, et kõik on korras, võibolla kui elekter voolab Ma ei suutnud seda säilitada ja hoida seda. Ja kui ma ettevõttest mõned elekter, See on lihtsalt läheb meelevaldselt moodustavad 1. Ja kui ma pistikust ja seal on midagi seal, sa tead, et see lihtsalt läheb suvaliselt 0 esitamiseks. Nii et kui midagi on seal, 1. Kui midagi on seal, 0. Või saate teha seda veidi rohkem visuaalne. Siin on 0. Ei ole midagi huvitavat käimasolevate Ligikaudu tagasi mu telefoni. Aga kui ma lubavad vähe natuke elektri voolu, kuigi see on natuke hele siin, minu taskulamp läks. Nii et ma hoidmiseks tasu ja ergo, see telefon nüüd esindab 1. Nii 0 1. Nii 1 iPhone Kui suur võib ma loe kasutades sellist lähenemist? Ma mõtlen, et 1. See pole veel kõik, mis mõjuvad. Mida saaks veel teha? Noh vaatame, on keegi oma telefoni kohe, et ma võiks laenata? Igaüks, kes on telefoni taskulambiga ehitatud? Kas ma laenata? Ma ei pea seda lukustamata. Hästi. Aitäh. Lubage mul seda laenata. Hästi. Nii et kui ma nüüd kerida üles ja siin, Mida ma esindavad nüüd? Jah. Seega on kolme sest see on 1s kolonn, see on 2s kolonni. Nii 1 + 2 on 3. Ja siis, kui me püüame saada tõesti creative-- oh, aitäh. Väga eelisostuõigus. Hästi. Mul on nüüd kolm iPhones. Hästi. Ja nüüd see-- ma ei teha edasisi kui see. Mida ma esindavad nüüd? Just seitsmed. Aga mul on vaja füüsiliselt rohkem mälu sel juhul. Aga see kõik on. Sa ei mõtle, mis toimub nüüd-- tänan sina-- sees oma telefoni olemisele lüliti, mis on kusjuures sisse ja välja lülitada. Ja kui te olete kunagi kuulnud Sõna transistor. Või kui olete kunagi kuulnud marketing rääkida Intel sees, mis räägib, et selline riist see on sees arvutis. Intel teeb protsessoriga, keskseadet, mis on nagu ajud sees arvutis. Ja need protsessoriga ja asju, mida nad on ühendatud on palju, palju pisikesi lüliteid. Miljonid miljardeid lülitid mis võib olla kas sisse või välja. Nii arvutid, õnneks nagu meie Mac ja PC, võib loota viis kõrgem kui 7 või 8 sest nad on nii rohkem kui kolm või neli bitti. Way rohkem kui samaväärne kolm taskulambid, et meil oli just. Aga nüüd see hakkab saama päris ebahuvitav kiiresti. Kui ma nüüd tahan tegelikult oleks võimalik teha midagi huvitavat, Ma tahan, et oleks võimalik hüpata et midagi sellist. Nii ASCII, see ei ole tõesti kasulik akronüüm, kuid American Standard Code infovahetuse. See tähendab lihtsalt, mõned aastad tagasi meil inimestel otsustas, Tead mis, me tahame, et oleks võimalik teha rohkem arvuteid kui lihtsalt numbrid. Me ei taha, et nad lihtsalt kallis kalkulaatorid, me tahaksime, et oleks võimalik teha asju tekstitöötluse, kuigi väga lihtsalt. Hiljem oli meil e-posti ja muud sellist meediat. Ja nii maailmas otsustas mõned aastad tagasi Selle süsteemi kohaselt ASCII, tead mida? Teatud liiki programmid igal ajal vaata samaväärne arv 65, nagu struktuuris bittide. Ja me võiks teha matemaatika siin laual. Muster bitti, mis esindavad 65. Ära mõtle seda 65 kohaga. Mõtle seda omavoliliselt, kuid globaalselt, järjepidevalt pealinnast A. Ja siis maailma otsustas, tead mis? Võtame teise muster bitti. Ja kui me kunagi näha number 66, olgem lihtsalt eeldada, et see on kapitali B. Fast forward H ja mina, kui näed 72 või 73, mis peaks olema H ja I, vastavalt. Ja nii kaua, kui kogu maailma lepib selle. Nii et kui saate e-posti või sa saaksid faili USB pulk, või midagi sellist selle-- kui näed, et muster bitti, sa tead, et see peaks olema see kirja või mõne muu kirjaga. Aga see on seotud kindla kontekstiga, eks. E-posti programm võib tõlgendada need asjad nagu tegelased, kuid graafikute kalkulaator või Kalkulaatori võib esindada või tõlgendada need asjad, muidugi, nagu tähed. Nii, et ütles, kiire väike ülevaade. See on võibolla kolmetähelise e-posti, mis on olnud mulle saatis. All kapuuts see kõik 0. ja 1s, kuid me ei hooli. Me läheme hakata abstraktne üle 0. ja 1s kirjadele. Ja kui ma näen muster 0. ja 1s, et tõesti esindavad 72, vihje, vihje, 73, ja siis 33, mida on sõnum? Üliõpilane: [kuuldamatu] DAVID Humala: Nii et kui sa arvad Tagasi hetk tagasi, HI oli sõnum püüdsin suhelda siin, sest H on 72, Ma ei 73, ja nüüd 33-- sa ei teeks pruugi teada seda ette, Selgub aga, kui sa tegelikult näha rohkem diagrammi ja süsteem et inimkond kokku lepitud aastat tagasi, see on lihtsalt hüüumärk. Ja tõepoolest, seal on muster sümbolid ja numbrid iga tegelane et siis võib-olla oma klaviatuuril. Hästi. Olgem abstraktne edasi. Kui me ei taha lihtsalt asjad numbrid ja tähed, me tegelikult tahame rakendada graafika. Noh, kui sa oled kunagi kuulnud akronüüm RGB. See on omamoodi aasta nüüd, kuid see on ikka selline olemas. RGB on punane, roheline, sinine. Ja see on lihtsalt süsteem öelda, et tead, mida, olgem kasutada kolmed bitti. Komplekt 8 bitti, teine ​​rida 8 bitid ja teine ​​komplekt 8 bitti. Ja olgem kasutada neid bitti salvestada, kui palju punase me soovite meie ekraanil, kui palju roheline tahame meie ekraanil, ja kui palju sinist tahame meie ekraanil. Ja see tähendab lihtsalt, et kui on lot-- suur hulk punane, see tähendab, et mulle palju punast. Kui sul on suur number roheline, anna mulle palju rohelist. Ja kui sul on natuke sinine või väike arv nagu 33, anna mulle natuke sinine. Ja kui juhtub, et ühendada need kolm magnituudi, nii et rääkida, saad see-- sa vaevalt saab näha projektori siin, kuid see Kahtlane tooni kollane või pruun. Aga see tähendab, kasutades selle muster 8 pluss 8 pluss pluss 8-- et muster 24 bitti on kuidas arvuti oleks talletada, et tooni kollane ühes väike dot piksel ekraanil. Nii oleme läinud 0. ja 1s kümnendarvuks Numbrite tähestiku tähti. Või veel huvitav, värvilised täpid. Noh, mis muidugi siis saab edasi? Noh, mis on pilt, mida vaata Facebook või saada talle? Vms? Mis on mõiste tehniliselt pildi? Jah. Mis on pilt koosneb kui te vaadata tõesti jala juures ekraani? Jah. See on lihtsalt terve hunnik pikslit. Tegelikult, kui te võtate oma sülearvuti võibolla hiljem ja vaadata tõesti tihedalt kell see-- sõltuvalt kuidas kallim laptop on ja kuidas kõrge kvaliteediga ekraan on, võite väga hästi näha kõiki väike täpid ekraanil. Ja need täpid või pikslit, mis tähendab, seal on 24 bitti esindavad iga piksli et foto, näete Facebook, või et sa lihtsalt võttis oma iPhone hiljuti. Ja nii see on, kuidas me saame asjad nagu graafika. Noh, mis on video? Video on lihtsalt kogum graafika sõidab jälle ekraanile ja uuesti ja uuesti. Ja nii videos tõesti, on lihtsalt mustrid bittide esindavad võrgud, read ja veergu täpid, sõidab kujutise, pärast pildi pärast pildi teise nimega Film. Nii et see sisendid ja väljundid. Kõik me peame nüüd on eeldusel, et sa tead, mida, kui me tahame arvuti esindada info meil on süsteem seda teevad. Me ei tee seda 0. ja 1s lõpus päeval. Aga me võime seda, et rääkida, peale selle nii, et moodustavad enam huvitavaid asju. Ja siin välja CS50 ja infotehnoloogia üldisemalt nüüd seista õlad kõik inimesed, kes tuli enne meid, kes arvasin, et välja. Ja nüüd lihtsalt arvata, et arvutid võib esindada sisendid ja väljundid. Aga nüüd lähme tegelikult midagi nendega. Nii algoritm on lihtsalt kogum instruktsioonide, samm-sammult, lahendamiseks mingi probleem. Ja milline võiks üks selline probleem olla. Nii et see on vana kooli tehnoloogia, telefoniraamat. Ja sees telefoniraamat on terve hulk nimesid ja numbreid. Ja need nimed on üldiselt järjestatud tähestikuliselt. Nii et kui ma tahtsin leida keegi see telefoniraamat nagu Mike Smith, Mis on tüüpiline inimese tegema hakkad? Noh, sa võiksid lihtsalt avada see üles, pilk esimese lehekülje. Ma ei näe Mike Smith. Lülita teisele lehele, Ma ei näe Mike Smith. Ja muudkui läheb ja läheb. See samm-sammult õige? Jah. See on tobe, eks. See on ebaefektiivne, eks. Sest see aega võtab igavesti saada Mike, kuid see on õige. Sest kui Mike on siin Ma tõesti teda leida. Mis siis veidi rohkem mõistlik inimene tegema hakkad? Nad võivad siiski avada ees, ja võib-olla sõita läbi telefoniraamatust kaks lehekülge korraga. Kaks, neli, kuus, kaheksa. Ma ei saa tegelikult füüsiliselt seda väga hästi. Aga teoreetiliselt peaks see olema kaks korda kiiremini, kaks lehekülge korraga. See algoritm on õige? Üliõpilane: [kuuldamatu] DAVID Humala: Mitte tingimata. Väga hea. Miks see hoiatus? Üliõpilane: Sest ta võiks olla üks lehed, et sa vahele. DAVID Humala: Jah. Nii et isegi kui ma lähemale ja lähemale. Mis siis, kui ta on lihtsalt kogemata, halb õnne, vahele kaks lehekülge et ma lendan üle? Seega peame määrama selle. Me tegelikult vaja siis öelda, oota üks hetk, võibolla kui me minna liiga kaugele, võib-olla kui me tabanud T paragrahvi T tulevad pärast Smith, siis peaksime vähemalt kahekordistada tagasi vähemalt ühel lehel. Nii on fikseeritavad, kuid on olemas tingimisi küsimus seal. Nii et see on kaks korda kiirem, kuid võite on topelt tagasi natuke. Aga keegi tema toas, isegi kui sa tõesti ei kasuta telefoni raamatuid enam läheb algusest peale alustama. Mida sa kavatsed teha otsin Mike Smith? Sa lähed minema jämedalt S'i. Või kui te tõesti ei ole petma sheet paberile, sa lähed minema vähemalt umbes keskele. Ja kindlasti mitte esiküljel raamat. Sa lähed odavnema. Ja matemaatiliselt oled ilmselt näeme M paragrahvi, mis on enam-vähem keskel. Ja siis sa lähed mõistma, mis on õige? Kus on Mike? Üliõpilane: [kuuldamatu] DAVID Humala: Jah. Nii ta on üle siinpool. Ja mis siis saab teha? Noh, nii piltlikult ja sõna otseses mõttes saab pisar probleemi poole korraga? Ja siis tean, et sa ei viska Selle poolel probleemi kaugusel. Ja nüüd oled jäänud põhimõtteliselt sama probleem, kuid see on kaks korda väiksem. Ja nii nüüd, mida on juhistega? Mis algoritmi leidmiseks Mike Smith? See on täpselt sama asi. Nüüd on see juhtub olema M osa ja see on Z paragrahvi kuid põhiline valem on ikka sama. Mine umbes keskele, odavnema, oh, darn ta. Nüüd ma olen T paragrahvi Olen läinud liiga kaugele. Aga ka siin ei sa kohaldatakse sama loogika. Viska pool probleemi ära ja nüüd oleme jäänud probleem, mis on veerand suurus. Ja me võime korrata ja saame korrata, ja me saame korrata, kuni teoreetiliselt seal on ainult üks lehekülg jäänud mis Mike kas on või ei ole. Mis siis nii võimas selle mõte? Ma mõtlen ju see on üsna intuitiivne. Keegi ei hakata juures alguses telefoniraamat ja flip 1000 lehekülge leida Mike Smith. Enamik kõik selles ruumis läheb teha umbes sellist algoritmi arvatud rebenemist. Ja Miks me seda teeme? Noh, leiavad efektiivsust. Mõelge, kui palju parem see algoritm oli seejärel tuleb see arvesse selle komponendid. Niisiis, mida ma esimest korda teha? Võtsin telefoniraamatust. Ja arvuti teadlane, ja programmeerija üldisemalt selgub, läheb lugemise alustamiseks kõike 0. Miks? Noh, see on natuke imelik et meil inimestel loota üldiselt alates üks. Sest see, mis on väikseim arv saame väljendab selgelt põhineb isegi meie vana algkool matemaatika? Noh, see oli 0, kas see on koma või binaarne. Ja nii näete maailma arvutustehnika ja programmeerimine Konkreetsemalt hakkame lugedes kõike alates 0. Nii et ma kiirenenud telefoniraamatust samm 0. Ma lähen avanevad Keset telefoniraamat. Ja see on tõepoolest väljendus, mida ma tegin. Ja siis teine ​​samm oli pilk nimed. Kolmas etapp on vähe erinevat kontseptuaalselt. Ma küsin endalt küsimus. Kui Smith on üks nimesid, Ma lähen tegema otsuse. Kui ta on üks nimesid, siis ma lähen helistada Mike. Ja ma lähen tegema otsuse põhineb sellel tükk informatsiooni. Kui aga mitte, kui Smith on varem raamatu vasakule, Ma lähen, et avada keset vasaku poole raamatust. Ja siis siin on nutikust, Ma lähen tagasi astuda kaks. Ma lähen mingisugune seista oma õlgadele ja lihtsalt korda viimase töö tegin. Aga töö mulle jäänud on vähem ja vähem ja vähem. Aga see on ikka läheb tööle. Aga kui Mike asemel on hilisem Raamatus paremale, Ma lähen, et avada keset õiguse poolel raamat, siis naasta sammu kaks. Aga seal on tegelikult neljas stsenaariumi. Mike'i kas siin, või siin või siin, või-- Üliõpilane: Pole olemas. DAVID Humala: Pole olemas. Ja tõepoolest, kui me ei suuda ette näha See neljas ja viimane stsenaarium Meie programm võib olla vigane või vigane kuidagi. Else, loobuda juhul, me ei leidnud Mike üldse. Ja tõepoolest, kui olete kunagi märganud arvuti rippuvad või kõik äkki sõna või mingi muu Programm lihtsalt ootamatult sulgub, ja mõnikord sulle viga sõnum on sõna otseses mõttes, et. See programm ootamatult sulguda. See võib olla mis tahes mitmel põhjusel. Aga mõnikord on midagi nii lihtne kui see. Inimese programmeerija kes kirjutas, et tarkvara ei teadnud, et oh, seal on edasi asi, mis võib tegelikult juhtuda. Ja kui sa ei kirjuta koodi lüüa, et neljanda stsenaariumi see on tõesti ootamatu mõnikord mida arvuti võib tegelikult teha. Nüüd kutsuvad välja Mõned neist asjadest. Nii kollane siin, ma on esile mõisted et nüüdsest oleme lihtsalt läheb kõne funktsioonid. Funktsioonid maailma programmeerimine on nagu meetmed, avaldused tegevusi. Nii elavneb, avatud, otsige kell, helista, avatud, avatud, sulgege. See on funktsioon, protseduur, tegevus, ükskõik kui palju sünonüüme töötaks hästi. Nüüd, millised on need asjad nüüd kollane? Kui mujal kui muidu, kui muidu on need, mida me ei kavatse helistada tingimused programmeerimine, või filiaalide otsuse juhib, kui soovite. Aga kuidas sa tead, mis kahvel maantee võtta, kui nii võib öelda? Me peame rõhutama tingimuste paremale seal, kus need jah, ilma küsimusi. Need tõsi vale küsimusi. Smith hulgast nimed? Smith varem raamatut? Smith hiljem raamatu? Need on küsimused mis on jah või ei, või samaväärselt õige või vale, või võrreldavalt üks või null vastus. Ja vahepeal seal vaid üks viimane tükk. See siin on millist mõju? Kas teil programmeerida Enne, kuidas te kirjeldada, mida sammu seitse ja 10 teevad? Mis sa ütlesid? Üliõpilane: Rekursiivne samm. DAVID Humala: Rekursiivne samm. Jah, põhimõtteliselt. See on tehniliselt iteratiivne siin, kui te olete juba tuttav. Aga me tuleme tagasi selle. Aga see on midagi selgelt. Jällegi, see on esile kutsuma tsükkel, silmus, eks. Sa sõna otseses mõttes läheb tagasi mõned varasemad samm. Ja nii tõesti, see läheb rakendada mingi tsükli. Aga sa ei hakka kinni selles lõputult, eks. Sest kui sa oled pidevalt kontrollides on Mike siin või vasakule või ei ole siin, lõpuks ta ei kavatse olla seal. Ja sa võid maha jätta kohta, et viimane rida. Nii ongi sõnavara. Ja see oli, mida me Üldiselt nõuavad pseudokoodi koodi. See ei ole tegelik keel. See on lihtsalt väga napisõnaline inglise, kuid see suhtleb punkti. Ei ole mingit formaalset struktuuri siin. Sa lihtsalt kasutada see on mõne sõnad, kuid selge sõna kui saad suhelda oma ideed. Nüüd, kui hea on see, et algoritm ja kui palju parem on? Noh, meil ei ole sattuda spetsiifikat numbrid või midagi nagu see. Aga me ei saa vaadata kujundada selle lahuse. Nii et kui me lihtsalt teha mõned xy plot Siin horisontaalteljel siin. Kutsume suuruse probleem. Ja arvuti teadlane oleks Reeglina kasutatakse n muutuvaks siin. Nii n lehti või n inimest toas, või mis see on sa üritad loota. Ja siis vertikaalteljel kohta vasakule, et oleks aeg lahendada. Nii mitu sekundit seda teeb võta mind leida Mike Smith? Või kui palju samme see aega võtab? Mitu lehepööramised see aega võtab? Nii et kui palju see maksab mind ajas lahendada probleemi. Ja me võiksime teha esimene algoritme kalle, kui soovite, lihtsalt see sirge punane. Ja ma kutsun seda n. Miks n? Miks on see ainult selle ühe üks suhe? Noh, kui Verizon või Ükskõik telefoni firma lisab veel üks leht telefoniraamatust järgmisel aastal mis tõukab Mike üks rohkem sammu lõpule lähemale, sõltuvalt sellest, kus see leht on. Ja nii mõju võib lihtsalt olla veel ühe teise. Või veel üks lehekülg omakorda. Üks-ühele suhe. Seevastu teise algoritmi. Kui palju kiirem oli, et intuitiivselt? Kus käisin kaks lehekülge korraga? Jah. Üliõpilane: [kuuldamatu] DAVID Humala: Jah. Nii et see saab olema kaks korda kiiremini. Ja me juhib, et siin Sõltuvalt ulatusest. See ikka on sirgjoon, kuid madalam kui punane joon. Kuna mõned number lehekülgi, kui ta võtab sa seda palju samme esimene algoritm, see saab teid pool kui palju samme teise. Ja nii kollane joon kirjeldavad Teine algoritm on lihtsalt saab olema selle all. Aga mis on tõesti võimas on mõelda kolmas ja viimane, ja hämmastavalt kõige intuitiivne algoritmi, mis on selle kuju. Tehniliselt me ​​nimetame See logaritmiline kõver. Logi baasi 2 n sel juhul. Aga see ei ole tegelikult küsimus. Oluline on tõesti täiesti erineva kuju, et ta on. Ja võite kaaluda, kuidas palju lühem see liin tõesti on pikemas perspektiivis. See on pidevalt suurenenud. See ei lamedamaks välja suurepäraselt. Kuid ta kasvab kunagi nii palju aeglasemalt kui probleem muutub suuremaks ja suuremaks. Ja sa ei mõtle seda sel way-- kui Verizon ei ole lihtsalt lisada lehele järgmisel aastal, kuid kahekordistab lehekülgede arv telefoniraamatus, esimene algoritm võib võtta kaks korda nii palju samme. Kui see on 1000 lehekülge seda aastal 2000 lehekülge järgmisel aastal Mike võiks olla, et palju kaugemal. Nii et see on 1,000 täiendavaid samme, et teda leida. Teine algoritm võib olla vaid 500 rohkem samme, et leida teda, sest jällegi Ma lendan läbi kaks korraga. Aga kolmas algoritm? Kui Verizon kahekordistab suurus telefoniraamat Järgmisel aastal alates 1000 kuni 2000 lehekülgi, kui palju samme on minu kolmas algoritm aega võtab? Jah, see on vaid üks. Ja see on võimas idee. Te võite võtta 1000 lk hammustada välja, et probleem korraga. Ja nüüd, kui arvestada tobe stsenaarium, kuid see omamoodi räägib võimu selline intuition-- kui telefoniraamatus oli, nagu, 4000000000 lehekülge, tundub tõesti suur probleem. Ja tõepoolest, see võib võta mind 4000000000 lehele Selgub, et leida Mike Smith, et Juhul esimese algoritmi. Aga kui palju samme oleks see võtma kolmanda algoritm leida Mike neljast miljardit paberitükke? Nii 4000000000 sa rebida pooleks. Sa saad kaks miljardit. Siis üks miljard, kui 500 miljonit 250 miljonit, 125 million-- kuid see Tundub nagu see on läheb aega võtta. Ma vajada 32 sõrme loendada üles, et kõrged. Aga see on tõesti nii vähe kui 32 lehekülge pisaraid. Võite minna neljast miljardi ühel lehel eraldusjooni algne arv lehekülgi pool 32 korda kuni sa jätta lihtsalt, et ühel leheküljel. Nüüd, muidugi, ma petmine siin. See ei ole, et me oleme lihtsalt on omamoodi loll täielikult kahe esimese algoritme. Olen petmine mõnes mõttes, või tõesti ma võimendades oletus. Mis oli tõsi umbes telefoniraamat oma esialgsel kujul, mis võimaldas ma isegi kasutada, et kolmanda algoritm? Jah? Publik: See oli Tähestikuline. DAVID Humala: See oli Tähestikuline, eks? Kui see oleks lihtsalt juhuslik Selleks, et see on raiskamine aega, kogu see vestlus. Mul on vaadata iga lehel, kui see on juhuslikus järjekorras leida Mike Smith, enne kui ma võib järeldada, et ta on seal või mitte. Ja nii nurgas me on lõigatud on, et mul on Eeldatakse, et keegi teine Sel juhul ei töö minu jaoks. Ja nii et lõpuks kutsub küsimus, hästi, oodake minut. Kuidas sorteerida 1000 lehti nimed ja numbrid? See on tegelikult erinev probleem, midagi tuleme tagasi tulevikus. Aga kui sa arvad veebilehed nagu Facebook ja Google Gmail ja asju nagu Google enda indeksid, kui sul on miljoneid või miljardeid tükki andmeid hoitakse nendel päevadel, searching-- ja rääkimata sorteerimine need problems-- Lõppkokkuvõttes on väljakutse omaette. Ja tõepoolest, see on siis lihtsalt üks neist väljakutseid et me vaatleme. Nüüd võtame hetkeks ja kui heita pilk CS50 ise ja annab teile tunde Mis laos käesoleval poolaastal. Tõepoolest, kui te pole juba, ei võta pilk see URL. Ja kui Patrick vihjas et sel aastal me oleme tehes märkimisväärseid investeeringuid kõik rohkem käigus toetust struktuuri poolest TAS ja CAS tööaega sektsioonid kättesaadavust ja digitaalseid materjale online, samuti. Tõepoolest, nii kursuse loeng, me oleme täna siin. Ja ootused selle aastal ametlikult muidugi on osaleda täna, kursuse viimase loengu ja loomulikult umbes keskel semester iga loengu vahel kättesaadavaks üldiselt reede pärastlõunal online, nii Yale üliõpilastele ja Harvardi õpilased sel aastal. Tõepoolest, üks põhimõttelisi muudatusi on et me vastuvõtmise juures Harvardi paradigma väga nagu me tegime siin eelmisel aastal ja nüüd sel aastal nii et sarnaselt, me ikka filmida kõige Kursuse loengute Cambridge kuid teeb need kättesaadavaks varem kui meil varem nii, et need sina-- kui te sooviks näiteks saada edumaa materjalid kohta esimesel nädalavahetusel pigem kui teine ​​nädalavahetus, siis on teil juurdepääsu selliseid materjale, otsingumootoriga põimitava, hyperlinkable to seotud ressursse kõikide varasemate. Seoses teemasid, mis teile tunde kursuse trajectory-- ja osa sellest võiks olla sõnavara nüüd, kuid mitte kauaks, kindel. Hakkame täna lõpuks koos vaadates ühe programmeerimine keeles nimetatakse Scratch. Me üleminek tagant järgmisel nädalal midagi, mida nimetatakse C ja siis vaadates teisi hoone plokid probleemide lahendamiseks, asju nimetatakse massiivid ja algoritmid, kuidas me kasutame mälu meie eelis ja kahjuks, asjad andmestruktuurid ja seejärel suunas sabaotsast klassi vaadates masinõpe ja vaadates teise keeles nimetatakse Python, kuidas web töötab, kuidas internetis rohkem Üldiselt töötab, protokolle nagu HTTP, keeli andmebaasid nagu SQL, JavaScript veebi jaoks, ja lõpuks sidumine Kõigil neil koos. Ja nii tõesti, kell Päeva lõpuks, siis ei õpi selles klassis Scratch või C või Python või SQL või JavaScripti. Sa asemel üldisemalt õppida infotehnoloogia ja sihtasutused selle, ja te õppida, kuidas programm in ükskõik kui paljud neist keelte mööda teed. Nii tõepoolest üks eesmärke Kursuse lõpuks on startida kõik kursuse abirattad need lõpliku nädalat nii, et pärast seda, saate tagasi oma fields-- kas see on või ei ei arvutiteadus või inseneri, looduslikus teadused, kunsti, humanitaar-, või beyond-- ja tuua mõned käesoleva Muidugi ideed ja selles valdkonnas on ideed ja praktiline oskusi oma domeeni et lahendada probleeme seal. Mis me teeme siin vahepeal Enamikus neljapäeviti pärast täna on koos muidugi peadesse juhtiv mida me nimetame trajektooridega Kursuse probleem komplekti. Nii iga nädal, kui me on probleem seatud, jagame jalgsi läbi kohas niimoodi käigus väljakutsed, pakub teile mõned näpunäited ja nippe ja projekteerimise tehnikaid. Aga kui sa ei ole võimeline teha neid isiklikult, realiseerida needsamad ressursse varjatud üks kursuse assistendid probleemiga komplektid ise, samuti. Probleem seab sel aastal erinevalt Eelmise aasta tagasiside põhjal, ikkagi reedeti. Kuid selle asemel, et tänu järgnev reede andes teile ainult seitse päeva tõhusalt olla tingitud 10 päeva hiljem. Ja tõepoolest, see tähendab, et nad kattuma nädalavahetusel. Aga loodame, et see aasta eriti see võimaldab õpilastel paremini kohaneda mõõn ja voolu nende graafikuid, kas see on teadlased või extracurriculars või kergejõustik või Kontrolltöö hooaja. Sa võid kas ees koormuse või back-koormus Teie nädal keskendub CS50 põhineb ise nädala tegelik muidugi koormust. Probleem määrab ise katab erinevaid keeli, kuigi me keskenduda peamiselt varakult C- enne keskendume sellele järgneval suurem tasandil, rohkem web-kesksemaks keeles. Ja siis paar KKK siin-- peaks te võtate klassi nagu CS50 kui esimese aasta? Nii absoluutselt. Ja tõepoolest, see ei ole tingimata midagi siis tuleb edasi lükata, kuni olete lõigatud hambaid teist liiki klassid. Aga pigem kaaluda et paljud õpilased, nagu mina juba järgmisel päeval, See on väga võõras valdkonnas, eriti kui sa kunagi ei võta AP CSA või midagi sellist keskkoolis. Aga aru, et varakult kas see on see muidugi või mõni muu alkeiskurssi, Nüüd on tõesti parim aeg, Ma arvan, et leida uusi tee või mõned uued akadeemiline huvi, samuti. Ja siis võetakse koos teiste courses-- nii üks peamisi erinevusi siin versus Harvard on see, et me ainult võtma neli kursust semestris Harvardi mingil põhjusel. Ja kutid tegelikult pull välja umbes 36 kursust kokku jooksul oma neli aastat, mis tähendab üldiselt nelja või viie klassidesse. Ja ma arvan, et see on üsna õiglane öelda ja loobume CS50, mille konstruktsioon on Ilmselt ei ole seda tüüpi klass et sa peaksid tavaliselt võtta koos nelja kursused kokku viiest sest psets on teel kujundada üsna intensiivne. Tõepoolest, ka mina õppinud See juba järgmisel päeval. Ma ei kirjelda CS50 ja infotehnoloogia, programmeerimine kui nii palju raske kui see on lihtsalt aeganõudev. See ei ole selline asi kus pärast õhtusööki, siis võib minna tagasi oma Dorm ruumi, istuda ja hakata keskendudes pset mõtlesin, eks, Ma hakkan paugu see välja täna ja seejärel liikuda edasi minu kõrval teema järgmisel päeval. Vahel sa lihtsalt tabanud seina. Sul on vigu oma koodi. Sa ei pruugi teada, kuidas lahendada mõningaid probleeme. Ja üks olulisemaid omadusi programmeerimine ennast sellel päeval on sul lihtsalt selline on vaja võtta samm tagasi mõnikord magada see või arvate, et ta jooksul ning sörkima või mõni muu tegevus, ja siis tagasi tulla värskena. Ja siis on vaja ainult neid aknaid jooksul. Ja tõepoolest, et põhjus, miks me oleme pikenenud aega saadaval probleemi komplekti Selle aasta ja ka kohta, et URL Panin üles varem, et Mida uut see semester, trimmitud probleem seab nii, et nad põhimõtteliselt mitte vähem range, ja takeaways ei ole vähem, kuid seal on palju vähem ees tähtis, palju vähem legwork, et sa pead teha eesosas iga probleem komplekti, nagu näete, enne kui saad tegelikult sukelduda liha ta. Nii mõistame, et need ja teised muutused on silmapiiril paremini mahutada õpilaste, kuid lõpuks veenduda et takeaways on tõepoolest nii suur kui võimalik. Niisiis, kui rohkem tööd kui see võib olla tüüpilises tasemega, me loodame, et tulu Teie ja takeaways teile oskusi ja ideid kellega te väljute on kõik selgem kui tulemus. Ja et sa seal-- ja see on üks olulisemaid takeaways, Patrick vihjas earlier-- on käigus tugistruktuur. Nii et mitte ainult ei CS50 on üks suurim muidugi staabid ülikooli. Samuti on üks Kõige bakalaureuseõppe. Tõepoolest, CS50 eelmisel aastal oli esimene klass on bakalaureuse õppejõud. Ja märk, et edu tegema nüüd paljude teiste kursuste Yale CS on, et samuti. Ja õpilastele, täpsemalt Kas need ajutised ja lepingulised muidugi assistendid toeta tervikuna abi võrgustiku vahendeid, nende seas lõigud või recitations, nädala võimalusi on intiimsem arutelud ja ülevaated materjali suunatud erinevate rajad, õpilastele ebamugavamate, mugavamaks, või kusagil vahepeal. Need jälgib kättesaadavust loenguid mitu päeva nädalas esmaspäeval ja teisipäeval. Ja siis kontoris hours-- üks-ühele võimalused appi käigus CA ja ajutise töötaja on kolmapäeviti ja neljapäeviti ja pühapäeviti kell mitut korda, mis kõik pannakse käigus kodulehel isegi rohkem kui eelmisel aastal, samuti. Aga mis on võtmeks CS50, kui ei küll natuke ebatavaline, on muidugi kultuuri, mis Oleme püüdnud kasvatada, nii Cambridge aastaid ja nüüd hiljuti New Haven. Ja tegelikult tulemas sel Laupäeval, kui sa ei ole kuulnud, on CS50 Puzzle Day, mis on midagi pistmist infotehnoloogia kuid on täiesti projekteeritud saata teate, et infotehnoloogia on umbes probleemide lahendamine. Ja tõepoolest, kui soovite, et partner ühe või kahe või kolme sõpru ja moodustavad meeskonna CS50 Puzzle Day, vaatleme kell kuulutusi, mis on väljapääs. Ja kolm tundi pitsat mõistatusi ja auhinnad ootavad. Ja tõepoolest, et Esimest korda sel aastal siis ei saa pidada koos Harvard. See siin iseseisvalt Yale'i. Nii et hoidke silma peal neid, kui sa ei ole. Enamik igal reedel semester me püüame teha suur klass tunda väikeste ja tuua mõned 50 õpilased lõunale käigus töötajad, vilistlastega, sõbrad tööstuse rääkida umbes milline on elu pärast klassi nagu CS50 ja üle suved ja pärast lõpetamist. Nii et hoidke silma peal kutsed, mis. Esimest korda kunagi sel aastal me hoidke esimene CS50 kodeerimine võistlus, vabatahtlik opt-in võimalus keskel semester ju meist on olnud umbes kuus või seitse nädalat programmeerimine C nende turvavööd konkureerida, kui te oleks nii choose-- jälle kohta teams-- püüab lahendada nii palju väljakutseid kui saad programmeerimine sõbrad sinu teiste vastu. Ja poole saba semestri Kas me harta mõningaid bussid, tegelikult veidi aega Cambridge, kui soovite meeldib meiega liituda, et Niinimetatud CS50 häkkimismaraton. Kell 07:00 hakkame. Umbes 09:00, siis läheb meil pizza. Umbes 01:00, siis läheb meil burritod. Ja keegi veel ärkvel kohta kojusõidu ümber 05:00, me peatuma pannkoogid kell IHOPi teel koju-- 12-tunnise võimaluse kogeda ennast klassikaaslastega ja töötajad käigus lõpliku projekti mis annab võimaluse minna kaugemale Muidugi probleem komplekti ja kavandada ja rakendada kõige midagi teile huvi pakkuda, mis lõppkokkuvõttes Objekte siin Commons. Esimesed CS50 õiglane Viimane Aasta lõpp-of-semestri näitus või tähistamine, mida igaüks klassis oli saavutatud, eriti need, jälle, kes läks midagi midagi, nullist kuni 60, millel ei ole eelnevat tausta ja eksponeerimine lõpuks midagi kogu campus ja kui online, maailma näha, samuti. Nüüd on need siin on vaid mõned Ajutised ja mis teeb CS50 võimalik. Lubage mul kutsuda nende töötajad kes siin tulla laval, samuti käigus peades pakkuda mõned sõnad inspiratsiooni, samuti. ANDI: Tere, kutid. Kas te poisid kuuled mind? Täname meiega sellel armas, vihmase neljapäeva pärastlõunal. Minu nimi on Andi. Ma olen noorem Berkeley. Ja koos Stelios ja suvel, me oma kolme head õpetamist assistentide eeloleval aastal. Niisiis, ma arvan, show hands-- Kui paljud teist ei ole mingit kavatsust olemise CS suur ega tõesti sukeldumise sügavalt arvesse infotehnoloogia olulise siin? Vinge. See on geniaalne. Nii et ma olen tegelikult ülemaailmsetes küsimustes ja kognitiivseid suur. Ma sõna otseses mõttes tuli Yale kavatsusega ning ei ole kunagi vaadata number kunagi minu elus. Kui ma tulin Yale, see oli midagi, mis oli kunagi minu radar. Tahtsin teada luule. Tahtsin teada rahvusvahelised suhted. Tahtsin teada akvarell joonised. Jah, me pakume klassi kohta akvarell joonised. Aga ma ei ole kunagi tegelikult oli huvitatud midagi STEM seotud. Aga siis vanemad Ma sain, seda rohkem ma mõistsin et igas valdkonnas tõesti mõnel mõttes tööd infotehnoloogia, või kui ei arvutiteadus, arvutamine. Tegelikult minu globaalse asjade nurgakiviks projekti, me kasutame andmete analüüs analüüsida terrorirünnakute jaoks Boko Haram Nigeeria. Ja nii nagu näete, olenemata mida suuremad siis lõpuks ellu või mida teie huvidele siin Yale'i on, programmeerimine ja sihtasutused olenemata oskused on super kasulik. Ja CS50 tõesti hästi varustatud Selline laenata palju oma ressursse teid, olenemata sellest, kuidas mugav olete või kuidas huvitatud olete jälitavad klassi. Suve räägi vähe natuke sellest, mida kutid on läheb õppida sel aastal. Suvel: Tere, kõigile. Ma olen Summer Wu. Ma olen noorem Morse. Ja ma tegelikult alustas kui CS50 õpilane ise. Nii kolm aastat tagasi, olin vahe aastas. Ma kunagi võtnud CS klassi keskkoolis, aga ma arvasin, et minu vaba aeg, see oleks lahe, et õppida, kuidas kodeerida. Nii et ma tegin kiire Google otsing, Vaatasin, mida oli saadaval internetis, ja nägin seda videot muppets ja DJ-d ja jahe veebilehed. Olin nagu tahan õppida, kuidas seda teha. Nii ma võtsin muidugi, ja ma lihtsalt armus ta. Aga ma mäletan, on nii armukade lapsed, kes võiksid osaleda häkkimismaraton, osaleda Puzzle Day, osaleda kontor tundi, saada abi ajutise töötaja isiklikult. Ja nii ma kunagi arvanud et ma saan võimaluse tuleb siin kaasata muidugi, et esimest korda sain mind huvitab arvuti teaduse ja on põhjus, miks Ma olen arvutiteaduse suur täna. Nii et ma hoiatan teid, see klass läheb venitada teile. See läheb teile väljakutse. Aga see ka läheb õpetab, kuidas teha asju et sa kunagi arvanud võid. STELIOS: Tere, kõigile. Minu nimi on Stelios. Ma olen noorem Branford College ja CS suur. Ma olen ka Athens, Kreeka. Ma tõesti ootan vastab kõigile teile, lobiseda jaos, kell tööaega, kell reede lõunaks. Ma olen väga põnevil, sest panime nii palju vaeva arvesse luues unikaalse toetust struktuur teile kõigile teha oma kogemusi muidugi parim võimalik. Ja ma loodan, et kuigi enamik olete ilmselt ei võtnud CS Muidugi enne, ma loodan, et see CS50 Teie jaoks on see, mis sütitab huvi üles jätkama arvutis teaduse tulevikus nagu ta on teinud nii paljud inimesed minevikus. Nii Aitäh Siin põnevil, et näha. Jason Hirschhorn. Jason Hirschhorn: Tere, kõigile. Minu nimi on Jason Hirschhorn. Ma elan Silliman. Ja ma läksin Harvard undergrad ja majored ühiskonnaõpetus ja lisakoolitus arvutiteadus. Ja üks mu peamine roll siin on toetada selle imelise töötajad sest nad toetavad teid kõiki. Tegelikult see ei ole neid kõiki. Seal on 55 tudengit ja lõpetajate siin, et toetada teid kõiki. Ja Julgen väita üks parimaid osad muidugi teile kõik muutub tööd neid tundma neid, saada neid näha nii CS50 ja väljaspool CS50 see semester ja palju semestrit tulla. Loodetavasti saate võtta Muidugi, sest loodetavasti sa saada suhelda wonderful staff meil laval. Ettekandja: Noh, lubage mul lõpetada öeldes on see lõbus. DAVID Humala: Noh, tänu kogu meie meeskonna. Lubage mul päevasõidutulede tuled ja võimaldavad mõned meie meeskonda nii Cambridge ja New Haven, tere öelda, kuna need poisid faili välja. Ja pärast seda me üleminek Esimesed meie programmeerimine kohustusi Selle keeles nimetatakse Scratch. Nii tänu meeskonna. Olgem päevasõidutulede tuled ja kuulda mõned teised. [APPLAUSE] [VIDEO PLAYBACK] -The Missioon CS50 on, et sa rohkem rahul täiesti uuel viisil mõtlemine, see arvutuslikke mõtteviisi. -See Tehtud arvutiteadus huvitav, mis on midagi, mida ma tegelikult ei mõista, oli võimalik, kuni võtsin klassi. -Ma Olin nagu, oot. Ma tõesti tõlkida minu mõtted arvutisse kohe. -Even Kui sul ei ole mingit tausta infotehnoloogia või mingeid kogemusi, see on tegelikult klassi jaoks. -Nii Ma kindlasti tahan minu õpilased lihtsalt põnevil arvutiteadus. Mitte ainult programmeerimine, vaid mõtlemine nagu arvuti teadlane on tõesti, mida ma tahan proovida õpetada minu uustulnuk. -CS50 On raske ja rahuldust. -on Kogemus. -Extravaganza. -See Viib meid järgmisele tasandile. [MUSIC MÄNGIB] -The TF on, ma arvan, on elujõud käigus. -Ma Põnevil, et on minu õpilased ma aitan on, et aha hetkel realiseerida mida nad tegelikult püüavad tegema, et aru saada, kuidas seda teha pset. -CS50 On kindlasti raske muidugi. Kuid erinevalt muu Muidugi tõesti Yale'i, see on nii suur, toetav kogukond. -Sa Absoluutselt ei vaja teada midagi kodeerimine, et oleks võimalik võtta muidugi. -See On hämmastav vaadata, kui kaugele inimesed tulevad ühe semestri. -Sa Ei üksi istub oma toas õppida koodi aga see oli rohkem kui lihtsalt klassis. See oli kogemus. -The Parim viis õppida kontseptsioone ja töödelda neid on õpetamine teised. -Mis On telefoni split? [MUSIC MÄNGIB] -Ja See on CS50. [MUSIC MÄNGIB] -See On CS50. -Got Probleem? Rebige see pooleks. [MUSIC MÄNGIB] Viska see ära. DAVID Humala: Hea küll. Nii saab tackle-- veidi natuke, muide, see on olnud see traditsioon Mingil põhjusel 10 aastat teenida koogi alustada ja lõpuks CS50. Nii ootavad teid lõpus täna lisaks ainekavad, on mõned kooki ka, ja käigus töötajad tere öelda. Aga nüüd, lähme üleminek Esimene meie keeles, kus veedame tõesti ainult nädal ja üks Probleem seada selle domeeni, Scratch. Ja sa leiad, kui olete programmeeritud enne paljud ideed ja Võimalused on tuttav. Aga sa leiad, et see on lõbus mööda teed nuputada, kuidas täpselt tõlkida mõningaid ideid sa juba tead Selle konkreetse keskkond tõesti muljet oma pere ja sõbrad oma tööd, mis võib minna online, kui sa nii valida, hiljem. Ja kui sul pole eelnev kogemus ja on seas enamus õpilased vähem mugav, aru, et paljud ideed on reaalsed lihtsalt uurida koos reality-- asju nagu telefon raamatuid ja osavõtjate ja nii forth-- tõlkida üsna kenasti arvutiga kuid mitte siis, kui te kasutate, Esialgu keeles niimoodi. Nii et see on kirjutatud programmi keeles nimetatakse C. Ja me kulutama päris palju aega C lõppkokkuvõttes. Aga koefitsiendid on, see näeb välja natuke segasena sulle esmapilgul. Tegelikult, seal on palju imelik süntaks, sulgudes noolsulgudega, looksulg, hinnapakkumisi ja semikoolonit. Ja tõepoolest, kui sa sukelduda programmeerimine esimest korda vaadates ja püüdes luua asju niimoodi, ausalt, sa saad nii takerdunud nii tihti lihtsalt loll minutia, et pole midagi intellektuaalselt huvitav selle kohta. Aga kujutage ette, kui saad luua Samal program--, mis nagu te võib selline järeldada, ilmselt pildid "Hello, world" ühel või teisel moel. Me ei destilleerida, et sama ideed vaid kaks puzzle tükki, kui soovite. Tõepoolest, Scratch on huvitav sest see on see graafiline keeles. Võite lohistada need puzzle tükki, et ainult omavahel tihedalt seotud kui see muudab loogilisel teha. Ja nii Scratch, me kohe näha, et see on kuidas oleks rakendada sama programmi, vaid kaks puzzle tükki et päris palju seda, mida nad ütlevad. Aga me näeme vaid hetkeks, et mõned ehituskivid, et me vihjas varasemate ja veel mõned on kõik, mis lõpuks hakkavad moodustama mõned meie esimesel programme. Me läheme on asju nagu functions-- lihtsalt meetmed, et teha midagi, nagu tere öelda, maailmas. Me läheme on silmad, asju, mis põhjustavad tsüklit ikka ja jälle, just nagu me tegin hetk tagasi otsimise Mike Smith. Muutujad, nagu algebra, kui te on x või y, mis mahutab number. Noh, programmi, saab tegelikult salvestada rohkem kui lihtsalt numbrid. Saate salvestada sõnu ja lauseid ja graafikat ja muid asju veel. Loogiline väljendeid, lihtsalt questions-- jah või ei, õige või vale. Tingimused, mis teeb otsuseid põhineb need jah / ei vastused. Ja siis Kasvataja asjad massiivi ja niidid ja sündmused ja mõnel teisel funktsioone, kuid mis kõik map väga kenasti väga sõbralik plokid niimoodi. See saab olema funktsioon, et lilla puzzle tükk, mis lihtsalt ütleb Mis selle nimi on-- sel juhul öelda. Ja siis tihti, seal valge kast, mis sa ei kirjuta või lohistada mõne väärtuse. Ja see, mida on üldiselt nimetatakse argumendi või parameeter. See on viis muutmata vaikimisi käitumist puzzle tükk või funktsiooni nii, et see ei midagi kohandatud teile öelda: tere, maailma või tere, Andy ja tere, Jason või mõne muu lause asemel. Kui sa tahad öelda, et lot-- sõna otseses mõttes forever-- saate teine pusletükk nimetatakse igavesti ja lihtsalt asuvast kaks kokku niimoodi. Ja see silmus, kui oletada, tähendab lihtsalt tere öelda, maailma igaveseks uuesti ja uuesti ja uuesti. Või kui soovite ainult teha seda hulga korda, nagu 50 korda, seal saab olla teise puzzle tükk selle-- korrata 50 korda. Vahepeal, kui soovite omada muutuja Selles keeles me oleme umbes mängida, saate oranž blokk niimoodi. Ja see muutuja ma meelevaldselt nimetatakse i täisarv. Ja ma lihtsalt seada see võrdub 0. Ja et äkki ma sel case-- see variable-- esindab kellegi skoor mängu. Sa alguses null ja iga kord, kui teha eesmärgi saavutamiseks või midagi sellist, saad veel ühe punkti. Võite küsida küsimusi Scratch. Kui me lohistada puzzle tükki ühel hetkel niimoodi, võite küsida küsimusi nagu, noh, on i alla 50? Võib-olla teil on vaja 50 punkti võita. Ja nii see oleks küsimus soovite küsida. Või üldisemalt, siis Võiks öelda, on x vähem kui y, kus on kahe muutuja hõlmab? Nüüd, see on palju suurem esmapilgul kuid tegelikult ei ole kõik, et keerulisem. See on lihtsalt kombinatsioon seisundite ja muutujate ja Boole'i ​​avaldised küsida kolm questions-- on x vähem kui y? Kui nii, siis nii. Ütle, x on väiksem kui y. Muidu kui x on suurem kui y, teine ​​x peab olema võrdne y. Ja samas Mike Smith, oli neli stsenaariumi, siin maailma numbrite, x on kas väiksem sellest suurem või võrdne. Kõik me peame kolm kahvlid maantee. Ja siis on Kasvataja puzzle tükki niimoodi asjad massiivid, kus me oleme ilmselt võimeline teavet salvestada. Me näeme plokid, mis võimaldavad meil rakendada mitme lõime, teine ​​funktsioon me kasutame, ja siis ka midagi, mida nimetatakse üritusi. Aga enne kui me selle punkti ja luua isegi, lõpuks, meie omatehtud puzzle tükki, olgem tegelikult avada programm ise. Nii et see on nullist. See on kättesaadav aadressil scratch.mit.edu. Ja sa oled teretulnud mängima nüüd või hiljem, samuti. See juhtub olema offline versiooni. Inimeste jaoks, kes seda ei tee pea suurt internet, saad laadida Sama tarkvara samuti. Ja seal on tõesti ainult kolm komponentide seda tarkvara. Ülemises vasakus nurgas ekraan on omamoodi etapi et Scratch, kes vaikimisi näeb välja nagu kass, elab sees. Ta võib liikuda üles, alla, vasakule ja paremale ja teha ükskõik kui palju muid asju, ja otsida mitmel viisil põhineb kohta kostüümid, mis sa talle määrata. Aga see on see, mida me nimetame sprite, omamoodi iseloom. Ja sul võib olla mitu tegelased, nagu me varsti näha. Keset nüüd on kõik need puzzle tükki ja need kategooriad või kaubaalused selle. Nii kohe, ma klõpsanud Motion. Ja nii ma käin kõik algatusel seotud puzzle tükki või plokkide, nii funktsioone, mis on pistmist läheb üles, alla, vasakule või paremale või mõne muu toiming. Aga kui ma klõpsanud Paistab, siis võis näha asju nagu näiteks plokk me nägime hetk tagasi. Ja kui ma vajutan kontroll, näete asjad korrata ja igavesti ja kui plokk, mis nägime hetk tagasi. Ja nii leiad et me lihtsalt kriimustada pinnal mõned puzzle tükid kokku, kuid see kõik on üsna intuitiivne ja punkti ja klõpsa. Tõepoolest, Scratch oli mõeldud nooremate õpilaste puhul aidata anda neile väljund loova mõtlemise. Ja veel imeliselt, see on suurepärane hüppelaud täpselt ideid me ei kavatse uurida C ja Python ja JavaScript, samuti. Paremal servas lõpuks siin on see, niinimetatud skriptide ala. Ja see on vaid tühi kiltkivi mis sa hakkad kirjutada programm. Ja ma just nii. Nüüd ma tean küll, kus asjad on sest ma olen seda teinud paar korda. Aga ma tean, et vastavalt Sündmused kategoorias seal on see plokk siin-- kui roheline lipp klõpsatud. Ja teate, kui ma välja suumida ja tagasi siia laval, Scratch elu jooksul selle väike nelinurkne maailma atop mis on roheline lipp ja punane stop märk. Nii et mine ja lõpetada võrra. Ja mis ma tahan teha kui see roheline lipp on klõpsatud? Noh, lubage mul minna, mis näeb kategooriasse. Ja las ma minna ja lohistada seda. Ja teate niipea kui see muutub lähedale, et nad on omamoodi magnet. Nii et kui ma nüüd lahti lasta, siis asetub koos kena ja puhas. Ja ma lähen edasi minna ja öelda midagi hello, world kaks sekundit. Lubage mul suumimiseks ja klõpsake nüüd roheline lipp, ja öelda, tere, maailmas. Hästi. Nii et kõik on hästi ja hea. Mitte kõik, et põnev. Teeme seda veidi ilusam. Ja ma tean, et ette, Scratch juhtub tulema mõned armsad asjad niimoodi. Nii mängivad heli mjäu kuni teinud. Nii teeme seda. [MJÄU] Ah, see on jumalik. Ja kui ma vajutan seda again-- [MJÄU] Ja jälle. [MJÄU] Aga näen pidevalt, et ellu äratama Scratch. Aga ma ei saa seda teha paremini kui see. Miks ma ei lihtsalt lohista need kolm. Ja nüüd on kolm korda nii jumalik. [Meowing] OK, tegelikult, see on natuke jube. Nii et me peame midagi nende vahel. Kui ma lähen kontrolli, tundub seal on tegelikult ootama blokeerida. Ja nii märgata kui ma kursorit seal-- ja las ma teen seda natuke suurem. Kui ma hõljuma, siis läheb Tõmme paika. Nii oodake üks teine, oodake üks sekund. Olgem tabanud roheline lipp uuesti. [Meowing] OK, natuke rohkem füüsilist, kuid mitte väga tõhus. Nii et see on õige, kui minu programmi Eesmärgiks oli mjäu kolm korda. Aga see ei ole väga hästi läbi mõeldud. Ma nagu lõigatud mõned nurgad. Ma sain natuke laisk. Mis tunne like-- mida ma tunduda et on teinud halvasti, sa ütleksid? Jah? Jah, keskel. Publik: Kasutatud rohkem mälu kui teil on vaja sest te kasutate nii palju erinevaid rida. DAVID Humala: Jah, nii mitmele reale. Ja see ei pruugi olla mälu kuigi see võiks vaadelda nii. Aga see on definitely-- seal on koondamine. Ja ma sõna otseses mõttes omamoodi lohistada ja langes samu asju. Ja kui sa mingi extrapolate-- kui see ei ole ilmne siin-- hästi, kuidas oleks Ma mjäu 30 korda? Ma lohistada, nagu 30 rohkem paari puzzle tükki. Ja kindlasti, seal on parem. Ja me oleme näinud parem. Mis intuitiivselt oleks olla parem? Jah, lihtsalt kasutada loop. Ei kopeeri ja kleebi. Ja tõepoolest, millal see semestri kui hakkate leida ennast lohistades, või tõesti kopeerimine ja kleepimine ohtlik harjumus sattuda, sest See lihtsalt ei ole väga hooldatav. Näiteks, kui ma tahan muuta Heli midagi muud, Mul on seda muuta praegu kolmes kohtades, mitte ainult üks. Sest tõepoolest, kui ma murda away-- ma olen lihtsalt läheb lahti siduda seda niimoodi. Las ma haarata korrata blokaad, ja seejärel nuppu kolm, kirjuta kolm, viska mõned neist ära lihtsalt lasta minna. Ja siis märgata ei tundu see sobib, kuid magnetiliselt, siis läheb mitte ainult snap paika kuid kasvab sobima kuju. Nii see on hea. Ja nüüd, kui ma vajutan play. [Meowing] Väga kena. Hästi. Ja nüüd on see väga lihtne muuta ka, sest ma lihtsalt muuta üks number ühest kohast. Kuid ka see ei ole kõik, mis huvitavad. Olgem tegelikult on Scratch ei Mjäu, kuid liikuda. Lubage mul minna Resolutsiooni ning liikuda 10 sammu sees of-- Oih, lubage mul seda parandada. Andke mulle see liikuma 10 steps-- tegelikult, ärme ei korrata. Las ma haarata juhtploki ja teha järgmised igavesti. Forever, liikuda 10 sammu. Ja klõpsa Play. OKEI. Nii õnneks ta peatub. Muidu lapsed saaksid väga ärritunud kui nad omamoodi kaotavad kass. Aga vähemalt ma ei lohista ta tagasi ekraanile. Aga see pole veel kõik, et suure mängu või animatsiooni. Oleks tore, kui äkki ta põrkas serva. Mida me siis teeme? Mis ehitada me peame olema Scratch otsustada põrge, kas sa arvad, isegi kui te pole kunagi näinud Scratch enne? Jah, on tagasi. Publik: Sa pead kui ploki või kui-siis. DAVID Humala: Jah, nii et mõned selline, kui plokk või kui-siis. Seega tegelikult on meil üks neist siin. Nii kui-- las ma saan lahti liikumist. Las ma suumida nii et see on suurem. Niisiis, kuidas see. Forever, kui Sensing-- oleme ei näinud seda varem. Vajan Loogiline väljendus. Ja selgub, kui liigutav mida? Kui puudutamata serva, Mida ma tahan teha? Noh, kui ma lähen tagasi Motion, Selgub, oh, ma ei saa ümber pöörata. Lubage mul lohista see siia. Miks ma ei minna ja ümber pöörata 180 kraadi? Ja nüüd, las ma lihtsalt liikuda lõpus. Ma võiks panna liikumine alguses või lõpus. Aga loogiliselt, iga kord kui ma liikuda, ma soovite kontrollida, ma puudutamata serva? Kas ma olen puudutamata serva? Kas ma olen puudutamata serva? Nii et loogiliselt ma ümber pöörata kui nii. Nii saab löögi mängida. OKEI. Nii et see on veidi lollakas, kui nii võib öelda. Ja viga on lihtsalt viga arvutiprogrammis. Aga vähemalt see töötab. Ja tegelikult, ma ei lähe siin. Ja las ma teen seda mitte 10 sammu juures aega, kuid see on kõik animatsioon on. See kõik on koomiks või isegi filmi. Las ma liikuda 20 sammu korraga. Nii 20 korda nii palju asju juhtub üks kord või kaks korda nii palju, käesoleval juhul. Ja ta liigub kiiremini. Las ma muuta 30. 100. 1000. Ja see läheb väga kiiresti. Ja see on-- jah, OK. Nüüd me lihtsalt jama see. OK, nii lollakas. Kuid me saame teda lohistada välja viis siin. Aga me saame lõbusam seda ka. Kuidas see-- ta tagurpidi. Aga selgub Scratch-- ja seal on tegelikult, Ma pean loobuma, ei akadeemilise väärtust, mida ma olen umbes teha. Aga kui ma avada mikrofon, olgem teda peatada ja teha midagi sellist. Ai! [LAUGH] See oli jumalik. Aitäh. Nüüd on see, mida mu häält Tundub, kui ma kisa ai. Ma ei arva, et me püütud oma naeru. See on OK. Lubage mul päästa seda "Ai". Hoiame seda "Ai". Ja nüüd me läheme tagasi skriptid. Ja nüüd ma need-- vaatame, Sound. Oh, mängida heli ai. Nii et kui ma puudutamata serva, lase mind Esimene mäng ai, ja siis keera ringi. Ja nüüd paneme teda keset. [ÖELDES "Ai"] Kaks korda kiiremini. OKEI. Aga see on sõna otseses mõttes teed, mida ma räägin. Nii et see on tegelikult õige, see on natuke tüütu kiiresti. Lisame midagi huvitavam see. Lubage mul tegelikult avada üks, mis ma tegin ette, tabavalt nimetatakse lemmiklooma Kass, kes teeb seda. Siin on script siin. Mis see läheb teha inglise mõttes? Mis see on kavandatud teha? Jah, lähme some-- jah? Publik: Kui lemmiklooma kass, see meows. DAVID Humala: Jah, nii et kui sa lemmiklooma kass, see läheb mjäu. Nii teisisõnu, seal on nüüd igavesti loop ikka, kombineeritud tingimusega, kombineeritud koos Loogiline väljendus, kombineerida paar funktsioone, mõju mis, kui ma mängida Selles programmis, on midagi juhtub, kuni ma Kursori lähemale ja lähemale ja lähemale Ja-- [MJÄU] Siis see on nagu hellitus kass. [MJÄU] Alles siis, kui sa tegelikult Kursori temast üle. Nüüd ma ka vahustatud ei lemmikloomadest kass, mis teeb selle asemel. [Meowing] Nii ta lihtsalt pidevalt meowing. [Meowing] Aga kui ma saan liiga close-- [Meowing] [Roar] Niisiis, kuidas see toimib? Nüüd ma lihtsalt olla kahesuunaline teelahkmele. Kui puudutades hiirekursori, siis mängida lõvi heli. Else lihtsalt mängida mjäu heli ja seejärel oodata kolm sekundit, et et see on selline tehes väga vaikselt. Hästi. Nii et see ühendab veel mõningaid ideid veel. Võtame pilk see näiteks Ma vahustatud nimetatakse niidid. Ja see on põhimõtteliselt teistsugune, kuna see tasakaalustab funktsioon paljude programmeerimiskeelt nimega niidid, võime programmi sõna otseses mõttes teha kahte asja korraga. Tõepoolest, need päevad, kui te kasutate Google Docs või Microsoft Word, ja oma dokumendi pidevale õigekirjakontrolliks isegi kui liik-- või siis tabas Command-P või Ctrl-P ja printida midagi, see printimise ajal jätkata kirjutamist. Programmid täna võib tõesti teha mitu asja korraga, just nagu Scratch siin. Nii et siin on mul kaks sprites Nüüd, lind ja kass. Ja kui ma vajutan iga need märgid ükshaaval, Ma näen kohe linnu skriptid ülevalt paremalt. Nüüd ma näen kassi. Linnu, kassi. Nii igaüks neist on oma skripti. Aga teate, mida pusletükk nad mõlemad algavad? Kui roheline lipp klõpsatud. Ja lind, kui roheline lipp klõpsatud. Nii et kui ma nuppu roheline lipp, need mõlemad skriptid või programmid hakkavad paralleelselt. Ja märkad, et lind on lihtsalt meeletult kopsakas serva. Kass selgelt on programmeeritud strateegilise eelise. Ja-- [Roar] Hästi. Nii kass püütud lind sel juhul. Miks nii? Noh, teate Esimene me lihtsalt lind lihtsalt meeletult läheb Selle esialgne asukoht, ja siis igavesti, kui ei puutu kass, lihtsalt liikuda. Ja kui sa oled äärel, põrge. Ja lihtsalt liikuda. Ja kui sa oled äärel, põrge. Aga kass, vahepeal on mõningaid täiendavaid loogika mis ütleb see-- esimene, just nii et see ei ole täiesti kallutatud vastu lind, märkate, et ma olen kasutatud roheline puzzle tükk seal et tegelikult korjab juhuslik number. Tunnuseks paljudes keeltes on anda sa juhuslikult või pseudo numbrid. Nii antud juhul kass esialgu valib juhusliku numbri vahel, nagu 90 kraadi ja 180 kraadi, sisuliselt nii et seal on natuke vastuolus. Ja siis igavesti, kui liigutav lind, mängida lõvi heli. Muidu lihtsalt punkti suunas lind. Punkti suunas lind. Point poole lind, mis on pusletükk juurde ise sel juhul. Noh, me saame teha üks teine ​​asi siin. Lubage mul avada ürituste programmi siin. Ja siin me jälle on kaks haldjaid, mis näevad välja nagu need kaks nukud siin. Ja mis on huvitav, siin on see. Oranž mees on see komplekt puzzle tükki siin. Forever teha following-- kui tühikut vajutamisel siis öelda, Marco ja siis saade sündmus. Ja vahepeal, sinine poiss on siin see-- saabudes juhul, öelda Polo. Nii selgub Scratch ja teistes keeltes, On viise, kuidas kaks programmi või kaks skripte, sel juhul to omavahel ühendatud nii, et kui ma vajuta tühikut, ta ütleb Marco. Ja teine ​​kuuleb, et nii- rääkida, ja ütleb Polo vastuseks. Nii saab kirjutada programme, mis tegelikult suhelda sel viisil. Ja kui ma selle ühe asemel, Ma lisada ka muutujaid, kasutada vaid ühte sprite sel juhul. See üks on eriti tüütu. [SEAL BARKING] Nüüd teate paremal meil mõned täiendavad loogika siin. Kuidas peatada see pitser haukumise? [SEAL BARKING] Tundub, et on parempoolne külg on see, mis mängib heli. Aga see on ainult mängides heli, kui see, mis on õige? Kui variable-- oranž block-- summutatud on null. Kuidas muuta summutatud olla 1, mis tähendab, tõsi, seda summutatud? Ilmselt teine ​​skript, suudan vajuta tühikut, ja nüüd ta lõpetab. Nii saame seda suhtle üle skriptid, samuti, lihtsalt jagada muutuja üle kahe niimoodi. Nüüd, see ei ole kõik, et huvitav. Lähme edasi ja seda teha ning ühendada palju neid ideid selle programmiga siin. Enne kui me seda teeme, ehkki kuidas ühe vabatahtliku? Lubage mul võtta survet mind, sest ma tegelikult ei mängida seda mängu. Olgu meil keegi me ei ole näinud. Pead olema mugav tulevad laval siin kaamera. OK, tule üles. Väga julge. Mis su nimi on? IDRIS: Idris. DAVID Humala: Vabandust? IDRIS: Idris. DAVID Humala: Idris, meeldiv tutvuda. Tule üles. Ja nüüd, oma enda mobiili telefon, sa mängid Pokemon minna? IDRIS: Ei DAVID Humala: Kas tõesti? IDRIS: Jah. DAVID Humala: OK. Hästi. Noh, tore kohtuda. Tule läbi. Ma ka mitte. Nii me aru saada kokku, kuidas mängida seda, mis keegi tegelikult läks ja rakendatakse Scratch muutes kass sisuliselt erinevat märki kõik koos. Ja kui ma fullscreen See siin, me ei kavatse näha järgmist mängu kokku. Laen ikka laeb. Ole nüüd. Las ma teen seda. Ole nüüd. See mäng on nii suur, et ta kukkus. Ootel. Proovi seda veel kord. Ole nüüd. Hästi. Seal me läheme. OKEI. Roheline lipp. Nii et siin me läheme. [MUSIC MÄNGIB] Vali kesktaseme siin. Vajuta sinine poiss seal. Hästi. Ja saate nool keys-- üles, alla, vasakule, paremale. Nüüd saab lugeda me see-- ja siis pärast tähte seal. Yep. Ja nüüd klõpsata teda hiire. Oh, jah. Liiguta. Kus on nool? Palun. Nii klõpsata seal. Jah. Hästi. Nüüd, ma olen teile rääkinud on pistma palli et kui klõpsata, siis tee seda. Väga hea. In harjutanud täna, ma leidsin selle versiooni mängu tegelikult ei ole väga raske. Seega, kui soovite minna jälle siin, jalutada mööda seda pistma palli. Ja siis mine võta paremale. Proovi klõpsates. Oh, tegelikult, see on poest, ilmselt. OK nii lähedal, et. Kunagi teinud, et enne. Võib-olla minna kuni see asi siin. Oh, et te lähete. Oodake, seal on üks seal. Oh, seal on teine. OKEI. Alla. Jah, klõpsake. OK, see on väga armas. OK, väga hästi tehtud. See mäng ei ole väga raske. OKEI. Õnnitleme. Siin on meil CS50 stress palli sulle. Aga pean hetkeks, mida mõned takeaways on olemas. Lihtsam kui reaalne mäng, ilmselt. Aga kõik oleme kavatse siin on märk et ilmselt on mingi aasa sellega seotud. See ei ole kass. See on see märk asemel. Ja see silmus on lihtsalt pidevalt öeldes, kui üles- alla vajutatud, Kui Nool vajutatud, kui vasak nool pressitud või paremal nool alla vajutatud, liiguta üles või alla või vasakule või paremale. Või kui seal on teine ​​pusletükk seal mis ütleb, et kui liigutav teise sprite, kui liigutav üks tähemärki et pistma palli, kui liigutav, siis tee seda. Nii et kõik ideed me oleme kasutanud seni tõesti lihtsalt rakendada seda eriti kontekstis, et mängida seda mängu, samuti. Lubage mul minna ja tõmmata kuni üks teine ​​siin, tegelikult. Lubage mul minna ja tõmmata kuni oletame, et see. See on midagi, mida me Remixed. Tehtud üks meie üliõpilased Cambridge, ja siis ma läksin läbi ja muutunud päris palju igakordne Harvard Yale seekord. Kas keegi meeldib võistelda IVIES Siin teises kogunemine Kõigi nende ideid? Tule alla, jah. Mis su nimi on? Dina: Dina. DAVID Humala: Adina? Dina: Dina. DAVID Humala: Dina, tule alla. Olgu, Dina. Nii see mäng muutub raskemaks ja raskem, sest selles mängus, seal on muutujaid kasutatakse samuti mis on pidevalt jälgida mis tasemel oled mängus. Nii tore kohtuda. Tule siinkandis. Ja nii eesmärk siin on sorteerida on teha oma teed läbi labürindi et see tudeng rakendada. Ja just panema, iga neid pilte ekraanile on oma sprite, oma iseloom. Nii et need olid vaikimisi kassid, kuid õpilane neid muutis erinevate IVIES logod siin. Ja siis näete, et lihtsalt abil tingimused ja silmad ja funktsioonide ja rohkem, saad seda. [MUSIC MÄNGIB] [MUSIC - MC HAMMER, "U ei puuduta  See "] Jah, OK. Jah, edasi. Esimene tase on väga lihtne. Sa pean lihtsalt sinna minema. Aga jälle, leiavad, et see on lihtsalt loop kuulates nool keys-- üles, alla, vasakule, paremale. Ja nüüd kaugseire blokeerida. Väga kena. [MUSIC - MC HAMMER, "U ei puuduta  See "] Väga kena. [MUSIC - MC HAMMER, "U ei puuduta  See "] Väga kena. Päris lihtne, Crimson. Hästi. Levels-- uh-oh. [MUSIC - MC HAMMER, "U ei puuduta  See "] Ja jälle, need kolm Harvardi trampliiniga, sa lihtsalt loogika öeldes, kui serv, põrgatama. [MUSIC - MC HAMMER, "U ei puuduta  See "] OK, mida sa teed on huvitavam kui miks. Väga kena. Väga kena. Uh-oh. [MUSIC - MC HAMMER, "U ei puuduta  See "] Ma arvan, et sa pead ennast ohverdada. [MUSIC - MC HAMMER, "U ei puuduta  See "] Kiire! [MUSIC - MC HAMMER, "U ei puuduta  See "] Nice. See on OK. Sa saad selle. Jah, jah! Väga kena. [Cheering] [MUSIC - MC HAMMER, "U ei puuduta  See "] Nice! [MUSIC - MC HAMMER, "U ei puuduta  See "] Sain aru. Ole nüüd! Teiseks, et viimane tase. [MUSIC - MC HAMMER, "U ei puuduta  See "] Hästi. [MUSIC - MC HAMMER, "U ei puuduta  See "] Jah. Hea kasutada muutujaid siin. [MUSIC - MC HAMMER, "U ei puuduta  See "] Jah. [MUSIC - MC HAMMER, "U ei puuduta  See "] Nice. [MUSIC - MC HAMMER, "U ei puuduta  See "] See on OK. Saime saada lõpuks. Seal. Oh! [MUSIC - MC HAMMER, "U ei puuduta  See "] Võib joosta hilja täna, kuid see saab olema väärt. [MUSIC - MC HAMMER, "U ei puuduta  See "] Sa saad sellega hakkama! Jah! [Cheering] [MUSIC - MC HAMMER, "U ei puuduta  See "] See üks on tõesti raske. [MUSIC - MC HAMMER, "U ei puuduta  See "] Anname veel kaks elu. Kas sa seda? [MUSIC - MC HAMMER, "U ei puuduta  See "] Hästi. Kuidas oleks suur ümmargune aplaus sellegipoolest. Sa pead eelviimases tasandil. Aitäh. [APPLAUSE] Nii et see on ainult öelda, kui palju sa võib teha selliseid asju. Ja mõistame ka, et kui puzzle tükki ei exist-- ja tõepoolest, see saab olema üks volituste esimese probleem komplekti ja beyond-- on tegelikult luua oma. Ja see on vaid jupp Ühe näited Teil on võimalik mängida online, kus Kui sul ei ole ehitatud Scratch midagi köha pusletükk, tegelikult võite teha seda ise. Ja nii see kõik ja ootab. Ja just maalida lõplik pildi tõepoolest, mis on enne poe klassi jaoks, põhineb mõned pildid klassikaaslased Varem, lubage mul päevasõidutulede tuled viimast korda ja näitab teile CS50. [MUSIC MÄNGIB] Hästi. Ongi CS50. Kook on nüüd teeninud. [MUSIC MÄNGIB]