[Video taasesitus] [Autoukse kinnipanemine] [Auto mootori ALGUS] [Muusika mängib] Liigutamine paremale mööda otsing Hea korda ja häid uudiseid. Heade sõprade sa ei saa kaotada. -See Võib saada harjumuseks. -Opportunity Koputab Olgem lihtsalt jõuda ja haarata. Jah! Üheskoos me nab ta. -Me Oleme probleemideta matkata, bussi või kollane kabiini seda. -Dammit. -Me Liigub paremale mööda. -Footloose Ja väljamõeldud tasuta. -Getting On lõbus. Tule jaga seda minuga. -Me Liigub paremale mööda. -Me Oleme kavatse jagada koormust. -Me Ei pea kaardil saada see show teedel. Hei Fozzy, ma tahan, et sa keerata vasakule kui sa jõuad teelahkmele. -Jah söör. Pöörake vasakule teelahkmele. Pöörake vasakule. Ma ei usu seda. -Cruising Õigus koos leidsime tuled teedel. -Ja Teed või minu moodi. -Nii Usaldan oma navigatsioonisüsteemi. -Filmide tähte toretsev autod ja elu ülalt alla. -Me Oleme tormijooksust suur mäed. Jah, torm on õige. Kas see tuleks lund? -Ei, Ma ei arva nii. Liigutamine paremale mööda. -Footloose Ja väljamõeldud tasuta. Sa oled valmis suur aega. -Kas See valmis mind? Liigutamine paremale mööda. Liikumine paremale mööda. Liikumine paremale mööda. Liikumine paremale mööda. -Ma Arvan, et sa parem tõmmata üle. -Jah söör. [Taasesituse lõpetamiseks] [APPLAUSE] DAVID J. Humala: See on CS50. Ja see on nädala lõpust 0, kuid algus ilus sõprus. Me oleme nii põnevil, et siin Yale'i ülikooli jaoks väga esmakordselt meie sõber Scaz ja Jason, ja Andy. Kõik 40 CS50 on TF ja CA on siin Yale'i. Ja teile kõigile. Ja tegelikult, see on ilmselt aeg mina-- [APPLAUSE] Niisiis, kuigi enamik loenguid on tõepoolest Cambridge sel aastal reaalsus on see, et disain ja väga teadlikult CS50, Ma arvan, et oleme lähenemas punktile tehnoloogiliselt ja pedagoogiliselt, Kui see võib olla hea haridus- kogemus suhelda mõned Kursuse materiaalset online. Tõepoolest, reality-- ja kui ma usun Selle philosophically-- on see, et loengud ei ole eriti tõhus vahend pakkuda üsna keeruline teave. Kindlasti üle tunni pluss kaua kestab aega. Ja tõepoolest iga paari minutes-- Mäletan ennast college-- sa Zone läbi korraks, te jätate mõned keerulised teema ja sa oled läinud päris palju järgmiseks 45 minutit. Ja reaalsus on see, et kas sa oled siin New Haven või Cambridge või kaugemale, lihtsus, millel võime peatada ja kiiresti edasi, kerida, hüperlink seotud ressursse, otsi täistekst ärakirju jms on võimalus, et Julgen öelda, et meie online üliõpilastele kaugemale New Haven, pakub neile võimaluse tõesti aru kontseptuaalne materjali, mida me tutvustada loengutes kõik parem. Aga lõppkokkuvõttes CS50, on õpilaste kogemused iseloomustab nii, nii palju poolt muidugi probleem komplekti, või kord nädalas programmeerimine projektide Muidugi on lõigud juhitud õpetamise stipendiaatide öösel tööaega eesotsas Kursuse assistendid ja õpetamine kaaslaste ja kõnealust sündmuste CS50 Puzzle Päev, CS50 on Hack-a-Thon on CS50 Fair, nädala lõunaid ja nii palju. Ja nii, kas sa oled siin uus Haven või tuning kaugelt, täna Cambridge, ja me näeme varsti jälle, reaalsus on see, ühe ja sama tasemega. Ja me oleme nii põnevil siin kõik koos täna. Ja nii on semestri lõpuks, kas siin või kaugelt hästi loodetavasti te kannate uhkelt õnneks ja võib-olla natuke leevendust, särk, mis annab tunnistust et te olete võtnud CS50. Nii et kui ei jätame ära kolmapäeval? Me vaatlesime arvutuslikke mõtlemist. Ja see on poole me destilleeritud infotehnoloogia juurde, vähemalt praeguseks. Aga me destilleeritud see veidi sügavamale vähemalt kolmest komponendist elemente. Sisendid, siis millised on Probleem me üritame lahendada? Väljundid, mida on vastata me loodame saada? Ja esindatus seal. Ja me ei ela siin pärast binaarsisu või isegi ASCII, ja nagu nii palju, kuid pigem enesestmõistetavaks et suudame esindada seda teavet, sest palju huvitavam osad need probleemid ei ole ainult sisendid ja väljundid, kuid algoritme mis lähevad selliste probleemide lahendamisel. Ja te võite tagasikutsumise teisel päeval, et me võttis üsna traditsiooniline mõiste otsin kedagi üles üsna suur telefoniraamat, või üldisemalt digitaalselt nendel päevadel, lihtsalt väga suur andmete hulk. Väga suur kontaktide nimekirja, kus palju nimesid tähestikuliselt järjestatud. Ja saime aru, et kui ma võiks läheneda sellele probleemile lihtsalt kasutades lineaarset approach-- lehekülg lehekülje, või isegi kaks tema juures AEG_ mõistsime et intuitiivsem algorithm-- lihtsalt selline jagades ja vallutavad probleem uuesti ja uuesti, ja again-- vähendamine poole võrra on iga aeg, andis meile selle rohelise tulemus. Ja see on nii palju ilusamana sest see näitab, et isegi kui see probleem muutub suuremaks ja suuremaks, nagu see on tänapäeval andmeid komplekti ja reality-- Facebook ja Google otsingu tulemused ning like-- teeb meie algoritm täita sama tõhusalt nende suurem hammustab nagu ta tegi isegi väiksema hammustab. Nüüd tekib küsimus, mida me saame tegelikult lahendada sarnaselt seda liiki intuitsiooni? Selline jaotus ja vallutavad? Noh, me võiksime teha midagi nagu see täna siin. Võiksime võtta käimist. Ehk nagu 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11-- ei kavatse olla kõik, et tõhus. Nii oodata, algkool. 2, 4, 6, 8, 10, 12, 14, 16, 18 ja nii edasi. Aga mida me teeme natuke parem? Ma olen päris kindel, et ma ei saa seda teha ise. Nii et kui Sa huumor meile lihtsalt hetk, tõime kaasa algoritmi, mis on just kolmeastmelise kuid see ei require-- kui te ei mind-- kõik meist püsti, Kui soovid. Niisiis, me kõik nüüd seisab, samm üks käesoleva algoritm on järgmine. Seisa ja määrata ise number 1. Nii et sel hetkel, sõna otseses mõttes kõik selles ruumis Loodetavasti mõtleb ise, aga kohmakalt, number 1. Nüüd samm kahe Selle algoritmi läheb kaasata järgmine. Teine etapp, paarideks keegi seisab, lisada oma numbrid kokku ja vastu nende summa on endale number. Quick meelerahu kontrolli. Mis number on igaüks mõtleb nüüd? Nii 2, välja arvatud ehk ühe, ebamugav, üksildane inimene. Kui meil on paaritu arv inimesed ruumis. Nii et üks inimene võib ikka olla number 1, siis hästi. Aga samm kolm siin, üks ja siis tuleb maha istuda. Teine peaks minema tagasi astuma kaks, ja kordan, et kui sa oleks. Nii et kui veel püsti, siis peaks olema nende seas, läheb tagasi astuda kaks. Jätka. Mõned inimesed veel püsti. Niisiis, kui veel püsti, paari kellegagi. Olgu, kahanev alla. Mõned inimesed veel püsti. Ma aitan neid vajaduse korral. Mäleta võti Buffee siin, on see, kuidas palju kiiremini see kui me arvestame. Vaatame. Võin aidata. Mis number on sa ikka mõtled? Sihtrühm: ma olen 44. DAVID J. Humala: 44, nii et kui edasi minna ja istuda. Mis number te silmas peate? Sihtrühm: 74. DAVID J. Humala: 74. Olgu, edasi minna ja istuda. Kes veel on veel püsti? 86. Ja on keegi veel püsti? Mis number? Kuulsin 67. Ja siis peal? 32. Keegi teine ​​veel püsti ja mõtlesin number? Oh, hi. Vabandust. Olen kohe tagasi. 42. Keegi teine? Sihtrühm: 47. DAVID J. Humala: 47. Kas keegi veel püsti kes ei ole arvestatud? Nii et lõplik inimeste arv toas mis on 497 istmed on-- mis kõik on filled-- on 390. Nii et see on suur. Peagi arutada mõiste on viga arvutiprogramm. Aga me tuleme tagasi, et enne pikk. Aga teoreetiliselt, milline võiks on juhtunud just? Nii et kuigi seal oli kolm suurt samme selles algoritmi igaühte nendest oli lihtsalt selline üks suur operatsioon. Ja seal oli see tsüklilisus, et see et kui sa olid veel püsti, sa hoida läheb samm 3-2, samm 01:57 samm 01:57. Aga mida hoitakse juhtub Iga iteratsiooni? Iga tsükli selle loop? Mis juhtub mujal ruumi? Mitte ainult sama asja, kuid mida juhtus pool sa oled? Istudes. Ja nii seal peitub selle ülevaate, palju nagu telefoniraamat näiteks et kui pooled olete istudes iga kord, probleem on alustades võibolla 400 inimest, siis 200 inimest, üle 100 inimese, Seejärel 50 inimest, ja nii edasi. Ja nii me nikerdama alla teooria üks inimene, mõtlesin koguväärtus kõigile. Nüüd Tegelikult mõned sotsiaalse dünaamika, ja mõned aritmeetika vigu võib kaasa aidata, et ülim viga. Aga teoreetiliselt kui ma oli endiselt lugedes ära, võttes mitukümmend samme, või sadu samme loota endid lugema toatäis 500 või nii inimesi oleks pidanud palju vähem samme, sest sa võid ainult jagada 500 ja 1/2 nii palju kordi. Ja nii nagu koos telefoniga Broneeri näiteks teisel päeval, ei meil midagi logaritmiline niiöelda kusjuures, kui me olime kõik tegutsevad üheskoos, ja ignoreeritakse Lisaks vigu, oleks meil saavutanud täpselt sellist sõiduaega? Nüüd oleks õiglane, millist petnud, in et ma võimendatud muid ressursse. Arvestades et see on lihtsalt üks minu Ma võimendatud sadu teid. Aga see võiks öelda olema Näiteks paralleelne töötlemine, või riigi kunsti väga moes kus arvutid tänapäeval on Mitme protsessoriga või rohkem tehniliselt, rohkem mitme südamikud ja saab tõeliselt teha mitu asja korraga, palju nagu sina kõik me teeme seal, paralleelselt. Aga meelde tuletada, et see, mida me Samuti tegi kolmapäeval oli püüavad tabada seda intuitsiooni ja vormistama seda koodi. Midagi pseudo-koodi. Ja tegelikult, ja ma loodan, et sa andeks, see on nagu 80 kraadi siin. Nii et ma lähen seda maha natuke. Mis ma arvasin, et me tahaks teha, on üleminek Nüüd rakendus, mille me jälle tegelema publik, aga kirjutada programm inglise keeles nagu süntaks, kellega Selle probleemi lahendamiseks siin. [Video taasesitus] -See Maapähklivõi tarretis aega. Maapähklivõi tarretis aega. Maapähklivõi tarretis aega. Way ya! Way ya! Way ya! Way ya! Nüüd on teil minna! Palun! Palun! Palun! Maapähklivõi tarretis! Maapähklivõi tarretis! Maapähklivõi tarretis! Maapähklivõi tarretis! Peanut, maapähklivõi tarretis! Maapähklivõi tarretis! Maapähklivõi tarretis pesapallikurikas. [Taasesituse lõpetamiseks] DAVID J. Humala: --that video, kuid see on veidi sõltuvust, kui mitte natuke tüütu. Aga et seda teha, ma arvasin, et see, mida me suudaksime teha, on proovida kirjutada programm koos, mille eest me peame kolm vabatahtlikku. Kas oleks mugav kaamera ja internet. Sam, tule üles. Purple särk, siinsamas, tule üles. Ja siin, las ma minna veidi kaugemale tagasi. Crimson ja sinine särgid, tule üles. Perfect. Tule nüüd. Tule üles, tule üles. Ja mis su nimi on? Erica. David, nice to meet you. Kui soovid kasutada seda istme siin. See on Sam. Mis su nimi on? Antonio. Antonio, nice to meet you. Erica ja Sam, kui soovite tahaksid olla istme siin. Mida me oleme tulema valmistatud, kui need kutid on avastanud, on koostisosi, mis teha maapähklivõi ja tarrend sandwich. Nüüd see võib olla midagi, mis te võtate väga anti. Aga andsime iga Meie kolm vabatahtlikku siin-- kaks vabatahtlikku ja Sam on siin korralik leivapätsi iga, plaat, nuga, purk marmelaad või moos, ja purk maapähklivõi. Ja eesmärk käepärast praegu saab olema nende kolme teha maapähklivõi ja tarrend sandwich. Aga mida me teeme on oodata audience-- sest te kõik kindlasti teada, kuidas seda teha see nii hästi reality-- hakkavad meile samm-sammult juhiseid. Pseudo-koodi, kui soovite. Nii et ma mängida rolli kirjutaja siin. Ja mul on natuke to-do list, ja nii nagu iga saate, ühekaupa, hüüab potentsiaalne juhendmaterjalid, ma kirjutage see, korrake seda nii nagu vaja. Ja siis poisid ei kavatse teha maapähklivõi ja tarrend sandwich ainult seda, mida sa ütlesid. Nii arvavad endid arvutite. Sa võid ainult seda, mida sulle öeldakse. No eeldused, ilma küsimusi. Sa lihtsalt pead tegema seda. Seega, kes sooviksid ohustada esimene juhendamine tegemise PBJ sandwich? Rõdul on. Sihtrühm: Avage kott leiba. DAVID J. Humala: Ava kott leiba, kui soovite. Vaatame. Olgem korrata, ja saada natuke täpsemaks. Hea võimalus alustada küll. Teine etapp, keegi teine. Nüüd keegi tahab vabatahtlikult. Teine etapp, ees. Sihtrühm: Avage sisemine kott leiba ka. DAVID J. Humala: Ava Sisemine kott leiba ka. Hea, me õppimist. Natuke täpsem. Lähme seda tööd. Jah, roheline särk. Sihtrühm: [kuuldamatu] DAVID J. Humala: viilu leiba. Eemalda ettevaatlikult kaks viilu leiba. See on hea. Samm neli, keegi teine? Üle siin, jah? Sihtrühm: [kuuldamatu] DAVID J. Humala: Koht leiva taldrikule. Samm viis? Samm viis, jah? Sihtrühm: [kuuldamatu] DAVID J. Humala: Peal of-- oh, käsi. Aseta käsi peal maapähklivõi. Kas see, mida ma pea? Sihtrühm: Jah, ja keerata. DAVID J. Humala: And-- ütlen veelkord. Sihtrühm: [kuuldamatu] DAVID J. Humala: Ja panna kaane kõrval maapähklivõi. Kergelt asetage käsi top maapähklivõi, ja keerata, ja pane kaas kõrval maapähklivõi. OK, samm kuus. Samm kuus, keegi teine. Jah? Sihtrühm: [kuuldamatu] DAVID J. Humala: Ütle seda uuesti. Sihtrühm: Korrake viis uuesti. DAVID J. Humala: Ja korrake viis uuesti, mis läheb luua natuke probleem Nüüd, kui me teeme seda samm-sammult. Nüüd läheme tagasi astuma viis. Kergelt panna käe peal maapähklivõi ja keerake ja pane kaas kõrval maapähklivõi. Seejärel võta maapähklivõi ja korrake viis uuesti. Nii me alistada lõputu silmuse, kui soovite. Samm seitse, keegi teine. Jah, on tagasi. Sihtrühm: [kuuldamatu] DAVID J. Humala: --on peal teisi. Sihtrühm: [kuuldamatu] DAVID J. Humala: On Teisalt teiselt top. Kas soovid lihtsalt tulla siia? Kuidas lõpetada õpetust? Mis ülejäänud õpetust? Sihtrühm: ignoreerimine, et osa. DAVID J. Humala: ignoreerimine, et osa. Alustame üle. Samm Seitse. Sihtrühm: [kuuldamatu] DAVID J. Humala: Haarake koos vastase hand-- see on hea. See on tegelikult hea. Sihtrühm: [kuuldamatu] DAVID J. Humala: Ja plastikust jar-- Sihtrühm: [kuuldamatu] DAVID J. Humala: Ja twist-- Sihtrühm: [kuuldamatu] DAVID J. Humala: kaks sekundit. Lihtsalt avage maapähklivõi purk. Ma loodan, et te andestate. Nii Oletame saime seal. Avage maapähklivõi purk. [APPLAUSE] DAVID J. Humala: Samm kaheksa, lähme. Samm kaheksa, jah, on tagasi. Sihtrühm: [kuuldamatu] DAVID J. Humala: Hea. Samm üheksa, jah? Sihtrühm: [kuuldamatu] DAVID J. Humala: --out kohta maapähklivõi purk. And-- ja mida? Sihtrühm: [kuuldamatu] DAVID J. Humala: Ja pane nuga tagasi maapähklivõi. Etapp kümme. Etapp kümme. Sihtrühm: [kuuldamatu] DAVID J. Humala: Pane nuga välja ja eemaldage tihend. Nice. Off maapähklivõi. Olgu, samm 11. Sihtrühm: [kuuldamatu] DAVID J. Humala: OK, hall arvutis järgida sinine või punane arvuti. Väga hea. [APPLAUSE] DAVID J. Humala: meid koju viiks. Paar rohkem samme. Mis edasi? Sammud 12. Samm 12. Jah? Sihtrühm: Pane üks viilud leiva õrnalt üks käsi. DAVID J. Humala: Üks käsi. Ja siis, samm 13. Jah? Sihtrühm: [kuuldamatu] DAVID J. Humala: --on viilu leiba. Väga hea. Päris hea. Samm 14, yeah. Sihtrühm: tagasivõtmiskäsu 13. DAVID J. Humala: tagasivõtmiskäsu 13. Jätkame kapslites. See on 100- sammu programmi, aga me olime samm 15. Jah. Sihtrühm: [kuuldamatu] DAVID J. Humala: 7 kuni 13, kasutades želee, sest need läksid nii hästi. Korrake samme 7 kuni 13, kasutades kapslites. Nii haarata alumises pooles marmelaad jar ühe käega peal. Teiselt poolt on Top, ignoreerides seda osa, haarata vastupidiste käed, kaane ja plastikust purgi allosas, ja väänata kaks sekundit. Seejärel avage tarretis purk. Ja lõpuks, proovime anna meile midagi söödavad. Etapp 16. Miks me ei jäta seda seal. Tänan sind nii palju, et Meie kolm vabatahtlikku. [APPLAUSE] Meil on väike CS50 stress palli sulle. See saab olema sandwich Aga-- mis siis mõte oli, kaugemale, millel on natuke nalja algoritm? Kuid reaalsus on see, et isegi siis, kui sa programmeerimine arvuti, sa pead olema super täpne. Nagu keeruline või ähvardava kui oma arvutist võib väga hästi olla, et sa kell Vähemalt siis, kui midagi läheb valesti, reaalsus on see päris loll seade, mis leiutati meile inimestele, ja seda ainult alagrupis mida me do-- mõnikord kindlasti faster-- kuid ta ei tea, kuidas teha oletusi. See ei tea, kuidas olla sama lainepikkusega kui sina. See ainult ei täpselt mida sa öelda seda. Ja siis saad tabas, ehk kui hakkame kirjalikult tegelikku koodi koos Esimene probleem komplekti ja kaugemale, kui lihtne on teha oletus näiteks inimesel, ja ei arva ma pean hakkama Sellisel juhul või mis nurgas juhul, niiöelda, et võib väga hästi tekkida, kui näiteks Sam oli ainus squeezable purk marmelaad, samas kõik teisedki olid mõned klaaspurgid nagu hästi. Nii enne kui me pöörame tähelepanu teatud tegelik kood, lubage mul tutvustada Muidugi peadesse siin Yale'i. Meie sõbrad Scaz, Andy ja Jason tulla ja tere öelda. [APPLAUSE] SCAZ: Me kaotasime Jason ajutiselt. Tere taas, kõik. Minu nimi on Scaz. Olen õpetanud Yale'i alates 2001. aastast. Ja kui ma ei õpetamine, minu uurimistöö on robootika ja tehisintellekti. Ja teadet, et mul on täna on, et alustades paari nädala me ei kavatse olla tuues mõned lisamaterjale, et CS50 rääkida umbes luure tarkvara. Me räägime, kuidas kohtades nagu Netflix ja Hulu võib soovitada filme, mis võiksite vaadata. Kus me räägime, kuidas Juht-vähem autosid tegelikult töötavad. Ja me oleme võimelised jahvatatud neid asju mõisted et sa õpid Selle klassi täna. Kuna kõik need asjad on ehitatud sama sihtasutus. Ja see on, mida see seeria uurib. Nii et ma tõesti otsin huviga rohkem sa kõik, ja sa lähed, et saada vaata veel kõik meist väga kiiresti. Las ma siis tutvustada Jason. Jason: Tere kõigile. Minu nimi on Jason. Ma kahjuks läks Harvard undergrad. See läheb aina lõigata välja tegelik vool. Ja nüüd ma olen siin lektor arvutiteaduse osakonna. Ja ma aitan käivitada käigus koos Scaz, David ja Andy. ANDY: Hei kutid. Minu nimi on Andy. Ma olen tegelikult ainus Yale õpilase laval just nüüd. [APPLAUSE] Ma olen Berkeley College, algselt Solon, Ohio. Ja ma olin üks neist lapsed kus, kui ma tulin Yale, Ma tõesti arvasin, et ma ei oleks kunagi pead vaatama mitmed kunagi. Ja siis sain aru, et teil on vaja nii teaduse ja QR krediiti lõpetaja. Ja nii minu uustulnuk kevadel võtsin klass, CS, intro CS klassi siin Yale'i. Ma olin nagu, et see on nagu tegelikult päris lahe. Ja kuigi ma tegelikult sattus kuulutatakse ülemaailmne asjade suur, oskused Õppisin CS ja programmeerimine on nii rakendatav mistahes valdkonnas sa otsustad seda teha. Ja töötajad siin Yale'i, me oleme olnud nii raske töö valmistuda kutid. Ja me ootame kõik punktis ja tööaega. Nii et jah. [APPLAUSE] DAVID J. Humala: Aitäh. Nii lihtsalt enne klassi algust meil oli võimalus jalutada campus koos mobiiltelefon ja võta mõned selfies video kujul tõesti minu esimene ekskursioon Yale'i ülikooli siin. Ja nii me arvasime me tahaks jagada töötlemata Lõigatud täpselt seda Scaz ja Andy ja Jason võttis mind umbes campus. [Video taasesitus] [Sireenid] -David. -Tere Yale. -Hea sind näha. -Tore sind näha. -Kas Me läheme ekskursioon? Vaatame minna tuurile. -Road Tour. -See Märk on seal olnud juba mõnda aega. -Whah, CS50. -Hurry! Mine, mine, mine, mine. Sa peaksid [kuuldamatu] Harkness Tower. -Ja Me nägime, et paar korda. [APPLAUSE] -Vaata Läbi jalgrattaga! Ahh! Hi Frank. -Mis Üles, poisid? -Kuidas sul läheb? -Hea sind näha. -Tere Video. Ärge käituge liiga põnevil. -Ma Armastan Silliman. Ahh! -See On olnud umbes kolm tundi pärast Jason oli jäätis ja Nutella. Nii on meil lõpetada tagasi Silliman jaoks natuke. -See Ei ole isegi [kuuldamatu] veel, just asjaolu, et neil on see siin on nii hämmastav. Dude, seal on Nutella igal sööki. -On Oli eelmisel aastal ka. Jah. Ütle, palju Yale siiani. Aga ma nüüd, et TD seal. Ja seda peetakse väljaspool kooli. -Here Meil ​​gooti arhitektuuri. Maailmakuulus. Meil on veel mõned gooti arhitektuuri. Ja ehituse ja rohkem gooti arhitektuuri. Tere. See on koht, kus meil oli lahtiolekuajad Teisipäeviti läbi neljapäeviti Sigatüükas, kui [kuuldamatu]. -Hästi. Ongi tuuri. Meil on Yale'i ülikooli Law School, kus Tänapäeva loeng hakkab toimuma. Olgem pea. [Taasesituse lõpetamiseks] DAVID J. Humala: Ja mis viib meid nüüd siin. Nii et seni oleme olnud keskendudes pseudokoodi, mis on see inglise moodi süntaks. See ei ole ettenähtud spetsifikatsioonile. See on lihtsalt te kasutate mõnda intuitiivne keele kui sa tahan selgitada, mida sa teha tahad. Aga alustagem nüüd üleminek koodi, kuna enamik inimesi ütleks. Aga täpsemalt midagi tuntud lähtekoodi. See on keel, et inimesed kirjutada, et arvutid ultimately-- võimalik, et pärast mõningaid arv steps-- lõpuks aru nii, et tean, kuidas midagi teha. See nägid pilguheit see ilmselt kolmapäeval. See on näide, et uskumatult, underwhelming kui joosta lihtsalt ütleb "tere." Ja see on kirjutatud keeles nimetatakse C, mis on lauseehituslikult väga sarnased et palju teistes keeltes et te ei tea, kuid olete kuulnud nagu Java, ja C ++ ja Python ja Ruby, jms ning tõepoolest, meiepoolsete kulutavad palju semestri kasutades C, ja siis poole lõppu semester, toetudes seda, ja kehtestamast mitmeid teisi keeli. Neist PHP ja JavaScript, andmebaasi keeles nimetatakse SQL. Aga C, mida me peame Selle alt üles mõistmist kuidas täpselt arvutite tööd, mida nendega teha saab, ja kuidas saab probleeme lahendada kõik tõhusamalt sellelt kihilisus, et me arutasime Kolmapäeval, ja seistes õlgadele teised. Aga rohkem sellest tulla. Täna vaatame lihtsam keskkonda, kuid täiesti identsed keskkond tuntud Scratch poolt Meie sõbrad MIT Meedia Lab. See on graafiline programmeerimiskeel, Scratch, millega saab tõmmata ja tilk asju, nägema puzzle tükki, mis ainult blokeeringu, kui ta teeb loogiline või programmiline mõtet teha. Aga see läheb meile võimaluse on vestlus kõik Sama programmeerimine põhialuseid, et mõned teist võiksid teada juba, et paljud teist ei pruugi tea midagi ilma saada takerdunud ausalt, on intellektuaalselt ebahuvitav süntaks semikoolonid ja sulgudes, ja hinnapakkumisi jms. Kõik, mis, varase kohta, on häiritud mida on huvitav ja tõeliselt kasulikke ideid. Võtame kiire Pilk keskkond siin, nii et sa tead, mida ootab. Ja tegelikult seas mänge oleme mängida on vähe kirjutatud programme poolt CS50 enda endised õpilased. Üks neist, mina tulen selle ühe kirjutatud Graduate School minu jaoks. Kui ma võiks võtta ühe vabatahtliku kes on valmis mängima Mängu jaoks väga esmakordselt. Muidugi. Tule üles. Mis su nimi on? Sihtrühm: Angela. DAVID J. Humala: Angela, tule üles. Nii Scratch on olnud läbi paar aastat. Ja kui ma olin lõpetanud kooli, Olin rist registreeritud MIT, võttes professor Mitchel Resnick on Muidugi haridus tehnoloogiaid. Ja me olime üks esimesi õpilased maailmas tegelikult beta test Scratch. Ja minu projekt oli, mida Angela Nüüd on lahkelt vabatahtlikult mängida nimega Oscartime. Nii et ma lähen edasi minna ja topeltklõps ikoonil siin. See saab avada programmeerimine keskkonda, milles me varsti sukelduda. Ma lähen täisekraani seda Angela siin. Ma lähen tabanud roheline lipu hetk. Ja siis kogu palju prügi läheb kukuvad taevast. Ja sa lähed hiirega siin tegelikult lohistada prügikasti arvesse Oscar prügikaste. Nii et kui sa tahad minna ja klõpsa roheline lipp, mäng algab. [Muusika mängib] Oh, ma armastan prügikasti. Midagi määrdunud või luitunud või tolmune. Midagi narmendav või mäda, või roostes. Jah, ma armastan prügikasti. Kui sa tõesti tahad näha midagi väärtusetu, vaata seda. Mul on siin kets see on räbaldunud ja kulunud. See kõik on täis auke omab ja paelad katki. Kingitus minu ema Päeva ma sündisin. Ma armastan seda, sest it's-- DAVID J. Humala: --green nendel päevadel lihtsalt viskamine kõik prügikasti. Ja mis siis üks CS50 enda töötajad did-- Jordan, kes sa võiksid kohtuda today-- on tegelikult uuendatud see tänapäeva korda. Ja nii lubage mul avada remix asemel Angela. Ja me mängida asemel Mõne hetke, kus praegu oled läheb on otsustada vahel kas viska midagi prügikasti, või taaskasutada või kompostida ta. Nii et natuke surve teil saada Selle õiguse ees oma 392 kuni 497 klassikaaslastega siin saalis, Kui soovid. [Video taasesitus] [Muusika mängib] Oh ma armastan prügikasti. Midagi määrdunud või luitunud või tolmune. Midagi narmendav või mädanenud või roostes. Jah, ma armastan prügikasti. Kui sa tõesti tahad näha midagi väärtusetu, vaata seda. Mul on siin kets see on räbaldunud ja kulunud. See kõik on auke täis ja paelad katki. Kingitus minu ema Päeva ma sündisin. Ma armastan seda, sest see prügikasti. Oh, ma armastan prügikasti. Midagi määrdunud või armetu, või tolmused. Midagi narmendav või mädanenud või roostes. Jah, ma armastan prügikasti. Siin on veel mõned mädanenud kraami. Mul on siin mõned newspaper-- [Taasesituse lõpetamiseks] DAVID J. Humala: --are tegelikult kompostitavad. Aga tänud meie vabatahtlikele, Angela. Meil on stress palli teile ka siin. Nii aitäh. Nii see oli minu kirjutatud. Aga nüüd üksteise tegelik endine õpilane kes rakendas, mis on mängu. Kõik selles keeles nimetatakse Scratch, et me varsti Tõmmake kihti. Aga kui me tahaks like-- kuidas umbes teise vabatahtliku? Õigus. Tule üles. Mis su nimi on? Glance? Lance. Lance, tule üles. Meeldiv tutvuda. Tule sel viisil. Nii et see võiks olla teema tuttav mõned teist. Aga näete ka, et ei saa olla interaktiivsust, kusjuures siis võiks tegelikult olla rolli iseloomu ringi liiguvad. Meeldiv tutvuda. David. Ma annan teile, Pikachu. Juhendis on umbes tulema ekraanil. Aga lühidalt, sa lähed tahad püüda maitsev kraam, ja vältida pomme ja muid asju. Mis kursorid täielikult. Nii vajuta tühikut. -Pikachu. DAVID J. Humala: Catch kraami vasakul, ei saagi asjad paremal. [Muusika mängib] Nii et üks viimane siin. Kui meil oleks üks rohkem vabatahtlike siin. Me mõtlesime, et tahaks uuesti midagi algus-- kollane shirt-- alates kolmapäevast. Mis on Sinu nimi? Mary, tule üles Maarja. Ja meenub, kolmapäeval tutvustasime mõiste binaarne, ja binaarne sibulad. See on tegelikult nüüd rakendamist, et sama liides et meil oli iPad koos valguses pirnid, kuid siin digitaalselt muudetud. Ja mitte teha stress ball-- meeldiv, David. Tõime mõne kerge sibulad Cambridge. Kui saate, klikkides neid sibulad need sisse lülitada ja välja, tulla binaarne esindatus öelda 256. Ja te näete, et keskel, praeguse ühtivad. Nii et üks on peal. Nii vasakpoolsema natuke on. MARY: Jah, [kuuldamatu] DAVID J. Humala: Noh, seega on meil Lihtsalt-- oh. Nii et see on 128 kolonni. Nii et me kuni 128. Saime saada 256. Ja saate käpard kohta ja välja, ei ole suur asi. Või saab löögi, et 128 mitu korda kui soovid. Hea küll, hea. 24. Jah, lähemale. Tihedam! Oh, milles probleem siis? Mis on küsimus? Mida me siis peame Selle probleemi lahendamiseks? Seega peame teise natuke. Ja see on täiesti mõistlik tegelikult, eks? Kui soovite loota arvust 1-2 3- kuni 4-5, 6, 7, 8, 9 tegelikult rulli üle 10, sa oled läheb vaja veel natuke. Nii saab tegelikult tagasikerimine siin, ja tulla with-- mis oli ilmselt pidi olema loodud. Sa ei saa teha 256 vaid pirn. Niisiis, kuidas lihtsalt number 50? Number 50. Suurepärane. Suur aplaus Mary ja tema samuti. Aitäh. Nii et see topic-- tahtlik kui et was-- tegelikult korduda. Suurim väärtus, mida saab esindavad kaheksa bitti või üks bait, on tõesti 256. Aga ei, kui hakkate lugedes 0, nagu me Tundub, et hoida seda, võttes Kõigil neil bitti välja. Aga nüüd lähme sukelduma aluseks rakendamine selles keskkonnas, ja tease peale mõned neist ideedest. Nii et hetkel me parasjagu näha paar erinevat programmeerimise põhialuseid. Esimene neist me kutsume avalduse. Sorteeri tegusõnu, kui soovite. Tegevused. Asjad, mida peaks tegema. Ja ühel hetkel sa näed plokid, mis näeb välja selline. Ütle "tere," näiteks. Või oodake üks sekund. Või mängida heli mjäu. Ja tõepoolest keskkonnale mis me kavatseme seda tegema nimetatakse Scratch. Ja kui ma tõmba Scratch ilma eelpinguti tegelikku koodi Võtame kiire pilk see kasutajaliides, nii rääkida. Kontroll, kellega meil suhelda. On the top vasakule siin on ekraan, alla menüüde meil on laval, nii rääkida. Nii Scratch on see, mida me nimetame Sprite. See on märk. Ja ta saab kontrollida kirjutamise programmid tema vastu. Ja siis ta saaks liikuda üles ja alla ja vasakule ja paremale selles keskkonnas, mitte ainult liigutades hiir, kuid programmiliselt. Ma ei ütle talle Kõnnid, jalutuskäigu vasakule, üles, alla vms. Ja ma ei saa sinna muid haldjaid või tegelased samuti. Tõepoolest, põhjale siin on koht, kus näete oma nimekirja haldjaid. Praegu ma lihtsalt pean üks, kuid ma ei saa luua rohkem, ja need ilmuvad täpselt seal. Nii et kui teil kerida hetkeks, nagu Oscartime-- näiteks Oscar, Vasakul prügikasti saab, oli sprite. Ja asi keskel, siis ringlussevõtu bin, oli teine ​​sprite. Ja komposti bin oli teine ​​sprite. Ja iga tükk prügi või recyclables et oli kukkumise taevas Samuti on sprite, millest igaüks programmeeritud individuaalselt. Kuidas programmeerida? Noh, siin on õige servas on skriptid ala. Ja see on koht, kus saame lohistada puzzle tükki. Nädala pärast, see saab olema kus me samaväärselt kirjutada koodi koos mitme klaviatuur, kuid täna saad lohistades puzzle tükki, siis paletti, mille saavad kõik leiate siit keset. Tõepoolest, keskel Siin seal on terve hunnik kategooriate puzzle tükid või plokke. Üks on seotud liikumise, vaatame, heli, pliiats läheb üles ja alla, andmed, ürituste kontrollida. Mitte päris kindel veel mida kõik need tähendavad, aga näete, et nad pole kenasti kategoriseeritud. Ja kirjutada programmi Scratch, teeme just nii. Ma hakkan ära all Sündmused ja lohista see siin. Kui roheline lipp klõpsatud. Nüüd, miks see üks? Noh meelde tuletada, et meie vabatahtlikud tulid, esimene asi, ma või nad ei olnud käsku, et roheline flag üleval paremas nurgas. Ja see tähendab lihtsalt, et programmi käivitada. Nii et kui see üritus toimub, Mida ma tahan teha? Ma lähen alla Paistab, ja ma lähen tegema, "tere öelda." Ja ma lähen muuta ja öelda midagi "hello Yale." Ja nüüd ma lähen suurendamiseks välja, kliki roheline lipp, ja voila, olen kirjutanud programmi. See pole veel kõik, et põnev lihtsalt veel, kuid see on täpselt, kus iga nende autori alanud nii Pikachu ja binaarne sibulad ja Oscartime, ja nii palju rohkem näiteid. Hakkad super lihtne ja siis hakkad kiht, ja lisada funktsioone ja funktsionaalsust. Millised on need kihid läheb koosnevad? Noh, pärast avaldusi, siis me ka on asju, mis on veidi rohkem fancily nimetatakse Boole'i ​​Expressions, pärast keegi nimega Bool. Ja Boole'i ​​väljendus on lihtsalt väljendus, mis on kas tõene või väär, jah või ei, 1 või 0. Iga vastanduvat niimoodi. See on kas tõene või mitte. Aga me ka näeme need, mis võiks välja näha selline. Nii näiteks on hiire alla? Nad on omamoodi küsimused, kui soovite. Hiir on kas alla tõsi või see ei ole, vale. 1 või 0, kui soovite, kipub olema kaardistamine. Tõsi on 1, vale on 0. Noh kuidas sellest vähem? Või nii, on see väiksem kui see? See on küsimus kehvasti. Ja kui sa paned kaks numbrid on, kas x saab olema väiksem kui y või võrdne y, või suurem kui y, kuid see plokk me näeme, on lihtsalt vastad küsimusele, see on väiksem kui? Siinkohal võiks näha midagi sellist. Puudutades hiirekursoreid. Nii Scratch, võite küsida küsimus, on Sprite puudutades hiirekursori? Teisisõnu, on kursor Uusehitise üle kork, või samaväärne? Me näeme anding asju koos. Võite küsida kaks küsimust, ja veenduge, et mõlemad sulle jah või tõsi vastuseid enne otsuse tegemise midagi teha. Aga siis kuidas sa teha otsuseid? Noh, meil on need tingimused. Ja me nägime seda meie näiteks telefoniraamatust. Vaadates vasakule või õige Mike Smith. Ja sellises seisukorras, siis midagi potentsiaalselt Kui Loogiline avaldis on tõene. Ja tõepoolest, märkate kujundeid nüüd. Seal on see kohatäide kohe õhuliini kus saame fit-- kui ma tagasi kerida ühe slide-- et kuju. See ei ole päris sama suurusega. Ja tõepoolest, näete, et Scratch suurust muuta asju dünaamiliselt sobib puzzle tükki, kuid kuju on see, mis on tähtis. See asi välja näeb seda ja tõepoolest see on umbes sama kujuga mis peaks sobima seal. Ja kui me tahame midagi teha Nii või teisiti, kui muidu, meil on see puzzle tükk Scratch samuti. Nüüd oletame, et sa tahtsid teha, kui muidu, kui muidu. Teisisõnu, et kolmeastmelise teelahkmele. Noh, mida saate teha, lihtsalt pilku heites seda? Ma ei võta seda puzzle tükk, ja see ei tundu sobivat, kuid jällegi Scratch läheb uuesti suurus kenasti meile. Ma võiks alustada kiht need asjad kokku. Nüüd on mul kolm-way kahvel, kui see on tõsi, seda teha. Või kui see teine ​​asi on tõsi, minna seda teed, muidu läheb see muul viisil. Ja Muppet Movie, siis teelahkmele, kui nii võib öelda, vahel Yale või Stanford, oli just nii, just kaks tingimust. Kas minna seda teed, muidu läheb nii. Noh, silmad on olemas ka programmeerimine. Ja me oleme kasutanud neid juba klassi ja pseudokoodi koodi ja kindlasti nendes Scratch programmid igavesti. Scratch on see puzzle tükk, mis lihtsalt lase sul midagi igavesti. Ja mõnikord sa tahad midagi igavesti. See ei pruugi viga, see on sest sa tahad kella edasi minema, või mäng hoida mängides. Või saab määrata piiratud arvu samme, nagu see korduvus plokk siin mis kordub midagi 10 korda. Meil on võimalik valida muutujaid, siis kohe näha. Ja muutujad, sarnase sisuga algebra, nagu x või y või z. See on midagi sümboolset, mis mahutab mingi väärtus, mõned tükk informatsiooni, et te võiksite mäleta hiljem. Parim näide sellest oleks mäng, kus teil on skoor, nagu Pikachu. Mitu tükki kooki ja tühi-tähi sa saagi? Hästi, mis võiksid olla muutuv nimetatakse skoor mis algab 0. Ja siis iga kord kui me püütud käkitegu või kommid vms, see läheb suureneb. Läheb lisatakse ühekaupa. Ja nii muutuja salvestab kaitstava teabe niimoodi. Siis on massiivid, ja me tuleme tagasi need nädal või kaks korda, kuid massiivi on selline nagu inventari või koolikott, sees millest saab panna virtuaalne asju. See võimaldab salvestada rohkem kui üks osa teabest. Ja mis võiks olla kasulik Kui mängus, sa oled omamoodi jalutamas korjamine asju. Ja võib-olla sa tahad hoida Kõigil neil tükki kooki ümber, ja mitte ainult süüa neid üksteise järel. Ja siis seal on Kasvataja konstrukti tulen tulevad väljakutsutud funktsioonide või menetlusi. Ja kuigi me ei kavatse kiiremini siin, siis me näha, et need on väga loomulik lahendus probleemidele et me ei kavatse sattuda. Kuna meie saated algavad üha suurem jagame hakkate märkama mustreid kood, mis me kirjalikult, puzzle tükki me oleme lohistades. Ja niipea, kui te märkate ise teeme midagi ikka ja jälle, või mis veel hullem kopeerimist ja kleepimist programmeerimine kood, mis olete kirjutanud, see on ilmselt võimaluse tegur välja mida iganes sa hoida kopeerimine ja kleepimine, ja panna see midagi, mida nimetatakse "funktsiooni." Aga rohkem neid palju täpsemalt enne pikk. Ja siis on veel Kasvataja funktsioone. Neile, mugavamaks, või võttes APCS või samaväärne, Scratch tegelikult toetab asju nagu niidid ja üritused ja palju muud. Nii aru, et see on üsna kõrge lagi, kuigi see on ka väga laialt kättesaadav inimesed kes on kunagi programmeeritud enne. Nii tõesti, võtame pilk kell lihtsa programmi või kaks. Me juba vaatasime, kuidas me Võib öelda tere koos Scratch. Lubage mul minna ja avada natuke huvitavamaks programmi et ma kirjutasin eelnevalt. Ja see on nn Pet Cat. Kõik need programmid on saadaval CS50 veebisaidil. Tõepoolest, juba olemas. Nii saad laadida neid ja nendega mängida, ja Ülesanded 0, mis on ka muidugi kodulehel sa julgustada käima läbi nende. Ja pealegi, meil on arvu walk-through videod Internetis, kus ma ja CS50 meeskond tõeliselt kõndida läbi iga nende näidete juures palju aeglasemas tempos, väga kiire forwardable, või rewindable tempos, nii et saab kõndida läbi nende oma vabal ajal samuti. Nii et siin on Scratch vasakul. Siin on programm õigel et ma olen juba eelnevalt tehtud. Nii et lubage mul suumida seda. Ja kas keegi inglise, teades mida sa tead, vaid on nüüd kuidas Scratch tööd, justkui öelda inglise fraasi või lauset, Mida see programm ilmselt teha? Jah, oranž särk. Sihtrühm: [kuuldamatu] DAVID J. Humala: Jah, kui teie kursor on Scratch kass, mängida kräunuva heli. Aga pange tähele, kuidas me väljendame seda. Seal on ilmselt loop seal igavesti. Ja siis seal on seisukorras, kui väljendus. Üheskoos mida need tähendavad? See tähendab seda programmi on lihtsalt alati töötab, ja see on lihtsalt alati ootamas ja vaadates ja kuulates minu liikuda minu hiir kass. Sest iga kord, kui ma seda teen, kui pakute, siis läheb seda teha. Lubage mul alustada programmi. Miski tundub olevat juhtub, aga märgata, kuidas see on esile tõstetud nüüd on kollane joon. See tähendab lihtsalt, see töötab. Ja kuna seal on igavesti loop, see on ikka töötab. Nii et lubage mul liikuda minu kursor Scratch. [MEOW] [MEOW] Ja kui ma seda ära, [MEOW] nüüd see peatub, kuid programmi ikka töötab. [MEOW] Ja nii jumalik. [MEOW] Nii saab avada veidi rohkem arenenud Näiteks nimetatakse Ära lemmiklooma Cat. Ja nüüd vaatame, mis juhtub siin. [MEOW] näugumine. Nii et see on natuke auto piloot, kui soovite. Pet kass. Huvitav miks. [Roar] [MEOW] Nii et kuidas see toimib? Noh, saad mingi põhjus läbi intuitiivselt, võibolla. Aga vaatame tegelikku koodi. Nii jälle, kui roheline lipp klõpsad, seda igavesti. Mida sa tahad teha igavesti? Noh, kui liigutav hiir pointer, siis mängida heli, mis on ilmselt nn Lõvi 5, mis on sees selle projekti teine mängida heli Mjäu, ja siis ootama kaks sekundit, et et see ei ole meowing lakkamatult. Tegelikult saab väga kiiresti alustada tüütama ennast ja oma toakaaslased. Olgem blokeeringu. Ja teate, mis on tore Scratch. Asjad lihtsalt selline drag ja tilk ja blokeeringu. Nii uuesti, siis see kasvab täita, mida sa tahad. Aga kui ma eemaldan selle, ja siis hit mäng, [ARVUTI Laik SOUND] --it on selline otsa komistamine ise, sest see on sõna otseses mõttes teed, mida ma räägin. See ütleb igavesti mängida seda heli, kuid Ma ei anna seda võimalust lõpetada. Ja nii, et oleks viga. Ja sellepärast me pidime see asi siin nüüd. Nii saab tegelikult alustada scratch-- omamoodi pun veidi intended-- kus meil on nüüd kass liikuda. Nii et ma teen seda lennult. Ma lähen suumida siin, just saada mulle alanud sündmused. Ja roheline lipp klõpsatud. Ja seal on muid viise alustada skripte. Me läheme hoida lihtsa siin. Ja nüüd ma lähen käia ja minna kontrolli all. Ja jälle, kui te unustate, kus asjad, klõpsake lihtsalt ümber, ja lõpuks leida neid uuesti. Nii et ma tahan igavesti teha mida? Ma tahan kasutada motion block et ma tean, on olemas, liikuda 10 sammu. Vaatame, mis juhtub siin, kui ma mängida seda mängu. Õnneks see ei lähe liiga kaugele. Ma ei saa ikka omamoodi haarata teda saba ja tõmba ta tagasi. Aga programm on ikka töötab, nii ta on selline võitlus mind. Aga see oleks omamoodi tore, kui ma tinglikult kinnitada seda koodi. Sest see on Mitte-- tegelikult on see tõesti ei ole lõbus mäng kõigile, olenemata vanusest. Nii proovime parandada seda võttes mingi tingimused. Nii et ma lähen alla Juhtimine ja siis, kui. Mulle meeldib see mõte. Nii et pärast liigub 10 sammu, kui-- lase mul tunda, kus ma olen. Ma lähen alla Sensing, ja siis tundub võin minna siin. rida kuju vastet. Suurus ei ole, kuid see on läheb kasvama täita. Ja nüüd on see natuke menüü. Ja nüüd hiire pointer-- ma ei tahad hiirt, ma tahan serva. Nii Scratch on piisavalt targad, et teada, kui sprite on liigutav serva. Mida ma tahan, et ta tegelikult teha? Lubage mul minna ja muuta algatusel. Tead mida? Ma lähen teda ümber pöörata. Nii 15 kraadi ei ole tõesti mind aidata. Ma tahan teda ümber pöörata ja minna teisele poole. Vaatame, mis juhtub siin, kui ma tabanud Mängi nüüd. OK, tobe välimusega, kuid ta teeb täpselt seda, mida ma ütlesin. Ja see on pöörlev kogu sprite. Nüüd selgub, võin kinnitada seda. Ja ma ei tea, kuidas määrata see esimene. Ma nagu pidi futz ümber ja vaata et parim viis seda teha. Aga kui ma lähen mina-- vaatame, motion. Oh, ma leidsin selle. Tegelikult Set Rotation Style. Vasakule, paremale, või ei pöörata või kõik ringi. Ja selgub, et see, mida ma tahan. Ja ma panen See ei ole minu loop, sest ma ei vaja seada rotatsiooni stiilis mitu korda. Ma lähen pane see päris tippu Selle programmi nii, et see saab seada kord, ja siis mäletab. Ja nüüd ma lähen, et proovida seda uuesti. Lubage mul lõpetada programmi. Ja nüüd, et fikseeritud, et viga. Nii et ma olen korduvalt parandada pärast seda. Programmi saada veidi keerulisem ja suuremad, aga ma võtan beebi samme nö ja väikeste hammustused otsa probleemi saada see paremaks. Aga ka see on omamoodi lame. Tead mida? Palun keegi tõesti hea, kohutav hääl meeldib tulla? Keegi häälega. Uh, jah. Tule üles. Roheline särk. Nii selgub seal on mõned muud naljakad asju, esteetika ja kõlab nii. Siin on mjäu. Ma klõpsake sakki Helid. [MEOW] Seal on mjäu. [MEOW] [MEOW] [MEOW] --actually rekord midagi meie endi siin. Nii saab teha just nii. Selle asemel, et kasutada selle kassi heli, olgem minna siin, ja mis su nimi on? Nick, nice to meet you. See on David. Nii et hetkel, ma lähen tabas Record nuppu. Ja kui saad lihtsalt kisa arvesse sülearvuti, "Ai," nii, nagu sa lihtsalt kõndis seina, et on väga rahul. 1, 2. NICK: Ai! DAVID J. Humala: Awesome. Ja nüüd saab teha natuke toimetamine siin. Lähen vabaneda vaikne osad. Ja ma arvan, et see on hea. Tänan teid väga. NICK: Pleasure. DAVID J. Humala: Olen lihtsalt ümber selle "Ai," aga nüüd ma lähen lähen tagasi oma skripte. Ja teate, et on tõepoolest hea siin. Ja ma lähen edasi minna ja Heli ai, ja ma lähen tegema, et kui see puudutamata ainult servadest. Ja siis ma lähen on see ümber pöörata. Vaatame, mis juhtub siin. Lähme täisekraanil. [Video taasesitus] -Ouch! Ouch! Ouch! Ouch! Ouch! Ouch! Ouch! Ouch! [Taasesituse lõpetamiseks] DAVID J. Humala: Nii et sa mõistad et me lähme natuke õnne. Ma lähen teda liikuma nagu 100 sammu korraga. Mõju, mis nüüd saab to olla-- [ARVUTI glitch SOUND] Nii mõistlikkuse piires. Nii on võimalus täpsustada, et veelgi, kui me tõesti tahame. Vaatame nüüd tutvustada teine ​​mõiste. Et lase mul minna ühte nimetatakse Arvestan Lambad ja kasutada midagi nimetatakse muutuja. See on jumalik vähe lambaid ja Muutsin oma kostüüm nii rääkida. Nii et kuigi vaikimisi on kass, võite selle üles laadida, saate joonistada, saate teha mis tahes arv tegelased oma sprite. Siin on programm, mis on kavatseb teha, mida inglise keeles? Lähtudes jällegi just see, mida sa tead nüüd. Mida see programm teeb? Jah, see läheb loota. Üks number korraga. Meil on ilmselt on see komplekt counter. Ma ei tea, mis see on, aga võibolla on muutuv. See on lihtsalt konteiner, x või y. Aga sõna counter on rohkem kirjeldav kui matemaatik x või y. Nii saame kasutada inglise sõnad asju. Forever, tähendab lihtsalt hoida seda tegema. Ütle counter. Nüüd Kust see tuli? Noh, tuleb välja, et counter on muutuja. Nii et see on lihtsalt üks puzzle tükk lõin ette. Ja kuigi see juhtub mitte olla sama kujuga siin tavaliselt sa ütleksid midagi hello siin. Samuti võite lohistada muutuja nii, et see, mida on saada ütles. Siis ma ootama teist, ma muutmiseks counter ühe, incrementing, lisades ühe. Nii et lõpptulemus on See jumalik lugedes lambad. Kuigi ta lugedes ise. Nüüd on väga kiiresti hakka igav sest ta läheb Selleks tõeliselt igavesti, kuid see on täpselt see, mida Programmi disain näeb. Võimaldab nüüd proovida järjekordne näide mis tasakaalustab muutuv. See üks nn Hi Hi Hi, et ei saa tüütu kiiresti. Nüüd on see üks on kaks skripte. Ja nii uuesti, me võttes beebi samme. Alustasime midagi super väike, sellele lisatakse, lisamist. Nüüd ma tahan teha midagi veelgi dünaamilisemaks, nii et ma tahan kuulata eest kaks eri asja korraga. Nii vasakul kui roheline lipp on klõpsatud, Seadsin muutuja, mis ma kirjutasin eelnevalt nimetatakse tumm. Ja ma meelevaldselt seatud see, et 0. Nii Scratch ei ole tõsi ja vale, kuid see on 0 ja 1. Nii et ma ei ühtlustada, et sama mõte. Ja siis igaveseks, kui tühikut on pressitud, siis seatakse 0. Või kahju. Kui ruum on vajutatud, ja kui vaigistatud, muutuv, on 0, seadke summutatud 1, muidu seatud summutatud 0. See tundub omamoodi nagu me oleme lihtsalt teed ja hävitus töö. Aga mis on toime? Iga kord, kui ma vajuta tühikut, Mis juhtub minu muutuja nimetatakse vaigistatud, loogiliselt? Omamoodi saab keerata. See muudab 0-1 või 1-0. Seega võttis paar plokid väljendada, kuid kõik Ma teen on lülitamine seisu Selle muutuja 0 või 1 või 0 või 1 Iga kord, kui ma vajuta tühikut. Nüüd siin, mis see teeb? Forever, kui summutatud on 0, nii et kui summutatud on vale. Nii et kui see ei ole summutatud, on semantika seal mängida heli merilõvi, ja arvan, Hi Hi Hi kaks sekundit ootama kaks sekundit. Nii märkate nüüd need skriptid tõhusalt läheb paralleelselt nii, et üks saab kuulata ühe tegevuse, teiste teha otsus põhineb, et tegevus. Ja ta suudab seda teha igavesti. [Merilõvi BARKING] [Merilõvi BARKING] See saab seda teha igavesti ja [Merilõvi BARKING] nagu ma olen lihtsalt teinud. Ja nüüd on see ikka töötab Aga ma olen "summutatud" mängu. [Merilõvi BARKING] Ja see on kõik see mees praegu teeb liiga. Avame järjekordne näide siin. Lubage mul minna sündmused, ja nüüd on see jumalik liiga. Aga märka seda on kaks haldjaid. Nii ei ole lihtsalt kaks skripte üks sprite, kuid kaks haldjaid. Ja kui ma vajutan sinine poiss, kui ma juba näen ta ühe programmi siin, et sõna otseses mõttes lihtsalt ütleb see, kui ma saan sündmus, öelda "Polo" kaks sekundit. Nii et kui te olete kunagi mänginud bassein, mängu Marco Polo, kui oranž poiss script on mis tahes tähis, ilmselt Iga kord, kui ma vajuta tühikut, Mis on oranž poiss tegema hakkad? Ta ei ütle "Marco." Ja siis see on uus plokk. Meil ei ole seda varem näinud, kuid eetrisse sündmus. Ja ma võiks seda nimetada Kui midagi tahame. Me tuleme tagasi selle ehk enne pikk. Aga ringhäälingu sündmus on nii, et üks sprite rääkida teise poolt sisuliselt kulgeb see sõnum. See ei ole sõnum, mida näed. See ei ole midagi, visuaalne. See on omamoodi arvuti sõnum et teine ​​mees kuuleb. Sest tõepoolest, sinine poiss, tagasikutsumine ei ole, kui roheline lipp klõpsatud. Ta asemel on, kui ma saan sündmus. Kui ta saab kätte käesoleva märkuse klassi, niiöelda, ta peaks ütlema "Polo." Ja nii on lõpptulemus, et kui ma hit roheline lipp, ei juhtu midagi. Aga kui ma vajuta tühikut, ta ütleb, "Marco," ütles ta reageerib "Polo." Aga ainult sprite ma olen suheldes on oranžiga. Nii et see on viis liiki kulgeb lugemiseks vahel sprites ja võttes neid suhtlema üksteisega. Nüüd vaatame viimast üks siin nimetatakse teemad. Ja seda märgata, mängides seda. Nii et need on kaks haldjaid. Lind on selline sõidavad ringi. Ta kopsakas. Ei ole "Ai", kuid sama mõte. Aga kass tundub päris tark. Mis on kass ilmselt läheb? Ja et seda oodata. Mis on kass ilmselt läheb? See ei ole lihtsalt kopsakas. Ta järgneb lind. Ja nii ilmselt, seal on viis kombinatsiooniga plokid siin-- ja vaatame kass päris kiiresti. Forever, kui liigutav lind, siis mängida heli Lõvi 4, mis iganes see on. Kuulsime seda üks kord. Muidu kohakuti lind, ja liikuda ühe sammu võrra. Nüüd asjaolu, et see on üks samm on see, mis annab lind natuke eelis esialgu, kuid kui me asemel seda 10 näiteks nii et iga iteratsiooni silmus ta liigub 10 sammu jooksul. Nii rohkem ruumi. Vaatame, mis juhtub siis. [LION Roar] Mitte kõik, et palju parem. Nüüd proovime parandada peale neid vähe korduvalt, ja tagasi tulla, et funktsioonide mõistet. Ja tõepoolest üks põhilisi takeaways klassi disain. Mitte ainult kirjalikult programmid, mis töötavad ja mis on õige, kuid on ka konstrueeritud. Ja disain on palju subjektiivsust ja saad paremini see aja jooksul. Aga võtame mõned beebi samme alustades programm, mis töötab, absoluutselt, aga see ei ole väga hea. See ei ole väga hästi kirjutatud. Nii et siin on programm, mis seda teeb. Köha, köha, köha. Mida teeb programm välja näeb? Paistab õige mulle. See ütleb diivanil jaoks teine, siis ootab. Siis ta ütleb seda uuesti, siis ootab. Siis ta ütleb seda uuesti, siis ootab. Ja siis programm kaudselt lõpeb, sest puudub loop. Aga miks on see halvasti kirjutatud programm? Isegi kui sa pole kunagi programmeeritud enne? Nagu, mida röövib valesti, võib-olla siin? Jah? Sihtrühm: [kuuldamatu] DAVID J. Humala: Täpselt. Sa korrates ise ikka ja jälle. Ja sõna otseses mõttes, ma kopeerida ja kleepida kaks neist plokid ja jälle. Ja see on täpselt see omamoodi meelerahu vaadake, et te tuleks tehes. Oota hetk. Kas ma tõesti seda tegema? Mis see on, mis on Ilmne lahendus ehk? Kas mingi loop. Ja ma ei ole päris tagasikutsumine Mis puzzle tükk on, aga kui ma vaatan Järgmine iteratsiooni siin Tõepoolest, seal ei ole lihtsalt igavesti loop, seal korrata mitu korda. Ja nii ma olen määratud kolm. Ja nüüd märkate, kui palju tihedam, kui palju sisutihedat see programm on. Ja selles mõttes, kuidas palju hooldatav. Kui ma tahan muuta sõna köha- midagi muud, nagu achoo, nagu ta aevastamist. Siis ma seda muudan ühes koht, mitte kolm. Nii et see on juba tunne veidi parem disain. Lubage mul selle asemel avatud köha 2, meie kolmas näide. Pange tähele, kui arvuti teadlane, Ma hakka lugema 0, tavaliselt. Nüüd tundub see natuke scarier juures Esimene, kuid mõju on sama. Köha, köha, köha. Aga mis tundub olevat täiesti uus top osa programmist? Olen eemaldanud öelda. Olen ära oodata. Mis mul ühendatud asemel? Funktsioon. Köha blokeerida. Ma mõtlen, ausalt öeldes, ma tunduda selline idioot, kui ma ei ole lihtsalt Alustame block mis on ilmselt nn "köha," kui see on kõik, mida ma tahan teda teha. Aga see ei ole Scratch. Pigem ma läksin üks aasta palett nimetatakse Rohkem plokid siin ja ma lohista see suur lilla asi siin, et laseb mul määratleda funktsiooni. Sisuliselt võimaldab mul luua oma puzzle tükk, mida võib nimetada kõike, mida ma tahad, et ei saa midagi teha tahan, kuid see annab talle nime. See annab mulle uus, lilla puzzle tükk et nüüd ei iganes ma ütlen seda teha. Nii et see lilla tükk siin vastab see siin. Ja mida see teeb? Ta ütleb, köha jaoks teine, ja siis ootab. Ja nüüd ma olen omamoodi loodud enda kohandatud puzzle tükk, nii, et see käitub täpselt sama teed. Nii et ma ei hoia seda tegema. Ja tõepoolest, seal saab olema rohkem ja rohkem võimalusi modulariseerimise, ja kihilisus, keerukust peal üksteist. Aga seda põhimõtet, tõepoolest probleem ütles 0. Mis sa lähed vaidlustada teha on alla laadida Scratch, või lihtsalt kasutada seda netis ja lihtsalt nautige seda. Anname komplekt nõuded, mille heli ja mõned mitmeid puzzle tükki. Aga sa seda täpselt. Ja sa saad aru, et sa lähed tahavad võtta mõned beebi samme esialgu kuni oma programmi saab üha keerulisemaks. Aga arvestades on sellele Parim viis, kuidas ma võiks seda teha? Kas ma saan seda vältida instinkt ehk kopeeri ja kleebi? Aga enne Ülesanded 0, ja enne kui me edasi lükata, arvasin, et me tahaks alustada ühe rohkem vabatahtlike Kui meil oleks, lõpliku programmi see on ehk kõige paigaldamise üldse, sest tänapäeva saal. Tule alla. Jah. Jah. Mis su nimi on? Uh-oh. See on OK. Mõlemad langenud. Ja ma olen tegeleme selle kuidagi jooksul, et järgmise kümne sekundi. Nii tule alla. Tule alla. Lubage mul tulevad siia üles. Ole nüüd. Hästi. Vaatame siin. Nii märkate tõelist kiire siin Kui soovite tulla üles. Me teeme kahe vooru seda. Ja mis su nimi on? SABRINA: Sabrina. DAVID J. Humala: Sabrina ja? YING GEE: Ying Gee. DAVID J. Humala: Ying Gee. Nice to meet you nii. David. Nii et meie lõplik näide on siin nimetatakse Ivy Hardest Game. Ja miks me ei pea sa Level 1 ja sa Level 2. Ja me näeme, kui kaugele pärast, et me tegelikult minna. Kirjutas üliõpilane Eelmisel aastal remiksib mind nii, et see läheks üle ka New Haven. Ja ma annan teile mäng, mis läheb kaasata liiguvad üles- ja allapoole, ja saada Yale finišijoonel. Siin me läheme. [Video taasesitus] [MUSIC - NFL Fox teema laulu] [MUSIC - MC HAMMER, "U ei puuduta  See "] -U Ei puuduta see. U ei puuduta see. Ei puuduta see. Minu, minu, minu, minu muusika tabab mind nii raske, paneb mind ütlema, oh, mu isand. Täname, õnnistades mind pahanda riim ja kaks hype jalad. See on hea, kui sa tead, et sa oled maha. Super jobu homeboy alates Oaktown. Ja ma teada, kui sellist ning see beat uh, sa ei saa puudutada. Ma ütlesin, et homeboy U ei puuduta see. Jah, see on, kuidas me elame ja sa tead, U ei puuduta see. Vaata minu silmis, mees. U ei puuduta see. Yo, andke mulle büst funky lyrics. U ei puuduta see. Värske uue peksab ja püksid. Sul on niimoodi ja sa tead sa tahad tantsida. Nii kolima oma koht ja saada Kärbes tüdruk ja püüda seda võita. Kuigi see on jooksvalt kinni pumbata vähe natuke ja andke neile teada, mis toimub. Nagu see. Nagu see. Külma missioonil nii tõmba tagasi. Las nad teavad, et sa oled liiga palju ja see on samm uh te ei saa puudutada. Yo, ma ütlesin sulle U ei puuduta see. Miks sa seisad seal mees? U ei puuduta see. Yo, heli bell kooli sisse, jobu. U ei puuduta see. Anna mulle laulu, rütm muutes higi see, mida ma neile nüüd. Nad teavad, kui te räägite Hammer te räägite näidata, et on hyped. Ja tihe lauljad higistamine nii edasi neile mic. Või lindi teada, mida see aega võtab ja nüüd ta läheb põlema graafikuid. Legit kas töö raske või võite ka loobuda. Sest sa tead, U ei puuduta see. U ei puuduta see. Jaotada see. Lõpeta. Hammer aega. Mine vooluga spin kui sa ei saa käia seda siis ilmselt oled surnud. Nii laine oma käsi õhus [kuuldamatu] See on see võitjale tants seda ja sa lähed, et saada õhem. Liiguta libistage Rump ainult minut olgem kõik teha kühm. Jah. U ei puuduta see. U ei puuduta see. Sa parem saada hyped poiss U ei puuduta see. Soiteta kooli tagasi. Jaotada see. Lõpeta. Hammer aeg DAVID J. Humala: Ongi CS50! Tänu nii palju meiega! Kohtumiseni väljaspool. [Taasesituse lõpetamiseks] [Video taasesitus] [MUSIC - "Seinfeld" teema laulu] Hei David. Hei, David. Kuidas läheb? -Hea Töö, täna. -Nii Olete mõelnud, mida sa lähed tegema, et välja nalja? -Ei, Ma ei saanud midagi. -Mis Kui-- mis siis, kui see on välja nali? -Näiteks, Lahtipakkimist vankrid? -Uh-Huh. Tead, see on umbes midagi. -Nii Meeldi, ei loo, ei konflikt, resolutsioon. Ma ei saa aru. Millest see on siis? Ei midagi. -Nii Meil ​​välja nali on umbes midagi, ja meil ei ole näitlejad. Kes saab olema selles? -Ei ei ei. Ma mõtlen, ma hoian seda. -Sa Olla see? Jah! Inimesed on alati öelnud mind ma olen iseloomuga. Noh, ma mõtlen, et see on tõsi. Aga kes muidu läheb see on? See ei saa lihtsalt olla sina. -Kas Saab olema see, Gavin, Dan, Dan, Colton, Z'Myla, Alysse, Doug, David, kõigile. -Nii See on umbes midagi, ja kõik see on? -Täielikult Midagi. -See On naeruväärne.