[Powered by Google Translate] [ROCK MUSIC] [MUSIC - "Happy Together" a teknősök] DAVID Malan: Ma, kezdjük a feltárása alapjait a számítógép-tudomány és a bevezetése, Most, hogy a programozás művészetét, amelynek ez csak egy példa. De ugyanebben a szellemben a problémamegoldás, tudom, hogy CS50 hagyományos Puzzle napja van holnap. Ha már nem küldött RSVP visszajelzést erre az eseményre, akkor menjen a cs50.net/rsvp. Tudod, hogy csapat két vagy három vagy négy. Akkor lehet megtámadni problémák, mint például az, hogy látta ott az elején. Minden új problémák ebben az évben, ha ettek tavaly, és lesz még egy esélyt, akkor nyerni néhány mesés díjakat. Közülük, a Wii és néhány ajándékutalványok és hasonló, mindeközben lógni CS50 diákok és osztálytársak és a pizza és a Facebook. Tehát többet, hogy holnap, ha szeretné. Ez tehát CS50, azok számára, csatlakozik hozzánk a első alkalommal. És tudom, hogy ez a tanfolyam különösen eltökélt szándéka, hogy végig ezt az utat a végső célból készült, mely ponton lesz nem csupán egy megértsük ezeket a alapjait a számítógép-tudomány, de akkor ez nagyon praktikus készség készlet, amit majd vigye vissza saját osztály, hogy ez a mérnöki tudományok, alkalmazott matematika, a természettudományok, a természetes tudomány, vagy a hasonlók. Sőt, mi olyan izgalmas számítástechnika e nap, hogy ez csak úgy alkalmazható mindenféle területen. És bár ma már csak karcolja meg a felületét egy nagyon hagyományos programozási nyelv nevei C, akkor ehelyett nézz valami úgynevezett Scratch, valami amelyben a cookie-szerelmi történet hajtotta végre az egyik elődeik az elmúlt években, történeteket mesélni, hogy hozzon létre játékok, létrehozhat interaktív művészet, és a rajthoz, hogy lezárja a elmék körül néhány alapvető konstrukciók hátterében programozás, de olyan körülmények között, mint látni fogod, hogy ez sokkal kevésbé ijesztő, ez sokkal kevésbé misztikus, mint látni fogja nemsokára. És észre is, azok számára csak csatlakozott hozzánk e félévben, a mondatok, melyen végül szerdai előadás, ez nem olyan fontos, ha a végén képest a osztálytársai ebben az osztályban, de hol van, a félév végén A héten 11, a végén viszonyítva magad jobbra a mai napig. Tehát minden további nélkül, ez is érdemes megjegyezni, hogy kevésbé kényelmes, az valahol a kettő között vannak is, a terv ennek természetesen nem semmilyen hátrányos vis-a-vis azok sokkal kényelmesebb jönnek ebbe az osztályba. Mint látni fogod át az elkövetkezendő hetek során, akkor különböző pályák eltérő vissza háttérkép, szakaszok azon kevésbé kényelmes, kényelmesebb, e valahol a kettő között. Mint látni fogod, ezen a hétvégén, és a jövő héten, két változatban legtöbb probléma készletek standard és hacker verzió így hogy mindenki saját válassza le az utat, amellyel a legkényelmesebb. Szóval ma már belevetik magukat a programozás nyelv úgynevezett Scratch. Ez egy grafikus programozási nyelv, és mégis van Ugyanazokat a funkciókat egyes magasabb szintű nyelvek fogunk vizsgálja meg később a félévben, köztük a C és JavaScript és a PHP. De ez majd lehetővé teszi számunkra, hogy ne néhány zavaró elején a szintaxist, dolgok, mint a pontosvessző, zárójel, és egyéb misztikus részleteket, első pillantásra, csak nem minden intellektuálisan érdekes, és általában kap Az út néhány alapvető megértést. Ami most a támogatási struktúra előre, rájött erre eszköz, CS50 Fórum, amely kapcsolódik a kurzus website ma később, az online vitafórum a ahol Ön képes lesz arra, hogy kérdéseket tegyenek fel egymásnak és személyzet, és ez is egy eszköz, mint látni fogjuk a jövő héten, hogy fel fogjuk használni elég szervesen az munkaidőben is. Valóban, munkaidőn kezdődik hétfőn, és őszintén szólva, az első hét hivatali órák meglehetősen alacsony kulcs. Nem hiszem, hogy talál Scratch minden megközelíthetetlen. Elég magától értetődő, mint látni fogjuk, és akkor mi van fogjuk használni, hogy a mai napra, hogy kivonat néhány alapvető ötleteket, hogy majd, majd szerte továbbra is többi félévben. De a kezdő, hétfő, at 8:00 keresztül 23:00 lesz hivatali órák alatt Annenberg agyban szünet. A vágás 2 kezdődik ma este, így valamikor a hétvége, menjen a cs50.net/section, és akkor kérni, számos kérdést. Közülük, hogyan írnád le a kényelmi szint, mint a mai? Nincs nehéz, gyors szabály, hogy aki ahol vödör. Ez csak az a fajta dolog, hogy akkor valószínűleg tudja, ha azok közé a kevésbé kényelmes, vagy más módon. És most, walkthroughs. A probléma készlet specifikáció ezen a héten, a két szabvány és hacker kiadás egyaránt, az online cs50.net, mint most. És látni fogod, hogy az első ilyen kiadás, a Standard Edition minden héten kíséri valami, amit hívja a kódot walkthrough, egy session által vezetett egyik Természetesen tanítási fickók, hogy végigvezeti Önt, adjon tippek, és neked meg egy bizonyos utat, amikor megkezdése e probléma készletek. Tehát mindegyik probléma meghatározza, ha valaha is akar magának hol kezdődik, akkor kezd ezekkel walkthroughs. És valóban, engedjék meg, hogy bemutassam Zamyla Chan, ez évi tanítás fickó, aki fogja vezetni minden egyes egy ilyen walkthroughs. Zamyla? [Taps] ZAMYLA CHAN: Oh, szia, mindenki. A nevem Zamyla. Én vagyok a junior tanuló mérnök Winthrop House. De megpróbálom, és illeszkedik a legtöbb számítástechnikai tanfolyamok I lehet, ezért nagyon izgatott vagyok, hogy ezt a vezető év walkthroughs. Rövidfilmek, nekem volt fontos része a CS50 tapasztalat. A walkthrough, minden p-set, akkor megy keresztül A probléma meghatározott együtt nézd át a problémákat, milyen osszuk fel őket könnyen kezelhető harap. Adok tippeket, technikákat, a szerzés keresztül, és a kezdetekhez. Remélem, hogy mindannyian a walkthroughs. Ha nem tudod, hogy azt az ember, majd tegye dallam online. DAVID Malan: Excellent. Köszönöm, Zamyla. Tehát észre, hogy walkthroughs vannak, sőt, pénteken délután, de ez szándékosan tervezési úgy, hogy akkor is, ha inkább nem vesz részt osztályban pénteken délután, a videók akár annál gyorsabban át a hétvégén. Tehát észre, hogy cs50.net lesz minden Zamyla a walkthroughs. És ez van a mai dátum és idő, 3:00 PM, Harberd Hall, 104. És néhány tanítási ösztöndíjasok is elő néhány megjegyzést az Ön távollétében kapsz egy kicsit szempontból, hogy milyen tapasztalataik kerülő és megy ki a CS50 volt, mint. Tehát, ha tudnánk halvány a világítás egy pillanatra, adok neked néhány CS50 személyzetének. JACKSON Steinkamp: vettem CS50 tavaly, mint egy újonc a esik, és ez teljesen elszállt az agyam. Én még soha nem szedett programozási osztály előtt, és soha nem jött be minden számítógép-tudomány tapasztalatot minden. És csak, hallottam a fless az osztályban, és úgy döntött, hogy azt. JULIA Mitelman: Ez volt igazán szórakoztató, nagyon megnyerő. Még mindig, a mai napig - Én csak nemrég láttam én azt a hajlékonylemezt, David adta nekünk a mi első napján előadás. Én felakasztotta én falra. Ez talán egy kicsit nerdy, de lógott én fal alatt az osztály, mint egy emlékeztetőt, hogy milyen jó volt. TRAVIS DOWNS: Ez annyira kínos. JACKSON Steinkamp: Számítógép tudomány, amit kell próbálni akkor is, ha nem egy-egy a hagyományos tudományok. Ez saját tapasztalat, és CS50 majd győződjön meg róla, támogatta jól rajta a valóságos hadsereget TFs. ALI Nahm: vettem, mint egy újonc, és így egy csomó Az új barátok. Én is kaptam bevezetésre az egész összefonódást, és a egész iskola mérnöki, ezért én nagyon ajánlom és üdvözöljük Önt CS50 családnak. Yaniv YACOBY: CS50 csak bemutatja, hogyan használható eszközök hogy a széles körben hozzáférhető. Csak kell egy laptop, szüksége van egy web böngésző, és meg kell tanulni írni egy kódot, és akkor tényleg építeni ügyes dolgokat. KAREN Xiao: Ez annyira jó, hogy képes legyen valami és az emberek használják, és az emberek látják, és ez amit igazán szeretek rá. TIM MCLAUGHLIN: - a közösségi érzés, azt hiszem, ebben a Természetesen több, mint bármely más tanfolyam vettem eddig. Te nem csak vesz egy másik - te nem töltés másik követelmény. Te nem csak fog előadásokat és megy részt. De te csinálsz tonna dolgokat, amelyek egész programozás és minden a technológia, de nem Tényleg érzem magam, mint egy osztály a legtöbb időt. TRAVIS DOWNS: És az első napon, ők adják ki torta, és Én azonnal eladták. JACOB PRITT: Free édességet és pizza. ZAMYLA CHAN: - tekintet nélkül a kamatszint, azt hiszem, hogy CS50, akkor szórakozni, és te leszel intellektuálisan ösztönözte. MARK GROZEN-SMITH: Ez mindig egy fél osztály, és ez a minden este buli dolgozik a p-set. JACKSON Steinkamp: Minden alkalommal, amikor befejezi a probléma meg, akkor fogja érezni, mint elkészült a projekt. MELISSA NIU: Ez volt elsőéves, és én kész vásárolni. Én már négy osztályba kész, és voltam Annenberg. És belebotlik egy barátom, és azt mondja, hé, én vásárolni Ebbe az osztályba nevezett CS50, és jöjjön velem. Végül figyelembe azt, hogy az ősszel, és azt követően, hogy az osztály, I. gondoltam megyek kiskorú CS. De itt vagyok, három évvel később, még mindig tanul számítógép a tudomány és a ténylegesen csinálja, mint egy nagy, és szerettem minden pillanata is. ROB Bowden: Fogalmam sincs. ALI Nahm: Lássuk. MELISSA NIU: őrület. SPEAKER 1: Úgy érzem, mintha én lennék nagyon közhely. Én csak azt mondom, mint, félelmetes. Yaniv YACOBY: Megközelíthetőség. JACOB PRITT: Free édességet és pizza. TRAVIS DOWNS: Nem kapcsolja le egy osztályt, hogy kezét torta. TIM MCLAUGHLIN: Energetikai. Vipul Shekhawat: Essential. ROB Bowden: Hadd gondolkozzam egy választ. Azt hiszem, találtam valamit. Ó, Istenem. Igen, a nevem Rob Bowden, és ez CS50. [Taps] DAVID Malan: Rendben, kezdjük festeni egy képet Az milyen irányban tudunk menni, és hadd vezessen be ezt a fogalmat itt nevei pszeudokód. Tehát pszeudokód nem egy programozási nyelv hozzátok is. Semmi technikai per se, de ez csak egyfajta általános kifejezési módja magad elég pontosan, meglehetősen algoritmikusan, elég eljárásjogilag, de nem kelljen aggódnia milyen nyelven te expresszáló magát be Ez néhány modellje az angol és programozási nyelven amit történetesen ismerős, így tudjuk kezdeni írásban ezt a fajta dolog, ahogy haladunk. És valóban, Joseph, tudtam kölcsön Önnek a színpadon kell lennie írnok itt? Mentem előre, itt előre, és elfelejtett tenni néhány zokni ma, és ez lesz körében látna nevetséges példák. Most, szükségem van rád itt. Majd én zokni részt. Tehát itt van egy kis karcolás pad. Ez szó szerint csak TextEdit egy Mac. Mi valójában nem fog írni egy futtatható programot, de mi csak fog kezdeni vonalvezetés ki pszeudokód alapú a néhány tanácsot az Ön által megadott ide. Tehát itt van a halom zoknit otthon. Nincs zoknit, amikor felébredek reggel, és most kell írni egy programot, egy algoritmus a fajta, amellyel , hogy ezek a zoknit a lábamra. És az út mentén, lássuk, ha út felett, vagy találkozás, néhány ötlet, hogy fogsz kell kezdeni gondoltam sokkal komolyabban programozásakor nehogy a programok nem viselkedik annyira tervezték. Szóval ülj le ide. Megvan a halom zoknit. Mi az első dolog, amit egy emberi lény lenne ésszerű teendő, ha a cél az, hogy egy pár zoknit? Valaki adjon nekem egy lépéssel, és csak egy lépés. Igen? KÖZÖNSÉG: Hajolj le. DAVID Malan: Hajolj le, Ok. Második lépés. Második lépés. KÖZÖNSÉG: Vedd fel a zokni. DAVID Malan: Vedd fel a zokni. Oké, tehát csekély kétértelműség itt, és ez az egyik első beárnyékoló, hogy mi kéne, hogy szándékosan találkoznak itt. Ez egy kicsit félreérthető, ezért vedd fel a zokni. Rendben, ezt egy, de a számítógép, megvalósítani csak egy bit, nem megy, hogy ez a fajta emberi ösztön, hogy csak válassza a legközelebbit. Elmegyünk kell kezdeni, mielőtt hosszú, kifejező magunkat pontosabban. Rendben, tehát a második lépésben az vegye fel a zokni. Majd vedd el. Lépés három. A vissza. KÖZÖNSÉG: Találja meg pár. DAVID Malan: Find egyezési pár. Oké, ez jó. Kellett választani a zokni. Tehát a cél az, hogy megtaláljuk a matching zokni, most, de mi jelent ez? Ésszerű emberi lény, ugyanúgy, mint szerdán, amikor csak tudta, hogyan találjuk meg Mike Smith egy telefonkönyv, csak egyfajta ment az ösztön. De itt, ez nyilván a zokni itt, hanem a számítógép Nem lesz annyira ösztönös. A számítógép megy, hogy egy gyűjtemény a bitek, mint mi tárgyalt szerdán, és ezek megszervezni valahogy a memóriában. De a lényeg az, hogy a számítógép csak képes nézni a dolgokat egy olyan időpontban, sőt, még mi az emberek - bár úgy érzem, mintha lenézett és split másodperccel később tudom, hol a zokni van, az agyam és a szemem feltehetően nem egy gyors sovány e zokni, majd reteszelt az, hogy az egyik a szóban forgó. Tehát, ha még ennél is több szándékos most, mint egy számítógép, hogyan találta ezt az egyezés pár? Nos, meg kell navigálhat. Meg kell talán loop át ezt a rendetlenség a zokni a emelet, amellyel mondok valami ilyesmit MINDEN zokni, vedd fel, és ha a egyforma alakú és méretű, mint a másik, AKKOR pont, pont, pont, akkor folytassa a történetet. Tehát minden zokni, úgyhogy vedd fel ezt. I megtekintéséhez ez egyenlő ezt. Ez nem, úgyhogy félre oldalon. Aztán hajtogat újra. Hát ez egyenlő? Nem, ez nem, úgyhogy tedd félre. Ez egy? Nem. Ezt? Nem, és így tovább. És végül, remélhetőleg, én találkozik ezzel a zokni itt. Tehát, ha ez ugyanaz a forma, méret, vedd el. És most, mi lenne a következő lépés itt? Igen? KÖZÖNSÉG: Azonosítsa jobbra balra. DAVID Malan: Oké, azonosítani jobbra és balra, így a Szerencsére ez a fajta munka. Egy kis szimmetrikus, vagy épp most kopott őket így. Rendben, így már azonosították a jobb oldalon. És most, mielőtt folytatja, hadd rámutatni mi József is csinál itt egyfajta jártas programozó. Tehát újra, senki sem ezt a módszert, de nem csupán számozás a sorok, Joseph már elkezdte ezt fajta behúzás. Valóban, ez egy nagyon gyakori egyezmény programozás, amely, ha nincs valami iteratív, a ciklusok stílus, mi ami az angol kifejezés "MINDEN zokni, "az egyezmény pszeudokód, és mint látni fogjuk, normál programozási nyelvek, hogy csak francia. Hit a szóköz néhányszor, nyomja meg a Tab billentyűt, vagy hasonlók, hogy a beágyazott alatt "minden zokni" a darab dolog, hogy meg kell csinálni, mint eredményeként az a hurok. Szóval ez minden, ami közvetíti szemantikailag. Most eközben a "Ha ez az egyforma alakú és méretű, a" tény, hogy a "Take it" van vágva tovább csak azt jelenti, ez az egyetlen dolog, amit meg kell tennie, ha ezt a feltételt, ha elágazik, hogy útelágazáshoz, valójában igaz. Szóval most itt vagyunk lépésben négy azonosítása jobbra és balra. Már azonosított van. Adj egy lépés öt. És technikailag, akkor tényleg hívni A MINDEN dolog - akkor valószínűleg számlálni a sorokat, ha fogjuk ezt tenni. JOSEPH: [hangtalan] DAVID Malan: [hangtalan]? Oké, rendben, rendben, akkor csináljuk az utat. Rendben, szóval lépésben öt, hogyan csináljunk a megfelelő zokni? Hogyan járjunk legközelebb, itt van? Igen? KÖZÖNSÉG: Emelje fel a jobb lábát. DAVID Malan: Emeljük fel jobb lábbal, Ok. Hatodik lépés? Gyorsan. Igen. KÖZÖNSÉG: Keresse meg a nyitott vége a zokni. DAVID Malan: Oké, keresse meg a nyitott vége a zokni. Akkor jó. Tehát itt, őszintén szólva, egy nagyon gyakori ösztön ez csak hozott jobb zokni, de ez is elég egyértelmű. Amennyiben a számítógép vagy humán pontosan tudja, hogy ez mit jelent, ez nem lesz, hogy végre, hogy így van, én már talált a megnyitón a készlet. Hét lépés? KÖZÖNSÉG: érintse meg a bokáját. DAVID Malan: Touch lábujjak. Oké, most megyünk - Rendben, megyek, hogy néhány szabadságjogok itt. Kösz. Lépés nyolc? Vedd fel zokni. Oké, akkor most én, szerintem közel vagyunk ahhoz, hogy egyfajta figyelembe ez egy otthon. Rendben, ez megy fel. Elviszem néhány szabadságjogok az, hogy mit jelent valójában. Tegye a zoknit. Rendben, most lépjen kilenc? KÖZÖNSÉG: Tedd láb le. DAVID Malan: Köszönöm. Step 9, tedd láb le, és most mi is ismételje meg. Így feltételezhető, most már menni a 10. lépésben, és azt mondják azonosítása balra zokni, de ez feltehetőleg már megtörtént. És így aztán, én is egyfajta ismételje meg ezeket a lépéseket. De ez a fajta felveti a kérdést. Előtt, az utolsó alkalom akartunk megismételni valamit, amit csinálta iteratív, újra és újra, a FOR MINDEN loop hogy úgy mondjam. Lenne értelme használni egy hurok kezelése érdekében mindkét A bal és a jobb zokni? Mert olyan, mintha ezek a műveletek nagyon sok azonos kivéve azt a tényt, hogy egy itt kezdődik és egy Itt kezdődik? Vajon hurok, vagy inkább már csak tartani írásban lépésben 10 és 11 és 12? KÖZÖNSÉG: Loop. DAVID Malan: Oké, így hurok. Igazából lehet, hogy azt mondta, csak menj. Miért van ez így? Nos, ez valójában az első a nem nyilvánvaló tervezési döntéseket, sőt, az egyik metrikák, amelyekkel elkezdjük értékelni, a magunk és az Ön számára, a minősége egy program milyen jól megtervezett van. Tettél a minimális mennyiségű szükséges munka a munkát a leggyorsabban, akár szempontjából az idő vagy a szempontjából a számítógép működési ideje? Hány műveletek nem kell ahhoz, hogy végre? Szóval vitathatóan, ez egy lehetőség a hurok, mert amint elkezdek másolás és beillesztés, mint Joseph hatékonyan volna kezdeni ezzel egy pillanat, te fajta pazarlás idő, és te pedig kétszeresen kifejező. De ugyanakkor, ezek tényleg csak két speciális esetekben, balra és jobbra. És mivel korábban, talán már 10, illetve 20 vagy több zokni egy halom, hogy biztosan van értelme, hogy nem 50 sornyi kód mondván ellenőrizze ezt a zoknit, akkor a következő egy, majd a következő alkalommal. Íme, ez egy kicsit kevésbé nyilvánvaló, és azt javasolta, hogy mi lehetett menni mindkét irányban. Tudtuk sem kell, hogy a hurok, de csak hurkokkal kétszer, vagy mi egyszerűen másolja be egy kicsit itt annak érdekében, hogy a munkát elvégezni. De ez a program hibás, hogy úgy mondjam. Lehet, hogy van néhány hiba, hibák, vagy sarok esetekben, így beszél, hogy nem igazán számít. Semmi baj ebben az időben, de mit lehetett volna baj végrehajtása közben ez a program? KÖZÖNSÉG: Ön nincs zokni. DAVID Malan: Szóval nem lehetne ott zokni nélkül. Akkor nézzük meg, hogy a sarok ügyben. Tehát, ha tudnánk lapozzunk vissza lépéshez egy, így az első lépés volt lehajolni, hogy kijelentkezik. Step 2, vedd fel a zoknit, de aztán találok egyező zokni, azonosítani jobbra. Azt a fajta tett egy csomó feltételezések, és ez, őszintén, miért programok néha összeomolhat. Ha a programozó, tettek bizonyos feltételezések, mint például a biztosan ott lesz zoknit vagy biztosan ott lesz legyen szabad memória a számítógép, biztosan ott lesz hogy lemezterület marad a merevlemezen - Nos, ha ezeket a feltételezéseket, és ez nem, Valójában, a valóság, ki tudja, hol, mi a számítógép csinálni? És néha, ha kap a pörgő strandröplabda vagy a fagyasztva Windows vagy hasonló, ez pontosan azért, mert néhány programozó nem számítottak azok az úgynevezett sarok esetekben. Mi mást tehetett volna baj ezzel a programmal? Igen? KÖZÖNSÉG: Ön nincs jobb lábbal, és a bal lábát. DAVID Malan: Oké, lehet, hogy nem mind a jobb lábbal, és a bal lábát, és így ez a program lehet, hogy nem általánosan alkalmazható. Mások? KÖZÖNSÉG: Lehet, hogy felkapott egy árva zokni. DAVID Malan: Én lehet, hogy felkapott egy árva zokni, így nem egyező zokni, hogy csak nincs testvére, mert már elvesztette, ez szakadt, benne van a mosás még mindig, vagy a hasonlók. Szóval ez is, nem igazán kezelték. Igen? KÖZÖNSÉG: Lehet, hogy már zokni. DAVID Malan: talán már zokni. Én valójában nem ellenőrzi. Ha nem rendelkezik zoknit, majd folytassa a teendő vonal egy és kettő. És ez megtörténhet. Te elalszik meg zoknit és hasonló, így a ez is egy nagyon ésszerű sarok ügyben. És talán egy másik? KÖZÖNSÉG: a zokni kifordítva. DAVID Malan: Tehát a zokni belsejében, úgyhogy csináltunk nincs hiba ellenőrzés, a rövid. Nem ellenőrizze, hogy az állam a világ, ahogy elvárható. Nem ellenőrizze, hogy mi valójában találta meg, amit keresünk. És bár ez a fajta egy nevetséges példa bevonásával zokni, a végén a nap, ez pontosan a fajta gondolkodásmód van szüksége írásakor programok, még a Scratch valamint C, JavaScript, PHP-vel mert különben a programokat mutatnak a egyenértékű, hogy a forgó strandlabda, vagy csak így pontatlan eredményeket. Oly sok köszönet van a mi írástudó Joseph. [Taps] DAVID Malan: Rendben, szóval mi van, az Tény, hogy egy számítógépes program? Nos, vessünk egy gyors pillantást a képviselője itt. Tehát ez egy olyan program, nyelven írt nevű C. C meglehetősen régi ezekben a napokban, de sok újabb nyelvek épülnek a tetején. Valóban, a PHP, az egyik web-központú nyelven fogunk használata felé ciklus végén, maga mit nevezett tolmács, egy program, ami C-ben írt, de az adott Sok hét múlva. De ez a program, és ez mit jelent, hogy írjon egy program, bár nagyon egyszerű. Van néhány meglehetősen rejtélyes szintaxist itt, de akkor Valószínűleg hiszem, akkor is, ha még soha nem programozott előtt, milyen ez a program nem. Valójában nem tudom, hogy mi printf van, de bizonyosan nyomtatása idézi fel az ötletet, nyomtatás valamit. És igen, ez a program végül is megy, hogy nyomtassa ki a "Hello, World". Most, hogy van egy Mac vagy PC-re vagy Linux számítógépen odds , legalábbis, ha a letöltött néhány szabadon rendelkezésre álló szoftver segítségével lehetett volna írni programok saját laptop jó ideje most. A Mac OS, például, van ez a program neve Terminal hogy jön a Mac, ez általában a Utilities mappában található, és általában megnyitja a fekete és fehér vagy fehér és a fekete ablak, ahol van kérni, ahol beírhatja parancsokat. Tehát ez valójában emlékeztet, amit számítógépek Régebben, mielőtt grafikus felhasználói interfészek, GUI, jött. Most, a Windows, van egy hasonló mechanizmus formájában a parancssorba. De mit fogok csinálni itt nyitni, mondjuk, TextEdit újra, így ugyanaz a program voltunk használat pszeudokód egy pillanattal ezelőtt, és én megyek előre, és levelet az első program. Beleértve stdio.h, bármit is jelentsen ez, int main semmis, bármit is jelentsen ez, majd a közepén van, printf ("hello, world."). És aztán bezár idézet, bezár paren, pontosvessző. Most megyek előre, és csak a hit Command-S. Megyek hogy menjen előre, és mentse ezt hello.c, így az egyezmény a világ a C programozás a fájl nevét pont c. Megyek imént John Harvard Home könyvtár, van, kattintson a Mentés, és most megyek át ezen terminál ablak, ami szintén ezt a fekete-fehér gyors ahol tudok végre parancsokat. Én is futtatható programokat beírva nevüket, nem kattintson duplán ikonok a megszokott értelemben. De a dolog arról szól, hogy egy C nyelv, mint a C-1. jön ebben a formában, úgynevezett forráskódot. Valami, ami úgy néz ki, egy kicsit, mint az angol, de határozottan kisebb, mint az angol, mint a József pszeudokód a pillanat ezelőtt. Ez egy kicsit misztikus. Úgy tűnik, hogy kövesse az egyes minták vagy szabályokat. Az a tény, hogy van kapcsos zárójelek között pontosvesszővel, idézetek, szög nadrágtartó, úgy érzi, mint egy számítógép jött ezzel fajta nyelv. De ha megyek, most, hogy ez a terminál ablak, tudok futtatni egy parancs fogja átalakítani, hogy a forráskód úgynevezett tárgykód. Ez lesz átalakítani angol-szerű szintaxist nullák és az is, ugyanazt a fajta nullák vagyunk beszélt szerdán. Most megyek egy parancs futtatható nevű csenget. Többet erről az elkövetkezendő hetek során, de ez a program amit konvertálni hello.c egy csomó nullákkal és egyesekkel. Nos, én már futtatni ezt a parancsot. Már fut csenget, majd azt mondtam futtatni magát ezt a fájlt nevű hello.c, amit teremtett egy pillanattal ezelőtt, és semmi sem történik. De valóban, ha kidugta köré home könyvtár, szeretném látni hogy ez ostobán nevű programot a.out most létezik. Ez csak az alapértelmezett nevet egy programot, ha írásban C. Mi lehet felülbírálhatja ezt végül, de a.out a A program neve csak alakítjuk nullákkal és egyesekkel. És most, hogy ez az nullákkal és egyesekkel, a Mac, ebben az esetben, vagy A Windows PC, megérti ezeket a biteket, ezek nullákkal és egyesekkel. És így amikor Enter, látom "hello, world!" De ez egy kicsit bugos. Nem elég, hogy "hello, world!: Air: - jharvard." Air nevét a számítógépet. Jharvard a neve a fiók, tehát mit tettem jól kihagyja a programból? Valamiféle sortörés. Nem hit egyenértékű Enter vagy a kocsi vissza, és ez, ismét, tanúskodik, hogy a, hogy a számítógép képes Csak tegye, amit mond nekik. És az, hogy nem mondtam el a számítógépet mozog a kurzort a következő sorba - Nos, ez biztosan nem fog csak csináld elbizakodottságában nekem. Szóval, ha megyek vissza a program, és azt mondom \ n - Szóval \ n, ahogy azt hamarosan látni, ahogy a ami furcsa dolgokat, mint új sor karaktert, a dolgok , amelyek egyébként az eredménye üti meg az Enter gombot. De most, csak tudom, hogy üti az Enter billentyűt kíván csak, hogy a kód furcsának, hogy a világ úgy határozott, tudja mi, hogy a dolgok szebb, hogy tartsa egy sorban, hadd csak azt mondom \ n jelentése egy új sort. Hadd mentse a fájlt, menj vissza a terminál ablak, és re-run a.out, Enter. Mégis buggy, de miért? KÖZÖNSÉG: [hangtalan] DAVID Malan: Igen, így újra kell fordítani rá. Szóval, hogy a program összeállítása csak azt jelenti, alakítani forrásból kód tárgykód, forráskód nullákkal és egyesekkel. Most, a puszta tény, hogy megütöttem a Mentés e TextEdit nincs szem azokon nullákkal és egyesekkel, mert először meg kell tell csenget hé, én már megváltoztatta ezeket a sorokat a kód, a forráskódját. Be kell, hogy regenerálódni a.out. Semmi sem úgy tűnik, hogy történt, de egy számítógép, egy parancssor, hogy úgy mondjam, ha nem történik semmi, hogy az általában azt jelenti, minden rendben van. Amikor valami nem történik meg, az azt jelenti, Ön elrontotta, általában. Szóval most megy a.out, sőt most van "hello, világban. " És most, mi a helyzet ezen nullák? Amennyiben, valójában, azok? Hát, nem tudom igazán csak egyfajta poke körül nagyon hatékonyan. Hadd nyit TextEdit. Itt a.out. Hadd menjek előre, és nyissa meg ezt, és ez látszólag amit én programot néz. Szóval nyitott, nem hello.c, de a.out. De ez valójában nem az, amit én programom valójában. Egyértelmű, hogy ez valamiféle betűk. Nem látok nullákkal és egyesekkel, de ez mert a.out egy program. Nullákkal és egyesekkel - de TextEdit, amint azt a neve is sugallja, ez csakúgy, mint a Windows Jegyzettömb, csak egy szövegszerkesztő, így összetéveszti az összes ilyen nullákkal és egyesekkel, mint mintha, mi? ASCII karakter. Így emlékszem szerdán, csak jött az e tetszőleges feltérképezése számok vagy bit, a levelekre a ábécé és írásjeleket és hasonlók. Szóval TextEdit, hogy ez egy szövegszerkesztővel is félremagyarázza azon minták nullákkal és egyesekkel, hogy fel kellene nyomtatás szavak, mint a "hello, world". Ez kiszerelése ASCII, és ezért úgy néz ki, egy kicsit rendetlen. Nos, van néhány hasznos ötletet a korrektség itt. Figyeljük meg, ha azt kiemelni, van egy csipetnyi valójában "hello, világ ", így valahol, hogy a program a mondatot írtam. De menjünk előre, és most látni egy másik program. Ez nem egy fogjuk használni, hogy gyakran, de ez is jön a Mac és lesz benne a CS50 készüléket. Hadd menjek előre, és nyissa meg a program neve xxd. Vissza a nap, a legtöbb program nevezték meglehetősen rejtélyes, és így a trend folytatódik. De-b: a köpni ezt a programot ki, mint bináris. Ne fuss el. Kijelző nekem a nullák és egyesek, és ez a C programunk csak írtam. Nos, én, mint egy ember van, őszintén szólva fogalmam sincs, mi A különböző minták nullákkal és egyesekkel képviselnek. Vissza a nap, én, az én lyukkártya vagy hasonló lenne ténylegesen meg kell nézni azt, amit a különböző minták 01111000, valójában képviselnek. Vagy ami még rosszabb, azt kell tennie, hogy a lyukasztás vagy a teremtés ezeket a mintákat nullákkal és egyesekkel. De most, hogy a hit, hogy a CPU, az Intel Inside, így beszélni, belül minden kedves számítógép ezekben a napokban, tudja, hogyan kell értelmezni ezeket nullákkal és egyesekkel. És néhány nullákkal és egyesekkel jelent nyomtatásban. Néhány nullákkal és egyesekkel jelent lejátszik egy hangot. Néhány nullák és egyesek azt jelenti, hogy felhasználói adatbevitel a billentyűzetről. Van mindenféle különböző mintákat, de szerencsére, mint az emberek, csak általánosságban kell aggódnia programozást ez meglehetősen magasabb szintre. És más osztályokba CS tudsz ásni le mélyebbre és keresse A dolgok, mint a nullák és egyesek, vagy még nem más dolgok is. És most nézzük átalakítani ezt. Menjünk gyorsan el C és mozgassa valami a kicsit megnyugtató, egy kicsit izgalmasabb, amennyiben juthatunk vissza a animációk és hangok és így nyilvánvalóan megszökött nekünk ebben a meglehetősen primitív felület. Tehát ez ugyanaz a program, a C lehet képviselő most ezen programozási nyelv úgynevezett Scratch alábbiak szerint. Ez felel meg a hello world programot írt ez a puzzle darab stílust nyelv úgynevezett Scratch. Szóval hadd menjen előre, és nyissa meg ezt a nagyon program. Ez ismét hívják Scratch. Ez a szabadon elérhető, és ez ugyanaz a dolog, amit kezdődött ma. Szóval ez itt a Scratch, és ez tört fel egy pár különböző darab. A legtetején jobb, mi az úgynevezett színpadon, és Valóban, ez az, ahol a cookie-k végre egy kicsit ezelőtt. És ebben a szakaszban a dolgok úgynevezett sprite, karakterek vagy tárgyakat, vagy szervezetek. Nem igazán számít, mit gondol, de ők programozható, mozgatható dolgok, és ebben az esetben, ez a program, amely a hallgató írt egy pár mézeskalács cookie-k, egy pár kör cookie-k, egy csomó szívvel, egy csomó napszemüveg. Emiatt ő képes programozható minden egyes ilyen egyes karaktereket külön-külön. Nos, mit jelent programozni ezeket a karaktereket? Nos, hadd menjen előre, és kattintson erre a bal oldali süti és lépjünk át a bal felső sarokban van. A bal felső az én képernyő most a úgynevezett parancsfájlok terület. Ez a fajta egy üres lappal, kezdetben, amire tudok drag and drop a puzzle darabkái, hogy őszintén szólva, nem pontosan mit mondanak. A legtetején e verem a puzzle darabkái a szó Amikor zöld Flag Kattintásra, és ha nem vette észre korábban, ahogy kezdtem, hogy a cookie-k dalt kattintva, a szó szoros értelmében, a zöld zászlót. Annak érdekében, hogy puzzle darabot a bal felső sarokban van olyan, amikor a emberi kattintások a zöld zászlót, folytatta, hogy nem a következő dolgokat. Nos, mit ők cookie-ügy csinálni? Nem igazán tudom, hogyan értelmezze ezt még, de a süti nyilvánvalóan állítsa be a vájat nulla, akkor a várt három másodpercre, majd megváltoztatta a csoport az egyik, akkor várt egy kicsit, majd megváltoztatta horony vissza egy. És akkor ez tényleg úgy néz ki, mint egy kis hiba, nem szabad meg kell változtatni a horony újra és újra, ha ez megváltoztatták máshol, de ez a sorozat lépések mi diktálja a viselkedését az adott cookie-t. Szóval tényleg lapozzunk vissza, és nem néz valamit annyira bonyolult még. Hadd menjek előre, és menj a Fájl, Új, és kap egy tiszta lappal. Szóval most én valóban egy üres szkriptet terület, egy üres színpadon, a mi az alapértelmezett sprite Scratch, és a bal felső sarokban én képernyőn nem tudom a raklap, akik minden álló puzzle darabkái. És mi nem megy keresztül közel, hogy sok ezek a dolgok ma, mert újra, a legtöbb magától értetődő, de mi lesz megpróbálja kategorizálni őket, és rámutatnak a hasonlóságok ezekkel a jövőbeli nyelvek amelyhez fog merülni. És itt van a bal felső sarokban az első A Zöld zászló Kattintásra, hadd húzza át ide, kicsinyítés egy kicsit. És ha én kattintson a zöld zászlót, semmi igazán történik, mert Én nem kapcsolódik semmilyen logika, olyan kijelentést hogy úgy mondjam, a hogy a zöld zászló, hadd menjen fel a Kategóriák ide. Én jelenleg a Control kategóriában. Én inkább megyek le a Looks kategóriát, és van egy csomó dolog, hogy itt mondják Say, Gondolkozz, módosítása Color, Switch jelmez. Szóval meg tudod csinálni buta dolgokat jelmezek és hangok és a hasonlók. Hadd menjek előre, és csak annyit mondani, és most már észre, ahogy húzza és vidd ezt a puzzle-darabot, ez lesz akar reteszt a megfelelő forma. Tehát, ha megyek előre, és elengedte az egér, akkor zár együtt, és most, ha elmegyek ide, és kattintson a zöld zászlót, a macska valóban köszönni, mert ez az, ami belül van E fehér doboz. Majd meglátjuk, hogy ez a fehér doboz, amit hívják érv, vagy egy paramétert. Ez egy módja, hogy megváltoztassa a viselkedésének, ebben az esetben, egy puzzle darab, de ha azt akarom mondani, hogy pontosan mit mondtam előtt, mondjuk hello, világ, én most visszamegyek ide, kattintson a játék, és a "hello, world", amit a mondott. Tehát szó programozás most. Ez egyáltalán nem olyan meggyőző a program, de legalább ez egy kicsit több, mint lenyűgöző valami úgy néz ki, a Első pillantásra, mint ez. És mi is nagyon gyorsan a sokkal kifejezőbb mert a Scratch, csakúgy, mint más nyelveken, ott minden féle nyilatkozatok, nem csak Mondj vagy nyomtatás valami, de meg tudod csinálni a dolgokat, mint a várakozás, hiszen mi csak látta, A cookie-t, bizonyos számú másodperc. Ön tudja játszani hangokat környezetében Scratch csak mint tudod, a szokásos számítógépes program lejátszás hang. Meg tudja nézni az úgynevezett logikai kifejezések. Tehát most, kezdjük felvenni a toolkit néhány terminológia hogy valóban arra a példa arra, hogy József és én itt a zokni. Szóval nyilatkozatok csak tényállítás. Tedd ezt. Az irányelvet a szellemet, vagy én az ember, hogy tegyen valamit. A logikai kifejezés van valami, hogy egy érték, úgynevezett igazság érték, ez vagy nulla, vagy egy, vagy hamis Igaz, ki vagy, nem vagy igen. Nem igazán számít, mit gondol erről, de ez a bináris állapot. Ahogy Nate tárgyalt szerdai video, 2 különböző dolog. Tehát Scratch, logikai kifejezések megtörténhet, hogy vizsgálja meg mint ezek kék tárgyakat itt, és ebben az esetben, a kérdés jel azt jelenti, hogy kérsz egy kérdést. Van a macska, vagy a sprite, megható az egérmutató? Tehát ez csak egy példa a Scratch blokk megy hogy lehetővé teszik számunkra, hogy ellenőrizze igen vagy nem, az egér érintése sprite a képernyőn? És ez akkor lehet hasznos, ha valóban akar csinálni a dolgokat az egérrel. Amellett, hogy logikai kifejezések, van a dolgok mint az egér le, így képes észlelni ezt a fajta kérdés is. Meg tudjuk csinálni a matematika, ha valóban akar, és ott valójában inkább kényszerítő használni ezt, mint a tiszta a számtani, mint látni fogjuk. Pseudo véletlenszerűség és így a program úgy tűnik, hogy úgy gondolja, vagy másként viselkednek alapján néhány látszólag véletlenszerű értékeket, és akkor a dolgok, mint a logikai kifejezéseket, mint AND. Tehát, ha valóban szeretné, hogy ellenőrizze a két érték, akkor látni Scratch, hogy mi is valójában tesztelni, ha ez igaz, és ez igaz. Például abban az esetben, az én zokni, én volna a legvégén feltette a kérdést: ha a baloldali zokni van és jobbra zokni van kapcsolva, kilép. Te mindezt a nap, hogy lenne lehetőséget erre. Akkor menjünk előre, és próbálja darabot néhány ilyen együttes és bemegy egy pár példát látna kényszerítő, mint ez. Akkor hadd menjek előre, itt, és nyissa fel néhány példát hogy mindig a pályán honlapján is, és nyit hello2. Tehát hello2 itt van egy program, csinál egy pár dolgokat, de ez nem csinálja olyan hatékonyan, mint amit lehet. Tehát itt azt mondja: "hello, world" egy másodpercig, majd a vár egy pillanatra. És akkor csinálja, majd ismét csinálja újra. Szóval, ha kattintson a zöld zászlót, Scratch mondja: "Helló, világ. Hello, világ. Hello, world. "És ez nyilvánvalóan jelölt most javulást. Mi a marginális javulás, remélhetőleg tudunk most, hogy ha Scratch támogatja a koncepció? Valamiféle hurok. Valami ismétlés, most jó lenne, ezért hadd ténylegesen próbáld ezt. Hadd ténylegesen megy, és mozgassa ezt. Így nyilatkozat leválaszthatja tömb olyan könnyen, mint felvehet csatolni őket. Hadd menjek alatt Control, lapozzunk le ide, sőt, van ez a puzzle darab itt, ismétlés, Forever és Örökké If. Tehát van számos módon kifejezni loop konstrukciók A Scratch. Az egyik azt érdemes itt nem örökre, mert én csak szeretné, hogy ez megtörténjen háromszor, de valószínűleg ismétlése. Szóval hadd húzza Ismételje ide, drag and drop, és Most ahelyett, hogy azt mondja: "hello, world" három különböző alkalommal, hadd húzza ezt a puzzle darab itt. És bár nem úgy tűnik, hogy illeszkedjen a program okos ahhoz, hogy észre, hogy növekedni fog tölteni, így ez a formák, hogy az anyag, és nem az abszolút méretét. Hadd módosításához ismétlés három, és most hadd menjen előre, és húzza Várj egy pillanatra ott is. Ez lesz a beépülő modul is, és így most megyek húzza ezek a srácok ide, és csak dobd el őket, mert nincs rájuk szükség többé. Hadd kicsinyítés, majd kattintson a zöld zászlót, és most már ugyanazt a programot, de ahogy megjósolta korábban, jobb Ajánlott, mert tudod képzelni, milyen rossz ez a program kapnánk, természetesen esztétikailag, ha kellett kezdeni a másolás és beillesztés, másolás és beillesztés, vagy áthúzásával ugyanazt rohadt dolgokat újra és újra. Nos, egyszerűen csak annyit mondok dolgokat a képernyőn, a nyomtatás képernyőn, tényleg minden nem olyan izgalmas, úgyhogy megnyitása 3. variancia itt. És most, amint meglátja, ez lesz gyorsan bosszantó - [MEOW] DAVID Malan: - de ez is aranyos. [MEOW] DAVID Malan: Oké, akkor jobb, és mi természetesen használni, hogy Ugyanez átmenet dobogó e fel egy hurok szerkezet, de tegyük még érdekesebbé is. Hadd menjek előre, és nyissa meg a 1/4 variancia itt, ahol a dolgokat egy lépéssel tovább. Így eszerint, buta bár ez először pillantás, mi ez a program fog csinálni? Ez lesz miau egyszer. Miért? Nos, az egyik, amennyire én tudom, mindig kisebb, mint kettő. Nincs fogalma véletlenszerűség itt. Nekem szó szerint kódolt és két, de ez egy olyan Például most már ténylegesen egy logikai kifejezés. Ugyanúgy, mint ahogy József tette az ő pszeudokód, a behúzás IF talál egyező zokni AKKOR hajtsa végre a következő, itt van egy kifejezés, ha egy kevesebb, mint két THEN - és valójában mi is van egy kis bemélyedés, ahol a lila kissé behúzva jobbra - AKKOR fogsz játszani a hangot miau. Most, ebben az esetben, hogy az egyik mindig kevesebb, mint két, így ez egyfajta hulladék a feltételt. De képes lesz arra, amint látni fogjuk, hogy csatlakoztassa más dolgokat ezek Helyőrzők ahol egy és két most már. Úgyhogy most előre a példa ezek közül öt különböző hellos és nézd meg, mi ez a program fog csinálni. Tehát most, egy angol mondatban, hogyan működik ez programot viselkedik? KÖZÖNSÉG: meows feleannyi idő alatt. DAVID Malan: Meow a fele az idő, így ez egy módja annak, közvetíti egy nagyon egyszerű ötlet. Annak ellenére, hogy mi történik, hogy ha bizonyos egyenlőtlenségek itt Egyes számok, ez tényleg csak egy programmatical módon, pontos módon, a mondás, ha az érme jön fejek, menj előre, és miau. Vagy fordítva, ha az érme jön a farok, nem miau. És ebben az esetben, hogyan fejezik ezt? Majd válasszon egy véletlenszerű számot 1 és 10 közötti, és amennyiben ez szám kevesebb, mint 6, megy előre, és miau. És hogyan jött ez ide? Hát ismét észre csak a fogd és vidd módszerrel, valamint dolgok kattan. És most lássuk, ha ez véletlenszerű működik. Hadd menjek előre, majd kattintson a zöld zászlót. [MEOW] DAVID Malan: Oké. [MEOW] DAVID Malan: Oké. Oké, jó, szóval van fej, fej, farok hatékonyan. Tails. [MEOW] DAVID Malan: Heads. [MEOW] DAVID Malan: Excellent. Ez mindig kínos, ha csak statisztikailag kap egy rossz fut, és ez az egész fejet, és a program valójában nem dolgozni, mint azt remélem. De ezúttal működött, és úgy tűnik, hogy van, ha volt ez egy végtelen számú alkalommal, 50%-os esélye. Most megint nem olyan érdekes, csak hogy a macskák miau, úgyhogy lássuk, ha nem tudjuk előre ezt egy kicsit tovább itt változata hat. Szóval most már tényleg idegesítő változat - [Meows néhány másodpercig] DAVID Malan: - és ez az, amit ismert, az általános, mint végtelen hurok. Tehát végtelen ciklus ebben az esetben rosszul érzi magát. Ez biztosan fog kezdeni hangzó rossz, és mégis végtelen körök nem mindig rossz. Tudsz keretében a számítógépes programok, ahol azt tulajdonképpen szeretne egy végtelen ciklus? Igen? KÖZÖNSÉG: Ha azt szeretné, hogy ellenőrizze a feltételt. DAVID Malan: Oké, ha azt szeretné, hogy nézz a feltétel? Mint például? KÖZÖNSÉG: [hangtalan] DAVID Malan: Oké, jó, így ha volt néhány program, néhány fajta otthoni automatizálási dolog, ha azt szeretnénk, hogy állandóan monitor van valami a helyzet. Vannak-e a villanyt? Vannak-e a villanyt, mert lehet, hogy van egy időzítő, és azt szeretné, hogy elmegy, akkor kell csinálni valamit újra és újra. És valóban, beszélt időzítők, sem ti, akik órák a számítógépen vagy digitális órák, ez egy végtelen hurok. Továbbra frissítse az időt, mert állandóan ellenőrzése és ellenőrzése és ellenőrzése van ideje megváltozott, és ha igen, oh, istenem. Az óra Végre megváltozott. El kell megjeleníteni, hogy az értéket az Ön számára. Tehát mivel a legtöbb időt végtelen ciklusok egy hibát, vagy legalábbis rossz tervezési döntés, néha mégis megvan a maga értéke. Nos, továbbhaladhat itt hello7. Tehát most a program, hogy egy kicsit több interaktív. Hadd Nagyításhoz itt, és újra, ez az, ami szép mintegy Scratch. És fogjuk használni, hogy legyen világos, Scratch, csak ma és jövő heti problémája beállítva. De hétfőn, mi belevetik magukat C. Ebben a programban van, ez így van, örökre, a következő. IF megható az egérmutatót - most, aki a összefüggésben itt? Nos, és figyelje meg, hogy ki a kijelölt idelent alul jobb a macska, sprite egy, így ezek a szkriptek, ez program, vonatkozik rá külön. Tehát, ha a macska hozzáér az egérmutatót, akkor megy játszani ezt le, és várjon két másodpercet, majd ismételje meg a hirdetés nauseum. Akkor menjünk előre, és nyomja meg játszani. Semmi sem történik, de ha akarom a kedvtelésből tartott macska most tudok egyszerűen. [MEOW] DAVID Malan: imádnivaló. [MEOW] DAVID Malan: Oké, kevésbé idegesítő, de lesz unalmas, úgyhogy lépjünk tovább, hátha nem tudunk injekciót még egy kis logika. Ez volt példa hét. Itt például nyolc, megyünk bevezetése ELSE feltételt. Annyi, mint egy szó villát az úton, ahol mehetsz balra vagy mehetsz jobbra, a feltétel egy programozási nyelv, mint a Scratch, vagy ahogy látni fogjuk C, lehetővé teszi, hogy megy egyik vagy másik irányba keresztül IF ELSE konstrukcióval. Tehát a szó szoros értelmében, HA megható egérmutatót, ez a fog játszani néhány hangot, különben ez fog játszani a másik hang, miau. Most, ha lehet következtetni a nevét E hangok, akkor Valószínűleg kitalálni, mi ez a program célja, hogy varázsolni az ötlet. Ez a macska nyávog boldogan. [MEOW] DAVID Malan: Szerencsére, de nem nagyon szereti, ha megérintik. [Üvölt] DAVID Malan: Tehát most van egy macska, aki kiabálni veled. Rendben, nos, egy utolsó példa macskák itt, és menjünk nyitott változata kilenc ez itt. Tehát most, már a következő legbosszantóbb hangot tudtam találni, így van egy rozmár vagy oroszlánfóka itt ki fog tegye a következőket. [SEAL BARK] DAVID Malan: Oké, így ez fog menni, amíg kitaláljuk, hogyan ez a program működik. Tehát ebben az időben, ez az állat két szkript, és mi Érdekes az, hogy ezek a szkriptek fognak végrehajtani párhuzamosan. Szóval, mivel mindketten kezdődik egy zöld zászló kattint, ez olyan, mint megy, mint ez, és mindkét program elindításához az egyszer még ha ők looping örökre. Tehát a legjobb forgatókönyvet, van némi logika. Milyen funkciókat jelent, amelyek ott? [SEAL BARK] KÖZÖNSÉG: [hangtalan] DAVID Malan: Ha ez mi? [SEAL BARK] KÖZÖNSÉG: Ha elnémított nullára, ez megy folyamatosan játszik a szólalnia. [SEAL BARK] DAVID Malan: Oké, jó. Tehát, ha tompa, bármi is ez, ez a narancssárga dolog nulla, Majd játszani az oroszlánfóka hang és úgy gondolja, "Ó, hi, "két másodpercig. Nos, nem tudom, mi van némítva, de a nulla idézi fel a gondolata hamis vagy kikapcsolása. Tehát, ha néma hamis, így ha nincs elnémítva, folyamatosan játszik a hangot. Rendben, nos, hogyan tiltsa le ezt a dolgot? Nos, nézzük meg a második script odalent. A második forgatókönyv szerint megállapított elnémított nulla. Értesítés ez is narancssárga, akkor mi Scratch jelent ez szin blokkok azonos árnyalatú, ha ez a fajta A logikusan kapcsolódik. Szóval, ahogy elnémítja up top volt narancssárga, így van némítva itt lent említett narancssárga blokk. De ez egy változó feladatok, így csakúgy, mint a algebra, akkor x, y és z, programozási van változók, de ők általában - nézzük szünet egy pillanatra, és a szám hogyan hogy hagyjanak fel ezzel ugat. Hogyan tudom ezt megtenni? [SEAL BARK] DAVID Malan: Oké. Megállt. Oké. Tehát akárcsak algebra van változókat az x, y és z, de a programozás, amelyek változók, mint x, y és z jelentése általában elítélik, mert ők egyáltalán nem kifejező. Nincs szemantikai jelentése egyáltalán, így a legtöbb programozási nyelvek, változók teljes jogú nevek vagy szavak vagy kifejezések, mint némítva, azaz amit csinálnak. Szóval ez a második forgatókönyv is hallgatta örökre, és azt mondta, ha a gombot, a billentyű Space, a gombot, kérdőjel. Szóval van egy feltétel egy logikai kifejezés, ami fog válaszolni a kérdést, vagy őszintén vagy hamis, akkor van belül, ha a szóköz gomb megnyomása ÉS IF elnémított nulla, állítsa elnémított egy, ELSE állítsa elnémított nulla. Tehát ez a másik villát a közúti, és figyelje meg, hogyan volna ágyazott két IF feltételek egyik módja az ellenőrzést a Szóköz gombot, mert ha így van, akkor sem akarom, hogy ezt a Így vagy úgy. És hogyan fordítsa az értéke elnémítva? Nekem van, hogy ellenőrizze, hogy nulla? Ha így van, hogy ez az egyik, egyébként teszi nulla ezért váltás a két állam. Rendben, tehát van, akkor ezek közül néhány alapvető konstrukciók. Van logikai kifejezéseket, és észre is, ezek nem is olyan ismeretlen. Sőt, itt van egy gyors screenshot Harvard kurzus CS50 vásárlási eszköz, és minden olyan webhelyet, hogy ott van jelölőnégyzetek and drop downs valóban, egész idő alatt, használ Logikai kifejezések. Ebben az esetben is, ha rákattint a jelölőnégyzetet tanfolyam nagyobb vagy egyenlő 4,5-, vagy az azonos mellé kar, te megadásával logikai kifejezés. Mutasd meg tanfolyamokat, melyek esetében ez a kifejezés igaz. Vagy a jobb oldalon, nem ellentétes a tanfolyamok vagyok figyelembe, ha ez be van jelölve, akkor igen, az ellenőrizni kívánt ez a feltétel, amit meg szeretnél figyelmen kívül hagyni. Tehát logikai kifejezések egyfajta egész, de amikor mi őket olyan körülmények között, hogy az IF feltételek, ha Másnak, vagy mi is szimulálni mélyebb szinten, IF ELSE IF ELSE - így ez egyfajta hármas állam. Mehetsz így vagy így vagy így. Mi lehet tartani fészkelő dolgokat menni a különböző irányokba. Szóval Scratch rendelkezik ezekkel a hurok, mint a Forever. Meg ezek a funkciók, mint ismétlés 10, néhány véges számú alkalommal. Megvan a képessége, most beállítja a változókat, így ebben az esetben Már bejelentett, például a változó nevezett zokni. Már inicializálva 0-ra, és ez még egy irányban tudtuk volna ide Joseph, ahol talán csak nyomon követheti, hogy hány zokni van, és megszünteti A program, amikor a változó értéke 2 lehet. Ez lenne egy másik módja a fajta általánosítás, hogy a probléma, és csinál valamit újra és újra. Nos, menjünk előre, és most vezetnek be egy pár új dolgot. Tehát azoknak, a korábbi programozási tapasztalattal tudom, hogy sok nyelvben tömbök, vagy vektorok vagy listák, és valóban, Scratch van valami, mint ez is. Tehát lássuk, ha nem tudjuk a dolgokat, hogy a következő szintre itt. Ha megvan a képessége, most, ezekkel a puzzle darabok hozzá valamit, mint egy szót vagy számot, egy változó, tudok kezd felhalmozni a dolgokat. És ez tényleg nagyon apropos a dolgok, mint a játékok, szerepjáték játék, ahol te ilyen séta néhány fantasy világ gyűjt olyan dolgokat, felvette a dolgokat, keresett pontot, vagy a hasonlók. Érdemes nyomon követni valamiféle leltár, és a Valóban, ez az, amit az egyik egykori hallgatók ide tette úgynevezett Fruitcraft RPG. Szóval hadd menjen előre, és nyissa meg ezt a dolgot itt és Fruitcraft, van ezen a világon fel tetején. Akkor hadd menjek előre, majd kattintson a zöld zászlót. Közlemény a bal felső sarokban valamiféle leltárt. Ez végre Scratch, mint amit hívom tömb vagy egy listát, és most már ez a kis animáció. Szóval, ahogy kezdtük korábban a cookie szerelmi történet, és akkor előrehozott macskák és oroszlánfókák, most már lehet dolgok, amelyek még interaktív. És ez a kis kék srác, én is elkezd mozogni a kis otthon van. Tehát úgy néz ki, van neki egy kilépési idelent, szóval én vagyok a a nyilak gombok, fel, le, balra, jobbra. És most én vagyok kint, úgyhogy amit kaptam itt. Úgy néz ki, mint egy narancs, és valóban, amint érintse meg a narancs, ez lesz lehuppant az én leltárt. Ha elmegyek ide a cseresznye, most már van valami még az én leltárt. És ez mind szép és aranyos, de úgy gondolja, hogy hogyan, most, ez a megvalósítják. Hát, van ez a fogalom a lista, és ez nyilvánvalóan a puzzle darab, csak azt, amit szeretne hozzáadni, adjunk hozzá narancs, adjunk hozzá cseresznye. Nos, mi ez a kis kék fickó csinál? Nos, ő egy sprite. És feltehetően, a narancs és a cseresznye - ők maguk voltak külön sprite. És a körülmények logikai kifejezések, a diák valószínűleg képes kifejezni IF kék fickó megható cseresznye majd adjuk hozzá a szót cseresznye az ő leltár, és akkor is elrejteni a cseresznye sprite. Tehát a motorháztető alatt, de valószínűleg még mindig van egy cseresznye sprite ott. Már csak azt mondta, hogy lesz hatékony láthatatlan. Most, ha tartom séta ide, mi is ezt közelebbi dolog, ha tudok menni, és olvasd el a jel. Tehát, ha kék fickó megható jele, mi lehet ez a Say mondat csakúgy, mint a macska beszélt hozzánk szavakban, hello, korábbi, "Got egy kis gyümölcsöt? Hozd el a gyümölcs helyre. "Rendben, tehát most, mint kiderült, Nálam van a irányban. Mehetek át ide, hogy a gyümölcs-hely, sorba magam az ajtó. Most itt vagyok. Tudok felmenni a férfi a pultnál. Azt állapítja meg, hogy közel vagyok hozzá, így nem kell egészen azonos megható, és megnyerte a játékot. Tehát ott van Fruitcraft RPG. Így tudjuk csinálni a dolgokat, még fejlettebb, mint ez. Mi lehet hozzáadni hangokat. Mi lehet hozzá pszeudo véletlenszerűség. Mi adhat összetettségét. Hadd menjek előre ide, és ahelyett, hogy ezt magam, hadd mutassam meg az egyik kifinomultabb beadványok kaptunk tavaly egy bizonyos valaki nevű Blake. Lehet van egy önkéntes, aki kényelmes megjelenő kamera és fel a játékot? Mi a helyzet ott? Gyere fel. Rendben, így a játék, hogy van, csak tudatlanul önként játszani - [Taps] DAVID Malan: - a valamit tavalyi úgynevezett "Frogger". Mi a neve? Renda: Renda. DAVID Malan: Redna? Renda: Ez olyan, mint Brenda egy b. DAVID Malan: Oké, Renda. David. Örülök, hogy megismerhetem. Tehát itt a "Frogger", és ha sikerülne növelni a hangerőt csak egy kicsit, akkor ez a kis zöld béka az alján. Használhatja balra, jobbra, fel és le, és a cél az, hogy át az utcán, át a folyón, és érintse meg a liliom párna a tetején. Aw. Még egy t - redo, rendben? Nézzük hit stop. Senki nem látta, hogy. [Taps] [Taps] DAVID Malan: Igen. Nagyon jól sikerült. Kiváló, köszönöm. Szóval ez volt Frogger. Most, hogy tudod, mit ütött magatokat bele, még egy önkéntes egy másik játék által benyújtott másik diák. Azt akarod, hogy gyere fel? Mi a neve? RICHARD: Richard. DAVID Malan: Richard. Rendben, Richard, gyere fel. [Taps] DAVID Malan: Van valami, ami akkor szólal meg ismerős hamarosan, úgyhogy itt az utasítások. Tehát egy pillanatra, néhány puzzle darab megy felfelé A képernyőn néz vagy balra vagy jobbra, felfelé vagy lefelé. Fogsz van-hoz megüt a nyíl billentyűk olyan módon hogy megfelel azoknak a puzzle darabkái sorakoznak fel A helyőrzők tetején. Tehát, ha látsz egy balra nyíl, és egy vonalba a bal nyíl, nyomd meg a balra nyilat. Lehet, hogy kezdődik. [MUSIC - "erősebb" Kayne WEST] DAVID Malan: Rendben, nagy tapsot Richard. [Taps] DAVID Malan: Nagyon jól sikerült. Köszönöm. [Taps] DAVID Malan: Tehát fun, és látszólag egyfajta megfélemlítő, mert lehet, hogy végre valami olyan látszólag bonyolult, mint ez, rájönnek, hogy a hallgató nem fejtette ki, és csak annyit írj mindezt egyszerre. Inkább, akkor lebontják a problémát látszólag bonyolult mivel ez a sokkal kisebb darabokra, és ez is a lesz a téma. A legrosszabb dolog, amit tehetünk, írásban a program a legtöbb olyan nyelv, hogy üljön le, hogy nagyon izgatott, írjuk be a egész átkozott dolog, és aztán csak remélem, hogy működik a alkalommal, amikor befejeztük. Ehelyett, a folyamat a programozás általában nagyon tudatos, nagyon iteratív, ahol csak megállapított nagyon kis lépések magatoknak, harapás méretű darabokra akarsz harapni ki, és úgy, hogy ezeket a józanság ellenőrzéseket, kis mérföldkövek meg tud felelni. És akkor építeni a tetején e, hogy több kifinomult dolgok is. Így például, hogyan álljunk neki végrehajtása egy játék, mint ez? Hát, őszintén szólva, én minden bizonnyal kezdeni, csak alátámasztó egyik legfontosabb egy időben. Nézzük csak végre támogatja a balra nyilat. Így a hallgató kellett valahogy létre a Photoshop, vagy Scratch magát a kis grafikus szerkesztő, egy nyíl gombot, hogy néz ki, mint az egyik a bal felső sarkában ott, csak a szürke helyőrző. Ezután a diák kellett kitalálni, hogy mit x, y koordináta tedd, hová tegye az ablakban. 0, 0 van itt, így van, hogy kitaláljuk, hogy hány pixel, vagy pont, hogy ellensúlyozza azt nyilat A képernyő felső részén. És akkor egyszer, hogy ez a hely, a program nem a ténylegesen semmit még, így akkor kell egy második sprite, a Például egy zöld nyíl, ami szintén balra mutató, és akkor meg kell kezdeni írni néhány parancsfájlokat is. És észre talán, hogy ezek a dolgok kezdtek jön különböző sebességgel, és a színek is különböző helyeken, és ez azért van, mert a tanuló felhasználhatja egy kicsit pszeudo véletlenszerűség. És pszeudo véletlenszerű, csak azt jelenti, válasszon egy számot között valamit, és valamit, mert akkor kezdenek térkép dolgokat, mint például, ha a szám egy- 5, nos, tegyük a dolgot zöld. Ha ez 6 és 10 között, nézzük, hogy a puzzle-darabot piros helyette. Mindaddig, amíg van egy módja generáló valamilyen véletlenszerű, akkor majd döntéseket alapuló véletlenszerűség. És ne mondja álvéletlen, mert van egy piszkos kis titka. Számítógép nem jön ki véletlen számokat. Ők csak akkor van, amit ők mondták, mert ők ember alkotta eszközök. Ezek nem csak kitalálni, több, mint mi emberek érzem magam, mint tudjuk. A számítógép, hogy tegyen valamit matematikai megidézni a illúzióját matematikai szám, néha a mai nap az idő, mint a bemeneti kitalálni, mit szám vissza, hanem inkább, hogy egy másik időben. Most, csak tudom, hogy mi lehet generálni pszeudo véletlenszerűség. Szóval, ha már megvan a képessége, a bal nyíl elindításához megjelenő különböző időpontokban és különböző sebességgel, majd Mehetek vissza, és adjunk hozzá néhány ilyen IF feltételeket. Ha ez a sprite hozzáér a másik, és a balra nyíl gomb lenyomása - így három feltétel ebben az esetben. Tudom használni, hogy AND blokk talán ebben az esetben - AKKOR akarok menni előre, és növelni a pontszámot. És a tetején, van egy pont, van Awesome, Cool, Jó, és Boo. Szóval van látszólag öt változó, hogy ez a diák használt nyomon követni a különböző mutatókat. Tehát röviden, a végeredmény lenyűgöző. Ez vicces, ez szórakoztató játék, ez magával ragadó, de ez nem amennyiben a diák kezdődött. Ő kezdett egy sokkal kisebb lépésekkel. Tehát mi van némely más építőkövei, hogy mi lehet szövik be ezeket a programokat? Nos, ez a másik fogalom a legtöbb nyelven, Scratch köztük ismert szálak. Tehát egy számítógép valójában nem igazán csinál több dolgot a időben, legalábbis általában nem. Inkább, egy számítógép általában csak egy CPU, és akár bár számítógépek szuper gyors, és ezért, a látszatot keltik, csinál több dolgot egyszerre - ellenőrizze a mail, kapok egy pillanatra üzenet, dokumentum nyomtatásához - tényleg, egy számítógép, csak ugrás nyomtatás IMing az e-mailezés, vissza és vissza, valamint oda-vissza olyan gyorsan, hogy mi lassú észjárású emberek egyszerűen nem veszik észre, hogy ez valójában futó E programok egy kicsit egy időben. Nos, ez egy kicsit egy fehér hazugság ezekben a napokban, mert manapság, Sok a számítógépek úgynevezett multi-core, így van egy CPU, de több mag, ami olyan, mint tekintettel több CPU. És néha, számítógépek valóban több dolgot csinálni egy időben, de általában egy műsorszámban programot támaszkodnak ezeket a dolgokat az úgynevezett szálak. Tehát egy szál van valami, mint egy miniatűr program, amely képes léteznek a másik miniatűr program futtatható párhuzamosan, vagy legalábbis az alatt futó illúziót, hogy ők fut egyszerre. Szóval Scratch támogatja ezeket a dolgokat az úgynevezett szálak. Egyszerre több szkripteket végrehajtó egyszerre, mint ahogy mi tette az oroszlánfóka, és ez lehetővé teszi számunkra, hogy ténylegesen ezt követően kölcsönhatások közül sprite. Hadd menjek előre, itt és húzza fel, mondjuk, szálak, és játék ezt az alábbiak szerint. Van két sprite, akik mindegyike meglátjuk már csak egy script. És azt veszi észre, úgy tűnik, hogy némi intelligencia az macska ez, mert egyre közelebb - [Üvölt] DAVID Malan - és közelebb a kis madár. Hogy van a madár operációs? Nos, vessünk egy pillantást a madarat először. A madár script mondta, amikor a zöld zászló kattint, menjen x értéke negatív 115 és y értéke 150. Szóval én csak kitaláltam egy véletlen helyet, ahol szerettem volna a bird kezdeni, és én csak lehuppant ott alapértelmezés szerint. Akkor Mindig IF nem érnek össze macska, így ez egy másik fajta looping konstrukció, de ugyanaz a gondolat, ezt újra és újra és újra. Amíg te nem érinti a macska, mozog három lépést, és ha a szélén, ugrál, ahol ez egyfajta tükörképét a biliárd értelemben. Szóval így a madár körül mozog a fajta látszólag véletlenszerűen, de ez csak azért, mert ez pattogó le a falak ebben az esetben. Most a macska, eközben a fajta csalás. A macska, amikor a zöld zászló kattint, igen, kezdődik Néhány helyen, egy véletlen location - legalábbis részben, mint egy a felszedő random zöld blokk ott - majd örökre IF érjen a madár, játék az oroszlán hangot, majd megáll script. Tehát, amikor azt mondtam megszűnik, vagy kilépés előtt, van egy puzzle darab Scratch, amely csak ölni a program, hogy a pont azért, mert ez a fajta logikusan tenni. De egyébként itt észre, hogy mi fog történni. Point felé a madár és mozog egy lépéssel. Tehát ez a pont felé madár egyfajta előny a macska bír, hogy ez homing részt a mozgó madár, és mi is most, hogy ezt a programot a sokkal érdekesebb. Ahelyett, hogy mozog egy lépéssel egy időben egy CPU ciklust, per sztrájk autópályadíj a harang, hogy úgy mondjam, hadd menjen előre, és mozgatni, mondjuk, öt lépés egy időben, mint a macska. Kattintson a futni, és most igazán találja meg gyorsan. Ha duplázni ezt tovább 10 lépés, ez a fajta megy jobb neki. Most, tudunk adni a madár, talán egy kis előnyt. Menjünk a madár, és azt mondják, hanem a mozgó három lépésből áll, menjünk neki 30 lépéseket. De még mindig elkapta a végén. Szóval itt van két szálat. Ez bebörtönözve Scratch két szkriptek és két sprite, de az ötlet más nyelveken, hogy meg lehet írni, lényegében, túl sok program, mint ez, és őket futni igazán, vagy imaginarily, párhuzamosan. Nos, van még ez a fogalom a programozási nevei események, és ez az, amit nem fogunk látni C. Nyelv nevei C. fogjuk látni felé félév vége web programozás, amikor bemutatjuk a JavaScript és a fogalma épület weboldalak dinamikus és interaktív a felhasználók körében. Tehát ebben az esetben, van egy nagyon egyszerű példa a két sprite, fiú és lány, akik mindegyike rendelkezik saját szálak, de valahogy ez a kettő közötti kommunikáció útján valamit úgynevezett események. Akkor hadd menjek előre, itt és nagyítani a fiú script, amely úgy néz ki, mint ez. Amikor a zöld zászló kattintottak, örökre tegye a következőket. Ha a kulcs Space, vagy a Space Bar, van nyomva, mondjuk Marco két másodpercig, ez tisztán esztétikai szóló képernyőn, egy kis beszéd buborék, de aztán sugározzák. Tehát adás egy másik Scratch darab ez képviselője egy osztály funkcionalitás programozás , amely lehetővé teszi a különböző programok, a különböző szálak, az inter-kommunikálni, hogy valahogy küldeni üzeneteket, az egyik a másikra. Átadás egy darab papír osztály egyfajta a low tech egyenértékű. Szóval sugárzott esemény. Tudok küldeni ezt az üzenetet, és a szó esemény teljesen önkényes. Scratch néha ezeket a legördülő menüben, úgyhogy csak jött egy véletlen szót, mint eseményt, mert most, amit a fiú nem mikor nyomja meg a gombot ő sugározza ezt az eseményt. És ha megnézem most a lány script, ő parancsfájl szuper egyszerű, mert mindent, amit meg kell tennie, hogy nem jár, ha a zöld zászló kattint. Úgy tervezték, hogy keresetet, amikor megkapja idézet, idézet vége, "Esemény", és ezen a ponton, ő hallgatja ezért az úgynevezett esemény újra és újra. Amint azt kap az esemény, ő fog kiabálni Polo két másodpercig. És így talán következtethetünk ebből pontosan mi a következő eredmény lesz. Hadd kattintson a zöld zászlót. Semmi sem történik, mert kell, hogy mit csináljon? KÖZÖNSÉG: Space Bar. DAVID Malan: Space Bar. Boy mondja Marco, lány mondja Polo. De ez nem nehéz kódolni per se. Az inter-közötti kommunikáció scriptek, így most már megvan a képessége, hogy még bonyolultabb programokat, ahol E kettő valahogy közötti kommunikációt. Szóval, milyen irányba tudjuk ezt? Nos, a probléma meg 0, tényleg, a cél az, hogy szórakoztató Scratch. A hacker verzió, akkor inkább szórakoztató egy kifinomult változata Scratch nevű BYOB, Build Your Own Blocks, de az ötlet ugyanaz. Ön képes lesz - Igen, ez szándékos volt. Ebből jött Berkeley. BYOB a hacker kiadása változata, de mindkettő demográfia, Standard Edition és a hacker kiadás egyaránt, a cél kéznél az elkövetkező hét tényleg csak merülni mély, a kezed piszkos programozás, és győződjön meg valami érdekeset, valamit interaktív, tégy valami művészi, hogy valami szórakoztató, hogy valóban bizonyítják, hogy a hét végéig, akkor van egy projekt, nem csak az első CS50 Pset, de akkor egy kis valami, amit bizonyítani tudja, ki az Annenberg barátok, vagy akár családi feltöltésével, hogy MIT honlapján. És mint mondtam, szerdán várunk 90%-át az osztály, általában, hogy nem a szokásos kiadások. Ismerd fel, hogy van még ez a piac azok számára, akik egyébként találja magát egy kicsit unatkozni az alapokat és tényleg akar merülni és kézműves jövőkép már tekintette előzetes háttérrel e barátságosabb környezet. Hadd húzza fel egy másik példa arra, hogy az egyik korábbi diákok itt volt, és mondja el egy kis valamit a dalt. Ez hasonlóan, mivel ez játszik, gondold át, hogyan megy a E program végrehajtása során a pontosan ugyanezen építőelemek, egy kis ál véletlenszerűség, és egy kicsit ismerős dalt. Ha tudnánk növelni a hangerőt, csak egy kicsit? [MUSIC - "Esik az eső MEN" AZ IDŐJÁRÁS GIRLS] DAVID Malan: Ez azt CS50. Fogjuk látni hétfőn. [Taps]