[MUSIC PŘEHRÁVÁNÍ] To je CS50-- Harvard University úvod na intelektuální Podniky informatiky a umění programování. A mé jméno je David Malan a Zrovna jsem si říkal dnes ráno, to bylo úžasně 20 let dnes co jsem naposledy seděl, kde vy teď. Bylo to 1996. Byl jsem druháku, a já bral CS50 vůbec poprvé. A já jsem ani nedostal do nervy aby to sám v prvním ročníku, částečně z důvodu času. Počítačová věda se mnou tak trochu rád, meh. Byl jsem trochu geek rostoucí up, ale neudělal jsem to vlastně máte nějaké intelektuální Zájem o něco, co vypadalo být jen celá parta lidé programování po celou dobu. A byl jsem strach, aby byl upřímný. Průběh a počítačové vědy více obecně měly a do určité míry, Stále má tuto pověst pole pro mějte se na pozoru, i kdyby jen proto, že mnozí z nás jsou obeznámeni s ním a nejistý na to. A to opravdu nebylo dokud jsem nakupovala Tato třída, která sophomore fall-- a dokonce i tehdy, jen jsem se zapsal protože professor-- jeden z mých prvních mentorů, Brian Kernighan nyní na Princeton-- mi umožnilo vzít třída průchod nezdaří. A vskutku, to je důvod, proč Dnes jsme umožňují a podporují studenty, aby tuto třídu TV / unsat. A teprve pak, přepočtena dle kurzu konec semestru jsem si uvědomil, jako, wow, to nebyl takový neznámé pole. Ve skutečnosti se jedná o velmi posilující pole, a více vzrušující, zvláště později, jak jsem navštěvoval kurzy Dramatická umění 101 a Latinské A a nakonec grad školy archeologie, jsem opravdu začít vidět průsečíky této oblasti, počítače věda, s humanitních přírodní vědy, umění, medicína, a podobně. A tak to, co je právě tak úhledný o informatice nakonec, jak doufáme, budete see-- je jeho použitelnost těchto jiných oblastech, a jak můžete se některé z dnešních a semestru nápady a praktické dovednosti zpět na vlastní doméně, a vlastně prohlídku tohoto křižovatku ze svobodných umění a věd. Takže 73% z vás, je-li poslední rok je nějaký náznak, Nikdy předtím vzít kurz CS. Takže pokud, jako já, jste cítil trochu strach, nebo otevřeně nejste opravdu jistý, proč jste ještě tady. Možná jste právě následovaly některé přátele Sanders právě teď. To je naprosto v pořádku. Cílem je zde háček Vy a vám uklidnit že pokud se podíváte na vlevo a vpravo, budete vidět spolužáky s jak málo nebo tolik zkušeností To jsi ty sám může mít. A skutečně, budeme sdílet Některé statistiky ještě dnes o tom, co demografie třída typicky vypadat. A jak přidán reassurance-- a toho jsme to znamená, protože jsem si vzal v průběhu O několik let ago-- v Kurz je osnova Je tohle-- že to, co v konečném důsledku záležitosti v tomto kurzu není tolik, kde jste skončili up ve vztahu ke svým spolužákům, ale kde se v týdnu 11, konec toho semestr, skončit ve vztahu k sobě V týdnu 0, což je tam, kde jsme dnes. A to je to, co jsem si uvědomil, všechny ty roky. A vím, že hodně třídy říkám, ale je to obzvláště pravdivé v informatice. Na konci dne, toto pole je neznámá, jak to bylo pro mě a může být pro vás, je opravdu jen o řešení problémů. A jako takový, to přece má toto použitelnost získat dalších oborech. A ve skutečnosti, když jsme se snažili destilovat, co to znamená, To je řešení problémů ve své podstatě, troufám si tvrdit. Je tu input-- Takže bez ohledu na to je to, že se snažíte vyřešit. K dispozici je výstup, který je snad řešením tohoto problému. A pak, když bychom říká v informatice, tam je to černá skříňka v prostřední, které nemusí nutně muset starat o tom, jak to funguje. Vy sám nakonec mohlo realizovat to, co je uvnitř té krabici. Ale pro dnešní účely a více obecně v životě, vše vám záleží je to, že tyto problémy si vyřešit. A co tento kurz nakonec asi zkoumá křižovatka Tyto vstupy a výstupy, a tyto tak zvané algoritmy, jak budeme brzy vidět, že realizovat to, co je Pod tam, digestoř. Ale tyto vstupy a tyto outputs-- Co to vlastně znamená? No, na konci dne, potřebujeme nějaký způsob, jak reprezentovat informace. To platí zejména v počítači, který jako fantazie a komplexní otázkou, neboť Mohlo by se zdát, je docela hloupý zařízení. Trvá electricity-- ať už z kabel nebo baterie jako input-- a pak se produkuje preprogramed odpovědi na obrazovce. Ale jak se dostaneme z začínají tam skončit? No, co se problém je třeba řešit? No, možná bychom mohli, při Na začátku každého semestru, pokusit se docházku v místnosti jako je tato. Takže jsem mohl udělat jako jeden, dva, tři. Anebo, jestli jsem to udělal aby nějak sledovat z myself-- sledovat things-- Mohl bych rychle dojdou prsty. Tak jsem mohl jen vytvořit hash marks-- jeden osoba, dva, tři, čtyři, pět, šest, sedm, osm. A každý z nás má pravděpodobně udělal to, zda se na ruce nebo na kus papíru. A to je vlastně jen něco, co nazývá unární notation-- kde pokud máte jen jedno písmeno v abeceda, jedním nebo hash známka v tomto případě pro každou vstup Chcete-li počítat, musíte dát dolů jeden z nich letters-- jeden z těchto značek. Dobře. To je vše v pořádku a dobré a není všechno tak složité. Ale počítače nejsou všechny že mnohem složitější. Ve skutečnosti většina z vás asi vědět, i když jste ve skutečnosti uvažoval, co to znamená, že počítače rozumět jen nuly a ones-- takzvaného binárního systému. My lidé, naopak, jsou natolik mnohem sofistikovanější, pokud jak je chápeme nuly přes devítky. Ale i když je binární, zprvu pohled, ne vše, co znají, ukázalo se, že je to stejně jako systémy a myšlenky, které už známe. Tak například, to považují. To je jen posloupnost symbolů. A všechny z vás, když podíval se na něj, pravděpodobně myslím 123-- nic tam opravdu zajímavé. Ale proč je toto číslo, 123? To jsou jen piktogramy na screen-- jen vzory že někdo mohl tažené nebo zadali. Ale pokud jste jako já, budete Pravděpodobně pamatovat ze základní školy že existuje jakási sloupců nebo místa zde. Tam je ten jeho místo a deseti na své místo a po stovkách jeho místo. A z důvodu, že je to 123 a ne jen vzorek tří symbolů Je tomu tak proto, samozřejmě, pokud my mají jeden ve stovkách místě, jste si to spočítejte 100 krát jeden, a pak dva do sítě TEN v místě. Tak to je 10 krát 2 a potom tři v něčí místo a to je 1 krát 3. A když přidáte všechny ty, up, o Samozřejmě, dostanete 100 plus 20 plus 3. Tak jsme začali jen s vzorkem z symbols-- k alphabet-- ale pak jsme zmapovali význam na že prostřednictvím těchto sloupců. No, to ukáže, že Počítače jsou opravdu není všechno, co se liší od tebe a pro mě. Ale namísto použití síly 10, tak speak-- 1, 10, 100, 1000, 10000 místo a tak forth-- Jsou to vlastně stačí použít síly 2-- tak jeden, 2, 4, a poté Dáme-li více číslic, 8, 16, 32, 64, 128 a tak dále. A tak to je, jak počítač bude představovat číslo 0, Stejně jako my lidé. 0, 0, 0-- a asi tušíte co vzor nul a jedniček, Pokud počítač může pouze Hovoříme 0 nebo 1-- co vzor bude reprezentovat numerická my lidé znají jako 1? Yeah-- 0, 0, 1. Dobře. Takže 0, 0, 1, jak my reprezentujeme 1, takže je možné mít tendenci poté reprezentovat číslo 2, pokud máte Všichni čtyři se místo a místo těchto dvou je jako jediném místě, dalo by se říct, dobře, kdybychom měli 1. místo v něčí místě, a nyní chceme počítat až 2, můžete to a nechat to být nula. Ale samozřejmě to není, jak desítková systém funguje jeden. Pokud dáte číslici oba tyto sloupce, musíš dělat aritmetiku. Takže to, co udělal číslo I náhodně jen představuje? Takže je to tři, protože 2krát 1 plus 1 Časy 1, samozřejmě, nám dává tři. Takže by to bylo dva. Bitová druh vyletí, tak říkajíc, as 0 se stává jedním, podobně jako 9 rolí více než a stává 0 Při přenášení 1. To by pak byla tři samozřejmě. Four-- Další zajímavostí se stane, pokud ti převrátit a přenášení 1, tak říkajíc. Takže to, samozřejmě, je 4. Ale pokud se rychle vpřed nyní, Co je největší počet děje se, že počítač může představovat? Takže je to jen sedm v tomto případě, že jo? Vzhledem k tomu, že máte jeden ve čtyřech, jedna ku dvěma, jedna ku jedné. Tak to je 4 a 2 plus 1. Tak, že vám dává sedm. A opravdu, bylo by to na první pohled zdát že počítače mohou počítat není vyšší než toto. Ale to samozřejmě není pravda. Co my lidé dělat, když chceme spočítat vyšší než 999 podobně? Jen nést jeden a jen Přidání čtvrté místo vlevo. A tak vskutku jsme mohli. Mohli bychom mít k dispozici osm'S Místo a 16. v místě, a 32 je místo, 64, 128-- a vy stačí držet děje až do nekonečna. Takže tyto nuly a ones-- takzvaný binární system-- jsou to, co počítačový vědec by obecně požadují trochu, nebo binární číslici. Ale teď, jak se dostaneme z Koncept nebo grafika s těmito věcmi ke skutečnému počítači? Zdá se, že bude přeskakovat krok zde. No, jediný vstup na konci dne, na mém notebooku tady je tento tok elektrické energie. Dokonce i když je to už dlouho Doba protože si myslel o nebo nikdy nepřemýšlela jak elektřina funguje, je tu elektrony tekoucí nebo out, a to je můj typ vstupu. Takže jestli je to všechno, že jsme dostat jako vstup tady, co můžeme dělat s těmito informacemi? No, můžeme myslet na nule jen absence elektřiny. Nic není flowinw, nic není pohybu, nic se neděje. To je jen výchozí state-- nule. Ale pokud je elektřina proudí, proč ne my jen libovolně, ale na celém světě důsledně, říkáme one. Tak jednoduše tím, že nemají žádnou moc, máme nulovou ano moc, máme one-- bez napájení ano sílu. A tímto způsobem, pomocí něco více fyzický nebo elektronický začneme realizovat tuto myšlenku něco buď jako jeden nebo nulu. Ve skutečnosti, můžeme jen to tady. Tak tady, nemám tři, ale Osm žárovky, z nichž každá má svůj vlastní vypínač. A tak když jsem chtěl reprezentovat číslo sedm tady, I se může ukázat na těchto třech žárovek. A skutečně, vnitřek můj počítač je v milionech, Miliardy věcí, které jsou stejně menší než to, nazývané tranzistory, přepínače, které jste právě zapínat a vypínat. Takže tito jsou relativně big-- big-- přepínače uvnitř mého laptop-- je mnoho, mnoho, mnoho, mnohem více přepínačů. Ale všechno, co dělají, je přesně to, to-- otočit něco, otočit něco off. A jako takový, počítač může představovat, s těmito milionů či miliard tranzistorů, partií a spousta nul a jedniček. A je tu další hardware stále, že umožňuje ukládat informace o dlouhodobě, takže když budete tahat zástrčky, nechcete ztratit. Ale to je příběh pro jiný den. Tak co s tím můžeme dělat s těmito kousky? Možná jsme prostě vzít Tlak pryč me-- Možná někdo bude chtít přijít tady a nabídnout až demo? Viděl jsem tuto hru jako první. Jak se jmenuješ? Maday: Maday. DAVID Malan: Maday, pojď nahoru. Rád vás poznávám. Maday: Těší mě. DAVID Malan: Pojďte tudy. Nebudu muset ret nahoru. Dobře. Takže tady máme, notice-- jeden, two-- budeme upravovat, že out-- jeden, dva, čtyři, osm, 16, 32, 64, 128. To je záměrné. K dispozici je osm bitů here-- binární digits-- nuly a jedničky. A trochu je užitečná jednotka measure-- ne jako užitečné měrnou jednotkou na sebe. Obvykle budete chtít alespoň osm z těchto věcí, alias byte. Takže máme byte bitů zde. Takže pokud bychom chtěli vyzvat vás s, Například, v níž budou uvedeny v binární, Tato hodnota here-- 42. Chcete, aby se bodnout se na to? Maday: [neslyšitelné]. DAVID Malan: Jo, jen tlačit malé bílé spínače vpředu. A chcete, aby bylo patrné out 42 a je k mání Je to CS50 stres Míč pokud jste si to. Dobře. Takže máte 32. Budeme potřebovat 42. Tak to je osmičku, tak to je 40. A excellent-- velmi pěkně provedeno. Děkuji. [POTLESK] Dobře. Takže máme ještě jednu stres míček. Pojďme to udělat ještě jednou, jestli můžeme. Jedním z dalších dobrovolníků? Bez stresu koule, bez stresu míč. OK. Tady ve středu, chceš přijít dolů? Dobře. Vím. Tam jedeme. Takže čísla here-- pojď dolů. Jak se jmenuješ? DAVEY: Davey. DAVID Malan: Davey. OK. Pojď nahoru, Davey. Rád vás poznávám. A co budeme mít vás spell-- pokud se tam mohl prodlévat jen na jednu moment-- je číslo 50. Ale, ale, ale, ale, ale, to jsou třída školní magnety z nějakého důvodu. Jen mám trochu těžší, v pořádku? Je tu ještě osm. Dobře. Tak co máme tam? Máme 32. Pěkný. 32 a 16 nám dává 48-- tak blízko. A úžasné. Gratulujeme Davey stejně. [POTLESK] Dobře. Takže můžeme to udělat po celý den, a to nedostane všechno mnohem zajímavé a náročnější. Ale to je opravdu point-- je, jak relativně jednoduché to znamená, že na konci dne, co je Počítač nemá k ukládání informací, pro ukládání vstupů a nakonec ukládat nebo reprezentují tyto výstupy. Ale samotné čísla nejsou všechno zajímavé. Takže lidé, před několika lety, rozhodl, víš co? Bylo by hezké, kdyby počítače nebyly jen kalkulačky pro aritmetiky Operace, ale ve skutečnosti mohl dělat věci, jako je zpracování textu, nebo e-mail nebo více moderní inkarnace těchto druhů technologií. A tak se svět rozhodl, libovolně, ale všeobecně, že pokud chcete uložit kapitál písmeno A v počítači, víte co? Řekněme, všichni se shodují uložit některé vzor nul a ones-- bits-- které v konečném důsledku představuje desítkové číslo 65. Prostě se všichni shodneme na tom. 66 by představovalo B, 67 bude představovat C, a tam je kytice z jiných vzorů nuly a jedničky, nebo podkladové čísla, že by představovalo další písmena v klidu. Takže pokud máte trochu mentálně absorbovat tuto chvíli, Záměrně jsem dát do skrze I tam, kde H a 72 a I je 73. V případě, že počítač pak, v rámci textového procesoru nebo e-mail, odhalilo pod kapotou mít Tyto vzory bits-- vzoru bitů reprezentujících 72, pak 73, pak 33-- co by se mohlo toto kouzlo v tomto programu? Tak ahoj, a pak se něco. My nemusí vědět, ale ve skutečnosti 33-- není na grafu earlier-- Byl prostě vykřičník. Takže 72 bylo H, 73 je I, 33 se stane být vykřičník v klidu. Ale to je všechno v pořádku a dobré, a ve skutečnosti v současné době, a nikoli stačí použít sedm nebo osm bity, díky něčemu volal Unicode jako protiklad ASCII zpět v den, jsme vlastně může představovat ještě víc zajímavé postavy než jen Tyto originální anglické zaujatý dopisy. Ale můžeme také reprezentovat i krásnější věci, jako je barvách. Pokud jste někdy slyšeli zkratku RGB, červená, zelená, modrá, které prostě znamená, že počítače obvykle používá tři sady bits-- někteří počet bitů, které reprezentují číslo za kolik červené chcete, další sada bitů pro Jak moc zelený chcete, a další sada číslo kolik modré chcete. Tak velké číslo znamená spoustu červenými, malých číslo znamená žádné červené. A tak se jedná o druh ze střední hodnoty zde. Takže mi dát nějaké červené, dej mi některé zelená, a dej mi trochu modré. A když smícháte ty tři odstíny barvy dohromady, v tomto případě, dostanete tuto temnou odstín žluté nebo hnědé. Ale to vzor osm navíc osm a eight-- tak 24. bits-- zleva doprava, je to, jak počítač by znamenalo, že konkrétní barvu. Teď je to jen tečka na obrazovce. Podíváte-li se opravdu blízko u televizoru vašich počítač, uvidíte tečky nebo pixelů. A pokud budete mít celou mřížku pixelů, horizontálně i vertikálně, Máte snímků. A pak, když jdete obraz a pak mytí ukázat sami jiný obrázek, další obraz, jiný obraz, jiný obraz, opravdu rychle, budete mít samozřejmě filmy. A tak si všimnout, kde jsme začali. Začali jsme s těmito nul a jedniček. Pracovali jsme odtamtud do desítkové Čísla, jak je zastupovat. Nyní máme písmena abecedy. Ale v jiných souvislostech čekat, můžeme použít málo více bitů a představují barvy. Jakmile budete mít schopnost reprezentovat barvy, máte možnost reprezentovat fotografie a oživené gifs a další podobné znaky na obrazovce. A když máte spoustu obrazy létání člověkem najednou, vypadá to, že filmy, a tak dostanete videa stejně. Takže pomocí těchto velmi jednoduchá primitiva my mají způsob reprezentace v konečném důsledku všech těchto typů médií. A my jsme zase abstrahovat a znovu a znovu, dokud jsme se od nejnižší úrovně k této nejvyšší úrovni. Takže nám dává toto obecná představa abstrakce. Ale začali jsme tady. Tady, mohli bychom představují v počítači naše vstupy s nul a jedniček, Naše výstupy nul a jedniček, ale co se děje uvnitř krabice? To je, kde počítač věda začíná být zajímavé. To je to, kde jste skutečně přinést svůj vlastní mysli nést řešit problémy. Nyní můžeme stanovit, neboť Zbytek semestru, ano. Vím, jak binární funguje. Vzpomínám si, jak ASCII nebo Unicode-- mapování na letters-- děl. A rozhodně stojí logické, že jsme může představovat červené a zelené a modrý, a představují multimediální zařízení, jakož. Ale to je zajímavé věci. To je to, co dělá někoho schopné řešit problémy. A jeden takový problém jsme chtěli dělat, opravdu, bere účast, nebo Přitom algoritmicky. A opět, mohl bych to udělat. Mohl bych udělat jeden, dva, tři, čtyři pět, šest, sedm, osm devět. A já to mohl napsat dolů sledovat to. Ale to je jen, jak bych reprezentovat informace. Nebo bych mohl dělat to faster-- dvě, čtyři, šest, osm, deset, 12, 14, 16, 18, 20, 22-- to vypadá dvakrát tak rychle, ale je to stále zabere spoustu času. Ale ukazuje se, kdybychom ještě využít Dalších resource-- a opravdu počítače v těchto dnech mají více procesorů nebo mozek. Ukazuje se, že počítače mohou dělat spoustu věcí najednou, a opravdu jsme, v této místnosti, může představovat právě toto. Takže je to trochu společensky trapné, ale pokud byste mi humor jen na tři-proces kroku, ať zeptám každého na svém místě tam jen postavit se na chvíli. Postav se. Takže myslíte, že na sebe, číslo one-- takže každý v této místnosti, s výjimkou lidí, kteří neměli zavázat, uvažujete číslo jedna. Takže to je vaše číslo právě teď. To je první krok, nebo jako počítačový vědec nebo programátor by obvykle dělat, jdeme začít počítat od nuly. Pokud je nejmenší číslo můžeme představují s těmito žárovkami je nula, pouze jejich odchodu all off, mohl bych stejně dobře začíná počítat od nula je místo jednoho. A tak to, co počítačoví odborníci dělat. Takže krok nulu, vstávat a myslet na číslo jedna. Dalším krokem je tohle-- pár off se někdo stojí a přidat čísla dohromady. Úžasné. Takže v tuto chvíli, Doslova každý zúčastněný myslí na číslo 2, s výjimkou pro jednu osobu liché, pokud máme lichý počet lidí v místnosti. A teď třetí krok zde se chystá tohle-- být jeden z vás by měl sednout. Jeden z byste měli sednout, a pokud jste ještě stojí, přejít zpět ke kroku jedna. Dobře. Dobře. Tak stále více a více lidí by měla být vsedě. Všimněte si, že toto indukované loop-- nějaký cyklu. Někteří z vás by měl být nešikovně přilepená, tam a zpět mezi prvním kroku a dvě, jedna a dvě, jedna a dvě. To je v pořádku. Naše první chyba. Budeme se s tím vypořádat. Dobře. Zkusím dát podnět k věci spolu. V teorii, jen jedna osoba stojí jak všichni pokračuje spárovat. Ale dovolte mi věci urychlit s lidmi, které ještě stojí. Jaké číslo jste na mysli? 46. OK. Jděte do toho a sednout. Vy ještě stojí. Kdo ještě stojí? Jaké číslo jste na mysli? OK. Takže se vrátíme k vám. Vzadu? Co to je? 22. OK někdo jiný up top-- jo? 34. OK. Tady na mém right-- sem nahoru? 132, velmi pěkné. 22? OK. A kdo je ještě stojí? Tady? 46, velmi pěkné. 72. Nemohu zastavit mnohem déle. To jo? 30, pěkný. Tady? 23? 23. A myslím, že to každý kromě vámi, žádný tlak. OH Počkej. 28? Jen osm. OK. Jen osm. Tady dole? 30. 23. 24. 18. To je nejhorší implementace tohoto algoritmu vůbec. OK. Takže někdo jiný? Někdo jiný? OK. Ještě jeden. 16? OK. 16. Dobře. Takže když jsem se vynechal někdo oslnění tady, když jsem stiskněte klávesu Enter, budeme vidět, algoritmicky se Celkový počet lidí v Sanders. Vzhledem k tomu, znovu, je to, jako by všichni jak si sedl, prošel čísla off na někoho jiného, ​​na někoho jiného, na někoho jiného, ​​takže teoreticky, na konci, jen jedna nepříjemná osoba by měla zůstat stát. Ale to je v pořádku. zrychlil jsme věci ručně. Je obzvláště těžké vidět v tomto konkrétním prostoru. A celkový počet lidí Myslíme si, že zde je 546. Celkový počet Byl jsem rukou učením kolegy, kdo to udělal ten starý škola pomalá cesta, bylo 820. [SMAVÝ] [POTLESK] To je v pořádku. Takže určitě tehdy, jsou tyto chyby. A to je v pořádku. A tak si vzpomenu na to poprvé něco píšete nemusí nutně fungovat. To se mi stalo i zde. Ale pojďme teď zvážit, jak bychom mohli -li použít tuto stejnou myšlenku na něco jste mohli vidět dříve, což Je to stará škola technologie here-- opravdu velký telefonní seznam. A předpokládám, že tento telefonního seznamu má 1000 stran a 1000 jmen a počty abecedně uvnitř ní. No, mohli bychom trochu platí obdobná Myšlenka tohoto velmi fyzický problém, Jen mě použití. Jen jsem trochu podváděla využitím vámi všemi se spoustou a spoustou jiného CPU nebo mozky vykonávající nějaký algoritmus. Ale pokud je to jen trochu staré já, mohu stále využít tu samou podstatu myšlenky dělení a dobývání tento problém znovu a znovu, přičemž polovina z vás, polovina z vás, polovina z vás, polovina z vás, teoreticky stále vsedě, dokud jsme byli ponecháni, teoreticky, pouze s jednou osobou. Takže v této staré školy technology-- my ne Potřebuju to map-- toto old school technologie, mohli bychom začít hledat někoho Jako Mike Smith, jedna stránka najednou. A vidím, že ne, Mike tu není. Jsem stále v sekci A. Nakonec jsem zjistil, Sám v sekci B. A to je algorithm-- krok za krokem instrukce. Začněte na stránce začátku a jedna v době, podívejte se na Mike Smith. Je to correct-- toto algoritmus nebo přístup? Jo, je to v pořádku. Pokud Mike je tady, nakonec Budu se k němu dostat. Ale to není efektivní. Je to samozřejmě velmi pomalé. Tak jsem může být využit Stejné twosies přiblížit. Mohu udělat jakési dva, čtyři, šest, osm, 10, 12. To je dvakrát tak rychle. Chystám se dostat k Mike rychleji, když je tam. Je to správně? Ano, ale slyšel jsem little-- č. Teď jsem slyšel, č. To jo. Je tu chyba potenciálně. Možná, že Mike jen náhodou dostane vložený mezi dvě stránky, protože jsem proletěl tato dvě najednou. Takže aspoň budeme potřebovat nějaký druh podmíněného oprava. Musím říct, hej, jestli jsem trefil někoho, jehož Název začíná T místo s S, Raději zdvojnásobit zpět alespoň jednu stránku. Takže buggy na první, ale opravitelný. Ale nikdo z nás budou hledat Mike Smith přes 1000 stránek telefon s rezervovat jednu stránku najednou. Co je to normální člověk dělat? Budeš jít do S letech pokud jste věděl, kde S je. Ty by mohly jít zhruba do středu nebo mírně vychýlena směrem ke konci. A já se tady dole a Jsem v sekci M. Ale co víš o tomto problému teď, že jsme neměli nutně vědět před se všemi z nás prostě počítat sami ekvivalentně? No, Mike je zjevně děje být v této části knihy jestli je tu vůbec, protože je to třídit. A tak můžete velmi dramatically-- [Lapal po dechu] Vím. [POTLESK] Je to vlastně opravdu jednoduché, pokud vy ho páteř tam. Ale pak můžete hodit polovina problému pryč. Teď jsem odešel se stejným problem-- najít Mike Smith v telefonu book-- ale nyní telefonního seznamu začíná na M a jde do Z, ale je to z poloviny tak velký. Ale to je to, co je impozantní. Stejně jako v teorii, vy kluci, když všichni se posadil jen polovinu najednou, Problém se dostal poloviny tak velký, poloviny tak velký, znovu a znovu. Aby se stal tohoto problému Stejný problém však poloviny tak velký. Teď je to problém a 250 stránek. Jakmile jsem si uvědomit, oh, jsem v sekci T náhodnému spuštění. Jsem zašel příliš daleko. I může hodit, že polovina telefonního seznamu pryč. Teď jsem až do Čtvrtina problému. A můžete opakovat, opakovat, opakujte, dokud teoreticky, jsi zbývá jen jednou stránkou. A jestli Mike je na této stránce, Nyní mohu tento problém vyřešit. Ale jak rychle jsem to vyřešit? V prvním případě, trvalo mi to líbí Možná 1,000 kroky k nalezení Mike Smith. Mohlo by to vzali me-- Zvedl jsem do telefonního seznamu a já začal hledat jednu stránku najednou, a Mike by mohlo být 1.000 stránek později. Druhý přístup možná bere mi 500 kroků, protože letím přes dva najednou. A třetí přístup i když, to je obzvláště silná. Ale uvažujme, co jsme vlastně udělal s tímto třetím přístupem. Budu mít co budu říkat právě tito Prohlášení tady, jeden po druhém. Vyzvednout telefonního seznamu. Otevřít do poloviny telefonního seznamu. Podívejte se na jména. A pak se věci trochu intelektuálně zajímavé, Pokud se stále jednoduché. Pokud Smith je jedním z Názvy uvedené v tomto aktuální stránce, pak něco podmíněně. Je to jako rozcestí. Zavolej Mika. V případě, Mike je mezi názvy na této stránce, tzv Miku. Ale jen udělat čáru čtyři pokud linka strom, chcete-li, je pravda. Odpověď na tuto otázku je ano. Else if Smith dříve v book-- Jinými slovy, když jsem v sekci M a já jsem hledal někoho, kdo by levá, pak to, co mám dělat je něco velmi podobného. Pak jsem měl otevřít do středu levé polovině knihy. Tak jdi doleva a poté vraťte se ke kroku dvě. Podívejte se tam jména. Takže jinými slovy, to samé, ale na problém, který byl poloviční. Víš, co ještě? V případě, Smith později v knize založeny na stránce dívám, otevřená středu Pravá polovina knihy a pak jít zase zpátky ke kroku dva, else-- je tu čtvrtá možnost zde. Mike buď zde nebo na levé straně nebo napravo, nebo tam není. A tady měli bychom uvažovat o tohle. A ve skutečnosti, pokud jste někdy měli počítač právě narazit na vás, že je někdy, ale ne vždy, Výsledek jen lidské programátor ne uvědomil, oh střílet, je tu ve skutečnosti tato čtvrtá scénář. A pokud nechcete psát kód zvládnout tuto situaci, Někdy nevíte co počítač může dělat. A skutečně program může selhat. Ale v tomto případě, myslel jsem, o tom, a řekl jsem, jinak skončit, protože to je čtvrtý logický možný scénář. Nyní se pojďme stačí přidat některá slovíčka, takže jsme můžete začít házet kolem pojmů, které jinak docela intuitivní. Všechny věci jsem jen zvýrazněn žlutě tady, Právě jdu do funkce nebo procedury. Jsou to jen druh akcí. Takže vyzvednout, otevřený, podívejte se u, zavolej, otevřeno, otevřeno, quit-- to jsou jen akce, nebo budeme Nazýváme je více formálně, funkce. Mezitím se ve žluté barvě, Jsem zdůraznila věci že-- ať to jen začít volat jejich podmínky nebo větví. Jedná se o rozhodovací body, ve kterých můžete jít tudy, tudy, nebo nějaký jiný směr stále. Takže ti budou podmínky. A teď tohle je trochu milovník. Říkejme tyto otázky Boolean výrazy, Po někoho s příjmením Bool. A logický výraz je prostě něco To je jeden pravdivý nebo nepravdivý, ano nebo ne. Takže je to otázka, jejíž odpověď vás záleží, tak, aby se ve stavu, udělat decision-- zpátky odpověď, a pak jít vlevo nebo vpravo, nebo něco úplně jinde. A pak konečně, tyto linky here-- vrátit ke kroku dva, vrátit krokem two-- bychom mohli realizovat tuto myšlenku různými způsoby. A pak ty z vás, zkušenosti s programováním mohl udělat nebo lze představit, dělá jinak. Ale pro dnešní účely, to je Jen myšlenka, že záleží. To je to, co indukci budeme obecně nazývat loop-- nějaký cyklu, protože je to, že mě něco udělat znovu. Takže teď, ať to prostě vzít v úvahu jak dobrý je tento algoritmus. Je to správně. Pokud se Mike v knize, je to jeden z ty čtyři scenarios-- znovu a znovu a znovu, najdeme ho. Ale jak je to dobré? No, my nemáme tady být příliš formální. Ale pojďme jen plot něco, x a y, aby se smysl pro tvar tohoto problému. Na ose x je zde velikost mého problému. A Y-osa zde bude čas vyřešit. Takže možná to je počet stran. Možná je to vteřin nebo Strana turns-- cokoliv. Nicméně chcete spočítat je co tento obraz bude zastupovat. A že první algoritmus, jdu popsat jen jako přímka. Pokud existuje n stránek v telefonního seznamu, pak to může trvat mě tolik jak n kroky k nalezení Mika. Pokud Verizon nebo telefonní společnost přidává ještě jednu stránku příští rok, to může trvat mi ještě jeden step-- ještě jedna jednotka času najít Mika. Takže je tu právě tento jeden k jednomu poměru. Je to čára svah rovně. Zatím, že druhý algorithm-- když jsem se po dvou time-- dva, čtyři, šest, osm nebo double-- prochází stránkami dvakrát v době, po dvou, je to stále přímka. Tam je teď jeden až dva poměr, ale jen o málo nižší. Takže pokud tam je to mnoho stránek Na grafu tady v žluté, že mi to může trvat řada kroků nebo sekundy, jinak to bude, aby mě dvakrát tolik na červenou čáru. Ale zelená linka je skutečný stánek s jídlem. To je to, co jsme se obecně Volání logorithm-- log n, kde n je počet stran. Ale je to tvar, na čem záleží dnes, protože nemáme dokonce přemýšlet o vynesením bodů. Přemýšlejte o extrémní scénář. Předpokládejme, že Verizon zítra zdvojnásobí počet stran v tomto telefonním seznamu, od 1,000 do 2,000. V první algoritmus, I Možná ztrácet navíc 1000 Kroky hledal Mike, jen proto, Verizon zdvojnásobil velikost knihy. Druhý algorithm-- by to mohlo mi trvat dalších 500 kroků. 1000 více stránek, jdu po dvou time-- více 500 kroků najít Mika. Ale ten třetí algoritmus je druh kouzelné. Verizon zdvojnásobuje počet stránek od 1000 až 2000, Ale kolik více kroků dělá trvat mě hledat Mike? Je to jen jedna, protože mohu jen trhat telefonním seznamu ještě jednou z potíží s 2000 stránku 1000 strana problém, a voila. Vzal jsem obrovské sousto z něj. A pokud jdete opravdu extrém, Předpokládáme, že v telefonním seznamu Společnost měla něco šíleného, ​​jako 4 miliardu telefonního seznamu. No, kolik kroků může trvat najít Mike Smith v 4 miliardy Strana telefonní seznam? Je to velké číslo, ale jen 4 miliardy 2000000000 až 1000000000 500 milionů, 250 million-- stále Zní to jako velkými čísly, ale jsem velmi rychle dostává na menší hodnoty. A ve skutečnosti, když jsem si to spočítejte Dobře, mohu rozdělit pouze 4000000000 o zhruba 32 krát předtím I dostat dolů jen jedno. Takže pokud, že telefonní seznam byly 4 miliarda stran dlouho, žádný velký problém. Během několika sekund, možná 32 vteřiny, mohl bych ji rozdělit na dvě poloviny a nakonec najít Mika nebo k závěru, že tam není. A to je podstata algorithm-- dobrý algoritmus. A to je jeden z Cíle třídy, jako je tato, se snaží přijít na to, jak to mám vyřešit problém nejen správně, jak jsem vždycky věděl, jak to udělat jednu Stránka na time-- ale správně a dobře. Jak mohu navrhnout dobrý řešení problémů? Takže pojďme se na chvíli zde a dá vám pocit podnikem z CS50 kurz itself-- představit Pracovníci několika málo samozřejmě je. Těsně před 2:00, zmíníme trvat krátkou přestávku takže ti z vás, kteří jsou nákupy mohou kachna ven a vzít podívat se na nějaké jiné třídě a dívat se na zbytek tohoto on-line. Ale teď, dovolte mi představit CS50, samotná třída, a zejména to, co je nové. Takže minulost jaro, my strávili docela dost time-- Personál kurzu a já-- myšlení o tom, co je to chceme CS50 být, a jít zpátky do první principy, tak říkajíc, zvážit, co je to chceme Tento kurz vypadat a být stejně jako pro své studenty. A tak uvidíte v problému nastavit nulu stejně, pozvání aby se na to podívat URL, která shrnuje některé z motivací zpoza Následující charakteristiky podzim 2016. Tak jak jste si možná sbírala Z TL: DR letáku, osnova dnes stejně jako z Katalog Samozřejmě, že v tomto roce CS50, jste jen očekávat, aby se zúčastnili today-- takže práci dobře done-- a poslední přednáška na 21. listopadu. A není zač, ale neočekává se, navštěvovat tyto přednášky ve středu, protože to, co děláme Tento rok, střílí v reálném čase materiálu kurzu je. Takže všechno zůstane proud a začleněna jak nejlépe jsme can-- aktuální dění a rozhovory, které lidé by mohl že má v průmyslu v svět, ale při tomto materiálu k dispozici, v důsledku toho i earlier-- s kompletním textem přepisy a prohledávání a odkazy na další zdroje. A skutečně jsme byli prohlašovat nějakou dobu a my teď věřit, že můžeme vytvořit, digitálně, více pohlcující, mnohem přesvědčivější vzdělávací zkušenost, jak protichůdný na shromažďování zde nějaké 23 krát osobně, slyšel někdo mi líbí jednoduše mluvit o informatice, na rozdíl od aktivněji zapojit. Takže uvidíte v Osnova kurzu je skica semestru tady, spolu s kdy přednášek být natočen, ke kterému jste vítány, ale neočekává, a kdy budou být propuštěn na internetových stránkách Course. A co budeme dělat tady na Středy začínají příští týden, je mnohem důvěrně, pouze s ti lidé, kteří se chtějí podílet, je tzv Procházka, kde jsem a hlavy kurzu je bude skutečně dělat věci trochu intimnější tady dole v orchestru sekci, ještě nějakou technologii a procházka běžném týdnu problémem set, a nabídnout particularly---li mezi ty méně comfortable-- o to víc pokyny, které budete chtít, nebo muset za týden výzvu. A podobně, kteří nemohou pro ty, navštěvovat ty osobně, žádný velký problém. Tam bude podobně vedené jeden z vedoucích pracovníků tohoto kurzu je, Zamalya, stejná příležitost vložený v problému nastaví sami. Problém nastaví tento rok budou zveřejněny v pátek a už ne dělat sedm dní později, ale 10 dní later-- úmyslně překrývají s každým problémem nastavena tak, aby se lépe přizpůsobily, doufáme, příliv a odliv V plánech studentů, zvláště když midterms nebo atletiku nebo akademici nebo extracurriculars mají tendenci přicházet a odcházet zejména v polovině semestru. Že byste měli dát trochu víc uvážení, zda vás front načíst týden CS50 nebo zadní zátěži to na následující víkend místo. Tak se podívejte na Osnova kurzu je Zde pro jejich plánu. A všimněte si také mezi V letošním roce změny, pro ty blíže seznámit s Programování v minulosti, začneme semestr jako budeme dnes v Scratch, zaměřují především na jazyku volal C, a pak přejít ne PHP, ale jazyk s názvem Python ke konci semestru v souvislosti s webové programování, spolu s SQL a JavaScript, HTML, CSS, a ještě více. A v odpovědi na FAQ, je to skutečně pravda že CS není tak hrozné, jak jsem kdysi myslel, že to bylo, ale je to tolik práce jak jsem slyšel, že to může být. Ale to je dejme tomu, že zde jsou některé statistiky z podzim 2015 studentský sbor, přičemž horizontální modré čáry představují průměrný počet hodin hlášeny. A uvidíte v průměru o šest na 10 až 16 12-- možná nebo tak, a tak dále, ale s vysoký rozptyl být jasné. A tak si uvědomit, že tam není jen studenty pohodlnější a méně pohodlně v kurzu, ale odpovídající podporu Struktura dostat ty studenty přes úspěšně semestru. Opravdu, v odpovědi na dotazy, měli budete mít CS50 jako první rok? Absolutně. A ve skutečnosti, nemám litovat ne mít našel svou cestu nebo si našel nové pole že první rok stejně. A měl by si vzít s CS50 další kurzy, rozhodně jako well-- a obecné rady bychom mohli poskytnout studentům, že CS50 je pravděpodobně není ten druh třídy nebo intro třídy že byste měli vzít s třemi jiné nebo čtyři další třídy P-set. Ale pokud užíváte další dva p-set třídy, něco jiného, ​​a CS50, naprosto zvládnutelné. Měl jsem mnoho studentů v v minulosti udělal docela úspěšně. A aby vám ke které Cílová čára úspěšně, dělá kurz má sections-- různé tratě pro studenty méně pohodlné, mnohem pohodlnější, a někde mezi tím, přičemž v kurzu je První problém set, budete požádáni, aby popsali sami. A pokud patříte k těm méně komfortní, to je to věc, že jste právě dost znát. A skutečně, že je bylo rostoucí demografickou CS50 pěkných pár let. Jak loňského podzimu pro například, 58% z třídy popisoval sebe as Mezi ty méně pohodlné, s 9% mezi těmi, více pohodlná, a poté ostatní studenti tam red popisující sami jak je někde mezi. A uvidíte zde témata celková a plán sekcí, z nichž všechny jsou nabízeny osobně, v reálném čase, přičemž kurz je úžasný personál učebních chlapíků a kurz asistenti, některé z nich potkáte za chvíli. Oddíly samy o sobě, jak uvidíte, bude bylo pondělí a úterý a ve středu, tak, aby jste se do toho ponořit V po zapojení, pokud se tak zvolit, v průběhu se přednáška dříve v tomto týdnu. A pak úřední hodiny, což jistě, s každým uplynulým rokem, byly ne méně bojovat o kurzu. A letos plánujeme ne jen držet kancelář hours-- jeden Na jedné příležitosti k pomoci při studenti ve středu ve čtvrtek a neděli, poslední z těch, bytí v odpoledních hodinách záměrné snížit některé z stresu, který vždy vzniká s pozdních nočních hodin p-settting s termínem looming-- ale úřední hodiny budou také nabízeny V pondělí a úterý a Středy a pátky a soboty, Díky našim přátelům v HSA. CS50 má nyní svůj vlastní prostor pro studenty a zaměstnance CS50, na vrcholu hory 67 Auburn Street, tady v Harvard Square. Vize pro které je to, že je CS50 TFS a CAS celý týden, skoro po většinu dny, bude tam pro podporu. Takže pokud máte nějaké otázka na p-set nebo máte pocit, trochu blokovány nebo trochu zmatený, a sakra, máte hodinu nebo půl hodiny mezi třídami, zejména v square-- můžete pop a mají na tuto otázku odpovědět z mít tento zmatek clarified-- hodně v duchu, jste se seznámili, z matematiky oddělení je vlastní matematické otázky centrum, ale skoro po celý den za [? Gcal?], Že budeme psát online. Doučování je k dispozici také pro ty, studenti, volně z kurzu je vlastní zaměstnanci, pokud si přejete, intimnější jeden na jednoho, nebo jen dva nebo tři spolužáci, pracovní s jedním ze zaměstnanců kurzu je. A skutečně, to jsou zde uvedeny jen někteří zaměstnanců kurzu je, nemnoho koho budete setkat za chvíli. Ve skutečnosti, CS50 vlastní Hlava výuka kolega, a hlava kurz asistent a učitel, mohl přijít nahoru, umožňují je pozdravit. [POTLESK] HLAS 1: [neslyšitelné]. [POTLESK] SPEAKER 2: [neslyšitelné]. [POTLESK] MUŽ 3: [neslyšitelné]. [POTLESK] DAVID Malan: a umožní nám přivést na palubě dva z CS50 je nejvíce vedoucí pracovníci, Rob a Zamayla stejně. [POTLESK] Ve skutečnosti, jak Rob a Zamayla byly u nás tak dlouho, že jsem byl schopen jít do CS50 archivu a najít právě tuto SD stopáž z nich se účastní na sebe jevišti před několika lety. ROB: [neslyšitelné]. [POTLESK] ZAMAYLA: [neslyšitelné] [POTLESK] DAVID Malan: Děkuji. Takže kromě nich členové týmu zde CS50 disponuje týmem téměř 100 zaměstnanci, z nichž všichni bude k dispozici pro sekcích a úřední hodiny a ještě mnohem více. A jako Rob říká také, to je Nejvýznamnější oprava z CS50 v 10 letech, Byl jsem v [neslyšitelné]. [Neslyšitelný] zaměřeny zejména v poskytování nosnou konstrukci, stříhání pryč hodně převážná že to bylo nahromaděné za 10 let z iterační vývoj na problémové sady kurzu je. Takže v tomto roce, a to nejen ve třídě, ale také ve formě problémem samozřejmě je Sady, byste měli najít věci být efektivnější, strunová, hodně ovladatelnější než V uplynulých letech, jak jsme bouda některé zavazadla, která je vyvinutý podle povahy vyvíjejícího roku Po roce a iterace. Takže nové a vylepšené začíná dnes. Setkáte se s některými více z Personál hřiště je v [neslyšitelné] v 2:30, kde jsme sloužit, jako tradice, koláče. Tam je trochu více koláč než to, ale budete Seznamte se s Erin a Tobias a další stále. A dovolte mi, abych vám prohlídka před slyšíme od některých jiných zaměstnanců ve třídě, co čeká stejně. Ve skutečnosti jsme vždy začít CS50'S semestr letos v sobotu, s tím, co se nazývá CS50 Puzzle Day. To nemá nic společného s počítačová věda sama o sobě, ale s o problému Řešení obecněji. A pokud se tak rozhodnete účastnit, na některé z pozvánek, jste mohli vidět dveře spadne na zem nebo na jevišti tady, je to příležitost v týmech dvou nebo tří nebo čtyř, k účasti na hádanky a pizzu a ceny a more-- tuto sobotu, zůstaňte naladěni na další. Zjistíte také, že každý Pátek, v ohně a ledu, se CS50 přinášejí Celá parta studentů na oběd, aby se velké třída cítí více intimní, a obecně sdružovat absolventů a přátel z průmyslu mluvit o tom, co jsem Byl až od své promoce. Stejně tak tento rok, budeme zahájit vůbec první CS50 50 kódování contest-- v polovině semestru Příležitost umožnit všem na opt-in bázi mít Výzva důvtip proti spolužákům, opět ve skupinách po dvou nebo po třech nebo čtyři, používat jen to, že programování důvtipný, který pak v rámci váš pásek za pouhých šest nebo sedm týdny třídy a účastí v tomto druhu soutěže online-- pokud byste chtěli zdokonalit svůj vlastní dovednosti tím spíše v této výzvě. Na konci semestru je takzvaný CS50 Hackathon-- příležitost, která začíná v 7:00 PM končí v 7:00, a na cestě 12 večerních hodinách, ve kterých se do toho ponořit do konečného project-- tohoto kurzu je příležitost navrhnout a provádět většinu něco zajímavého tobě se svým učením kolegy vedením. Kolem 9:00 my typicky slouží pizza, 1:00, Philippe je, a jen málo z nás kteří jsou stále vzhůru v 5:00, jsou kyvadlová bussed dolů Cesta k IHOP k snídani. A pak o několik dní později je takzvaný CS50 fare-- konec semestrální výstavě v oslava, jak daleko tolik z CS50 studenti pocházejí Týden nula celá cesta do týdne, a mít na paměti, že 73% z těch, spolužáci a vy letošního roku Nikdy předtím vzal třídu CS. Ve skutečnosti je třeba zdůraznit, aby co nejvíce, zde Je několik dalších tváře od CS50 štábu. SPEAKER 4: [neslyšitelné]. Reproduktor 5: [neslyšitelné]. SPEAKER 6: [neslyšitelné]. SPEAKER 7: [neslyšitelné]. REPRODUKTORY 8: [neslyšitelné] REPRODUKTORY 9: [neslyšitelné]. SPEAKER 4: [neslyšitelné]. REPRODUKTORY 10: [neslyšitelné]. REPRODUKTORY 11: [neslyšitelné]. REPRODUKTORY 12: [neslyšitelné]. REPRODUKTORY 13: [neslyšitelné] REPRODUKTORY 14: [neslyšitelné]. REPRODUKTORY 13: [neslyšitelné]. REPRODUKTORY 15: [neslyšitelné] REPRODUKTORY 16: [neslyšitelné]. REPRODUKTORY 11: [neslyšitelné] Reproduktor 5: [neslyšitelné]. DAVID Malan: Některé týmu jsou samy o sobě nákupní třídy. Ale pokud tyto členy personálu CS50 zde, mohl přijít nahoru jen na chvíli. CS50 je TFS a CAS a [? personál ?] Členové here-- to jsou jen některé z faces-- z nichž jeden právě viděl, a několik other-- a několik dalších ještě pořád. Proč nejdeme do toho a umožňují vy přestávka pět minut. Potřebujete-li kachnu ven obchod třídy, to je v pořádku. A za pět minut, budeme pokračovat, při pohledu na Scratch-- prvním našeho programovacího jazyka, splňují Personál Kurz je tu ještě víc, a zaměřit se nakonec Na problém nastavit nulu. Takže budeme zpátky za pět minut. [POTLESK] Dobře. Takže jsme zpátky. A v naší zbývající Čas dnes je cílem je rovné podmínky pokud jde o určité terminologie, pokud jde o některé nápady. Vzhledem k tomu, opravdu, podle některé z tabulek dříve, tam bude celá řada Hladiny zkušeností ve třídě, jehož některé mají studenti Před vzít nějaké programování, z nichž někteří ne. A tak s tímto prvním problémem nastavit a tento první jazyk máme příležitost začít brát jako samozřejmost po dnešku některé běžné slovní zásoby a nápad. A budeme to formou První languages-- kurzu je Kromě C a Python a JavaScript a SQL a HTML a CSS, budeme zaměřovat zpočátku a jen za problém nastavit nulu Na této grafické jazyk, nazvaný Scratch, vyvinutý Lab Media MIT po silnici, na pomoc studenty a děti obzvláště vyjadřovat algorithmically-- jistým způsobem v souladu s tím, co bychom mohli nazvat výpočetní myšlení. A je to užitečné, protože jazyk Velmi rychle se příští týden v jednom týdnu, můžeme přejít na více Tradiční a tajemný jazyk nazvaný C, což je čistě textová. Můžete použít pouze klávesnice v Aby se psát instrukce jako jsou tyto na obrazovce. Ale i když jste nikdy neviděli programovací jazyk předtím, V právě pohledem na to vše ať už je to mystický, asi tušíte, že Pravděpodobně vytiskne Hello World. Ale je tu spousta syntaktická nad hlavou tam. Tam je divný hash Symbol nebo hash tag do vrcholu. K dispozici je lomené závorky, některé závorky, složené závorky, semi-colon-- tam je jen tolik vizuální syntax, která se dostane do cesty. Začneme kurzu s Scratch tak, aby si minulost všechny ty intelektuálně nezajímavé rozptýlení, a místo toho se zaměřit na myšlenkách. Ve skutečnosti to může být dříve. To, za to, týden bude po něm. To, v tomto grafický jazyka Scratch, je, jak byste implementovat ten samý program-- program, který při spuštění, jednoduše říká hello world. A co je hezké o Scratch je že je to grafický programovací Prostředí, které používá skládačky nebo blokuje, že pouze proplést dohromady pokud to dává logický smysl, aby tak učinily. A s Scratch můžete vyvinout animace a interaktivní hry a umění, a libovolný počet věcí, které jste si možná představit ve své vlastní mysli, a realizovat pouhým přetažením dílků. A skutečně, budeme mít možnost vyjadřovat některé stejné myšlenky že jsem se právě zmínil okamžik Před v kontextu Mike Smith a vyhledávání telefonní book-- věci jako je funkce, pouze akce, věci, jako je smyček, které dělají věci znovu a znovu proměnných, což je něco, co budeme představit, ale je to znají snad z algebra-- jen nějaký zástupný symbol ukládat nějakou hodnotu, kterou by mohla Potřebujete later-- logických výrazů, kde ti ano, ne, nebo pravda falešné otázky z předtím. Podmínky jsou ty vidličky v road-- tyto pobočky tak říkajíc. A pak tam jsou některé milovník Funkce Uvidíme ještě dnes, zvané pole a nitě a Události, které budeme pak znovu přes čas v různých jazycích. Ale Scratch nám umožňuje prozkoumat všechny z nich. Tak tady ve Scratch, toto fialové Blok je to, co funkce je typicky vypadat. Tento fialový kousek skládačky, který má některé Slovo jako řekněme, což je akce, a pak by to mohlo mít Argument nebo parameter-- nějaký způsob, z druhu zakázkové výroby co to dělá blok tak, že to není předem stanovena MIT, co tento fialový blok říká. Ve skutečnosti, uvidíte v Okamžik, že jsem schopen psát slov jako ahoj světě, nebo Ahoj Davide, nebo ahoj Zamayla, nebo co chci, v argumentu v tomto puzzle piece-- na příslušný bílý čtvereček tam. Mezitím, když chci smyčku, zmíníme vidět, že je tu skládačky, které vypadat trochu pomeranč, jako je tento. A jejich tvar druh naznačuje, že něco znovu a znovu se stane v cyklu. Takže když jsem zabalit pozdravit světový blok s navždy blokovat Scratch, je to jen bude držet zdravit svět navždy, a to doslova. Mezitím je tu další typ smyčky Scratch že budeme see-- opakování block-- kde, pokud jste předem vědět, kolikrát Chcete-smyčka vykonat omezené množství časů v fact-- vás Můžete určit, že zadáním v řadě nebo dokonce ucpávání v proměnné, jako je x nebo y, jak uvidíme. Ve skutečnosti, stejně jako proměnné I v tomto případě, který je společný název pro integer proměnná, která Jen ukládá number-- celé číslo by mohlo být, Použití tohoto oranžový blok zde nastavit proměnnou jako i na nulu. Zde je příklad v zeleni Logický výraz v Scratch. I přesto, že to vypadá jako matematický vzorec, nerovnosti matematické toto se líbí ve skutečnosti jsou logické výrazy. To je jeden pravdivý nebo nepravdivý. I je menší než 50. Je to buď ano nebo ne odpověď nebo true nebo false odpověď. A budeme obecně nazývat tyto logické výrazy. A to nemusí být 50. To může být menší než x y, větší než y, která se rovná y- jakýkoliv jiný počet otázky mohou být položeny. Nyní, na první pohled to může vypadat Najednou poměrně tučné tady, a je to. Ale koncept moudrý, to je docela obeznámen před rokem. Pokud x je menší než y, než říci, jak moc. Else if x je větší než y, pak říkají tolik. Jiného říci, x je rovno y. Takže máme příklad tam třetí scenario-- jedinou třetí possibility-- x je buď větší než, menší než nebo rovný. Takže máme třícestné rozcestí. A všimněte si, co je v pohodě here-- Scratch, Zdálo by se, má jen jedno puzzle kus, v tomto případě, je-li v jiném bloku. A přesto, že by se zdají naznačovat může mají pouze obousměrné rozcestí. Můžete jít doleva nebo doprava, ale co ten třetí scénář? Co když x je rovno y? Žádný velký problém. Vezměte jeden kousek skládačky, dát další z uvnitř ní k vytvoření sémantické ekvivalent if, else if, else-- a teď vás mít svůj třícestný rozcestí. A jak uvidíme se Scratch skládačky lze natáhnout a růst, tak jak nacpat víc věcí v nich. Nemusíte, aby se vešly Všechno v jeho výchozí velikosti. To je něco, co bude Brzy uvidíme, se nazývá pole. Je to jako list-- nějaký způsob, uložení více kusů informací v proměnné, a ne jen číslo. Tyto uvidíme zástupce něco, co nazývá multi-threading. Ve skutečnosti, všechny vaše Mac a PC v těchto dnech podpora multi-threading, což znamená, že můžete doslova dělat více věcí najednou. Můžete mít Microsoft Word Up in the popředí, pracuje na nějakém eseje. Ty by mohly mít prohlížeč při otevírání pozadí G-mailu nebo Facebook nebo podobně. Počítač může dělat více věcí dnes, protože to je multi-závitové, a programy jsou v oblasti Zejména jsou také multi-thread. Jsou věci zvané akce jako i ve světě Scratch, a pak je tu až příliš, aby se naše vlastní zvyk skládačky, pokud věci nejsou ve skutečnosti neexistuje předem. Takže pojďme motivovat to takto. Před několika lety, když jsem poprvé objevil Scratch, Když jsem byl vlastně postgraduální student na MIT, my Sami byli za úkol dělat domácí úkoly. A já implemented-- což při zpětném pohledu, Byl velmi chudý rozhodnutí, protože to je nejvíce nesnesitelné skladba na světě poslouchat po dobu osmi hodin, při práci na homework-- ale něco, co jsem nazval Oscar Time, který je možná známý song. CS50s vlastní Jordan Hayashi, jeden z Naši více členů vedoucích pracovníků, vylepšila ji pro rok 2015 a Nyní 2016, od zpět v den, Měl jsem všechno jen tak do Oscar odpadkového koše. Nyní podporujeme recyklaci a kompostování. Ale malovat obraz o tom, co můžeme udělat zde a motivovat některé Příklady nižší úroveň, mohli bychom získat některou jinou dobrovolník jen pojď nahoru a hrát moje první domácí úkol vůbec? Pojď nahoru. Jak se jmenuješ? Henry: Henry. DAVID Malan: Henry, pojď nahoru. Pojď nahoru. S hlavou v obou směrech, a uvidíte v okamžiku, Chystám se jít dopředu a hit zelenou vlajkou v horní pravé ruce roh, což znamená jít. Znak ikona málo zastávka se chystá říci stop, a to je, když začnete a zastavení programu. Rád vás poznávám. Dobře. Takže budeme vidět instrukce Na obrazovce se za chvíli. A právě tím, že hraje tuto hru Po několikaminutovém seconds-- mi věřit, nebudeme chtít hrát celá cesta k end-- si vyzkoušíte získat představu o tom, co program dělá. A více než soustředit jen na Henryho je dobré nebo špatné v této hře, zaostřeno a jak to bylo provedena mnou Původně a pak Jordánu. Jinými slovy, tam, kde jsou proměnné? Kde jsou smyčky? Kde jsou funkce? A uvidíme, jestli nevidíme ty pod kapotou. Stačí kliknout a táhnout odpadky do příslušné přihrádky. [MUSIC PŘEHRÁVÁNÍ] Dobře. To je velmi dobré. Proč ne my ji zastavit tam. Děkuji. Gratulujeme Henryho. Děkuji. [POTLESK] Jen si představte ladění tento program. Pokud se vyskytne problém dva minutě song-- ale stejně tak Co se tady děje doopravdy? Tak složité, jak by se mohlo začnou se mi dostat v průběhu času, ve skutečnosti stále více a více věci začaly klesat, Co je zajímavé, tento druh example-- a uvidíme pár others-- je, že pokud přehlížet složitosti nebo propracovanost hry, tam je velmi jednoduchá stavba bloky, které play-- z nichž všechny, pokud se pálit jejich těm stavebními kameny, jsou velmi přístupné a proveditelná sami sobě. Například, je to Byl nějaký čas, ale jsem jistá, že to, co jsem udělal, když zpočátku takže tuto hru poprvé Byl jsem úplně jako otálela. Nechtěl jsem soustředit vůbec na Logika nebo kousky skládačky, Zaměřil jsem se na grafiku a zjištění ulice pošta a koše a to vše. Ale to byly předpokladem přísady na prvním místě. A jakmile jsem dokončil odkládám a stanovující rámec zastřešující, Rozhodl jsem se, dovolte mi udělat jednu kus odpadky padají z nebe. A uvidíme Scratch Podporuje věci zvané sprites-- znaky, které mohou mají různé kostýmy na tak oni vypadat jinak. A tak jsem dal odpadky kostým na jedné takové sprite. A právě jsem potřeboval ho padat z nebe. A tak to dopadá, Scratch, jako většina programovacích jazyků, Podporuje náhodných čísel nebo Technicky pseudokód náhodných čísel, takže přetažením upuštění některých skládačky, Byl jsem schopen mít odpadky pocházejí z levé strany na prvním místě. A pak příště to spadlo z pravá a poté od středu. A to všechno hra to bylo jen mají odpadky padající z nebe. Dalo by se poukázat na to, nebo na něj kliknout. Dalo by se otevřít odpadkového koše. Dalo by se nic dělat. Ale bylo to dítě krok k mému konečnému vidění. A po tom, já vlastně realizována nějaká snímání, takže pokud jste na tlačítko a přetáhněte na kus smetí přes odpadkového koše, Oscar Víko by otevírání a zavírání. Nic by se stalo do koše, ale přinejmenším by se víko otevřít a zavřít. Takže zkontrolovat, krok dva dva. A to je to, co bude Klíčovým problémem v obou nastaven na nulu a programování obecněji je aby tyto velmi úmyslné dětské krůčky. Vzhledem k tomu, nejenže vám umožní cítit upřímně dosáhnout mnohem quickly-- je to Nejhorší věc na světě pokusit se realizovat všechny Oscar Time, Pak hodin později narazí na zelenou vlajku, a nic nefunguje, jak se očekávalo protože pokud se vůbec začnou ladit nebo řešit tento program? Je to prostě ohromující. A tak opravdu pohlcující tuto myšlenku přijet steps-- dítě kroky znovu a again-- vybudování něco, co je v konečném důsledku, Opravdu působivé a složitá, ale Zpočátku, není zdaleka tolik tak. Ve skutečnosti, jdeme na to. Nech mě jít napřed a-- Scratch sám existuje na webu na adrese Scratch.MIT.edu, a budete řečeno, jako Kolik opět v problémových nastaven na nulu, ve specifikaci který je již na internetových stránkách CS50 je. Ale to je to, co Scratch je sám o sobě. A je tu opravdu jen Tři hlavní oblasti. Nahoře vlevo je takzvaná fáze. To je Scratch. Výchozí kostým je kočka. A to je obdélníkový svět které si můžete move-- nahoru, dolů, doleva, doprava a některé další věci. Ve středu tady jsou naše kategorie nebo naši palety skládačky, a různé barvy znamenat různé věci. A pokud jste hrabat kolem sebe, uvidíte věci jako smyček a podmínek a proměnné a další složky. A pak tady je oblast skripty. To je místo, kde mohu přetáhnout tyto kousky skládačky dělat věci. Takže pojďme udělat jednu takovou věc. Nech mě jít napřed a-- a já vím, kde to je. Takže jdu okamžitě kliknout na kde vím, že věci jsou připraveni být, ale ukázal a kliknutím a šťourat jsou nevyhnutelné. Takže když zelená vlajka kliknutí co chci dělat? Chystám se to udělat. Chystám se přetáhnout fialová puzzle kus, pozdravit po dobu dvou sekund, a dejte mi přiblížit. A já jdu to změnit za to, co chci, aby to be-- hello world po dobu dvou sekund je v pořádku. Teď jdu kliknout na zelenou vlajkou, nebo jestli opravdu chci, Mohu ho plném rozsahu a pak se vrátit. To bude jen udržovat vše v jednom okně. Green flag-- hello world. Dobře. Ne všichni to zajímavé. Tak nech mě jít dopředu a to udělat. Zkusím ještě jednu. Když zelená vlajka clicked-- pojďme něco takového zvuku. A všimněte si, že z box zdarma dostanete kočka zvuk, jako je výchozí sprite. Takže teď nech mě jít dopředu a hit zelenou vlajku teď. [Mňoukání] Aw. To je roztomilé. Jsem programování. Tak co jsem to udělal? To je ekvivalent programu. Je to samozřejmě super jednoduché. To přece není opravdu brát tak moc úsilí a MIT dělal většinu z práce, ale já jsem volal funkci. Použil jsem funkci. Udělal jsem nějakou akci, pouze pomocí že jeden purpurové skládačky. No, jestli chci dělat Tři meows v řadě? Nech mě jít dopředu a udělat dva a tři. A všimněte si, že když vás vznášet se v blízkosti kousek skládačky, Objeví se trochu bílá čára druh magneticky, a to bude snap spolu, když pustíte. Podívejme se, co se zde děje. [Mňoukání] Tam je chyba. Jen jsem slyšel jednu mňoukání. Proč by to mohlo být? To jo? To jo. Nemáme opravdu slyšet, ale to je dobré intuice. Jsou všichni hrají ve stejnou dobu. Proč? No, počítač je jen tak dělat to, co si to říct dělat. Takže když říkáte, přehrávat zvuk, přehrát zvuk, přehrávat zvuk, ale neříkejte to hrát, dokud budete hotovi, hrát, dokud budete hotovi, to bude profouknout Program opravdu rychle a to pouze to, co si to říct dělat. Tak jsem skutečně potřebují opravit to v několika ohledech. Mohl bych jen to, jak se zbavit toho. Zkusím tu druhou hádanku piece-- přehrávat zvukové mňau do práce, a přetáhněte tři Tyto a klepněte na tlačítko Přehrát. [Mňoukání] Není to opravdu very-- Děkuji vás-- velmi přirozené. Tak proč ne nechat já-- mě jít chcete ovládat. Pěkný. Počkejte jednu sekundu, a teď nech mě jít zpět zvuky a přehrávat zvukové do práce, a pak mě nech počkat jednu sekundu. A nechte mě jít a dostat jeden více zvuku, a je to tady. [Mňoukání] O něco přirozenější, ale to není příliš efektivní. Jak už jsem se začínal nudit, všichni to stručně, kliknutím sem a tam a skutečně duplikování svou work-- docela hodně kopírování a vkládání. Ve skutečnosti, když jsem Ovládací klepnutí nebo vpravo kliknutí Mohl jsem jen zkopírovat a vložit. Co by bylo lepší postavit používat? Co nápad před rokem? Jo, takže smyčka. A ve skutečnosti, kdybychom tropil kolem, můžeme najít přesně to. Nechte mě jít k událostem či spíše Control. Takže repeat-- nemám chci, aby to bylo 10 krát. Že to bude mít nepříjemné rychle. Ale budu opakovat třikrát. Nech mě jít zpátky do zdravé a přehrát zvuk, dokud se to dělá. Nech mě jít zpátky do Control a jen čekat jednu sekundu. A oznámení, můžete myslím, že to nesedí, ale znovu, pokud magneticky ji nechat snap na svém místě, bude růst zaplnit. Co to hraje teď? [Mňoukání] OK. Pěkný. A to je to, co by byl nazýván program, který je také správná. To meowed třikrát poměrně přirozeně, ale je to lepší design. Já používám menší míry redundance dat. Nechtěl jsem zkopírovat a vložit cokoliv. Jen jsem použil lepší nápad. Nyní je to stále není vše, Zajímavý s Scratch nedělá nic. Takže pojďme dělat něco jiného místo. Udělejme něco navždy. A víte co? Motion vypadá zajímavě. Pojďme se pohnul 10 Kroky a hit hru teď. OK. No můžeme trochu táhnout ho zpátky, a je pořád spuštěna, protože on to dělá navždy. Takže smyčka dělá co to říká dělat, ale to není všechno tak zajímavé. Pojďme to udělat. Dovolte mi dodat řídicí blok, a použít jeden z těchto podmínek poprvé. Tak to bude pohybovat 10 steps-- 10 bodů, 10 bodů na screen-- pak to bude ptát na tuto otázku. Je-li něco je pravda, pak to něco uvnitř tohoto bloku. Tak se ukazuje, snímání má celek banda booleovské expressions-- otázky ANO ne, nebo pravda false form-- nech mě to udělat. Pokud touching-- a pak je tu tento malý rozbalovacího menu. Mohu to parametrizaci. Pokud se dotknete edge-- pojďme něco takového udělat. Takže pokud se dotýká edge-- nech mě jít zpátky do pohybu. A proč ne my jen otočit o 180 stupňů? Dobře. Takže navždy, přesunout 10 kroků. Pokud se dotknete hrana, otočit o 180 stupňů. A to není konec programu protože jste v navždy zablokovat takže to půjde znovu a znovu a znovu a znovu. Tak uvidíme, co se stane. OK. Trochu buggy, ale docela fajn. A můžeme přidat k tomu nějaké hlouposti že nejsou všichni, že intelektuálně zajímavý. Ale pokud se tento malý hit mikrofon button-- Au. Nech mě očistit to. Nech mě to jako posílení říkali v televizi. Vyčistit, tak to Save a teď jít až na skripty. A teď, nech mě jít, aby to znělo. Uvedu to jméno. Zavolám tento Ouch. A teď hrají zvuku Ouch. zdá se v oznámení Trochu rozbalovacího menu. Uvidíme. [OUCH] [SMAVÝ] Ale můžeme změnit t jeho chodu. Můžeme být dvakrát tak nepříjemné. [OUCH] Nebo pokud uděláme to takhle 1000 kroků na první time-- OK. Takže budeme že jeden nechat na pokoji. Takže znovu, stavební blocks-- I začal s něčím super jednoduché, a pak jsem přidal funkci, přidal funkci, přidal funkci. A už musím se obávat jak první z těchto vlastností byl realizován jak jsem pokračovat do vrstvy, co nahoře. Takže ve skutečnosti, dovolte mi proveďte jednu další zde. Nech mě jít dopředu a otevřít soubor, který Přinesl jsem předem, tzv ovce. Tak to má poněkud odlišný Znak, který vypadá takto. A dovolte mi, abych zjistil, jestli nemohu dělat něco, pomocí počítadla v tomto case-- tzv proměnné. Chystám se jít dopředu a pod Events-- dovolte mi, abych zelená vlajka klepnutí. Tak mě nech jít do Data, která vím, z těsně předtím, než hrál, je místo, kde proměnné jsou. A já jdu dál a přetáhnout. Takže proměnná s názvem pult, a Chystám se ji inicializovat na nulu. I to může volat anything-- x nebo y nebo Z-, ale při programování, volá něco sémanticky užitečný způsob, stejně jako pult, který popisuje, co to je, je to mnohem snazší číst váš kód později. Nech mě jít dopředu a dostat navždy zablokovat zde. A nech mě jít na vzhled stránky a dělat Say blok. Ale to, co je v pohodě o proměnných I Nemusíte psát jen v něčem jako hello world, kterou jsme už jsem hotovo, můžu místo toho jít do dat a táhnout svůj proměnnou, a to i i když tvar není úplně vypadat, že by se měla vejít, bude se rozšiřovat zaplnit. A já budu jen říct, počítadlo pro jeden second-- spoiler-- že to bude počítat. Budeme to říci za jednu sekundu. Pak jsem jdu a nechat ho čekat na jednu sekundu, takže se to nepočítá se příliš rychle. A pak konečně změnit počítadlo podle one-- jinými slovy, zvýšit počítadlo o jednu dodatečný přínos, a to navždy. Takže ovce taky, jako když programátor, se počítá od 0 ° C. A pokud budeme čekat dost dlouho, Udělá to navždy. Ale to není tak docela pravda, protože Ve skutečnosti, jak budeme objevovat v jednom týdnu, celá čísla a počítače obecněji technicky má jen finite-- dobře, spíše počítače, když představují celá čísla, mají jen konečný počet bitů. Tyto žárovky tam může počítat jen tak vysoko Než jste mimo žárovek. A počítač příliš, má jen tolik paměti, má jen tolik tranzistorů, tak to může počítat jen tak vysoko. Tak to dopadá, že ovce, Myslím, že se mohou spolehnout na 2 miliardy nebo něco docela velký. Takže my nebudeme počkat, aby se to stalo. Ale nakonec nějaký bug bude dít které mohou mít některé velmi reálný svět důsledky. Ale za ovcemi, právě zavádí proměnné. Pojďme dál a otevřít něco, co jsem udělal v předstihu Zde volal Pet Cat-- Pet Cat sem. A všimněte si, tady je to málo bloky, ale když zelená vlajka klepnutí navždy dělat následující. Pokud se dotknete myši pointer-- tak se kurzor na obrazovce, arrow-- přehrávat zvuk mňau a pak čekat dvě sekundy. A právě to navždy. Jen neustále čekat aby zjistil, zda v pointer-- v případě, že kočka se dotýká ukazatel. Tak jsem trefil hru. Nic se neděje. Ale jak jsem se přesunout kurzor na kočku, [Mňoukání] A jestli jsem to vzdálit, nikoli hladila kočku ještě. Takže někteří podmíněná logika vnořená uvnitř smyčky. Jak se o tomto příkladu úmyslně volal Nenechte Pet Cat? Co se to bude dělat? [Mňoukání] Proč byste neměli pet kočku? [Mňoukání] OK. Takže toto je příklad if else. Je to rozhodnutí, bod a protože to sedí ve smyčce, oba jsou stále kontrolována. Je to pravda? Je to pravda? Je to pravda? Je to pravda? A nakonec, jeden z ty, které se bude aplikovat a tak uslyšíte buď mňau nebo řev lva v této věci. Dobře, pojďme udělat něco více vymyšleného jeden že jsem udělal předem too-- závity. Takže vlákno je jen jedna věc, že ​​počítač může dělat. Takže program multi-závitové je program že může dělat více věcí najednou. A všechny tyto příklady Dosud měli jen jeden scénář, tak speak-- jeden program takhle tady. Nevšimnout tento program má dva skřítci, dva znaky. Jedním z nich je pták. Jedním z nich je kočka. A všimněte si, když jsem kliknout na těchto dolů levá, každý z nich má své vlastní skripty nebo programy jsou s nimi spojeny. A to jak těch, programy, oznámení, začátek s při Zelená vlajka clicked-- pojďme se podívat na cat-- Při kliknutí na zelenou vlajkou. A tak opravdu, když jsem trefil hrát teď, dvě věci jsou bude dít najednou. Kočka a pták jsou oba bude fungovat souběžně k vytvoření tohoto efektu. A jste si možná představit, co se děje. Je tu smyčku a pták a kočky jsou ve smyčce. Pták je stejně jako odrážení Byl jsem předtím, když jsem řekl Au. Ale kočka má jednoznačně výhodu. Je tu další snímací blok který ukazuje kočku záměrně na ptáka v tomto případě zde. Takže bychom mohli dráždit od sebe, při pohledu prostřednictvím těchto bloků, co se děje. Ale klíčovou složkou tady je jeden. Pták, takže tato hra není zcela boring-- nebo to animation-- začíná v náhodném směru. A počítač je vychystávání číslo mezi 90 a 180 v podstatě tak, že je o něco odlišné animace pokaždé. A Všimněte si zde, v případě, že kočka se dotýká ptáka, pak hrát lva čtyři sound-- řevu. Ale mezitím v pták paleta, máme to. Forever, ne-li dotýká kočku, Jen dál tři kroky. A pak je tu další kousek skládačky. Pokud jste na hraně, odskočit. Takže pták je tak nějak hlídání své vlastní podnikání, Jen létání kolem a poskakování, a je to opravdu kočka, která měla podmíněné logiky zjistit, zda to chytil ptáka. Dobře. Takže pojďme dělat s jedním dalším tady, tahle volána Hi Hi Hi. A tenhle tady právě dělá to v navždy smyčce. Ale notice-- jak jsme zastavit Tento velmi nepříjemné programu? Hit mezerníku. Protože jestli to udělám, levá ruka program-- Všimněte si, že je to stále listening-- je klíčem prostor stiskněte tlačítko. V případě, že mezerník lisované, a pokud ano, co to dělá? To dělá velmi časté technikou. Stanoví proměnné rovná nějakou hodnotu. Ale to přepíná tuto hodnotu. [? Tak vzhled?] na základě shape-- I mají proměnné, které jsem napsal předem nazvaný Ztlumen, který jen říká, že ano, nebo ne. Je zvuk ztlumen nebo ne? Pravda nebo lež? A oznámení, říkám-li tohle-- tlumené je nula, pak se změní na jednu, jinak má hodnotu mute to na nulu. Takže stačí otočit hodnotu od nuly do jedné. Mohl bych mít done-- změnit ze dvou na tři a tří na dva nebo čtyři až pět nebo čtyři až šest. Ale to nevadí co čísla, které používám, tak dlouho, jak budu držet měnící se to opak. A většina jakýkoliv programátor by jen zvolit nula a one-- nepravdivé a pravdivé, off a on-- reprezentovat to. A to stále běží. Pokud jsem narazila na mezerníku znovu [SEAL tóny] Tento program stále běží. Vzhledem k tomu, že je to jiný scénář který říká, navždy proveďte následující. Pokud je ztlumen proměnná rovná zero-- takže pokud nejste ztlumen je logic-- jestli je to falešná nebo ne, pak přehrát zvuk, protože nejste ztlumen. Měli byste hrát zvuk a následně myslím, hi hi hi po dobu dvou sekund a pak čekat, a to znovu a znovu a znovu. A tak tímto způsobem můžeme mít cestu lidé to-- pro programy k interakci. A nemají na tak, jak je starý jako ostatní. Ve skutečnosti, strkat around-- žádná slovní hříčka intended-- někdo strávil obrovské množství Čas na internetu prováděcím PokemonGo do nuly. To vám dokonce geolocates v Cambridge nebo Allston zde. Takže pokud chcete vidět i to, co lidé můžete udělat, je tohle-- velmi efektní nabídka. Klikněte na zde. To je mi s šipkami nyní. Chystám se jít po tomto. Klepněte na tlačítko. A teď klepnete na Pokeball. Myslím, myslím, že jsi Předpokládá kliknout na Pokeball. Dobře. Tak jsem to udělal. Můžu jít sem. A tato osoba realizovány některé další PokeBalls přes here-- tří PokeBalls. Budeme poslat odkaz na tuto on-line, takže můžete hrát. Ale oznámení je tu jen některé základní stavební kameny. Vypadá to hodně milovník, a to je. To je impozantní a další než bychom obvykle Očekáváme, jistě za problém nastavit nulu. Nemám ponětí, jak dlouho tato osoba strávený on-line. Ale je to všechno jen smyčka. Je tu přehrávání zvuku. Je tu nějaká smyčky naslouchá, jestli jsem bít na šipku nahoru nebo dolů Šipka nebo levá a pravá, a pak pokud ano, je to v pohybu to nějaký počet pixelů. A pak když jsem klikněte na Dalším sprite, je tu nějaký Pokud existuje podmínka. Jo, to už je příliš intenzivní. Budeme zastavit. Je to všechny ty základní stavební kameny. Nejsou tam žádné jiné další přísady než ty, které jsme se podíval na již. A přesto tady, nech mě dělat jedna závěrečná sada příkladů že maluje obraz příliš o tom, co můžete udělat zde. Zde je velmi jednoduchý program, který právě dělá tohle-- kašel, kašel, kašel. A založeno pouze na to, co Podívali jsme se na tak daleko, kde je zřejmý příležitost pro zlepšení. Tento program je správná. To kašle třikrát, což je to, co jsem chtěl. Ale je to špatně provedena. Je to špatně navržen. Proč? To jo. Není to smyčka. A to není tak moc že to není smyčka, je to, že je tu spousta redundance. Tam se zkopíruje a vložit kód, abych tak řekl. A roztok byl pravděpodobně je skutečně smyčky. Tak nech mě jít napřed a zlepšit na to. A budu táhnout nich tady. Nech mě jít dopředu a dostat opakování blok, změnit na tři. Budu vyhodit některé z těchto bloků. A všimněte si, že je to docela intuitivní. Přetažení a věci objevují a mizí nakonec. A já si jen přetáhnout to tady, a Teď mám ještě čistší verze. Ale víte co? Tam je to příležitost Nyní pro abstraction-- zahájit definovat nová slovíčka že MIT nepředpokládal. Je tu čekat a opakování a navždy, a pokud, ale co když chci představit slovo kašel jako blok? Co když chci kousek skládačky jehož smyslem života je kašel? Dobře, pojďme se podívat na tuto verzi tady, což jsem udělal takto. Magicky, jsem vytvořil Tento skládačky tady, který Scratch vám umožní udělat. A skutečně C a Python a JavaScript jsou bude vám umožní to udělat stejně. Můžete si vytvořit vlastní kousky, které voláte, co chcete. V tomto případě, kašel cítí jako rozumná definice. A pak s těmito kousky dolů Zde si můžete definovat, co to znamená. odtáhl jsem a spadl z Tato paleta here-- více blocks-- tento velký fialová blok, kde jsem napsal při kašli Jako název mé nové skládačky. A pak říkám pokaždé, když uživatel žádá, aby tento nový kašel kousek skládačky, dělat slovo a čekat. A tak tady v mém opakování bloku, Mohu jen kašel třikrát. A já bych tvrdit, zvláště pokud teď skrýt detail. Koho zajímá, jak je implementován kašel? Vše o co se starám jako programátor, že můžu vykašlat. Nezajímá mě, jak říkají, je implementována. Jen mě to zajímá, že kočka může něco říct. Mohu abstraktní pryč, že detail a zaměřit pouze na to, co je na obrazovce zde. Ale mohu ještě o krok dále trvat. Všimněte si, že tu mám realizován smyčka třikrát. Ale co když místo toho jsem chytit tuto verzi? A co když namísto V této verzi zde, Jen jsem změnit svůj kousek skládačky, aby přijaly argument a vstup sám pro sebe? A to může být vstup číslo jako tři. Takže teď, když píšu program A chci kočku ke kašli, Mohu skutečně říci puzzle poskládat kolikrát ke kašli, protože na dně tady, milovník verze těchto zakázku dílků mi umožňuje upřesnit, že kašel vlastně vezme input-- trvá argument jako je tento. A víte co? Možná jsem si uvědomit, počkej. Kašel je same-- to je zásadně stejný nápad jako kýchání. Je to jen jiný Slovo na obrazovce. Mohu abstraktní pryč dále a realizovat Tato konečná verze kašel, které na první pohled je cesta složitější hledá. Nevšimnout, co jsem udělal. Mám teď generalized-- genericized really-- tento kousek skládačky být nazýván říci slovo n-krát. A teď mám dvě nové dílky tady dole definovat kašel n-krát. A co je funkce kašel dělat? Co si můj zvyk skládačky dělat? Je to jen volá řekněme blok, procházející ve slově chci říci, procházející v počtu kolikrát chci říci. Vzhledem k tomu teď můžu realizovat kýchání tím, že prostě říká achoo, V tomto případě, některé kolikrát. A tak jsem vrstvení a vrstvení. A opět zde klíč není jak jsem implementoval ji, ale skutečnost, že když jsem jen doslovně přesunout tyto mimo obrazovku, dívat se, jak jednoduché, ne-li docela můj program nyní vypadá. Vzhledem k tomu, že dělá to, co říká, jsem abstrahovat mimo to, co je uvnitř, že černé skříňky. to se stane být fialová box tady, ale já jsem překážka pryč, co je uvnitř protože mi fuk, jak to funguje. Já jen jedno, teď, že to funguje. A skutečně, v problému set nula, to je přesně druh vrstvení nápadů budete mají možnost prozkoumat. Je to přesně příležitost aplikovat řešení problémů techniky, s tím, co je nejspíše neznámém prostředí. A zda jste není naprogramován před nebo naprogramováno, zjistíte, že je tu něco malého V tomto prostředí pro každého. A s problémem set jednou za týden času, budeme převedeni na zaostřování na vyšší úroveň jazyka zvané C- nebo spíše nižší jazyková úroveň nazvaný C-, že je ještě silný, i když je to trochu mystické na první pohled. A budete si uvědomit, za dnešní TL: DR, že tento problém nastavit má kratší Okno času, než těch budoucích, jednoduše protože byste měli najít docela přístupné. A ne se bát, pokud Přidáte-třída pozdě. Budeme řešit, že zanedlouho. A než jsme se odložit na dortu, pojďme skončit pouhým pohledem dvouminutového na to, co vás tady čeká v CS50. [MUSIC PŘEHRÁVÁNÍ] Dobře. To je pro CS50. Uvidíme se brzy. Koláč je nyní sloužil. [MUSIC PŘEHRÁVÁNÍ] REPRODUKTORY 17: Už jste slyšeli z volno, šéf? REPRODUKTORY 18: Možná je tu více pod kapotou.