[MUSIC PLAYBACK] To je CS50-- Harvard University úvod na intelektuálne podniky informatiky a umenia programovania. A moje meno je David Malan a Zrovna som si hovoril dnes ráno, to bolo úžasne 20 rokov dnes čo som naposledy sedel, kde vy teraz. Bolo to 1996. Bol som druháku, a ja bral CS50 vôbec prvýkrát. A ja som ani nedostal do nervy aby to sám v prvom ročníku, čiastočne z dôvodu času. Počítačová veda so mnou tak trochu rád, meh. Bol som trochu geek rastúce up, ale neurobil som to vlastne máte nejaké intelektuálne Záujem o niečo, čo vyzeralo byť len celá partia ľudia programovania po celú dobu. A bol som strach, aby bol úprimný. Priebeh a počítačovej vedy viac všeobecne mali a do určitej miery, Stále má túto povesť pole pre majte sa na pozore, aj keby len preto, že mnohí z nás sú oboznámení s ním a neisté na to. A to naozaj nebolo kým som nakupovala Táto trieda, ktorá sophomore fall-- a dokonca aj vtedy, len som sa zapísal pretože professor-- jeden z mojich prvých mentorov, Brian Kernighan teraz na Princeton-- mi umožnilo vziať trieda priechod zlyhá. A vskutku, to je dôvod, prečo Dnes sme umožňujú a podporujú študentov, aby túto triedu TV / unsat. A až potom, prepočítaná podľa kurzu koniec semestra som si uvedomil, ako, wow, to nebol taký neznáme pole. V skutočnosti sa jedná o veľmi posilňujúce poľa, a viac vzrušujúce, obzvlášť neskôr, ako som navštevoval kurzy Dramatická umenia 101 a Latinskej A a nakoniec grad školy archeológie, som naozaj začať vidieť priesečníky tejto oblasti, počítače veda, s humanitných prírodné vedy, umenie, medicína, a podobne. A tak to, čo je práve tak úhľadný o informatike nakoniec, ako dúfame, budete see-- je jeho použiteľnosť týchto iných oblastiach, a ako môžete sa niektoré z dnešných a semestra nápady a praktické zručnosti späť na vlastnej doméne, a vlastne prehliadku tohto križovatku zo slobodných umení a vied. Takže 73% z vás, ak je posledná rok je nejaký náznak, Nikdy predtým vziať kurz SK. Takže ak, ako ja, ste cítil trochu strach, alebo otvorene nie ste naozaj istý, prečo ste ešte tu. Možno ste práve nasledovali niektoré priateľov Sanders práve teraz. To je úplne v poriadku. Cieľom je tu háčik Vy a vám upokojiť že ak sa pozriete na vľavo a vpravo, budete vidieť spolužiakmi s ako málo alebo toľko skúseností To si ty sám môže mať. A skutočne, budeme zdieľať Niektoré štatistiky ešte dnes o tom, čo demografia trieda typicky vyzerať. A ako pridaný reassurance-- a toho sme to znamená, pretože som si vzal v priebehu O niekoľko rokov ago-- v Kurz je osnova Je tohle-- že to, čo v konečnom dôsledku záležitosti v tomto kurze nie je toľko, kde ste skončili up vo vzťahu k svojim spolužiakom, ale kde sa v týždni 11, koniec toho semester, skončiť vo vzťahu k sebe V týždni 0, čo je tam, kde sme dnes. A to je to, čo som si uvedomil, všetky tie roky. A viem, že veľa triedy hovorím, ale je to obzvlášť pravdivé v informatike. Na konci dňa, toto pole je neznáma, ako to bolo pre mňa a môže byť pre vás, je naozaj len o riešenie problémov. A ako taký, to predsa má toto použiteľnosť získať ďalších odboroch. A v skutočnosti, keď sme sa snažili destilovať, čo to znamená, To je riešenie problémov vo svojej podstate, trúfam si tvrdiť. Je tu input-- Takže bez ohľadu na to je to, že sa snažíte vyriešiť. K dispozícii je výstup, ktorý je snáď riešením tohto problému. A potom, keď by sme hovorí v informatike, tam je to čierna skrinka v prostredný, ktoré nemusia nutne musieť starať o tom, ako to funguje. Vy sám nakoniec mohlo realizovať to, čo je vo vnútri tej krabici. Ale pre dnešné účely a viac všeobecne v živote, všetko vám záleží je to, že tieto problémy si vyriešiť. A čo tento kurz nakoniec asi skúma križovatka Tieto vstupy a výstupy, a tieto takzvané algoritmy, ako budeme čoskoro vidieť, že realizovať to, čo je Pod tam, digestor. Ale tieto vstupy a tieto outputs-- Čo to vlastne znamená? No, na konci dňa, potrebujeme nejaký spôsob, ako reprezentovať informácie. To platí najmä v počítači, ktorý ako fantázie a komplexné otázkou, pretože Mohlo by sa zdať, je celkom hlúpy zariadenie. Trvá electricity-- či už z kábel alebo batérie ako input-- a potom sa produkuje preprogramed odpovede na obrazovke. Ale ako sa dostaneme z začínajú tam skončiť? No, čo sa problém treba riešiť? No, možno by sme mohli, pri Na začiatku každého semestra, pokúsiť sa dochádzku v miestnosti ako je táto. Takže som mohol urobiť ako jeden, dva, tri. Alebo, či som to urobil aby nejako sledovať z myself-- sledovať things-- Mohol by som rýchlo dôjdu prsty. Tak som mohol len vytvoriť hash marks-- jeden osoba, dva, tri, štyri, päť, šesť, sedem, osem. A každý z nás má pravdepodobne urobil to, či sa na ruky alebo na kus papiera. A to je vlastne len niečo, čo nazýva unárne notation-- kde ak máte len jedno písmeno v abeceda, jedným alebo hash známka v tomto prípade pre každú vstup Ak chcete počítať, musíte dať dolu jeden z nich letters-- jeden z týchto značiek. Dobre. To je všetko v poriadku a dobré a nie je všetko tak zložité. Ale počítače nie sú všetky že oveľa zložitejšie. V skutočnosti väčšina z vás asi vedieť, aj keď ste v skutočnosti uvažoval, čo to znamená, že počítače rozumieť len nuly a ones-- takzvaného binárneho systému. My ľudia, naopak, sú natoľko oveľa sofistikovanejšie, pokiaľ ako je chápeme nuly cez deviatky. Ale aj keď je binárny, sprvu pohľad, nie všetko, čo poznajú, ukázalo sa, že je to rovnako ako systémy a myšlienky, ktoré už poznáme. Tak napríklad, to považujú. To je len postupnosť symbolov. A všetky z vás, keď pozrel sa na neho, pravdepodobne myslím 123-- nič tam naozaj zaujímavé. Ale prečo je toto číslo, 123? To sú len piktogramy na screen-- len vzory že niekto mohol ťahané alebo zadali. Ale ak ste ako ja, budete Pravdepodobne pamätať zo základnej školy že existuje akási stĺpcov alebo miesta tu. Tam je ten jeho miesto a desiatich na svoje miesto a po stovkách jeho miesto. A z dôvodu, že je to 123 a nie len vzorka troch symbolov Je tomu tak preto, samozrejme, ak my majú jeden v stovkách mieste, ste si to spočítajte 100 krát jeden, a potom dva do siete TEN v mieste. Tak to je 10 krát 2 a potom tri v niečí miesto a to je 1 krát 3. A keď pridáte všetky tie, up, o Samozrejme, dostanete 100 plus 20 plus 3. Tak sme začali len s vzorkou z symbols-- k alphabet-- ale potom sme zmapovali význam na že prostredníctvom týchto stĺpcov. No, to ukáže, že Počítače sú naozaj nie je všetko, čo sa líši od teba a pre mňa. Ale namiesto použitia sily 10, tak speak-- 1, 10, 100, 1000, 10000 miesto a tak forth-- Sú to vlastne stačí použiť sily 2-- tak jeden, 2, 4, a potom Dáme Ak je viac číslic, 8, 16, 32, 64, 128 a tak ďalej. A tak to je, ako počítač bude predstavovať číslo 0, Rovnako ako my ľudia. 0, 0, 0-- a asi tušíte čo vzor núl a jednotiek, Ak počítač môže iba Hovoríme 0 alebo 1-- čo vzor bude reprezentovať numerická my ľudia poznajú ako 1? Yeah-- 0, 0, 1. Dobre. Takže 0, 0, 1, ako my reprezentujeme 1, takže je možné mať tendenciu po tom reprezentovať číslo 2, ak máte Všetci štyria sa miesto a miesto týchto dvoch je ako jedinom mieste, dalo by sa povedať, dobre, keby sme mali 1. miesto v niečí mieste, a teraz chceme počítať až 2, môžete to a nechať to byť nula. Ale samozrejme to nie je, ako desiatková systém funguje jeden. Ak dáte číslicu oba tieto stĺpce, musíš robiť aritmetiku. Takže to, čo urobil číslo I náhodne len predstavuje? Takže je to tri, pretože 2krát 1 plus 1 Časy 1, samozrejme, nám dáva tri. Takže by to bolo dva. Bitová druh vyletí, tak povediac, as 0 sa stáva jedným, podobne ako 9 rolí viac ako a stáva 0 Pri prenášaní 1. To by potom bola tri samozrejme. Four-- Ďalšou zaujímavosťou sa stane, ak ti prevrátiť a prenášanie 1, tak povediac. Takže to, samozrejme, je 4. Ale ak sa rýchlo vpred teraz, Čo je najväčší počet deje sa, že počítač môže predstavovať? Takže je to len sedem v tomto prípade, že jo? Vzhľadom k tomu, že máte jeden v štyroch, jedna ku dvom, jedna ku jednej. Tak to je 4 a 2 plus 1. Tak, že vám dáva sedem. A naozaj, bolo by to na prvý pohľad zdať že počítače môžu počítať nie je vyššia ako toto. Ale to samozrejme nie je pravda. Čo my ľudia robiť, keď chceme spočítať vyššia ako 999 podobne? Len niesť jeden a len Pridanie štvrté miesto vľavo. A tak vskutku sme mohli. Mohli by sme mať k dispozícii osem'S Miesto a 16. v mieste, a 32 je miesto, 64, 128-- a vy stačí držať deje až do nekonečna. Takže tieto nuly a ones-- takzvaný binárne system-- sú to, čo počítačový vedec by všeobecne požadujú trochu, alebo binárne číslicu. Ale teraz, ako sa dostaneme z Koncept alebo grafika s týmito vecami ku skutočnému počítači? Zdá sa, že bude preskakovať krok tu. No, jediný vstup na konci dňa, na mojom notebooku tady je tento tok elektrickej energie. Dokonca aj keď je to už dlho Doba pretože si myslel o alebo nikdy nepremýšľala ako elektrina funguje, je tu elektróny tečúcej alebo out, a to je môj typ vstupu. Takže či je to všetko, že sme dostať ako vstup tu, čo môžeme robiť s týmito informáciami? No, môžeme myslieť na nule len absencia elektriny. Nič nie je flowinw, nič nie je pohybu, nič sa nedeje. To je len východiskový state-- nule. Ale ak je elektrina prúdi, prečo nie my len ľubovoľne, ale na celom svete dôsledne, hovoríme one. Tak jednoducho tým, že nemajú žiadnu moc, máme nulovú áno moc, máme one-- bez napájania áno silu. A týmto spôsobom, pomocou niečo viac fyzický alebo elektronický začneme realizovať túto myšlienku niečo buď ako jeden alebo nulu. V skutočnosti, môžeme len to tu. Tak tu, nemám tri, ale Osem žiarovky, z ktorých každá má svoj vlastný vypínač. A tak keď som chcel reprezentovať číslo sedem tu, I sa môže ukázať na týchto troch žiaroviek. A skutočne, vnútro môj počítač je v miliónoch, Miliardy vecí, ktoré sú rovnako menšie ako to, nazývané tranzistory, prepínače, ktoré ste práve zapínať a vypínať. Takže títo sú relatívne big-- big-- prepínače vnútri môjho laptop-- je mnoho, mnoho, mnoho, oveľa viac prepínačov. Ale všetko, čo robia, je presne to, to-- otočiť niečo, otočiť niečo off. A ako taký, počítač môže predstavovať, s týmito miliónov či miliárd tranzistorov, partií a kopa núl a jednotiek. A je tu ďalší hardvér stále, že umožňuje ukladať informácie o dlhodobo, takže keď budete ťahať zástrčky, nechcete stratiť. Ale to je príbeh pre iný deň. Tak čo s tým môžeme robiť s týmito kúskami? Možno sme jednoducho vziať Tlak preč me-- Možno niekto bude chcieť prísť tu a ponúknuť až demo? Videl som túto hru ako prvý. Ako sa voláš? Madam: Madam. DAVID Malan: Madam, poď hore. Rád som ťa spoznal. Madam: Teší ma. DAVID Malan: Poďte tadiaľto. Nebudem musieť peru nahor. Dobre. Takže tu máme, notice-- jeden, two-- budeme upravovať, že out-- jeden, dva, štyri, osem, 16, 32, 64, 128. To je zámerné. K dispozícii je osem bitov here-- binárne digits-- nuly a jednotky. A trochu je užitočná jednotka measure-- nie ako užitočné mernou jednotkou na seba. Obvykle budete chcieť aspoň osem z týchto vecí, alias byte. Takže máme byte bitov tu. Takže ak by sme chceli vyzvať vás s, Napríklad, v ktorej budú uvedené v binárnej, Táto hodnota here-- 42. Chcete, aby sa bodnúť sa na to? Madam: [nepočuteľné]. DAVID Malan: Jo, len tlačiť malé biele spínače vpredu. A chcete, aby bolo zrejmé out 42 a je k dostaniu Je to CS50 stres Loptu ak ste si to. Dobre. Takže máte 32. Budeme potrebovať 42. Tak to je osmičku, tak to je 40. A excellent-- veľmi pekne vykonané. Ďakujem. [APPLAUSE] Dobre. Takže máme ešte jednu stres loptičku. Poďme to urobiť ešte raz, či môžeme. Jedným z ďalších dobrovoľníkov? Bez stresu gule, bez stresu loptu. OK. Tu v stredu, chceš prísť dole? Dobre. Viem. Tam sme ísť. Takže čísla here-- poď dole. Ako sa voláš? DAVEY: Davey. DAVID Malan: Davey. OK. Poď hore, Davey. Rád som ťa spoznal. A čo budeme mať vás spell-- ak sa tam mohol prodleva len na jednu moment-- je číslo 50. Ale, ale, ale, ale, ale, to sú trieda školské magnety z nejakého dôvodu. Len mám trochu ťažšie, v poriadku? Je tu ešte osem. Dobre. Tak čo máme tam? Máme 32. Pekný. 32 a 16 nám dáva 48-- tak blízko. A úžasné. Gratulujeme Davey rovnako. [APPLAUSE] Dobre. Takže môžeme to urobiť po celý deň, a to nedostane všetko oveľa zaujímavé a náročnejšie. Ale to je naozaj point-- je, ako relatívne jednoduché to znamená, že na konci dňa, čo je Počítač nemá na ukladanie informácií, pre ukladanie vstupov a nakoniec ukladať alebo reprezentujú tieto výstupy. Ale samotné čísla nie sú všetko zaujímavé. Takže ľudia, pred niekoľkými rokmi, rozhodol, vieš čo? Bolo by pekné, keby počítače neboli len kalkulačky pre aritmetiky Operácie, ale v skutočnosti mohol robiť veci, ako je spracovanie textu, alebo e-mail alebo viac moderné inkarnácie týchto druhov technológií. A tak sa svet rozhodol, ľubovoľne, ale všeobecne, že ak chcete uložiť kapitál písmeno A v počítači, viete čo? Povedzme, všetci sa zhodujú uložiť niektoré vzor núl a ones-- bits-- ktoré v konečnom dôsledku predstavuje desiatkové číslo 65. Proste sa všetci zhodneme na tom. 66 by predstavovalo B, 67 bude predstavovať C, a tam je kytica z iných vzorov nuly a jednotky, alebo podkladové čísla, že by predstavovalo ďalšie písmená v pokoji. Takže ak máte trochu mentálne absorbovať túto chvíľu, Zámerne som dať do skrze Aj tam, kde H a 72 a I je 73. V prípade, že počítač potom, v rámci textového procesora alebo e-mail, odhalilo pod kapotou mať Tieto vzory bits-- vzoru bitov reprezentujúcich 72, potom 73, potom 33-- čo by sa mohlo toto kúzlo v tomto programe? Tak ahoj, a potom sa niečo. My nemusí vedieť, ale v skutočnosti 33-- nie je na grafe earlier-- Bol proste výkričník. Takže 72 bolo H, 73 je I, 33 sa stane byť výkričník v pokoji. Ale to je všetko v poriadku a dobré, a v skutočnosti v súčasnej dobe, a nie stačí použiť sedem alebo osem bity, vďaka niečomu volal Unicode ako protiklad ASCII späť v deň, sme vlastne môže predstavovať ešte viac zaujímavé postavy než len Tieto originálne anglické zaujatý listy. Ale môžeme tiež reprezentovať aj krajšie veci, ako je farbách. Ak ste niekedy počuli skratku RGB, červená, zelená, modrá, ktoré jednoducho znamená, že počítače zvyčajne používa tri sady bits-- niektorí počet bitov, ktoré reprezentujú číslo za koľko červenej chcete, ďalšia sada bitov pre Ako veľmi zelený chcete, a ďalšie sada číslo koľko modré chcete. Tak veľké číslo znamená veľa červenými, malých číslo znamená žiadne červené. A tak sa jedná o druh zo strednej hodnoty tu. Takže mi dať nejaké červené, daj mi niektoré zelená, a daj mi trochu modrej. A keď zmiešate tie tri odtiene farby dohromady, v tomto prípade, dostanete túto temnú odtieň žlté alebo hnedé. Ale to vzor osem navyše osem a eight-- tak 24. bits-- zľava doprava, je to, ako počítač by znamenalo, že konkrétnu farbu. Teraz je to len bodka na obrazovke. Ak sa pozriete naozaj blízko pri televízore vašich počítač, uvidíte bodky alebo pixelov. A ak budete mať celú mriežku pixelov, horizontálne aj vertikálne, Máte snímok. A potom, keď idete obraz a potom umývanie ukázať sami iný obrázok, ďalšie obraz, iný obraz, iný obraz, naozaj rýchlo, budete mať samozrejme filmy. A tak si všimnúť, kde sme začali. Začali sme s týmito núl a jednotiek. Pracovali sme odtiaľ do desiatkovej Čísla, ako je zastupovať. Teraz máme písmená abecedy. Ale v iných súvislostiach čakať, môžeme použiť málo viac bitov a predstavujú farby. Akonáhle budete mať schopnosť reprezentovať farby, máte možnosť reprezentovať fotografie a oživené gifs a ďalšie podobné znaky na obrazovke. A keď máte veľa obrazy lietanie človekom naraz, vyzerá to, že filmy, a tak dostanete videa rovnako. Takže pomocou týchto veľmi jednoduchá primitíva my majú spôsob reprezentácie v konečnom dôsledku všetkých týchto typov médií. A my sme zase abstrahovať a znovu a znovu, kým sme sa od najnižšej úrovne k tejto najvyššej úrovni. Takže nám dáva toto všeobecná predstava abstrakcie. Ale začali sme tu. Tu, mohli by sme predstavujú v počítači naše vstupy s núl a jednotiek, Naše výstupy núl a jednotiek, ale čo sa deje vo vnútri škatule? To je, kde počítač veda začína byť zaujímavé. To je to, kde ste skutočne priniesť svoj vlastnej mysli niesť riešiť problémy. Teraz môžeme stanoviť, pretože Zvyšok semestra, áno. Viem, ako binárny funguje. Spomínam si, ako ASCII alebo Unicode-- mapovanie na letters-- diel. A rozhodne stojí logické, že sme môže predstavovať červenej a zelenej a modrý, a predstavujú multimédiá, ako. Ale to je zaujímavé veci. To je to, čo robí niekoho schopné riešiť problémy. A jeden taký problém sme chceli robiť, naozaj, berie účasť, alebo Pritom algoritmickým. A opäť, mohol by som to urobiť. Mohol by som urobiť jeden, dva, tri, štyri päť, šesť, sedem, osem deväť. A ja to mohol napísať dole sledovať to. Ale to je len, ako by som reprezentovať informácie. Alebo by som mohol robiť to faster-- dve, štyri, šesť, osem, desať, 12, 14, 16, 18, 20, 22-- to vyzerá dvakrát tak rýchlo, ale je to stále zaberie veľa času. Ale ukazuje sa, keby sme ešte využiť Ďalších resource-- a naozaj počítače v týchto dňoch majú viac procesorov alebo mozog. Ukazuje sa, že počítače môžu robiť veľa vecí naraz, a naozaj sme, v tejto miestnosti, môže predstavovať práve toto. Takže je to trochu spoločensky trápne, ale ak by ste mi humor len na tri-proces kroku, nech spýtam každého na svojom mieste tam len postaviť sa na chvíľu. Postaviť sa. Takže myslíte, že na seba, číslo one-- takže každý v tejto miestnosti, s výnimkou ľudí, ktorí nemali zaviazať, uvažujete číslo jedna. Takže to je vaša číslo práve teraz. To je prvý krok, alebo ako počítačový vedec alebo programátor by zvyčajne robiť, ideme začať počítať od nuly. Ak je najmenšie číslo môžeme predstavujú s týmito žiarovkami je nula, iba ich odchode all off, mohol by som rovnako dobre začína počítať od nula je miesto jedného. A tak to, čo počítačoví odborníci robiť. Takže krok nulu, vstávať a myslieť na číslo jedna. Ďalším krokom je tohle-- pár off sa niekto stojí a pridať čísla dohromady. Úžasné. Takže v tejto chvíli, Doslova každý zúčastnený myslí na číslo 2, s výnimkou pre jednu osobu nepárne, ak máme nepárny počet ľudí v miestnosti. A teraz tretí krok tu sa chystá tohle-- byť jeden z vás by mal sadnúť. Jeden z by ste mali sadnúť, a ak ste ešte stojí, prejsť späť na krok jedna. Dobre. Dobre. Tak stále viac a viac ľudí by mala byť v sede. Všimnite si, že toto indukované loop-- nejaký cyklu. Niektorí z vás by mal byť nešikovne prilepené, tam a späť medzi prvým kroku a dve, jedna a dve, jedna a dve. To je v poriadku. Naša prvá chyba. Budeme sa s tým vysporiadať. Dobre. Skúsim dať podnet k veci spolu. V teórii, len jedna osoba stojí ako všetci pokračuje spárovať. Ale dovoľte mi veci urýchliť s ľuďmi, ktoré ešte stoja. Aké číslo ste na mysli? 46. OK. Choďte do toho a sadnúť. Vy ešte stojí. Kto ešte stojí? Aké číslo ste na mysli? OK. Takže sa vrátime k vám. V zadnej? Čo je to? 22. OK niekto iný up top-- jo? 34. OK. Tu na mojom right-- sem hore? 132, veľmi pekné. 22? OK. A kto je ešte stojí? Priamo tu? 46, veľmi pekné. 72. Nemôžem zastaviť oveľa dlhšie. Jo? 30, pekný. Priamo tu? 23? 23. A myslím, že to každý okrem vami, žiadny tlak. OH, počkaj. 28? Len osem. OK. Len osem. Tu dole? 30. 23. 24. 18. To je najhoršie implementácia tohto algoritmu vôbec. OK. Takže niekto iný? Niekto iný? OK. Ešte jeden. 16? OK. 16. Dobre. Takže keď som sa vynechal niekto oslnenia tu, keď som stlačte klávesu Enter, budeme vidieť, algoritmickým sa Celkový počet ľudí v Sanders. Vzhľadom k tomu, znovu, je to, ako by všetci ako si sadol, prešiel čísla off na niekoho iného, ​​na niekoho iného, na niekoho iného, ​​takže teoreticky, na konci, len jedna nepríjemná osoba by mala zostať stáť. Ale to je v poriadku. zrýchlil sme veci ručne. Je obzvlášť ťažké vidieť v tomto konkrétnom priestore. A celkový počet ľudí Myslíme si, že tu je 546. Celkový počet Bol som rukou učením kolegami, kto to urobil ten starý škola pomalá cesta, bolo 820. [SMIAŤ SA] [APPLAUSE] To je v poriadku. Takže určite vtedy, sú tieto chyby. A to je v poriadku. A tak si spomeniem na to prvýkrát niečo píšete nemusí nutne fungovať. To sa mi stalo aj tu. Ale poďme teraz zvážiť, ako by sme mohli -Li použiť túto rovnakú myšlienku na niečo ste mohli vidieť skôr, čo Je to stará škola technológie here-- naozaj veľký telefónny zoznam. A predpokladám, že tento telefónneho zoznamu má 1000 strán a 1000 mien a počty abecedne vnútri nej. No, mohli by sme trochu platia obdobné Myšlienka tohto veľmi fyzický problém, Len ma použitie. Len som trochu podvádzala využitím vami všetkými s množstvom a množstvom iného CPU alebo mozgy vykonávajúci nejaký algoritmus. Ale ak je to len trochu staré ja, môžem stále využiť tú istú podstatu myšlienky delenie a dobývanie tento problém znovu a znovu, pričom polovica z vás, polovica z vás, polovica z vás, polovica z vás, teoreticky stále sede, kým sme boli ponechaní, teoreticky, len s jednou osobou. Takže v tejto starej školy technology-- my nie Potrebujem to map-- toto old school technológie, mohli by sme začať hľadať niekoho Ako Mike Smith, jedna stránka naraz. A vidím, že nie, Mike tu nie je. Som stále v sekcii A. Nakoniec som zistil, Sám v sekcii B. A to je algorithm-- krok za krokom inštrukcie. Začnite na stránke začiatku a jedna v dobe, pozrite sa na Mike Smith. Je to correct-- toto algoritmus alebo prístup? Jo, je to v poriadku. Ak Mike je tu, nakoniec Budem sa k nemu dostať. Ale to nie je efektívne. Je to samozrejme veľmi pomalé. Tak som môže byť využitý Rovnaké twosies priblížiť. Môžem urobiť akési dva, štyri, šesť, osem, 10, 12. To je dvakrát tak rýchlo. Chystám sa dostať k Mike rýchlejšie, keď je tam. Je to správne? Áno, ale počul som little-- č. Teraz som počul, č. Jo. Je tu chyba potenciálne. Možno, že Mike len náhodou dostane vložený medzi dve stránky, pretože som preletel tieto dve naraz. Takže aspon budeme potrebovať nejaký druh podmieneného oprava. Musím povedať, hej, či som trafil niekoho, ktorého Názov začína T miesto s S, Radšej zdvojnásobiť späť aspoň jednu stránku. Takže buggy na prvý, ale opraviteľný. Ale nikto z nás budú hľadať Mike Smith cez 1000 stránok telefón s rezervovať jednu stránku naraz. Čo je to normálny človek robiť? Budeš ísť do S rokoch ak ste vedel, kde S je. Tie by mohli ísť zhruba do stredu alebo mierne vychýlená smerom ku koncu. A ja sa tu dole a Som v sekcii M. Ale čo vieš o tomto probléme teraz, že sme nemali nutne vedieť pred so všetkými z nás jednoducho počítať sami ekvivalentne? No, Mike je zjavne deje byť v tejto časti knihy či je tu vôbec, pretože je to triediť. A tak môžete veľmi dramatically-- [Lapal po dychu] Viem. [APPLAUSE] Je to vlastne naozaj jednoduché, ak vy ho chrbtica tam. Ale potom môžete hodiť polovica problému preč. Teraz som odišiel s rovnakým problem-- nájsť Mike Smith v telefóne book-- ale teraz telefónneho zoznamu začína na M a ide do Z, ale je to z polovice tak veľký. Ale to je to, čo je impozantný. Rovnako ako v teórii, vy chlapci, keď všetci sa posadil len polovicu naraz, Problém sa dostal polovice tak veľký, polovice tak veľký, znovu a znovu. Aby sa stal tohto problému Rovnaký problém však polovice tak veľký. Teraz je to problém a 250 stránok. Akonáhle som si uvedomiť, oh, som v sekcii T náhodnému spusteniu. Som zašiel príliš ďaleko. Aj môže hodiť, že polovica telefónneho zoznamu preč. Teraz som až do Štvrtina problému. A môžete opakovať, opakovať, opakujte, kým teoreticky, si zostáva len raz stránkou. A ak Mike je na tejto stránke, Teraz môžem tento problém vyriešiť. Ale ako rýchlo som to vyriešiť? V prvom prípade, trvalo mi to páči Možno 1,000 kroky na nájdenie Mike Smith. Mohlo by to vzali me-- Zdvihol som do telefónneho zoznamu a ja začal hľadať jednu stránku naraz, a Mike by mohlo byť 1.000 stránok neskôr. Druhý prístup možná berie mi 500 krokov, pretože letím cez dva naraz. A tretí prístup aj keď, to je obzvlášť silná. Ale uvažujme, čo sme vlastne urobil s týmto tretím prístupom. Budem mať čo budem hovoriť práve títo Vyhlásenie tu, jeden po druhom. Vyzdvihnúť telefónneho zoznamu. Otvoriť do polovice telefónneho zoznamu. Pozrite sa na mená. A potom sa veci trochu intelektuálne zaujímavé, Ak sa stále jednoduché. Ak Smith je jedným z Názvy v tomto aktuálnej stránke, potom niečo podmienečne. Je to ako rázcestí. Zavolaj Mika. V prípade, Mike je medzi názvami na tejto stránke, tzv Miku. Ale len urobiť čiaru štyri ak linka strom, ak chcete, je pravda. Odpoveď na túto otázku je áno. Else if Smith predtým v book-- Inými slovami, keď som v sekcii M a ja som hľadal niekoho, kto by ľavá, potom to, čo mám robiť je niečo veľmi podobného. Potom som mal otvoriť do stredu ľavej polovici knihy. Tak choď doľava a potom vráťte sa na krok dve. Pozrite sa tam mená. Takže inými slovami, to isté, ale na problém, ktorý bol polovičný. Vieš, čo ešte? V prípade, Smith neskôr v knihe založené na stránke pozerám, otvorená stredu Pravá polovica knihy a potom ísť zase späť na krok dva, else-- je tu štvrtá možnosť tu. Mike buď tu alebo na ľavej strane alebo napravo, alebo tam nie je. A tu mali by sme uvažovať o toto. A v skutočnosti, ak ste niekedy mali počítač práve naraziť na vás, že je niekedy, ale nie vždy, Výsledok len ľudské programátor nie uvedomil, oh strieľať, je tu v skutočnosti táto štvrtá scenár. A ak nechcete písať kód zvládnuť túto situáciu, niekedy neviete čo počítač môže robiť. A skutočne program môže zlyhať. Ale v tomto prípade, myslel som, o tom, a povedal som, inak skončiť, pretože to je štvrtý logický možný scenár. Teraz sa poďme stačí pridať niektoré slovíčka, takže sme môžete začať hádzať okolo pojmov, ktoré inak celkom intuitívne. Všetky veci som len zvýraznený žlto tu, Práve idem do funkcie alebo procedúry. Sú to len druh akcií. Takže vyzdvihnúť, otvorený, pozrite sa u, zavolaj, otvorené, otvorené, quit-- to sú len akcie, alebo budeme Nazývame je viac formálne, funkcia. Medzitým sa v žltej farbe, Som zdôraznila veci že-- nech to len začať volať ich podmienky alebo konárov. Jedná sa o rozhodovacie body, v ktorých môžete ísť tadiaľ, tadiaľ, alebo nejaký iný smer stále. Takže tí budú podmienky. A teraz toto je trochu milovník. Hovorme tieto otázky Boolean výrazy, Po niekoho s priezviskom Bool. A logický výraz je proste niečo To je jeden pravdivý alebo nepravdivý, áno alebo nie. Takže je to otázka, ktorej odpoveď vás záleží, tak, aby sa v stave, urobiť decision-- naspäť odpoveď, a potom ísť vľavo alebo vpravo, alebo niečo úplne inde. A potom konečne, tieto linky here-- vrátiť na krok dva, vrátiť krokom two-- by sme mohli realizovať túto myšlienku rôznymi spôsobmi. A potom tie z vás, skúsenosti s programovaním mohol urobiť alebo možno predstaviť, robí inak. Ale pre dnešné účely, to je Len myšlienka, že záleží. To je to, čo indukciu budeme všeobecne nazývať loop-- nejaký cyklu, pretože je to, že ma niečo urobiť znovu. Takže teraz, nech to jednoducho vziať do úvahy ako dobrý je tento algoritmus. Je to správne. Ak sa Mike v knihe, je to jeden z tie štyri scenarios-- znova a znova a znova, nájdeme ho. Ale ako je to dobré? No, my nemáme tu byť príliš formálne. Ale poďme len plot niečo, x a y, aby sa zmysel pre tvar tohto problému. Na osi X tu veľkosť môjho problému. A Y-osa tu bude čas vyriešiť. Takže možno to je počet strán. Možno je to sekúnd alebo Strana turns-- čokoľvek. Avšak chcete spočítať je čo tento obraz bude zastupovať. A že prvý algoritmus, idem popísať len ako priamka. Ak existuje n stránok v telefónneho zoznamu, potom to môže trvať ma toľko ako n kroky na nájdenie Mika. Ak Verizon alebo telefónne spoločnosť pridáva ešte jednu stránku budúci rok, to môže trvať mi ešte jeden step-- ešte jedna jednotka času nájsť Mika. Takže je tu práve tento jeden k jednému pomeru. Je to čiara svah rovno. Zatiaľ, že druhý algorithm-- keď som sa po dvoch time-- dva, štyri, šesť, osem alebo double-- prechádza stránkami dvakrát v čase, po dvoch, je to stále priamka. Tam je teraz jeden až dva pomer, ale len o málo nižšia. Takže ak tam je to veľa stránok Na grafe tu v žltej, že mi to môže trvať rad krokov alebo sekundy, inak to bude, aby ma dvakrát toľko na červenú čiaru. Ale zelená linka je skutočný stánok s jedlom. To je to, čo sme sa všeobecne Volanie logorithm-- log n, pričom n je počet strán. Ale je to tvar, na čom záleží dnes, pretože nemáme dokonca premýšľať o vynesením bodov. Premýšľajte o extrémny scenár. Predpokladajme, že Verizon zajtra zdvojnásobí počet strán v tomto telefónnom zozname, od 1,000 do 2,000. V prvej algoritmus, I Možno strácať navyše 1000 Kroky hľadal Mike, len preto, Verizon zdvojnásobil veľkosť knihy. Druhý algorithm-- by to mohlo mi trvať ďalších 500 krokov. 1000 viac stránok, idem po dvoch time-- viac 500 krokov nájsť Mika. Ale ten tretí algoritmus je druh kúzelné. Verizon zdvojnásobuje počet stránok od 1000 až 2000, Ale koľko viac krokov robí trvať ma hľadať Mike? Je to len jedna, pretože môžem len trhať telefónnom zozname ešte raz z problémov s 2000 stránku 1000 strana problém, a voila. Vzal som obrovské sústo z neho. A ak idete naozaj extrém, Predpokladáme, že v telefónnom zozname Spoločnosť mala niečo šialeného, ​​ako 4 miliardu telefónneho zoznamu. No, koľko krokov môže trvať nájsť Mike Smith v 4 miliardy Strana telefónny zoznam? Je to veľké číslo, ale len 4 miliardy 2000000000 až 1000000000 500 miliónov, 250 million-- stále Znie to ako veľkými číslami, ale som veľmi rýchlo dostáva na menšie hodnoty. A v skutočnosti, keď som si to spočítajte Dobre, môžem rozdeliť iba 4000000000 o približne 32 krát predtým Aj dostať dole len jedno. Takže ak, že telefónny zoznam boli 4 miliarda strán dlho, žiadny veľký problém. Počas niekoľkých sekúnd, možno 32 sekundy, mohol by som ju rozdeliť na dve polovice a nakoniec nájsť Mika alebo k záveru, že tam nie je. A to je podstata algorithm-- dobrý algoritmus. A to je jeden z Ciele triedy, ako je táto, sa snaží prísť na to, ako to mám vyriešiť problém nielen správne, ako som vždy vedel, ako to urobiť jednu Stránka na time-- ale správne a dobre. Ako môžem navrhnúť dobrý riešenie problémov? Takže poďme sa na chvíľu tu a dá vám pocit podnikom z CS50 kurz itself-- predstaviť Pracovníci niekoľkých málo samozrejme je. Tesne pred 2:00, zmienime trvať krátku prestávku takže tí z vás, ktorí sú nákupy môžu kačica von a vziať pozrieť sa na nejaké iné triede a pozerať sa na zvyšok tohto on-line. Ale teraz, dovoľte mi predstaviť CS50, samotná trieda, a najmä to, čo je nové. Takže minulosť jar, my strávili celkom dosť time-- Personál kurzu a já-- myslenie o tom, čo je to chceme CS50 byť, a ísť späť do prvej princípy, tak povediac, zvážiť, čo je to chceme Tento kurz vyzerať a byť rovnako ako pre svojich študentov. A tak uvidíte v probléme nastaviť nulu rovnako, pozvanie aby sa na to pozrieť URL, ktorá zhŕňa niektoré z motiváciou spoza Nasledujúce charakteristiky jeseň 2016. Tak ako ste si možno zbierala Z TL: DR letáku, osnova dnes rovnako ako z Katalóg Samozrejme, že v tomto roku CS50, ste len očakávať, aby sa zúčastnili today-- takže prácu dobre done-- a posledná prednáška na 21. novembra. A nie je zač, ale neočakáva sa, navštevovať tieto prednášky v stredu, pretože to, čo robíme Tento rok, strieľa v reálnom čase materiálu kurzu je. Takže všetko zostane prúd a začlenená ako najlepšie sme can-- aktuálne dianie a rozhovory, ktoré ľudia by mohol že má v priemysle v svet, ale pri tomto materiáli k dispozícii, v dôsledku toho aj earlier-- s kompletným textom prepisy a prehľadávanie a odkazy na ďalšie zdroje. A skutočne sme boli vyhlasovať nejakú dobu a my teraz veriť, že môžeme vytvoriť, digitálne, viac pohlcujúce, oveľa presvedčivejšie vzdelávacie skúsenosť, ako protichodný na zhromažďovanie tu nejaké 23 krát osobne, počul niekto mi páči jednoducho hovoriť o informatike, na rozdiel od aktívnejšie zapojiť. Takže uvidíte v Osnova kurzu je skica semestra tu, spolu s kedy prednášok byť natočený, ku ktorému ste vítané, ale neočakáva, a kedy budú byť prepustený na internetových stránkach Course. A čo budeme robiť tu na Stredy začínajú budúci týždeň, je oveľa dôverne, iba s tí ľudia, ktorí sa chcú podieľať, je tzv Procházka, kde som a hlavy kurzu je bude skutočne robiť veci trochu intímnejšie tu dole v orchestri sekciu, ešte nejakú technológiu a prechádzka bežného týždňa problémom set, a ponúknuť particularly --- Ak medzi tie menej comfortable-- o to viac pokyny, ktoré budete chcieť, alebo musieť za týždeň výzvu. A podobne, ktorí nemôžu pre tých, navštevovať tie osobne, žiadny veľký problém. Tam bude podobne vedenej jeden z vedúcich pracovníkov tohto kurzu je, Zamalya, rovnaká príležitosť vložený v probléme nastaví sami. Problém nastaví tento rok budú zverejnené v piatok a už nie robiť sedem dní neskôr, ale 10 dní later-- úmyselne prekrývajú s každým problémom nastavená tak, aby sa lepšie prispôsobili, dúfame, príliv a odliv V plánoch študentov, zvlášť keď midterms alebo atletiku alebo akademici alebo extracurriculars majú tendenciu prichádzať a odchádzať najmä v polovici semestra. Že by ste mali dať trochu viac uváženia, či vás front načítať týždeň CS50 alebo zadnej záťaži to na nasledujúci víkend miesto. Tak sa pozrite na Osnova kurzu je Tu pre ich plánu. A všimnite si tiež medzi V tomto roku zmeny, pre tých bližšie zoznámiť s Programovanie v minulosti, začneme semester ako budeme dnes v Scratch, zameriavajú predovšetkým na jazyku volal C, a potom prejsť nie PHP, ale jazyk s názvom Python ku koncu semestra v súvislosti s webové programovanie, spolu s SQL a JavaScript HTML, CSS, a ešte viac. A v odpovedi na FAQ, je to skutočne pravda že CS nie je tak hrozné, ako som kedysi myslel, že to bolo, ale je to toľko práce ako som počul, že to môže byť. Ale to je dajme tomu, že tu sú niektoré štatistiky z jeseň 2015 študentský zbor, pričom horizontálne modrej čiary predstavujú priemerný počet hodín hlásené. A uvidíte v priemere o šesť na 10 až 16 12-- možná alebo tak, a tak ďalej, ale s vysoký rozptyl byť jasné. A tak si uvedomiť, že tam nie je len študentov pohodlnejšie a menej pohodlne v kurze, ale primeranú podporu Štruktúra dostať tých študentov cez úspešne semestra. Naozaj, v odpovedi na otázky, mali budete mať CS50 ako prvý rok? Absolútne. A v skutočnosti, nemám ľutovať nie mať našiel svoju cestu alebo si našiel nové pole že prvý rok rovnako. A mal by si vziať so CS50 ďalšie kurzy, rozhodne ako well-- a všeobecné rady by sme mohli poskytnúť študentom, že CS50 je pravdepodobne nie je ten druh triedy alebo intro triedy že by ste mali vziať so tromi iné alebo štyri ďalšie triedy P-set. Ale ak užívate ďalšie dva p-set triedy, niečo iné, a CS50, úplne zvládnuteľné. Mal som mnoho študentov v v minulosti urobil celkom úspešne. A aby vám ku ktorej Cieľová čiara úspešne, robí kurz má sections-- rôzne trate pre študentov menej pohodlné, oveľa pohodlnejšie, a niekde medzi tým, pričom v kurze je Prvý problém set, budete požiadaní, aby opísali sami. A ak patríte k tým menej komfortné, to je to vec, že ste práve dosť poznať. A skutočne, že ich bolo rastúcu demografickú CS50 pekných pár rokov. Ako minulej jesene pre napríklad, 58% z triedy opisoval seba as Medzi tie menej pohodlné, s 9% medzi tými, viac pohodlná, a potom ostatní študenti tam red popisujúci sami ako je niekde medzi. A uvidíte tu témy celková a plán sekcií, z ktorých všetky sú ponúkané osobne, v reálnom čase, pričom kurz je úžasný personál učebných chlapíkov a kurz asistenti, niektoré z nich stretnete za chvíľu. Oddiely samy o sebe, ako uvidíte, bude bolo pondelok a utorok a v stredu, tak, aby ste sa do toho ponoriť V po zapojení, ak sa tak zvoliť, v priebehu sa prednáška skôr v tomto týždni. A potom úradné hodiny, čo iste, s každým uplynulým rokom, boli nie menej bojovať o kurze. A tento rok plánujeme nie len držať kancelária hours-- jeden Na jednej príležitosti k pomoci pri študenti v stredu vo štvrtok a nedeľu, posledný z tých, bytia v popoludňajších hodinách zámernej znížiť niektoré z stresu, ktorý vždy vzniká s neskorých nočných hodín p-settting s termínom looming-- ale úradné hodiny budú tiež ponúkané V pondelok a utorok a Stredy a piatky a soboty, Vďaka našim priateľom v HSA. CS50 má teraz svoj vlastný priestor pre študentov a zamestnancov CS50, na vrchole hory 67 Auburn Street, tu v Harvard Square. Vízia pre ktoré je to, že je CS50 TFS a CAS celý týždeň, skoro po väčšinu dni, bude tam pre podporu. Takže ak máte nejaké otázka na p-set alebo máte pocit, trochu blokované alebo trochu zmätený, a sakra, máte hodinu alebo pol hodiny medzi triedami, najmä v square-- môžete pop a majú na túto otázku odpovedať z mať tento zmätok clarified-- veľa v duchu, ste sa zoznámili, z matematiky oddelenie je vlastné matematické otázky centrum, ale skoro po celý deň za [? Gcal?], Že budeme písať online. Doučovanie je k dispozícii aj pre tých, študenti, voľne z kurzu je vlastní zamestnanci, ak si prajete, intímnejší jeden na jedného, alebo len dva alebo tri spolužiaci, pracovné s jedným zo zamestnancov kurzu je. A skutočne, to sú tu uvedené len niektorí zamestnancov kurzu je, nemnoho koho budete stretnúť za chvíľu. V skutočnosti, CS50 vlastné Hlava výučba kolega, a hlava kurz asistent a učiteľ, mohol prísť hore, umožňujú je pozdraviť. [APPLAUSE] HLAS 1: [nepočuteľné]. [APPLAUSE] SPEAKER 2: [nepočuteľné]. [APPLAUSE] MUŽ 3: [nepočuteľné]. [APPLAUSE] DAVID Malan: a umožní nám priviesť na palube dvaja z CS50 je najviac vedúci pracovníci, Rob a Zamayla rovnako. [APPLAUSE] V skutočnosti, ako Rob a Zamayla boli u nás tak dlho, že som bol schopný ísť do CS50 archívu a nájsť práve túto SD stopáž z nich sa zúčastňuje na seba javisku pred niekoľkými rokmi. ROB: [nepočuteľné]. [APPLAUSE] ZAMAYLA: [nepočuteľné] [APPLAUSE] DAVID Malan: Ďakujem. Takže okrem nich členovia tímu tu CS50 disponuje tímom takmer 100 zamestnanci, z ktorých všetci bude k dispozícii pre sekciách a úradné hodiny a ešte oveľa viac. A ako Rob hovorí tiež, to je najvýznamnejšie oprava z CS50 v 10 rokoch, Bol som v [nepočuteľné]. [Nepočuteľný] zamerané najmä v poskytovaní nosnú konštrukciu, strihanie preč veľa prevažná že to bolo nahromadené za 10 rokov z iteračné vývoj na problémové sady kurzu je. Takže v tomto roku, a to nielen v triede, ale tiež vo forme problémom samozrejme je Sady, by ste mali nájsť veci byť efektívnejší, strunová, veľa ovládateľnejší než V uplynulých rokoch, ako sme búda niektoré batožinu, ktorá je vyvinutý podľa povahy vyvíjajúceho roka Po roku a iterácie. Takže nové a vylepšené začína dnes. Stretnete sa s niektorými viac z Personál ihrisko je v [nepočuteľné] v 2:30, kde sme slúžiť, ako tradície, koláče. Tam je trochu viac koláč než to, ale budete Zoznámte sa s Erin a Tobias a ďalšie stále. A dovoľte mi, aby som vám prehliadka pred počujeme od niektorých iných zamestnancov v triede, čo čaká rovnako. V skutočnosti sme vždy začať CS50'S semester tento rok v sobotu, s tým, čo sa nazýva CS50 Puzzle Day. To nemá nič spoločné s počítačová veda sama o sebe, ale s o probléme Riešenie všeobecnejšie. A ak sa tak rozhodnete zúčastniť, na niektoré z pozvánok, ste mohli vidieť dvere spadne na zem alebo na javisku tu, je to príležitosť v tímoch dvoch alebo troch alebo štyroch, k účasti na hádanky a pizzu a ceny a more-- túto sobotu, zostaňte naladení na ďalšie. Zistíte tiež, že každý Piatok, v ohňa a ľadu, sa CS50 prinášajú Celá partia študentov na obed, aby sa veľké trieda cíti viac intímne, a všeobecne združovať absolventov a priateľov z priemyslu hovoriť o tom, čo som Bol až od svojej promócie. Rovnako tak tento rok, budeme zahájiť vôbec prvý CS50 50 kódovanie contest-- v polovici semestra Príležitosť umožniť všetkým na opt-in báze mať Výzva dôvtip proti spolužiakom, opäť v skupinách po dvoch alebo po troch alebo štyri, používať len to, že programovanie pútavé, ktorý potom v rámci váš pásik za púhych šesť alebo sedem týždne triedy a účasťou v tomto druhu súťaže online-- ak by ste chceli zdokonaliť svoj vlastný zručnosti tým skôr v tejto výzve. Na konci semestra je takzvaný CS50 Hackathon-- príležitosť, ktorá začína v 7:00 PM končí v 7:00, a na ceste 12 večerných hodinách, v ktorých sa do toho ponoriť do konečného project-- tohto kurzu je príležitosť navrhnúť a vykonávať väčšinu niečo zaujímavé tebe so svojím učením kolegami vedením. Okolo 9:00 my typicky slúži pizza, 1:00, Philippe je, a len málo z nás ktorí sú stále nahor v 5:00, sú kyvadlová bussed dole Cesta k IHOP na raňajky. A potom o niekoľko dní neskôr je takzvaný CS50 fare-- koniec semestrálne výstave v oslava, ako ďaleko toľko z CS50 študenti pochádzajú Týždeň nula celá cesta do týždňa, a mať na pamäti, že 73% z tých, spolužiaci a vy tohto roku Nikdy predtým vzal triedu SK. V skutočnosti je potrebné zdôrazniť, aby čo najviac, tu Je niekoľko ďalších tváre od CS50 štábu. SPEAKER 4: [nepočuteľné]. Reproduktor 5: [nepočuteľné]. SPEAKER 6: [nepočuteľné]. SPEAKER 7: [nepočuteľné]. REPRODUKTORY 8: [nepočuteľné] REPRODUKTORY 9: [nepočuteľné]. SPEAKER 4: [nepočuteľné]. REPRODUKTORY 10: [nepočuteľné]. REPRODUKTORY 11: [nepočuteľné]. REPRODUKTORY 12: [nepočuteľné]. REPRODUKTORY 13: [nepočuteľné] REPRODUKTORY 14: [nepočuteľné]. REPRODUKTORY 13: [nepočuteľné]. REPRODUKTORY 15: [nepočuteľné] REPRODUKTORY 16: [nepočuteľné]. REPRODUKTORY 11: [nepočuteľné] Reproduktor 5: [nepočuteľné]. DAVID Malan: Niektoré tímu sú samy o sebe nákupnej triedy. Ale ak tieto členmi personálu CS50 tu, mohol prísť hore len na chvíľu. CS50 je TFS a CAS a [? Personál?] Členovia here-- to sú len niektoré z faces-- z ktorých jeden práve videl, a niekoľko other-- a niekoľko ďalších pokoja. Prečo nejdeme do toho a umožňujú vy prestávka päť minút. Ak potrebujete kačicu von obchod triedy, to je v poriadku. A za päť minút, budeme pokračovať, pri pohľade na Scratch-- prvom nášho programovacieho jazyka, spĺňajú Personál Kurz je tu ešte viac, a zamerať sa nakoniec Na problém nastaviť nulu. Takže budeme späť za päť minút. [APPLAUSE] Dobre. Takže sme späť. A v našej zostávajúce Čas dnes je cieľom je rovnaké podmienky pokiaľ ide o niektoré terminológie, pokiaľ ide o niektoré nápady. Vzhľadom k tomu, naozaj, podľa niektoré z tabuliek skôr, tam bude celý rad Hladiny skúseností v triede, ktorého niektoré majú študenti Pred vziať nejaké programovanie, z ktorých niektorí nie. A tak s týmto prvým problémom nastaviť a tento prvý jazyk máme príležitosť začať brať ako samozrejmosť po dnešku niektoré bežné slovnej zásoby a nápad. A budeme to formou Prvý languages-- kurzu je Okrem C a Python a JavaScript a SQL a HTML a CSS, budeme zameriavať spočiatku a len za problém nastaviť nulu Na tejto grafickej jazyk, nazvaný Scratch, vyvinutý Lab Media MIT po ceste, na pomoc študentov a deti osobitne vyjadrovať algorithmically-- istým spôsobom v súlade s tým, čo by sme mohli nazvať výpočtovej myslenia. A je to užitočné, pretože jazyk Veľmi rýchlo sa budúci týždeň v jednom týždni, môžeme prejsť na viac Tradičné a tajomný jazyk nazvaný C, čo je čisto textová. Môžete použiť iba klávesnica v Aby sa písať inštrukcie ako sú tieto na obrazovke. Ale aj keď ste nikdy nevideli programovací jazyk predtým, V práve pohľadom na to všetko či už je to mystický, asi tušíte, že Pravdepodobne vytlačí Hello World. Ale je tu veľa syntaktické nad hlavou tam. Tam je divný hash Symbol alebo hash tag do vrcholu. K dispozícii je lomené zátvorky, niektoré zátvorky, zložené zátvorky, semi-colon-- tam je len toľko vizuálne syntax, ktorá sa dostane do cesty. Začneme kurzu s Scratch tak, aby si minulosť všetky tie intelektuálne nezaujímavé rozptýlenie, a namiesto toho sa zamerať na myšlienkach. V skutočnosti to môže byť skôr. To, za to, týždeň bude po ňom. To, v tomto grafický jazyka Scratch, je, ako by ste implementovať ten istý program-- program, ktorý pri spustení, jednoducho hovorí hello world. A čo je pekné o Scratch je že je to grafický programovací Prostredie, ktoré používa skladačky alebo blokuje, že iba prepliesť dohromady ak to dáva logický zmysel, aby tak urobili. A s Scratch môžete vyvinúť animácie a interaktívne hry a umenia, a ľubovoľný počet vecí, ktoré ste si možno predstaviť vo svojej vlastnej mysli, a realizovať jednoduchým pretiahnutím dielikov. A skutočne, budeme mať možnosť vyjadrovať niektoré rovnaké myšlienky že som sa práve zmienil okamih Pred v kontexte Mike Smith a vyhľadávanie telefónne book-- veci ako je funkcia, len akcie, veci, ako je slučiek, ktoré robia veci znovu a znovu premenných, čo je niečo, čo budeme predstaviť, ale je to poznajú snáď z algebra-- len nejaký zástupný symbol ukladať nejakú hodnotu, ktorú by mohla Potrebujete later-- logických výrazov, kde tí áno, nie, alebo pravda falošné otázky z predtým. Podmienky sú tie vidličky v road-- tieto pobočky tak povediac. A potom tam sú niektoré milovník Funkcia Uvidíme ešte dnes, zvané polia a nite a Udalosti, ktoré budeme potom znova cez čas v rôznych jazykoch. Ale Scratch nám umožňuje preskúmať všetky z nich. Tak tu vo Scratch, toto fialové Blok je to, čo funkcia je typicky vyzerať. Tento fialový kúsok skladačky, ktorý má niektoré Slovo ako povedzme, čo je akcia, a potom by to mohlo mať Argument alebo parameter-- nejaký spôsob, z druhu zákazkovej výroby čo to robí blok tak, že to nie je dopredu stanovená MIT, čo tento fialový blok hovorí. V skutočnosti, uvidíte v Okamih, že som schopný písať slov ako ahoj svete, alebo Ahoj Davide, alebo ahoj Zamayla, alebo čo chcem, v argumentu v tomto puzzle piece-- na príslušný biely štvorček tam. Medzitým, keď chcem slučku, zmienime vidieť, že je tu skladačky, ktoré vyzerať trochu pomaranč, ako je tento. A ich tvar druh naznačuje, že niečo znovu a znovu sa stane v cykle. Takže keď som zabaliť pozdraviť svetový blok s navždy blokovať Scratch, je to len bude držať zdraviť svet navždy, a to doslova. Medzitým je tu ďalší typ slučky Scratch že budeme see-- opakovanie block-- kde, ak ste vopred vedieť, koľkokrát Ak slučka vykonať obmedzené množstvo časov v fact-- vás Môžete určiť, že zadaním v rade alebo dokonca upchávanie v premennej, ako je x alebo y, ako uvidíme. V skutočnosti, rovnako ako premenné Aj v tomto prípade, ktorý je spoločný názov pre integer premenná, ktorá Len ukladá number-- celé číslo by mohlo byť, Použitie tohto oranžový blok tu nastaviť premennú ako aj na nulu. Tu je príklad v zeleni Logický výraz v Scratch. Aj napriek tomu, že to vyzerá ako matematický vzorec, nerovnosti matematické toto sa páči v skutočnosti sú logické výrazy. To je jeden pravdivý alebo nepravdivý. Aj je menšia ako 50. Je to buď áno alebo nie odpoveď alebo true alebo false odpoveď. A budeme všeobecne nazývať tieto logické výrazy. A to nemusí byť 50. To môže byť menšie ako x y, väčšie ako y, ktorá sa rovná y- akýkoľvek iný počet otázky môžu byť položené. Teraz, na prvý pohľad to môže vyzerať Zrazu pomerne tučné tu, a je to. Ale koncept múdry, to je docela oboznámený pred rokom. Ak x je menšia než y, než povedať, ako moc. Else if X viac než y, potom hovoria toľko. Iného povedať, x je rovné y. Takže máme príklad tam tretí scenario-- jedinú tretiu possibility-- x je buď väčšie ako, menšie ako alebo rovný. Takže máme trojcestné rázcestí. A všimnite si, čo je v pohode here-- Scratch, Zdalo by sa, má len jedno puzzle kus, v tomto prípade, ak je v inom bloku. A napriek tomu, že by sa zdajú naznačovať môže majú iba obojsmerné rázcestí. Môžete ísť doľava alebo doprava, ale čo ten tretí scenár? Čo keď x je rovné y? Žiadny veľký problém. Vezmite jeden kúsok skladačky, dať ďalší z vnútri nej k vytvoreniu sémantickej ekvivalent if, else if, else-- a teraz vás mať svoj trojcestný rázcestí. A ako uvidíme sa Scratch skladačky možno natiahnuť a rast, tak ako napchať viac vecí v nich. Nemusíte, aby sa zmestili Všetko v jeho východiskovej veľkosti. To je niečo, čo bude Čoskoro uvidíme, sa nazýva pole. Je to ako list-- nejaký spôsob, uloženie viac kusov informácií v premennej, a nie len číslo. Tieto uvidíme zástupca niečo, čo nazýva multi-threading. V skutočnosti, všetky vaše Mac a PC v týchto dňoch podpora multi-threading, čo znamená, že môžete doslova robiť viac vecí naraz. Môžete mať Microsoft Word Up in the popredia, pracuje na nejakom eseje. Tie by mohli mať prehliadač pri otváraní pozadia G-mailu alebo Facebook alebo podobne. Počítač môže robiť viac vecí dnes, pretože to je multi-závitové, a programy sú v oblasti Najmä sú tiež multi-thread. Sú veci zvané akcie ako aj vo svete Scratch, a potom je tu až príliš, aby sa naše vlastné zvyk skladačky, ak veci nie sú v skutočnosti neexistuje vopred. Takže poďme motivovať to takto. Pred niekoľkými rokmi, keď som prvýkrát objavil Scratch, Keď som bol vlastne postgraduálny študent na MIT, my Sami boli za úlohu robiť domáce úlohy. A ja implemented-- čo pri spätnom pohľade, Bol veľmi chudobný rozhodnutie, pretože to je najviac neznesiteľné skladba na svete počúvať po dobu ôsmich hodín, pri práci na homework-- ale niečo, čo som nazval Oscar Time, ktorý je možno známy song. CS50s vlastné Jordan Hayashi, jeden z Naši viacerých členov vedúcich pracovníkov, vylepšila ju pre rok 2015 a Teraz 2016, od späť v deň, Mal som všetko len tak do Oscar odpadkového koša. Teraz podporujeme recykláciu a kompostovanie. Ale maľovať obraz o tom, čo môžeme urobiť tu a motivovať niektoré Príklady nižšiu úroveň, mohli by sme získať niektorú inú dobrovoľník len poď hore a hrať moja prvá domácu úlohu vôbec? Poď hore. Ako sa voláš? Henry: Henry. DAVID Malan: Henry, poď hore. Poď hore. S hlavou v oboch smeroch, a uvidíte v okamihu, Chystám sa ísť dopredu a hit zelenou vlajkou v hornej pravej ruke roh, čo znamená ísť. Znak ikona málo zastávka sa chystá povedať stop, a to je, keď začnete a zastavenie programu. Rád som ťa spoznal. Dobre. Takže budeme vidieť inštrukcie Na obrazovke sa za chvíľu. A práve tým, že hrá túto hru Po niekoľkominútovom seconds-- mi veriť, nebudeme chcieť hrať celá cesta k end-- si vyskúšate získať predstavu o tom, čo program robí. A viac než sústrediť len na Henryho je dobré alebo zlé v tejto hre, zaostrené a ako to bolo vykonaná mnou Pôvodne a potom Jordánu. Inými slovami, tam, kde sú premenné? Kde sú slučky? Kde sú funkcie? A uvidíme, či nevidíme tie pod kapotou. Stačí kliknúť a ťahať odpadky do príslušnej priehradky. [MUSIC PLAYBACK] Dobre. To je veľmi dobré. Prečo nie my ju zastaviť tam. Ďakujem. Gratulujeme Henryho. Ďakujem. [APPLAUSE] Len si predstavte ladenie tento program. Ak sa vyskytne problém dva minúte song-- ale rovnako tak Čo sa tu deje naozaj? Tak zložité, ako by sa mohlo začnú sa mi dostať v priebehu času, v skutočnosti stále viac a viac veci začali klesať, Čo je zaujímavé, tento druh example-- a uvidíme pár others-- je, že ak prehliadať zložitosti alebo prepracovanosť hry, tam je veľmi jednoduchá stavba bloky, ktoré play-- z ktorých všetky, ak sa páliť ich tým stavebnými kameňmi, sú veľmi prístupné a uskutočniteľná sami sebe. Napríklad, je to Bol nejaký čas, ale som istá, že to, čo som urobil, keď spočiatku takže túto hru prvýkrát Bol som úplne ako otáľala. Nechcel som sústrediť vôbec na Logika alebo kúsky skladačky, Zameral som sa na grafiku a zistenia ulice pošta a koše a to všetko. Ale to boli predpokladom prísady na prvom mieste. A akonáhle som dokončil odkladám a ustanovuje rámec zastrešujúci, Rozhodol som sa, dovoľte mi urobiť jednu kus odpadky padajú z neba. A uvidíme Scratch Podporuje veci nazývanej sprites-- znaky, ktoré môžu majú rôzne kostýmy na tak oni vyzerať inak. A tak som dal odpadky kostým na jednej takej sprite. A práve som potreboval ho padať z neba. A tak to dopadá, Scratch, ako väčšina programovacích jazykov, Podporuje náhodných čísel alebo Technicky pseudokód náhodných čísel, takže pretiahnutím upustenie niektorých skladačky, Bol som schopný mať odpadky pochádzajú z ľavej strany na prvom mieste. A potom nabudúce to spadlo z pravá a potom od stredu. A to všetko hra to bolo len majú odpadky padajúce z neba. Dalo by sa poukázať na to, alebo na neho kliknúť. Dalo by sa otvoriť odpadkového koša. Dalo by sa nič robiť. Ale bolo to dieťa krok k môjmu konečnému videnie. A po tom, ja vlastne realizovaná nejaká snímanie, takže ak ste na tlačidlo a pretiahnite na kus smeti cez odpadkového koša, Oscar Veko by otváranie a zatváranie. Nič by sa stalo do koša, ale prinajmenšom by sa veko otvoriť a zatvoriť. Takže skontrolovať, krok dva dvaja. A to je to, čo bude Kľúčovým problémom v oboch nastavený na nulu a programovanie všeobecnejšie je aby tieto veľmi úmyselné detské krôčiky. Vzhľadom k tomu, nielenže vám umožní cítiť úprimne dosiahnuť oveľa quickly-- je to Najhoršia vec na svete pokúsiť sa realizovať všetky Oscar Time, Potom hodín neskôr narazí na zelenú vlajku, a nič nefunguje, ako sa očakávalo pretože ak sa vôbec začnú ladiť alebo riešiť tento program? Je to proste ohromujúci. A tak skutočne pohlcujúci túto myšlienku pricestovať steps-- dieťa kroky znovu a again-- vybudovanie niečo, čo je v konečnom dôsledku, Naozaj pôsobivé a zložitá, ale Spočiatku, nie je zďaleka toľko tak. V skutočnosti, ideme na to. Nechaj ma ísť napred a-- Scratch sám existuje na webe na adrese Scratch.MIT.edu, a budete povedané, ako Koľko opäť v problémových nastavený na nulu, v špecifikácii ktorý je už na internetových stránkach CS50 je. Ale to je to, čo Scratch je sám o sebe. A je tu naozaj len Tri hlavné oblasti. hore vľavo je takzvaná fáza. To je Scratch. Predvolené kostým je mačka. A to je obdĺžnikový svet ktoré si môžete move-- hore, dole, doľava, doprava a niektoré ďalšie veci. V stredu tu sú naše kategórie alebo naši palety skladačky, a rôzne farby znamenať rôzne veci. A ak ste hrabať okolo seba, uvidíte veci ako slučiek a podmienok a premenné a ďalšie zložky. A potom tu je oblasť skripty. To je miesto, kde môžem pretiahnuť tieto kúsky skladačky robiť veci. Takže poďme urobiť jednu takú vec. Nechaj ma ísť napred a-- a ja viem, kde to je. Takže idem okamžite kliknúť na kde viem, že veci sú pripravení byť, ale ukázal a kliknutím a šťourat sú nevyhnutné. Takže keď zelená vlajka kliknutie čo chcem robiť? Chystám sa to urobiť. Chystám sa pretiahnuť fialová puzzle kus, pozdraviť po dobu dvoch sekúnd, a dajte mi priblížiť. A ja idem to zmeniť za to, čo chcem, aby to be-- hello world po dobu dvoch sekúnd je v poriadku. Teraz idem kliknúť na zelenou vlajkou, alebo či naozaj chcem, Môžem ho plnom rozsahu a potom sa vrátiť. To bude len udržiavať všetko v jednom okne. Green flag-- hello world. Dobre. Nie všetci to zaujímavé. Tak nechaj ma ísť dopredu a to urobiť. Skúsim ešte jednu. Keď zelená vlajka clicked-- poďme niečo také zvuku. A všimnite si, že z box zadarmo dostanete mačka zvuk, ako je predvolená sprite. Takže teraz nechaj ma ísť dopredu a hit zelenú vlajku teraz. [Mňaučanie] Aw. To je roztomilé. Som programovanie. Tak čo som to urobil? To je ekvivalent programu. Je to samozrejme super jednoduché. To predsa nie je naozaj brať tak moc úsilie a MIT robil väčšinu z práce, ale ja som volal funkciu. Použil som funkciu. Urobil som nejakú akciu, iba pomocou že jeden purpurovej skladačky. No, či chcem robiť Tri meows v rade? Nechaj ma ísť dopredu a urobiť dva a tri. A všimnite si, že keď vás vznášať sa v blízkosti kúsok skladačky, Objaví sa trochu biela čiara druh magneticky, a to bude snap spolu, keď pustíte. Pozrime sa, čo sa tu deje. [Mňaučanie] Tam je chyba. Len som počul jednu mňaukanie. Prečo by to mohlo byť? Jo? Jo. Nemáme naozaj počuť, ale to je dobré intuície. Sú všetci hrajú v rovnakom čase. Prečo? No, počítač je len tak robiť to, čo si to povedať robiť. Takže keď hovoríte, prehrávať zvuk, prehrať zvuk, prehrávať zvuk, ale nehovorte to hrať, kým budete hotoví, hrať, kým budete hotoví, to bude prefúknuť Program naozaj rýchlo a to len to, čo si to povedať robiť. Tak som skutočne potrebujú opraviť to v niekoľkých ohľadoch. Mohol by som len to, ako sa zbaviť toho. Skúsim tú druhú hádanku piece-- prehrávať zvukové mňau do práce, a pretiahnite tri Tieto a kliknite na tlačidlo Prehrať. [Mňaučanie] Nie je to naozaj very-- Ďakujem vás-- veľmi prirodzené. Tak prečo nie nechať já-- ma ísť chcete ovládať. Pekný. Počkajte jednu sekundu, a teraz nechaj ma ísť späť zvuky a prehrávať zvukové do práce, a potom ma nechaj počkať jednu sekundu. A nechajte ma ísť a dostať jeden viac zvuku, a je to tu. [Mňaučanie] O niečo prirodzenejšie, ale to nie je príliš efektívne. Ako už som sa začínal nudiť, všetci to stručne, kliknutím sem a tam a skutočne duplikovanie svoju work-- celkom veľa kopírovanie a vkladanie. V skutočnosti, keď som Ovládacie kliknutia a vpravo kliknutie Mohol som len skopírovať a vložiť. Čo by bolo lepšie postaviť používanie? Čo nápad pred rokom? Jo, takže slučka. A v skutočnosti, keby sme tropil okolo, môžeme nájsť presne to. Nechajte ma ísť k udalostiam či skôr Control. Takže repeat-- nemám chcem, aby to bolo 10 krát. Že to bude mať nepríjemné rýchlo. Ale budem opakovať trikrát. Nechaj ma ísť späť do zdravej a prehrať zvuk, kým sa to robí. Nechaj ma ísť späť do Control a len čakať jednu sekundu. A oznámenia, môžete myslím, že to nesedí, ale znovu, ak magneticky ju nechať snap na svojom mieste, bude rásť zaplniť. Čo to hrá teraz? [Mňaučanie] OK. Pekný. A to je to, čo by bol nazývaný program, ktorý je tiež správna. To meowed trikrát pomerne prirodzene, ale je to lepšie dizajn. Ja používam menšie miery redundancie dát. Nechcel som skopírovať a vložiť čokoľvek. Len som použil lepší nápad. Teraz je to stále nie je všetko, Zaujímavý s Scratch nerobí čokoľvek. Takže poďme robiť niečo iné miesto. Urobme niečo navždy. A viete čo? Motion vyzerá zaujímavo. Poďme sa pohol 10 Kroky a hit hru teraz. OK. No môžeme trochu ťahať ho späť, a je stále spustená, pretože on to robí navždy. Takže slučka robí čo to hovorí robiť, ale to nie je všetko tak zaujímavé. Poďme to urobiť. Dovoľte mi dodať riadiaci blok, a použiť jeden z týchto podmienok prvýkrát. Tak to bude pohybovať 10 steps-- 10 bodov, 10 bodov na screen-- potom to bude pýtať na túto otázku. Ak je niečo je pravda, potom to niečo vnútri tohto bloku. Tak sa ukazuje, snímanie má celok banda booleovské expressions-- otázky ÁNO nie, alebo pravda false form-- nechaj ma to urobiť. Ak touching-- a potom je tu tento malý roletového menu. Môžem to parametrizáciu. Ak sa dotknete edge-- poďme niečo také urobiť. Takže ak sa dotýka edge-- nechaj ma ísť späť do pohybu. A prečo nie my len otočiť o 180 stupňov? Dobre. Takže navždy, presunúť 10 krokov. Ak sa dotknete hrana, otočiť o 180 stupňov. A to nie je koniec programu pretože ste v navždy zablokovať takže to pôjde znovu a znovu a znovu a znovu. Tak uvidíme, čo sa stane. OK. Trochu buggy, ale celkom fajn. A môžeme pridať k tomu nejaké hlúposti že nie sú všetci, že intelektuálne zaujímavé. Ale ak sa tento malý hit mikrofón button-- Au. Nechaj ma očistiť to. Nechaj ma to ako posilnenie hovorili v televízii. Vyčistiť, tak to Save a teraz ísť až na skripty. A teraz, nechaj ma ísť, aby to znelo. Uvediem to meno. Zavolám tento Ouch. A teraz hrajú zvuku Ouch. zdá sa v oznámení Trochu roletového menu. Pozrime sa. [OUCH] [SMIAŤ SA] Ale môžeme zmeniť t jeho chodu. Môžeme byť dvakrát tak nepríjemné. [OUCH] Alebo ak urobíme to takto 1000 krokov na prvý time-- OK. Takže budeme že jeden nechať na pokoji. Takže znovu, stavebné blocks-- I začal s niečím super jednoduché, a potom som pridal funkciu, pridal funkciu, pridal funkciu. A už musím sa obávať ako prvý z týchto vlastností bol realizovaný ako som pokračovať do vrstvy, čo hore. Takže v skutočnosti, dovoľte mi vykonajte jednu ďalšie tu. Nechaj ma ísť dopredu a otvoriť súbor, ktorý Priniesol som vopred, tzv ovce. Tak to má trochu odlišný Znak, ktorý vyzerá takto. A dovoľte mi, aby som zistil, či nemôžem robiť niečo, pomocou počítadla v tomto case-- tzv premenné. Chystám sa ísť dopredu a pod Events-- dovoľte mi, aby som zelená vlajka kliknutí. Tak ma nechaj ísť do Dáta, ktoré viem, z tesne predtým, než hral, je miesto, kde premenné sú. A ja idem ďalej a pretiahnuť. Takže premenná s názvom pult, a Chystám sa ju inicializovať na nulu. Aj to môže volať anything-- x alebo y alebo Z-, ale pri programovaní, volá niečo sémanticky užitočný spôsob, rovnako ako pult, ktorý popisuje, čo to je, je to oveľa ľahšie čítať váš kód neskôr. Nechaj ma ísť dopredu a dostať navždy zablokovať tu. A nechaj ma ísť na vzhľad stránky a robiť Say blok. Ale to, čo je v pohode o premenných I Nemusíte písať len v niečom ako hello world, ktorú sme už som hotovo, môžem namiesto toho ísť do dát a ťahať svoj premennú, a to aj aj keď tvar nie je úplne vyzerať, že by sa mala vojsť, bude sa rozširovať zaplniť. A ja budem len povedať, počítadlo pre jeden second-- spoiler-- že to bude počítať. Budeme to povedať za jednu sekundu. Potom som idem a nechať ho čakať na jednu sekundu, takže sa to neráta sa príliš rýchlo. A potom konečne zmeniť počítadlo podľa one-- inými slovami, zvýšiť počítadlo o jednu dodatočný prínos, a to navždy. Takže ovce taky, ako keď programátor, sa počíta od 0 ° C. A ak budeme čakať dosť dlho, Urobí to navždy. Ale to nie je tak celkom pravda, pretože V skutočnosti, ako budeme objavovať v jednom týždni, celé čísla a počítače všeobecnejšie technicky má len finite-- dobre, skôr počítača, keď predstavujú celé čísla, majú len konečný počet bitov. Tieto žiarovky tam môže počítať len tak vysoko Ako ste mimo žiaroviek. A počítač príliš, má len toľko pamäte, má len toľko tranzistorov, tak to môže počítať len tak vysoko. Tak to dopadá, že ovce, Myslím, že sa môžu spoľahnúť na 2 miliardy alebo niečo celkom veľký. Takže my nebudeme počkať, aby sa to stalo. Ale nakoniec nejaký bug bude diať ktoré môžu mať niektoré veľmi reálny svet dôsledky. Ale za ovcami, práve zavádza premenné. Poďme ďalej a otvoriť niečo, čo som urobil v predstihu Tu volal Pet Cat-- Pet Cat sem. A všimnite si, tu je to málo bloky, ale keď zelená vlajka kliknutí navždy robiť nasledujúce. Ak sa dotknete myši pointer-- tak sa kurzor na obrazovke, arrow-- prehrávať zvuk mňau a potom čakať dve sekundy. A práve to navždy. Len neustále čakať aby zistil, či v pointer-- v prípade, že mačka sa dotýka ukazovateľ. Tak som trafil hru. Nič sa nedeje. Ale ako som sa presunúť kurzor na mačku, [Mňaučanie] A či som to vzdialiť, nie hladkala mačku ešte. Takže niektorí podmienená logika vnorená vnútri slučky. Ako sa o tomto príklade úmyselne volal Nenechajte Pet Cat? Čo sa to bude robiť? [Mňaučanie] Prečo by ste nemali pet mačku? [Mňaučanie] OK. Takže toto je príklad if else. Je to rozhodnutie, bod a pretože to sedí v slučke, obaja sú stále kontrolovaná. Je to pravda? Je to pravda? Je to pravda? Je to pravda? A nakoniec, jeden z tie, ktoré sa bude aplikovať a tak budete počuť buď mňau alebo rev leva v tejto veci. Dobre, poďme urobiť niečo viac vymysleného jeden že som urobil vopred too-- závity. Takže vlákno je len jedna vec, že ​​počítač môže robiť. Takže program multi-závitové je program že môže robiť viac vecí naraz. A všetky tieto príklady doteraz mali len jeden scenár, tak speak-- jeden program takhle tady. Nevšimnúť tento program má dva škriatkovia, dva znaky. Jedným z nich je vták. Jedným z nich je mačka. A všimnite si, keď som kliknúť na týchto baní ľavá, každý z nich má svoje vlastné skripty alebo programy sú s nimi spojené. A to ako tých, programy, oznámenia, začiatok s pri Zelená vlajka clicked-- poďme sa pozrieť na cat-- Pri kliknutí na zelenú vlajkou. A tak naozaj, keď som trafil hrať teraz, dve veci sú bude diať naraz. Mačka a vták sú obaja bude fungovať súbežne k vytvoreniu tohto efektu. A ste si možno predstaviť, čo sa deje. Je tu slučku a vták a mačky sú v slučke. Vták je rovnako ako odrážanie Bol som predtým, keď som povedal Au. Ale mačka má jednoznačne výhodu. Je tu ďalší snímací blok ktorý ukazuje mačku zámerne na vtáka v tomto prípade tu. Takže by sme mohli dráždiť od seba, pri pohľade prostredníctvom týchto blokov, čo sa deje. Ale kľúčovou zložkou tu je jeden. Vták, takže táto hra nie je úplne boring-- alebo to animation-- začína v náhodnom smere. A počítač je vychystávanie číslo medzi 90 a 180 v podstate tak, že je o niečo odlišné animácie zakaždým. A Všimnite si tu, v prípade, že mačka sa dotýka vtáka, potom hrať leva štyri sound-- revu. Ale medzitým v vták paleta, máme to. Forever, ak nie dotýka mačku, Len ďalej tri kroky. A potom je tu ďalší kúsok skladačky. Ak ste na hrane, odskočiť. Takže vták je tak nejako stráženie svoje vlastné podnikanie, Len lietanie okolo a poskakovanie, a je to naozaj mačka, ktorá mala podmienené logiky zistiť, či to chytil vtáka. Dobre. Takže poďme robiť s jedným ďalším tu, tahle volaná Hi Hi Hi. A tento tu práve robí to v navždy slučke. Ale notice-- ako sme zastaviť Tento veľmi nepríjemné programu? Hit medzerníka. Pretože ak to urobím, ľavá ruka program-- Všimnite si, že je to stále listening-- je kľúčom priestor stlačte tlačidlo. V prípade, že medzerník lisované, a ak áno, čo to robí? To robí veľmi časté technikou. Stanovuje premennej rovná nejakú hodnotu. Ale to prepína túto hodnotu. [? Tak vzhľad?] na základe shape-- I majú premenné, ktoré som napísal vopred nazvaný Stlmený, ktorý len hovorí, že áno, alebo nie. Je zvuk stlmený alebo nie? Pravda alebo lož? A oznámenia, hovorím ak tohle-- tlmené je nula, potom sa zmení na jednu, inak má hodnotu mute to na nulu. Takže stačí otočiť hodnotu od nuly do jednej. Mohol by som mať done-- zmeniť z dvoch na tri a troch na dva alebo štyri až päť alebo štyri až šesť. Ale to nevadí čo čísla, ktoré používam, tak dlho, ako budem držať meniace sa to opak. A väčšina akýkoľvek programátor by len zvoliť nula a one-- nepravdivé a pravdivé, off a on-- reprezentovať to. A to stále beží. Ak som narazila na medzerníka znova [SEAL tóny] Tento program stále beží. Vzhľadom k tomu, že je to iný scenár ktorý hovorí, navždy vykonajte nasledujúce. Ak je stlmený premenná rovná zero-- takže ak nie ste stlmený je logic-- či je to falošná alebo nie, potom prehrať zvuk, pretože nie ste stlmený. Mali by ste hrať zvuk a následne myslím, hi hi hi po dobu dvoch sekúnd a potom čakať, a to znovu a znovu a znovu. A tak týmto spôsobom môžeme mať cestu ľudia to-- pre programy k interakcii. A nemajú na tak, ako je starý ako ostatné. V skutočnosti, strkať around-- žiadna slovná hračka intended-- niekto strávil obrovské množstvo Čas na internete vykonávacím PokemonGo do nuly. To vám dokonca geolocates v Cambridge alebo Allston tu. Takže ak chcete vidieť aj to, čo ľudia môžete urobiť, je tohle-- veľmi efektné ponuka. Kliknite na tu. To je mi s šípkami teraz. Chystám sa ísť po tomto. Kliknite na tlačidlo. A teraz kliknete na Pokéball. Myslím, myslím, že si Predpokladá kliknúť na Pokéball. Dobre. Tak som to urobil. Môžem ísť sem. A táto osoba realizované niektoré ďalšie Pokeballs cez here-- troch pokeballs. Budeme poslať odkaz na túto on-line, takže môžete hrať. Ale oznámenia je tu len niektoré základné stavebné kamene. Vyzerá to veľa milovník, a to je. To je impozantný a ďalší ako by sme zvyčajne Očakávame, iste za problém nastaviť nulu. Nemám potuchy, ako dlho táto osoba strávený on-line. Ale je to všetko len slučka. Je tu prehrávanie zvuku. Je tu nejaká slučky načúva, či som biť na šípku nahor alebo nadol Šípka alebo ľavá a pravá, a potom ak áno, je to v pohybe to nejaký počet pixelov. A potom keď som kliknite na Ďalším sprite, je tu nejaký Ak existuje podmienka. Jo, to už je príliš intenzívna. Budeme zastaviť. Je to všetky tie základné stavebné kamene. Nie sú tam žiadne iné ďalšie prísady ako tie, ktoré sme sa pozrel na už. A napriek tomu tu, nechaj ma robiť jedna záverečná sada príkladov že maľuje obraz príliš o tom, čo môžete urobiť tu. Tu je veľmi jednoduchý program, ktorý práve robí tohle-- kašeľ, kašeľ, kašeľ. A založené len na to, čo Pozreli sme sa na tak ďaleko, kde je zrejmý príležitosť pre zlepšenie. Tento program je správna. To kašľa trikrát, čo je to, čo som chcel. Ale je to zle vykonaná. Je to zle navrhnutý. Prečo? Jo. Nie je to slučka. A to nie je tak moc že to nie je slučka, je to, že je tu veľa redundancie. Tam sa skopíruje a vložiť kód, aby som tak povedal. A roztok bol pravdepodobne je skutočne slučky. Tak nechaj ma ísť napred a zlepšiť na to. A budem ťahať nich tu. Nechaj ma ísť dopredu a dostať opakovanie blok, zmeniť na tri. budem vyhodiť niektoré z týchto blokov. A všimnite si, že je to celkom intuitívne. Pretiahnutia a veci objavujú a miznú nakoniec. A ja si len pretiahnuť to tu, a Teraz mám ešte čistejšie verzie. Ale viete čo? Tam je to príležitosť Teraz pre abstraction-- začať definovať nové slovíčka že MIT nepredpokladal. Je tu čakať a opakovanie a navždy, a ak, ale čo keď chcem predstaviť slovo kašeľ ako blok? Čo keď chcem kúsok skladačky ktorého zmyslom života je kašeľ? Dobre, poďme sa pozrieť na túto verziu tu, čo som urobil takto. Magicky, som vytvoril Tento skladačky tu, ktorý Scratch vám umožní urobiť. A skutočne C a Python a JavaScript sú bude vám umožní to urobiť rovnako. Môžete si vytvoriť vlastné kúsky, ktoré voláte, čo chcete. V tomto prípade, kašeľ cíti ako rozumná definície. A potom s týmito kúskami dole Tu si môžete definovať, čo to znamená. odtiahol som a spadol z Táto paleta here-- viac blocks-- tento veľký fialová blok, kde som napísal pri kašli Ako názov mojej novej skladačky. A potom hovorím zakaždým, keď používateľ žiada, aby tento nový kašeľ kúsok skladačky, robiť slovo a čakať. A tak tu v mojom opakovanie bloku, Môžem len kašeľ trikrát. A ja by som tvrdiť, zvlášť ak teraz skryť detail. Koho zaujíma, ako je implementovaný kašeľ? Všetko o čo sa starám ako programátor, že môžem vykašľať. Nezaujíma ma, ako hovoria, je implementovaná. Len ma to zaujíma, že mačka môže niečo povedať. Môžem abstraktné preč, že detail a zamerať iba na to, čo je na obrazovke tu. Ale môžem ešte o krok ďalej trvať. Všimnite si, že tu mám realizovaný slučka trikrát. Ale čo keď namiesto toho som chytiť túto verziu? A čo keď namiesto V tejto verzii tu, Len som zmeniť svoj kúsok skladačky, aby prijali argument a vstup sám pre seba? A to môže byť vstup číslo ako tri. Takže teraz, keď píšem program A chcem mačku na kašeľ, Môžem skutočne povedať puzzle poskladať koľkokrát ku kašľu, pretože na dne tu, milovník verzie týchto zákazku dielikov mi umožňuje spresniť, že kašeľ vlastne vezme input-- trvá argument ako je tento. A viete čo? Možno som si uvedomiť, počkaj. Kašeľ je same-- to je zásadne rovnaký nápad ako kýchanie. Je to len iný Slovo na obrazovke. Môžem abstraktné preč ďalej a realizovať Táto konečná verzia kašeľ, ktoré na prvý pohľad je cesta zložitejšia hľadá. Nevšimnúť, čo som urobil. Mám teraz generalized-- genericized really-- tento kúsok skladačky byť nazývaný povedať slovo n-krát. A teraz mám dve nové dieliky tu dole definovať kašeľ n-krát. A čo je funkcia kašeľ robiť? Čo si môj zvyk skladačky robiť? Je to len volá povedzme blok, prechádzajúcej v slove chcem povedať, prechádzajúcej v počte koľkokrát chcem povedať. Vzhľadom k tomu teraz môžem realizovať kýchanie tým, že jednoducho hovorí mesta Akko, V tomto prípade, niektoré koľkokrát. A tak som vrstvenie a vrstvenie. A opäť tu kľúč nie je ako som implementoval ju, ale skutočnosť, že keď som len doslovne presunúť tieto mimo obrazovku, pozerať sa, ako jednoduché, ak nie docela môj program teraz vyzerá. Vzhľadom na to, že robí to, čo hovorí, som abstrahovať mimo to, čo je vnútri, že čierne skrinky. to sa stane byť fialová box tu, ale ja som prekážka preč, čo je vo vnútri pretože mi fuk, ako to funguje. Ja len jedno, teraz, že to funguje. A skutočne, v probléme set nula, to je presne druh vrstvenie nápadov budete majú možnosť preskúmať. Je to presne príležitosť aplikovať riešenie problémov techniky, s tým, čo je pravdepodobne neznámom prostredí. A či ste nie je naprogramovaný pred alebo naprogramované, zistíte, že je tu niečo malé V tomto prostredí pre každého. A s problémom set raz za týždeň času, budeme preradiť na zaostrovanie na vyššiu úroveň jazyka zvanej C- alebo skôr nižší jazyková úroveň nazvaný C-, že je ešte silný, aj keď je to trochu mystické na prvý pohľad. A budete si uvedomiť, za dnešný TL: DR, že tento problém nastaviť má kratšie Okno času, než tých budúcich, jednoducho pretože by ste mali nájsť docela prístupný. A nie sa báť, ak Pridáte-trieda neskoro. Budeme riešiť, že onedlho. A než sme sa odložiť na torte, poďme skončiť len pohľadom dvojminútového na to, čo vás tu čaká v CS50. [MUSIC PLAYBACK] Dobre. To je pre CS50. Uvidíme sa čoskoro. Koláč je teraz slúžil. [MUSIC PLAYBACK] REPRODUKTORY 17: Už ste počuli z voľno, šéf? REPRODUKTORY 18: Možno je tu viac pod kapotou.