>> [ZENE]
>> Ez CS50-- Harvard Egyetem bemutatása
a szellemi vállalkozások számítástechnika
és a művészet programozás.
És a nevem David Malan és Csak arra gondoltam, ma reggel,
ez már hihetetlenül 20 év ma mióta utoljára ültem, ahol ti most.
>> Ez volt 1996.
Voltam másodéves, és én figyelembe CS50 a legelső alkalommal.
És én még nem is kelt fel az ideg hogy magam elsőéves,
részben azért, mert az idő.
Computer science nekem olyan volt, mint, meh.
Én egy kicsit geek növekvő fel, de én nem nagyon
bármilyen szellemi érdeklődés tűnő
hogy csak egy csomó emberek programozása minden alkalommal.
>> És féltem, hogy őszinte legyek.
A tanfolyam és a számítástechnika több általában volt, és bizonyos mértékig,
továbbra is ilyen jó hírnevét a területen a vigyázz, ha csak azért, mert oly sokan
nem ismerik, és biztos abban, hogy.
És ez tényleg nem volt, amíg meg nem vásárolt Az ebbe az osztályba, hogy másodéves fall--
és még akkor is, csak beiratkozott mert a professor--
az egyik első mentorok, Brian Kernighan most Princeton--
lehetővé tette, hogy az osztály nem felelt meg.
És valóban, ez az, amiért ma teszik és ösztönzik
a diákok, hogy ez az osztály sat / unsat.
>> És csak akkor, a a félév végén
vettem észre, mint, wow, ez nem volt ilyen egy ismeretlen területen.
Valóban, ez volt a Nagyon képessé területen,
és izgalmasan, különösen a későbbi,
mint vettem nyelvtanfolyamok Dramatic Arts 101 és Latin A
majd végül grad iskola régészet,
nem igazán elkezd látni a csomópontok ezen a területen, a számítógép
tudomány, a humán, természettudományok, a művészetek, az orvostudomány,
és a hasonlók.
És ez az, amit csak úgy ügyes a számítógépes tudomány
végül, ahogy reméljük, hogy see-- van az alkalmazhatósága
Ezen más területeken, és hogyan lehet hogy néhány mai és a félév
ötletek és gyakorlati ismeretek vissza a saját domain,
és valóban felfedezéséhez kereszteződés A bölcsészettudományi és a tudomány.
>> Így 73% -a akkor, ha az utolsó évben minden olyan jel,
még soha nem vett a CS tanfolyam előtt.
Tehát, ha, mint én, akkor érzés egy kicsit
fél, vagy őszintén te nem igazán, miért te még itt.
Lehet, hogy csak követte néhány barátaival Sanders most.
Ez teljesen rendben van.
A cél itt az, hogy horog te és a te megnyugtassa
hogy ha látod a bal és a jobb,
fogsz látni osztálytársai a a kevés, vagy sok tapasztalat
hogy te magad talán.
És valóban, elmondjuk Egyes statisztikák később még ma
hogy milyen demográfiai Az osztály a következőképpen néz ki.
>> És a hozzáadott reassurance-- és ez mi nem azt jelenti, mióta átvette a tanfolyam
Néhány évvel ago-- a A tanfolyam tematikája
az this-- hogy amit végül kérdésekben a tanfolyam
nem annyira, ahol a végén fel képest az osztálytársaival,
de ahol a 11 hét, a végén a félév végén képest magad
a hét 0, ami hol vagyunk ma itt.
És ez az, amit én rájöttem mindazok évvel ezelőtt.
És tudom, hogy sok osztályok ezt mondom, de ez
Különösen igaz számítástechnika.
A nap végén, ez a mező az ismeretlen, mint volt nekem
és lehet, hogy te, tényleg csak a problémamegoldás.
És mint ilyen, ez nem is ez a alkalmazhatóságát, hogy más területeken.
És valóban, ha megpróbáltuk eltávozni, ez mit jelent,
ez problémamegoldás lényegét, merem.
Van input-- így bármi is az, hogy próbálunk megoldani.
Van kimenet, amely remélhetőleg a megoldást a problémára.
És akkor, ahogy azt mondjuk a számítástechnikában,
itt van ez a fekete doboz a közepén, amit nem feltétlenül
kell törődnünk, hogyan működik.
Te magad végül talán végre, mi van benne, hogy a doboz.
De a mai célokra és több általában az életben, minden érdekel
az, hogy ezek a problémák megoldódik.
>> És mi ez a tanfolyam végső soron vizsgálja
a kereszteződés ezek be- és kimenetek,
és ezeket az úgynevezett algoritmusok, mint azt hamarosan látni,
hogy végre mi is alatt van, a motorháztető.
De ezek a bemenetek és ezek outputs-- mit is jelent ez valójában?
Nos, a végén a nap, meg kell valamilyen módon a képviselő információt.
Ez különösen igaz a számítógép, amely a képzelet és összetett, mivel
tűnhet, egy nagyon buta eszköz.
Tart electricity-- akár a kábel vagy akkumulátort input--
és akkor némi preprogramed válaszok a képernyőn.
>> De hogyan jutunk el elejétől a végéig ott?
Nos, mi a megoldandó probléma?
Nos, talán talán, a a kezdete minden félévben,
próbálja meg, hogy jelenléti egy szobában, mint ez.
Szóval lehet csinálni, mint egy, kettő, három.
Vagy talán, ha én tettem hogy egyfajta nyomon követni
A myself-- nyomon követheti things-- Azt is hamar elfogy az ujjait.
Szóval talán csak hash marks-- egy személy, kettő, három, négy, öt, hat,
hét, nyolc.
És mindannyian valószínűleg tette ezt, hogy a kezedben
vagy egy darab papírra.
És ez valójában csak úgynevezett egyváltozós notation--
ahol ha csak egy betű a ábécé, egy vagy hash
jel ebben az esetben minden input szeretné számolni,
meg kell, hogy tegye le egy ilyen letters-- egy ilyen jeleket.
>> Rendben.
Ez mind szép és jó, és Nem olyan bonyolult.
De a számítógépek nem minden hogy sokkal bonyolultabb.
Sőt, a legtöbb akkor valószínűleg tudom, még ha már nem igazán
tekinteni, hogy ez mit jelent, hogy a számítógépek csak megérteni nullákat
és ones-- az úgynevezett bináris rendszer.
Mi, emberek, ezzel szemben, így sokkal kifinomultabb, amennyiben
ahogy mi értelmezzük nullák keresztül kilences.
>> De még ha bináris, első ránézésre nem olyan ismert,
Kiderült, hogy olyan, mint a rendszerek és az ötleteket, hogy már tudjuk.
Így például, hogy ezt.
Ez csak egy szimbólumok sorozatát.
És mindannyian, amikor pillantva azt, valószínűleg
gondolja 123-- semmi nagyon érdekes is.
De miért ez a szám, 123?
Ezek csak glyphs on A screen-- csak minták
hogy valaki rajzolt vagy gépelt.
De ha te, mint én, akkor valószínűleg emlékezni osztályos iskola
hogy vannak fajta oszlopok vagy helyek itt.
Van az ember helyét és a Tíz helye és az a száz helyett.
És az oka, hogy ez a 123. és a Nem csak a minta három szimbólumot
azért van, mert, természetesen, ha Van egy a több száz helyen,
A következő matematikai 100-szor egy, majd kettő a tíz helyett.
Tehát ez 10-szer a 2, majd három Az ember helye, és ez 1 alkalommal 3.
És ha hozzá az összes ilyen fel, a Természetesen, akkor kap 100 plusz 20 plusz 3.
>> Így kezdődött csak egy minta A symbols-- egy alphabet--
de aztán feltérképeztük értelmében rá ez útján ezek az oszlopok.
Nos, kiderült, hogy számítógépek nagyon nem
hogy eltér a te és én.
De ahelyett, hogy a hatásköre 10, így speak-- 1, 10, 100, 1000,
10.000 helyén, és így forth-- valójában
csak használja hatáskörét 2-- így egy, 2, 4, majd
ha teszünk több számjegy, 8, 16, 32, 64, 128, és így tovább.
És így ez így számítógépen lenne a szám 0,
akárcsak mi, emberek.
>> 0, 0, 0-- és valószínűleg kitalálni milyen minta nullák,
ha a számítógép csak beszélnek 0 vagy 1-- mi
minta fogja képviselni A szám, amit az emberek tudják, mint 1?
Yeah-- 0, 0, 1.
Rendben.
Így a 0, 0, 1, hogyan képviselünk 1, így lehet, hogy hajlik majd
hogy képviselje a 2-es szám, ha van A négy helye és a két helyét
mint az egyetlen hely, mondhatnánk, nos, ha lenne egy 1 az ember helyét,
és most szeretnénk számolni akár 2, lehet, hogy
Ehhez, és hagyjuk, hogy ez egy nulla.
De persze ez nem így a tizedes rendszer egyaránt.
Ha tesz egy számjegyet mind a két oszlopot,
megvan, hogy nem a számtani.
Tehát mi szám tettem véletlenül éppen képviselnek?
>> Tehát ez 3, mert 2-szer 1 plusz 1 szer 1, persze, ad három.
Ez lenne tehát a kettő.
A kis fajta fejtetőre, hogy úgy mondjam, mint 0 válik egy, mint egy 9 szerepek az
és lesz egy 0, ha szállítja a 1.
Ez akkor lenne három természetesen.
Four-- másik érdekes dolog történik, ahol azok felborulása
és magával viszi a 1, hogy úgy mondjam.
Tehát ez, persze, 4.
>> De ha gyorsan elő most, mi a legnagyobb szám megy
lenni, hogy a számítógép képes képviselni?
Tehát csak hét ebben az esetben, nem igaz?
Mert van egy a négy, egy, a két, egy az egy.
Tehát ez 4 + 2 + 1.
Annak érdekében, hogy megadja neked a hét.
És valóban, ez lenne Úgy tűnik, az első pillantásra
hogy a számítógépek száma nem magasabb, mint ezt.
>> De ez természetesen nem igaz.
Mit tegyünk az emberek nem, ha azt akarjuk, számolni magasabb, mint 999?
Csak vigye az egyik, és csak adjunk hozzá egy negyedik számjegy a bal oldalon.
És valóban így tudtuk.
Mi volna egy nyolcas helyezzük és 16. helyét,
és egy 32 helyét, 64, 128-- és lehet csak menj tovább, egészen a végtelenig.
Tehát ezek a nullák és ones-- Az úgynevezett bináris system--
az, amit egy számítógép tudós lenne általában hívni egy kicsit, vagy bináris számjegy.
>> De most, hogy jutunk a fogalom vagy a grafikus ezeket a dolgokat
hogy egy igazi számítógép?
Úgy tűnik, hogy kihagyom a lépés itt.
Nos, az egyetlen input végén A nap, a laptopomon itt
ez áramlását villamos energiát.
Még ha ez hosszú volt óta Gondolt
vagy nem gondolt hogyan elektromos művek,
van elektronok áramlása vagy ki, és ez az én ilyen bemenet.
>> Tehát, ha ez minden, ami vagyunk szerzés input itt,
mit tehetünk, hogy az információ?
Nos, azt gondolhatnánk, a nulla Csak hiánya villamos.
Semmi sem flowinw, semmi sem mozog, nem történik semmi.
Ez csak az alapértelmezett state-- nulla.
De ha van áram folyik, miért nem mi csak önkényesen, hanem globálisan
következetesen, hívja, hogy egy.
>> Tehát egyszerűen azáltal, hogy nincs áram, van egy nulla, igen erő,
van egy one-- nincs áram, igen erő.
És így, a valami több fizikai vagy elektronikus
elkezdjük végrehajtani ezt a fogalmat a valami vagy hogy az egyik, vagy egy nulla.
Sőt, meg tudnánk csinálni itt.
Tehát itt, én nem három, hanem nyolc izzók, amelyek mindegyike
saját kapcsolót.
>> És így, ha akartam, hogy képviselje A hetes szám itt,
Lehet, hogy kapcsolja be a három izzók.
És valóban, belülről számítógépem millió,
milliárd dolgok, amelyek csak kisebb, mint, az úgynevezett tranzisztorok,
kapcsolók, hogy csak kapcsolja be és ki.
Tehát ezek big-- viszonylag big-- kapcsolók belülről én laptop--
Sok, sok, sok, több kapcsolót.
De ők pontosan hogy-- kapcsolja valamit, kapcsolja ki valamit.
És mint ilyen, a számítógép is képviseli, azokkal millió vagy milliárd
tranzisztorok, sok- sok nullák.
És van más hardver is, hogy lehetővé teszi, hogy adatokat tároljon a hosszú távú,
így, ha húzza a dugó, ne veszítse el azt.
De ez a történet egy másik napra.
>> Tehát mit tehetünk ezekkel bit?
Lehet mi csak azért, hogy a nyomás le a me--
Lehet, hogy valaki akar jönni ide, és felajánl egy demo?
Láttam ezt a kezét először.
Hogy hívnak?
Máday: Maday.
DAVID MALAN: Madajjal, gyere fel.
Örvendek.
Máday: Örülök, hogy találkoztunk.
>> DAVID MALAN: Gyere erre.
Nem kell ajak téged.
Rendben.
Tehát itt, van, notice-- egy, two-- fogunk szerkeszteni, hogy out-- egy, kettő, négy,
nyolc, 16, 32, 64, 128.
Ez szándékosan van.
Van nyolc bit here-- bináris digits-- nullák.
És kicsit egy hasznos egység measure-- Nem hasznos mértékegység
magára.
Általában azt szeretnénk, legalább Nyolc ezeket a dolgokat, más néven
egy byte.
Tehát van egy byte bitek itt.
>> Tehát, ha azt akartuk, hogy kihívást jelent a, például kifejti, bináris,
ez az érték here-- 42.
Szeretné, hogy a stab a dolgot?
>> Máday: [hallható].
DAVID MALAN: Igen, csak nyomja meg a kis fehér kapcsolók előtt.
És azt akarja, hogy pontosan ki 42, és talál gazdára
ez CS50 stressz labda, ha megkapod.
Rendben.
Tehát van 32.
Mi lesz szükségünk 42.
Tehát ez egy nyolc, szóval 40.
És excellent-- nagyon jól tette.
Köszönöm.
>> [TAPS]
Rendben.
Tehát van még egy stressz labdát.
Csináljuk még egyszer, ha lehet.
Egy másik önkéntes?
Ingyenes stressz labda, ingyenes stressz labda.
RENDBEN.
Több mint itt a középső, akarsz lejönni?
Rendben.
Tudom.
Ott vagyunk.
>> Tehát a számok here-- gyere le.
Mi a neved?
>> DAVEY: Davey.
>> DAVID MALAN: Davey.
RENDBEN.
Jöjjön fel, Davey.
Örvendek.
És mit fogunk, hogy itt spell-- ha tudna időzzön ott
csak egy moment-- az a szám 50.
De, de, de De, de ezek általános iskola mágnesek az oka.
Csak most egy kicsit nehezebb, rendben?
Még nyolc.
Rendben.
Tehát mi van ott?
Van 32.
Szép.
32 és 16 ad 48-- olyan közel.
És csodálatos.
Gratulálunk Davey is.
>> [TAPS]
>> Rendben.
Így tudjuk ezt minden nap, és nem kap minden, hogy sokkal több
érdekes és nagyobb kihívás.
De ez tényleg a point-- hogyan viszonylag egyszerű
ez, a végén a nap, amit egy számítógépeden, hogy információt tároljon,
tárolására bemenetek és végül tárolni vagy olyanok, amelyeket kimenettel.
De a számok önmagukban nem olyan érdekes.
>> Tehát az emberek, néhány évvel ezelőtt, úgy döntött, tudod mit?
Jó lenne, ha a számítógépek nem csak
számológépek számtani műveleteket, de valójában lehetett
dolgokat, mint a szövegszerkesztés, vagy e-mailben, vagy a modernebb inkarnációja
Az ilyen jellegű technológiákat.
És így a világ döntött önkényesen, hanem általánosan,
hogy ha azt akarjuk, hogy tárolja a fővárosban A betű egy számítógép, tudod mit?
Nézzük csak mindannyian egyetértünk, hogy tárolja Néhány minta nullák és ones--
bits-- hogy végül képviseli a decimális szám 65.
Majd csak mindannyian egyetértünk, hogy.
>> 66 képviselné B, 67 képviselné C,
és van csokor egyéb minták nullák, vagy a mögöttes számok,
hogy képviselné egyéb levelek mindig.
Tehát, ha ilyen mentálisan elnyelik ezt egy pillanatra,
Szándékosan fel egy át Azt, ahol H a 72 és 73.
Ha egy számítógép, akkor, összefüggésben egy szövegszerkesztő programot, vagy egy e-mail,
kiderült, a motorháztető alatt van ezek a minták a bits-- minta
reprezentáló bitek 72, majd 73, majd 33--
mi ez pontosan abban a programban?
>> Tehát hi, majd valamit.
Mi nem feltétlenül tudom, de valóban 33-- nem szerepelnek a táblázatban earlier--
egyszerűen egy felkiáltójel.
Tehát 72 volt H, 73 I, 33 megtörténik hogy egy felkiáltójel is.
De ez mind szép és jó, és valójában manapság, ahelyett,
csak hét vagy nyolc bit, hála valami
úgynevezett Unicode szemben ASCII vissza a nap,
valójában jelenthetnek még érdekes karakterek, mint
ezek eredeti angol elfogult leveleket.
De azt is jelentik, még takarosabb dolgok, mint a színek.
>> Ha valaha is hallott a rövidítés RGB, piros, zöld, kék, hogy
Csak azt jelenti, hogy a számítógép tipikusan az három bits--
néhány bitek számát képviseli a szám, hogy mennyi vörös akarsz,
egy másik bitek mennyit zöld akarsz,
és egy másik számot mennyit kék akarsz.
Tehát egy nagy szám azt jelenti, sok piros, kicsi szám azt jelenti, nem piros.
És így ezek a fajta A középső értékek itt.
>> Így adj egy kis piros, adj egy kis zöld és adj egy kis kék.
És ha összekeverjük a három árnyalat A szín együtt, ebben az esetben,
ezt kapod sötét árnyék sárga vagy barna.
De ezt a mintát nyolc plusz nyolc plusz eight-- így 24 bits--
balról jobbra, az, ahogy a számítógép jelentene, hogy az adott színt.
Most ez csak egy pontot a képernyőn.
Ha megnézzük nagyon közel a TV-re a számítógép, látni fogja a pontok vagy pixel.
És ha van egy egész rács pixel, vízszintesen és függőlegesen
van kép.
És akkor, ha figyelembe egy képet, majd a mosás
mutasd magad másik képet, egy másik kép, egy másik kép, egy másik kép,
nagyon gyorsan, akkor természetesen a filmek.
>> És így észre, ahol elkezdtük.
Elkezdtük ezekkel nullák.
Dolgoztunk onnan decimális számok, hogyan képviselje őket.
Most már az ábécé.
De más összefüggésekben várni, fel tudjuk használni még néhány apró színeket képviselő.
Amint megvan a képes megfogalmazni a színek,
megvan a képessége, hogy képviselje fényképek és animált GIF-ek
és más hasonló karakter a képernyőn.
És ha van egy csomó képek repülő az emberi egyszerre,
úgy néz ki, mint a mozifilmek, és így kap videókat is.
>> Tehát ezekkel a nagyon egyszerű primitívek teszünk
van, ahogy a képviselő végül az összes ilyen típusú médiumok.
És mi kivett újra és újra és újra, amíg meg nem
kap a legalacsonyabb szintet hogy a legmagasabb szint.
Annak érdekében, hogy számunkra ez általános elképzelés az absztrakció.
De itt kezdődött.
>> Itt most, talán jelentenek a számítógépes
a bemenet nullák és egyesek, a kimenetek nullák és egyesek,
de mi megy a dobozban?
Ez az, ahol a számítógép tudomány lesz érdekes.
Ez az, ahol valóban hozza a saját fejében viseli a problémák megoldása érdekében.
Most már úgy fogalmaz, hogy a többi félévben, igen.
Tudom, hogy a bináris működik.
Emlékszem, hogy az ASCII vagy Unicode-- A leképezés letters-- munkák.
És ez biztosan áll az oka annak, hogy
jelenthet piros, zöld és kék, és képviselik multimédiában is erős.
De ez az érdekes dolog.
Ez az, ami valakinek képes megoldani a problémákat.
>> És egy ilyen probléma szeretjük csinálni, sőt,
vesz ellátás, vagy ezt algoritmikusan.
És ismét, talán ezt.
Lehet csinálni egy, kettő, három, négy öt, hat, hét, nyolc kilenc.
És tudtam írni, le nyomon követni azt.
De ez csak, hogyan kellene képviseli az információkat.
Vagy tudnám ezt faster-- kettő, négy, hat, nyolc, tíz, 12, 14, 16, 18, 20,
22-- érzés kétszer olyan gyorsan, de ez még mindig
fog tartani egy csomó időt.
>> De kiderül, ha kihasználja még másik resource-- sőt számítógépek
Ezekben a napokban több CPU vagy agy.
Kiderült, a számítógépek nem sok dolgot egyszerre,
és valóban, ebben a szobában, jelenthetnek pontosan ezt.
>> Tehát ez egy kicsit szociálisan kényelmetlen, de ha lenne kedvemért
csak egy három lépésből álló folyamat, hadd Kérdezem mindenki a helyén van, csak
kiállni egy pillanatra.
Feláll.
Tehát azt gondolja, szám one-- így ebben a teremben mindenki,
kivéve az embereket, akik nem kötelezik, a gondolkodás számú.
Annak érdekében, hogy az Ön száma most.
Ez az első lépés, vagy egy számítógép tudós vagy programozó
jellemzően nem, megyünk kezdeni a számlálást nulla.
Ha a legkisebb számot tudjuk jelentenek azokkal izzók
nulla, ha csak hagyja őket Mindennek, én lehet, hogy csak
indul számítva nulla helyett.
És ez az, amit számítógépes szakemberek csinálni.
Szóval lépés nulla, felállni gondolni az első számú.
A következő lépés az this-- pár le, hogy valaki áll
és add meg a számokat össze.
Csodálatos.
>> Tehát ebben a pillanatban, szó szerint mindenki részt
gondol a 2-es szám, kivéve egy furcsa ember, ha van
páratlan számú ember a szobában.
És most a harmadik lépés itt fog kell this-- egyik le kellene ülnie.
Az egyik le kellene ülnie, és ha még mindig áll,
menj vissza az első lépés.
Rendben.
Így egyre több és több ember meg kell leülni.
Figyeljük meg, hogy ez okozta egy loop-- valamilyen ciklus.
Néhányan meg kell esetlenül beragadt, oda-vissza lépés között egy
és két, egy és két, egy és két.
Rendben van.
Az első hiba.
Majd foglalkozik ezzel.
Rendben.
Engedjék meg, hogy ösztönözze a dolgokat végig.
>> Elméletileg, csak egy személy áll mindenki továbbra is pár ki.
De hadd gyorsítsák fel a dolgokat az emberek még ma is áll.
Milyen számot gondol?
46.
RENDBEN.
Menj előre, és üljön le.
Ti még mindig áll.
Maradj talpon!
Milyen számot gondol?
RENDBEN.
>> Így fogunk térni hozzád.
Hátul?
Mi az?
22.
OK valaki fel top-- igen?
34.
RENDBEN.
Itt az én right-- itt?
132, nagyon szép.
22?
>> RENDBEN.
És aki még mindig áll?
Itt?
46, nagyon szép.
72.
Nem elakad sokkal hosszabb.
Igen?
30, szép.
Itt?
23?
23.
>> És azt hiszem, ez mindenki kivéve srácok, nincs nyomás.
Ó várj.
28?
Csak nyolc.
RENDBEN.
Csak nyolc.
Itt lenn?
30.
23.
24.
18.
Ez a legrosszabb végrehajtása Ennek az algoritmusnak valaha.
RENDBEN.
Tehát bárki más?
Bárki más?
RENDBEN.
Még egy.
16?
RENDBEN.
16.
Rendben.
Tehát, ha én nem fogadott senkit a vakító itt, mikor nyomja meg az Enter,
látni fogjuk, algoritmikusan, a összlétszáma Sanders.
Mert megint olyan, mintha mindenki ahogy leült, letette a szám ki
másnak, másnak, másnak, így elméletileg
A végén csak egy kényelmetlen személyt kell maradt állva.
De ez rendben van.
Mi felgyorsította a dolgokat kézzel.
Ez különösen nehéz észrevenni ebben a konkrét térben.
>> És az összes száma úgy gondoljuk, itt 546.
A teljes szám voltam kezes A tanítás fickók,
aki csinálta a régi iskola lassú út, 820.
>> [NEVETÉS]
>> [TAPS]
>> Rendben van.
Így bizony, vannak ezek a hibák.
És ez jó.
És így gondolt vissza ez Az első alkalommal valami
írsz nem feltétlenül működik.
Ez történt velem, itt is.
De nézzük most már úgy, hogy hogyan tudnánk ezt ugyanaz a gondolat, hogy valami
lehet, hogy nem látott, ami ez a régi iskola technológia here--
egy igazán nagy telefonkönyv.
És tegyük fel, hogy ez a telefon könyvet 1.000 oldalak és 1000 nevek
és számokat betűrendben belsejébe.
>> Nos, mi is egyfajta alkalmazhat hasonló ötlet, hogy ezt a nagyon fizikai probléma,
csak használ nekem.
Én csak ilyen csalt kihasználva mindannyian
A sok-sok különböző CPU vagy agya végrehajtó valamilyen algoritmus.
De ha csak kevés öreg, én is
tőkeáttétel, hogy ugyanaz a lényege egy ötlet osztódó és hódító, hogy a probléma
újra és újra, miközben a fele van, fele van, a felét akkor, félig van,
elméletileg tartott ülve, amíg mi maradt, elméletileg,
csak egy személy.
>> Tehát ebben a régi iskola technology-- mi nem
szüksége van erre map-- ezt régi iskola technológia,
lehet kezdeni keres valakit szeretem Mike Smith, az egyik oldalon egy időben.
És látom, hogy nem, Mike nincs itt.
Én még mindig az A szakaszban.
Végül találok magam a B részben.
És ez egy algorithm-- lépésről-lépésre oktatás.
Kezdd az elején, és az egyik oldalon egy időben, keresse meg Mike Smith.
Ez correct-- ezt algoritmus, vagy a megközelítés?
>> Igen, ez a helyes.
Ha Mike itt van, végül Hozok neki.
De ez nem hatékony.
Ez nyilvánvalóan nagyon lassú.
Szóval ki tudják használni a azonos twosies megközelíteni.
Meg tudom csinálni a fajta két, négy, hat, nyolc, 10, 12.
Ez kétszer olyan gyorsan.
Megyek, hogy Mike gyorsabb, ha ott van.
Ez a helyes?
Igen, de hallottam egy little-- nincs.
Most hallottam egy nem.
Igen.
Van egy hiba lehetséges.
Talán Mike csak véletlenül kap szendvics két oldalt,
mert én átrepült ez a két egy időben.
Így legalább van szükségünk egyfajta feltételes fix.
Azt kell mondani, hogy hé, ha megüt valakit, akinek a
név kezdődik a T helyett S, Jobb visszakanyarodik legalább egy oldalt.
Tehát hibás az első, de javítható.
De egyikünk sem fog keresni Mike Smith egy 1000 oldal telefon
könyv az egyik oldalon egy időben.
Mi az a normális ember fog csinálni?
Fogsz menni a S, ha tudja, hol az S.
Lehet, hogy megy nagyjából a közepén vagy kissé ferde a vége felé.
És nézek le, és Én az M rész.
De mit tud ez a probléma most,
hogy nem feltétlenül tudja, mielőtt mindannyiunkkal csak számolás magunkat
azzal egyenértékű?
Nos, Mike egyértelműen megy hogy ebben a fele a könyv
ha itt van egyáltalán, mert ez rendezve.
>> És így akkor nagyon dramatically--
>> [Ziháló]
>> Tudom.
>> [TAPS]
>> Ez valójában nagyon egyszerű, ha te le a gerinc van.
De akkor majd dobni fele a probléma van.
Most, én elhagyta az azonos problem-- megtalálja Mike Smith egy telefon book--
de most a telefonkönyvben kezdődik M és megy Z, de fele olyan nagy.
>> De ez az, ami lenyűgöző.
Csakúgy, mint elméletben, srácok, amikor mindannyian leültek csak fél egy időben,
A probléma egy fél akkora, fele akkora, újra és újra.
Így már ez a probléma lett a Ugyanez a probléma, hanem a fele akkora.
Most egy 250 oldalas probléma.
Amint látom, ó, én A T-alakú véletlenül.
Már túl messzire ment.
Tudok dobni, hogy fél A telefonkönyv-re található.
Nos, nem vagyok le egy negyede a probléma.
>> És akkor ismételje meg, ismételje meg, ismételjük, amíg elméletben, te
maradt csak egy oldalon.
És ha Mike az oldalon, Most már megoldani ezt a problémát.
De milyen gyorsan tettem megoldani?
Az első esetben, hogy elvitt, mint talán 1000 lépéseket, hogy megtalálja Mike Smith.
Lehet volna me-- Felvettem a telefonkönyvben
és elkezdtem keresni egy oldalt egy időben,
és Mike lehet 1000 oldalt később.
>> Második megközelítés talán elvisz 500 lépésben,
mert repülök a két egy időben.
És a harmadik megközelítés azonban, ez különösen erőteljes.
De nézzük meg, amit valójában tette ezt a harmadik megközelítés.
Szólok, hogy mit fogok hívni éppen ezeket nyilatkozatok itt, egyesével.
Vedd fel a telefonkönyvet.
Nyitott a közepén a telefonkönyvben.
Nézd nevek.
Aztán a dolgok egy kicsit intellektuálisan érdekes,
Ha még mindig egyszerű.
Ha Smith az egyik neveket, hogy a jelenlegi oldalon
aztán valami feltételesen.
Ez olyan, mint egy villát az úton.
Hívja Mike.
Ha Mike nevek között azon az oldalon, az úgynevezett Mike.
De csak ezt vonal esetén négy vonal fa, ha úgy tetszik, az igaz.
A válasz erre a kérdésre: igen.
>> Különben, ha Smith korábban a book-- Más szavakkal, ha én az M rész
és én keresek valakit, aki A bal oldalon, akkor mit kell tennem
valami nagyon hasonló.
Aztán meg kell nyitni, hogy a középső A bal fele a könyv.
Tehát menj balra, majd menjen vissza a második lépésre.
Nézd meg a neveket is.
>> Más szóval, nem ugyanaz a dolog, de a probléma, hogy a már a felére csökkent.
Tudod mit?
Ha Smith később a könyv oldal alapján nézem,
nyitott, hogy a közepén a jobb fele a könyv
majd menj vissza a második lépésre, else--
van egy negyedik lehetőséget itt.
Mike sem itt, sem balra vagy jobbra, vagy sem.
És itt jobban figyelembe ezt.
És valóban, ha valaha is volt A számítógép csak összeomlik rád,
hogy néha, de nem mindig, a eredményeként csak egy ember programozó nem
felismerve, oh lőni, van valójában ez a negyedik forgatókönyv.
És ha nem írom kód kezelni, hogy a forgatókönyv,
néha nem tudja, amit a számítógép lehet csinálni.
És valóban a program esetleg összeomlik.
>> De ebben az esetben, azt hittem, róla, és azt mondtam, mást kilép,
mert ez a negyedik logikai lehetséges forgatókönyv.
Most nézzük csak add Néhány szókincs így
lehet kezdeni, hogy dobálják körül kifejezések egyébként elég intuitív.
Minden olyan dolog, amit csak én sárga színnel van,
Én csak megy, hogy a funkciók vagy eljárásokat.
Ők csak ilyen akciókat.
Tehát vedd fel, nyitott, nézd A, hívás, nyitott, nyitott,
quit-- ezek csak akciók, vagy mi hívják őket formálisan, funkciókat.
>> Közben most sárga, Amit kiemelt dolgok
hogy-- nézzük csak elkezd hívás azokat feltételek vagy ágakat.
Ezek döntési pontokat, ahol lehet, hogy ezt az utat, így,
vagy valamilyen más irányba is.
Tehát azok lesznek feltételeket.
És most ez az ember egy kicsit cifrább.
Nevezzük ezeket a kérdéseket Logikai kifejezések,
miután valaki egy vezetéknevet Bool.
>> És a logikai kifejezés csak valami
ez igaz vagy hamis, igen vagy nem.
Tehát az a kérdés, amelynek válasz, törődnek, oly módon, hogy olyan állapotban
hogy egy decision-- kap vissza a választ, majd menj balra vagy jobbra, vagy valami
más teljesen.
>> És akkor végül, ezek vonalak here-- visszamenni
a második lépésre, menjen vissza lépéssel two-- tudtunk
végrehajtja ezt az ötletet különböző módon.
És akkor azoknak, a programozási tapasztalat tette volna
vagy lehet képzelni ezt másképp.
De a mai célból, hogy Csak a gondolat, hogy számít.
Ez arra készteti, hogy mit mi általában hívni
egy loop-- valamilyen ciklus, mert ez így nekem nem valami újra.
>> Tehát most, nézzük csak úgy mennyire jó ez az algoritmus.
Ez a helyes.
Ha Mike a könyv, ez az egyik E négy scenarios-- újra és újra
és újra, meg fogjuk találni.
De milyen jó ez?
Nos, nincs túl formális itt.
De nézzük csak a telek valamit, X és Y, hogy
egyfajta alakja ezt a problémát.
>> Az x-tengely itt mérete a probléma.
És egy y-tengelyen van lesz az idő, hogy megoldja.
Lehet, hogy ez az oldalak számát.
Lehet, hogy ez másodperc vagy oldal turns-- bármi.
Azonban szeretné számolni az mi ez a kép jelenik meg.
És az első algoritmus, megyek leírni, mint csak egy egyenes vonal.
Ha van n oldalak A telefonkönyv, akkor
Lehet, hogy nekem annyi n lépéseket, hogy megtalálja Mike.
Ha a Verizon vagy a telefontársaság Hozzáteszi még egy oldal a következő évben,
ez eltarthat még egyet step-- egy további elemmel időt találni Mike.
Tehát csak ez 1-1 arányban.
Ez egy egyenes vonal meredeksége.
>> Közben a második algorithm-- ha én vagyok
megy kettesével time-- két, négy, hat, nyolc, vagy double--
megy át a lapokat kétszer egy időben, két egy időben,
ez még mindig egyenes.
Van most egy 1-2 arány, de csak egy kicsit alacsonyabb.
Tehát, ha van ez a sok oldalt A diagram itt sárga,
amelyek engem ez sok lépést vagy másodperc,
különben ez megy, hogy vigyen kétszer annyi a piros vonal.
>> De a zöld vonal az igazi elvihető.
Ez az, amit általában hívjon logorithm-- log
N, ahol n az oldalak számát.
De ez a forma, ami számít ma, mert nincs
hogy még gondolni cselszövés pont.
>> Gondolj egy szélsőséges forgatókönyv.
Tegyük fel, hogy a Verizon holnap megduplázza az Az oldalak számát, hogy telefonkönyv,
1000-től 2000.
Az első algoritmust, I Lehet pazarolja extra 1000
lépéseket keres Mike, csak azért, mert Verizon megduplázódott a méret a könyv.
A második algorithm-- ez is előfordulhat vigyél egy extra 500 lépésre.
1000 további oldalak, megyek a két egy time-- 500 lépést kell találni Mike.
>> De ez a harmadik algoritmus egyfajta mágikus.
Verizon megduplázza száma oldalak 1000 és 2000,
de hány lépést tesz ez engem keresni Mike?
Ez csak az egyik, mert én is csak szakadás a telefonkönyvben még egyszer
Egy 2000 oldal probléma, hogy egy 1000 oldal probléma, és íme.
Vettem egy hatalmas falatot belőle.
>> És ha megy nagyon szélsőséges, Tegyük fel, hogy a telefonkönyvben
cég volt valami őrült, mint a 4000000000 oldal telefonkönyvben.
Nos hány lépést lehet tart találni Mike Smith egy 4000000000
oldal telefonkönyv?
Ez egy nagy szám, de mindössze 4 milliárd 2000000000-1000000000, hogy 500 millió
250 million-- még hangzik nagy számok,
de én nagyon gyorsan egyre kisebb értéket.
>> És valóban, ha a matek Rendben, én csak osztani 4000000000
nagyjából 32-szer, mielőtt Kapok le, hogy csak egy.
Tehát ha telefonkönyv-ben 4 milliárd oldalt hosszú, nem nagy ügy.
Néhány másodpercen belül, talán 32 másodperc, tudtam osztani félbe
és végül megtalálja Mike vagy következtetni, hogy nincs ott.
És ez a lényege egy algorithm-- jó algoritmus.
És ez az egyik célok egy osztály, mint ez,
megpróbálja kitalálni, hogyan tudom a probléma megoldására nem csak helyesen,
mint mindig tudta, hogyan kell csinálni egy oldalanként time--, de helyesen és jól.
Hogyan tervezzen jó megoldásokat a problémákra?
Szóval vessünk egy pillanatra és kapsz egy értelme most
A CS50 során itself-- bevezetésére Néhány tanfolyam személyzet tagjai.
Mielőtt 02:00 választja, akkor hogy egy rövid szünetet
így, hogy azok, akik vásárolni is
kacsa, és hogy egy nézd meg egy másik osztály
és nézni a többi online.
De most, hadd mutassam be CS50, az osztály is,
és különösen mi az új.
>> Így a múlt tavasszal, mi töltött egy kicsit a time--
során munkatársai és én-- gondolkodás hogy mi ez akarunk CS50 lenni,
és megy vissza az első elvek, hogy úgy mondjam,
vizsgálni, mi az akarunk ez persze, hogy néz ki, és
mint a diákok.
És így látni fogja a problémát beállított nulla, egy meghívást
hogy megnézzük, hogy URL, amely összefoglalja
néhány motivációi következő jellemzőkkel esik 2016.
>> Tehát ahogy azt esetleg leszűrhető A TL: DR tájékoztatót,
A tananyag ma, valamint a A tanfolyam katalógus, idén CS50,
te csak várnak today-- így munkát is done--
és az utolsó előadás november 21.
És szívesen, de nem várható, hogy részt vesznek ezek az előadások a közepén,
mert mit csinálunk ebben az évben, forgat
valós időben a pálya anyag.
Tehát minden marad jelenlegi és beépített
a lehető legjobban tudjuk can-- aktuális események és beszélgetések, hogy az emberek esetleg
hogy miután az iparban a világ, de így, hogy az anyag
áll rendelkezésre, ennek eredményeként, még earlier-- között teljes szövegben átiratok
és kereshetőség és linkek más források.
>> És valóban, mi már azt állítva, egy ideig
és mi most ezt hinni, hogy mi is létrehozhatunk, digitálisan,
egy magával ragadó, vonzóbb oktatási tapasztalat, szemben
összegyűjtése itt néhány 23 alkalommal személyesen hallani valaki, mint én,
Egyszerűen beszélni számítástechnika, szemben folytatott aktívabb.
Így látni fogod a tanfolyam tematikája egy vázlatot a félév itt,
együtt, amikor az előadások filmre, amelyre te
örvendetes, de nem várható, és mikor
megjelenni a pályán honlapján.
>> És mit fogunk csinálni itt Szerdán jövő héten kezdődő,
sokkal több szorosan, csak ilyen emberek, akik szeretnének részt venni,
egy úgynevezett séta, ahol I és a pálya fejek
valóban a dolgok egy kicsit intimebb
idelent a zenekarban rész, még mindig van néhány technológia
és séta a jelenlegi heti probléma készlet,
és kínál particularly-- ha között a kevésbé comfortable-- annál
útmutatást, hogy érdemes, vagy szükség van a heti kihívás.
És hasonlóképpen, azok számára, akik nem tudnak vett részt a személyesen, nem nagy ügy.
Lesz hasonlóan vezeti az egyik természetesen a vezető beosztású alkalmazottak,
Zamalya, ugyanezt a lehetőséget a beágyazott A probléma határozza magukat.
>> Probléma állítja idén fog megjelenni pénteken
és többé nem hét nappal később, de 10 nap later-- szándékosan
lefedi az egyes probléma állítva, hogy jobban igazodjon,
reméljük, árapály a hallgatói menetrendek,
különösen akkor, ha midterms, atlétikai vagy akadémiai vagy extracurriculars
hajlamosak jönnek és mennek különösen félévközi.
Hogy meg kell adni egy kicsit mérlegelheti, hogy Ön előtt
betölteni a héten CS50 vagy hátsó terhelés azt a következő hétvégén helyett.
Így néz a tanfolyam tematikája Itt a menetrend tartalmazza.
És akkor észre is körében A változások ebben az évben,
azok jobban ismerik programozás a múltban,
kezdjük a szemeszter mi lesz ma Scratch,
összpontosítani, különösen a nyelv úgynevezett C hőmérsékleten, majd átmenet nem
PHP, hanem egy nyelv úgynevezett Python vége felé a félév
keretében webes programozás, együtt a SQL és JavaScript,
HTML, CSS, és még több.
>> És válaszolva egy FAQ, ez valóban így van
hogy a CS nem olyan ijesztő, mint én egyszer azt hitte, hogy, de ez a sok munka,
ahogy hallottam, hogy az lehet.
De ez a szó, hogy itt van néhány statisztikákat ősz 2015 hallgatói szervezet,
ahol a vízszintes kék vonal képviseli az átlagos órák száma
jelentett.
És meglátja átlagosan hat 10 12-- talán 16
vagy úgy, és így tovább, de nagy szórás, egyértelmű.
És így észre, hogy nem csak a diákok kényelmesebbé és kevésbé
Kényelmes során, de a megfelelő támogatást
struktúra, hogy azok a diákok, a félév sikeres.
>> Valóban, a válasz egy FAQ, amennyiben veszel CS50, mint az első évben?
Teljesen.
És valóban, én sajnálom nem találta az utam
vagy talált egy új területen hogy az első évben is.
És ha figyelembe CS50 a egyéb tanfolyamok, természetesen a well--
és az általános tanács, amit talán hogy a diákok, hogy CS50 valószínűleg
Nem az a fajta osztály vagy intro osztály hogy ha kell, három
Más vagy négy másik p-set osztályok.
De ha vesz két másik p-set osztályok, valami mást, és CS50,
teljesen kezelhető.
Elegem sok diák a már megtette elég sikeresen.
>> És neked felé, hogy célvonalon sikeresen,
nak a természetesen sections-- különböző pályákon a diákok
kevésbé kényelmes, kényelmesebb, és valahol a kettő között,
amelynek során a első probléma készlet,
meg kell adnia, hogy leírja magát.
És ha azok közé tartozik, kevésbé Kényelmes, ez a fajta dolog
hogy inkább csak tudja.
És valóban, ez volt a fokozódó demográfiai a CS50
még jó néhány évig.
>> Ahogy a múlt ősszel Például, 58% az osztály
le magukat azok között, kevésbé kényelmes,
9% azok között több kényelmes, majd
A többi diák ott piros, amely magát
Valahol a kettő között.
És meglátja itt a téma átfogó és ütemezése a szakaszok, amelyek mindegyike
kínálnak személyesen, valós időben, a pálya
csodálatos személyzet tanítási társaik és persze asszisztensek, akik közül néhányan
akkor felel meg egy pillanat.
>> Szakaszok magukat, mint látni fogod, majd lehet hétfőn és kedden és szerdán,
oly módon, hogy lehetővé teszi, hogy merüljön után megnyerő, ha úgy
választani, a tanfolyam előadás korábban azon a héten.
És akkor munkaidőben, amely biztosan, évről évre,
nem lett volna kevesebb a megtámadható során.
És ebben az évben, de tervezzük nem csak tisztségeket hours-- egy
egyetlen lehetőséget segítség diákok szerdán csütörtökön
és vasárnap, az utolsó olyan hogy délután tervezési
hogy csökkentsék néhány, a stressz, hogy mindig felmerül a késő este
p-megszabása határidővel looming-- de munkaidőn is kapható lesz
hétfőn és kedden és Szerdán és pénteken és szombaton,
köszönhetően barátaink a HSA.
>> CS50 most már a saját tér a diákok és CS50 személyzet,
tetején 67 Mount Auburn Street, ott a Harvard Square.
Az elképzelés, amely szerint a CS50 TF és CA egész héten,
nagyjából az egész leginkább nap, ott lesz a támogatásra.
Tehát, ha van egy kis kérdés egy p-set
vagy érzel egy kicsit blokkolt vagy egy kicsit zavaros,
és fene, van egy óra, vagy fél óra osztályok között,
különösen a square-- tud pop és erre a kérdésre válaszol
Az van, hogy zavar clarified-- Nagyon sok a szellem,
Ön ismeri, a matematikai osztály saját matematikai kérdés központ,
de elég sok éjjel-nappal per [? Gcal?], Hogy meg fogjuk küldeni az interneten.
>> Tutori is rendelkezésre áll azok számára, diákok, szabadon a pálya
saját munkatársai, ha szeretne intim egy az egy,
vagy két vagy három osztálytársai csak, dolgozó az egyik természetesen a személyzet tagjai.
És valóban, ezek itt csak néhány természetesen munkatársainak,
Néhány közülük azt is megtudhatod találkozik egy pillanatra.
Tény, hogy a CS50 saját fej tanítás ember,
és a fej természetesen asszisztens, és tanító,
jöhet akár, hogy nekik köszönni.
>> [TAPS]
SPEAKER 1: [hallható].
>> [TAPS]
SPEAKER 2: [hallható].
>> [TAPS]
SPEAKER 3: [hallható].
>> [TAPS]
>> DAVID MALAN: És teszi számunkra, hogy hogy a fedélzeten két CS50 legnagyobb
vezető beosztású alkalmazottak, Rob és Zamayla is.
>> [TAPS]
>> Valójában mindkét Rob és Zamayla már nálunk
olyan sokáig, hogy képes voltam bemenni CS50 irattára
és megtalálni ezt a nagyon SD felvételek közülük részt
színpadi magukat néhány éve.
ROB: [hallható].
>> [TAPS]
ZAMAYLA: [hallható]
>> [TAPS]
DAVID MALAN: Köszönöm.
Tehát mellett ezeket csapat tagjai itt,
CS50 egy csapat közel 100 személyzet tagjai, akik mind
elérhető lesz szakaszok és irodai óra, és így sokkal több.
És Rob azt mondja is, ez A legjelentősebb átalakítása
A CS50 a 10 éve, hogy Voltam [hallható].
[Hallható] középpontjában különösen abban, hogy egy támogatási rendszer,
vágás el sok az ömlesztett, hogy a már
felhalmozott 10 éves Az iteratív fejlesztések
A tanfolyam probléma készletek.
>> Tehát ebben az évben, nem csak az osztályban, de formájában is a pálya problémája
készletek, kell megtalálni a dolgokat lehet, egyszerűbbek, trimmer, sok
könnyebben kezelhető, mint az elmúlt években, mint mi
némi poggyász, ami által kifejlesztett jellege változó év
év után ciklussal.
Így az új és továbbfejlesztett ma kezdődik.
>> Találkozhat, több Természetesen személyzete ki a [hallható]
2:30, ahol szolgálunk, mint a hagyomány, torta.
Van egy kicsit több sütemény mint az, de akkor
találkozik Erin és Tóbiás és másokat is.
És hadd adjak a túra előtt halljuk
néhány a személyzet többi tagját az osztályban, mi vár is.
Sőt, mi mindig kezdeni CS50 által félévben a jövő szombaton
A mi úgynevezett CS50 puzzle Day.
>> Ennek semmi köze a számítástechnika önmagában,
de körülbelül probléma megoldása általában.
És ha úgy dönt, hogy egyenek, egy néhány meghívók,
lehet, hogy látta az ajtót leesett vagy a színpadon van,
ez egy lehetőség a csapatok két vagy három, vagy négy,
hogy részt vegyenek a rejtvényeket, és pizza és díjak és more-- szombaton,
marad hangolt több.
>> Megtalálja azt is, hogy minden Pénteken, Tűz és jég,
nak CS50 hogy egy csomó diák
ebédelni, hogy egy nagy osztály úgy érzi, intimebb,
és általában összehozza öregdiákok és a barátok az ipar
beszélni, amit ők már már akár óta érettségi.
Hasonlóképpen, ebben az évben, majd azt beiktat a legelső CS50 50
kódolás contest-- félévközi lehetőséget, hogy mindenki
egy opt-in alapon, hogy egy kihívása elméje ellen osztálytársak,
ismét csapat két vagy három, vagy négy, kizárólag a programozás
hozzáértés, amit majd alá a biztonsági öv után csak hat vagy hét
héttel az osztály, és a részt vevő ebben a fajta verseny
online-- ha azt szeretné, hogy élesíteni a saját képességek annál is inkább, hogy a kihívás.
Végén a félév az úgynevezett CS50 Hackathon--
lehetőséget, hogy kezdődik 07:00 PM végződik 7:00, és az út mentén
12 esti órákban, ahol merülni a tanfolyam utolsó project--
lehetőséget a tervezés és végrehajtására leginkább semmit az érdeklődés
Önnek a tanítás munkatárs irányításával.
Mintegy 09:00 teszünk jellemzően szolgálja pizza, 01:00,
Philippe és kevesen vagyunk akik még mindig ébren 05:00,
shuttle busz viszi le a út IHOP reggelire.
>> Aztán pár nappal később az úgynevezett CS50 fare--
véget félévben kiállítás ünneplés, hogy milyen messze annyi
A CS50 diákok érkeznek hét nulla egészen a héten,
és szem előtt tartva, hogy a 73% -a osztálytársak és a tiéd ebben az évben is
sohasem vett CS osztály előtt.
Tény, hogy reemphasize annyi, itt van még néhány arcot a CS50 munkatársai.
SPEAKER 4: [hallható].
SPEAKER 5: [hallható].
Hangszóró 6: [hallható].
SPEAKER 7: [hallható].
Hangszóró 8: [hallható]
Hangszóró 9: [hallható].
>> SPEAKER 4: [hallható].
>> SPEAKER 10: [hallható].
Hangszóró 11: [hallható].
SPEAKER 12: [hallható].
13 hangszóró: [hallható]
>> SPEAKER 14: [hallható].
>> 13 hangszóró: [hallható].
SPEAKER 15: [hallható]
SPEAKER 16: [hallható].
>> Hangszóró 11: [hallható]
SPEAKER 5: [hallható].
DAVID MALAN: Néhány csapat maguk vásárlás osztályok.
De ha ezek a tagok A CS50 személyzet itt,
jöhet akár csak egy pillanatra.
CS50 a TF és a CA-k és [? személyzet?] tagjai here-- ezek csak néhány
A faces-- akik közül az egyik csak látta, és néhány other-- és néhány más
még mindig.
Miért nem megyünk előre, és lehetővé srácok egy öt perces szünetet.
Ha kell kacsa ki bolt osztályok, ez rendben van.
És öt perc alatt, akkor újra, Figyelemre Scratch-- első
mi programozási nyelv, találkozni A tanfolyam személyzet itt egy kicsit,
és a hangsúly végül A probléma beállított nulla.
Így leszünk vissza öt perc múlva.
>> Rendben.
Tehát vissza.
És mi maradt idő ma, a cél
hogy egyenlő feltételek szempontjából néhány terminológia,
szempontjából néhány ötletet.
Mert valóban, mint egy néhány grafikonok korábbi,
ott lesz egy sor szinten a tapasztalat az osztályban,
amelynek egyes diákok tett néhány programozási előtt,
akik közül néhányan már nem.
És így ezzel első probléma meg, és ezzel az első nyelv
kell még egy lehetőséget, hogy indul magától értetődőnek a mai nap után
néhány közös szókincs és ötlet.
>> És mi ezt útján a tanfolyam első languages--
amellett, hogy a C és Python és JavaScript és az SQL és a HTML és CSS,
fogunk koncentrálni, kezdetben és csak a probléma beállított nulla
Ezen grafikus nyelv, az úgynevezett Scratch által kifejlesztett MIT Media Lab
az úton, hogy segítsen diákok és a gyerekek különösen
önkifejezésre algorithmically-- oly módon, több, ami megfelel
nevezhetünk számítógépes gondolkodás.
>> És ez egy hasznos nyelv, mert nagyon gyorsan a jövő héten az első héten,
teszünk átmenet a több hagyományos és misztikus nyelv úgynevezett
C, amely tisztán szöveges.
Csak akkor használja a billentyűzetet Ahhoz, hogy írni utasításokat
mint ezek a képernyőn.
De még ha soha nem látott egy programozási nyelv előtt,
mindössze pillantva Ennek érdekében, minden legyen rejtélyes,
akkor talán kitalálni, hogy Valószínűleg kiírja Hello World.
De van egy csomó szintaktikai fölött van.
Ott van a furcsa hash szimbólum vagy hash tag fel tetején.
Ott a könyökök, néhány zárójelben, zárójelekkel, félig colon--
ott csak annyi vizuális szintaxis, hogy megkapja az utat.
Kezdjük a pályát Scratch, hogy kap
már az összes ilyen intellektuálisan érdektelen zavaró,
és a hangsúly inkább a gondolatok.
>> Tény, hogy ez lehet előtt.
Ez erre, hét után kerülhet sor.
Ez, ebben a grafikus nyelv Scratch,
hogy hogyan valósítaná ugyanezen program-- olyan program, amely futás közben,
egyszerűen azt mondja, hello world.
És mi szép a Scratch hogy ez a grafikus programozás
környezet, amely puzzle-darabokat vagy blokkok, hogy csak a retesz együtt
ha ettől logikai értelemben, hogy nem így van.
És Scratch lehet fejleszteni animációk és interaktív játékok
és a művészet, és tetszőleges számú dolog, képzelnéd a saját szem előtt,
és végrehajtja azokat egyszerűen áthúzza puzzle darabkái.
>> És valóban, mi lesz a képessége, kifejezni néhány azonos gondolatok
hogy előbb említett egy pillanatra ezelőtt összefüggésben Mike Smith
és keres egy telefon book-- dolgok szerű funkciók, csak akciók,
ilyeneket hurkot csinálni dolgokat újra és újra,
változókat, ami valami fogunk bemutatni,
de ismerős talán algebra-- csak valami helykitöltő
tárolni néhány érték lehet, hogy szükség later-- logikai kifejezések,
ha e igen nem vagy valódi hamis kérdések elől.
Körülmények azok villa a road-- azok az ágazatok, így mondjam.
És akkor van néhány szakértő funkciók fogjuk látni még ma is,
úgynevezett tömbök és szálak és eseményeket, hogy mi lesz akkor újra át
időt a különböző nyelveken.
De Scratch lehetővé teszi számunkra, hogy vizsgálja meg az összes ilyen.
Tehát itt a semmiből, ez lila blokk, amit a funkció tipikusan
fog kinézni.
Ez lila puzzle-darab, amely bizonyos szót, mint mondjuk, amely a cselekvés,
és akkor lehet, hogy egy érvelés vagy parameter-- valamilyen módon
A fajta testre szabása hogy mit csinál blokk
úgy, hogy ez nem határozza meg előre MIT, amit ez a lila blokk mondja.
Sőt, akkor megjelenik egy pillanat, hogy én vagyok képes, hogy írja
Az olyan szavak, mint hello world, vagy szia Dávid, vagy szia Zamayla,
vagy amit akarok, az érvelés E puzzle a darabban a fehér doboz
ott.
Közben, ha szeretnék egy hurok, fogunk látni, hogy ott van, hogy a puzzle-darabokat
Egy kicsit narancs, mint ez.
És alakjuk fajta azt sugallja, hogy történik valami újra és újra
egy ciklusban.
>> Tehát, ha azt csomagolja köszönni világ blokk egy örökké blokkolni Scratch,
ez csak fog tartani köszönés világot örökre, a szó szoros értelmében.
Közben van egy másik típusú hurok Scratch
hogy mi lesz see-- ismételt block-- ahol ha
előre tudni, hogy hány alkalommal szeretné, hogy a hurok, hogy végre
véges számú alkalommal fact-- te megadhatja, hogy beírja a számot
vagy akár dugulás változó, mint x vagy y mint látni fogjuk.
>> Sőt, a változók, mint a i ebben az esetben, ami
egy közös név egy egész típusú változó,
csak tárolja a number-- egy egész lehet,
használni ezt a narancssárga blokk ide beállítható egy változó, mint én, hogy nulla.
Íme egy példa a zöld egy Logikai kifejezés a Scratch.
Annak ellenére, hogy ez úgy néz ki, mint egy matematikai képlet, matematikai egyenlőtlenségek, mint ez
valójában logikai kifejezések.
Ez vagy igaz, vagy hamis.
I kisebb, mint 50.
Ez akár egy igen vagy nem választ vagy igaz, vagy hamis választ.
És mi általában hívni azok logikai kifejezések.
És nem kell, hogy az 50.
Ez lehet x kisebb, mint Y, nagyobb, mint Y, egyenlő y--
tetszőleges számú egyéb kérdéseket lehet.
>> Most, első pillantásra, ez tűnhet Hirtelen elég merész itt, és ez.
De fogalma bölcs, ez elég ismerős korábbról.
Ha x kisebb mint y, mint mondjuk annyi.
Else amennyiben x nagyobb, mint y, akkor azt mondják, annyi.
Else mondjuk x egyenlő y.
Tehát van egy példa ott egy harmadik scenario--
az egyetlen harmadik possibility-- x vagy nagyobb, mint, kevesebb, mint, vagy egyenlő.
Tehát van egy hármas útelágazáshoz.
>> És észre mi jó here-- Scratch, úgy tűnik, már csak egy puzzle
darab, ebben az esetben, a ha mást blokk.
És mégis, ami azt sugallja, akkor Csak egy kétirányú útelágazáshoz.
Akkor menj balra vagy jobbra, de mi van a harmadik forgatókönyv?
Mi van, ha x = y?
Nem nagy ügy.
Vegyünk egy puzzle-darab, tedd egy másik belsejébe
hogy megteremtse a szemantikai egyenértékű Az if, else, ha else-- és most
már a háromutas útelágazáshoz.
És mint látni fogjuk, a Scratch puzzle-darabokat
lehet nyújtani, és növekszik, így hogy teletölteni több dolgot bennük.
Nem kell, hogy illeszkedjen mindent, ami az alapértelmezett méret.
>> Ez olyasmi fogunk Hamarosan látni nevezzük egy tömbben.
Ez olyan, mint egy list-- valamilyen módon tárolására több információt
egy változó, nem csak egy szám.
Ezek látni fogjuk képviselője úgynevezett multi-threading.
Tény, hogy az összes Mac és PC manapság
támogatja a multi-threading, ami azt jelenti, hogy a szó szoros értelmében
csinálni több dolog egyszerre.
Akkor a Microsoft Word fel a előtér, dolgozó néhány esszé.
Lehet, hogy egy böngésző a háttérben nyitó
G-mail vagy a Facebook, vagy hasonlók.
A számítógép képes több dolgot ma, mert ez több szálon,
és programok ők a Különösen is több szálon.
>> Van dolgokat az úgynevezett események valamint a világon a Scratch,
és akkor ott van egy módja is, hogy saját egyéni puzzle darabokat, ha a dolgok
valójában nem léteznek előre.
Úgyhogy motiválja ezt az alábbiak szerint.
Néhány évvel ezelőtt, amikor én fedezték Scratch,
amikor valójában grad hallgató MIT, mi
magunkat bízták, hogy a házi feladatot.
És én implemented-- amely visszatekintve,
volt egy nagyon rossz döntés, mert A legtöbb dühítő dal a világon
hallgatni nyolc órán át munka közben a homework--
de amit én még az úgynevezett Oscar idő, ami talán egy ismerős dalt.
>> CS50s saját Jordan Hayashi, az egyik a magasabb beosztású munkatársak,
lecserélte azt a 2015. és Most 2016 óta vissza a nap,
Volt minden csak megy figyelembe Oscar kukába.
Most támogatjuk újrahasznosítás és a komposztálás.
>> De ahhoz, hogy festeni a képet Az, hogy mit tehetünk itt
és motiválni néhány az alsó szinten példák,
tudnánk kap egy másik önkéntes, hogy csak jöjjön ki
és játszani az első házi feladat valaha?
Gyere fel.
Hogy hívnak?
>> HENRY: Henry.
>> DAVID MALAN: Henry, gyere fel.
Gyere fel.
Fej akár úgy, és látni fogja, egy pillanat,
Megyek, hogy menjen előre, és nyomja meg a zöld zászló a jobb felső
sarok, ami azt jelenti menni.
A kis stoptábla ikon fog mondani megáll,
és ez az, amikor elkezdi és állítsa le a programot.
Örvendek.
Rendben.
Így fogunk látni az utasításokat A képernyőn csak egy pillanatra.
És csak játszani ezt a játékot Néhány seconds-- hidd el,
nem megyünk, hogy szeretne játszani egészen a end-- fogsz
hogy egyfajta a program mit csinál.
És több, mint összpontosítani Henry hogy a jó vagy rossz ez a játék, a hangsúly
és hogyan jött végre nekem eredetileg, majd a Jordán.
Más szóval, ahol a változók?
Hol vannak a hurkok?
Hol vannak a funkciók?
És látni fogjuk, ha nem látjuk azok a motorháztető alatt.
>> Csak kattintson, és húzza a szemetet a megfelelő bin.
>> [ZENE]
Rendben.
Ez nagyon jó.
Miért nem állítjuk meg ott.
Köszönöm.
Gratulálunk Henry.
Köszönöm.
>> [TAPS]
>> Képzeljük csak el, hibakereső programban.
Ha gond van a két percében song-- de olyan
mi folyik itt valójában?
Olyan bonyolult, mint azt esetleg kezdeni, hogy úgy tűnik, hogy az idő múlásával,
Valóban egyre több és több dolog elkezdett esni,
Az az érdekes a ez a fajta example--
és látni fogjuk, néhány others-- az, hogy ha
elnéztek összetettsége vagy a kifinomultabb a játék,
van egy nagyon egyszerű épület blokkok, játszd őket így amelyek mindegyike,
ha distill őket azokra építőelemek, amelyek rendkívül jól megközelíthető
és végrehajtható maguknak.
Például, ez már egy ideje, de nem vagyok
benne, amit én tettem, amikor először hogy ez a játék az első alkalommal
voltam teljesen olyan, mint halogatták.
Nem koncentrálni egyáltalán a logikai vagy puzzle darab,
Összpontosítottam a grafika és a megállapítást Az utcai posta és a kuka
és minden adott.
De ezek voltak kellő összetevőket először.
És ha már elkészült procrastinating és lefektetve az átfogó keretet,
Elhatároztam, hadd, hogy egy darab szemetet esik az égből.
És majd meglátjuk Scratch támogatja dolgokat az úgynevezett
sprites-- karakterek különböző viseletek, így
máshogy néznek ki.
>> És így tettem a szemetet jelmez egy ilyen sprite.
És én csak szüksége van rá esik az égből.
És így kiderül, Scratch, mint a legtöbb programozási nyelvek,
támogatja véletlen számokat vagy technikailag pszeudokód véletlen számokat,
így áthúzza és elhagynak bizonyos puzzle darab,
Tudtam, hogy a szemetet jön a bal első.
És akkor a következő alkalommal esett, ettől a jobb majd a közepén.
És az egész játék nem volt, csak Van szemetet alá az égből.
Nem lehetett rámutatni, vagy kattintson rá.
Nem lehetett megnyitni a kukát.
Te semmit sem tudott tenni.
De ez volt a baba lépés felé az én végső látást.
>> És azután, azt valójában végre valami
Az érzékelés, így ha nem kattint és húzza a darab szemetet
több mint a kuka, Oscar fedél lenne nyitni és zárni.
Semmi sem történik, hogy a szemetet, de legalább a fedél lenne nyitni és zárni.
Tehát akkor ellenőrizze, a második lépésben a kettő.
És ez az, ami lesz kulcs mindkét probléma beállított nulla
és a programozás általában az, hogy ezeket nagyon is szándékos baba lépéseket.
Mert nem csak ez teszi lehetővé, hogy érzem őszintén sokkal többe
quickly-- ez a legrosszabb dolog a világon
próbálni, hogy hajtsák végre az Oscar ideje, majd órával később nyomja meg a zöld zászlót,
és semmi sem működik, mint várták mert ahol ugye még
kezdenek hibakeresés vagy elhárítása a program?
Ez csak nyomasztó.
>> És így valóban átfogó ez a gondolat figyelembe steps-- baba lépéseket újra
és again-- kiépítése valamit, ami, a végén,
igazán lenyűgöző és összetett, de az első, közel sem annyira,.
Tény, hogy csináljuk.
Hadd menjen előre és-- Scratch magát létezik az interneten a Scratch.MIT.edu,
és máris mondta a sokkal ismét probléma
állítsa nullára, a specifikáció amely már a CS50 honlapján.
>> De ez az, amit Scratch maga.
És ott tényleg csak három fő területen.
A bal felső sarokban van az úgynevezett szakaszban.
Ez Scratch.
Az alapértelmezett jelmez egy macska.
És ez a négyszögletes világ amelyek segítségével move-- fel, le, balra,
jobbra és egyéb dolgok.
A középső itt van a mi kategóriák vagy a raklap puzzle darab,
és a különböző színek különböző dolgot jelent.
És ha piszkálni körül, látni fogod dolgok, mint a hurkok és feltételek
és a változók és más összetevőket.
>> És akkor itt van a script terület.
Ez az, ahol drag and drop ezek puzzle darab, hogy a dolgokat.
Tehát lássuk egy ilyen dolog.
Hadd menjen előre és-- és tudom, hogy hol van.
Úgyhogy azonnal kattintson ahol tudok dolgokat készen állnak,
de mutatva és kattintva és dugta körül elkerülhetetlenek.
Tehát, amikor a zöld zászló kattintott, mit akarok csinálni?
Azt fogom tenni ezt.
Megyek húzza ezt lila puzzle darab, köszönni két másodpercig,
és hadd nagyítás.
>> És fogok ezen változtatni hogy mit akarok, hogy be--
hello world két másodpercig rendben van.
Most megyek, hogy kattintson a zöld zászlót, vagy ha nagyon szeretnék,
Tudok teljes képernyőn, és aztán gyere vissza.
Ez csak tartsa mindent egy ablakban.
Zöld flag-- hello world.
Rendben.
Nem olyan érdekes.
Tehát hadd menjen előre, és erre a célra.
Hadd próbálja meg egy másik.
Amikor zöld zászló clicked-- nézzük tenni valamit, mint egy hang.
Azt tapasztaljuk, hogy ki A doboz ingyen kapsz
egy macska hang, ahogy az alapértelmezett Sprite.
Tehát most hadd menjen előre, és nyomja meg a zöld zászlót most.
>> [NYÁVOGÁS]
>> Aw.
Ez aranyos.
Én programozás.
Tehát mit tettem?
Ez megegyezik a program.
Ez nyilvánvalóan rendkívül egyszerű.
Ez nem igazán vették, hogy sok minden erőfeszítés és a MIT tette a munka nagy részét,
de hívtam egy funkciót.
Én használtam a funkciót.
Csináltam néhány fellépés, a csak hogy az egyik lila puzzle-darabot.
>> Nos, ha akarok Három meows egy sorban?
Hadd menjen előre, és ezt a két és három.
Azt tapasztaljuk, hogy ha lebeg a közelben egy puzzle-darab,
egy kis fehér vonal jelenik meg egyfajta mágneses,
és ez lesz pattintsa együtt, ha elengedi.
Lássuk, mi történik itt.
>> [NYÁVOGÁS]
>> Van egy hiba.
Én csak hallani egy miau.
Miért lenne az?
Igen?
Igen.
Mi nem igazán hallani, de ez jó intuíció.
Ezek mind játszanak ugyanabban az időben.
Miért?
Nos, a számítógép csak megy csinálni, amit mondani, hogy igen.
Tehát ha azt mondod, játék hang-, hangot lejátszani, hang lejátszása,
de nem mondja meg, hogy játsszon, amíg Ha elkészült, játszani, amíg kész,
ez fog fújni keresztül A program nagyon gyorsan
és nem csak az, amit mondani, hogy igen.
>> Szóval tényleg kell rögzíteni ezt egy pár módon.
Én is csak ezt, megszabadulni ez.
Hadd próbálja meg ezt más puzzle a darabban játszik hangot nyávog, amíg kész,
majd húzza a három ezeket, és kattintson a Play.
>> [NYÁVOGÁS]
>> Ez nem igazán very-- köszönöm you-- nagyon természetes.
Akkor miért nem hagyja én-- menjek vezérelni.
Szép.
Várj egy pillanatra, és most hadd menjen vissza a hangok, és a játék hang, amíg kész,
majd hadd várjon egy másodpercet.
És akkor hadd menjen, és kap egy több hang, és itt van.
>> [NYÁVOGÁS]
>> Egy kicsit több természetes, de ez nem nagyon hatékony.
Mint Kezdtem unatkozni, mind Röviden, kattintson ide-oda
és tényleg sokszorosító én work-- nagyjából a másolás és beillesztés.
Valóban, ha ellenőrzés kattintott vagy a jobb kattintás,
Tudtam volna csak vágólapra másolni.
Mi lenne a jobb konstrukció kezelhető?
Milyen ötlet a korábbiakhoz képest?
>> Igen, egy hurok.
És valóban, ha kidugta körül, azt találnánk, hogy pontosan.
Hadd menjen események vagy inkább vezérlő.
Tehát én nem repeat-- szeretné, hogy legyen 10-szer.
Ez lesz, hogy bosszantó gyorsan.
De megismétlem háromszor.
Hadd menjen vissza a szilárd és A hang lejátszásához, amíg kész.
Térjünk vissza a vezérlő és csak várni egy másodpercet.
És vegyük észre, lehet, úgy gondolja, hogy nem illik,
de újra, ha mágnesesen hagyod pattan, nőni fog kitölteni.
Mi ez játszik most?
>> [NYÁVOGÁS]
RENDBEN.
Szép.
És ez az, amit neveznénk egy program, ami szintén helyes.
Ez nyávogott háromszor meglehetősen Természetesen, de ez jobban megtervezett.
Én kevesebb redundancia.
Nem másolja be semmit.
Csak használni egy jobb ötlete.
>> Nos, ez még mindig nem minden, Érdekes a Scratch nem csinál
bármi.
Tehát lássuk, hogy valami mást helyette.
Csináljunk valami örökre.
És tudod mit?
Motion érdekesnek tűnik.
Vessünk rá mozogni 10 lépések és a hit játék most.
>> RENDBEN.
Nos tudjuk milyen drag vissza, és még mindig
fut, mert ő ezt örökre.
Tehát a hurkot csinál amit mond, hogy nem,
de ez nem olyan érdekes.
Csináljuk.
Hadd adjunk egy blokk, és használja e feltételek az első alkalommal.
>> Így fog mozogni 10 steps-- 10 pont, 10 pixel a screen--
akkor ez fog feltenni ezt a kérdést.
Ha valami igaz, akkor nem valami belülről ezt a blokkot.
Így kiderül, érzékelés egy egész csomó logikai expressions--
kérdései igen nem vagy valódi hamis form-- hadd csináljam ezt.
>> Ha touching-- és akkor ott van ez a kis legördülő menüt.
Tudom paraméterezni azt.
Ha megérinti a edge-- nézzük ilyet.
Tehát, ha megérinti edge-- hadd menjen vissza mozgást.
És miért nem megyünk megfordul 180 fok?
Rendben.
Tehát örökre, mozgás 10 lépésben.
Ha megérinti a él, fordulj 180 fokot.
És ez még nem a vége a program mert te egy örökre blokk,
így fog menni újra és újra és újra és újra.
Nézzük, mi történik.
RENDBEN.
Egy kicsit bugos, de egyfajta hűvös.
>> És mi is hozzá, hogy ezt a néhány buta dolog hogy nem minden, hogy szellemileg
érdekes.
De ha bejön ez a kis mikrofon button-- jaj.
Hadd tisztítsák ezt fel.
Hadd fokozza ezt a azt mondanák a tévében.
Tisztítsuk hogy fel, mentés és most menj fel a szkripteket.
>> És most, hadd menjen a hang.
Hadd adja meg a nevét.
Hívom ezt a jaj.
És most hangot lejátszani jaj.
Figyeljük meg, hogy megjelenik a kis legördülő menüt.
Lássuk.
>> [JAJ]
>> [NEVETÉS]
De meg tudjuk változtatni t ő menet közben.
Mi lehet kétszer olyan idegesítő.
>> [JAJ]
>> Vagy ha teszünk úgy, mint 1000 lépcsők time--
>> RENDBEN.
Így fogunk hagyni, hogy az egyik egyedül.
Tehát újra, az épület blocks-- I kezdődött valami szuper egyszerű,
és aztán egy olyan funkciót, egy olyan funkciót, egy olyan funkciót.
És már nem kell aggódnia hogy az elsőként említett jellemzők
hajtották végre, mint én is a réteg a dolgokat a tetején.
Tehát valójában, hadd tegye egy másik itt.
Hadd menjen előre, és nyissa meg a fájlt, Hoztam előre, az úgynevezett Juh.
>> Így van egy kissé eltérő karaktert, amely úgy néz ki, mint ez.
És hadd lássa, nem tudok tenni valamit egy számláló
ebben case-- egy úgynevezett variábilis.
Megyek, hogy menjen előre és alatt Events-- hadd kap egy zöld zászlót kattintott.
Akkor hadd menjen Data, ami tudom, ettől csak játék körül, mielőtt,
ahol a változók.
És én megyek előre, és húzza ezt.
>> Tehát a változó nevű számláló, és Megyek inicializálása nullára.
Azt lehet nevezni bármit x vagy y vagy z-- de a programozás,
hív valamit egy szemantikailag hasznos módja, mint a számláló,
amely leírja, mi is az, hogy ez egy sokkal könnyebb olvasni a kódot később.
Hadd menjek előre, és kap örökre blokk van.
És hadd menjen a néz oldal, és nem a Say blokk.
De mi jó változókkal I Nem kell csak írja be valamit
mint hello world, amit korábban már tettem, ehelyett válassza az Adatok
és húzza az én változó, és még bár a forma nem elég
úgy néz ki kell illeszkednie, nőni fog kitölteni.
És én csak azt a számlálót egy second-- spoiler-- ő fog számolni.
Majd azt mondják, hogy egy pillanatra.
Aztán megyek és Van neki egy másodpercnyi várakozás,
így nem számít fel túl gyorsan.
És akkor végül, módosítsa counter által one-- más szóval,
növeljük a számlálót eggyel hozzáadott értéket és ezt örökké.
>> Tehát a juhok is, mint egy programozó, számít 0.
És ha elég sokáig vár, akkor ezt örökké.
De ez nem egészen igaz, mert sőt, ahogy rájössz az első héten,
egészek és a számítógépek általában technikailag csak egy finite-- jól,
inkább a számítógépek, amikor az általuk képviselt egész számok,
csak véges számú bittel.
Azok izzók vannak csak akkor számíthat, így nagy
mielőtt te ki az izzók.
És a számítógép is, csak annyi memóriát,
Csak annyi tranzisztort, így csak akkor számíthat ilyen magas.
>> Így kiderül, hogy a birkák, Azt hiszem, tud számolni 2000000000
vagy valami nagyon nagy.
Szóval nem fog várni, hogy ez megtörténjen.
De végül néhány hiba fog történni hogy lehet valamilyen nagyon is valós világ
következményei.
De túl a juhok, hogy csak bevezet egy változó.
Menjünk előre, és nyissa fel valami, amit tenni előre
Itt az úgynevezett Pet a Cat-- Pet Cat ide.
És észre itt ez kevés blokkok, de ha zöld zászló
kattintott, örökre a következőt teszi.
Ha megérinti az egér pointer--, hogy a kurzor a képernyőn,
A arrow-- játék hang miau majd várjon két másodpercet.
És csak ezt örökre.
Csak állandóan várni hogy ha a pointer--
ha a macska nem éri a mutatót.
>> Szóval hit játszani.
Semmi nem történik.
De ahogy a kurzort mozgatja a macska,
>> [NYÁVOGÁS]
>> És ha mozog el, nem petting a macska már.
Így néhány feltételes logika ágyazva egy hurok.
Mi a helyzet a példában szándékosan úgynevezett Ne Pet macska?
Mi ez fog csinálni?
>> [NYÁVOGÁS]
>> Miért ne pet a macska?
>> [NYÁVOGÁS]
>> RENDBEN.
Tehát ez egy példa, ha mást.
Ez a döntési pontot és mert ül a hurok,
mindketten egyre ellenőrizni.
Igaz ez?
És végül, az egyik azok fog alkalmazni
és így nem hallja vagy a miau vagy ordít az oroszlán ebben az esetben.
>> Nos, lássuk, egy kissé divatos egy hogy én előre too-- szálak.
Tehát egy szál egyike dolog, hogy a számítógép képes.
Tehát egy több szálon futó program olyan program Ez képes több dolgot egyszerre.
És ezek mindegyike példák eddig volt
Csak egy script, hogy úgy speak-- Egy ilyen program itt.
De észre ez a program két sprite, két karakter.
Az egyik egy madár.
Az egyik egy macska.
>> És észre, amikor rákattintok le ezeket bal, mindegyikük saját szkriptek
vagy programok velük kapcsolatban.
És mind a két programok, értesítést, kezdő
A mikor zöld zászló clicked-- nézzük meg a cat--
ha zöld zászló kattintott.
És valóban így, amikor elütöttem játék most, két dolog fog történni egyszerre.
A macska és a madár egyaránt fog működni egyszerre
létrehozni ezt a hatást.
És lehet képzelni, hogy mi történik.
Van egy hurok és a madár és a macska vannak egy hurok.
A madár éppen pattogó, mint Azelőtt voltam, amikor azt mondtam, jaj.
De a macska egyértelműen előnyt jelent.
Van egy másik érzékelő blokk amely kijelöli a macska szándékosan
a madár ebben az esetben itt.
Így lehet ugratni egymástól, a keresett keresztül ezek a blokkok, hogy mi történik.
De a legfontosabb összetevő itt az egyik.
A madár úgy, hogy ez a játék nem teljesen boring-- vagy ennek animation--
elindul egy véletlenszerű irányba.
És a számítógép érzékeli közötti szám 90 és 180
lényegében úgy, hogy ez egy kissé különböző animációs minden egyes alkalommal.
>> És akkor itt megjegyezni, ha a macska hozzáér a madár, majd
játszanak az oroszlán négy sound-- ordít.
De közben a madár paletta, itt van ez.
Örökre, ha nem érinti a macska, Csak menj tovább három lépést.
És akkor itt van még egy puzzle-darabot.
Ha a szélén, ugrál.
Tehát a madár csak egyfajta törődve a saját üzleti,
csak repülő körül, és pattogó, és ez tényleg
a macska, hogy már a feltételes logika annak megállapítására, hogy elkapta a madarat.
Rendben.
Tehát lássuk egy másik itt, ez hívott Hi Hi Hi.
És ez itt most nem ez egy örökre hurok.
De notice-- hogyan megállítani ez nagyon bosszantó programot?
Nyomja meg a szóköz.
Mert ha én, hogy, a bal kéz program--
észre, hogy állandóan listening-- a legfontosabb helyet sajtó.
Ha a szóköz gombot, és ha igen, mit csinál?
Ez nem egy nagyon elterjedt módszer.
Meghatározásra változó azonos bizonyos értéket.
De ez bekapcsolja ezt az értéket.
[? Tehát megjelenés?] alapuló shape-- I
változtatható, hogy én írta előre úgynevezett
Némítva, ami csak azt mondja, igen vagy nem.
A hang nélkül, vagy nem?
Igaz vagy hamis?
És észre, azt mondom, ha this-- tompa nulla, akkor váltson egy,
mást beállítani néma nullára.
Tehát csak flip értéke nulláról egy.
Tudtam volna done-- változtatni két-három és 01:57
vagy 4-5 vagy 4-6.
De ez nem számít milyen számok azt használja,
amíg én is változnak meg az ellenkezője.
>> És a legtöbb bármilyen programozó akar csak választani nulla és one-- hamis és igaz,
off és on-- képviseljék ezt.
És ez még mindig fut.
Ha megüt a szóköz újra
>> [SEAL Hangok]
>> A program még mindig fut.
Mert itt van ez a másik script amely azt mondja, örökre tegye a következőket.
Ha az elnémított változó értéke zero-- így ha nincs elnémítva
a logic-- ha ez hamis vagy nem, majd játszani a hangot,
mert nem némítva.
Meg kell játszani a hangot, és azután úgy gondolja, hi hi hi két másodpercig
majd várni, és csinálni újra és újra és újra.
>> És így ezen a módon van még egy módja emberek az alábbiakra: a programok, hogy kölcsönhatásba lépnek.
És nem kell lehet, mint én kelt, mint a többiek.
Tény, dugta around-- no pun intended--
valaki töltött hatalmas mennyiségű időt az interneten végrehajtási
PokemonGo a Scratch.
Még geolocates Önt Cambridge vagy Allston ide.
Tehát, ha azt szeretnénk, hogy túl, amit az emberek tehetünk this-- nagyon divatos menüt.
Kattints ide.
>> Ez nekem a nyilakkal most.
Megyek, hogy menjen ez után.
Kattintson.
És most rákattint a Pokeball.
Úgy értem, azt hiszem, te állítólag kattintva Pokeball.
Rendben.
Így tettem ezt.
Mehetek ide.
És ez a személy végre néhány PokeBalls felett here-- három PokeBalls.
>> Küldünk egy linket erre online, így játszhat.
De értesítés ott csak Néhány alapvető építőkövei.
Úgy néz ki, tenyésztő, és ez.
Ez a lenyűgöző és több mint azt általában
elvárják, minden bizonnyal probléma beállított nulla.
Fogalmam sincs, mennyi ideig ez a személy online töltött.
De ez az egész csak egy hurok.
Van egy hang lejátszása.
Van valamiféle hurok hallgatta, hogy én vagyok
üti meg a felfelé vagy a lefelé nyíl vagy a jobbra és balra,
majd ha igen, ez mozog ez bizonyos képpontok számát.
És aztán, ha rákattintok Egy másik sprite, van
valamilyen, ha az állapotban van.
Igen, ez már túl intenzív.
Mi fog megállni.
Ez mind az említett alapvető építőkövei.
Nincs egyéb összetevők más mint azok, átnéztük már.
>> És mégis itt, hadd tegye Egy utolsó sor példát
hogy fest egy képet is mit lehet itt csinálni.
Itt egy nagyon egyszerű program, amely csak nem this-- köhögés, köhögés, köhögés.
És alapján csak a mi átnéztük az eddig
ahol a nyilvánvaló lehetőséget a fejlődésre.
Ez a program helyes.
Ez köhög háromszor, amely az, amit tervezett.
De ez rosszul végrehajtott.
Ez rosszul tervezték.
Miért?
Igen.
Ez nem egy hurok.
És ez nem is annyira hogy ez nem egy hurok,
ez, hogy van egy csomó redundancia.
Ott másolják és beillesztett kódot, hogy úgy mondjam.
És a megoldás valószínűleg valóban egy hurok.
Tehát hadd menjen előre és javítsa ezt.
És én fogom húzni ezeket ide.
Hadd menjek előre, és kap egy ismételt blokk, megváltoztathatja ezt a három.
Megyek kidobni néhány ilyen blokkokat.
>> És észre fogod venni, hogy ez elég intuitív.
Te húzással dolgok megjelennek és eltűnnek végül.
És én is csak húzza ezt itt, és most van egy tisztább változat is.
De tudod mit?
Van ez a lehetőség Most abstraction--
kezdeni, hogy meghatározza az új szókincs hogy MIT nem számítottak.
Van várni, és ismételje és örökre, és ha
de mi van, ha azt akarom, hogy vezessenek be a szó köhögés blokként?
Mit tegyünk, ha egy puzzle-darab amelynek célja az életben, hogy köhög?
>> Nos, nézzük meg ezt a verziót itt, amit elő az alábbiak szerint.
Varázslatosan, hoztam létre ezt a puzzle darab itt,
amely lehetővé teszi, Scratch csinálni.
És valóban a C és Python és a JavaScript
engedem, hogy ezt is.
Hozhat létre saját egyéni darabokat, hogy hívják, amit akarsz.
Ebben az esetben a köhögés érzi mint egy ésszerű meghatározása.
Majd ezeket a darabokat le Itt lehet meghatározni, hogy mit jelent.
>> Azt húzta, és csökkent a ezt a palettát here-- több
blocks-- ez a nagy lila blokk, ahol beírtam köhögés
mint a neve az új puzzle-darabot.
És akkor azt mondom, ha a felhasználó bármikor felszólítja az új köhögés puzzle-darab,
do beleszólása és a várakozás.
És így itt az én ismétlés blokk, Én is csak köhögni háromszor.
>> És én azt állítják, elsősorban Ha most elrejti ezt a részletet.
Kit érdekel, hogy milyen köhögés végrehajtani?
Csak az érdekel, mint a programozó, hogy tudok köhögni.
Nem érdekel, hogyan mondják végrehajtását.
Csak érdekel, hogy a macska mondani valamit.
Tudok elvonatkoztatni, hogy részletesen és csak összpontosítani, mi van a képernyőn van.
De én még egy lépéssel tovább.
>> Figyeljük meg, hogy itt, van végre a hurok háromszor.
De mi van, ha ehelyett Megragadom ezt a verziót?
És mi van, ha ahelyett, ez a verzió van,
Csak megváltoztatni a puzzle-darab, hogy érvelés és beviteli nektek is?
És, hogy a bemeneti lehet Számos hasonló három.
Tehát most, ha írok egy programot és szeretném, ha a macska köhögni,
Tudom valójában mondani a puzzle darabot hányszor köhögés,
mert az alján van, a szakértő változata ezeket az egyéni puzzle darabkái
Hagyja, hogy meghatározza, hogy köhögés valóban vesz
Egy input-- vesz egy érv, mint ez.
És tudod mit?
Talán észre, várj egy percet.
A köhögés a same-- ez alapvetően
ugyanaz a gondolat, mint a tüsszögés.
Ez csak egy másik szó a képernyőn.
Tudok elvonatkoztatni továbbfejlesztése és végrehajtása
E végső változata köhögés, amely első pillantásra
jóval bonyolultabb keres.
De észre, hogy mit tettem.
Most már generalized-- genericized really-- a kirakós darabot
hogy hívják azt mondják szó n-szer.
>> És most már két új puzzle-darabokat ide meghatározza köhögés n-szer.
És mit jelent a köhögés funkció hatása?
Mit jelent a szokás puzzle darabot csinálni?
Ez csak kéri az mondjuk blokk, átadva a szót szeretnék mondani,
halad a szám hányszor szeretnék mondani.
Mert most már tudom végrehajtani tüsszentés által egyszerűen csak annyit mondok achoo,
Ebben az esetben a néhány számú alkalommal.
>> És így én rétegezés és rétegződés.
És ismét, a kulcs itt nem hogyan hajtják végre, de az a tény,
hogy ha csak a szó szoros értelmében mozgatni ezeket a ki a képernyőn,
nézd, milyen egyszerű, ha nem elég a programot most úgy néz ki.
Mert mit is mondja, amit kivett
el, mi van benne, hogy a fekete doboz. előfordul, hogy a lila doboz itt,
de már akadályozta el, mi van benne mert nem érdekel, hogy hogyan működik.
Csak érdekel, most, hogy ez működik.
>> És valóban, a probléma állítsa nullára, ez pontosan
az a fajta rétegződés ötletek azt is megtudhatod lehetősége van arra, hogy tárja fel.
Ez pontosan a lehetőséget, hogy alkalmazni problémamegoldó technikák,
amit valószínűleg egy idegen környezetben.
És az, hogy már nincs programozva előtt, vagy beprogramozott,
rájössz, hogy ott van egy kis valamit
ebben a környezetben mindenki számára.
És a probléma beállítva Egy egy hét múlva,
fogunk áttért fókuszálás egy magasabb szintű nyelv úgynevezett
C-- vagy inkább alacsonyabb szintű nyelv úgynevezett
C-- hogy még ennél is erős, annak ellenére, hogy
egy kicsit rejtélyes első pillantásra.
>> És rájössz per mai TL: DR, hogy ez a probléma meghatározott rövidebb
ablak az idő, mint a jövőben is, egyszerűen mert meg kell találni azt meglehetősen
hozzáférhető.
És nem kell aggódnia, ha hozzá az osztály végén.
Majd foglalkozik, hogy nemsokára.
És tárgyalunk az torta, hadd befejezni csak egy kétperces megjelenés
A mi vár rád itt CS50.
[ZENE]
Rendben.
Ennyi az CS50.
Látni fogjuk, hogy hamarosan.
Cake most fel.
[ZENE]
SPEAKER 17: Hallottál A haladék, főnök?
SPEAKER 18: Lehet, hogy van Több a motorháztető alatt.