[Videó lejátszás] [Autó ajtaját becsukta] [Autó motorja STARTING] [Zenelejátszási] -Moving Végig a keresési A jó idő és a jó hír. A jó barátok nem lehet elveszíteni. -Ez Is vált szokássá. -Opportunity Kopogtat Nézzük csak elérje és fogd meg. -Igen! Bevonásával készített fogjuk fülönfog meg. -Majd Rántás túra, busszal, vagy sárga taxit is. -Dammit. -We're Halad végig. -Footloose És a képzelet szabad. -Getting Van a móka fele. Gyere ossza meg velem. -We're Halad végig. -We're Fog megosztani a terhelést. -Mi Nem kell egy térképet hogy ez a show az úton. -Hé Fozzy, azt akarom, hogy forduljon balra ha jön egy villát az úton. -Igen Uram. Forduljon balra a villát az úton. Fordulj balra. -Nem Hiszem el. -Cruising Végig azt találtuk A fények az autópályán. -És Az utat, vagy az én utam. -Szóval Bízom a navigációt. -Movie Csillagok mutatós autók és az élet a fentről lefelé. -We're Megrohamozták a nagy hegyek. -Igen, Vihar igaza van. Amennyiben úgy havazik? Nem, azt nem hiszem. -Moving Végig. -Footloose És a képzelet szabad. -Ön Készen áll a nagy idő. -Van, Hogy készen áll nekem? -Moving Végig. Mozgó végig. Mozgó végig. Mozgó végig. -Azt Hiszem, jobb, ha húzza át. -Igen Uram. [Lejátszás vége] [Taps] David J. MALAN: Ez CS50. És ez a hét végén 0, de a kezdete egy csodálatos barátság. Annyira izgatott, hogy Itt a Yale Egyetemen A legelső alkalommal a mi barátom Scaz, és Jason, és Andy. Minden 40. CS50 a TF és a CA itt a Yale-en. És mindannyian. És valóban, ez talán ideje az alábbiakra: [Taps] Így, bár a legtöbb előadások akkor valóban Cambridge ebben az évben, A valóság az, hogy a design, és Nagyon tudatosan CS50, Azt gondolom, mi közeledik az a pont technológiailag és pedagógiailag, ahol ez lehet egy kiváló oktatási tapasztalat, hogy vegyenek részt valamilyen A tanfolyam anyaga az interneten. Valóban, a reality-- és ha úgy gondolom, ez philosophically--, hogy előadások nem egy különösen hatékony szállító eszköz meglehetősen összetett információkat. Természetesen több mint óra valamint a hosszú ível az idő. És valóban minden pár minutes-- Emlékszem, magam college-- Ön zónához ki egy pillanatra, Hiányzik néhány bonyolult téma, és elmész elég sok A következő 45 percben. És a valóság az, hogy vajon Ön itt New Haven, Cambridge vagy azon túl, az egyszerűség, amelynek A képesség, hogy szünet, és a gyors előre, visszatekerés, hivatkozás a kapcsolódó erőforrások, keresés teljes szöveg átirata és hasonlók egy olyan lehetőség, Merem állítani, hogy az online hallgatók jóval New Haven, kínál nekik lehetőséget hogy igazán megérteni a fogalmi anyag, hogy mi bevezetni az előadások annál jobb. De végül is a CS50, az A hallgatók tapasztalatokat jellemző igen, így sokkal több A tanfolyam probléma készletek, vagy heti programozási projektek, a Természetesen a szakaszok által vezetett oktatási fickók, az éjszakai munkaidőn által vezetett A tanfolyam asszisztensek és az oktatás fickók, és ilyen eseményeket CS50 Puzzle Nap, CS50 a Hack-a-Thon, a CS50 Fair, heti ebéd, és még sok minden más. És így, hogy te itt New Haven, vagy tuning messziről, ma Cambridge-ben, és találkozunk hamarosan újra, A valóság az, hogy ez egy és ugyanazon osztályba. És mi annyira izgatott, hogy itt minden együtt ma. És így a végén a félév, hogy itt vagy messziről, valamint remélhetőleg viselsz büszkén, boldogan, és talán egy kicsit megkönnyebbült, Az ing, hogy tanúskodik Önnek vette CS50. Szóval hol hagyjuk ki szerdán? Vettünk egy pillantást számítási gondolkodás. És ez az, amit mi desztillált felé számítástechnika vala, legalább átmenetileg. De mi desztillált hogy kicsit tovább Legalább három összetevő elemeket. Bemenetek, akkor mi a problémát próbálunk megoldani? Kimenetek, mi a válaszolni reméljük, hogy? És a képviselet is az. És nem fogunk lakni itt után a bináris, vagy akár ASCII, és mint oly sok, de inkább magától értetődőnek hogy tudjuk képviselni ezeket az információkat, mert az sokkal érdekesebb részeit E problémák nem csak a be- és kimenetek, de az algoritmusok hogy menjen be a fenti problémák orvoslásához. És lehet, hogy visszahívja a A minap, hogy mi vett egy meglehetősen hagyományos fogalma keres valakit egy meglehetősen nagy telefonkönyv, illetve általánosabban digitálisan ezekben a napokban, Csak egy nagyon nagy adathalmaz. Egy igazán nagy névjegyzékből, a Sok neveket abc sorrendben rendezett. És rájöttünk, hogy míg én lehetett megközelíteni ezt a problémát egyszerűen segítségével egy lineáris approach-- oldalról oldalra, vagy akár kettes egy time-- rájöttünk hogy az intuitív algorithm-- csak egyfajta osztódó és hódító A probléma újra és újra, és again-- megfelezve azt minden időben, adott nekünk ez a zöld eredményt. És ez így sokkal laposabb mivel ez azt sugallja hogy még mivel ez a probléma egyre nagyobb és nagyobb, mint ez a helyzet manapság adatokkal készletek és reality-- Facebook és a Google keresési eredmények és a általam elvártnál nem algoritmus végre ugyanolyan hatékonyan azokkal a nagyobb falatok mint annak idején még a kisebb falatok. Most felmerül a kérdés, hogy mi tudjuk ténylegesen megoldani hasonlóan ez a fajta intuíció? Ez a fajta megosztottság és hódító? Nos, tudnánk tenni valamit mint ez a mai itt. Vehettünk részvétel. Így talán mint 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11-- Nem lesz semmi, hogy hatékony. Szóval várj, általános iskolában. 2, 4, 6, 8, 10, 12, 14, 16, 18 és így tovább. De tehetünk egy kicsit jobban? Biztos vagyok benne, nem tudom Ehhez magam. Tehát ha lesz humor velünk most Egy pillanat, mi hozta velünk egy algoritmust, ami Most kaptam három lépést, de ez require-- ha Nem mind-- mindannyian felállni, ha úgy tetszik. Szóval, mindannyian most ott áll, lépésről az egyik ez az algoritmus a következő. Állj fel, és hozzá magát az 1-es szám. Tehát ezen a ponton az időben, szó ebben a teremben mindenki remélhetőleg a tanakodni azonban félszegen, az 1-es szám. Most a második lépésre az e algoritmus fog bevonni a következő. Második lépés, pár ki valaki állt, add meg a számokat össze, és elfogadja az összeget, amelyet az új számot. Gyors józanság csekket. Milyen számot mindenki gondol most? Tehát 2, kivéve talán az egyik, kínos, magányos ember. Ha páratlan számú Az ember a szobában. Tehát egy személy esetleg még Az 1-es szám, ez rendben van. De harmadik lépésre van, az egyik A le kellene ülnie. A másik, vissza kell térni lépéssel két, és ismételje meg, ha úgy tetszik. Tehát, ha még mindig áll, ha kell azok között, megy vissza a második lépésre. Ne állj meg. Néhány ember még mindig áll. Tehát, ha még mindig áll, párba valakit. Rendben, apadó le. Néhány ember még mindig áll. Segítek ha kell. Ne feledje, a legfontosabb elvihető itt, hogy hogyan sokkal gyorsabb ez nálam számít. Tehát lássuk. Én is segíteni. Tehát mi több van Még mindig gondol? Közönség: Én vagyok a 44. David J. MALAN: 44, így megy előre, és üljön le. Milyen számot gondol? Közönség: 74. David J. MALAN: 74. Rendben, megy előre, és üljön le. Ki más is áll? 86. És bárki másnak még áll? Mi a szám? Hallottam 67. És akkor a csúcsra? 32. Bárki más is álló és gondolt egy számot? Ó, szia. Bocsánat. Mindjárt visszajövök. 42. Bárki más? Közönség: 47. David J. MALAN: 47. Bárki másnak még áll aki nem számít? Így a végső szám az emberek egy szobában amely 497 ülőhely is-- amelyek mindegyikét a filled-- 390. Tehát ez nagyszerű. Hamarosan megvitatják az elképzelést, Egy hiba egy számítógépes program. De mi jön vissza, hogy nemsokára. De elméletben, mi lehet már most történt? Így, bár voltak három nagy lépéseket, hogy ez az algoritmus, minden egyes ilyen volt, csak ilyen egy nagy művelet. És ott volt ez a ciklikusság, hogy ez abban, ha még állt, Ön tovább folytatta lépéstől 3-2, lépésre 3-2, lépésről 3-2. De mi történik tartott minden bejárást? Minden ciklus erre a ciklusra? Mi történik másutt a szobában? Nem csak ugyanaz a dolog, de mi történik felében van? Leülni. És így ott fekszik ez a belátás, ugyanúgy, mint a telefonkönyv például annyiban, hogy ha a fele van ül le minden egyes alkalommal, a probléma kiindulási A talán 400 ember, majd a 200 főt, mint 100 ember, majd 50 fő, és így tovább. És így fúr-farag le elmélet, hogy csak egy ember, gondolt összértéke mindenkinek. Most valóságban bizonyos társadalmi dinamika, és néhány aritmetikai hibák járul hozzá ehhez a végső bug. De elméletben, míg én még mindig számít re, figyelembe több tucat lépések, vagy száz lépésre számolni magatoknak, hogy számít egy szobányi 500 vagy még több ember kellett volna sokkal kevesebb lépésben, mert csak akkor tudjuk osztani 500 és 1/2 oly sokszor. És így, mint a telefon foglalni például a minap, egyáltalán van valami logaritmikus hogy úgy mondjam, ahol, ha mindnyájan működő kórusban, és figyelmen kívül hagyva a Emellett a hibákat, tennénk elérték, hogy pontosan ez a fajta működési idő? Most, hogy tisztességes, egyfajta csalt, a hogy tőkeáttételes egy másik forrás. Mivel ez csak az egyik nekem, Én tőkeáttételes száz Önnek. De hogy lehet mondani, hogy egy Például a párhuzamos feldolgozás, vagy korszerű nagyon divatos ahol a számítógépek ezekben a napokban több CPU, vagy több technikailag, több több mag, és valóban nem több dolgot egyszerre, mint ahogy Az összes csinálunk ott, párhuzamosan. De emlékszem, hogy mi is volt szerdán volt megpróbálják elfogni ezt az intuíciót és intézményesíteni azt a kódot. Olyasmi, mint pszeudo-kódot. És valóban, és remélem, bocsáss meg, ez olyan, mint 80 fok van itt. Így fogok, hogy ezt le egy kicsit. Amit én azt hittem, hogy az átmenet nem Most, hogy egy alkalmazás, amellyel ismét részt a közönség, de írni egy programot angolul hasonló szintaxis, amellyel megoldja ezt a problémát itt. [Videó lejátszás] -Ez Mogyoróvaj zselés idő. Mogyoróvaj zselés idő. Mogyoróvaj zselés idő. Way ya! Way ya! Way ya! Way ya! Most már megy is! Nesze! Nesze! Nesze! Mogyoróvaj zselés! Mogyoróvaj zselés! Mogyoróvaj zselés! Mogyoróvaj zselés! Mogyoró, mogyoróvaj zselés! Mogyoróvaj zselés! Mogyoróvaj zselés egy baseball ütővel. [Lejátszás vége] David J. MALAN: --that videó, de ez egy kicsit addiktív, ha nem egy kicsit idegesítő. De hogy ezt, azt gondoltam, mit kellene tennie, hogy próbálja meg írni egy programot együtt, amelyekre szükségünk van három önkéntes. Van, hogy kényelmes A kamera és internet. Sam, gyere fel. Lila pólót, itt, gyere fel. És ide, hadd menjen egy kicsit hátrébb. Bíbor és kék ing, gyere fel. Tökéletes. Ugyan már. Gyere fel, gyere fel. És mi a neved? Erica. David, örülök, hogy találkoztunk. Ha azt szeretné, hogy ezt a helyet itt. Ez Sam. Mi a neved? Antonio. Antonio, örülök, hogy találkoztunk. Erica és Sam, ha azt szeretném, hogy a székhelye van. Mi jöttünk előállíthatunk mivel ezek a srácok fedezi fel, az összetevők, amelyek lehetővé tennék a mogyoróvajat és kocsonya szendvics. Most ez lehet valami, hogy szedése nagyon biztosra. De már adott minden a három önkéntesek here-- két önkéntesek és Sam itt, egy vekni kenyeret, egy tányér, kés, egy üveg lekvár, vagy lekvár, és egy üveg mogyoróvajat. És a cél kéznél most lesz e három hogy egy mogyoróvajas és zselés szendvicset. De mit fogunk csinálni az elvárható A audience-- hiszen mindannyian Biztosan tudom, hogyan kell csinálni ez olyan jól reality-- fogják, hogy minket A lépésről lépésre. Az ál-kódot, ha úgy tetszik. Így fogok játszani a szerepét írnok itt. És van egy kis to-do lista, és így minden van, egy olyan időpontban, kiált potenciális oktatási, én írd le, ismételje meg, ha szükséges. És akkor ti is megy, hogy a mogyoróvajat és kocsonya szendvics ha azt tesszük, amit mondanak. Tehát gondolom, ti is, számítógépek. Csak azt teheted, amit mondanak. Nem feltételezések, nem kérdés. Csak azt kell csinálni. Szóval, aki szeretné megkockáztatni az első utasítást arra, hogy egy PBJ szendvicset? Az erkélyen van. Közönség: Nyissa ki a táskát a kenyér. David J. MALAN: Nyissa meg a zacskó kenyeret, ha úgy tetszik. Tehát lássuk. Nézzük hajtogat, és kap egy kicsit pontosabb. Jó így kezdeni mégis. Második lépés, hogy valaki mást. Most senki nem akar önként. Második lépés, előtte. Közönség: Nyissa ki a belső zacskó kenyeret is. David J. MALAN: Nyissa meg a belső zsák kenyeret is. Remek, tanulás. Egy kicsit pontosabb. Essünk munkavégzés. Igen, a zöld inget. Közönség: [hallható] David J. MALAN: szelet kenyeret. Óvatosan távolítsa el két szelet kenyér. Az jó. Negyedik lépés, valaki más? Több mint itt, igaz? Közönség: [hallható] David J. MALAN: Place kenyér tányéron. Ötödik lépés? Ötödik lépés, igaz? Közönség: [hallható] David J. MALAN: A tetején of-- ó, kézzel. Helyezze kezét a tetején mogyoróvajat. Ez az, amit én fejét? Közönség: Igen, és csavarja le. David J. MALAN: és-- mondom még egyszer. Közönség: [hallható] David J. MALAN: És tegye a fedél mellett a mogyoróvajat. Könnyedén helyezze a kezét tetejére mogyoróvaj, és csavarja le, és tedd a fedél Közvetlenül a mogyoróvajat. OK, hatodik lépéssel. Hatodik lépés, hogy valaki mást. Igen? Közönség: [hallható] David J. MALAN: Mondd újra. Közönség: Ismételje meg az öt újra. David J. MALAN: És ismételje meg az öt újra, amely létre fog hozni Egy kis probléma Most ha mi ezt csináljuk lépésről lépésre. Tehát most megyünk vissza Ötödik lépés. Könnyedén helyezze a kezét tetejére mogyoróvaj és csavarja és tedd fedél mellett a mogyoróvajat. Ezután fogja meg a mogyoróvajat és ismételje meg az öt újra. Szóval majd felülbírálhatja, hogy végtelen ciklusba, ha úgy tetszik. Hét lépés, hogy valaki mást. Igen, vissza. Közönség: [hallható] David J. MALAN: --on tetején a többi. Közönség: [hallható] David J. MALAN: A Másrészt a másik tetejére. Szeretné csak jön ide? Hogyan befejezni az utasítást? Mi van a többi az utasítást? Közönség: Figyelmen kívül hagyva azt a részét. David J. MALAN: Figyelmen kívül hagyva azt a részét. Kezdjük újra. Hét lépés. Közönség: [hallható] David J. MALAN: Fogja meg a szembenálló hand-- ez jó. Ez tulajdonképpen jó. Közönség: [hallható] David J. MALAN: és műanyag jar-- Közönség: [hallható] David J. MALAN: És twist-- Közönség: [hallható] David J. MALAN: két másodpercig. Csak nyisd ki a mogyoróvajat jar. Remélem, megbocsát. Tehát tegyük fel, mi van ott. Nyissa meg a mogyoróvajat jar. [Taps] David J. MALAN: Nyolcadik lépés, menjünk. Nyolcadik lépés, igen, vissza. Közönség: [hallható] David J. MALAN: Jó. Kilencedik lépés, igaz? Közönség: [hallható] David J. MALAN: --out a A mogyoróvaj jar. És-- és mit? Közönség: [hallható] David J. MALAN: És tedd kés vissza mogyoróvaj. Tizedik lépés. Tizedik lépés. Közönség: [hallható] David J. MALAN: Tedd a kést ki, majd távolítsa el a pecsétet. Szép. Ki a mogyoróvajat. Rendben, a 11. lépésben. Közönség: [hallható] David J. MALAN: OK, szürke számítógép kövesse kék vagy piros számítógépet. Jó. [Taps] David J. MALAN: Vigyél haza. Pár lépés. Mi a következő lépés? Lépések 12. 12. lépés. Igen? Közönség: Tedd egyik szelet kenyeret óvatosan egyik kezed. David J. MALAN: Az egyik kezedben. És akkor, 13. lépésre. Igen? Közönség: [hallható] David J. MALAN: --on szelet kenyeret. Jó. Egész jó. 14. lépés, igen. Közönség: Oldja a 13. lépésben. David J. MALAN: Undo 13. lépésben. Menjünk tovább a kocsonya. Ez egy 100 lépés program, de mi volt a 15. lépést. Igen. Közönség: [hallható] David J. MALAN: 7-től 13-használó A zselé, mert azok olyan jól ment. Ismételje meg a lépéseket 7-től 13, felhasználva a zselé. Tehát megragadni az alsó fele zselés tégely egy kézzel a tetejére. Másrészt a más vezető, figyelmen kívül hagyva azt a részét, megragadni az ellentétes kéz, a fedél és a műanyag tégely az alján, és csavarja két másodpercig. Aztán megnyitja a zselés üveget. És végül, nézzük meg, hogy nekünk valamit ehető. 16. lépés. Szóval miért nem hagyja ott. Nagyon szépen köszönöm, hogy a három önkéntes. [Taps] Van egy kis CS50 stressz labda az Ön számára. Azt akartam, hogy egy szendvics de-- akkor mi volt az a pont, azon túl, amelynek kis szórakozás az algoritmus? De a valóság az, hogy még ha programot írsz egy számítógépet, meg kell, hogy szuper pontos. Bonyolult vagy megfélemlítő mint a saját számítógépén nagyon jól lehet az Ön számára, a Legalább, ha valami elromlik, A valóság ez egy elég hülye eszköz, amely találták ki számunkra, emberek, és csak ezt a részét, amit mi do-- néha biztosan faster-- de nem tudom, hogyan hogy a feltételezések. Nem tudom, hogyan lehet a ugyanazon a hullámhosszon, mint te. Ez csak akkor nem pontosan mit mond rá. És akkor meg kell találni, Talán, ahogy elkezdünk írásban tényleges kódot a első probléma készletek és azon túl, milyen egyszerű az, hogy feltételezés, mint egy emberi, és nem előre azt kell kezelni Ilyen esetben, vagy a sarokban esetben, hogy úgy mondjam, hogy könnyen lehet, merülnek fel, ha például Sam az egyetlen összenyomható üveg lekvár, míg mindenki más volt néhány üvegedények, mint is. Szóval mielőtt fordítsuk figyelmet néhány tényleges kódot, engedje meg, hogy bemutassam a Természetesen feje van a Yale-en. Barátaink Scaz, Andy, és Jason, hogy jöjjön fel, és köszönjön. [Taps] SCAZ: Elvesztettük Jason átmenetileg. Hi ismét mindenkit. A nevem Scaz. Én tanítok a Yale 2001 óta. És ha én nem tanítás, Kutatásaim robotika és a mesterséges intelligencia. És a bejelentést, hogy én ma van, hogy az indítást egy pár hétig, mi lesz így néhány kiegészítő anyag CS50 beszélni mintegy intelligencia szoftver. Fogunk beszélni, hogyan helyeken, mint a Netflix és a Hulu tud ajánlani filmeket, amelyek érdemes nézni. Hol fogunk beszélni, hogyan vezető nélküli autók ténylegesen dolgoznak. És képesek leszünk a földhöz ezeket a dolgokat a fogalmak hogy tanulunk Ebben az osztályban ma. Mert az összes ilyen dolgok épül azonos alapítvány. És ez az, amit ez a sorozat fogja vizsgálni. Úgyhogy tényleg keres száma még tovább közületek minden, és meg fogsz eljutni még több mindannyiunktól nagyon hamar. Hadd majd be Jason. Jason: Üdv mindenkinek. A nevem Jason. Én sajnos elment Harvard, mint egy egyetemista. Ez lesz kap vágott ki a tényleges patak. És most itt vagyok, mint egy tanár a A Számítástudományi Tanszék. És Segítek futni során A Scaz, Dávid és Andy. Andy: Hé srácok. A nevem Andy. Én valóban az egyetlen Yale hallgató a színpadon most. [Taps] Én vagyok a Berkeley College, eredetileg a Solon, Ohio. És én voltam az egyik ezek közül a gyerekek hol, mikor jöttem Yale, Tényleg azt hittem, hogy én soha meg kell nézni számos soha többé. Aztán rájöttem, hogy szükség a tudományt és a QR-hitelek diplomás. És így a gólya tavasszal vettem egy osztály, egy CS, intro CS osztály itt a Yale. Olyan voltam, mint ez, mint valójában nagyon klassz. És amíg én valójában végül nyilvánításáról mint globális ügyek jelentős, a készségek Megtanultam a CS és a programozás Annyira alkalmazható bármely területen úgy dönt, hogy nem. És a személyzet itt a Yale-en, mi már annyira keményen dolgozik hogy felkészüljenek a srácok. És várom, hogy lássam minden szakaszában, és munkaidőben. Szóval igen. [Taps] David J. MALAN: Köszönöm. Tehát csak óra előtt kezdődött, lehetőség nyílt járni az egyetemen egy mobiltelefon, és vegye Néhány selfies videó formájában valóban Az első túra Yale egyetemen itt. És így azt hittük volna megosztani egy durva vágott pontosan ezt Scaz és Andy és Jason elvitt az egyetemen. [Videó lejátszás] [SIRENS] -David. -Üdvözlő A Yale-re. -Jó látni téged. -Nice Látni. -Használható Megyünk a turné? -Let A bejárni. -Road Túra. -Ez Jele volt ott egy darabig. -Whah, CS50. -Hurry! Menj, menj, menj, menj. Meg kellene [hallhatatlan] Harkness Tower. -És Láttuk, hogy egy-két alkalommal. [Taps] Nézze el a bringát! Ahh! Hi Frank. -Mi van skacok? -Hogy Vagy? -Jó látni téged. -Üdvözlő A videót. Ne viselkedjen túl izgatott. -Én Szeretem Silliman. Ahh! -Ez Volt körülbelül három óra óta Jason volt fagylalt és Nutella. Tehát van, hogy hagyja abba vissza Silliman egy kicsit. -Ez Nem is [hallhatatlan] Mégis, csak az a tény, abban, hogy ez itt annyira csodálatos. Haver, van Nutella minden étkezés. -Van Volt tavaly is. -Igen. -Mondd sokat Yale eddig. De én most, hogy TD ott. És ez tekinthető off campus. -Itt Van gótikus építészet. Világhírű. Van még pár gótikus építészet. És az építőipar, valamint Több gótikus építészet. Szia. Ez az, ahol vagyunk, amelynek munkaidőn Kedden keresztül csütörtökön a Roxfortban, a [hallható]. -Minden rendben. Ennyi a túra. Mi vagyunk a Yale Egyetem Law School, ahol mai előadás hamarosan sor kerül. Menjünk az. [Lejátszás vége] David J. MALAN: És amely elvezet minket itt. Szóval eddig, ezt már összpontosítva pszeudokódja, ami az angol-szerű szintaxis. Ez nincs előírt specifikáció. Ez csak akkor használ valamilyen intuitív nyelvi, ha akarom magyarázni, mit szeretne csinálni. De kezdjük most átmenet a kódot, mint a legtöbb ember azt mondaná. De pontosabban valami néven forráskódot. Ez az a nyelv, amit az emberek levelet, hogy a számítógépek ultimately-- esetleg miután néhány száma steps-- végül megérti úgy, hogy tudja, hogyan kell csinálni valamit. Hogy láttál egy pillantást ez talán szerdán. Ez egy példa arra, hogy hihetetlen, underwhelming futtatva egyszerűen azt mondja: "hello world." És ez nyelven íródott úgynevezett C, ami szintaktikailag nagyon hasonló hogy egy csomó más nyelveken hogy talán nem is tudja, de lehet, hogy már hallott, mint a Java, és C ++, Python, Ruby, és hasonlók, és valóban, akkor sokat költeni a félévben a C, majd a vége felé a félév, ezekre épülő, és vezet be Számos más nyelveken. Közülük PHP, JavaScript és, adatbázis nyelv úgynevezett SQL. De C, mi kénytelenek leszünk ennek az alulról felfelé megértése Az, hogy pontosan hogyan számítógépek munkát, mit lehet csinálni velük, és hogyan lehet megoldani a problémákat még hatékonyabban által ezen rétegződés, hogy megbeszéltük Szerdán, és álló a vállán mások. De még az, hogy jönni. Ma megnézzük egyszerűbb környezetben, de alapvetően azonos környezetben ismert Scratch barátaink a MIT Media Lab. Ez egy grafikus programozási nyelv, Scratch, ahol akkor húzza és dobja a dolgokat, hogy néznek ki, mint a puzzle darabokat, Csak retesz, ha azt teszi, logikai vagy programszerű értelemben erre. De ez meg fog teszi számunkra, hogy Van egy beszélgetés minden az azonos programozási fundamentumok, hogy néhányan közületek Lehet tudni már, hogy Talán sokan nem tudni semmit anélkül, hogy megreked őszintén, A szellemileg érdektelen szintaxis a pontosvessző, és zárójelben, és idézi, és a hasonlók. Mindez, a korai tovább, a figyelemelterelés milyen érdekes és valóban hasznos ötleteket. Szóval vessünk egy gyors pillantás a környezetet Itt, úgy, hogy tudod, mi vár. És valóban, többek között a játékok mi játszhat néhány program írásos a CS50 saját egykori diákok. Egyikük, magam, én leszek ez írt doktori iskola számomra. Ha tudtam venni egy önkéntes aki hajlandó játszani a játék az első alkalommal. Persze. Gyere fel. Mi a neved? Közönség: Angela. David J. MALAN: Angela, gyere fel. Tehát Scratch már ki egy pár évig. És amikor én egyetemre, Én voltam a határokon regisztrált az MIT- figyelembe tanár Mitchel Resnick a Természetesen az oktatási technológiák. És mi voltunk az elsők között a diákok a világ, hogy valóban béta teszt Scratch. És a projekt, amit Angela most kegyesen felajánlotta, a játék az úgynevezett Oscartime. Így fogok menni előre, és Kattintson duplán az ikonra itt. Meg fog nyitni egy programozási környezetet, hogy hamarosan belevetik magukat. Megyek teljes képernyős azt Angela, itt. Megyek, hogy elérje a zöld Lobogó, csak egy pillanatra. És akkor egy csomó szemetet fog esni az égből. És te fogsz használni az egeret ide ténylegesen fogd és vidd A szemetet Oscar kukák. Tehát ha azt szeretnénk, hogy menjen előre és kattintson a zöld zászlót, a játék kezdődik. [Zenelejátszási] Ó, én szeretem a szemetet. Bármi piszkos vagy piszkos vagy poros. Bármi rongyos vagy rothadt, vagy rozsdás. Igen, szeretem a szemetet. Ha szeretné látni valami ócska, nézd meg ezt. Van itt egy cipő ez rongyos és kopott. Ez mind tele van lyukakkal rendelkezik és a csipkék dúlnak. Egy ajándék anyámtól A születésem napján. Szeretem, mert it's-- David J. MALAN: --green ezekben a napokban csak eldobott mindent a szemétbe. És akkor mi van az egyik CS50 saját személyzete did-- Jordan, aki lehet, hogy megfeleljen today-- ténylegesen Frissített ez a mai időkben. És ezért engedje meg, hogy nyissa meg egy remix helyett Angela. És fogunk játszani ezt helyette az Néhány pillanat, ahol most te vagy kell majd eldönteni, hogy az e dobni valamit a szemétbe, vagy hasznosítsa újra, vagy komposztot is. Szóval van egy kis nyomás rajtad, hogy ennek láttára a 392 497 osztálytársai itt a teremben, ha úgy tetszik. [Videó lejátszás] [Zenelejátszási] -Ó Szeretem szemetet. Bármi piszkos vagy piszkos vagy poros. Bármi rongyos vagy rothadt vagy rozsdás. Igen, szeretem a szemetet. Ha szeretné látni valami ócska, nézd meg ezt. Van itt egy cipő ez rongyos és kopott. Ez mind tele van lyukakkal és a csipkék dúlnak. Egy ajándék anyámtól A születésem napján. Szeretem, mert ez szemetet. Ó, én szeretem a szemetet. Bármi piszkos, vagy kopott, vagy poros. Bármi rongyos vagy rothadt vagy rozsdás. Igen, szeretem a szemetet. Itt van még néhány rohadt dolog. Van itt néhány newspaper-- [Lejátszás vége] David J. MALAN: --are ténylegesen komposztálható. De köszönöm, hogy mi önkéntes, Angela. Van egy stressz labda Önnek itt is. Szóval köszönöm. Tehát ez az egyik írta nekem. De most egy-egy aktuális egykori diák aki végre ezt, ami egy játék. Minden ezen a nyelven hívják Scratch, hogy hamarosan húzza vissza a rétegek. De ha azt az általam elvártnál, hogyan egy másik önkéntes? Jobb. Gyere fel. Mi a neved? Pillantásra? Lance. Lance, gyere fel. Örvendek. Ugyan ezen a módon. Tehát ez lehet, hogy egy Téma ismerős néhányan. De látni fogod azt is, hogy nem lehet az interaktivitás, amely akkor már valóban a szerepe a karakter körül mozog. Örvendek. David. Adok neked, Pikachu. Utasítások találhatóak hogy jöjjön a képernyőn. De a rövid, fogsz akar fogni a finom dolgokat, és ne a bombákat és egyéb dolgok. A kurzorok teljesen. Tehát nyomja meg a szóköz. -Pikachu. David J. MALAN: Catch A cucc a bal oldalon, nem fogható a cucc jobb. [Zenelejátszási] Tehát az egyik utolsó itt. Ha lehetne egy Több önkéntes itt. Azt hittük, valami újra from-- a sárga shirt-- szerdától. Mi a neved? Mary, gyere fel Mary. És emlékszem szerdán bevezettük fogalmának bináris és bináris izzók. Ez tulajdonképpen most egy végrehajtása, amely ugyanazt a felületet hogy mi volt az iPad a fény izzók, de itt digitálisan nyújtott. És ahelyett, hogy csinál egy stressz ball-- örülök, hogy találkoztunk, David. Hoztunk egy pár könnyű Az izzók a Cambridge-ben. Ha teheti, kattintson azoknak izzók kapcsolja őket be és ki, jön a bináris képviselete mondják 256. És látni fogod a közepén, a jelenlegi számát. Tehát, hogy az ember tovább. Tehát a bal szélső bit be van kapcsolva. Mary: Igen, [hallhatatlan] David J. MALAN: Nos, így már csak-- ó. Szóval ez a 128 oszlop. Úgyhogy akár 128. Van, hogy a 256. És tudod bütykölni a és ki, nem nagy ügy. Vagy akkor nyomja meg, hogy 128 Több alkalommal, ha akarod. Rendben, jó. 24. Igen, egyre közelebb. Közelebb! Ó, mi a probléma akkor? Szóval mi a probléma? Szóval mit is kell megoldani ezt a problémát? Tehát szükségünk van egy másik kicsit. És ez teljesen ésszerű a valóságban, igaz? Ha azt szeretnénk, hogy számít a száma 1-2, hogy 3-4, hogy 5, 6, 7, 8, 9 hogy valóban felborulása 10, te Szükségünk lesz egy további bit. Úgyhogy tulajdonképpen visszatekerés itt, és jön with--, hogy nyilvánvalóan célja, hogy egy létre. Ezt nem teheted 256 csak egy izzót. Szóval mi a helyzet egyszerűen száma 50? Száma 50. Kitűnő. Egy nagy tapssal Mary és övé is. Köszönöm. Tehát ez topic-- szándékosság hogy was-- valóban megismétlődik. A legnagyobb érték, amennyire képviseli a nyolc bit, vagy egy bájt, valóban 256. De nem, ha elkezd számítva 0, mint mi Úgy tűnik, hogy csinálom azzal, az összes ilyen bitet ki. De most nézzük belevetik magukat a mögöttes végrehajtása ebben a környezetben, és támadd eltekintve néhány ilyen ötleteket. Így egy pillanat alatt vagyunk arról, hogy egy Néhány különböző programozási alapjait. Amelyek közül az első hívjuk nyilatkozatot. Rendezés igék, ha úgy tetszik. Intézkedéseket. Amik kellene tenni. És egy pillanat alatt látni fogod blokkok, hogy néz ki. Mondja, hogy "hello world" például. Vagy várj egy percet. Vagy hangot lejátszani miau. És valóban a környezet amely fogunk csinálni ezt nevezzük Scratch. És ha én húzza fel Scratch nélkül előfeszítő tényleges kódot, vessünk egy gyors pillantást a felhasználói felület, hogy úgy mondjam. A kezelőszervek, amelyekkel kapcsolatba kerülünk. A tetején hagyott itt a képernyőn, a menüsor alatt, mi van a színpadon, hogy úgy mondjam. Szóval Scratch mi hívjuk Sprite. Ez egy karaktert. És ő is vezérelhető írásban programok ellene. És ő képes lesz arra, hogy felfelé és lefelé és a bal és a jobb ebben a környezetben, nem csak azáltal, hogy a egér, de programból. Elmondhatom neki járni, séta balra, fel, le, vagy a hasonlók. És én is be más sprite vagy karakterek is. Valóban, az alján itt van, ahol meglátod, hogy a fenti sprite. Abban a pillanatban, én csak azt egy, de tudok még több, és akkor jelenik meg, pontosan ott. Tehát, ha visszalép egy pillanatra, mint a Oscartime-- például Oscar, a bal oldalon, a szemetet lehet, egy sprite. És a dolog, a közepén, a újrahasznosítás bin, volt egy másik szellemet. És a komposzt egy másik szellemet. És minden darab szemetet, vagy újrahasznosítható amit alá az égből is egy Sprite, amelyek mindegyike ben egyedileg programozható. Hogyan programozza? Nos, itt a jobb oldalon oldalon van a szkriptek területen. És ez az, ahol csak lehet drag and drop puzzle-darabokat. Egy héten belül ez lesz ahol azzal egyenértékű kódot írni több a billentyűzet, de az ma ez lesz a húzással puzzle-darabokat, a paletta, melyek mind Itt található kellős közepén. Valóban, a közepén Itt van egy csomó kategóriák puzzle darabok vagy blokkok. Az ember összefügg a mozgás, nézd, hang, egy tollat ​​megy fel és le, adatokat, eseményeket irányítani. Nem egészen biztos még mi mindezen jelenti, de látni fogod, hogy ők már már szépen kategorizálva. És, hogy írjon egy programot Scratch, csináljuk, hogy pontosan. Megyek, hogy elindul alatt Események, és húzza ezt itt. Amikor zöld zászló kattintott. Most miért, hogy egy? Nos emlékeztetnek arra, hogy önkénteseink feljött, az első dolog, amit vagy mert nem volt kattintson a zöld zászló a jobb felső sarokban. És ez csak azt jelenti, a program elindításához. Tehát amikor az esemény bekövetkezik, mit akarok csinálni? Én megyek alatti néz ki, és én fogom csinálni "köszönni." És fogok ezen változtatni, és mond valamit, mint "hello Yale." És most megyek a nagyításhoz ki, kattintson a zöld zászlót, és íme, én írtam egy programot. Ez még nem minden, hogy izgalmas csak még, de ez Pontosan itt minden azoknak szerző kezdődött, mind Pikachu, és a bináris izzók, és Oscartime, és sok más példát. Elindítja szuper egyszerű, és majd elkezdi a réteg, és adjunk hozzá a szolgáltatásokat és funkciókat. Szóval mik ezek a rétegek fog állnak? Nos, túl nyilatkozatok, mi is Van dolog, hogy kicsit több fancily nevű Logikai kifejezések, miután valaki elemzi Bool. És a logikai kifejezés egyszerűen egy kifejezése ez igaz vagy hamis, igen vagy nem, 1 vagy 0. Bármilyen poláris ellentétek ilyesmi. Ez akár igaz, akár nem. De mi is lesz látni is, hogy így fog kinézni. Így például az egér le? Ők egyfajta kérdéseket, ha úgy tetszik. Az egér vagy lefelé, igaz, vagy nem, hamis. 1 vagy 0, ha úgy tetszik, bizonyul a leképezés. Igaz az, 1, false 0. Hát mi van kevesebb, mint ez? Vagy igen, ez kevesebb, mint ez? Ezt a kérdést a fajta. És ha tesz két számok vannak, vagy x lesz kisebb, mint y, vagy egyenlő y, vagy nagyobb, mint Y, de ez a blokk látni fogjuk, csak fog válaszolni a kérdésre, ez kevesebb, mint a? Talán azt is látni ilyet. Megható egérmutatókat. Tehát a semmiből, akkor kérjen A szóban forgó, a Sprite megható az egérmutatót? Más szóval, a kurzor lebeg több mint a kupakot, vagy az azzal egyenértékű? Meglátjuk Anding dolgokat együtt. Kérheti két kérdést, és győződjön meg arról, hogy mind a ketten Önnek igen vagy valós válaszokat előtt a döntést, hogy tegyen valamit. De akkor hogyan döntenek? Nos, van ezeknek a feltételeknek. És láttuk ezt a mi Például a telefonkönyvben. Keresi, hogy a bal vagy igaz, Mike Smith. És abban az állapotban, akkor tenni valamit, potenciálisan, ha a logikai kifejezés igaz. És valóban, észre az alakzatok most. Van ez a helykitöltő most a mennyezeten, ahol tudunk fit-- ha visszatekerés egy slide--, hogy alakja. Ez nem egészen azonos méretű. És valóban, látni fogod, hogy Scratch átméretezi a dolgok dinamikusan hogy illeszkedjen a puzzle darabkái, de a alakja az, ami fontos. Ez a dolog úgy néz ki, mint a hogy, sőt ez nagyjából azonos alakú hogy illeszkednie kell ott. És ha tenni akarunk valamit Így vagy úgy, ha különben, itt van ez a kirakós darab Scratch is. Most tegyük fel, hogy szeretett volna teendő, ha más, ha van, vagy máshol. Más szavakkal, egy háromutas útelágazáshoz. Hát mit lehet tenni Csak pillantva ez? Tudom hogy ez a puzzle-darab, és ez úgy tűnik, nem illik, de a lényeg, Scratch megy újraméretezéséhez szépen a számunkra. Tudtam kezdeni a réteg ezeket a dolgokat együtt. Tehát most van egy hármas teleszkópot, ha ez igaz, erre a célra. Különben, ha ez a másik dolog igaz, erre kell menni, különben megy ez másként. És a Muppet Movie, a útelágazáshoz, hogy úgy mondjam, között a Yale vagy a Stanford, az volt Pontosan, hogy csak két feltétel. Vagy erre kell menni, különben menj arra. Nos, hurkokkal is léteznek programozás. És mi már használta ezeket már osztály és a pszeudokódja kódot, és biztosan azokban Scratch programok örökre. Scratch van ez a puzzle-darabot, hogy akkor csak hagyja, hogy tegyen valamit örökre. És néha szeretne tenni valamit örökre. Ez nem feltétlenül egy hiba, ez mert szeretne egy órát tartani fog, vagy játékot, hogy folyamatosan játszani. Vagy megadható véges számú lépések, mint ez az ismétlődés blokk van, ami meg fogja ismételni valamit 10 alkalommal. Mi lehet állítani változókat, azt hamarosan látni. És változók, hasonló szellemiségben az algebra, mint x vagy y, vagy z. Ez valami olyasmi, szimbolikus, hogy képes tárolni néhány érték, néhány darab információk, hogy érdemes emlékezni később. A legjobb példa erre talán Egy játék, ahol van egy pont, mint Batman. Hány darab torta és miegymás kaptad? Nos, lehet, hogy egy változó nevű kottát, hogy 0-nál kezdődik. Ezután minden alkalommal, mi fogott egy szelet tortát vagy cukorkát, vagy hasonló, ez lesz növekszik. Ez lesz hozzá egyesével. És így egy változó tárolja a darab információk, mint ezt. Aztán ott van tömbök, és mi jön vissza ezeket egy-két hét alkalommal, de egy sor olyan, mint egy leltár vagy a tarisznya, benne amelyek akkor tegye virtuális dolgokat. Ez lehetővé teszi, hogy tárolja több mint egy darab információ. És ami hasznos lehet Ha a játék, akkor egyfajta járkálni felvette a dolgokat. És talán meg akarja tartani az összes ilyen darab torta körül, és nem csak enni sorban egymás után. És akkor ott van egy galambász konstrukciót fogunk jönnek a függvények vagy eljárások. És bár megyünk gyorsabb Itt fogunk láthatjuk, hogy ezek nagyon Természetes megoldás a problémákra hogy fogunk találkozás. Ahogy a programok indításához egyre nagyobb fogunk elkezd észre minták A kód, amit írsz, A puzzle darabkái vagyunk húzással. És amint azt veszi észre magát csinál valamit újra és újra, vagy ami még rosszabb másolás és beillesztés programozási kódot, amit írtam, ez talán egy lehetőséget tényező ki amit folyamatosan másolás és beillesztés, és megvalósítják azt valami úgynevezett "funkciót." De inkább azok sokkal További részletek hamarosan. És akkor ott van még cifrább jellemzői. Azoknak, kényelmesebb, vagy vesz APCS vagy azzal egyenértékű, Scratch valóban támogatja a dolgok mint a téma és a rendezvény és több. Így észre, hogy van egy meglehetősen nagy belmagasságú, bár ez is nagyon nagyjából hozzáférhető emberek akik még soha nem programozott előtt. Tehát valóban, vessünk egy pillantást egy egyszerű program, vagy kettő. Már megnéztük, hogyan is Lehet, hogy köszönjön a Scratch. Hadd menjen előre, és nyit egy kicsit érdekes programot hogy én írtam korábban. És ez az ember nevű Pet Cat. Mindezek a programok lesznek elérhető a CS50 honlapján. Sőt, már ott van. Szóval lehet letölteni őket, és játszani velük, és a probléma Set 0, ami Az is a pályán honlapján, Azt tanácsoljuk, hogy séta ezeket. Sőt, van egy Számos átjáró videók Online amelyben az I. és CS50 csapata valóban járni keresztül minden egyes ilyen példák sokkal lassabb ütemben, egy nagyon gyors, továbbítható, vagy újratekercselhető ütemben, így járni ezeken a szabadidő is. Tehát itt Scratch a bal oldalon. Itt egy program, a megfelelő hogy én már előre elkészített. Szóval hadd ráközelít ezt. És tudna valaki angolul, tudván, amit tudsz, csak ezentúl, mint hogy hogyan Scratch alkotások, egyfajta mondják egy angol szöveget vagy kifejezést, mit jelent ez a program nyilvánvalóan nem? Ja, narancssárga póló. Közönség: [hallható] David J. MALAN: Igen, ha a kurzor Scratch a macska, játszanak nyávog hang. De vegyük észre, hogy kifejezzük, hogy. Van látszólag egy hurok van, örökre. És akkor ott van egy állapotban, az if kifejezés. És együttesen, mit azoknak jelent? Ez azt jelenti, ezt a programot csak mindig fut, és ez csak mindig vár és nézni és hallgatni nekem mozgatni a képre az egeret a macska. Mivel minden egyes alkalommal, amikor erre, hiszen javasolni, hogy fog csinálni. Hadd kezdjem a program. Semmi sem úgy tűnik, hogy történik, de vegyük észre, hogy kiemelve jelenik most egy sárga vonalat. Ez csak azt jelenti, ami futtatja. És mert van egy örökké hurok, még mindig fut. Szóval hadd mozgatni a kurzort Scratch. [MEOW] [miau] És ha mozgok le, [MEOW] most megáll, de a program még mindig fut. [MEOW] És így, imádnivaló. [MEOW] Úgyhogy nyit valamivel fejlettebb Például az úgynevezett Ne Pet Cat. És most lássuk, mi itt történik. [MEOW] nyávog. Szóval ez egy kicsit automata pilóta, ha úgy tetszik. --pet a macska. Csodálkozom, miért. [Ebből] [miau] Szóval hogyan működik? Nos, akkor milyen okból rajta keresztül ösztönösen, talán. De nézzük meg a tényleges kódot. Tehát ismét, amikor a zöld zászlót kattintanak, ezt örökké. Mit akarsz csinálni örökre? Nos, ha megható egér mutatót, majd játszani Egy hang, ami látszólag hívják Oroszlán 5, hogy van benne ez a projekt, mást hanghibára miau, és majd várjon két másodpercet, így hogy ez nem nyávog szüntelenül. Sőt, akkor nagyon gyorsan elkezd hogy bosszantsa magát, és a szobatársak. Nézzük ezt a tiltást feloldani. És észre, mi szép a Scratch. A dolgok csak ilyen húzás és vidd és retesz. Tehát ismét növekszik a töltse, amit akarsz. De ha leveszem ezt, majd hit játék, [SZÁMÍTÓGÉPES Blip SOUND] --it ez a fajta megbotlik is, mert ez szó csinál, amit mondok. Ez mondván örökre játszani ezt a hangot, de Nem adom neki még egy esélyt, hogy befejezze. És ez lenne a hiba. És ezért kellett ezt a dolgot itt és most. Úgyhogy valóban indul scratch-- egyfajta szójáték enyhén intended-- amelyben most már a macska mozog. Így fogok tenni ennek a repülni. Megyek a nagyításhoz itt, csak hogy érts kezdődött események. És zöld zászló kattintott. És van más módja elindítani a szkriptet. Megyünk, hogy ez egyszerű itt. És most megyek előre, és menj ellenőrzés alatt. És ismét, ha elfelejti, ahol dolgok, csak kattints körül, és végül megtalálja őket újra. Szóval azt akarom, hogy örökre mit csináljon? Szeretném használni a mozgás blokk hogy tudom létezik, mozogni 10 lépésben. Nézzük, mi történik itt, ha játszani ezt a játékot. Szerencsére ez nem túl messzire megy. Még mindig egyfajta megragadja a farkát, és húzza őt vissza. De a program még mindig fut, úgyhogy egyfajta harci nekem. De ez lenne a fajta szép, ha azt feltételesen javítani az kódját. Mert ez nem-- valójában ez tényleg Nem egy jó játék, hogy bárki bármely életkorban. Úgyhogy próbáljuk kijavítani ezt amelyek valamilyen feltételeket. Így fogok menni az Kontroll, majd ha. Szeretem ezt az elképzelést. Tehát költözés után 10 lépésben, if-- hadd érzékeli, hol vagyok. Én megyek alatti érzékelés, és akkor úgy néz ki tudok menni itt. sorban a formát mérkőzést. Nem a méret, de ez nőni fog betölteni. És most ez egy kicsit menüt. És most képre pointer-- én nem szeretnénk az egér, azt akarom szélén. Tehát Scratch elég okos ahhoz, hogy tudja, ha egy sprite hozzáér a szélén. Mit akarok neki, hogy valójában? Hadd menjen előre, és változtatni a mozgás. Tudod mit? Megyek, hogy neki megfordulni. Tehát a 15 fok nem Tényleg segít nekem. Azt akarom, hogy megforduljon és menj a másik irányba. Nézzük, mi történik Itt, ha elütöttem Játssz most. OK, elég hülyén néz ki, de csinál pontosan mit mondtam. És ez forog az egész sprite. Most kiderül, tudom kijavítani ezt. És én nem tudom, hogyan erősít ez az első. Valahogy meg kellett futz körül, és lásd a legjobb módja ennek. De ha elmegyek az alábbiakra: lássuk, mozgás. Ó, ezt találtam. Igazából Set Rotation stílus. Balra, jobbra, vagy nem forgatni, vagy bárhol. És kiderül, hogy az, amit akarok. És azt fogom tenni ez nem az én hurok, mert nem kell beállítania A forgatás stílusú többször. Megyek tedd a legtetején ez a program olyan, hogy lesz-készüléket, majd emlékszik. És most én is megpróbálom ezt újra. Hadd állítsa le a programot. És most, hogy fix, hogy bug. Úgyhogy iteratív javítása erre. A program kapok egy kicsit bonyolultabb és nagyobb, de én csak apró lépésekben hogy úgy mondjam, és a kis harap ki a probléma kap ez jobb és jobb. De ez is, az ilyen béna. Tudod mit? Kérném, hogy valaki egy igazán jó, rettenetes hangon, mint hogy jöjjön fel? Valaki egy hang. Uh, igen. Gyere fel. A zöld inget. Így kiderül, van néhány egyéb szórakoztató dolgokat, az esztétika és a hangok egyaránt. Itt a miau. Én kattintson a Hangok fülre. [MEOW] Ott a miau. [MEOW] [miau] [MEOW] --actually rekordot valamit saját itt. Tehát lássuk, hogy pontosan. Ahelyett, hogy a ez a macska hang, nézzük megy előre itt, és mi a neved? Nick, örülök, hogy találkoztunk. Ez David. Tehát egy pillanatra, megyek hogy elérje a Record gombot. És ha tudsz, csak kiabálni a laptop, "jaj", mintha te besétált a falon, hogy lesz nagy népszerűségnek örvend. 1, 2. Nick: Jaj! David J. MALAN: Félelmetes. És most lehet, hogy egy kicsit szerkesztési itt. Fog megszabadulni a csendes részeket. És azt hiszem, hogy ez jó. Köszönöm szépen. NICK: Pleasure. David J. MALAN: Nekem Csak átnevezte "jaj" de most megyek menj vissza a szkripteket. És nyilatkozat valóban létezik hang itt. És én megyek előre, és játszani a hang jaj, és én fogom csinálni, hogy ha megható csak a széleinél. És akkor fogok van ez megforduljon. Nézzük, mi történik itt. Menjünk teljes képernyőn. [Videó lejátszás] -Ouch! Jaj! Jaj! Jaj! Jaj! Jaj! Jaj! Jaj! [Lejátszás vége] David J. MALAN: Szóval rájössz hogy mi a sorstól egy kicsit szerencsés. Megyek, hogy neki a lépés mint 100 lépés egy időben. Amelynek hatása most folyik hogy be-- [SZÁMÍTÓGÉPES Glitch SOUND] Tehát ésszerűség határain belül. Tehát a lehetőséget, hogy finomítani, hogy tovább, ha igazán akarjuk. Így most nézzük be egy másik fogalom. Ahhoz, hogy hadd menjen be egy úgynevezett Counting Sheep és használata valamit nevű változó. Ez egy aranyos kis birka, és Megváltoztattam a jelmezét, hogy úgy mondjam. Így aztán, bár az alapértelmezett egy macska, akkor feltöltheti, akkor dolgozzon, teheti száma karakter a sprite. Itt egy program, ami csinálja azt, amit angolul? Ennek alapján ismét csak, mit tud teremteni. Mi ez a program nem? Igen, ez fog számítani. Az egyik szám egy időben. Van láthatóan Van ez a készlet számláló. Nem tudom, mi ez, de talán ez a változó. Ez csak egy konténert, X vagy Y. De a szó számláló több ismertetők, mint matematikus X vagy Y. Így tudjuk használni angol szavakat dolgokat. Örökre, csak azt jelenti, ezt tovább csinálni. Say ellen. Most hol került ez ide? Nos, kiderült, hogy számláló egy változó. Tehát ez csak egy puzzle darab hoztam létre előre. És bár ez megtörténik nem lehet azonos alakú itt, általában akkor azt mondanám, valami, mint a Hello itt. Ön is húzhatja a változó úgy, hogy ez az, amit Szerezzünk mondta. Aztán várni a második, én megváltoztatni a számláló egy, megnő ez egy hozzáadásával. Ahhoz, hogy a nettó hatás Ez imádnivaló bárányokat számolnia. Bár ő számolja magát. Most már nagyon gyorsan lesz, hogy unalmas mert ő fog Ehhez valóban örökre, de hogy pontosan mi az program kialakítása előír. Lehetővé teszi, hogy most próbálja egy másik példa hogy kihasználja a változó. Ez egy úgynevezett Hi Hi Hi, hogy nem kap bosszantó gyorsan. Most ez egy két forgatókönyvön. És így megint mi csak apró lépésekben. Azzal kezdtük, hogy valami szuper kicsi, adunk hozzá, hozzá. Most azt akarom, hogy tegyen valamit még dinamikusabb, ezért szeretnék hallgatni a két különböző dolog egyszerre. Tehát a bal oldalon, ha zöld zászló kattint, Én meg egy változót, hogy én írtam előzetesen nevezett Némítva. És én önkényesen állítsa 0-ra. Tehát Scratch nem igaz és hamis, de ez már a 0 és 1. Szóval lehet közelíteni, hogy ugyanezt a gondolatot. És akkor örökre, ha a szóköz van préselt, majd állítsa be a változót 0. Vagy sajnálom. Ha a Space gombot, és ha némítva, a változó értéke 0, majd állítsa némítva 1, mást állítani tompa 0. Úgy tűnik, ez a fajta, mint mi vagyunk csak csinál majd visszavonja a munka. De mi a hatása? Minden alkalommal, amikor megüt a szóköz, mi történik az én változó nevű némítva, logikusan? Valahogy úgy lesz tükrözött. Ez megváltoztatja 0-1, vagy 1-0. Tehát volt egy pár háztömbnyire kifejezni, de az összes Csinálok változni fog az állam Ez a változó 0 vagy 1, vagy 0, vagy 1 Minden alkalommal, amikor megüt a szóköz. Most itt, mi ez csinál? Örökre, ha némítva 0, így ha elnémul hamis. Tehát ha ez nem némítva, a szemantika ott játszani hang oroszlánfóka, és gondolom Hi Hi Hi két másodperc, várjon két másodpercet. Tehát észre most ezek szkriptek hatékonyan fog futni párhuzamosan, hogy lehet hallgatni egy akció, a másik dönteni alapul, hogy lépéseket. És meg tudja csinálni ezt örökre. [Oroszlánfóka BARKING] [Oroszlánfóka BARKING] Ez lesz ezt örökké, és [Oroszlánfóka BARKING], mint amit most tett. És most még fut De én már "tompa" a játék. [Oroszlánfóka BARKING] És ez Mindezek srác csinál most is. Nyissunk egy másik példát itt. Hadd menjen be Események, és most ez aranyos is. De észre két sprite. Tehát nem csak két szkriptek Egy sprite, hanem két sprite. És ha rákattintok a kék fickó, mint én Már látom, hogy egy program- itt, hogy a szó szoros értelmében csak azt mondja, Ennek amikor kapok egy esemény, azt mondják, "Polo" két másodpercig. Tehát, ha valaha is játszott a medence, a játék Marco Polo, ha a narancssárga srác szkript bármilyen jelzés, látszólag minden alkalommal, amikor megüt a szóköz, mi a narancs srác fog csinálni? Azt fogja mondani: "Marco." És akkor ez egy új blokkot. Már nem láttam ilyet, de sugárzott egy eseményt. És Nevezhetném rendezvény, amit csak akarunk. Vissza fogunk térni erre Talán nemsokára. De műsorszóró esemény egy út, egy sprite beszélni a másikba lényegében halad, hogy egy üzenetet. Ez nem egy üzenetet látod. Ez nem olyasmi, vizuális. Ez a fajta, egy számítógépes üzenet hogy a másik srác figyel az. Mert valóban, a kék fickó, visszahívás Nincsenek ha zöld zászló kattintott. Ő ehelyett, ha kapok egy eseményt. Mikor lesz átadta ezt a megjegyzést az osztályban, hogy úgy mondjam, azt kellene mondania: "Polo". És így a nettó hatása az, hogy mikor megüt a zöld zászlót, nem történik semmi. De mikor nyomja meg a szóköz, mondja "Marco" ő válaszol "Polo". De az egyetlen kobold vagyok kölcsönhatásban van a narancssárga az egyik. Tehát ez az egyik módja a fajta elhaladó üzenetek között sprite és miután őket kommunikálni egymással. Most nézzük meg egy utolsó Itt senki nevű téma. És észre ezt játszotta. Tehát ez a két sprite. A madár fajta repülő körül. Ő pattogó. Nincs "jaj", de ugyanezt a gondolatot. De a macska úgy tűnik, elég okos. Mi a macska látszólag csinál? És várni rá. Mi a macska látszólag csinál? Ez nem csak pattogó. Ő követi a madarat. És így úgy tűnik, van rá mód, kombinációjával blokkok here-- és nézzük meg a macska igazi böjt. Örökre, ha megérinti madár, majd játszani A hang Lion 4, bármi is legyen az. Hallottuk, hogy egyszer. Egyébként pont felé, madár, és egy lépéssel. Most az a tény, hogy ez az egyik lépés az, ami a madár egy kis előnyt kezdetben, de ha ehelyett hogy ez a 10, például, így hogy minden iterációs hurok ő mozgó 10 lépés alatt. Így több hely. Lássuk, mi történik majd. [Oroszlán ordít] Nem minden sokkal jobb. Tehát most próbáljuk javítani ezekre egy kicsit iteratív, és vissza kell térni fogalmát függvényében. És valóban az egyik alapvető takeaways a kivitelezésben. Nem csak írásban programok működnek és hogy a helyes, de jól tervezték. És a design sokkal szubjektívebb, és akkor jobban rá idővel. De vessünk néhány baba lépéseket kezdve egy program, amely működik, teljesen, de ez nem túl jó. Ez nem túl jól megírt. Tehát itt egy programot, ami erre. Köhögés, köhögés, köhögés. Mit jelent a program néz ki? Úgy néz ki, a helyes nekem. Ez mondván kanapén egy másodpercig, majd megvárja. Aztán azt mondja, hogy újra, majd megvárja. Aztán azt mondja, hogy újra, majd megvárja. És akkor a program kimondatlanul vége, mert nincs hurok. De miért van ez egy rosszul megírt program? Még ha soha nem programozott előtt? Mint, mi dörzsöli a rossz út, talán itt? Igen? Közönség: [hallható] David J. MALAN: Pontosan. Te ismétlődő magát újra és újra. És szó szerint, azt a vágólapra másolni két ilyen blokkok újra és újra. És pontosan ez a józansággal ellenőrizze, hogy meg kell, hogy. Várj egy percet. Ha tényleg ezt csinálnom? Szóval, mi ez, mi a kézenfekvő megoldás talán? Van valamiféle hurok. És én nem egészen visszahívás mi a puzzle darab, de ha megnézem a következő iteráció itt, Valóban, ott nem Csak az örök hurok, van ismételje néhány hányszor. És így adtam meg három. És most észre, hogy sokkal szorosabb, hogyan sokkal tömörebb ez a program. És bizonyos értelemben, hogyan sokkal karbantartható. Ha meg akarom változtatni a szót re köhögés, hogy valami mást, mint achoo, mintha tüsszögés. Aztán változtatni az egyik helye, és nem három. Szóval ez már olyan, mint valamivel jobb design. Hadd helyett nyílt köhögés 2, mi harmadik példa. Figyeljük meg, mint egy számítógép tudós, Elkezdek számítva 0, tipikusan. Most ez úgy néz ki, egy kicsit rémisztőbb meg az első, de a hatás ugyanaz. Köhögés, köhögés, köhögés. De mi úgy tűnik, hogy alapvetően Új felső része a programnak? Már eltávolították a döntést. Már eltávolították a várakozást. És mit értem dugva helyett? A funkció. A köhögés blokk. Hogy őszinte legyek, úgy tűnik, egyfajta egy idióta, ha nem teszem, csak kezdeni a blokk ami látszólag hívják "köhögés", ha csak ennyit akarok vele csinálni. De ez nem létezik Scratch. Inkább elmentem az egyik a paletta nevezett több blokk van, és én húzza ezt nagy lila dolog Itt ez lehetővé teszi számomra egy függvény definiálása. Lényegében lehetővé teszi számomra létre a saját puzzle darab, hogy lehet nevezni, amit csak szeretné, hogy lehet csinálni, amit akarok, de ez ad neki egy nevet. Ez ad nekem egy új, lila puzzle-darab hogy most megtesz mindent mondom, hogy nem. Tehát ez a lila darabot itt felel meg, ez az egyik itt. És mit csinál? Azt mondja, köhögés egy másodpercig, majd megvárja. És most valami teremtett saját egyéni puzzle-darab, úgy, hogy úgy viselkedik, Pontosan, hogy ugyanúgy. Így tudom tartani ezt. És valóban, ott lesz több és több lehetőséget modularizálást, és a réteg, komplexitás a tetején egy másik. De ez alapötlet, valóban problémát mondta 0. Mit fogsz vitatható tennie, letölteni Scratch, vagy csak használja azt az interneten, és csak szórakozik vele. Adunk egy sor követelmények, amelyek egy hangot, és néhány számát puzzle-darabokat. De akkor pontosan ezt. És rájössz, hogy meg fogsz szeretne venni egy baba lépéseket kezdetben, amíg a program megkapja több és bonyolultabb. De figyelembe véve ez a legjobb módja tudnám csinálni? Kerülhetem el ezt az ösztönt talán, hogy másolja be? De mielőtt Probléma Set 0, és mielőtt tárgyalunk, hittük, hogy az egyik Több önkéntes ha tudnánk, A végleges programot Ez talán a leginkább illeszkedő egyáltalán, mivel a mai helyszín. Gyere le. Igen. Igen. Mi a neved? UH Oh. Rendben. Mindkét jött le. És én már foglalkozik ezzel valahogy ezen belül a következő tíz másodperc. Szóval gyere le. Gyere le. Hadd jöjjön ide. Gyerünk. Minden rendben. Lássuk itt. Tehát észre igazi böjt van, Ha azt szeretné, hogy jöjjön fel. Megteszünk mindent, kétfordulós ezt. És mi a neved? Sabrina: Sabrina. David J. MALAN: Sabrina és? YING GFC: Ying Gee. David J. MALAN: Ying Gee. Örülök, hogy találkoztunk mind. David. Így a végső példa itt úgynevezett Ivy legnehezebb játék. És miért nem mi teszel 1. szint, és te Level 2. És majd meglátjuk, hogy meddig azon túl, hogy mi valóban megy. Írta: egy diák tavaly remixelte nekem úgy, hogy ez menne át jól New Havenben. És adok neked egy játék, hogy fog amelyek a mozgó nyilak felfelé és lefelé, és egyre Yale a célba. Essünk neki. [Videó lejátszás] [ZENE - NFL ON FOX főcímdal] [ZENE - MC Hammer, "U nem érintheti  EZ "] -U Nem érintheti ez. U nem érintheti ez. Nem érintheti ez. Én, én, én, én zenei üt nekem kemény, ami nekem mondani, ó, uram. Köszönjük, hogy áldott meg a bánja rím és két hype láb. Ez jó, ha tudod, hogy le. Egy szuper süket homeboy a Oaktown. És én vagyok ismert, mint olyan, és ez a a beat uh, akkor nem érintheti. Mondtam Homeboy U nem érintheti ez. Igen, ez az, hogyan élünk és tudod, U nem érintheti ez. Nézz a szemembe, ember. U nem érintheti ez. Yo, hadd mellszobor a funky dalszövegeket. U nem érintheti ez. Friss, új rúgások és nadrág. Megvan ilyesmi, és tudod akarsz táncolni. Így mozog ki a helyet, és kap Egy lány légy, és elkapni ezt a ritmust. Bár ez gördülő tart a szivattyú egy kicsit kicsit, és hadd tudja, mi folyik itt. Mint az. Mint az. Hideg a küldetése, így húzza vissza. Hadd tudja, hogy te túl sokat és ez a lépés uh akkor nem érintheti. Yo, mondtam, hogy U nem érintheti ez. Miért áll ott az ember? U nem érintheti ez. Yo, megszólaltatja a harangot iskola a, balek. U nem érintheti ez. Adj egy dal, egy ritmus így izzad, hogy az, amit adok nekik most. Tudják, ha beszélni a Hammer beszélni a show, ami felvillanyozott. És feszes énekesek izzadás, így adja át nekik egy mikrofon. Vagy szalagra hogy megtudja, mi ez fog tartani, és most ő fog égni a listákon. Legális vagy keményen dolgozni, vagy akár meg is kilép. Mert tudod, U nem érintheti ez. U nem érintheti ez. Lebontani. Állj. Hammer időt. Megy az árral egy spin- ha nem tudja mozgatni erre akkor valószínűleg halott. Tehát lóbálja a kezét A légi [hallhatatlan] Ez az a győztes tánc ezt, és fogsz kapni vékonyabb. Mozgatja a far csak Egy perc most minden tenni a dudor. Igen. U nem érintheti ez. U nem érintheti ez. Jobb, ha felvillanyozott fiú U nem érintheti ez. Csengessen iskola vissza. Lebontani. Állj. Hammer idő David J. MALAN: Ennyi CS50! Köszönöm, hogy csatlakozik hozzánk! Viszlát kívül. [Lejátszás vége] [Videó lejátszás] [ZENE - "Seinfeld" főcímdal] -Hé David. -Hé, David. Mi újság? -Jó Munkát, ma. -Szóval Gondolkodott, hogy mit fogsz csinálni a viccek? -Nem, Kaptam semmit. -Mi If-- mi van, ha ez az, vicc? -szerű, Kicsomagolás szekerek? -UH Huh. Tudja, hogy a semmiről. -Szóval Tetszik, nincs történet, nincs konfliktus, nincs állásfoglalás. Nem értem. Miről szól majd? -Semmi. -Szóval Mi, vicc szól semmit, és nincs színészek. Ki lesz ebben? -Nem nem nem. Úgy értem, én leszek benne. -You'll Legyen benne? -Igen! Az emberek mindig azt mondja nekem vagyok egy karaktert. -Nos, Úgy értem, ez igaz. De ki más lesz benne? Ez nem lehet csupán Önnek. -Te Lesz benne, Gavin, Dan, Dan, Colton, Z'Myla, Alysse, Doug, David, mindenki. Szóval ez a semmi, és mindenki benne van ez? -Abszolút semmi. -Ez nevetséges.