[VIDEOPŘEHRÁVÁNÍ] [Dveře auta Vypínání] [CAR startování motoru] [Přehrávání hudby] -Moving Vpravo podél v hledání dobrých časů a dobré zprávy. S dobrými přáteli nemůžete prohrát. Tohle se může stát zvyk. -Opportunity Klepe Pojďme jen natáhnout ruku a chytit ho. Jo! Holandsku existují vedle dalších budeme nab to. -We'll Zádrhel trampovat, autobusem nebo žlutý taxík to. -Dammit. -Jsme Pohybuje vpravo podél. -Footloose A fantazie zdarma. -Jak Je polovina zábavy. Přijďte sdílet je se mnou. -Jsme Pohybuje vpravo podél. -Jsme Bude sdílet zátěž. -My Nepotřebují mapu k si to show na silnici. Hej Fozzy, chci, abys odbočit vlevo pokud přijdete na rozcestí. -Ano pane. Odbočit vlevo na rozcestí. Odbočit vlevo. -I Nevěří, že. -Cruising Právo spolu jsme zjistili, světla na dálnici. -A Si cestu nebo cestu. -Tak Věřit svým navigaci. -Movie Hvězdy s efektní auta a život s shora dolů. -Jsme Útokem velké kopce. Jo, bouře má pravdu. Měla by být sněží? Ne, já si to nemyslím. -Moving Vpravo podél. -Footloose A fantazie zdarma. -Jsi Připraven na velký čas. -Je To na mě připravená? -Moving Vpravo podél. Pohybující se vpravo podél. Pohybující se vpravo podél. Pohybující se vpravo podél. -Myslím, Že je lepší zastavit. -Ano pane. [END Přehrávání] [APPLAUSE] DAVID J. Malan: Tohle je CS50. A to je konec týdnu 0, ale začátek krásného přátelství. Jsme proto rádi, že se zde na Yaleově univerzitě vůbec poprvé s naším přítel Scaz, a Jason a Andy. Všechny 40 CS50 TF let a CA je tady na Yale. A všechny z vás. A ve skutečnosti, je to asi čas to-- [APPLAUSE] Takže, i když většina z přednášek bude skutečně v Cambridge v letošním roce, je skutečností, že záměrné, a moc záměrně v CS50, Já si myslím, že jsme blíží bod technologicky, a pedagogicky, kde může být lepší než vzdělávací zkušenosti, aby se zapojily s některými materiálu si on-line kurz je. Opravdu, reality-- a když jsem přesvědčen, tento philosophically-- je, že přednášky nejsou zvlášť účinným prostředkem pro dodávání dosti komplexní informace. Určitě více než hodinu a dlouhodobě rozpětí času. A skutečně Každých pár minutes-- Vzpomínám si sám sebe v college-- jste zóny se na chvíli, Vám chybí některé složité téma, a vy jste odešel do značné míry na dalších 45 minut. A skutečnost je taková, že to, zda jste tady v New Haven nebo Cambridge nebo mimo něj, jednoduchost má schopnost zastavit a rychle vpřed, přetočit, hypertextového odkazu na související zdroje, Fulltextové vyhledávání přepisy a podobně, je příležitost, která Troufám si tvrdit, pro naše on-line studenty i mimo New Haven, nabízí jim příležitost opravdu uchopit koncepční materiál, který jsme zavést v přednáškách tím lépe. Ale nakonec v CS50, je Zkušenosti studentů je charakterizován tak, tak mnohem problémovými sad kurzu je, nebo týdenní programování projekty, jejichž sekce kurz vedla o výuku chlapi, Polední úřední hodiny vedené asistenti kurz a výuka chlapíci, a opravdu takový akce jako CS50 Puzzle Day, CS50 je Hack-a-thon se CS50 Fair, týdenní obědy, a ještě mnohem více. A tak ať už jste tady v New Haven, nebo ladění z dálky, dnes v Cambridge, a budeme vás zase brzy uvidíme, realita je to jedno a totéž třídy. A jsme tak nadšeni, tady všichni spolu dnes. A tak na konci semestru, ať už tady nebo dálky, dobře doufejme, že budete nosit hrdě, šťastně, a možná s trochou úlevy, tričko, které dosvědčuje tobě že vynaložil CS50. Tak kde jsme se nechat off ve středu? Vzali jsme se podívat na výpočetní myšlení. A to je to k tomu, co jsme se destiluje počítačové vědy k, přinejmenším pro teď. Ale my ji destilovanou trochu dále do alespoň tři komponenty prvky. Vstupy, takže to, co je Problém se snažíme vyřešit? Výstupy, co je odpovědět doufáme, že se dostat? A tam z reprezentace. A nebudeme bydlet tady na poté, co na binárním, nebo dokonce ASCII, a podobně tak moc, ale spíše brát jako samozřejmost že může představovat tuto informaci, protože daleko více zajímavých částí z těchto problémů nejsou jen vstupy a výstupy, ale algoritmy že jít do řešení těchto problémů. A možná pamatujete z druhý den, že jsme trvalo docela tradiční Koncept hledá někoho v poměrně velké telefonního seznamu, nebo obecněji digitálně v těchto dnech, jen velmi velký soubor dat. Opravdu velký seznam kontaktů, s spousta jmen abecedně seřazeny. A my jsme si uvědomili, že zatímco já Tento problém by mohl přiblížit jednoduše za použití lineárního approach-- stránku po stránce, nebo dokonce dva je na první time-- jsme zjistili že více intuitivní algorithm-- jen tak dělení a dobývání znovu problém, a znovu, a again-- polovinu ji s každým čas, nám dal tuto zelenou výsledek. A je to tak mnohem plošší protože to naznačuje, že i když tento problém dostane větší a větší, jako je tomu v těchto dnech s daty soupravy a reality-- Facebook a Google výsledky vyhledávání a jako-- dělá náš algoritmus provádět stejně efektivně s těmi většími kousnutí jak tomu bylo i při menších kousnutí. Teď to vyvolává otázku, co můžeme skutečně řešit podobně s tímto druhem intuice? Tento druh rozdělení a dobývání? No, mohli bychom udělat něco jako je to dnes tady. Mohli bychom vzít docházku. Takže možná, jako 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11-- nebude vše, co efektivní. Tak počkejte, základní školu. 2, 4, 6, 8, 10, 12, 14, 16, 18 a tak dále. Ale mohli bychom udělat něco lépe? Jsem si jistá, že nemůžu to udělat sám. Takže pokud budete humor nás jen za Okamžik, přinesli jsme u nás algoritmus, který je právě dostal tři kroky, ale to require-- pokud vás ne mind-- všichni postavit, pokud byste. Tak, se všemi z nás nyní stojí, krok jeden z tohoto algoritmu je následující. Vstaňte a přiřadit yourself číslo 1. Takže v tomto okamžiku, doslova všichni v této místnosti doufejme, že se myslí na sebe, však nešikovně, číslo 1. Nyní druhý krok tohoto algoritmu je bude zahrnovat následující. Druhý krok, vypárovat se někdo stojí, přidat vaše čísla dohromady, a přijmout částku jako vaše nové číslo. Rychlá kontrola příčetnosti. Jaké číslo je každý myslí teď? SO 2, snad s výjimkou pro jednoho, trapné, osamělý člověk. Pokud budeme mít lichý počet lidí v místnosti. Takže jedna osoba by mohla být ještě číslo 1, je to v pořádku. Ale krok tři tady, jednou z vás měli sednout. Druhý by měl jít zpět na krok dva, a opakuji, pokud byste. Takže pokud ještě stojí, měli byste být mezi těmi, se vrací do kroku dvě. Pokračuj. Pár lidí stále stojí. Takže, pokud ještě stojí, spárovat s někým. Dobře, klesající dolů. Pár lidí stále stojí. Pomůžu-li to třeba. Vzpomeňte si na klíče jídla s sebou tady, je to, jak mnohem rychleji než já tohle je počítání. Takže pojďme se podívat. Můžu pomoct. Takže to, co je číslo stále na mysli? Diváků: Jsem na 44. DAVID J. Malan: 44, takže jdete do toho a sednout. Jaké číslo jste na mysli? Diváků: 74. DAVID J. Malan: 74. Dobře, jděte do toho a sednout. Kdo jiný je ještě stojí? 86. A je někdo jiný ještě stojí? Jaké číslo? Slyšel jsem, 67. A pak v horní části? 32. Někdo jiný stále stojí a myslet na čísla? Oh, ahoj. Promiňte. Být hned zpět. 42. Někdo jiný? Diváků: 47. DAVID J. Malan: 47. Je ještě někdo stále stojí který nebyl počítal? Takže konečném počtu lidí v místnosti , který má 497 míst je-- z nichž všechny jsou filled-- je 390. Tak to je skvělé. Brzy diskutovat pojem chyby v počítačovém programu. Ale my se vrátíme k tomu zanedlouho. Ale teoreticky, co by mohlo se stalo právě teď? Takže i když tam byly tři velké kroků tohoto algoritmu, každý z těch, byl jen trochu jednoho velkého provozu. A bylo to cyklicita k němu v tom, že pokud jste byli stále stojí, jste si nechali jít od kroku tři na dva, krok tři na dva, krok tři na dva. Ale to, co stále děje na každém opakování? Každý cyklus této smyčky? Co se děje jinde v pokoji? Nejen to samé, ale to, co se děje na polovinu vás? Posadil se. A tak tam leží tento pohled, podobně jako telefonního seznamu příklad, v tom, že jestliže polovina vás jsou sedět pokaždé, Problém se začíná s asi 400 lidmi, pak na 200 lidí, než 100 lidí, pak 50 lidí, a tak dále. A tak jsme v ořezávat teorie pouze na jednu osobu, myšlení z celkové hodnoty všech. Nyní reality, některé sociální dynamika, a některé aritmetické chyby by mohly přispět k tomuto konečnému chyba. Ale teoreticky, zatímco já byl stále narůstá pryč, přičemž několik desítek kroky, nebo stovky kroků počítat sami, počítat místnosti plné 500 nebo tak lidé měl vzít mnohem méně kroků, protože můžete pouze rozdělit 500 až 1/2 tolikrát. A tak stejně jako s telefonem si příklad, na druhý den, jsme něco logaritmická abych tak řekl, přičemž když jsme byli všichni působící v souzvuku, a ignoruje Chyby Dále bychom dosáhli přesně že druh jízdní doby? Nyní k byli spravedliví, trochu podváděl, v že jsem se zadlužuje jiný zdroj. Vzhledem k tomu, že je to jen jedna z mně, Já zadlužuje stovky vás. Ale to by mohlo být řekl, aby byl Příkladem paralelního zpracování, nebo stav techniky velmi v módě kde počítače v těchto dnech mají více procesorů, nebo více technicky, ještě více jader, a může skutečně dělat násobek věci najednou, podobně jako vy všechno děláme tam, paralelně. Ale připomenout, že to, co jsme také dělal ve středu bylo pokusit se zachytit tuto intuici a formalizovat v kódu. Něco jako pseudo-kódu. A ve skutečnosti, a doufám, že budete odpustit, je to jako 80 stupňů v sem. Takže budu to brát off na jen trochu. To, co si myslel jsem, že bychom udělat, je přechod Nyní k aplikačnímu přičemž jsme znovu zapojit publikum, ale napsat program v angličtině jako je syntax, s níž na vyřešení tohoto problému zde. [VIDEOPŘEHRÁVÁNÍ] -Je To arašídové máslo želé čas. Arašídové máslo želé čas. Arašídové máslo želé čas. Way ya! Way ya! Way ya! Way ya! Teď je to! Tady máš! Tady máš! Tady máš! Arašídové máslo želé! Arašídové máslo želé! Arašídové máslo želé! Arašídové máslo želé! Arašídy, arašídové máslo želé! Arašídové máslo želé! Arašídové máslo želé s baseballovou pálkou. [END Přehrávání] DAVID J. Malan: --that video, ale je to trochu návykové, ne-li trochu nepříjemné. Ale jak to udělat, myslela jsem si, co bychom si udělat, je pokusit se napsat program společně, pro které potřebujeme tři dobrovolníky. Musí být pohodlné na kameru a internet. Sam, pojď nahoru. Purple tričko, přímo tady, pojď nahoru. A od tady, dovolte mi, abych jít trochu dál do minulosti. Crimson a modré košile, pojď nahoru. Perfektní. No tak. Pojď nahoru, pojď nahoru. A Jak se jmenujete? Erica. Davide, rád tě poznávám. Pokud byste chtěli, aby se toto místo zde. To je Sam. Jak se jmenuješ? Antonio. Antonio, rád tě poznávám. Erica a Sam, kdyby ses chtěli mít sídlo zde. To, co jsme přišli připraveni s, protože tito lidé zjišťují, je ingredience, které se, aby se arašídové máslo a želé sendvič. Teď to může být něco, co budete mít moc za samozřejmost. Ale dali jsme každý z našich tří dobrovolníků here-- dva dobrovolníci a Sam tady, je bochník chleba každého, talíř, nůž, sklenice želé nebo džemu, a sklenice arašídového másla. A gól po ruce je nyní bude pro tyto tři udělat arašídové máslo a želé sendvič. Ale to, co budeme dělat, je čekat audience-- protože všechny z vás, jistě víte, jak to udělat to tak dobře v reality-- se chystáte poskytnout nám krok za krokem. Pseudo-kód, chcete-li. Takže budu hrát roli písaře sem. A já mám malý seznam úkolů, a tak, že každý z vás, jeden po druhém, volá potenciál instruktážní, budu napište to dolů, opakovat podle potřeby. A pak vy se chystáte dělat arašídové máslo a želé sendvič jen to, co jste řekl. Takže myslíte, že na sebe jako počítače. Můžete dělat jen to, co jste řekl. Žádné předpoklady, žádné otázky. Stačí jen, aby to udělat. Takže kdo by chtěl ohrozit první instrukce pro výrobu PBJ sendvič? Tam balkon. Diváků: Otevřete sáček chleba. DAVID J. Malan: Otevřete pytel chleba, chcete-li. Takže pojďme se podívat. Pojďme se opakovat, a získat trochu přesnější. Dobrý způsob, jak začít ačkoli. Druhý krok, někdo jiný. Teď nikdo nechce dobrovolně. Krok dva, vpředu. Diváků: Otevřete vnitřní pytel chleba i. DAVID J. Malan: Otevřete Vnitřní vak chleba i. Skvělé, máme učit. Trochu přesnější. Pojďme si tuto práci. Ano, v zelené košili. Diváků: [Neslyšitelné] DAVID J. Malan: Plátky chleba. Jemně odstraňte dva plátky chleba. To je dobré. Krok čtyři, někdo jiný? Tady, ano? Diváků: [Neslyšitelné] DAVID J. Malan: Místo chleba na talíři. Krok pět? Krok pět, jo? Diváků: [Neslyšitelné] DAVID J. Malan: Na vrcholu of-- oh, ruce. Položte ruku na horní arašídové máslo. Je to to, co jsem hlavou? Publikum: Jo, a odšroubovat. DAVID J. Malan: a- to znovu. Diváků: [Neslyšitelné] DAVID J. Malan: a dal víko vedle arašídové máslo. Lehce položte ruku na Vrchol arašídového másla, a odšroubovat, a dát víko vedle arašídové máslo. OK, krok šest. Krok šest, někdo jiný. Jo? Diváků: [Neslyšitelné] DAVID J. Malan: Řekni to znovu. Diváků: Opakujte krok pěti znovu. DAVID J. Malan: A opakujte krok pět znovu, která bude vytvářet trochu problém Nyní, když děláme tento krok za krokem. Takže teď se vrátíme ke kroku pět. Lehce položte ruku na vrcholu arašídového másla a odšroubovat a dát víko vedle arašídové máslo. Poté uchopte arašídové máslo a opakujte krok pět znovu. Takže budeme přepsat, že nekonečné smyčky, chcete-li. Krok sedm, někdo jiný. Jo, v zádech. Diváků: [Neslyšitelné] DAVID J. Malan: --on nad ostatními. Diváků: [Neslyšitelné] DAVID J. Malan: Na druhá ruka na druhém vrcholu. Chcete se prostě přijít sem? Jak mohu ukončit pokyn? Co je zbytek instrukce? Diváků: Ignorování tuto část. DAVID J. Malan: Ignorování tuto část. Pojďme začít znovu. Krok sedm. Diváků: [Neslyšitelné] DAVID J. Malan: Uchopte s proti hand-- to je dobré. To je skutečně dobré. Diváků: [Neslyšitelné] DAVID J. Malan: A plast jar-- Diváků: [Neslyšitelné] DAVID J. Malan: A twist-- Diváků: [Neslyšitelné] DAVID J. Malan: po dobu dvou sekund. Stačí otevřít arašídové máslo jar. Doufám, že mi odpustíte. Takže předpokládejme, že jsme se tam dostali. Otevřete arašídové máslo jar. [APPLAUSE] DAVID J. Malan: Krok osm, pojďme. Krok osm, ano, v zádech. Diváků: [Neslyšitelné] DAVID J. Malan: Dobrý. Krok devět, ano? Diváků: [Neslyšitelné] DAVID J. Malan: --out of arašídové máslo jar. A- a co? Diváků: [Neslyšitelné] DAVID J. Malan: A dal nůž zpět do arašídové máslo. Krok deset. Krok deset. Diváků: [Neslyšitelné] DAVID J. Malan: Vložte nůž out, a pak odstraňte uzávěr. Nice. Mimo arašídové máslo. Dobře, krok 11. Diváků: [Neslyšitelné] DAVID J. Malan: OK, šedá počítače následovat modré nebo červené počítače. Dobře. [APPLAUSE] DAVID J. Malan: Přineste nám domů. Ještě pár kroků. Co bude dál? Kroky 12. Krok 12. Jo? Diváků: Dejte jeden z plátky chléb jemně na jednu z vašich rukou. DAVID J. Malan: Jeden z vašich rukou. A pak, krokem 13. Jo? Diváků: [Neslyšitelné] DAVID J. Malan: --on krajíc chleba. Dobře. Docela dobrý. Krok 14, jo. Diváků: Undo krok 13. DAVID J. Malan: Undo krok 13. Pojďme se přesunout na želé. Je to krok 100- program ale my jsme byli na krok 15. Jo. Diváků: [Neslyšitelné] DAVID J. Malan: 7 až 13 za použití želé, protože ti šlo tak dobře. Opakujte kroky 7 až 13, s použitím želé. Takže uchopte dolní polovině želé jar s jednou rukou na vrcholu. Na druhou stranu z ostatní top, ignoroval tu část, uchopte s protilehlými rukama, víko a plastové jar ve spodní části, a točit na dvě sekundy. Potom otevřete želé jar. A konečně, zkusme dej nám něco jedlé. Krok 16. Tak proč ne my ji tam nechat. Děkuji moc, aby naše tři dobrovolníci. [APPLAUSE] Máme trochu CS50 stres míč pro vás. Vypadalo to, že je sendvič ale-- tak co byl bod, za který má trochu legrace s algoritmu? Skutečnost je však taková, že i když jste programování počítače, musíte být super přesný. Jak složité nebo zastrašující jako své vlastní počítač může být velmi dobře na vás, na alespoň pokud se něco pokazí, realita je taková, že je to dost hloupý zařízení, které bylo vynalezeno námi lidmi, a může učinit pouze podmnožinu, co jsme do-- někdy určitě faster-- ale neví, jak aby se předpoklady. To neví, jak být na stejné vlnové délce jako vy. To bude dělat jen přesně to, co jste to říct. A budete udeřil, snad, jak začneme psaní skutečný kód s První problém soupravy a dále, , jak snadné je, aby se předpoklad, jako je člověk, a ne předvídat musím zvládnout že případ, nebo že rohový případ, abych tak řekl, že by mohla velmi dobře Jestliže je například Sam měl jediný vznikají stlačitelná jar želé, zatímco všichni ostatní měli nějaké sklenice as dobře. Takže než obrátíme pozornost k nějaké skutečné kódu, dovolte mi představit Hlavy zde na Yale Course. Naši přátelé Scaz, Andy, a Jason přijít a pozdravit. [APPLAUSE] SCAZ: Ztratili jsme Jasona dočasně. Ahoj znovu, všichni. Jmenuji se Scaz. Byl jsem učil na Yale od roku 2001. A když jsem to učil, můj výzkum je v robotice a umělá inteligence. A oznámení, že mám dnes je, že začíná za pár týdnů, budeme přinášíme některé doplňkový materiál CS50 mluvit o intelligence software. Budeme mluvit o tom, jak místa, jako jsou Netflix a Hulu může doporučit filmy, které budete chtít sledovat. Tam, kde budeme hovořit o tom, jak auta řidič-méně skutečně pracují. A budeme moci zemi tyto věci v pojetí že se učíš v této třídě dnes. Protože všechny tyto věci jsou postaven na stejném základu. A to je to, co tato série bude zkoumat. Takže jsem opravdu hledají předají vidět více z vás, vše, a budete se dostat do zobrazit více od nás všech velmi brzy. Dovolte mi, abych pak představil Jasona. JASON: Ahoj všichni. Mé jméno je Jason. Já bohužel šel do Harvard jako undergrad. To dostane snížit ze skutečného proudu. A teď jsem tady jako lektor oddělení počítačové vědy. A já jsem pomáhal spustit kurz s Scaz, David a Andy. ANDY: Ahoj kluci. Jmenuji se Andy. Já jsem vlastně jediný Yale studentka na scéně právě teď. [APPLAUSE] Jsem v Berkeley College, původně z Solon, Ohio. A já jsem byl jedním z těch dětí kde, když jsem přišel na Yale, Opravdu jsem si myslel, že bych se nikdy se podívat na řadu někdy znovu. A pak jsem si uvědomil, že jste potřebovali věda i QR úvěrů, aby absolvent. A tak můj prvák jaro, jsem vzal třída, je CS, intro CS třída zde na Yale. Byl jsem rád, to je jako vlastně docela v pohodě. A zatímco já vlastně skončil prohlášením Jako globální záležitosti, hlavní dovednosti Naučil jsem se v CS a programování jsou tak použitelné na jakémkoliv oboru se rozhodnete udělat. A personál zde na Yale, jsme byli tak tvrdá práce připravit pro vás. A my se těšíme na setkání vše v sekci a úředních hodin. Tak jo. [APPLAUSE] DAVID J. Malan: Děkuji. Takže těsně před třídou začala, jsme měli možnost chodit kolem kampusu s mobil a brát Některé selfies ve video podobě opravdu Moje první prohlídka Yale kampusu zde. A tak jsme si mysleli bychom sdílet hrubý střih přesně to jako Scaz a Andy a Jason mě vzal kolem kampusu. [VIDEOPŘEHRÁVÁNÍ] [SIRÉN] -David. -Welcome Na Yale. -Rád tě vidím. -Rád tě vidím. -Lze Jedeme na turné? -Nech Je jít na turné. -Road Tour. -Tento Znamení byl tam na chvíli. -Whah, CS50. -Hurry! Jdi, jdi, jdi, jdi. Měli byste [neslyšitelný] Harkness Tower. -A Jsme viděli, že párkrát. [APPLAUSE] Podívej se na kole! Ach! Ahoj Franku. Co se děje, kluci? -Jak se máš? -Rád tě vidím. -Welcome Na video. Nechovejte se příliš nadšeni. -I Love Silliman. Ach! -Je To už asi tři hodiny od Jason měl zmrzlinu a Nutella. Takže musíme přestat se na Silliman na trochu. -To Není ani [neslyšitelných] přesto, právě skutečnost, že to tady je tak úžasné. Ty vole, tam je Nutella v každém jídle. -Je Loni taky. Jo. Pověz mnoho o Yale tak daleko. Ale já si teď, že je TD tam. A to je považováno mimo akademickou půdu. -Tady Máme gotické architektury. Světově proslulý. Máme nějaké další gotické architektury. A konstrukce a více gotické architektury. Ahoj. To je místo, kde budeme mít úřední hodiny Úterý až čtvrtek v Bradavicích, as [neslyšitelný]. -Dobře. To je na turné. Jsme na Yale University je Law School, kde Dnešní přednáška se chystá uskutečnit. Pojďme dovnitř. [END Přehrávání] DAVID J. Malan: A to nás přivádí tady. Takže tak daleko, jsme byli se zaměřením na pseudokódu, což je to anglicky-jako syntax. To nemá předepsané specifikaci. Je to jen využít některé intuitivní jazyk, pokud chci vysvětlit, co chcete dělat. Ale začněme hned na přechodu kódu, protože většina lidí by řekla. Ale přesněji řečeno, něco známý jako zdrojový kód. To je jazyk, který lidé napsat, že počítače ultimately-- případně po určitém počtu steps-- nakonec chápe tak, aby se vědět, jak něco udělat. Že jste viděl záblesk to snad ve středu. Toto je příklad, který neuvěřitelně, nezaujatý Při spuštění jednoduše říká "hello world". A že je napsán v jazyce zvaném C, což je syntakticky velmi podobné na mnoha jiných jazycích které možná nevíte, ale Možná jste slyšeli o jako Java, a C ++ a Python, a Ruby, a podobně, a ve skutečnosti, budeme tráví většinu semestru pomocí C, a pak ke konci semestr, stavět na tom, a zavedení jakékoliv řada dalších jazyků. Mezi nimi PHP a JavaScript, jazyk SQL databáze s názvem. Ale s C, co budeme mít toto chápání bottom-up jak přesně počítače práce, Co můžete dělat s nimi, a jak můžete vyřešit problémy mnohem účinněji, je tímto vrstvení, které jsme diskutovali ve středu, a situace, na ramena druhých. Ale víc o tom přijít. Dnes se podíváme na jednodušší prostředí, ale v zásadě totožný Prostředí známý jako nuly Naši přátelé na MIT Media Lab. To je grafický programovací jazyk, Scratch, čímž můžete přetáhnout and drop věci, které vypadat jako puzzle kousky, které pouze blokování, pokud to dělá logické nebo programový smysl, aby tak učinily. Ale to bude nám umožňují konverzovat o všech stejného programování Základy, že někteří z vás Možná už víte, že mnozí z vás možná ne víte něco o, aniž by zabřednout upřímně řečeno, v intelektuálně nezajímavý syntaxe středníky, a závorky, a cituje, a podobně. Všechny, které, časně na, jsou rozptýlení s tím, co jsou zajímavé a skutečně užitečné nápady. Takže pojďme se rychlou pohled na životní prostředí tady, takže víte, co vás čeká. A ve skutečnosti, mezi her, které jsme může hrát je několik programy napsané vlastními bývalých studentů CS50 je. Jeden z nich, já, já budu tenhle napsaný v absolvent školy pro mě. Pokud bych si mohl vzít jeden dobrovolník kdo je ochoten hrát hra pro úplně poprvé. Jistě. Pojď nahoru. Jak se jmenuješ? Diváků: Angela. DAVID J. Malan: Angela, pojď nahoru. Takže Scratch byl na pár let. A když jsem byla v absolvent školy, Byl jsem kříž evidovaní na MIT, přičemž profesor Mitchel Resnick je Kurz na vzdělávacích technologií. A my jsme byli mezi prvními Studenti ve světě skutečně beta Test Scratch. A můj projekt, bylo to, co Angela Nyní laskavě dobrovolně Chcete-li hrát tzv Oscartime. Takže budu pokračovat a dvakrát klikněte zde na ikonu. Bude to otevřít programování prostředí, ve kterém budeme brzy ponořit do. Jdu do režimu celé obrazovky to pro Angelu, zde. Chystám se udeřit do zeleně vlajka za chvíli. A pak spoustu odpadků bude padat z nebe. A budete používat myš zde skutečně přetáhnout odpadky do Oscar popelnice. Takže pokud chcete jít dál a klepněte na tlačítko zelená vlajka, hra začne. [Přehrávání hudby] Oh, miluji odpadky. Cokoliv špinavé nebo omšelý nebo zaprášená. Cokoliv rozedraný nebo shnilé, nebo rezavé. Ano, miluji odpadky. Pokud opravdu chcete vidět něco kýčovitý, podívej se na to. Mám zde tenisku to je potrhané a opotřebované. Je to všechno plný děr drží a tkaničky jsou roztrhané. Dárek od své matky den, kdy jsem se narodil. Líbí se mi to, protože it's-- DAVID J. Malan: --green těchto dnech jen házet všechno do koše. A tak to, co jeden z CS50 vlastní personál did-- Jordan, který byste mohli splňují today-- má vlastně aktualizováno to pro dnešní době. A tak mi dovolte, abych otevřít remix místo toho pro Angelu. A budeme hrát to místo pro pár okamžiků, kde teď jste bude muset rozhodnout, zda mezi něco hodit do koše, nebo recyklovat nebo kompost to. Takže tam to trochu tlak na vás, abyste si toto právo v přední části vašeho 392 k 497 spolužáci tady v sále, pokud byste. [VIDEOPŘEHRÁVÁNÍ] [Přehrávání hudby] Oh Miluju odpadky. Cokoliv špinavé nebo omšelý nebo zaprášená. Cokoliv roztrhané nebo shnilé nebo rezavé. Ano, miluji odpadky. Pokud opravdu chcete vidět něco kýčovitý, podívej se na to. Mám zde tenisku to je potrhané a opotřebované. Je to všechno plný děr a tkaničky jsou roztrhané. Dárek od své matky den, kdy jsem se narodil. Miluju to, protože je to odpad. Oh, miluji odpadky. Cokoli špinavý, nebo zašlé, nebo zaprášená. Cokoliv roztrhané nebo shnilé nebo rezavé. Ano, miluji odpadky. Zde je několik více shnilý věci. Mám tu nějaké newspaper-- [END Přehrávání] DAVID J. Malan: --are skutečně kompostovatelné. Ale díky našemu dobrovolníkovi, Angela. Máme stres míček pro vás i zde. Takže děkuji. Takže tohle byl napsán mnou. Ale teď jeden po skutečné bývalý student který realizován to, který je hra. Vše v tomto jazyce s názvem Scratch, že budeme brzy oloupejte vrstvy. Ale pokud bychom jako-- jak o další dobrovolník? Správně. Pojď nahoru. Jak se jmenuješ? Glance? Lance. Lance, pojď nahoru. Rád tě poznávám. Přijďte na této cestě. Tak tohle by mohl mít téma povědomé některé z vás. Ale uvidíte také, že tam může být interaktivita, kde byste mohli skutečně být Role charakteru pohybující se kolem. Rád tě poznávám. David. Dám vám, Pikachu. Instrukce bude o přijít na obrazovce. Ale v krátké, budete chtějí chytit chutné věci, a vyhnout se bomby a další věci. S kurzory úplně. Takže hit mezerníku. -Pikachu. DAVID J. Malan: Catch ty věci na levé straně, nechytí věci na pravé straně. [Přehrávání hudby] Takže jeden poslední sem. Pokud bychom mohli mít jednoho víc dobrovolník sem. Mysleli jsme, že znovu něco from-- ve žluté shirt-- od středy. Jak se jmenuješ? Mary, pojď nahoru Marii. A Vzpomínám si ve středu jsme zavedli pojem binární a binární žárovky. Toto je ve skutečnosti nyní provádění tohoto stejném rozhraní že jsme měli na IPAD se světlem žárovky, ale tady digitálně vykreslen. A spíše než dělat stres ball-- Těší mě, Davide. Přivezli jsme několik světlo žárovky z Cambridge. Pokud můžete, kliknutím na ty, žárovky pro jejich zapnutí a vypnutí, přijít s binární reprezentace říkají 256. A uvidíte v střední, aktuální záznam. Tak, že jeden je na. Takže vlevo bit je zapnutý. MARY: Jo, [neslyšitelných] DAVID J. Malan: No, takže máme jenom-- oh. Tak tohle je sloupec 128. Takže jsme až 128. Musíme se dostat na 256. A můžete pohrát na a off, žádný velký problém. Nebo můžete zasáhnout, že 128 vícekrát, pokud chcete. Dobře, dobře. 24. Jo, stále blíž. Blíž! Oh, v čem je problém potom? Tak v čem je problém? Takže to, co potřebujeme tento problém vyřešit? Proto potřebujeme další bit. A to je naprosto přiměřené skutečnosti, že jo? Chcete-li počítat od čísla 1 až 2 až 3 na 4 až 5, 6, 7, 8, 9 skutečně převrátit na 10, že jste bude potřebovat další bit. Takže pojďme vlastně vzad tady, a přijít with--, že byla zjevně chtěl být nastavit. Můžete to udělat jen s 256 žárovky. Tak jak je to jednoduše číslo 50? Číslo 50. Výborně. Velký potlesk pro Marii a její stejně. Děkuji. Takže tento topic-- úmyslné as že was-- bude skutečně opakovat. Největší hodnota, můžete představují s osmi bitů, nebo jeden bajt, je skutečně 256. Ale ne když začnete počítání od 0, jako my Zdá se, že pokračovat v tom tím, že všechny tyto bity off. Ale teď pojďme ponořit do základní Realizace tohoto prostředí, a šprýmaři odděleně některé z těchto myšlenek. Tak jsme za chvíli už asi vidět několik různých programovacích základy. První z nich zavoláme prohlášení. Třídit sloves, chcete-li. Akce. Věci, které je třeba udělat. A za chvíli uvidíte bloky, které vypadají jako tento. Řekněte "hello world", například. Nebo počkejte jednu sekundu. Nebo hrát zvuk mňau. A skutečně životní prostředí v které budeme to dělat se nazývá Scratch. A když jsem se vytáhnout Scratch bez preloading žádné skutečné kód, pojďme se rychle podívat na to uživatelské rozhraní, abych tak řekl. Kontroly, se kterými jsme ve styku. Na vrcholu zde zanechal obrazovky, pod menu, Máme pódium, abych tak řekl. Takže Scratch je to, co budeme říkat Sprite. Je to postava. A může být řízen psaní programů proti němu. A on bude schopen se pohybovat nahoru a dolů a vlevo a vpravo v tomto prostředí, ne jen pohybem myš, ale programově. Mohu vám říci, jak kráčí doprava, chůze doleva, nahoru, dolů nebo podobně. A mohu představit další skřítci nebo znaky stejně. Ve skutečnosti, na spodní straně zde je tam, kde uvidíte seznam vašich skřítků. V tuto chvíli, jen jsem se jednu, ale mohu vytvářet, a oni budou vypadat přesně tam dole. Takže pokud vzad na okamžik, jako je Oscartime-- například, Oscar, na levé straně, odpadky může, byl vodník. A věc, ve středu se recyklace bin, byl další vodník. A kompost byl další vodník. A každý kus odpadky nebo recyklovatelné který byl padající z nebe je také sprite, přičemž každý z nich byl naprogramován individuálně. Jak se vám program? No, tady vpravo straně je skripty oblast. A to je místo, kde můžeme drag and drop kousky puzzle. Za týden, to bude kde jsme ekvivalentně psát kód, s více z klávesnice, ale pro dnes to bude přetažením dílky puzzle se palety pro které lze všechny najdete zde přímo uprostřed. Opravdu, ve středu tady je tu celá parta kategorií puzzle kousky nebo bloky. Jedna se týkala pohybu, podívejte se, zvuk, pero jít nahoru a dolů, Data, události řízení. Dosud docela jistý, co všechno z nich znamená, ale uvidíte, že jsem bylo pěkně rozděleny do kategorií. A napsat program v Scratch, pojďme dělat přesně to. Chystám se začít v rámci Události, a přetáhněte tady tenhle. Po klepnutí na zelenou vlajkou. A teď, proč to člověk? No připomenout, že naše dobrovolníky přišel, první věc, kterou jsem nebo neměli byla na příkaz, že zelený vlajky v pravém horním rohu. A to právě znamená, že spuštění programu. Takže když této události dojde, co chci dělat? Chystám se jít pod Vypadá, a já budu dělat "pozdravit." A budu to změnit a říkají něco jako "ahoj Yale." A teď budu zvětšení out, klikněte na zelenou vlajku, a voila, jsem napsal program. To není všechno, že vzrušující ještě ne, ale to je přesně tam, kde každý zahájených těch autora, jak s Pikachu, a binární žárovky, a Oscartime, a tak mnoho dalších příkladů. Začnete super jednoduché, a pak začnete na vrstvu, a přidat na vlastnosti a funkce. Takže jaké jsou tyto vrstvy bude sestávat z? No, za prohlášení, budeme také mají věci, které jsou trochu více fancily volal Boolean výrazy, po někom jménem Bool. A logický výraz je prostě výraz, který je buď pravdivý nebo nepravdivý, ano nebo ne, 1 nebo 0. Jakékoli polární protiklady takhle. Buď je to pravda, nebo ne. Ale my také bude vidět ty, které může vypadat například takto. Tak například, je myš dolů? Jsou to druh otázek, chcete-li. Myš je buď dole, pravda, nebo to není, false. 1 nebo 0, chcete-li, bývá mapování. Pravda je 1, false je 0. No a co méně než tohle? Nebo tak, je to méně než tohle? To je otázka druhů. A pokud si dal dvě čísla v tam, a to buď x bude menší než y, nebo rovno y, nebo větší než y, ale tento blok uvidíme, je jen chystá odpovědět na otázku, Je to méně než to? Mohli bychom vidět i něco takového. Dojemné ukazatele myši. Takže ve Scratch, můžete se zeptat Otázkou je Sprite dotýkat se ukazatel myši? Jinými slovy, je kurzor vznášející Na uzávěr, nebo ekvivalent? Uvidíme Anding věci dohromady. Můžete se zeptat na dvě otázky, a ujistěte se, že oba dát ano, nebo skutečné odpovědi před rozhodování něco udělat. Ale pak, jak si udělat rozhodnutí? No, máme tyto podmínky. A my jsme viděli to v naší Příklad telefonního seznamu. Při pohledu na levé straně, nebo právo na Mike Smith. A ve stavu, vy něco potenciálně, pokud je výraz pravdivý. A skutečně, všimněte tvary teď. Tam je to zástupný symbol teď na stropě, kde můžeme fit-- když jsem zpět o jeden slide-- tohoto tvaru. Není to úplně stejnou velikost. A skutečně, uvidíte, že Scratch změní velikost věci dynamicky přizpůsobit skládačky, ale Tvar je to, co je důležité. To, co vypadá jako že, a ve skutečnosti je to zhruba stejný tvar že by mělo být v tam. A pokud chceme něco udělat tímto způsobem, nebo že cesta, pokud jinak, máme tuto hádanku kus Scratch stejně. Nyní předpokládejme, že jste chtěli pokud ano, jinak v případě, nebo jinde. Jinými slovy, trojcestný rozcestí. Tak co můžete dělat jen tím, podíval se na to? Dokážu se tento kousek skládačky, a nezdá se, aby se vešly, ale opět, Scratch se děje re-velikosti pěkně pro nás. Mohl bych začít vrstvy tyto věci dohromady. Takže teď mám trojcestný vidlice, pokud je to pravda, to udělat. Jinak pokud tato druhá věc je pravda, tudy, jinak jít touto jinou cestou. A v Muppet filmu, rozcestí, abych tak řekl, mezi Yale nebo Stanfordu, byl přesně to, jen dvě podmínky. Buď jít tudy, jinak tudy. No, smyčky také existují v programování. A jsme použili tyto již v třídy a v pseudokódu kódu, a jistě v těch Scratch programy navždy. Scratch má tento kousek skládačky, který bude jen vám to něco, co navždy. A někdy budete chtít něco dělat věčně. To nemusí být nutně chyba, je to proto, že chcete hodiny jít dál, nebo hru hrát dál. Nebo můžete zadat konečný počet kroky, jak s tímto blokem opakování tady, , které se bude opakovat něco 10 krát. Můžeme nastavit proměnné, budeme brzy vidět. A s proměnnými, podobně jako v duchu na algebře, jako je X nebo Y nebo Z. Je to něco, symbolické, že je možné uložit nějakou hodnotu, někteří údaj, že možná budete chtít si vzpomenout na později. Nejlepším příkladem toho by mohlo být hra, kde máte skóre, jako v Pikachu. Kolik kusů dortu a kdoví co ještě jste se chytit? Tak, která by mohla být proměnná volal skóre, které začíná na 0 ° C. A pak pokaždé, když chytil kus koláče nebo cukroví, nebo podobně, se dostane zvýšen. Dostane přidána do jeden po druhém. A tak proměnnou ukládá kus informací, jako to. Pak je tu pole, a my přijdeme zpět k těmto Za týden nebo dva čas, ale pole je něco jako zásob nebo aktovka, vnitřní z nichž si můžete dát virtuální věci. To vám umožní ukládat více než jeden údaj. A, které by mohly být užitečné -li ve hře, jste druh chodí vyzvednutí věci. A možná, že chcete zachovat všech těchto kusů koláče kolem, a ne jen jíst je jeden po druhém. A pak je tu milovník konstrukt my budeme přijít k volaných funkcí nebo postupů. A když jdeme rychlejší tady, budeme vidět, že se jedná o velmi přirozené řešení problémů že jedeme setkání. Jak se naše programy začít stále větší my budeme začne všímat vzory v kód, který jsme psát, že kousky skládačky Jsme přetahování. A jakmile zjistíte sami děláte něco, co znovu a znovu, nebo ještě hůř kopírování a vkládání programování kód, který jste napsali, to je pravděpodobně příležitost vytknout co budete mít kopírování a vkládání, a to uvedením v takzvaný "funkci." Ale o těch v mnohem více podrobností zanedlouho. A pak je tu ještě obsáhlejší funkce. Pro ty z vás pohodlnější, nebo přijímání APC nebo jeho ekvivalent, Scratch skutečně podporuje věci jako závity a akcí a další. Tak si uvědomit, že to má docela vysoký strop, i když je to také velmi široce přístupné lidi kteří nikdy předtím naprogramovány. Takže opravdu, pojďme se podívat na jednoduchý program nebo dva. Už jsme se podíval na to, jak by mohl pozdravit s Scratch. Nech mě jít dopředu a otevřít trochu zajímavý program že jsem napsal v předstihu. A tohle je nazýván Pet kočka. Všechny tyto programy budou k dispozici na internetových stránkách CS50 je. Opravdu, už tam. Takže si můžete stáhnout je, a hrát si s nimi, a Problem Set 0, což je také na internetových stránkách Course, jste povzbuzovány k chůzi přes tyto. A navíc, máme počet průchozích videa on-line, ve kterém jsem a CS50 tým skutečně chodit přes každého z těchto příkladů na mnohem Pomalejší tempo, velmi rychlý forwardable, nebo převinutelný tempo, takže můžete chodit přes tyto ve svém volném čase také. Tak tady je Scratch na levé straně. Zde je program, na pravé straně že už jsem pre-vyrobené. Dovolte mi tedy přiblížit na toto téma. A mohl by se někdo v angličtině, protože věděl, to, co víte, právě od této chvíle as na to, jak Stírací práce, tak nějak říkají v anglické frázi nebo větu, co tento program zřejmě dělat? Jo, v oranžové košili. Diváků: [Neslyšitelné] DAVID J. Malan: Ano, pokud vaše kurzor je na Scratch kočka, hrají zahradě mňoukajícího zvuk. Ale všimněte si, jak jsme se vyjádřit, že. Je tu očividně smyčka tam navždy. A pak je tu Podmínkou je, když je expression. A společně, co ty na mysli? To znamená, že tento program právě vždy běží, a je to jen stále čeká a sledování a poslechu pro mě hýbat myší na kočku. Protože pokaždé, když jsem to udělal, as navrhujete, že to bude, jak to udělat. Dovolte mi začít program. Nic se zdá být děje, ale všimněte si, jak je to zdůrazněno nyní v žlutou čárou. To prostě znamená, že je to běh. A protože je tu navždy smyčky, je to stále běží. Dovolte mi tedy pohnout kurzorem nad Scratch. [MEOW] [MEOW] A když jsem ji přesunout pryč, [MEOW] teď se zastaví, ale program je ještě běží. [MEOW] A tak, rozkošný. [MEOW] Takže pojďme otevřít mírně pokročilý příklad tzv Nepoužívejte Pet Cat. A teď pojďme podívat, co se děje zde. [MEOW] meowing. Takže je to trochu na auto pilot, chcete-li. --pet kočku. Zajímalo by mě, proč. [ROAR] [MEOW] Tak jak se to funguje? No, můžete trochu rozumu přes to intuitivně, možná. Ale pojďme se podívat na skutečný kód. Takže znovu, když zelená vlajka klepnutí, to navždy. Co chcete dělat věčně? No, když dojemné myš ukazatel, pak hrát zvuk, který se zřejmě s názvem Lion 5, že je uvnitř tohoto projektu, jinak přehrát zvuk mňau, a pak čekat dvě sekundy, takže že to není meowing neustále. Ve skutečnosti, můžete velmi rychle začít obtěžují sebe a své spolubydlící. Pojďme odstranit tento blok. A všimněte si, co je hezké o Scratch. Věci tak nějak drag and drop a blokování. Takže znovu, dorůstá do vyplnit to, co chcete. Ale když jsem se odstranit to, a pak hit hra, [POČÍTAČ výkyv SOUND] --it to trochu zakopnutí samotný, protože je to doslova dělat to, co říkám. Je to říká navždy hrát tento zvuk, ale Nebudu dávat mu šanci dokončit. A tak to by byla chyba. A to je důvod, proč jsme měli tahle věc tady teď. Takže pojďme skutečně začít od scratch-- druh hříčka mírně intended-- ve které nyní máme kočku tah. Takže já budu dělat za běhu toto. Chystám se přiblížit tady, jen aby mě začal na události. A zelenou vlajkou klikli. A je tu jiné způsoby spustit skripty. Budeme, aby to jednoduché tady. A teď jdu vpřed a jít pod kontrolou. A opět, pokud jste zapomněl, kde věci, stačí kliknout kolem, a nakonec zjistíte, že je znovu. Takže chci, aby navždy dělat co? Chci používat pohybový blok Já vím, že existuje, přesunout 10 kroků. Takže pojďme se podívat, co se děje tady, kdybych hrát tuto hru. Naštěstí to není příliš daleko. Pořád ho trochu popadnout za ocas a vytáhnout ho zpátky. Ale program je stále spuštěn, takže je to trochu mě bojovat. Ale to by bylo docela hezké, kdybych podmíněně opravit v kódu. Protože se jedná ne-- ve skutečnosti je to opravdu není zábavná hra pro každého, kdo v jakémkoliv věku. Takže pojďme se pokusit opravit tím, že které mají nějaký druh podmínek. Takže já jdu dolů Control, a pak v případě. Líbí se mi tento nápad. Takže po přestěhování 10 kroků, if-- dovolte mi smysl tam, kde jsem. Chystám se jít pod Sensing, a pak to vypadá, můžu jít sem. řádek do tvaru zápasů. Velikost není, ale je to poroste vyplnit. A teď je to trochu nabídka. A teď myš pointer-- nemám Chcete-myš, chci na okraj. Takže Scratch je dost chytrý, aby věděl když je vodník dotýkat okraje. Co chci, aby skutečně udělat? Nech mě jít napřed a změnit pohyb. Ty víš co? Budu mít ho otočit. Takže na 15 stupňů není opravdu mi pomoct. Chci, aby otočit a jít na druhou stranu. Takže pojďme se podívat, co se děje tady, když jsem hit Hrát hned. OK, trochu hloupý hledá, ale to dělá přesně to, co jsem řekl. A to otáčením celé sprite. Nyní se ukazuje, můžu opravit. A já jsem nevěděl, jak to opravit na prvním místě. Tak nějak jsem musel futz kolem a vidět, že nejlepší způsob, jak to udělat. Ale když jdu to-- podívejme se, pohyb. Oh, našel jsem tohle. Vlastně, nastavení rotace styl. Levá, pravá, či ne otáčet, nebo kolem. A ukázalo se, že je to, co chci. A já, aby to není moje smyčky, protože nemám třeba nastavit styl rotace vícekrát. Jdu dát to na samém vrcholu Tento program tak, že se dostane jednou nastaven, a pak vzpomíná. A teď jsem to zkusit znovu. Dovolte mi, abych zastavení programu. A teď, že to opravili chybu. Takže jsem opakovaně zlepšení na to. Program začíná být trochu složitější, a větší, ale beru dítě kroky, abych tak řekl, a malé kousnutí z problému aby si to lepší a lepší. Ale i toto, je tak trochu mimo. Ty víš co? Bych se zeptat někoho, kdo je opravdu dobrý, strašné hlas chtěli přijít? Někdo s hlasem. Uh, jo. Pojď nahoru. V zelené košili. Tak to dopadá, že je nějaký jiný zábava věci, estetika a zvuky podobně. Tady je meow. I klikněte na kartu Zvuky. [MEOW] Tady je meow. [MEOW] [MEOW] [MEOW] --actually záznam něco odtud naše vlastní. Takže pojďme udělat přesně to. Namísto použití tohoto kočka zvuk, pojďme jděte do toho tady, a Jak se jmenujete? Nicku, rád tě poznávám. Je to David. Takže ve chvíli, jdu narazila na tlačítko Record. A pokud můžete jen křičet do notebooku, "Au," jako kdyby vy právě vešel do zdi, že bude velmi ocenil. 1, 2. NICK: Au! DAVID J. Malan: Úžasné. A teď může dělat tu trochu úpravy. Chystáte se zbavit z nejklidnějších částí. A já si myslím, že je to dobré. Děkuji mnohokrát. NICK: Pleasure. DAVID J. Malan: Mám jen přejmenoval to "Au," ale teď jdu vrátit do svých skriptů. A upozornění, že je opravdu zvuk sem. A budu pokračovat a přehrát zvukový Ouch, a budu dělat, že pokud je to dotýká pouze za okraje. A pak budu mít to otočit. Takže pojďme se podívat, co se zde děje. Pojďme na celou obrazovku. [VIDEOPŘEHRÁVÁNÍ] -Ouch! Au! Au! Au! Au! Au! Au! Au! [END Přehrávání] DAVID J. Malan: Takže si uvědomíte, že jsme už trochu štěstí. Budu ho mít tah stejně jako 100 kroků najednou. Vliv, který nyní se chystá na be-- [POČÍTAČ závada zvuk] So v rozumných mezích. Takže příležitost k upřesnění, že Dále pokud skutečně chceme. Takže teď pojďme představit jiné pojetí. Chcete-li nech mě jít do jednoho s názvem Počítání oveček a použití něco nazývá proměnná. To je rozkošný malý ovce, a Změnil jsem jeho kostým abych tak řekl. Takže i když je výchozí je kočka, můžete nahrát, můžete čerpat, můžete udělat libovolný počet znaky na vašem sprite. Zde je program, který je dělat to, co v angličtině? Opět na základě právě to, co víte teď. Co tento program dělá? Jo, to bude počítat. Jedno číslo najednou. Máme zjevně mají tento set čítač. Já nevím, co to je, ale možná je to variabilní. Je to jen obal, x nebo y. Ale počítadlo slovo je více popisná než x nebo y je matematik. Takže můžeme použít anglických slov pro věci. Forever, prostě znamená, aby dělal to. Řekněme, že čítač. Tak kde se to vzalo? No, to ukáže, že counter je proměnná. Takže je to jen další puzzle kus jsem vytvořil v předstihu. A i když se to stane nebýt stejný tvar zde, Normálně byste řekl něco jako ahoj zde. Můžete také přetáhnout proměnnou takže to je to, co nás dostat řekl. Pak jsem čekat na vteřinu, jsem změnit čítač o jednu, postupně ji přidáním jednoho. Tak, že čistý efekt je Tento roztomilý počítání oveček. I když to počítá sám. Teď je to velmi rychle dostane nuda proto, že to bude to opravdu navždy, ale to je přesně to, co Design programu předepisuje. Umožňuje nyní pokusí další příklad který využívá proměnné. To jeden s názvem Hi Hi Hi, že se dostat nepříjemné rychle. Nyní tento jeden má dva skripty. A tak znovu, bereme dětské krůčky. Začali jsme s něčím super- malý, se k ní přidá, přidal se k němu. Teď chci něco udělat ještě dynamičtější, tak chci být naslouchá dvě různé věci najednou. A tak na levé straně, když zelenou vlajkou klepli Dal jsem na proměnnou, která jsem napsal předem volal Vypnutý. A já libovolně nastavit na hodnotu 0. Takže Scratch nemá pravdivé a nepravdivé, ale to přece má 0 a 1. Takže můžu přiblížit, že stejný nápad. A pak navždy, je-li prostor bar lisované, pak nastavte proměnnou na 0. Nebo líto. Pokud stisknete Space, a pokud ztlumen, je proměnná, je 0, pak nastavte ztlumen na hodnotu 1, jinak má hodnotu ztlumen na hodnotu 0. To se zdá být něco jako, že jsme jen to, a vrátíte zpět práci. Ale co je to efekt? Pokaždé, když jsem narazila na mezerník, co se stane s mým proměnné volal ztlumen, logicky? Tak nějak dostane převrácený. To se změní z 0 na 1, nebo 1 na hodnotu 0. Tak to trvalo několik bloků vyjádřit, že, ale všechny Dělám je přepínání stav tato proměnná 0 nebo 1, nebo 0 nebo 1 Pokaždé, když jsem narazila na mezerník. A teď tady, co se to dělá? Forever, pokud utlumen je 0, takže pokud ztlumen je nepravdivé. Takže pokud to není ztlumen, je sémantika tam, přehrát zvuk lachtan, a myslím, že Hi Hi Hi pro dva sekund, vyčkejte dvě sekundy. Takže teď si všimnout tyto skripty jsou účinně bude probíhat paralelně, takže je možné poslouchat na jednu akci, druhý učinit rozhodnutí na základě této akce. A to může udělat navždy. [SEA LION štěkat] [SEA LION štěkat] Bude to, jak to udělat, a navždy [SEA LION štěká], jak jsem právě udělal. A teď je to stále běží ale já jsem "tlumené" hra. [SEA LION štěkáním] A to je všechno ten chlap dělá nyní příliš. Pojďme otevřít další příklad zde. Nech mě jít do akce, a teď tohle roztomilý taky. Ale všimnete, že má dvě skřítky. Takže ne jen dva skripty s sprite jednu, ale dvě skřítci. A když jsem klikněte na modrou chlap jako já již jsem vidět, že jako jeden program se zde, že doslova jen říká, to, když jsem obdržel událost, říkat "Polo" po dobu dvou sekund. Takže pokud jste někdy hráli v bazén, hra Marco Polo, v případě, že oranžová chlap skript nějaký náznak, zřejmě pokaždé, když jsem trefil mezerníku, co je oranžový člověk dělat? Bude se říkat "Marco." A pak je to nový blok. Už jsme to neviděli, ale vysílat událost. A já jsem to mohl nazvat Událost něco chceme. Vrátíme se k tomu možná zanedlouho. Ale vysílání událost je způsob, jak pro jednu sprite mluvit do druhého V podstatě kolem zprávu. Není to zpráva, kterou vidět. Není to něco, vizuální. Je to druh počítačového zprávy že ten druhý je naslouchá. Vzhledem k tomu, opravdu, modré chlapa, odvolání nemá-li zelenou vlajkou klepnutí. On místo toho má, když jsem obdržel událost. Když se dostane podal tuto poznámku ve třídě, tak říkajíc, měl by říci "Polo". A tak čistý efekt je, že když jsem hit zelenou vlajku, nic se nestane. Ale když jsem narazila na mezerník, říká "Marco," on odpoví s "Polo". Ale jediná sprite, že jsem interakci s je oranžová jednou. Takže tohle je způsob, jak druhu předávání zpráv mezi skřítků a s nimi komunikovat jeden s druhým. Nyní se podívejme na jednu poslední jeden zde tzv závity. A všimněte si to tím, že hraje to. Tak to jsou dva skřítci. Pták je druh létání okolo. On poskakování. Neexistuje žádná "Au," ale stejný nápad. Ale kočka vypadá docela chytrý. Co je to kočka zřejmě dělá? A čekat na to. Co je to kočka zřejmě dělá? Není to jen poskakování. On po ptáka. A tak se zdá, je tu způsob, s kombinací bloků here-- a pojďme se podívat na kočku opravdu rychle. Forever, pokud se dotýká pták, pak hrát zvuk Lev 4, co to je. Jednou Slyšeli jsme to. V opačném případě, směřovat pták, a přesunout jeden krok. Nyní je skutečnost, že je to jeden krokem je to, co dává ptáka trochu výhodu zpočátku, ale pokud budeme místo toho tuto 10, například tak, že každé iteraci smyčky, že je pohybující se 10 kroků času. Takže více prostoru. Podívejme se, co se stane pak. [LION ROAR] Ne všichni mnohem lépe. Takže teď pojďme pokusit se zlepšit na tyto trochu iterativně, a vrátit se k tomu Pojem funkce. A skutečně jedním ze základních takeaways z designu třídy. Není to jen psaní programů, které fungují a že jsou správné, ale jsou dobře navržený. A design je mnohem více subjektivní, a budete mít lepší na to v průběhu času. Ale pojďme vzít nějaké dítě kroky k začíná s programem, který pracuje, absolutně, ale to není moc dobré. Není to moc dobře napsané. Tak tady je program, který to dělá. Kašel, kašel, kašel. Co program vypadat? Vypadá to správné pro mě. Je to říká lehátkem Druhá, poté čeká. Pak se znovu říká, pak to čeká. Pak se znovu říká, pak to čeká. A pak program implicitně končí, protože neexistuje žádný smyčky. Ale proč je to špatně písemné programu? Dokonce i když jste nikdy předtím naprogramován? Stejně jako to, co tře špatně, možná tady? Jo? Diváků: [Neslyšitelné] DAVID J. Malan: Přesně tak. Jste opakování si znovu a znovu. A doslova, kopírovat a vložit I dva z znovu a znovu těchto bloků. A to je přesně ten druh zdravého rozumu zkontrolujte, že byste měli dělat. Počkej chvíli. Měl bych opravdu to dělat? Takže co je to, co je zřejmé řešení snad? Mají nějaký druh smyčky. A já ne docela stažení co je kousek skládačky je, ale když jsem se podívat na další iterace tady, ve skutečnosti, že to není jen navždy smyčka, je tam opakovat určitý počet opakování. A tak jsem se zadán tři. A teď Všimněte si, jak moc pevněji, jak mnohem stručnější je tento program. A v jistém smyslu, jak mnohem více udržitelný. Chci-li změnit slovo od kašle k něčemu jinému, jako achoo, jako by kýchání. Pak jsem ji změnit v jednom místo, a ne tři. Takže to už se cítí jako mírně lepší návrh. Dovolte mi místo toho otevřený kašel 2, naše třetí příklad. Všimněte si, jako počítačový vědec, I začít počítat na 0, typicky. Teď to vypadá trochu děsivější na první, ale výsledek je stejný. Kašel, kašel, kašel. Ale to, co se zdá být v zásadě nové v horní části programu? Já jsem odstranil slovo. Odstranil jsem čekání. A to, co jsem zapojen místo? Funkce. Kašel blok. Myslím, upřímně řečeno, já se zdají trochu idiot, když jsem neměl zrovna začít s blokem to je zřejmě nazvaný "kašel," jestli je to vše, co chci ho dělat. Ale to neexistuje v Scratch. Spíše jsem šel k jednomu v paleta volal Další bloky tady, a já jsem přetáhnout tuhle velkou fialovou věc tady, že mi umožňuje definovat funkci. Je mi v podstatě umožňuje vytvořit vlastní puzzle kus, který lze nazvat cokoliv I chtějí, že může dělat co chci, ale to, že dává jméno. To mi dává novou, fialový kousek skládačky že teď dělá, co řeknu, to udělat. Takže tento fialový kousek zde odpovídá tento zde. A co to dělá? To říká, kašel Aby Druhým, a pak to čeká. A teď jsem tak nějak vytvořil moje vlastní kousek skládačky, tak, že se chová přesně to stejným způsobem. Tak jsem si to dělat tohle. A skutečně, tam to bude více a více příležitostí pro modularizace, a pro vrstvení, složitost nad sebou. Ale tato základní myšlenka, Opravdu v problému, řekl 0. Co budete být napadeny udělat, je ke stažení Scratch, nebo použijte ho na webu, a prostě se bavit s ním. Dáme vám sadu Požadavky, které mají zvuk, a někteří počet dílků. Ale budete dělat přesně to. A budete si uvědomit, že budete chcete vzít nějaké dítě kroky zpočátku, dokud váš program dostane stále více a více složitější. Ale vzhledem k tomu je to Nejlepší způsob, jak to mohu udělat? Mohu se vyhnout této instinkt Možná, zkopírovat a vložit? Ale dříve, než Zadání problému 0, a než jsme se odložit, myslel, že bychom trvat až jeden více dobrovolník kdybychom mohli, na poslední programu To je možná nejvíce montáž vůbec, vzhledem k dnešní místo. Pojď dolů. Jo. Ano. Jak se jmenuješ? Uh-oh. To je v pohodě. Oba mají dolů. A já jsem se s tím vypořádat nějakým způsobem V rámci tohoto příštích deseti sekund. Tak pojď dolů. Pojď dolů. Dovolte mi, abych přišel sem nahoru. No tak. Dobře. Pojďme se podívat tady. Takže si všimnout velmi rychle se zde, pokud byste chtěli přijít nahoru. Uděláme dvě kola to. A Jak se jmenujete? SABRINA: Sabrina. DAVID J. Malan: Sabrina a? YING GEE: Ying Gee. DAVID J. Malan: Ying Gee. Těší mě obojí. David. Takže náš poslední příklad je zde volal Ivy je Nejtěžší hra. A proč ne máme dělat Level 1, a vy úroveň 2. A uvidíme, jak daleko Kromě toho jsme vlastně jít. Napsal student v loňském roce, remixovaný já tak, že by to jít přes dobře v New Haven. A já vám hru, která se chystá zahrnovat přesun šipek nahoru a dolů, a dostat na Yale na cílovou čáru. Tady jsme. [VIDEOPŘEHRÁVÁNÍ] [MUSIC - NFL na Foxu ústřední melodii] [MUSIC - MC Hammer, "U nemůže dotknout  Tento "] -U Nemůže dotknout toto. U nemůže dotknout toto. Nemůže dotknout toto. My, moje, moje, moje hudba mě zasáhne tak, tvrdý, dělá mi říci, oh, můj pane. Děkuji za požehnání mě s mysl k rýmu a dvě HYPE nohy. To je dobré, když víte, že jste dole. Super pitomec krajan z Oaktown. A já znám jako takový, a to pauza uh, nemůžete dotknout. Říkal jsem ti, Homeboy U nemůže dotknout toto. Jo, to je to, jak žijeme a vy víte, U nemůže dotknout toto. Podívejte se mi do očí, chlape. U nemůže dotknout toto. Yo, dovolte mi, abych poprsí funky texty. U nemůže dotknout toto. Čerstvé nové kopy a kalhoty. Máš to takhle a vy víte, tančit. Takže přesunout ze židle a získejte létat dívku a chytit tento úder. I když je to válcování drží na čerpadlo trochu bit a dejte jim vědět, co se děje. Jako to. Jako to. Cold na misi, aby vytáhnout na zádech. Dejte jim vědět, že jste příliš mnoho a to je krok uh nemůžete dotknout. Jo, říkal jsem ti, U nemůže dotknout toto. Proč jste tam stál muž? U nemůže dotknout toto. Yo, zvuk zvonku školní in, výhonek. U nemůže dotknout toto. Dej mi píseň, rytmus dělat je potu, že to, co jsem, že se jim teď. Vědí, že když mluvíte o Hammer mluvíte o přehlídce, která je medializovaný. A těsné zpěváci jsou pocení tak projít jim mikrofon. Nebo páska se dozvědět, co že to bude trvat a teď že to bude hořet grafy. Legit buď pracovat tvrdě, nebo můžete také skončit. Protože víte, U nemůže dotknout toto. U nemůže dotknout toto. Rozebrat to. Přestaň. Čas Hammer. Jít s proudem v rotaci pokud nemůžete přejít na to pak jste pravděpodobně jsou mrtví. Takže mávat rukama v Vzduch [neslyšitelných] To je to pro vítěze tanci to a budete se dostat tenčí. Přesuňte snímek váš zadek jen pro minutu pojďme všichni dělají boule. Jo. U nemůže dotknout toto. U nemůže dotknout toto. Radši medializovaný U chlapec nemůže dotknout toto. Zazvonit školní zpátky. Rozebrat to. Přestaň. Hammer čas DAVID J. Malan: To je pro CS50! Díky moc za spojování se k nám! Uvidíme se venku. [END Přehrávání] [VIDEOPŘEHRÁVÁNÍ] [MUSIC - "Seinfeld" THEME SONG] Hej David. Hej, David. Jak to jde? Dobrý práce, dnes. -Tak Jste přemýšlel o tom, co se chystáte udělat pro ven vtipy? Ne, já nemám nic. Co if-- co když je to venku vtip? -like, Vybalování vozíky? -Uh Huh. Víte, je to o ničem. -takže Rádi, žádný příběh, ne konfliktu, žádné řešení. Nerozumím. O čem to je pak? -Nothing. -Tak Jsme se vtip je o nic, a nemáme žádné herce. Kdo to bude v tomto? -Ne ne ne. Chci říct, že budu v něm. -You'll V něm být? Jo! Lidé se vždy říkají já jsem postava. No, myslím, že je to pravda. Ale kdo jiný bude v něm? Nemůže to být ty. -Ty Bude v tom, Gavin, Dan, Dan, Colton, Z'Myla, Alysse, Doug, David, všichni. -Tak To je o ničem, a všichni v ní je? -Absolutely Nic. Tohle je směšné.