[Powered by Google Translate] [ROCK MUSIC] [MUSIC - "Happy Together" korytnačky] DAVID Malan: Dnes, začneme náš prieskum základy počítačovej vedy a našej zavedenie, Teraz, na umenie programovanie, z ktorých je to len jeden príklad. Ale v rovnakom duchu riešenie problému, viem, že CS50 tradičné Puzzle deň je zajtra. Ak ste doteraz RSVPed pre túto akciu, môžete prejsť na cs50.net/rsvp. Môžete si priniesť tímy dvoch alebo tri alebo štyri. Tie budú mať za úlohu s problémami, ako je ten, ktorý videl tam na začiatku. Všetky nové problémy v tomto roku, ak ste si vzala vlani, a vy bude mať šancu potom vyhrať nejaké rozprávkové ceny. Medzi nimi, Wii a niektoré darčekové poukážky a podobné výrobky, to všetko pri visí von s CS50 študentov a spolužiakov a pizza a Facebook. Takže o tom až zajtra, ak by ste chceli. To je teda CS50, pre tých z vás, k nám na prvýkrát. A viem, že tento kurz je zvlášť určená dostať si prostredníctvom tohto predmetu k jeho konečnému, na ktorom mieste ťa budú mať nielen pochopenie týchto základy počítačovej vedy, ale budete mať Tento veľmi praktické zručnosti súbor, ktorý potom môžete vziať späť do vlastné oddelenie, či už je to technické vedy, aplikovaná matematika, fyzikálne vedy, prírodné vedy, alebo podobne. Naozaj, čo je tak vzrušujúce o počítačovej vede týchto dni je to, že je tak použiteľná pre všetky druhy polí. A aj keď dnes, budeme len poškrabať povrch veľmi tradičné programovací jazyk známy ako C, zídeme sa miesto sa pozrieť na niečo, čo nazýva Scratch, niečo s ktoré táto cookie love story bol vykonaný jeden z vašich predchodcovia v minulých rokoch, rozprávať príbehy, vytvárať hry, vytvoriť interaktívne umenie, a skutočne začať baliť OUR myseľ okolo niektoré zo základných pojmov, ktoré základom programovania, ale v kontexte, ako uvidíte, že je to oveľa menej desivé, že je oveľa menej tajomný, ako uvidíte onedlho. A uvedomiť si, taky, pre tých z vás, len sa k nám tento semester, vety, na ktorých sme skončili stredajšie prednášku, to nie je tak dôležité, kde ste skončili vo vzťahu k vášmu spolužiaci v tejto triede, ale ak vy, od semester konca v týždni 11, skončiť vo vzťahu k sebe priamo v tento deň. Takže bez ďalších okolkov, je to tiež stojí za zmienku, že tie menej pohodlné, sú niekde medzi, sú aj tým, že návrh tohto kurzu, nie je na ujmu naproti sebe tie pohodlnejšie prichádza do tejto triedy. Ako uvidíte v priebehu najbližších týždňoch, máme rôzne dráhy pre rôznorodé zadnej pozadí, profily pre tých, menej pohodlné, oveľa pohodlnejšie, ty niekde medzi. Ako uvidíte tento víkend a na budúci týždeň v dvoch variantoch väčšina problémových sady v oboch štandardným a hacker vydania tak že všetci môžu self-vybrať na ceste, s ktorou sú najviac pohodlné. Takže dnes sme sa ponoriť do tohto programovania jazyk volal Scratch. Je to grafický programovací jazyk, a napriek tomu má Rovnaké vlastnosti niektorých jazykoch vyššej úrovne budeme preskúmať neskôr v semestri, medzi nimi C a JavaScript a PHP. Ale bude to, ktoré nám umožní vyhnúť sa niektorým z rozptyľovanie skoro na syntaxe, veci ako bodkočiarky, zátvorky, a ďalšie tajomné detaily, ktoré na prvý pohľad, jednoducho nie sú vôbec intelektuálne zaujímavé a majú tendenciu byť vo cesta z nejakého základného porozumenia. Pokiaľ ide o teraz nosnej konštrukcie pred sebou, si uvedomil, nástroj, CS50 Diskusia, ktorý bude prepojený na kurz je webové stránky ešte dnes, je on-line diskusné fórum v ktoré budete môcť klásť otázky navzájom a zamestnancov, a je to tiež nástroj, ako uvidíme budúci týždeň, že budeme používať pomerne integratedly v úradné hodiny tiež. Naozaj, úradné hodiny začína v pondelok, a úprimne povedané, prvá týždeň úradných hodín je pomerne nízka kľúč. Ja si nemyslím, že zistíte Scratch všetko neprístupná. Je to skôr intuitívne, ako uvidíme, a tak čo budeme používať pre dnes je aby časť základné myšlienky, že bude, potom pretrvávajú po celú dobu Zvyšok semestra. Ale od pondelka v 20:00 prostredníctvom 23:00 bude úradné hodiny v Annenberg cez mozgu prestávke. Krájanie dva budú začínať dnes večer, takže niekedy to víkend, prejdite na cs50.net/section, a budete sa položil niekoľko otázok. Medzi nimi, ako by ste popísať vaše úroveň pohodlia ako dnes? Nie je ťažké, rýchle pravidlo, kto je v ktorej vedro. Je to len jedna z tých vecí, ktoré už asi viete, ak ste patrí k tým menej pohodlný alebo inak. A teraz, návody. Problém set špecifikácie pre tento týždeň, a to ako štandardné a hacker vydania podobne, je on-line na cs50.net už teraz. A uvidíte, že prvý z týchto vydaniach, Standard Edition každý týždeň, je sprevádzaný niečím, čo volať kód návod, zasadnutie viedol o jedného z Samozrejme je výučba chlapi, aby vás, poskytujú tipy na, a vám sa ustanovujú osobitné cestu, pokiaľ ide začatím týchto problematických sady. Takže s každou z týchto problémov zapadne, ak ste niekedy chcel pre seba, kde mám začať, začnete s nimi návody. A v skutočnosti, dovoľte mi predstaviť Zamyla Chan, tento Tohtoročné učenie chlapík, ktorý bude prebiehať každý jeden z týchto návody. Zamyla? [APPLAUSE] ZAMYLA CHAN: Oh, ahoj, všetci. Moje meno je Zamyla. Som junior študuje inžinierstvo v Winthrop dome. Ale snažím a hodí sa do čo najviac predmetov počítačovej vedy ako ja môžu, čo je dôvod, prečo som naozaj nadšený, že sa vedie tento Tohtoročné návody. Priechody, pre mňa, bolo podstatnou súčasťou môjho CS50 skúsenosti. Počas návodu, pre každú p-set, pôjdeme cez problém zostaviť, pozri sa na problémy, druh rozdeliť ich do zvládnuteľných uhryznutie. Dám vám tipy, techniky, pre získanie prostredníctvom a ako začať. Dúfam, že sa vám všetkým na návody. Ak nemôžete robiť to osobne, a potom prosím naladiť on-line. DAVID Malan: Výborný. Ďakujem, Zamyla. Takže si uvedomiť, že návody sú skutočne, v piatok popoludní, ale je to zámerne design tak, že aj keď by som radšej navštevovať triedy v piatok popoludní budú videá byť až všetky rýchlejšie ako víkend. Takže si uvedomiť, že cs50.net bude všetko Zamyla je návody. A že je dnešný dátum a čas, 15:00, Harberd Hall, 104. A niektoré z výučbových chlapíkov boli tiež pripravené niektoré poznámky, pre vás v neprítomnosti, aby vám trochu perspektíva ako k čomu ich skúsenosti prichádza do a ísť von CS50 bol rád. Takže ak by sme mohli stlmiť svetlá pre malú chvíľu, dám vám niektoré zamestnancov CS50 je. JACKSON STEINKAMP: Vzal som CS50 vlani ako nováčik v pádu, a to úplne mi vyrazil dych. Nikdy som brať žiadne programátorské triedy skôr, a nikdy prišiel s akoukoľvek informatiky skúsenosti vôbec. A práve, ja som počul hlášky o triede a rozhodol sa vziať ju. JULIA MITELMAN: Bolo to naozaj zábavné, naozaj pútavé. Aj napriek tomu, k tomuto dňu - Nedávno som videl, že som tu disketu David nám dal na našom prvom dňom prednášky. Som zavesil na stenu. To je asi trochu hlúpy, ale ja som sa držal na mojom stena v triede ako pripomienka toho, ako v pohode to bolo. TRAVIS Downs: Je to tak trápne. JACKSON STEINKAMP: Počítačová veda je niečo, čo by sa mali snažiť, aj keď nie ste jeden pre tradičnej vedy. Je to jeho vlastné skúsenosti, a CS50 sa uistite, že ste podporovaná aj cez to s jeho skutočným armádou TFS. ALI nahmatá: Vzal som to ako nováčik, a tak som urobil veľa nových priateľov. Tiež som dostal predstavený celý tento koncentráciu a Celá škola inžinierstva, a tak vrelo odporúčam a vítam vás na našej CS50 rodine. Yaniv YACOBY: CS50 len vás naučí, ako používať nástroje ktoré sú široko dostupné. Potrebujete k tomu len notebook, budete potrebovať webový prehliadač, a vy Potrebujeme sa naučiť písať nejaký kód, a môžete naozaj stavať elegantné veci. KAREN Xiao: Je to proste tak cool byť schopný robiť niečo a ľudia používať a mať ľudia to vidia, a to to, čo som naozaj rád o tom. TIM McLaughlin: - zmysel pre komunitu, myslím, v tomto Kurz viac než ktorýkoľvek iný Samozrejme, že som si vzal tak ďaleko. Nie ste len s inou - nie ste plnenia ďalšiu požiadavku. Nie ste len tak na prednášky a ísť do sekcie. Ale robíte veľa vecí, ktoré sú všetky informácie o programovanie a všetko o technológii, ale to nie je naozaj pocit triedy väčšinu času. Travis Downs: A na prvý deň, že rozdávali tortu, a Bol som okamžite predal. JACOB Pritt: Free koláčiky a pizza. ZAMYLA CHAN: - bez ohľadu na vaše záujmom, myslím, že že CS50, budete sa baviť, a budete mať intelektuálne stimulovaný. MARK GROZEN-SMITH: Je to vždy osoba v triede, a to strana každú noc pracovali na p-set. JACKSON STEINKAMP: Zakaždým, keď dokončíte problému sadu, môžete bude pocit, že ste dokončil projekt. MELISSA Niu: Bol to prvý rok, a ja som bol urobil nakupovanie. Mala som štyri triedy pripravený, a ja som bol v Annenberg. A ja naraziť na priateľa, a on hovorí, hej, ja som nakupovať táto trieda nazýva CS50, a mali by ste ísť so mnou. Skončil pričom to ten pád, a po tejto triedy, som Myslel budem moll v SK. Ale tu som, o tri roky neskôr, stále študuje počítač veda a vlastne robí to ako major, a miloval som každú moment to. ROB Bowden: Nemám tušenie. ALI nahmatá: Poďme sa pozrieť,. MELISSA Niu: Craziness. SPEAKER 1: Mám pocit, že by som bol veľmi klišé. Ja by som len povedať, ako, úžasné. Yaniv YACOBY: Dostupnosť. JACOB Pritt: Free koláčiky a pizza. TRAVIS Downs: Nemožno zapnúť stanovuje triedu, ktorá rozdáva tortu. TIM McLaughlin: Energetic. Vipul Shekhawat: Essential. ROB Bowden: Nechaj ma premýšľať o odpoveď. Myslím, že niečo mám. Oh, bože. Jo, volám sa Rob Bowden, a to je CS50. [APPLAUSE] DAVID Malan: Dobre, takže poďme začať maľovať obraz smeru, v ktorom môžeme ísť, a poďme predstaviť tento pojem tu známy ako pseudokódu. Takže pseudokód nie je programovací Jazyk sám pre seba. Nie je to nič technického sebe, ale je to jednoducho tak nejako všeobecne spôsob, ako vyjadriť sám seba celkom presne, docela algoritmické, docela procesne, ale bez sa museli starať o aký jazyk ste vyjadrovanie yourself in Je to nejaký model angličtiny a programovacích jazykov s ktoré sa stalo, aby sa zoznámili, takže môžeme začať písanie také veci, ako sme ísť. A v skutočnosti, Joseph, môžem si požičať vás na javisku sa pisár tu? Ja som išiel napred sem vopred a zabudol dať na niektorých ponožky dnes, a to bude medzi naše viac smiešne príklady. Teraz ťa potrebujem tu. Urobím ponožky časť. Takže tu máme trochu poznámkový blok. To je doslova TextEdit v systéme Mac. Nie sme vlastne bude písať Runnable program, ale sme len tak začať skicovanie z pseudokódu na báze na niektoré z rady, ktorú poskytnete mi tu. Takže tu je môj hromadu ponožiek doma. Nemám žiadne ponožky na to, kedy som sa prebudila ráno, a teraz treba napísať program, algoritmus druhov, s ktorými aby sa tieto ponožky na nohách. A po ceste, uvidíme, či budeme zakopnúť, alebo v prípade, niektoré z myšlienok, ktoré budete musieť začať premýšľať o oveľa vážnejšie pri programovaní lesť vaše programy sa nesprávajú celkom, ako bolo zamýšľané. Tak som si sadnúť tu. Mám svoj hromadu ponožiek. Čo je prvá vec, ktorú rozumný človek by , Keď cieľom je kladený na paru ponožiek? Niekto mi o jeden krok, a len jeden krok. Jo? Divákov: zohnúť. DAVID Malan: Bend dole, Dobre. Krok dva. Krok dva. PUBLIKUM: Zdvihnite ponožku. DAVID Malan: Zdvihnite ponožku. Dobre, tak malý, dvojznačnosť tu, a to je jeden z prvých kameňom úrazu, že by sme mali zámerne stretnúť tu. Je to trochu nejasné, takže vyzdvihnúť ponožku. Dobre, vezmem tento, ale počítač, realizovať len bit, nebude mať tento druh ľudský inštinkt len vybrať najbližší. Budeme musieť začať, onedlho, vyjadrujúce sami presnejšie. Dobre, takže druhý krok je vyzdvihnúť ponožku. Berieme to. Krok tri. V zadnej časti. PUBLIKUM: Nájdi si pár. DAVID Malan: nájsť zodpovedajúce dvojice. Dobre, tak to je dobrý. Musel som si vybrať túto ponožku. Takže cieľom je nájsť zodpovedajúce ponožku, teraz, ale to, čo to znamená? Rozumné ľudskej bytosti, rovnako ako v stredu, kedy som vedel, ako nájsť Mike Smith v telefónnom zozname, tak nejako išiel s ich inštinkt. Ale tu, je to samozrejme táto ponožka tu, ale počítač je nebude tak inštinktívny. Počítač bude mať zbierku bitov, ako my diskutovali v stredu, a to sú organizované nejako v pamäti. Ide o to, že počítač má iba schopnosť pozerať sa na veci, jeden po druhom, a v skutočnosti, aj my ľudia - aj keď to cíti, ako by som sa pozrel dole a rozdelenie sekundu neskôr Viem, kde ponožka je, môj mozog a moje oči pravdepodobne sa rýchlo zbierať týchto ponožiek, a potom sa západkou na jednej sa jedná. Takže ak budeme všetci oveľa modernejšie teraz ako počítač, Ako môžem toto zodpovedajúce pár? No, musíme určiť iteráciou. Musíme snáď slučke počas tohto neporiadok ponožky na poschodie ktorej som povedať niečo ako PRE KAŽDÝ ponožka, si to up, a ak je rovnaký tvar a veľkosť ako ten druhý, PAK dot, dot, dot, budeme pokračovať v príbehu. Takže pre každého ponožky, takže som vyzdvihnúť tento. Aj skontrolovať je to rovná tejto jednej. Nie je to, tak som si dal stranou stranu. Potom som určiť iteráciou znova. Je to jedna rovná? Nie, to nie, tak som to dal bokom. Je to jeden? Nie. Tento? No, a tak ďalej. A potom konečne, dúfajme, že sa stretnem túto ponožku tu. Takže ak je to rovnaký tvar, veľkosť, vezmite si ju. A teraz, čo by byť náš budúci krok tu? Jo? PUBLIKUM: Určite P zľava. DAVID Malan: Dobre, identifikovať vpravo a vľavo, tak našťastie, že druh práce. Trochu symetrická, alebo som len nosiť im týmto spôsobom. Dobre, tak som identifikoval právo. A teraz, ako budeme pokračovať, dovoľte mi, aby som poukázať na to, čo Joseph je robil sem ako akési veršované programátora. Takže znova, nie je jeden spôsob, ako to urobiť, ale viac než len číslovanie liniek, Joseph už začal robiť to druh odsadenie. Naozaj, toto je veľmi častý konvencie v programovaní, kedy, keď robíte niečo iteratívny, looping štýl, as sme z čoho vyplýva, s anglickým výrazom "PRE KAŽDÉHO ponožka, "konvencii v pseudokódu, a ako uvidíme, normálne programovacie jazyky, je len zarážky. Hit medzerníka niekoľkokrát, narazí na kláves Tab a podobne, tak, aby vnorené pod "PRE KAŽDÝ ponožka" je kus vecí, ktoré musíte urobiť, v dôsledku tohto slučky. Tak to je všetko, čo dopravné sémanticky. Teraz zatiaľ, "Ak je to rovnaký tvar a veľkosť, ďalej len" Skutočnosť, že "Take it" je členité ďalej len znamená, že to je jediná vec, ktorú by ste mali urobiť, ak túto podmienku, ak je vetva, ktorá rázcestí, je v skutočnosti pravdivý. Takže teraz tu, sme v kroku štyri, identifikovať vpravo a vľavo. Identifikoval som pravdu. Dajte mi krok päť. A technicky, môžeme naozaj hovoriť PRE KAŽDÉHO vec - asi by ste mali očíslovať všetky linky, ak budeme robiť to. JOSEPH: [Nepočuteľné] DAVID Malan: [Nepočuteľné]? Dobre, dobre, urobíme to po svojom. Dobre, takže krok päť, ako to robíme správnu ponožku? Ako budeme postupovať ďalej, tu? Áno? PUBLIKUM: Zdvihnite pravú nohu. DAVID Malan: Zdvihnite pravú nohu, Dobre. Krok šesť? Rýchlo. Jo. PUBLIKUM: Nájsť otvorený koniec ponožky. DAVID Malan: Dobre, nájsť otvorený koniec ponožky. Tak dobre. Tak tu, úprimne, by veľmi časté inštinkt byť len kladený na pravom ponožky, ale aj to je celkom nejednoznačná. Ak počítač alebo človek presne vie, čo to znamená, to nebude robiť, takže tu, mám Buďte otvorení populácie. Krok sedem? PUBLIKUM: Dotknite sa prsty. DAVID Malan: Dotykové prsty. Dobre, takže teraz ideme - Dobre, budem sa niektoré slobody tu. Vďaka. Krok ôsmy? Dajte na ponožke. Dobre, takže teraz som, že sme dosť blízko, aby nejako prijať tento doma. Dobre, tak to ide hore. Vezmem niektoré slobody s tým, čo to znamená, skutočne. Dajte ponožku na. Dobre, teraz kroku deväť? PUBLIKUM: Dajte nohu dole. DAVID Malan: Ďakujem. Krok deväť, dal nohu dole, a teraz, môžeme opakovať. Takže pravdepodobne, môžeme teraz prejsť do kroku 10 a povedať identifikovať vľavo ponožky, ale to je pravdepodobne už urobil. A potom sa môžem nejako opakujte tieto kroky. Ale tento druh vyvoláva otázku. Pred, v poslednej dobe sme chceli zopakovať niečo, my urobil iteratívne, znovu a znovu, FOR Každá slučka tak hovoriť. By malo zmysel používať slučku, aby sa zvládnuť aj vľavo a vpravo ponožky? Vzhľadom k tomu, že sa cíti, ako sú tieto operácie sú do značnej miery totožné, s výnimkou toho, že sa vychádza tu a jeden Tu začína? My slučku, alebo budeme len držať písanie kroky 10, 11 a 12? Divákov: Loop. DAVID Malan: Dobre, tak slučka. Vlastne som mohla povedať len ďalej. Tak prečo je tomu tak? No, to je v skutočnosti prvou náš non-zrejmé rozhodnutia o návrhu, a v skutočnosti, jeden z metrík, s ktorými začneme hodnotiť, pre seba a pre vás, Kvalita programu je to, ako dobre navrhnutý to je. Už ste urobil minimálne množstvo práce potrebné pre si prácu najrýchlejšie, či už ide o váš čas alebo, pokiaľ ide o počítače so systémom dobe? Koľko operácií robí to trvá spustiť? Takže pravdepodobne, je to príležitosť pre sláčiky, pretože akonáhle začnem kopírovanie a vkladanie, ako Josef účinne by začať robiť v okamihu, si trochu plytvanie čas, a vy ste bol dvakrát expresívne. Ale zároveň, to sú naozaj len dve špeciálne prípady, vľavo a vpravo. A vzhľadom k tomu skôr, mohol som mať 10 alebo 20 alebo viac ponožky v hromada, to určite dáva zmysel, že nemá 50 riadkov Kód hovorí zistiť túto ponožku, potom ďalší jeden, potom ďalšie. Tu je to trochu menej zrejmé, a ja by som navrhol že by sme mohli ísť buď cestou. Mohli by sme mať buď tú slučku, hoci to len slučky dvakrát, alebo môžeme jednoducho skopírovať a vložiť len trochu práve preto, aby svoju prácu. Ale tento program je buggy, aby som tak povedal. To by mohlo mať nejaké chyby, chyby alebo rohové prípady, tak hovorí, že sme sa naozaj predvídať. Nič sa stalo tentoraz, ale čo by mohlo byť zle Pri vykonávaní tohto programu? PUBLIKUM: Nemáte žiadne ponožky. DAVID Malan: Takže tam mohol byť žiadne ponožky tam vôbec. Takže poďme sa domnievajú, že rohový prípad. Takže ak by sme sa posunúť späť ku kroku jedna, takže krok jeden bol skloniť, takže sedí. Krok dva, vyzdvihnúť si ponožku, ale potom zistíte, zodpovedajúce ponožky, identifikovať pravdu. Sme trochu robil veľa predpokladov, a to je, úprimne povedané, prečo program, niekedy zlyhanie. Ak, programátor, robili určité predpoklady, ako sú určite tam to bude ponožky alebo určite tam to byť pamäť ponechaná v počítači, určite tam deje byť na disku vľavo na pevnom disku - No, keď urobíte tieto predpoklady, a to nie je, v skutočnosti, reality, kto vie, niekedy to, čo počítač je robiť? A niekedy, keď sa dostanete na otáčajúce plážová lopta alebo mrazené Windows alebo podobné, že je to práve preto, že niektoré Programátor nepredpokladal tie takzvané rohové prípady. Čo iné by mohlo ísť zle v tomto programe? Jo? PUBLIKUM: Vy nemáte pravú nohu a ľavú nohu. DAVID Malan: Dobre, nemusí mať obaja pravú nohu a ľavú nohu, a tak tento program nemusí byť všeobecne použiteľné. Ostatné? PUBLIKUM: Možno ste zdvihol osirelého ponožku. DAVID Malan: Možno som zdvihol osirelého ponožku, tak non-matching ponožky, ktoré práve nemá žiadne súrodenca, pretože som stratil, je roztrhaný to, že je to v praní stále, alebo podobne. Takže, aj tak nebolo manipulované. Jo? PUBLIKUM: Možno už ponožky. DAVID Malan: Možno už ponožky. Nechcel som vlastne zistiť. AK nemáte ponožky, potom pokračujte k tomu linka jedna a dva. A to by sa mohlo stať. Môžete zaspávať s vašej pokožky na a podobne, tak taky, veľmi rozumné kútik prípad. A možno ešte jedna? PUBLIKUM: ponožka je naruby. DAVID Malan: Takže ponožka je naruby, takže sme urobili žiadnu chybu kontrolu, v krátkosti. Nechceli sme skontrolovať, či stav sveta je, ako očakávame. Nechceli sme skontrolovať, či sme skutočne našli to, čo sme hľadali. A aj keď je to akýsi smiešny príklad zahŕňajúce ponožky, na konci dňa, to je presne druh myslenia je treba mať pri písaní programov, iv Scratch, rovnako ako v C, v JavaScripte, v PHP, pretože inak budú vaše programy vykazujú ekvivalent tejto pradenia nafukovacia lopta, alebo len výnos nepresné výsledky. Takže vďaka moc tu na našom pisára Jozefa. [APPLAUSE] DAVID Malan: Dobre, tak čo je v Skutočnosť, počítačový program? No, poďme sa rýchlo pozrel na Zástupca jeden tu. Tak to je program napísaný v jazyku nazvanom C. C je pomerne staré týchto dňoch, ale mnoho novšie jazyky sú postavené na vrchole toho. Vskutku, PHP, jeden z web-centrických jazykov budeme použiť k termínu ku koncu, sám o sebe má, čo sa nazýva tlmočníka, program, ktorý je napísaný v jazyku C, ale o tom viac v mnohých týždňov od tejto chvíle. Ale tento program, a to je to, čo to znamená písať program, hoci veľmi jednoduchý. Máme nejaké docela tajomné syntax tu, ale môžete asi tušíte, aj keď ste nikdy naprogramovať pred, čo tento program robí. Naozaj, ja neviem, čo printf je, ale tlač rozhodne vyvoláva myšlienku tlače niečo. A tak áno, tento program je v konečnom dôsledku bude tlačiť slová "Hello, world". Teraz, nech máte Mac alebo PC alebo počítači so systémom Linux, kurzy sú, aspoň pokiaľ ste si stiahli nejaký voľne k dispozícii softvér, mohli ste sa písať programy na vlastný laptop pre docela nejaký čas. V systéme Mac OS, napríklad, tam je to program s názvom Terminál, ktorý je dodávaný s Mac, ktorá je zvyčajne vo vašom Utilities, a to všeobecne otvorí čierna a biela alebo biela a čierna okná, v ktorom ste výzvou, na ktorú môžete písať príkazy. Takže je to vlastne pripomína to, čo počítače bolo pred grafickým užívateľským rozhranie, GUI, prišiel. Teraz, vo Windows, máte podobný mechanizmus v podobe z príkazového riadku. Ale čo budem robiť, je tu otvoriť, povedzme, TextEdit znovu, takže ten istý program, ktorý sme používali pre pseudokód pred chvíľou, a ja idem ďalej a napísať môj prvý program. Patrí stdio.h, nech to znamená čokoľvek, int main void, nech to znamená čokoľvek, a potom v stredu tu, printf ("hello, world."). A potom zavrieť citácie, zatvoriť zátvorka, bodkočiarku. Teraz budem pokračovať a jednoducho hit Command-S. Idem ísť dopredu a uložiť ako hello.c, takže dohovor svet programovanie C je názov súboru dot c Idem len dať v domovskom adresári Johna z Harvardu, tu, kliknite na tlačidlo Uložiť, a teraz idem prejsť k tomuto okno terminálu, čo je opäť táto čierna a biela riadku kde môžem vykonávať príkazy. Môžem spúšťať programy zadaním svoje meno, nie Dvojitým kliknutím ikony v obvyklom slova zmysle. Ale vec je o C, je, že jazyk ako C prvý prichádza v tejto podobe, niečo, čo nazýva zdrojový kód. Niečo, čo vyzerá trochu ako angličtine, ale je rozhodne menej ako angličtina ako pseudokód Jozefov Pred chvíľou. Je to trochu tajomné. Zdá sa, že nasledovať niektoré vzory alebo pravidlá. Skutočnosť, že mám zložené zátvorky, bodkočiarky, citácie, uhol traky, cíti ako počítač prišiel s týmto druh jazyka. Ale keď pôjdem, teraz, na tomto terminálu, je možné spustiť príkaz, ktorý sa bude konvertovať, že zdrojový kód je niečo, čo nazýva objektový kód. To bude konvertovať English-ako syntax na nuly a tie, rovnaké druhy núl a jedničiek my hovoril o stredu. Teraz, idem spustiť príkaz s názvom zvonenie. Viac o tomto v najbližších týždňoch, ale je to program s ktoré môžem previesť hello.c na celú partiou núl a jedničiek. Teraz som spustenie tohto príkazu. Som bežať rinčať, a potom som povedal bežať sám na tento súbor volal hello.c, ktoré som vytvoril pred chvíľou, a nič Zdá sa, že sa stalo. Ale naozaj, keď som vystrčil okolo môjho domovského adresára, by som vidieť že tento hlúpo názvom programu a.out teraz existuje. To je len predvolený názov programu, pri písaní C. Môžeme prepísať to nakoniec, ale a.out je názov programu, ktorý som práve premenený núl a jedničiek. A teraz, že je to núl a jedničiek, môj Mac, v tomto prípade, alebo Vaše PC s Windows, môžete pochopiť tie kúsky, tie núl a jedničiek. A tak, keď som narazila Enter, vidím "hello, world!" Ale je to trochu buggy. Nechcel som celkom povedal "ahoj, svet: vzduch: -! Jharvard." Vzduch je meno môjho počítača. Jharvard je názov účtu, takže to, čo som jasne vynechať z programu? Nejaký zalomením riadku. Nechcel som narazila na ekvivalent Zadajte alebo návrate vozíka, a to je, opäť, svedčí o tom, že počítače môžu len to, čo poviete, aby robili. A skutočnosť, že som nepovedal počítač presunúť kurzor na ďalší riadok - dobre, to určite nebude len to opovážlivý pre mňa. Takže keď som sa vrátiť do svojho programu, a ja hovorím, \ n - Takže \ n, ako skoro uvidíte, je spôsob, ako predstavuje divné veci, ako znaky nového riadku, veci, ktorá by inak bola výsledkom biť klávesy Enter. Ale teraz, len viem, že biť klávesy Enter by len aby náš kód vyzerať divne, tak sa svet rozhodol, vieš čo, aby veci krajšie, aby ju udržali na jednom riadku, poďme len povedať, \ n predstavuje nový riadok. Dovoľte mi, aby som znova uložiť svoj súbor, prejdite späť do okna terminálu, a re-run a.out, Enter. Napriek tomu buggy, ale prečo? PUBLIKUM: [Nepočuteľné] DAVID Malan: Jo, tak som potrebné prekompilovať ho. Takže zostaviť program znamená len previesť zo zdroja kód objektového kódu, zdrojovom kóde núl a jedničiek. Teraz, samotná skutočnosť, že som narazila Uložiť v tomto TextEdit nemá ložiská na týchto núl a jedničiek, pretože som najprv tell zvonenie hey, zmenil som tie riadky kódu, zdrojový kód. Musíte regenerovať a.out. Nič Zdá sa, že sa stalo, ale v počítači, Na príkazovom riadku, tak hovoriť, keď sa nič nedeje, to zvyčajne znamená všetko je v poriadku. Keď sa niečo stane, znamená to, že ste zpackal, všeobecne. Takže poďme sa teraz ísť do a.out, a naozaj, mám teraz "hello, svet. " A teraz, čo o týchto núl a jedničiek? Ak je v tom, sú tie? No, nemôžem naozaj len trochu poke okolo veľmi efektívne. Dovoľte mi, aby som otvoriť TextEdit. Tu je a.out. Nechaj ma ísť ďalej a to otvoriť, a to je zrejme to, čo my Program vyzerá. Tak som otvoril, nie hello.c, ale a.out. Ale to je vlastne to, čo môj program je naozaj. Je zrejmé, je to nejaký druh abecedných znakov. Nevidím žiadne núl a jedničiek, ale je to pretože a.out je program. Núl a jedničiek - ale TextEdit, ako názov napovedá, je to rovnako ako Notepad vo Windows, je len textový editor, takže je to mätúce všetkých týchto núl a jedničiek as hoci oni boli, čo? ASCII znaky. Takže pripomínajú v stredu, práve sme prišli s týmto svojvoľné mapovanie čísel, alebo kúsky, na listy abeceda a interpunkčné symboly a podobne. Takže TextEdit, že je to textový editor je interpretáciou tie vzory núl a jedničiek, ktoré majú byť tlač slová, ako "Hello, world". Je to ich zobrazenie ako ASCII, a to je dôvod, prečo to vyzerá trochu chaotický. Teraz, tam sú niektoré náznaky správnosti v tu. Všimnite si, keď som zdôrazniť, že je náznak skutočne "hello, svet, "tak niekde v tomto programe je veta, ktorú som napísal. Ale poďme ďalej a teraz vidí s iným programom. Toto nie je jeden budeme používať, že často, ale tiež prichádza s Mac a bude vnútri CS50 zariadenia. Nechaj ma ísť napred a otvorte s programom s názvom xxd. Späť v deň, bola väčšina programov menoval pomerne záhadne, a tak tento trend pokračuje. Ale-b znamená vypľuť tento program tak, ako binárne. Nespúšťajte ho. Zobrazenie mi to ako núl a jedničiek, a to je C program, ktorý sme práve napísali. Teraz, ja, ako človek tu, úprimne nemám potuchy, čo Tieto rôzne vzory núl a jedničiek predstavujú. Späť v deň, som s mojimi dierne štítky alebo ako, by skutočne sa pozrieť do akej tieto rôzne vzory 01111000, v skutočnosti predstavujú. Alebo ešte horšie, potreboval by som urobiť dierovanie alebo vytvorenie z týchto vzorov núl a jedničiek. Ale teraz, sa na základe viery, že CPU, Intel Inside, tak hovoriť, vnútri všetkých našich počítačov v týchto dňoch, vie ako interpretovať tieto núl a jedničiek. A niektoré nuly a jednotky znamenajú tlač. Niektoré núl a jedničiek znamená hrať zvuk. Niektoré nuly a jedničky znamená vziať si užívateľský vstup z klávesnice. Je tu všetky druhy rôznych vzorov, ale našťastie, ako ľudia, len všeobecne musieť starať o programovaní v Tento pomerne vyššiu úroveň. A v iných triedach SK môžete ponoriť hlbšie a pozrieť sa u vecí ako ty núl a jedničiek, alebo ešte iné veci stále. Tak teraz poďme zmeniť toto. Poďme veľmi rýchlo preč od C a presťahovať sa do niečoho na trochu viac upokojujúce, trochu viac vzrušujúce, v tom, že môžeme dostať späť naše animácie a zvuky a podobne, ktoré jasne uniklo nám v tejto docela primitívne rozhranie. Takže to rovnaký program v jazyku C môžu byť reprezentované teraz v tejto programovací jazyk nazvaný Scratch takto. To je ekvivalent tohto Hello World program napísaný v Tento kúsok skladačky štýl jazyka nazýva Scratch. Tak nechaj ma ísť napred a otvoriť túto veľmi programu. Je to zase len Scratch. Je voľne k dispozícii, a to je to isté sme začal dnes na. Tak toto je Scratch, a to sa rozdelila na niekoľko rôzne kusy. Na veľmi pravom hornom rohu, máme tzv fázy, a naozaj, že je miesto, kde sú cookies vykonáva len trochu skôr. A na javisku sa veci len prízraky, znaky, alebo objekty, alebo subjekty. To nie je naozaj jedno, ako si o nich myslíte, ale sú programovateľné, pohyblivé veci, a v tomto prípade sa jedná program, ktorý naša študent písal má niekoľko perníku cookies, pár kruhových cookie, celá banda srdce, celá banda okuliarov. Z tohto dôvodu sa alebo je schopný programovať každý z nich Jednotlivé postavy samostatne. Teraz, čo to znamená naprogramovať tieto znaky? No, nechajte ma ísť napred a kliknite na ľavej strane cookie a prejdite cez hore doľava tu. V ľavom hornom rohu mojej obrazovke je teraz tzv skripty oblasť. To je druh nepopsaným listom, spočiatku, na ktoré môžem drag and drop puzzle kúsky, ktoré, úprimne, robiť presne to, čo hovoria. Na vrchole tohto zásobníka dielikov je slovo Keď Green Flag kliknutí, a ak ste si nevšimol skôr, ako som začal, že cookie pieseň bola kliknutí, doslova, zelená vlajka. Takže skladačky vľavo hore tam znamená, keď ľudských kliknutí zelená vlajka, pokračoval robiť nasledujúce veci. A teraz, čo sa im cookie pokračovať robiť? Ja naozaj neviem, ako interpretovať to ešte, ale cookie zrejme nastaviť jej drážky na nulu, potom to čakal tri sekundy, potom to zmenilo jeho skupinu s jedným, potom to čakal druhý, potom sa to zmenilo jeho groove späť do jedného. A potom to skutočne vyzerá ako trochu chybu, by nemali musieť zmeniť svoje drážky znovu a znovu, ak je to menený inde, ale táto séria krokov je to, čo je diktovať správanie tohto konkrétneho súboru cookie. Takže poďme skutočne posunúť späť a nepozerať sa na niečo tak celkom zložitý ešte. Nechaj ma ísť napred a ísť do súboru, Nový, a získať čistý štít. Takže teraz, som naozaj bude mať prázdnu skript priestor, prázdne javisko, s naším východiskovým sprite nuly, a v ľavej hornej časti Na obrazovke mám paletu všetkých ich K dispozícii dieliky. A nebudeme prechádzať takmer, že mnoho z týchto vecí dnes, pretože, opäť, väčšina sú samo-vysvetľujúce, ale my sa snaží roztriediť ich a poukázať na podobnosti s týmito budúcimi jazykmi, na ktoré budeme potápať. A vľavo hore tu je prvý Keď Zelená vlajka kliknutí, tak nech mi pretiahnuť sem, oddialiť trochu. A keď som kliknite na zelenú vlajkou, nič sa naozaj deje, pretože Nemám pripojený žiadnu logiku, vyhlásenie tak hovoriť, že zelená vlajka, tak nechajte ma ísť do Kategórie sem. Som v súčasnej dobe v Ovládacom kategórii. Ja namiesto toho ísť do toho, ako vyzerá kategóriu, a je tu celá partia vecí tu, že Say Say, Zamyslite sa, meniť farbu, spínače kostým. Takže si môžete urobiť hlúpe veci s kostýmy a zvuky a podobne. Nechaj ma ísť dopredu a len povedať Say, a teraz zistíte, ako som pretiahnuť a odstrániť tento kúsok skladačky, to bude chcieť, aby zapadla do zodpovedajúceho tvaru. Takže keď som sa do toho pustite a pustil mojej myši, uzavrú spoločne, a teraz keď pôjdem sem a kliknite na zelenú vlajkou, mačka sa v skutočnosti pozdraviť, pretože to je to, čo je vnútri tohto bielom poli. Čoskoro budeme vidieť, že biely box je to, čo sa nazýva argument, alebo parameter. Je to spôsob zmeny správania, v tomto prípade, skladačky, ale ak chcem povedať, čo presne som povedal pred, povedzme hello, world, teraz môžem vrátiť sem, Kliknite na tlačidlo Prehrať a "hello, world" je to, čo je povedal. Takže sme sa doslova programovanie teraz. Nie je to, že presvedčivé programu, najmenej však je to trochu závažnejšie, než niečo, čo vyzerá, na prvý pohľad, ako je tento. A môžeme veľmi rýchlo dostať všetky výraznejšie pretože v Scratch, rovnako ako v iných jazykoch, tam je všetko druhy výkazov, a to nielen Say alebo tlačou niečo, ale môžete robiť veci, ako je čakanie, ako sme práve videli s cookie, niektoré počet sekúnd. Môžete prehrávať zvuky v prostredí Scratch len ako môžete v bežnom počítačovom programe prehrávanie zvuku. Môžete zistiť, čo sa nazýva booleovských výrazov. Takže teraz, poďme začať sa pridať k nášmu nástrojov niektoré terminológie že sa v skutočnosti týka príkladu, že Joseph a ja urobil Tu sa ponožiek. Takže tvrdenia sú len faktické vyhlásenia,. Urob to. Smernica pre škriatka, alebo ma človek, niečo urobiť. Boolovský výraz je niečo, čo má hodnotu, tzv pravdivostná hodnota, ktorá je buď nula alebo jedna, nepravdivé alebo pravda, zapnutie alebo vypnutie, nie alebo áno. Nezáleží ako si myslíte, že o tom, ale je to binárne stav. Ako Nate prerokovaný vo videu stredajšie, dva rôzne veci. Takže v Scratch, Booleovské výrazy stane sa pozrieť ako sú tieto modré objekty tu, v tomto prípade, je otázka Značka znamená, že sa pýtate na otázku. Je mačka, alebo sprite, dotýka myši? Takže to je len jeden príklad z Scratch bloku, čo sa deje ktoré nám umožnia zistiť áno alebo nie, je myš dotýka sprite na obrazovke? A to môže byť užitočné, ak si naozaj chcete robiť veci s myšou. Okrem logických výrazov, máme veci ako je myš dole, takže môžete zistiť, že druh otázka, ako dobre. Môžeme to urobiť matematiku, ak si naozaj chcete, a tam je v skutočnosti viac presvedčivé použitie pre toto, než len rýdzi aritmetický, ako uvidíme. Pseudo náhodnosti a aby si program, si zrejme myslia, alebo sa správajú rôzne v závislosti na niektorých zdanlivo náhodných hodnôt, a potom máme také veci booleovských výrazov ako AND. Takže ak naozaj chcete skontrolovať dve hodnoty, uvidíme v Stieracie, že môžeme skutočne vyskúšať, či sa jedná pravdivé a je to pravda. Napríklad, v prípade, že moje ponožky, mohol som na veľmi end spýtal na otázku, či ľavý ponožka je zapnutý a pravej ponožka je na, ukončite. Tomto kroku na deň, takže by bolo príležitosť pre to. Tak poďme do toho a skúste sa dať niektoré z nich spoločne a ísť do pár príkladov viac presvedčivé ako tento. Tak nechaj ma ísť napred sem a otvoriť niektoré z príkladov že bude vždy o priebehu stránkach rovnako, a otvoriť hello2. Takže v hello2 tu, máme program, ktorý to robí málo veci, ale to nerobí to tak účinne, ako by sme mohli. Tak tu to hovorí "Hello, world" po dobu jednej sekundy a potom čaká pre druhé. A potom to urobí znovu, a potom sa to znova. Takže keď som kliknite na zelenú vlajkou, Scratch hovorí "Hello, world. Hello, world. Hello, world. "A to je samozrejme kandidát teraz zlepšenie. Čo je marginálne zlepšenia, dúfajme, môžeme teraz urobiť, ak Scratch podporuje koncept? Nejaký druh slučky. Nejaký opakovanie, teraz, by bolo pekné, tak nech mi vlastne to skúsiť. Dovoľte mi, aby som skutočne ísť a pohybovať to. Takže oznámenia možno oddeliť bloky tak ľahko, ako si môžete pridať do pripevnite ich. Nechaj ma ísť pod kontrolou, prejdite sem, a naozaj, tam je to kúsok skladačky tu, opakovanie a Forever a Forever Pokiaľ. Takže tam je niekoľko spôsobov, ako vyjadriť cyklickú konštrukcia v Scratch. Ten, ktorý som pravdepodobne chcieť tu nie je navždy, pretože som len Chcem aby sa to stalo trikrát, ale pravdepodobne Opakovať. Dovoľte mi teda pretiahnuť Opakovať tu, pretiahnite ju, a Teraz namiesto toho povedal "Hello, world", tri samostatné krát, dovoľte mi, aby som pretiahnite tento kúsok skladačky tu. A aj keď sa to nezdá, aby sa zmestili, program inteligentná dosť si uvedomiť, že bude rásť vyplniť, takže je to tvary, ktoré záležitosť a nie absolútnu veľkosť. Dovoľte mi, aby som zmeniť opakovanie na tri, a teraz nechaj ma ísť dopredu a pretiahnite Počkajte One Second tam tiež. Bude to snap v tiež, a tak teraz budem ťahať títo ľudia sem a len hádzať je preč, pretože som nepotrebujú už. Dovoľte mi, aby som oddialiť a kliknite na zelenú vlajkou teraz, a my máme rovnaký program, ale ako som predpovedal pred, lepšie navrhnuté, pretože si dokážete predstaviť, ako zle je tento program by si iste esteticky, ak by ste mali kto kopírovanie a vkladanie, kopírovanie a vkladanie, alebo pretiahnutím rovnaké zatraceně veci znova a znova. Teraz, jednoducho hovoriť veci na obrazovke, tlač na obrazovke, naozaj všetko, nie je to vzrušujúce, takže sa poďme otvoriť tretej rozptyl tu. A teraz, ako uvidíte, toto sa rýchlo dostať otravné - [Meow] DAVID Malan: -, ale je to aj trochu roztomilý. [Meow] DAVID Malan: Dobre, tak lepšie, a môžeme samozrejme použiť, aby Rovnaký prechod Chunking to až do opakovania štruktúra, ale poďme robiť to viac zaujímavejšie stále. Nechaj ma ísť napred a otvoriť štvrtiny rozptyl tu, kde som brať veci o krok ďalej. Tak podľa tohto, hlúpe aj keď je to na prvý pohľad, čo sa tento program bude robiť? Bude to meow raz. Prečo? No, jeden je, pokiaľ viem, vždy menší ako dvaja. Nie je pojem náhodnosti tu. Ja som doslova pevne jedna a dve, ale to je Príkladom teraz skutočne používať logický výraz. Podobne ako ako Joseph robil v jeho pseudokódu, odsadenie KEĎ nájdete zodpovedajúce ponožky vykonajte nasledujúce, tu máme výraz Ak jeden je menší ako dva potom - a v skutočnosti budeme mať aj trochu odsadenie, kde je fialová mierne odsadená doprava - Potom budete hrať zvuku mňau. Teraz, v tomto prípade, že je vždy menší ako dva, takže tento je tak trochu plytvanie stave. Ale budeme môcť, ako uvidíme, pripojiť iné veci do Tieto zástupné symboly, kde jedna a dve teraz sú. Takže poďme sa teraz postupne napríklad päť týchto niekoľkých pozdravy a pohľad na to, čo tento program to urobí. Takže teraz, v anglickej vete, ako to sa program chová? PUBLIKUM: Meows polovicu času. DAVID Malan: mňau je polovica času, takže to je spôsob, ako dopravu veľmi jednoduchý nápad. Aj keď sme sa náhodou používať niektoré nerovnosti tu v niektorých čísel, to je v skutočnosti len programový spôsobom, presný spôsob, ako povedať keď sa mince príde hlavy, ísť dopredu a mňau. Alebo naopak, keď sa mince príde chvosty, nie mňau. A v tomto prípade, ako sme vyjadriť, že? Budeme si vybrať náhodné číslo od 1 do 10, a ak to číslo je menšie ako 6, choďte do toho a mňau. A ako sa to sem dostať? No opäť si všimnite, len pretiahnutím a veci nezapadne na miesto. Takže teraz uvidíme, či to náhoda funguje. Nechaj ma ísť ďalej a kliknite na zelenú vlajkou. [Meow] DAVID Malan: Dobre. [Meow] DAVID Malan: Dobre. Dobre, dobre, tak my sme dostali hlavy, hlavy, chvosty efektívne. Tails. [Meow] DAVID Malan: Heads. [Meow] DAVID Malan: Výborný. Je to vždy nepríjemné, keď len štatisticky dostanete zlý beh, a to všetky hlavy, a program v skutočnosti nie je fungovať, ako by ste dúfali. Ale tentoraz to fungovalo, a zdá sa, že ak majú sme Tento nekonečný počet opakovaní, 50% šanca. Teraz znovu, nie všetci, že zaujímavé, len aby mačky meow, takže uvidíme, či nemôžeme postúpiť tento kúsok ďalej tu vo verzii šesť. Takže teraz máme naozaj nepríjemný verziu - [MEOWS každých pár sekúnd] DAVID Malan: - a to je to, čo je známe, všeobecné, as nekonečnej slučky. Takže nekonečné slučky v tomto prípade cíti zle. Je to určite bude, kto znieť zle, a napriek tomu nekonečný slučky nie sú vždy zlé. Môže si myslíte, že kontext, v počítačových programov, kde by ste vlastne chceme nekonečnú slučku? Jo? PUBLIKUM: Ak chcete skontrolovať stav. DAVID Malan: Dobre, keď chcete zachovať kontrolu podmienku? Ako čo? PUBLIKUM: [Nepočuteľné] DAVID Malan: Dobre, dobre, takže ak ste mali nejaký program, niektorí Takéto veci domácej automatizácie, kde chcete neustále Monitor je niečo prípad. Sú svetla na? Sú svetla na, pretože možno budete mať časovač, a Chcete, aby išli preč, možno budete musieť niečo urobiť znovu a znovu. A v skutočnosti, keď už hovoríme o časovačov, každý z vás, ktorí sa hodiny na vašom počítači alebo digitálne hodinky, to je nekonečnej slučky. Naďalej aktualizovať čas, pretože je to stále kontrola a kontrola a kontrola má čas zmeniť, a ak áno, oh, môj bože. Hodiny sa konečne zmenila. Treba zobraziť túto hodnotu pre vás. Takže vzhľadom k tomu, väčšinu času nekonečné slučky sú chybou, alebo aspoň zlú dizajnu rozhodnutia, inokedy majú svoju hodnotu. Dobre, poďme postúpiť ďalej tu hello7. Takže teraz bude program trochu viac interaktívne. Dovoľte mi, aby som priblížite tú, a znovu, to je to, čo je pekné o Scratch. A budeme používať to, aby bolo jasno, Scratch, práve dnes a do budúci týždeň je problém nastaviť. Ale v pondelok, sme sa ponoriť do C. V tomto programe tu, to robí, navždy, nasledujúce. AK dotyku myši - teraz, kto je súvislosti tu? No, a všimnite si, že kto je vybraný tu dole právo je mačka, sprite, takže sú tieto skripty, tento Program, platí pre neho konkrétne. Takže ak tá mačka sa dotýka myši, potom to bude hrať túto dole a počkajte dve sekundy, a opakujte najmenších podrobností. Tak poďme do toho a hit hru. Nič sa nestane, ale ak chcem maznať cat teraz, môžem len. [Meow] DAVID Malan: Rozkošný. [Meow] DAVID Malan: Dobre, menej obťažujúce, ale aj zmatnie, tak poďme ďalej a uvidíme, či nemôžeme aplikovať trochu viac logiky. To bolo napríklad sedem. Tu v príklade osem, budeme zaviesť ELSE podmienku. Toľko ako doslovný rázcestí, v ktorom môžete ísť vľavo alebo môžete ísť rovno, stav v programovaní jazyk ako Scratch, alebo ako uvidíme C, vám umožní ísť v jednom smere alebo iný cez If Else konštrukcie. Takže doslova, AK dotýkať myši, táto bude hrať nejaký zvuk, ELSE, že to bude hrať ten druhý zvuk, mňau. Teraz, ak môžete odvodiť z názvu týchto zvukov, môžete asi tušíte, čo tento program je určený pre vykúzliť myšlienka. Táto mačka je meowing šťastne. [Meow] DAVID Malan: Našťastie, ale nie je Celkom sa mi páči, aby sa dotkol. [Reve] DAVID Malan: Takže teraz máme mačku, ktorá bude kričať na teba. Dobre, dobre, posledný príklad s mačkami tu, a Poďme otvorená verzia deväť tu. Takže teraz máme ďalšie Najotravnejšia zvuk, že som mohol nájsť, takže máme mroža alebo mrože tu, kto bude vykonajte nasledujúce. [SEAL kôra] DAVID Malan: Dobre, takže to bude pokračovať, kým sa prísť na to, ako tento program funguje. Takže tentoraz, to zviera má dva skripty, a to, čo je Zaujímavé je, že tieto skripty budú vykonávať paralelne. Tak preto, že obaja začať s jedným zelené vlajky na neho kliknete, je to ako ísť takto, a oba programy rozbehnú ju raz, aj keď sú to slučky navždy. Takže v hornej skriptu, mám nejakú logiku. Aké funkcie, ktoré poskytujú tam? [SEAL kôra] PUBLIKUM: [Nepočuteľné] DAVID Malan: Ak je to, čo? [SEAL kôra] PUBLIKUM: Ak stlmený na nulu, bude to hrať ďalej zvuk. [SEAL kôra] DAVID Malan: Dobre, dobre. Takže ak tlmené, čo to je, to oranžová vec je nulová, POTOM hrať mrože zvuk a že "Oh, ahoj, "po dobu dvoch sekúnd. Teraz, ja neviem, čo je stlmený, ale nulové vyvoláva Myšlienka false alebo vypnúť. Takže ak stlmený je nepravdivé, tak pokiaľ nie je vypnutý, udržať prehrávanie zvuku. Dobre, dobre, ako sme sa zakázať túto vec? No, poďme sa pozrieť na druhom skript tam dole. Druhý skript hovorí nastavená stlmený na nulu. Všimnite si, že je to tiež oranžová, takže to, čo robí, je to Scratch farby bloky v rovnakom odtieni, ak je to niečo logicky súvisí. Takže rovnako ako tlmené až hore bola oranžová, tak je stlmený tu je uvedené v oranžovej bloku. Ale to je len variabilné úlohy, takže rovnako ako v algebra, máte X a Y a Z, v programovaní máte premenné, ale oni sú všeobecne - Vráťme sa na chvíľu zastaviť a postava ako k zastaveniu tohto štekanie. Ako to mám urobiť? [SEAL kôra] DAVID Malan: Dobre. Prestalo to. Dobre. Takže rovnako ako v algebre máte premennej x, y, a z, ale v programovanie, ktoré majú premenné, ako x, y, a z všeobecne odsudzovaný, pretože to nie je vôbec výrazný. Nemajú sémantický význam vôbec, tak vo väčšine programovacie jazyky, môžu premenné majú plné plnohodnotné mená alebo slová alebo frázy, stlmený rád, povedať čo robia. Takže toto Druhý skript tiež počúval navždy, a povedal Ak kľúč, klávesnica kľúč Space, je lisované, otáznik. Takže tam je to stav s logický výraz, ktorý je bude odpovedať na otázku, ako pravdivo, alebo false, potom som do nej, že si miesto stlačení tlačidla A AK stlmený je nula, nastavte stlmený na jednu, ELSE nastaviť stlmený na nulu. Takže ten druhý rázcestí, a všimnite si, ako som sa vnorené dve, ak podmienky, je spôsob kontroly je Space Bar stlačení, pretože ak áno, som buď chcem ísť túto tak či onak. A ako mám obrátiť hodnotu stlmený? Musím zistiť, je to nula? Ak áno, je to jedna, inak aby bolo nula až teda prepínať jeho dva stavy. Dobre, takže máme potom niektoré z týchto základných konštrukty. Máme booleovských výrazov, a uvedomiť si, taky, sú nie je všetko, že neznáme. V skutočnosti, tu je rýchly screenshot samozrejme Harvard je CS50 nákupné nástroj, a všetky webové stránky, ktoré tam má zaškrtávacie políčka a pokles zostrelí naozaj, celú tú dobu, boli pomocou Booleovské výrazy. V tomto prípade tu, ak kliknete na zaškrtávacie políčko vedľa Predmet väčšie alebo rovné 4,5, alebo rovnaký vedľa fakulty, ste s uvedením logický výraz. Ukáž mi kurzy, pre ktoré tento výraz je pravdivý. Alebo doprava, nie je v rozpore s kurzami prečo som pričom, ak je to, potom áno, chcete skontrolovať táto podmienka, inak budete chcieť ignorovať. Takže Booleovské výrazy sú trochu všade okolo, ale keď dáme ich do podmienok, nech ak to podmienky, AK Elses, alebo dokonca môžeme simulovať hlbšie úrovniach, pokiaľ ELSE If Else - tak to je niečo ako ternárnu stave. Môžete ísť tadiaľ alebo tento spôsob, alebo tento spôsob. Môžeme si ponechať hniezdenia veci ísť rôznymi smermi. Tak Scratch má tieto slučky, ako Forever. To má tieto funkcie, ako je Repeat 10, niektoré konečný počet, koľkokrát chcete. Máme schopnosť teraz nastaviť premenné, takže v tomto prípade sa Ja som vyhlásil, napríklad premennú s názvom ponožky. Som inicializované na 0, a to je ďalší smer mohli sme zobrať tu s Jozefom, čím som možno len sledovať, koľko ponožky mám na a ukončiť program pri tejto premennej je hodnota 2. To by bol iný spôsob, ako radiť z zovšeobecňovať, že problém a robiť niečo znovu a znovu. No, poďme ďalej a teraz predstavuje pár nových vecí. Takže tí z vás s predchádzajúcim programovanie skúseností bude viem, že mnoho jazykov má pole, alebo vektorov alebo zoznamy, a naozaj, Scratch má niečo také taky. Tak uvidíme, či sa nám podarí nebrať veci na ďalšiu úroveň tu. Ak budem mať možnosť, teraz s týmito puzzle kúsky na pridať niečo, ako slovo alebo číslo, do premennej, môžem začať hromadiť veci. A to je vlastne celkom apropos pre veci, ako sú hry, hry na hrdinov, kde ste druh chodí niektoré fantasy svet zbieranie vecí, vyzdvihnutie veci, zbierať body, alebo podobne. Možno budete chcieť sledovať nejakého druhu zásob, a naozaj, že to, čo jeden z našich bývalých študentov tu robil s niečo, čo nazýva Fruitcraft RPG. Tak nechaj ma ísť napred a otvoriť túto vec tu, a vo Fruitcraft, máme tento svet sa na vrchole. Tak nechaj ma ísť napred a kliknite na zelenú vlajkou. Oznámenie vľavo hore je nejaký druh zásob. To je realizovaný v Scratch ako to, čo budeme hovoriť poľa alebo zoznamu, a teraz máme túto malú animáciu. Takže rovnako ako sme začali skôr s týmto príbehom cookie lásky, a potom sme postúpili k mačiek a tuleňov, teraz môžeme mať veci, ktoré sú ešte viac interaktívne. A tento malý modrý chlapec, môžem začať pohybovať jeho málo domov tu. Takže to vyzerá, že má k výjazdu sem, takže som pomocou sa šípkami, hore, dole, vľavo, vpravo. A teraz som mimo, tak nech je to, čo som sa sem dostal. Vyzerá to ako pomaranč, a naozaj, akonáhle som sa dotknúť oranžová, dostane sa zvalil do svojho inventára. Keď idem sem na čerešne, teraz mám niečo iný v mojom inventári. A to je pekné a roztomilé, ale premýšľať o tom, ako teraz, to je realizovaný. No, máme tento pojem v zozname, a to je zrejme skladačky, že stačí povedať, čo chcete pridať na to, pridať oranžová, pridajte čerešne. A teraz, čo je to malý modrý chlap robí? No, on je to škriatok. A pravdepodobne, oranžovej a čerešne - oni sami boli oddelené škriatkov. A pomocou podmienok v logických výrazov, Študent bol pravdepodobne schopný vyjadriť AK modrej chlap je dotýkajú čerešne Potom pridajte slovo čerešne na jeho zásob, a potom tiež skryť čerešňový sprite. Takže pod kapotou, tam pravdepodobne ešte je čerešňa sprite tam. Práve sme povedali, aby sa stal skutočne neviditeľný. Teraz, keď som ísť ďalej tu, môžeme vykonať aj proximálnej vec, kde by som mohol ísť a čítať znamenia. Takže ak blue chlap dotýka znamenie, môžeme mať to hovorí blok rovnako ako mačka k nám prehovoril v slovách, ahoj, predtým, "Got niektoré druhy ovocia? Prineste ho na ovocie miesto. "Dobre, takže teraz, zdá sa, Mám inštrukcie. Môžem ísť sem na ovocie miesto, zarovnajte aby som sa s dverami. Teraz som tu. Môžem ísť až k mužovi na prepážke. On zistí, že som sa k nemu, tak to nemusí byť docela rovnako dojemné, a ja som vyhral hru. Tak tu to máme Fruitcraft RPG. Takže môžeme robiť veci ešte pokročilejšie, než toto. Môžeme pridať zvuky. Môžeme pridať pseudo náhodnosť. Môžeme pridať zložitosť. Nechaj ma ísť napred tu, a skôr než robiť to sám, dovoľte mi, aby som vám ukázať jeden z viac sofistikovaných podania sme v minulom roku z určitého niekoho menom Blake. Môžeme mať jedného dobrovoľníka, ktorý je pohodlný objaviť na fotoaparát a je pre hranie hier? Ako asi tu? Poď hore. Dobre, takže hra, ktorá ste práve nevedomky dobrovoľne hrať - [APPLAUSE] DAVID Malan: - je niečo, čo z dávnych čias tzv "Frogger." Aké je vaše meno? Renda: Renda. DAVID Malan: radný? Renda: Je to ako Brenda s b. DAVID Malan: Dobre, Renda. David. Rád Vás vidím. Takže tu v "Frogger", a ak by sme mohli zvýšiť objem len trochu, ste tento malý zelená žaba na dne. Môžete použiť vľavo, vpravo, hore a dole, a vaším cieľom je, aby cez ulicu, cez rieku, a kliknite na ľalie podložky v hornej časti. Aw. One More t - redo, dobre? Poďme hit stop. Nikto nevidel, že. [APPLAUSE] [APPLAUSE] DAVID Malan: Jo. Veľmi dobre. Skvelé, ďakujem. Tak, že došlo Frogger. Teraz, keď viete, čo ste dostal sami do, ešte jeden dobrovoľník pre rôzne Hra nám iným študentom. Ak chcete ísť hore? Ako sa voláte? RICHARD: Richard. DAVID Malan: Richard. Dobre, Richard, poď hore. [APPLAUSE] DAVID Malan: Máte niečo, čo bude znieť oboznámení čoskoro, takže tu sú vaše inštrukcie. Takže vo chvíli, niektoré dieliky budú posúvať nahor na obrazovke, ktorá vyzerajú buď vľavo alebo vpravo hore alebo dolu. Budeš musieť zasiahnuť šípkou takým spôsobom, že zodpovedá týmto dielikov čakajúcich s zástupné symboly v hornej. Takže keď vidíte šípka vľavo, a to linky s ľavou arrow, udrel na šípku doľava. Môžete začať. [MUSIC - "silnejší" Kayne West] DAVID Malan: Dobre, veľký potlesk pre Richarda. [APPLAUSE] DAVID Malan: Veľmi dobrá práca. Ďakujem. [APPLAUSE] DAVID Malan: Tak zábavné a, zdanlivo, druh zastrašujúce ako by mohla byť na realizáciu niečo ako zdanlivo sofistikované ako to, uvedomiť si, že študent neboli stanovené a len písať to všetko naraz. Skôr, môžete rozobrať problém ako zdanlivo zložité pretože to v oveľa menšie kúsky, a to je tiež bude témou. Najhoršia vec, ktorú môžete urobiť pri písaní programu vo väčšine akejkoľvek jazyk je, aby sa posadili, sa naozaj vzrušená, napíšte Celá tá prekliata vec, a potom už len dúfať, že to funguje Čas, ktorý sa dokončenie písanie. Skôr by proces plánovania všeobecne byť veľmi úmyselné, veľmi iteratívny, kedy stačí nastaviť veľmi malé kroky pre seba, bite-size kúsky chceš odhryznúť, a tak, že máte tieto zdravý rozum kontroly, malé míľniky môžete stretnúť. A potom budete stavať na vrchole tých vytvoriť viac sofistikované veci stále. Tak napríklad, ako by sme ísť o , Ktorým sa vykonáva hru ako je tento? No, úprimne povedané, určite by som začať tým, že práve podporuje jedno tlačidlo naraz. Povedzme, implementovať podporu pre ľavé šípky. Takže študent mal nejako vytvoriť v Photoshope, alebo v Scratch sa pomocou malej grafický editor, k arrow kľúč, ktorý vyzerá ako ten hore vľavo, len tam sivý zástupný symbol. Potom študent mal zistiť, čo sa x, y koordinovať dať, kam to dať v okne. 0, 0 je tu, takže budete musieť prísť na rad pixelov, alebo bodky, na vyrovnanie ten šíp z v hornej časti obrazovky. A potom ešte raz, že je v mieste, váš program nie je v skutočnosti robiť niečo ešte, takže potom je potrebné druhý sprite, pre inštancie zelená šípka, ktorá je tiež ukazujúce vľavo, a vy potom je potrebné začať písať nejaké skripty pre neho. A ste si všimli, možno, že tieto veci začali prichádzať na pri rôznych rýchlostiach, a farby boli v rôznych miesta, a to preto, že sa študent používa trochu pseudo náhodnosť. A tým pseudo náhodnosti, som len povedať, vybrať číslo medzi niečím a niečo, pretože môžete začať mape veci, ako keď číslo je medzi jedným a päť, dobre, poďme sa vec zelené. Ak je to medzi 6 a 10, poďme sa na kúsok skladačky červená miesto. Tak dlho, ako máte spôsob generovania nejaký náhodnosť, môžete potom urobiť rozhodnutie na základe toho náhodnosť. A ja si hovoria pseudo náhodný, pretože tam je trochu špinavé tajomstvo. Počítače nemôže prísť s náhodnými číslami. Môžu robiť len to, čo sa im povie, pretože sú umelé zariadenia. Nemôžu len hádať číslo ako my, ľudia, pocit, že môžeme. Počítač musí niečo urobiť matematický vykúzliť ilúzie matematické čísla, niekedy používať aktuálny deň času ako vstup do zisťuje, čo Číslo vrátiť, ale o tom až inokedy. Pre túto chvíľu, len viem, že môžeme vytvoriť pseudo náhodnosť. Takže akonáhle som tú možnosť pre ľavé šípky pre spustenie objaviť v rôznych časoch a na rôznych rýchlostiach, a potom Môžem sa vrátiť a pridať niektoré z nich, ak podmienky. Ak tento sprite sa dotýka druhú a ľavá šípka bolo stlačené tlačidlo - takže tri podmienky uvedené v tomto prípade. Môžem použiť, že a blokovať možná, v tomto prípade - Potom chcem ísť ďalej a zvyšovať skóre. A hore, máme skóre, máme Awesome, Cool, Good, a Boo. Takže tam to vraj piatich premenných, ktoré tento študent slúži na sledovanie týchto rôznych metrík. Takže v skratke, konečný výsledok je úžasný. Je to zábava, je to zábava hrať, je to pútavé, ale to nie je kde študent začal. On alebo ona začala pri oveľa menšej sadu krokov. Takže aké sú niektoré ďalšie stavebné bloky, ktoré môžeme väzba do týchto programov? No, tam je to iné poňatie vo väčšine jazykov, Stieracie medzi nimi, známy ako závity. Takže počítač vlastne nie je naozaj viac vecí na Doba, aspoň nie obvykle. Skôr, počítač má zvyčajne len jeden procesor, a dokonca aj aj keď počítače sú veľmi rýchle a môže preto, vytvoriť ilúziu robiť viac vecí naraz - kontrola pošty, ako sa okamžite správa, tlač dokumentu - Naozaj, počítač je len skákanie z tlače až IMing na odosielanie e-mailov, späť a späť a tam a späť tak rýchlo, že sme pomalé nechápavý ľudia jednoducho neuvedomujú, že je to vlastne beží Tieto programy trochu v čase. Teraz, to trochu biele ležať v týchto dňoch, pretože v dnešnej dobe, mnoho našich počítačov je to, čo sa nazýva multi-core, takže majú jeden procesor, ale viac jadier, čo je niečo ako s viacerými procesormi. A tak niekedy, môžu počítače skutočne robiť viac vecí v čase, ale všeobecne v rámci programu, programy spoliehajú na tieto veci zvanej vlákna. Takže vlákno je niečo ako miniatúrne programu, ktoré môžu existujú vedľa iného miniatúrne programu a môže spustiť paralelne, alebo aspoň môže bežať v ilúzii, že že beží súčasne. Tak Scratch podporuje tieto veci zvanej vlákna. Môžete mať viac skriptov vykonávajúci naraz, rovnako ako my urobil sa levom mora, a to nám umožňuje skutočne potom interakcie medzi týmito škriatkov. Nechaj ma ísť napred sem a vytiahnuť, povedzme, vlákna, a hrať to nasledujúcim spôsobom. Máme dva prízraky, z ktorých každý uvidíme má len jeden scenár. A zistíte, že sa zdá byť nejaký inteligencie mačka v tejto jednej, pretože on je stále bližšie - [Reve] DAVID Malan: - a bližšie k vtáčika. Tak, ako je vták lieta? No, poďme sa pozrieť na vtáka ako prvý. Vták skript povedal po kliknutí zelená vlajka, choďte do adresára X rovná zápornej 115 a y sa rovná 150. Tak som prišiel na to, náhodné miesto, kde som chcel vták začať, a ja len zvalil ho tam v predvolenom nastavení. Potom Forever AK nedotýkajú mačku, tak to je iná druh konštrukcie cyklu, ale rovnaký nápad, urobiť to znova a znovu a znovu. Tak dlho, ako ste sa nedotýka mačku, presuňte tri kroky, a ak ste na hrane, odraziť, kde je to trochu odraz v zmysle biliard. Tak to je, ako sa vták pohybuje druhu zdanlivo náhodne, ale je to len preto, že je to so odrazil steny v tomto prípade. Teraz mačka, medzitým, je tak trochu podvádzanie. Mačka sa, keď používateľ klikne na zelené vlajky, áno, začína v určité miesto, náhodné umiestnenie - aspoň čiastočne podľa pick náhodné zelená blok tam - a potom Forever KEĎ dotyku vtáka, hrať lev zvuk, a potom sa zastaví skript. Takže keď som povedal ukončiť, alebo ukončiť skôr, tam je puzzle kus Scratch, že bude len tak zabiť program sa na to bodu, pretože je to trochu logicky urobiť. Ale inak, tu, všimnite si, čo sa bude diať. Bod k vtáka a o krok. Takže tento bod k vták je tak trochu výhodu mačky má v tom, že je to navádzací v na pohyblivú vtáka, a môžeme Teraz, aby tento program all zaujímavejšie. Miesto presunutie o jeden krok v čase, za cyklus procesora, za štrajk mýto na zvončeku, aby som tak povedal, nechaj ma ísť napred a pohybovať, povedzme, päť krokov naraz ako mačka. Kliknite na tlačidlo Spustiť, a teraz naozaj ho nájde rýchlo. Ak by sme zdvojnásobiť to ďalej 10 krokov, je trochu ide právo na neho. Teraz môžeme dať vtáka, možno, trochu výhodu. Poďme na vtáka a povedal miesto pohybu tri kroky, poďme ho 30 krokov. Ale stále bol chytený na konci. Takže tu máme dve vlákna. Je uväznený v Scratch s dvoma skripty a dva škriatkovia, ale myšlienka v iných jazykoch je to, že môžete napísať, v podstate, príliš veľa programov, ako je tento, a majú je beh skutočne, alebo pomyselne, paralelne. Teraz, tam je aj tento koncept v programovaní známy ako udalosti, a to je niečo, čo sme sa nevideli v C, sa jazyk známy ako C. Uvidíme ju na konci semestra programovanie pre web, kedy sme predstavili JavaScript a Pojem stránok stavebných webových ktoré sú dynamické a vzájomne s používateľmi. Takže v tomto prípade je nutné veľmi jednoduchý príklad dvoch škriatkovia, chlapec a dievča, z ktorých každý má svoje príslušné nite, ale nejako tieto dva sú vzájomne komunikovať prostredníctvom zo dňa niečo ako akcie. Tak nechaj ma ísť napred sem a priblížiť na chlapcovej skriptu, ktorá vyzerá takto. Keď zelená vlajka kliknutí navždy vykonajte nasledujúce. Ak kľúč Space, alebo Space Bar, je stlačené, hovoria Marco po dobu dvoch sekúnd, to je čisto estetického na obrazovke, trochu speech bubble, ale potom vysielať. Takže vysielanie je ďalší Scratch kus, ktorý je zástupca triedy funkčnosti v programovaní , Ktorý umožňuje rôzne programy, rôzne nite, pochovať-komunikovať, nejako poslať správy, jeden pre druhého. Odovzdávanie kus papiera v triede je niečo ako nízka tech ekvivalentné. Takže vysielať udalosť. Môžem poslať túto správu, a slovo akcie je úplne ľubovoľné. Scratch niekedy má tieto vrhnutých zostrelí, tak som len prišiel s náhodným slovom, ako udalosť, pretože teraz, čo chlapec robí keď som stlačte tlačidlo je, že vysiela túto udalosť. A keď som sa pozrieť teraz na dievčaťa skriptu, jej skript je super jednoduché, pretože všetko, čo musí urobiť, je nemôže konať, ak zelená vlajka je kliknutie. Ona je navrhnutý tak, aby pri akcii, keď sa dostane citovať, unquote, "Akcia", a na tom mieste, ona počúva preto tzv udalosť znovu a znovu. Akonáhle sa dostane túto udalosť, si to bude kričať Polo po dobu dvoch sekúnd. A tak si môžete snáď vyvodiť z tohto presne to, čo ďalšie výsledok bude. Dovoľte mi, aby som kliknite na zelenú vlajkou. Nič sa nestane, pretože musím robiť čo? Divákov: Space Bar. DAVID Malan: Space Bar. Chlapec hovorí Marco, dievča hovorí Polo. Ale to nie je pevne dané samo o sebe. To je vzájomnej komunikácie medzi skripty, takže teraz majú schopnosť urobiť ešte zložitejšie programy, kde tieto dva sú tak nejako vzájomne komunikujúcich. Takže to, čo smermi môžeme vziať? No, problém súboru 0, naozaj, je cieľom bavte sa s Scratch. Pre hackera vydanie, budete namiesto toho baviť s viac sofistikovanejšie verzia Scratch tzv BYOB, Build Vaše vlastné bloky, ale myšlienka je rovnaká. Budete môcť - Áno, to bolo úmyselné. Prišlo to z Berkeley. BYOB je hacker vydania verzie, ale ako demografia, Standard Edition a Hacker vydanie podobný, cieľom pri ruke pre nadchádzajúci týždeň je naozaj len do toho ponoriť hlboká, dostať svoje špinavé ruky s programovaním, a aby niečo zaujímavé, aby sa niečo interaktívne, aby niečo umelecké, urobiť niečo zábavnejšie skutočne preukázať, takže do konca týždňa, budete mať projekt, nielen pre svoje prvé CS50 PSet, ale budete mať Niečo málo, že môžete predviesť v Annenberg na priatelia, alebo dokonca rodinné podľa nahrať na webové stránky MIT. A tak, ako som povedal v stredu očakávame 90% triedy, všeobecne, k tomu štandardnej edície. Uvedomte si, že je tu aj táto zásuvka pre tých z vás, ktorí by inak nájsť si trochu nudiť sa základy a naozaj chcete ponoriť a remeslá víziu ste už mať s predchádzajúcim pozadia v to viac priateľský prostredie. Dovoľte mi teda vytiahnuť jeden ďalší príklad, že jeden z náš bývalý Študenti tu urobil a povedať niečo málo cez piesne. , Ktorý podobne, ako to hrá, myslím, že o tom, ako ísť o vykonávaní tohto programu pomocou presne tie isté stavebné bloky, trochu pseudo náhodnosti, a trochu známe piesne. Ak by sme mohli zvýšiť objem len trochu? [MUSIC - "Prší muži" The Weather GIRLS] DAVID Malan: To je to pre CS50. Uvidíme sa v pondelok. [APPLAUSE]