[Videoprehrávanie] [Dvere auta Vypínanie] [CAR štartovanie motora] [Prehrávanie hudby] -Moving Vpravo pozdĺž v hľadaní dobrých časov a dobré správy. S dobrými priateľmi nemôžete prehrať. Toto sa môže stať zvyk. -Opportunity Klope Poďme len natiahnuť ruku a chytiť ho. Jo! Holandsku existujú popri ďalších budeme pon to. -We'll Zádrhel trampové, autobusom alebo žltý taxík to. -Dammit. -Sme Pohybuje vpravo pozdĺž. -Footloose A fantázie zadarmo. -Ako Je polovica zábavy. Príďte zdieľať ich so mnou. -Sme Pohybuje vpravo pozdĺž. -Sme Bude zdieľať záťaž. -My Nepotrebujú mapu k si to show na ceste. Hej Fozzy, chcem, aby si odbočiť vľavo ak prídete na rázcestí. -Áno, pane. Odbočiť vľavo na rázcestí. Odbočiť vľavo. -I Neverí, že. -Cruising Právo spolu sme zistili, svetlá na diaľnici. -A Si cestu alebo cestu. -Tak Veriť svojim navigáciu. -Movie Hviezdy s efektnou auta a život s zhora nadol. -Sme Útokom veľké kopca. Jo, búrka má pravdu. Mala by byť sneží? Nie, ja si to nemyslím. -Moving Vpravo pozdĺž. -Footloose A fantázie zadarmo. -Si Pripravený na veľký čas. -je To na mňa pripravená? -Moving Vpravo pozdĺž. Pohybujúce sa vpravo pozdĺž. Pohybujúce sa vpravo pozdĺž. Pohybujúce sa vpravo pozdĺž. -Myslím, Že je lepšie zastaviť. -Áno, pane. [END Prehrávanie] [APPLAUSE] DAVID J. Malan: Toto je CS50. A to je koniec týždni 0, ale začiatok krásneho priateľstva. Sme preto radi, že sa tu na univerzite v Yale vôbec prvýkrát s naším priateľ Scaz, a Jason a Andy. Všetky 40 CS50 TF rokov a CA je tu na Yale. A všetky z vás. A v skutočnosti, je to asi čas to-- [APPLAUSE] Takže, aj keď väčšina z prednášok bude skutočne v Cambridge v tomto roku, je skutočnosťou, že zámerné, a moc zámerne v CS50, Ja si myslím, že sme blíži bod technologicky, a pedagogicky, kde môže byť lepšie ako vzdelávacie skúsenosti, aby sa zapojili s niektorými materiálu si on-line kurz je. Naozaj, reality-- a keď som presvedčený, tento philosophically-- je, že prednášky nie sú osobitne účinným prostriedkom pre dodávanie dosť komplexné informácie. Určite viac ako hodinu a dlhodobo rozpätí času. A skutočne Každých pár minutes-- Spomínam si sám seba v college-- ste zóny sa na chvíľu, Vám chýbajú niektoré zložité tému, a vy ste odišiel do značnej miery na ďalších 45 minút. A skutočnosť je taká, že to, či ste tu v New Haven alebo Cambridge alebo mimo neho, jednoduchosť má schopnosť zastaviť a rýchlo vpred, pretočiť, hypertextového odkazu na súvisiace zdroje, Fulltextové vyhľadávanie prepisy a podobne, je príležitosť, ktorá Trúfam si tvrdiť, pre naše on-line študentov aj mimo New Haven, ponúka im príležitosť naozaj uchopiť koncepčný materiál, ktorý sme zaviesť v prednáškach tým lepšie. Ale nakoniec v CS50, je Skúsenosti študentov je charakterizovaný tak, tak oveľa problémovými sád kurzu je, alebo týždenné programovanie projekty, ktorých sekcia kurz viedla o výučbu chlapi, Obedná úradné hodiny vedené asistenti kurz a výučba chlapíci, a naozaj taký akcie ako CS50 Puzzle Day, CS50 je Hack-a-thon sa CS50 Fair, týždenné obedy, a ešte oveľa viac. A tak nech už ste tu v New Haven, alebo ladenie z diaľky, dnes v Cambridge, a budeme vás zase čoskoro uvidíme, realita je to jedno a to isté triedy. A sme tak nadšení, tu všetci spolu dnes. A tak na konci semestra, či už tu alebo diaľky, dobre dúfajme, že budete nosiť hrdo, šťastne, a možno s trochou úľavy, tričko, ktoré dosvedčuje tebe vynaloženiu CS50. Tak kde sme sa nechať off v stredu? Zobrali sme sa pozrieť na výpočtovej myslenia. A to je to k tomu, čo sme sa destiluje počítačovej vedy k, prinajmenšom na Teraz. Ale my ju destilovanou trochu ďalej do aspoň tri komponenty prvky. Vstupy, takže to, čo je Problém sa snažíme vyriešiť? Výstupy, čo je odpovedať dúfame, že sa dostať? A tam z reprezentácie. A nebudeme bývať tu na potom, čo na binárnom, alebo dokonca ASCII, a podobne tak moc, ale skôr brať ako samozrejmosť že môže predstavovať túto informáciu, pretože ďaleko viac zaujímavých častí z týchto problémov nie sú len vstupy a výstupy, ale algoritmy že ísť do riešenia týchto problémov. A možno pamätáte z druhý deň, že sme trvalo docela tradičné Koncept hľadá niekoho v pomerne veľkej telefónneho zoznamu, alebo všeobecnejšie digitálne v týchto dňoch, len veľmi veľký súbor dát. Naozaj veľký zoznam kontaktov, s veľa mien abecedne zoradené. A my sme si uvedomili, že zatiaľ čo ja Tento problém by mohol priblížiť jednoducho za použitia lineárneho approach-- stránku po stránke, alebo dokonca dva je na prvý time-- sme zistili že viac intuitívne algorithm-- len tak delenie a dobývanie znovu problém, a znovu, a again-- polovicu ju s každým čas, nám dal túto zelenú výsledok. A je to tak oveľa plochejšie pretože to naznačuje, že aj keď tento problém dostane väčšie a väčšie, ako je tomu v týchto dňoch s dátami súpravy a reality-- Facebook a Google výsledky vyhľadávania a jako-- robí náš algoritmus vykonávať rovnako efektívne s tými väčšími uhryznutie ako tomu bolo aj pri menších uhryznutí. Teraz to vyvoláva otázku, čo môžeme skutočne riešiť podobne s týmto druhom intuícia? Tento druh rozdelenia a dobývanie? No, mohli by sme urobiť niečo ako je to dnes tu. Mohli by sme vziať dochádzku. Takže možno, ako 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11-- nebude všetko, čo efektívne. Tak počkajte, základnú školu. 2, 4, 6, 8, 10, 12, 14, 16, 18 a tak ďalej. Ale mohli by sme urobiť niečo lepšie? Som si istá, že nemôžem to urobiť sám. Takže ak budete humor nás len za Okamih, priniesli sme u nás algoritmus, ktorý je práve dostal tri kroky, ale to require-- ak vás nie mind-- všetci postaviť, ak by ste. Tak, so všetkými z nás teraz stojí, krok jeden z tohto algoritmu je nasledujúce. Vstaňte a priradiť yourself číslo 1. Takže v tomto okamihu, doslova všetci v tejto miestnosti dúfajme, že sa myslí na seba, však nešikovne, číslo 1. Teraz druhý krok tohto algoritmu je bude zahŕňať nasledujúce. Druhý krok, vyparovať sa niekto stojí, pridať vaše čísla dohromady, a prijať sumu ako vaše nové číslo. Rýchla kontrola príčetnosti. Aké číslo je každý myslí teraz? SO 2, snáď s výnimkou pre jedného, trápne, osamelý človek. Ak budeme mať nepárny počet ľudí v miestnosti. Takže jedna osoba by mohla byť ešte číslo 1, je to v poriadku. Ale krok tri tu, raz z vás mali sadnúť. Druhý by mal ísť späť na krok dva, a opakujem, ak by ste. Takže ak ešte stojí, mali by ste byť medzi tými, sa vracia do kroku dve. Pokračuj. Pár ľudí stále stojí. Takže, ak ešte stojí, spárovať s niekým. Dobre, klesajúca dole. Pár ľudí stále stojí. Pomôžem ak je to treba. Spomeňte si na kľúče jedla so sebou tu, je to, ako oveľa rýchlejšie ako ja toto je počítanie. Takže poďme sa pozrieť. Môžem pomôcť. Takže to, čo je číslo stále na mysli? Divákov: Som na 44. DAVID J. Malan: 44, takže idete do toho a sadnúť. Aké číslo ste na mysli? Divákov: 74. DAVID J. Malan: 74. Dobre, choďte do toho a sadnúť. Kto iný je ešte stojí? 86. A je niekto iný ešte stojí? Aké číslo? Počul som, 67. A potom v hornej časti? 32. Niekto iný stále stojí a myslieť na čísla? Oh, ahoj. Prepáčte. Hneď som späť. 42. Niekto iný? Divákov: 47. DAVID J. Malan: 47. Je ešte niekto stále stojí ktorý nebol počítal? Takže konečnom počte ľudí v miestnosti , Ktorý má 497 miest je-- z ktorých všetky sú filled-- je 390. Tak to je skvelé. Čoskoro diskutovať pojem chyby v počítačovom programe. Ale my sa vrátime k tomu onedlho. Ale teoreticky, čo by mohlo sa stalo práve teraz? Takže aj keď tam boli tri veľké krokov tohto algoritmu, každý z tých, bol len trochu jedného veľkého prevádzky. A bolo to cyklicita k nemu v tom, že ak ste boli stále stojí, ste si nechali ísť od kroku tri na dva, krok tri na dva, krok tri na dva. Ale to, čo stále deje na každom opakovaní? Každý cyklus tejto slučky? Čo sa deje inde v izbe? Nielen to isté, ale to, čo sa deje na polovicu vás? Posadil sa. A tak tam leží tento pohľad, podobne ako telefónneho zoznamu príklad, v tom, že ak polovica vás sú sedieť zakaždým, Problém sa začína s asi 400 ľuďmi, potom na 200 ľudí, ako 100 ľudí, potom 50 ľudí, a tak ďalej. A tak sme v orezávať teória iba na jednu osobu, myslenie z celkovej hodnoty všetkých. Teraz reality, niektoré sociálne dynamika, a niektoré aritmetické chyby by mohli prispieť k tomuto konečnému chyba. Ale teoreticky, zatiaľ čo ja bol stále narastá preč, pričom niekoľko desiatok kroky, alebo stovky krokov počítať sami, počítať miestnosti plnej 500 alebo tak ľudia mal vziať oveľa menej krokov, pretože môžete len rozdeliť 500 až 1/2 toľkokrát. A tak rovnako ako s telefónom si príklad, na druhý deň, sme niečo logaritmické aby som tak povedal, pričom keď sme boli všetci pôsobiace v súzvuku, a ignoruje Chyby Ďalej by sme dosiahli presne že druh jazdnej doby? Teraz k boli spravodliví, trochu podvádzal, v že som sa zadlžujú iný zdroj. Vzhľadom k tomu, že je to len jedna z mne, Ja zadlžujú stovky vás. Ale to by mohlo byť povedal, aby bol Príkladom paralelného spracovania, alebo stav techniky veľmi v móde kde počítače v týchto dňoch majú viac procesorov, alebo viac technicky, ešte viac jadier, a môže skutočne robiť násobok veci naraz, podobne ako vy všetko robíme tam, paralelne. Ale pripomenúť, že to, čo sme tiež robil v stredu bolo pokúsiť sa zachytiť túto intuíciu a formalizovať v kóde. Niečo ako pseudo-kódu. A v skutočnosti, a dúfam, že budete odpustiť, je to ako 80 stupňov v sem. Takže budem to brať off na len trochu. To, čo si myslel som, že by sme urobiť, je prechod Teraz k aplikačnému pričom sme znovu zapojiť publikum, ale napísať program v angličtine ako je syntax, s ktorou na vyriešenie tohto problému tu. [Videoprehrávanie] -Je To arašidové maslo želé čas. Arašidové maslo želé čas. Arašidové maslo želé čas. Way ya! Way ya! Way ya! Way ya! Teraz je to! Tu to je! Tu to je! Tu to je! Arašidové maslo želé! Arašidové maslo želé! Arašidové maslo želé! Arašidové maslo želé! Arašidy, arašidové maslo želé! Arašidové maslo želé! Arašidové maslo želé s baseballovou pálkou. [END Prehrávanie] DAVID J. Malan: --that video, ale je to trochu návykové, ak nie trochu nepríjemné. Ale ako to urobiť, myslela som si, čo by sme si urobiť, je pokúsiť sa napísať program spoločne, pre ktoré potrebujeme tri dobrovoľníkov. Musí byť pohodlné na kameru a internet. Sam, poď hore. Purple tričko, priamo tu, poď hore. A od tu, dovoľte mi, aby som ísť trochu ďalej do minulosti. Crimson a modré košele, poď hore. Perfektné. No tak. Poď hore, poď hore. A Ako sa voláte? Erica. Davide, rád ťa spoznávam. Ak by ste chceli, aby sa toto miesto tu. To je Sam. Ako sa voláš? Antonio. Antonio, rád ťa spoznávam. Erica a Sam, keby si sa chceli mať sídlo tu. To, čo sme prišli pripravení s, pretože títo ľudia zisťujú, je ingrediencie, ktoré sa, aby sa arašidové maslo a želé sendvič. Teraz to môže byť niečo, čo budete mať moc za samozrejmosť. Ale dali sme každý z našich troch dobrovoľníkov here-- dva dobrovoľníci a Sam tu, je bochník chleba každého, tanier, nôž, poháre želé alebo džemu, a poháre arašidového masla. A gól po ruke je teraz bude pre tieto tri urobiť arašidové maslo a želé sendvič. Ale to, čo budeme robiť, je čakať audience-- pretože všetky z vás, iste viete, ako to urobiť to tak dobre v reality-- sa chystáte poskytnúť nám krok za krokom. Pseudo-kód, ak chcete. Takže budem hrať úlohu pisára sem. A ja mám malý zoznam úloh, a tak, že každý z vás, jeden po druhom, volá potenciál inštruktážne, budem napíšte to dole, opakovať podľa potreby. A potom vy sa chystáte robiť arašidové maslo a želé sendvič len to, čo ste povedal. Takže myslíte, že na seba ako počítače. Môžete robiť len to, čo ste povedal. Žiadne predpoklady, žiadne otázky. Stačí len, aby to urobiť. Takže kto by chcel ohroziť prvý inštrukcie pre výrobu PBJ sendvič? Tam balkón. Divákov: Otvorte sáčok chleba. DAVID J. Malan: Otvorte vrece chleba, ak chcete. Takže poďme sa pozrieť. Poďme sa opakovať, a získať trochu presnejšie. Dobrý spôsob, ako začať hoci. Druhý krok, niekto iný. Teraz nikto nechce dobrovoľne. Krok dva, vpredu. Divákov: Otvorte vnútorné vrece chleba i. DAVID J. Malan: Otvorte Vnútorný vak chleba i. Skvelé, máme učiť. Trochu presnejšie. Poďme si túto prácu. Áno, v zelenej košeli. Divákov: [Nepočuteľné] DAVID J. Malan: Plátky chleba. Jemne odstráňte dva plátky chleba. To je dobre. Krok štyri, niekto iný? Tu, áno? Divákov: [Nepočuteľné] DAVID J. Malan: Miesto chleba na tanieri. Krok päť? Krok päť, jo? Divákov: [Nepočuteľné] DAVID J. Malan: Na vrchole of-- oh, ruky. Položte ruku na hornej arašidové maslo. Je to to, čo som hlavou? Publikum: Jo, a odskrutkovať. DAVID J. Malan: a- to znova. Divákov: [Nepočuteľné] DAVID J. Malan: a dal veko vedľa arašidové maslo. Zľahka položte ruku na Vrchol arašidového masla, a odskrutkovať, a dať veko vedľa arašidové maslo. OK, krok šesť. Krok šesť, niekto iný. Jo? Divákov: [Nepočuteľné] DAVID J. Malan: Povedz to znova. Divákov: Opakujte krok piatich znova. DAVID J. Malan: A opakujte krok päť znovu, ktorá bude vytvárať trochu problém Teraz, keď robíme tento krok za krokom. Takže teraz sa vrátime ku kroku päť. Zľahka položte ruku na vrchole arašidového masla a odskrutkovať a dať veko vedľa arašidové maslo. Potom uchopte arašidové maslo a opakujte krok päť znova. Takže budeme prepísať, že nekonečnej slučky, ak chcete. Krok sedem, niekto iný. Jo, v chrbte. Divákov: [Nepočuteľné] DAVID J. Malan: --on nad ostatnými. Divákov: [Nepočuteľné] DAVID J. Malan: Na druhá ruka na druhom vrchole. Chcete sa jednoducho prísť sem? Ako môžem ukončiť pokyn? Čo je zvyšok inštrukcie? Divákov: Ignorovanie túto časť. DAVID J. Malan: Ignorovanie túto časť. Poďme začať znovu. Krok sedem. Divákov: [Nepočuteľné] DAVID J. Malan: Uchopte s proti hand-- to je dobré. To je skutočne dobré. Divákov: [Nepočuteľné] DAVID J. Malan: A plast jar-- Divákov: [Nepočuteľné] DAVID J. Malan: A twist-- Divákov: [Nepočuteľné] DAVID J. Malan: po dobu dvoch sekúnd. Stačí otvoriť arašidové maslo jar. Dúfam, že mi odpustíte. Takže predpokladajme, že sme sa tam dostali. Otvorte arašidové maslo jar. [APPLAUSE] DAVID J. Malan: Krok osem, poďme. Krok osem, áno, v chrbte. Divákov: [Nepočuteľné] DAVID J. Malan: Dobrý. Krok deväť, áno? Divákov: [Nepočuteľné] DAVID J. Malan: --out of arašidové maslo jar. A- a čo? Divákov: [Nepočuteľné] DAVID J. Malan: A dal nôž späť do arašidové maslo. Krok desať. Krok desať. Divákov: [Nepočuteľné] DAVID J. Malan: Vložte nôž out, a potom odstráňte uzáver. Nice. Mimo arašidové maslo. Dobre, krok 11. Divákov: [Nepočuteľné] DAVID J. Malan: OK, sivá počítače nasledovať modré alebo červené počítača. Dobre. [APPLAUSE] DAVID J. Malan: Prineste nám domov. Ešte pár krokov. Čo bude ďalej? Kroky 12. Krok 12. Jo? Divákov: Dajte jeden z plátky chlieb jemne na jednu z vašich rúk. DAVID J. Malan: Jeden z vašich rúk. A potom, krokom 13. Jo? Divákov: [Nepočuteľné] DAVID J. Malan: --on krajec chleba. Dobre. Celkom dobré. Krok 14, jo. Divákov: Undo krok 13. DAVID J. Malan: Undo krok 13. Poďme sa presunúť na želé. Je to krok 100- program ale my sme boli na krok 15. Jo. Divákov: [Nepočuteľné] DAVID J. Malan: 7 až 13 za použitia želé, pretože tí išlo tak dobre. Opakujte kroky 7 až 13, s použitím želé. Takže uchopte dolnej polovici želé jar s jednou rukou na vrchole. Na druhú stranu z ostatné top, ignoroval tú časť, uchopte s protiľahlými rukami, veko a plastové jar v spodnej časti, a točiť na dve sekundy. Potom otvorte želé jar. A konečne, skúsme daj nám niečo jedlé. Krok 16. Tak prečo nie my ju tam nechať. Ďakujem moc, aby naše tri dobrovoľníci. [APPLAUSE] Máme trochu CS50 stres loptu pre vás. Vyzeralo to, že je sendvič ale-- tak čo bol bod, za ktorý má trochu zábavy s algoritmu? Skutočnosť je však taká, že aj keď ste programovania počítača, musíte byť super presný. Ako zložité alebo zastrašujúce ako svoje vlastné počítač môže byť veľmi dobre na vás, na aspoň pokiaľ sa niečo pokazí, realita je taká, že je to dosť hlúpy zariadenie, ktoré bolo vynájdené nami ľuďmi, a môže urobiť iba podmnožinu, čo sme do-- niekedy určite faster-- ale nevie, ako aby sa predpoklady. To nevie, ako byť na rovnakej vlnovej dĺžke ako vy. To bude robiť len presne to, čo ste to povedať. A budete udrel, snáď, ako začneme písanie skutočný kód s Prvý problém súpravy a ďalej, , Ako ľahké je, aby sa predpoklad, ako je človek, a nie predvídať musím zvládnuť že prípad, alebo že rohový prípad, aby som tak povedal, že by mohla veľmi dobre Ak je napríklad Sam mal jediný vznikajú stlačiteľná jar želé, zatiaľ čo všetci ostatní mali nejaké poháre as dobre. Takže než obrátime pozornosť k nejakej skutočnej kódu, dovoľte mi predstaviť Hlavy tu na Yale Course. Naši priatelia Scaz, Andy, a Jason prísť a pozdraviť. [APPLAUSE] SCAZ: Stratili sme Jasona dočasne. Ahoj znovu, všetci. Volám sa Scaz. Bol som učil na Yale od roku 2001. A keď som to učil, môj výskum je v robotike a umelá inteligencia. A oznámenie, že mám dnes je, že začína za pár týždňov, budeme prinášame niektoré doplnkový materiál CS50 hovoriť o intelligence softvér. Budeme hovoriť o tom, ako miesta, ako sú Netflix a Hulu môže odporučiť filmy, ktoré budete chcieť sledovať. Tam, kde budeme hovoriť o tom, ako autá vodič-menej skutočne pracujú. A budeme môcť krajinu tieto veci v poňatí že sa učíš v tejto triede dnes. Pretože všetky tieto veci sú postavený na rovnakom základe. A to je to, čo táto séria bude skúmať. Takže som naozaj hľadajú odovzdajú vidieť viac z vás, všetko, a budete sa dostať do zobraziť viac od nás všetkých veľmi skoro. Dovoľte mi, aby som potom predstavil Jasona. JASON: Ahoj všetci. Moje meno je Jason. Ja bohužiaľ išiel do Harvard ako undergrad. To dostane znížiť zo skutočného prúdu. A teraz som tu ako lektor oddelenie počítačovej vedy. A ja som pomáhal spustiť kurz s Scaz, David a Andy. ANDY: Ahoj kluci. Volám sa Andy. Ja som vlastne jediný Yale študentka na scéne práve teraz. [APPLAUSE] Som v Berkeley College, pôvodne z Solon, Ohio. A ja som bol jedným z tých detí kde, keď som prišiel na Yale, Naozaj som si myslel, že by som sa nikdy sa pozrieť na rad niekedy znova. A potom som si uvedomil, že ste potrebovali veda aj QR úverov, aby absolvent. A tak môj prvák jar, som vzal trieda, je CS, intro SK trieda tu na Yale. Bol som rád, to je ako vlastne celkom v pohode. A zatiaľ čo ja vlastne skončil vyhlásením Ako globálne záležitosti, hlavné zručnosti Naučil som sa v CS a programovanie sú tak použiteľné na akomkoľvek odbore sa rozhodnete urobiť. A personál tu na Yale, sme boli tak tvrdá práca pripraviť pre vás. A my sa tešíme na stretnutie všetko v sekcii a úradných hodín. Tak jo. [APPLAUSE] DAVID J. Malan: Ďakujem. Takže tesne pred triedou začala, sme mali možnosť chodiť okolo kampuse s mobil a brať Niektoré selfies vo video podobe naozaj Moja prvá prehliadka Yale kampuse tu. A tak sme si mysleli by sme zdieľať hrubý strih presne to ako Scaz a Andy a Jason ma vzal okolo kampuse. [Videoprehrávanie] [Sirén] -David. -Welcome Na Yale. -Rád ťa vidím. -Rád ťa vidím. -Možno Ideme na turné? -Nechaj Je ísť na turné. -Road Tour. -Tento Znamenie bol tam na chvíľu. -Whah, CS50. -Hurry! Choď, choď, choď, choď. Mali by ste [nepočuteľný] Harkness Tower. -A Sme videli, že párkrát. [APPLAUSE] Pozri sa na bicykli! Ach! Ahoj Frankovi. Čo sa deje, chlapci? -Ako sa máš? -Rád ťa vidím. -Welcome Na video. Nesprávajte sa príliš nadšení. -I Love Silliman. Ach! -Je To už asi tri hodiny od Jason mal zmrzlinu a Nutella. Takže musíme prestať sa na Silliman na trochu. -To Nie je ani [nepočuteľných] napriek tomu, práve skutočnosť, že to tu je tak úžasné. Ty vole, tam je Nutella v každom jedle. -Je Vlani taky. Jo. Povedz veľa o Yale tak ďaleko. Ale ja si teraz, že je TD tam. A to je považované mimo akademickú pôdu. -Tu Máme gotickej architektúry. Svetovo preslávený. Máme nejaké ďalšie gotickej architektúry. A konštrukcie a viac gotickej architektúry. Ahoj. To je miesto, kde budeme mať úradné hodiny Utorok až štvrtok v Rokforte, as [nepočuteľný]. -Dobre. To je na turné. Sme na Yale University je Law School, kde Dnešné prednáška sa chystá uskutočniť. Poďme dovnútra. [END Prehrávanie] DAVID J. Malan: A to nás privádza tu. Takže tak ďaleko, sme boli so zameraním na pseudokódu, čo je to anglicky-ako syntax. To nemá predpísané špecifikáciu. Je to len využiť niektoré intuitívne jazyk, ak chcem vysvetliť, čo chcete robiť. Ale začnime hneď na prechode kódu, pretože väčšina ľudí by povedala. Ale presnejšie povedané, niečo známy ako zdrojový kód. To je jazyk, ktorý ľudia napísať, že počítače ultimately-- prípadne po určitom počte steps-- nakoniec chápe tak, aby sa vedieť, ako niečo urobiť. Že ste videl záblesk to snáď v stredu. Toto je príklad, ktorý neuveriteľne, nezaujatý Pri spustení jednoducho hovorí "hello world". A že je napísaný v jazyku zvanom C, čo je syntakticky veľmi podobné na mnohých iných jazykoch ktoré možno neviete, ale Možno ste počuli o ako Java, a C ++ a Python, a Ruby, a podobne, a v skutočnosti, budeme trávi väčšinu semestra pomocou C, a potom ku koncu semester, stavať na tom, a zavedenie akejkoľvek rada ďalších jazykov. Medzi nimi PHP a JavaScript jazyk SQL databázy s názvom. Ale s C, čo budeme mať toto chápanie bottom-up ako presne počítače práce, Čo môžete robiť s nimi, a ako môžete vyriešiť problémy oveľa účinnejšie, je týmto vrstvenie, ktoré sme diskutovali v stredu, a situácie, na ramená druhých. Ale viac o tom prísť. Dnes sa pozrieme na jednoduchšie prostredie, ale v zásade totožný Prostredie známy ako nuly Naši priatelia na MIT Media Lab. To je grafický programovací jazyk, Scratch, čím môžete pretiahnuť and drop veci, ktoré vyzerať ako puzzle kúsky, ktoré iba blokovanie, ak to robí logické alebo programový zmysel, aby tak urobili. Ale to bude nám umožňujú konverzovať o všetkých rovnakého programovanie Základy, že niektorí z vás Možno už viete, že mnohí z vás možno nie viete niečo o, bez zabŕdnuť úprimne povedané, v intelektuálne nezaujímavý syntaxe bodkočiarkami, a zátvorky, a cituje, a podobne. Všetky, ktoré, zavčas na, sú rozptýlenie s tým, čo sú zaujímavé a skutočne užitočné nápady. Takže poďme sa rýchlu pohľad na životné prostredie tu, takže viete, čo vás čaká. A v skutočnosti, medzi hier, ktoré sme môže hrať je niekoľko programy napísané vlastnými bývalých študentov CS50 je. Jeden z nich, ja, ja budem tento napísaný v absolvent školy pre mňa. Ak by som si mohol vziať jeden dobrovoľník kto je ochotný hrať hra pre úplne prvýkrát. Iste. Poď hore. Ako sa voláš? Divákov: Angela. DAVID J. Malan: Angela, poď hore. Takže Scratch bol na pár rokov. A keď som bola v absolvent školy, Bol som kríž evidovaní na MIT, pričom profesor Mitchel Resnick je Kurz na vzdelávacích technológií. A my sme boli medzi prvými Študenti vo svete skutočne beta Test Scratch. A môj projekt, bolo to, čo Angela Teraz láskavo dobrovoľne Ak chcete hrať tzv Oscartime. Takže budem pokračovať a dvakrát kliknite tu na ikonu. Bude to otvoriť programovanie prostredie, v ktorom budeme čoskoro ponoriť do. Idem do režimu celej obrazovky to pre Angelu, tu. Chystám sa udrieť do zelene vlajka za chvíľu. A potom veľa odpadkov bude padať z neba. A budete používať myš tu skutočne pretiahnuť odpadky do Oscar popolnice. Takže ak chcete ísť ďalej a kliknite na tlačidlo zelená vlajka, hra začne. [Prehrávanie hudby] Oh, milujem odpadky. Čokoľvek špinavé alebo ošumelá alebo zaprášená. Čokoľvek ošúchaný alebo zhnité, alebo hrdzavé. Áno, milujem odpadky. Ak naozaj chcete vidieť niečo gýčovitý, pozri sa na to. Mám tu tenisku to je potrhané a opotrebované. Je to všetko plný dier drží a šnúrky sú roztrhané. Darček od svojej matky deň, keď som sa narodil. Páči sa mi to, pretože it's-- DAVID J. Malan: --green týchto dňoch len hádzať všetko do koša. A tak to, čo jeden z CS50 vlastný personál did-- Jordan, ktorý by ste mohli spĺňajú today-- má vlastne aktualizované to pre dnešnej dobe. A tak mi dovoľte, aby som otvoriť remix namiesto toho pre Angelu. A budeme hrať to miesto pre pár okamihov, kde teraz ste bude musieť rozhodnúť, či medzi niečo hodiť do koša, alebo recyklovať alebo kompost to. Takže tam to trochu tlak na vás, aby ste si toto právo v prednej časti vášho 392 k 497 spolužiaci tu v sále, ak by ste. [Videoprehrávanie] [Prehrávanie hudby] Oh Milujem odpadky. Čokoľvek špinavé alebo ošumelá alebo zaprášená. Čokoľvek roztrhané alebo zhnité alebo hrdzavé. Áno, milujem odpadky. Ak naozaj chcete vidieť niečo gýčovitý, pozri sa na to. Mám tu tenisku to je potrhané a opotrebované. Je to všetko plný dier a šnúrky sú roztrhané. Darček od svojej matky deň, keď som sa narodil. Milujem to, pretože je to odpad. Oh, milujem odpadky. Čokoľvek špinavý, alebo zašlé, alebo zaprášená. Čokoľvek roztrhané alebo zhnité alebo hrdzavé. Áno, milujem odpadky. Tu je niekoľko viac zhnitý veci. Mám tu nejaké newspaper-- [END Prehrávanie] DAVID J. Malan: --are skutočne kompostovateľné. Ale vďaka nášmu dobrovoľníkovi, Angela. Máme stres loptičku pre vás i tu. Takže ďakujem. Takže toto bol napísaný mnou. Ale teraz jeden po skutočnej bývalý študent ktorý realizovaný to, ktorý je hra. Všetko v tomto jazyku s názvom Scratch, že budeme čoskoro olúpte vrstvy. Ale ak by sme jako-- ako o ďalší dobrovoľník? Správne. Poď hore. Ako sa voláš? Glance? Lanke. Lanke, poď hore. Rád som ťa spoznal. Príďte na tejto ceste. Tak toto by mohol mať téma povedomé niektoré z vás. Ale uvidíte tiež, že tam môže byť interaktivita, kde by ste mohli skutočne byť Role charakteru pohybujúce sa okolo. Rád som ťa spoznal. David. Dám vám, Pikachu. Inštrukcie bude o prísť na obrazovke. Ale v krátkej, budete chcú chytiť chutné veci, a vyhnúť sa bomby a ďalšie veci. S kurzory úplne. Takže hit medzerníka. -Pikachu. DAVID J. Malan: Catch tie veci na ľavej strane, nechytí veci na pravej strane. [Prehrávanie hudby] Takže jeden posledný sem. Ak by sme mohli mať jedného viac dobrovoľník sem. Mysleli sme, že znovu niečo from-- v žltej shirt-- od stredy. Ako sa voláš? Mary, poď hore Máriu. A Spomínam si v stredu sme zaviedli pojem binárne a binárne žiarovky. Toto je v skutočnosti teraz vykonávanie tohto rovnakom rozhrania že sme mali na prípadov so svetlom žiarovky, ale tu digitálne vykreslený. A skôr než robiť stres ball-- Teší ma, Davide. Priviezli sme niekoľko svetlo žiarovky z Cambridge. Ak môžete, kliknutím na tie, žiarovky pre ich zapnutie a vypnutie, prísť s binárne reprezentácie hovoria 256. A uvidíte v stredná, aktuálny záznam. Tak, že jeden je na. Takže vľavo bit je zapnutý. MARY: Jo, [nepočuteľných] DAVID J. Malan: No, takže máme jenom-- oh. Tak toto je stĺpec 128. Takže sme až 128. Musíme sa dostať na 256. A môžete pohrať na a off, žiadny veľký problém. Alebo môžete zasiahnuť, že 128 viackrát, ak chcete. Dobre, dobre. 24. Jo, stále bližšie. Bližšie! Oh, v čom je problém potom? Tak v čom je problém? Takže to, čo potrebujeme tento problém vyriešiť? Preto potrebujeme ďalšie bit. A to je úplne primerané skutočnosti, že jo? Ak chcete počítať od čísla 1 až 2 až 3 na 4 až 5, 6, 7, 8, 9 skutočne prevrátiť na 10, že ste bude potrebovať ďalší bit. Takže poďme vlastne vzad tu, a prísť with--, že bola zjavne chcel byť nastaviť. Môžete to urobiť len s 256 žiarovky. Tak ako je to jednoducho číslo 50? Číslo 50. Výborne. Veľký potlesk pre Máriu a jej rovnako. Ďakujem. Takže tento topic-- úmyselné as že was-- bude skutočne opakovať. Najväčšia hodnota, môžete predstavujú s ôsmimi bitov, alebo jeden bajt, je skutočne 256. Ale nie keď začnete počítanie od 0, ako my Zdá sa, že pokračovať v tom tým, že všetky tieto bity off. Ale teraz poďme ponoriť do základnej Realizácia tohto prostredia, a srandista oddelene niektoré z týchto myšlienok. Tak sme za chvíľu už asi vidieť niekoľko rôznych programovacích základy. Prvý z nich zavoláme vyhlásení. Triediť slovies, ak chcete. Akcie. Veci, ktoré je potrebné urobiť. A za chvíľu uvidíte bloky, ktoré vyzerajú ako tento. Povedzte "hello world", napríklad. Alebo počkajte jednu sekundu. Alebo hrať zvuk mňau. A skutočne životné prostredie v ktoré budeme to robiť sa nazýva Scratch. A keď som sa vytiahnuť Scratch bez preloading žiadne skutočné kód, poďme sa rýchlo pozrieť na to užívateľské rozhranie, aby som tak povedal. Kontroly, s ktorými sme v styku. Na vrchole tu zanechal obrazovky, pod menu, Máme pódium, aby som tak povedal. Takže Scratch je to, čo budeme hovoriť Sprite. Je to postava. A môže byť riadený písanie programov proti nemu. A on bude schopný sa pohybovať hore a dole a vľavo a vpravo v tomto prostredí, nie len pohybom myš, ale programovo. Môžem vám povedať, ako kráča doprava, chôdza doľava, hore, dole alebo podobne. A môžem predstaviť ďalšie škriatkovia alebo znaky rovnako. V skutočnosti, na spodnej strane tu je tam, kde uvidíte zoznam vašich škriatkov. V túto chvíľu, len som sa jednu, ale môžem vytvárať, a oni budú vyzerať presne tam dole. Takže ak vzad na okamih, ako je Oscartime-- napríklad, Oscar, na ľavej strane, odpadky môže, bol vodník. A vec, v stredu sa recyklácie bin, bol ďalší vodník. A kompost bol ďalší vodník. A každý kus odpadky alebo recyklovateľné ktorý bol padajúce z neba je tiež sprite, pričom každý z nich bol naprogramovaný individuálne. Ako sa vám program? No, tu vpravo strane je skripty oblasť. A to je miesto, kde môžeme drag and drop kúsky puzzle. Za týždeň, to bude kde sme ekvivalentne písať kód, s viac z klávesnice, ale pre dnes to bude pretiahnutím dieliky puzzle sa palety pre ktoré možno všetky nájdete tu priamo uprostred. Naozaj, v stredu tu je tu celá partia kategórií puzzle kúsky alebo bloky. Jedna sa týkala pohybu, pozrite sa, zvuk, pero ísť hore a dole, Dáta, udalosti konania. Doteraz celkom istý, čo všetko z nich znamená, ale uvidíte, že som bolo pekne rozdelené do kategórií. A napísať program v Scratch, poďme robiť presne to. Chystám sa začať v rámci Udalosti, a pretiahnite tu tento. Po kliknutí na zelenú vlajkou. A teraz, prečo to človek? No pripomenúť, že naše dobrovoľníkmi prišiel, prvá vec, ktorú som alebo nemali bola na príkaz, že zelený vlajky v pravom hornom rohu. A to práve znamená, že spustenie programu. Takže keď tejto udalosti dôjde, čo chcem robiť? Chystám sa ísť pod Vyzerá, a ja budem robiť "pozdraviť." A budem to zmeniť a hovoria niečo ako "ahoj Yale." A teraz budem zväčšenie out, kliknite na zelenú vlajku, a voila, som napísal program. To nie je všetko, že vzrušujúce ešte nie, ale to je presne tam, kde každý začatých tých autora, ako s Pikachu, a binárne žiarovky, a Oscartime, a tak mnoho ďalších príkladov. Začnete super jednoduché, a potom začnete na vrstvu, a pridať na vlastnosti a funkcie. Takže aké sú tieto vrstvy bude pozostávať z? No, za vyhlásenie, budeme tiež majú veci, ktoré sú trochu viac fancily volal Boolean výrazy, po niekom menom Bool. A logický výraz je proste výraz, ktorý je buď pravdivý alebo nepravdivý, áno alebo nie, 1 alebo 0. Akékoľvek polárne protiklady takhle. Buď je to pravda, alebo nie. Ale my tiež bude vidieť tie, ktoré môže vyzerať napríklad takto. Tak napríklad, je myš dole? Sú to druh otázok, ak chcete. Myš je buď dole, pravda, alebo to nie je, false. 1 alebo 0, ak chcete, býva mapovanie. Pravda je 1, false je 0. No a čo menej ako toto? Alebo tak, je to menej ako toto? To je otázka druhov. A ak si dal dve čísla v tam, a to buď x bude menší ako y, alebo rovné y, alebo väčšie ako y, ale tento blok uvidíme, je len chystá odpovedať na otázku, Je to menej ako to? Mohli by sme vidieť aj niečo také. Dojemné ukazovateľa myši. Takže vo Scratch, môžete sa opýtať Otázkou je Sprite dotýkať sa ukazovateľ myši? Inými slovami, je kurzor vznášajúce Na uzáver, alebo ekvivalent? Uvidíme Anding veci dohromady. Môžete sa opýtať na dve otázky, a uistite sa, že oba dať áno, alebo skutočné odpovede pred rozhodovanie niečo urobiť. Ale potom, ako si urobiť rozhodnutie? No, máme tieto podmienky. A my sme videli to v našej Príklad telefónneho zoznamu. Pri pohľade na ľavej strane, alebo právo na Mike Smith. A v stave, vy niečo potenciálne, ak je výraz pravdivý. A skutočne, všimnite tvary teraz. Tam je to zástupný symbol teraz na strope, kde môžeme fit-- keď som späť o jeden slide-- tohto tvaru. Nie je to úplne rovnakú veľkosť. A skutočne, uvidíte, že Scratch zmení veľkosť veci dynamicky prispôsobiť skladačky, ale Tvar je to, čo je dôležité. To, čo vyzerá ako že, a v skutočnosti je to zhruba rovnaký tvar že by malo byť v tam. A ak chceme niečo urobiť týmto spôsobom, alebo že cesta, ak inak, máme túto hádanku kus Scratch rovnako. Teraz predpokladajme, že ste chceli ak áno, inak v prípade, alebo inde. Inými slovami, trojcestný rázcestí. Tak čo môžete robiť len tým, pozrel sa na to? Dokážem sa tento kúsok skladačky, a nezdá sa, aby sa zmestili, ale opäť, Scratch sa deje re-veľkosti pekne pre nás. Mohol by som začať vrstvy tieto veci dohromady. Takže teraz mám trojcestný vidlica, ak je to pravda, to urobiť. Inak ak táto druhá vec je pravda, tadiaľ, inak ísť touto inou cestou. A v Muppet filmu, rázcestí, aby som tak povedal, medzi Yale alebo Stanforde, bol presne to, len dve podmienky. Buď ísť tadiaľ, inak tadiaľ. No, slučky tiež existujú v programovaní. A sme použili tieto už v triedy a v pseudokódu kódu, a iste v tých Scratch programy navždy. Scratch má tento kúsok skladačky, ktorý bude len vám to niečo, čo navždy. A niekedy budete chcieť niečo robiť večne. To nemusí byť nutne chyba, je to preto, že chcete hodiny ísť ďalej, alebo hru hrať ďalej. Alebo môžete zadať konečný počet kroky, ako s týmto blokom opakovania tu, , Ktoré sa bude opakovať niečo 10 krát. Môžeme nastaviť premenné, budeme čoskoro vidieť. A s premennými, podobne ako v duchu na algebre, ako je X alebo Y alebo Z. Je to niečo, symbolické, že je možné uložiť nejakú hodnotu, niektorí údaj, že možno budete chcieť si spomenúť na neskôr. Najlepším príkladom toho by mohlo byť hra, kde máte skóre, ako v Pikachu. Koľko kusov torty a ktovie čo ešte ste sa chytiť? Tak, ktorá by mohla byť premenná volal skóre, ktoré začína na 0 ° C. A potom zakaždým, keď chytil kus koláča alebo sladkosti, alebo podobne, sa dostane zvýšený. Dostane pridaná do jeden po druhom. A tak premennú ukladá kus informácií, ako to. Potom je tu pole, a my prídeme späť k týmto Za týždeň alebo dva čas, ale pole je niečo ako zásob alebo aktovka, vnútorné z ktorých si môžete dať virtuálnu veci. To vám umožní ukladať viac ako jeden údaj. A, ktoré by mohli byť užitočné -Li v hre, ste druh chodí vyzdvihnutie veci. A možno, že chcete zachovať všetkých týchto kusov koláče okolo, a nie len jesť je jeden po druhom. A potom je tu milovník konštrukt my budeme prísť k volaných funkcií alebo postupov. A keď ideme rýchlejší tu, budeme vidieť, že sa jedná o veľmi prirodzené riešenie problémov že ideme stretnutie. Ako sa naše programy začať stále väčšie my budeme začne všímať vzory v kód, ktorý sme písať, že kúsky skladačky Sme preťahovanie. A akonáhle zistíte sami robíte niečo, čo znovu a znovu, alebo ešte horšie kopírovanie a vkladanie programovanie kód, ktorý ste napísali, to je pravdepodobne príležitosť vytknúť čo budete mať kopírovanie a vkladanie, a to uvedením v takzvaný "funkciu." Ale o tých v oveľa viac podrobností onedlho. A potom je tu ešte obsiahlejší funkcie. Pre tých z vás pohodlnejšie, alebo prijímanie APC alebo jeho ekvivalent, Scratch skutočne podporuje veci ako závity a podujatí a ďalšie. Tak si uvedomiť, že to má celkom vysoký strop, aj keď je to tiež veľmi široko prístupné ľudí ktorí nikdy predtým naprogramované. Takže naozaj, poďme sa pozrieť na jednoduchý program alebo dva. Už sme sa pozrel na to, ako by mohol pozdraviť s Scratch. Nechaj ma ísť dopredu a otvoriť trochu zaujímavý program že som napísal v predstihu. A toto je nazývaný Pet mačka. Všetky tieto programy budú k dispozícii na internetových stránkach CS50 je. Naozaj, už tam. Takže si môžete stiahnuť je, a hrať sa s nimi, a Problem Set 0, čo je tiež na internetových stránkach Course, ste povzbudzovaní k chôdzi cez tieto. A navyše, máme počet priechodných videá on-line, v ktorom som a CS50 tím skutočne chodiť cez každého z týchto príkladov na oveľa Pomalšie tempo, veľmi rýchly forwardable, alebo převinutelný tempo, takže môžete chodiť cez tieto vo svojom voľnom čase tiež. Tak tu je Scratch na ľavej strane. Tu je program, na pravej strane že už som pre-vyrobené. Dovoľte mi teda priblížiť na túto tému. A mohol by sa niekto v angličtine, pretože vedel, to, čo viete, práve od tejto chvíle as na to, ako Stieracie práce, tak nejako hovoria v anglickej frázu alebo vetu, čo tento program zrejme robiť? Jo, v oranžovej košeli. Divákov: [Nepočuteľné] DAVID J. Malan: Áno, ak vaše kurzor je na Scratch mačka, hrajú záhrade mňoukajícího zvuk. Ale všimnite si, ako sme sa vyjadriť, že. Je tu očividne slučka tam navždy. A potom je tu Podmienkou je, keď je expression. A spoločne, čo ty na mysli? To znamená, že tento program práve vždy beží, a je to len stále čaká a sledovanie a počúvania pre mňa hýbať myšou na mačku. Pretože zakaždým, keď som to urobil, as navrhujete, že to bude, ako to urobiť. Dovoľte mi začať program. Nič sa zdá byť deje, ale všimnite si, ako je to zdôraznené teraz v žltou čiarou. To jednoducho znamená, že je to beh. A pretože je tu navždy slučky, je to stále beží. Dovoľte mi teda pohnúť kurzorom nad Scratch. [MEOW] [MEOW] A keď som ju presunúť preč, [MEOW] teraz sa zastaví, ale program je ešte beží. [MEOW] A tak, rozkošný. [MEOW] Takže poďme otvoriť mierne pokročilý príklad tzv Nepoužívajte Pet Cat. A teraz poďme pozrieť, čo sa deje tu. [MEOW] meowing. Takže je to trochu na auto pilot, ak chcete. --pet mačku. Zaujímalo by ma prečo. [ROAR] [MEOW] Tak ako sa to funguje? No, môžete trochu rozumu cez to intuitívne, možno. Ale poďme sa pozrieť na skutočný kód. Takže znova, keď zelená vlajka kliknutí, to navždy. Čo chcete robiť večne? No, keď dojemné myš ukazovateľ, potom hrať zvuk, ktorý sa zrejme s názvom Lion 5, že je vo vnútri tohto projektu, inak prehrať zvuk mňau, a potom čakať dve sekundy, takže že to nie je meowing neustále. V skutočnosti, môžete veľmi rýchlo začať obťažujú seba a svojej spolubývajúcej. Poďme odstrániť tento blok. A všimnite si, čo je pekné o Scratch. Veci tak nejako drag and drop a blokovanie. Takže znova, dorastá do vyplniť to, čo chcete. Ale keď som sa odstrániť to, a potom hit hra, [POČÍTAČ výkyv SOUND] --it to trochu zakopnutiu samotný, pretože je to doslova robiť to, čo hovorím. Je to hovorí navždy hrať tento zvuk, ale Nebudem dávať mu šancu dokončiť. A tak to by bola chyba. A to je dôvod, prečo sme mali táto vec tu teraz. Takže poďme skutočne začať od scratch-- druh hračka mierne intended-- v ktorej teraz máme mačku ťah. Takže ja budem robiť za behu toto. Chystám sa priblížiť tu, len aby ma začal na udalosti. A zelenou vlajkou klikli. A je tu iné spôsoby spustiť skripty. Budeme, aby to jednoduché tu. A teraz idem vpred a ísť pod kontrolou. A opäť, ak ste zabudli, kde veci, stačí kliknúť okolo, a nakoniec zistíte, že je znova. Takže chcem, aby navždy robiť čo? Chcem používať pohybový blok Ja viem, že existuje, presunúť 10 krokov. Takže poďme sa pozrieť, čo sa deje tu, keby som hrať túto hru. Našťastie to nie je príliš ďaleko. Stále ho trochu pochytiť za chvost a vytiahnuť ho späť. Ale program je stále spustený, takže je to trochu ma bojovať. Ale to by bolo celkom pekné, keby som podmienečne opraviť v kóde. Pretože sa jedná ne-- v skutočnosti je to naozaj nie je zábavná hra pre každého, kto v akomkoľvek veku. Takže poďme sa pokúsiť opraviť tým, že ktoré majú nejaký druh podmienok. Takže ja idem dole Control, a potom v prípade. Páči sa mi tento nápad. Takže po presťahovaní 10 krokov, if-- dovoľte mi zmysel tam, kde som. Chystám sa ísť pod Sensing, a potom to vyzerá, môžem ísť sem. riadok do tvaru zápasov. Veľkosť nie je, ale je to porastie vyplniť. A teraz je to trochu ponuka. A teraz myš pointer-- nemám Ak myš, chcem na okraj. Takže Scratch je dosť chytrý, aby vedel keď je vodník dotýkať okraja. Čo chcem, aby skutočne urobiť? Nechaj ma ísť napred a zmeniť pohyb. Vieš čo? Budem mať ho otočiť. Takže na 15 stupňov nie je naozaj mi pomoct. Chcem, aby otočiť a ísť na druhú stranu. Takže poďme sa pozrieť, čo sa deje tu, keď som hit Hrať hneď. OK, trochu hlúpy hľadá, ale to robí presne to, čo som povedal. A to otáčaním celej sprite. Teraz sa ukazuje, môžem opraviť. A ja som nevedel, ako to opraviť na prvom mieste. Tak nejako som musel futz okolo a vidieť, že najlepší spôsob, ako to urobiť. Ale keď idem to-- pozrime sa, pohyb. Oh, našiel som toto. Vlastne, nastavenie rotácie štýl. Ľavá, pravá, alebo nie otáčať, alebo okolo. A ukázalo sa, že je to, čo chcem. A ja, aby to nie je moja slučky, pretože nemám potrebné nastaviť štýl rotácie viackrát. Idem dať to na samom vrchole Tento program tak, že sa dostane raz nastavený, a potom spomína. A teraz som to skúsiť znova. Dovoľte mi, aby som zastavenie programu. A teraz, že to opravili chybu. Takže som opakovane zlepšenie na to. Program začína byť trochu zložitejšie, a väčšie, ale beriem dieťa kroky, aby som tak povedal, a malé uhryznutie z problému aby si to lepšie a lepšie. Ale aj toto, je tak trochu mimo. Vieš čo? By som sa opýtať niekoho, kto je naozaj dobrý, strašné hlas chceli prísť? Niekto s hlasom. Uh, jo. Poď hore. V zelenej košeli. Tak to dopadá, že je nejaký iný zábava veci, estetika a zvuky podobne. Tu je meow. Aj kliknite na kartu Zvuky. [MEOW] Tu je meow. [MEOW] [MEOW] [MEOW] --actually záznam niečo odtiaľ naše vlastné. Takže poďme urobiť presne to. Namiesto použitia tohto mačka zvuk, poďme choďte do toho tu, a Ako sa voláte? Nicku, rád ťa spoznávam. Je to David. Takže vo chvíli, idem narazila na tlačidlo Record. A ak môžete len kričať do notebooku, "Au," ako keby vy práve vošiel do steny, že bude veľmi ocenil. 1, 2. NICK: Au! DAVID J. Malan: Úžasné. A teraz môže robiť tu trochu úpravy. Chystáte sa zbaviť z najpokojnejších častí. A ja si myslím, že je to dobré. Ďakujem veľmi pekne. NICK: Pleasure. DAVID J. Malan: Mám len premenoval to "Au," ale teraz idem vrátiť do svojich skriptov. A upozornenie, že je naozaj zvuk sem. A budem pokračovať a prehrať zvukový Ouch, a budem robiť, že ak je to dotýka iba za okraje. A potom budem mať to otočiť. Takže poďme sa pozrieť, čo sa tu deje. Poďme na celú obrazovku. [Videoprehrávanie] -Ouch! Au! Au! Au! Au! Au! Au! Au! [END Prehrávanie] DAVID J. Malan: Takže si uvedomíte, že sme už trochu šťastia. Budem ho mať ťah rovnako ako 100 krokov naraz. Vplyv, ktorý teraz sa chystá na be-- [POČÍTAČ závada zvuk] So v rozumných medziach. Takže príležitosť na upresnenie, že Ďalej ak skutočne chceme. Takže teraz poďme predstaviť iné poňatie. Ak chcete nechaj ma ísť do jedného s názvom Počítanie ovečiek a použitie niečo nazýva premenná. To je rozkošný malý ovce, a Zmenil som jeho kostým aby som tak povedal. Takže aj keď je predvolená je mačka, môžete nahrať, môžete čerpať, môžete urobiť ľubovoľný počet znaky na vašom sprite. Tu je program, ktorý je robiť to, čo v angličtine? Opäť na základe práve to, čo viete teraz. Čo tento program robí? Jo, to bude počítať. Jedno číslo naraz. Máme zjavne majú tento set čítač. Ja neviem, čo to je, ale možno je to variabilné. Je to len obal, x alebo y. Ale počítadlo slovo je viac popisná než x alebo y je matematik. Takže môžeme použiť anglických slov pre veci. Forever, jednoducho znamená, aby robil to. Povedzme, že čítač. Tak kde sa to vzalo? No, to ukáže, že counter je premenná. Takže je to len ďalší puzzle kus som vytvoril v predstihu. A aj keď sa to stane nebyť rovnaký tvar tu, Normálne by ste povedal niečo ako ahoj tu. Môžete tiež pretiahnuť premennú takže to je to, čo nás dostať povedal. Potom som čakať na sekundu, som zmeniť čítač o jednu, postupne ju pridaním jedného. Tak, že čistý efekt je Tento roztomilý počítanie ovečiek. Aj keď to počíta sám. Teraz je to veľmi rýchlo dostane nuda preto, že to bude to naozaj navždy, ale to je presne to, čo Dizajn programu predpisuje. Umožňuje teraz pokúsi ďalší príklad ktorý využíva premenné. To jeden s názvom Hi Hi Hi, že sa dostať nepríjemné rýchlo. Teraz tento jeden má dva skripty. A tak znova, berieme detské krôčiky. Začali sme s niečím super- malý, sa k nej pridá, pridal sa k nemu. Teraz chcem niečo urobiť ešte dynamickejšie, tak chcem byť načúva dve rôzne veci naraz. A tak na ľavej strane, keď zelenou vlajkou klepli Dal som na premennú, ktorá som napísal vopred volal Vypnutý. A ja ľubovoľne nastaviť na hodnotu 0. Takže Scratch nemá pravdivé a nepravdivé, ale to predsa má 0 a 1. Takže môžem priblížiť, že rovnaký nápad. A potom navždy, ak je priestor bar lisované, potom nastavte premennú na 0. Alebo ľúto. Ak stlačíte Space, a ak stlmený, je premenná, je 0, potom nastavte stlmený na hodnotu 1, inak má hodnotu stlmený na hodnotu 0. To sa zdá byť niečo ako, že sme len to, a vrátite späť prácu. Ale čo je to efekt? Zakaždým, keď som narazila na medzerník, čo sa stane s mojím premenné volal stlmený, logicky? Tak nejako dostane prevrátený. To sa zmení z 0 na 1, alebo 1 na hodnotu 0. Tak to trvalo niekoľko blokov vyjadriť, že, ale všetky Robím je prepínanie stav táto premenná 0 alebo 1, alebo 0 alebo 1 Zakaždým, keď som narazila na medzerník. A teraz tu, čo sa to robí? Forever, ak utlmený je 0, takže ak stlmený je nepravdivé. Takže ak to nie je stlmený, je sémantika tam, prehrať zvuk mrože, a myslím, že Hi Hi Hi pre dvoch sekúnd, počkajte dve sekundy. Takže teraz si všimnúť tieto skripty sú účinne bude prebiehať paralelne, takže je možné počúvať na jednu akciu, druhý urobiť rozhodnutie na základe tejto akcie. A to môže urobiť navždy. [SEA LION štekať] [SEA LION štekať] Bude to, ako to urobiť, a navždy [SEA LION šteká], ako som práve urobil. A teraz je to stále beží ale ja som "tlmené" hra. [SEA LION štekaním] A to je všetko ten chlap robí teraz príliš. Poďme otvoriť ďalší príklad tu. Nechaj ma ísť do akcie, a teraz toto roztomilý taky. Ale všimnete, že má dve škriatkov. Takže nie len dva skripty s sprite jednu, ale dve škriatkovia. A keď som kliknite na modrú chlap ako ja už som vidieť, že ako jeden program sa tu, že doslova len hovorí, to, keď som dostal udalosť, hovoriť "Polo" po dobu dvoch sekúnd. Takže ak ste niekedy hrali v bazén, hra Marco Polo, v prípade, že oranžová chlap skript nejaký náznak, zrejme zakaždým, keď som trafil medzerníka, čo je oranžový človek robiť? Bude sa hovoriť "Marco." A potom je to nový blok. Už sme to nevideli, ale vysielať udalosť. A ja som to mohol nazvať Udalosť niečo chceme. Vrátime sa k tomu možno onedlho. Ale vysielanie udalosť je spôsob, ako pre jednu sprite hovoriť do druhého V podstate okolo správu. Nie je to správa, ktorú vidieť. Nie je to niečo, vizuálne. Je to druh počítačového správy že ten druhý je počúva. Vzhľadom k tomu, naozaj, modrej chlapa, odvolanie ak nemá zelenou vlajkou kliknutie. On namiesto toho má, keď som dostal udalosť. Keď sa dostane podal túto poznámku v triede, tak povediac, mal by povedať "Polo". A tak čistý efekt je, že keď som hit zelenú vlajku, nič sa nestane. Ale keď som narazila na medzerník, hovorí "Marco," on odpovie s "Polo". Ale jediná sprite, že som interakciu s je oranžová raz. Takže toto je spôsob, ako druhu odovzdávanie správ medzi škriatkov a s nimi komunikovať jeden s druhým. Teraz sa pozrime na jednu poslednú jeden tu tzv závity. A všimnite si to tým, že hrá to. Tak to sú dva škriatkovia. Vták je druh lietania okolo. On poskakovanie. Neexistuje žiadna "Au," ale rovnaký nápad. Ale mačka vyzerá celkom šikovný. Čo je to mačka zrejme robí? A čakať na to. Čo je to mačka zrejme robí? Nie je to len poskakovanie. On po vtáka. A tak sa zdá, je tu spôsob, s kombináciou blokov here-- a poďme sa pozrieť na mačku naozaj rýchlo. Forever, pokiaľ sa dotýka vták, potom hrať zvuk Lev 4, čo to je. Raz Počuli sme to. V opačnom prípade, smerovať vták, a presunúť jeden krok. Teraz je skutočnosť, že je to jeden krokom je to, čo dáva vtáka trochu výhodu spočiatku, ale ak budeme namiesto toho túto 10, napríklad tak, že každé iterácii slučky, že je pohybujúce sa 10 krokov času. Takže viac priestoru. Pozrime sa, čo sa stane potom. [LION ROAR] Nie všetci oveľa lepšie. Takže teraz poďme pokúsiť sa zlepšiť na tieto trochu iteratívne, a vrátiť sa k tomu Pojem funkcie. A skutočne jedným zo základných takeaways z dizajnu triedy. Nie je to len písanie programov, ktoré fungujú a že sú správne, ale sú dobre navrhnutý. A dizajn je oveľa viac subjektívne, a budete mať lepšie na to v priebehu času. Ale poďme vziať nejaké dieťa kroky na začína s programom, ktorý pracuje, absolútne, ale to nie je veľmi dobré. Nie je to moc dobre napísané. Tak tu je program, ktorý to robí. Kašeľ, kašeľ, kašeľ. Čo program vyzerať? Vyzerá to správne pre mňa. Je to hovorí lehátkom Druhá, potom čaká. Potom sa znovu hovorí, potom to čaká. Potom sa znovu hovorí, potom to čaká. A potom program implicitne končí, pretože neexistuje žiadny slučky. Ale prečo je to zle písomné programu? Dokonca aj keď ste nikdy predtým naprogramovaný? Rovnako ako to, čo trie zle, možno tu? Jo? Divákov: [Nepočuteľné] DAVID J. Malan: Presne tak. Ste opakovanie si znova a znova. A doslova, kopírovať a vložiť I dvaja z znovu a znovu týchto blokov. A to je presne ten druh zdravého rozumu skontrolujte, že by ste mali robiť. Počkaj minútu. Mal by som naozaj to robiť? Takže čo je to, čo je zrejmé riešenie snáď? Majú nejaký druh slučky. A ja nie celkom stiahnutie čo je kúsok skladačky je, ale keď som sa pozrieť na ďalšie iterácie tu, v skutočnosti, že to nie je len navždy slučka, je tam opakovať určitý počet opakovaní. A tak som sa zadaný tri. A teraz Všimnite si, ako veľmi pevnejšie, ako oveľa stručnejší je tento program. A v istom zmysle, ako oveľa viac udržateľný. Chcem chcete zmeniť slovo od kašľa k niečomu inému, ako mesta Akko, ako by kýchanie. Potom som ju zmeniť v jednom miesto, a nie tri. Takže to už sa cíti ako mierne lepší návrh. Dovoľte mi namiesto toho otvorený kašeľ 2, naša tretia príklad. Všimnite si, ako počítačový vedec, Aj začať počítať na 0, typicky. Teraz to vyzerá trochu desivejšie na prvý, ale výsledok je rovnaký. Kašeľ, kašeľ, kašeľ. Ale to, čo sa zdá byť v zásade nové v hornej časti programu? Ja som odstránil slovo. Odstránil som čakania. A to, čo som zapojený miesto? Funkcie. Kašeľ blok. Myslím, úprimne povedané, ja sa zdajú trochu idiot, keď som nemal zrovna začať s blokom to je zrejme nazvaný "kašeľ," či je to všetko, čo chcem ho robiť. Ale to neexistuje v Scratch. Skôr som išiel k jednému v paleta volal Ďalšie bloky tu, a ja som pretiahnuť túto veľkú fialovú vec tu, že mi umožňuje definovať funkciu. Je mi v podstate umožňuje vytvoriť vlastné puzzle kus, ktorý možno nazvať čokoľvek I chcú, že môže robiť čo chcem, ale to, že dáva meno. To mi dáva novú, fialový kúsok skladačky že teraz robí, čo poviem, to urobiť. Takže tento fialový kúsok tu zodpovedá tento tu. A čo to robí? To hovorí, kašeľ Aby Druhým, a potom to čaká. A teraz som tak nejako vytvoril moje vlastné kúsok skladačky, tak, že sa chová presne to rovnakým spôsobom. Tak som si to robiť toto. A skutočne, tam to bude viac a viac príležitostí pre modularizácie, a pre vrstvenie, zložitosť nad sebou. Ale táto základná myšlienka, Naozaj v probléme, povedal 0. Čo budete byť napadnuté urobiť, je k stiahnutiu Scratch, alebo použite ho na webe, a jednoducho sa baviť s ním. Dáme vám sadu Požiadavky, ktoré majú zvuk, a niektorí počet dielikov. Ale budete robiť presne to. A budete si uvedomiť, že budete chcete vziať nejaké dieťa kroky spočiatku, kým váš program dostane stále viac a viac zložitejšie. Ale vzhľadom na to je to Najlepší spôsob, ako to môžem urobiť? Môžem sa vyhnúť tejto inštinkt Možno, skopírovať a vložiť? Ale skôr, než Zadanie problému 0, a než sme sa odložiť, myslel, že by sme trvať až jeden viac dobrovoľník keby sme mohli, na poslednú programu To je možno najviac montáž vôbec, vzhľadom k dnešnej miesto. Poď dole. Jo. Áno. Ako sa voláš? Uh Oh. To je v poriadku. Obaja majú dole. A ja som sa s tým vysporiadať nejakým spôsobom V rámci tohto nasledujúcich desiatich sekúnd. Tak poď dole. Poď dole. Dovoľte mi, aby som prišiel sem hore. No ták. Dobre. Poďme sa pozrieť tu. Takže si všimnúť veľmi rýchlo sa tu, ak by ste chceli prísť nahor. Urobíme dve kolesá to. A Ako sa voláte? SABRINA: Sabrina. DAVID J. Malan: Sabrina a? YING GEE: Ying Gee. DAVID J. Malan: Ying Gee. Teší ma oboje. David. Takže náš posledný príklad je tu volal Ivy je Najťažšie hra. A prečo nie máme robiť Level 1, a vy úroveň 2. A uvidíme, ako ďaleko Okrem toho sme vlastne ísť. Napísal študent v minulom roku, remixovanej ja tak, že by to ísť cez dobre v New Haven. A ja vám hru, ktorá sa chystá zahŕňať presun šípok hore a dole, a dostať na Yale na cieľovú čiaru. Ideme na to. [Videoprehrávanie] [MUSIC - NFL na Foxu ústrednú melódiu] [MUSIC - MC Hammer, "U nemôže dotknúť  Tento "] -U Nemôže dotknúť toto. U nemôže dotknúť toto. Nemôže dotknúť toto. My, moje, moje, moja hudba ma zasiahne tak, tvrdý, robí mi povedať, oh, môj pane. Ďakujem za požehnanie mňa s myseľ k nádchu a dve HYPE nohy. To je dobré, keď viete, že ste dole. Super hlupák krajan z Oaktown. A ja poznám ako taký, a to pauza uh, nemôžete dotknúť. Hovoril som ti, Homeboy U nemôže dotknúť toto. Jo, to je to, ako žijeme a vy viete, U nemôže dotknúť toto. Pozrite sa mi do očí, chlape. U nemôže dotknúť toto. Yo, dovoľte mi, aby som poprsie funky texty. U nemôže dotknúť toto. Čerstvé nové kopy a nohavice. Máš to takto a vy viete, tancovať. Takže presunúť zo stoličky a získajte lietať dievča a chytiť tento úder. Aj keď je to valcovanie drží na čerpadlo trochu bit a dajte im vedieť, čo sa deje. Ako to. Ako to. Cold na misiu, aby vytiahnuť na chrbte. Dajte im vedieť, že ste príliš veľa a to je krok uh nemôžete dotknúť. Jo, hovoril som ti, U nemôže dotknúť toto. Prečo ste tam stál muž? U nemôže dotknúť toto. Yo, zvuk zvončeka školské in, výhonok. U nemôže dotknúť toto. Daj mi pieseň, rytmus robiť je potu, že to, čo som, že sa im teraz. Vedia, že keď hovoríte o Hammer hovoríte o prehliadke, ktorá je medializované. A tesné speváci sú potenie tak prejsť im mikrofón. Alebo páska sa dozvedieť, čo že to bude trvať a teraz že to bude horieť grafmi. Legit buď pracovať tvrdo, alebo môžete tiež skončiť. Pretože viete, U nemôže dotknúť toto. U nemôže dotknúť toto. Rozobrať to. Prestaň. Čas Hammer. Ísť s prúdom v rotácii ak nemôžete prejsť na to potom ste pravdepodobne sú mŕtvi. Takže mávať rukami v Vzduch [nepočuteľných] To je to pre víťaza tanci to a budete sa dostať tenšie. Presuňte snímku váš zadok len pre minútu poďme všetci robia hrče. Jo. U nemôže dotknúť toto. U nemôže dotknúť toto. Radšej medializované U chlapec nemôže dotknúť toto. Zazvoniť školské späť. Rozobrať to. Prestaň. Hammer čas DAVID J. Malan: To je pre CS50! Vďaka moc za spájanie sa k nám! Uvidíme sa vonku. [END Prehrávanie] [Videoprehrávanie] [MUSIC - "Seinfeld" THEME SONG] Hej David. Hej, David. Ako to ide? Dobrý práce, dnes. -Tak Ste premýšľal o tom, čo sa chystáte urobiť pre von vtipy? Nie, ja nemám nič. Čo if-- čo keď je to vonku vtip? -like, Vybaľovanie vozíky? -Uh-Jo. Viete, je to o ničom. -Takže Radi, žiadny príbeh, nie konfliktu, žiadne riešenie. Nerozumiem. O čom to je potom? -Nothing. -Tak Sme sa vtip je o nič, a nemáme žiadne herca. Kto to bude v tomto? -Nie nie nie. Chcem povedať, že budem v ňom. -You'll V ňom byť? Jo! Ľudia sa vždy hovoria ja som postava. No, myslím, že je to pravda. Ale kto iný bude v ňom? Nemôže to byť ty. -Ty Bude v tom, Gavin, Dan, Dan, Colton, Z'Myla, Alysse, Doug, David, všetci. -Tak To je o ničom, a všetci v nej je? -Absolutely Nič. Toto je smiešne.