[Powered by Google Translate] [ROCK MUSIC]
[MUSIC - "Happy Together" želvy]
DAVID Malan: Dnes, začneme náš průzkum
základy počítačové vědy a naší zavedení,
Nyní, na umění programování, z nichž je to
jen jeden příklad.
Ale ve stejném duchu řešení problému, vím, že
CS50 tradiční Puzzle den je zítra.
Pokud jste dosud RSVPed pro tuto akci, můžete přejít na
cs50.net/rsvp.
Můžete si přinést týmy dvou nebo tři nebo čtyři.
Ty budou mít za úkol s problémy, jako je ten, který viděl
tam na začátku.
Všechny nové problémy v tomto roce, pokud jste si vzala loni, a vy
bude mít šanci pak vyhrát nějaké pohádkové ceny.
Mezi nimi, Wii a některé dárkové poukázky a podobné výrobky,
to vše při visí ven s CS50 studenty a spolužáky
a pizza a Facebook.
Takže o tom až zítra, pokud byste chtěli.
>> To je tedy CS50, pro ty z vás, k nám na
poprvé.
A vím, že tento kurz je zvláště určena dostat
si prostřednictvím tohoto předmětu k jeho konečnému, na kterém místě tě
budou mít nejen pochopení těchto
základy počítačové vědy, ale budete mít
Tento velmi praktické dovednosti soubor, který pak můžete vzít zpět do
vlastní oddělení, ať už je to technické vědy,
aplikovaná matematika, fyzikální vědy, přírodní
vědy, nebo podobně.
Opravdu, co je tak vzrušující o počítačové vědě těchto
dny je to, že je tak použitelná pro
všechny druhy polí.
A i když dnes, budeme jen poškrábat povrch
velmi tradiční programovací jazyk známý jako C, sejdeme se
místo se podívat na něco, co nazývá Scratch, něco s
které tato cookie love story byl proveden jeden z vašich
předchůdci v minulých letech, vyprávět příběhy, vytvářet hry,
vytvořit interaktivní umění, a skutečně začít balit OUR
mysl kolem některé ze základních pojmů, které
základem programování, ale v kontextu, jak uvidíte, že je to
mnohem méně děsivé, že je mnohem méně tajemný, než uvidíte
zanedlouho.
A uvědomit si, taky, pro ty z vás, jen se k nám tento
semestr, věty, na kterých jsme skončily středeční přednášku,
to není tak důležité, kde jste skončili ve vztahu k vašemu
spolužáci v této třídě, ale pokud vy, od semestr konce
v týdnu 11, skončit ve vztahu k sobě přímo v tento den.
>> Takže bez dalších okolků, je to také stojí za zmínku, že
ty méně pohodlné, jsou někde mezi, jsou
také tím, že návrh tohoto kurzu, není na újmu
naproti sobě ty pohodlnější
přichází do této třídy.
Jak uvidíte v průběhu příštích týdnech, máme různé
dráhy pro různorodé zadní pozadí, profily pro ty,
méně pohodlné, mnohem pohodlnější, ty někde
mezi.
Jak uvidíte tento víkend a příští týden ve dvou variantách
většina problémových sady v obou standardním a hacker vydání tak
že všichni mohou self-vybrat na cestě, se kterou
jsou nejvíce pohodlné.
>> Takže dnes jsme se ponořit do tohoto programování
jazyk volal Scratch.
Je to grafický programovací jazyk, a přesto má
Stejné vlastnosti některých jazycích vyšší úrovně budeme
prozkoumat později v semestru, mezi nimi C a
JavaScript a PHP.
Ale bude to, které nám umožní vyhnout se některým z rozptylování
brzy na syntaxe, věci jako středníky, závorky,
a další tajemné detaily, které na první pohled, prostě nejsou
vůbec intelektuálně zajímavé a mají tendenci být ve
cesta z nějakého základního porozumění.
Pokud jde o nyní nosné konstrukce před sebou, si uvědomil,
nástroj, CS50 Diskuze, který bude propojen na kurz je
webové stránky ještě dnes, je on-line diskusní fórum v
které budete moci klást otázky navzájem a
zaměstnanců, a je to také nástroj, jak uvidíme příští týden,
že budeme používat poměrně integratedly v
úřední hodiny také.
Opravdu, úřední hodiny začíná v pondělí, a upřímně řečeno, první
týden úředních hodin je poměrně nízká klíč.
>> Já si nemyslím, že zjistíte Scratch všechno nepřístupná.
Je to spíše intuitivní, jak uvidíme, a tak co
budeme používat pro dnes je aby část
základní myšlenky, že bude, pak přetrvávají po celou dobu
Zbytek semestru.
Ale od pondělí v 20:00 prostřednictvím 23:00 bude
úřední hodiny v Annenberg přes mozku přestávce.
Krájení dva budou začínat dnes večer, takže někdy to
víkend, přejděte na cs50.net/section, a budete
se položil řadu otázek.
Mezi nimi, jak byste popsat vaše
úroveň pohodlí jako dnes?
Není těžké, rychlé pravidlo, kdo je v které vědro.
Je to jen jedna z těch věcí, které už asi víte, pokud jste
patří k těm méně pohodlný nebo jinak.
>> A teď, návody.
Problém set specifikace pro tento týden, a to jak standardní
a hacker vydání podobně, je on-line na cs50.net již nyní.
A uvidíte, že první z těchto vydáních,
Standard Edition každý týden, je doprovázen něčím, co
volat kód návod, zasedání vedl o jednoho z
Samozřejmě je výuka chlapi, aby vás, poskytují
tipy na, a vám se stanoví zvláštní cestu, pokud jde
zahájením těchto problematických sady.
Takže s každou z těchto problémů zapadne, pokud jste někdy chtěl
pro sebe, kde mám začít, začnete s nimi
návody.
A ve skutečnosti, dovolte mi představit Zamyla Chan, tento
Letošní učení chlapík, který bude probíhat každý
jeden z těchto návody.
Zamyla?
>> [APPLAUSE]
ZAMYLA CHAN: Oh, ahoj, všichni.
Mé jméno je Zamyla.
Jsem junior studuje inženýrství v Winthrop domě.
Ale snažím a hodí se do co nejvíce předmětů počítačové vědy jako já
mohou, což je důvod, proč jsem opravdu nadšený, že se vede tento
Letošní návody.
Průchody, pro mne, bylo podstatnou součástí mého CS50
zkušenosti.
Během návodu, pro každou p-set, půjdeme přes
problém sestavit, podívej se na problémy, druh
rozdělit je do zvládnutelných kousnutí.
Dám vám tipy, techniky, pro získání
prostřednictvím a jak začít.
Doufám, že se vám všem na návody.
Pokud nemůžete dělat to osobně, a pak
prosím naladit on-line.
>> DAVID Malan: Výborný.
Děkuji, Zamyla.
Takže si uvědomit, že návody jsou skutečně, v pátek
odpoledne, ale je to záměrně design tak, že
i když bych raději navštěvovat třídy v pátek
odpoledne budou videa být až všechny rychleji než
víkend.
Takže si uvědomit, že cs50.net bude všechno Zamyla je
návody.
A že je dnešní datum a čas, 15:00,
Harberd Hall, 104.
A některé z výukových chlapíků byly také připraveny
některé poznámky, pro vás v nepřítomnosti, aby vám trochu
perspektiva jako k čemu jejich zkušenosti přichází do a
jít ven CS50 byl rád.
Takže pokud bychom mohli ztlumit světla pro malou chvíli, dám vám
některé zaměstnanců CS50 je.
>> JACKSON STEINKAMP: Vzal jsem CS50 loni jako nováček v
pádu, a to naprosto mi vyrazil dech.
Nikdy jsem brát žádné programátorské třídy dříve,
a nikdy přišel s jakoukoli informatiky
zkušenosti vůbec.
A právě, já jsem slyšel hlášky o třídě a
rozhodl se vzít ji.
>> JULIA MITELMAN: Bylo to opravdu zábavné, opravdu poutavé.
I přesto, k tomuto dni -
Nedávno jsem viděl, že jsem tu disketu David nám dal
na našem prvním dnem přednášky.
Jsem pověsil na zeď.
To je asi trochu hloupý, ale já jsem se držel na mém
stěna v třídě jako připomínka toho, jak v pohodě to bylo.
>> TRAVIS DOWNS: Je to tak trapné.
>> JACKSON STEINKAMP: Počítačová věda je něco, co
by se měli snažit, i když nejste jeden pro
tradiční vědy.
Je to jeho vlastní zkušenosti, a CS50 se ujistěte, že jste
podporována i přes to s jeho skutečným armádou TFS.
>> ALI NAHM: Vzal jsem to jako nováček, a tak jsem udělal hodně
nových přátel.
Také jsem dostal představen celý tento koncentraci a
Celá škola inženýrství, a tak vřele doporučuji
a vítám vás na naší CS50 rodině.
>> Yaniv YACOBY: CS50 jen vás naučí, jak používat nástroje
které jsou široce dostupné.
Potřebujete k tomu jen notebook, budete potřebovat webový prohlížeč, a vy
Potřebujeme se naučit psát nějaký kód, a můžete opravdu stavět
elegantní věci.
>> KAREN XIAO: Je to prostě tak cool být schopný dělat něco
a lidé používat a mít lidé to vidí, a to
to, co jsem opravdu rád o tom.
>> TIM McLaughlin: - smysl pro komunitu, myslím, v tomto
Kurz více než kterýkoliv jiný Samozřejmě, že jsem si vzal tak daleko.
Nejste jen s jinou -
nejste plnění další požadavek.
Nejste jen tak na přednášky a jít do sekce.
Ale děláte spoustu věcí, které jsou všechny informace o
programování a vše o technologii, ale to není
opravdu pocit třídy většinu času.
>> Travis DOWNS: A na první den, že rozdávali dort, a
Byl jsem okamžitě prodal.
>> JACOB Pritt: Free cukroví a pizza.
>> ZAMYLA CHAN: - bez ohledu na vaše zájmem, myslím, že
že CS50, budete se bavit, a budete mít intelektuálně
stimulován.
>> MARK GROZEN-SMITH: Je to vždy osoba ve třídě, a to
strana každou noc pracovali na p-set.
>> JACKSON STEINKAMP: Pokaždé, když dokončíte problému sadu, můžete
bude pocit, že jste dokončil projekt.
>> MELISSA NIU: Byl to první rok, a já jsem byl udělal nakupování.
Měla jsem čtyři třídy připraven, a já jsem byl v Annenberg.
A já narazit na přítele, a on říká, hej, já jsem nakupovat
tato třída nazývá CS50, a měli byste jít se mnou.
Skončil přičemž to ten pád, a po této třídy, jsem
Myslel budu moll v CS.
Ale tady jsem, o tři roky později, stále studuje počítač
věda a vlastně dělá to jako major, a miloval jsem každou
moment to.
>> ROB BOWDEN: Nemám tušení.
>> ALI NAHM: Pojďme se podívat,.
>> MELISSA NIU: Craziness.
>> SPEAKER 1: Mám pocit, že bych byl velmi klišé.
Já bych jen říct, jako, úžasné.
>> Yaniv YACOBY: Dostupnost.
>> JACOB Pritt: Free cukroví a pizza.
>> TRAVIS DOWNS: Nelze zapnout stanoví třídu, která rozdává dort.
>> TIM McLaughlin: Energetic.
>> Vipul Shekhawat: Essential.
>> ROB BOWDEN: Nech mě přemýšlet o odpověď.
Myslím, že něco mám.
Oh, bože.
Jo, jmenuji se Rob Bowden, a to je CS50.
>> [APPLAUSE]
DAVID Malan: Dobře, takže pojďme začít malovat obraz
směru, ve kterém můžeme jít, a pojďme představit
tento pojem zde známý jako pseudokódu.
Takže pseudokód není programovací
Jazyk sám pro sebe.
Není to nic technického sobě, ale je to prostě tak nějak
obecně způsob, jak vyjádřit sám sebe docela přesně,
docela algoritmicky, docela procesně, ale bez
se museli starat o to, co jazyk, to vyjádřit
yourself in
Je to nějaký model angličtiny a programovacích jazyků s
které se stalo, aby se seznámili, takže můžeme začít
psaní takové věci, jak jsme jít.
A ve skutečnosti, Joseph, můžu si půjčit vás na jevišti se
písař tady?
Já jsem šel napřed sem předem a zapomněl dát
na některých ponožky dnes, a to bude mezi naše více
směšné příklady.
>> Teď tě potřebuju tady.
Udělám ponožky část.
Takže tu máme trochu poznámkový blok.
To je doslova TextEdit v systému Mac.
Nejsme vlastně bude psát Runnable program, ale
jsme jen tak začít skicování z pseudokódu na bázi
na některé z rady, kterou poskytnete mi tady.
Takže tady je můj hromadu ponožek doma.
Nemám žádné ponožky na to, kdy jsem se probudila ráno, a nyní
je třeba napsat program, algoritmus druhů, s nimiž
aby se tyto ponožky na nohou.
A po cestě, uvidíme, jestli budeme zakopnout, nebo v případě,
některé z myšlenek, které budete muset začít
přemýšlet o mnohem vážněji při programování
lest vaše programy se nechovají docela, jak bylo zamýšleno.
>> Tak jsem si sednout tady.
Mám svůj hromadu ponožek.
Co je první věc, kterou rozumný člověk by
, když cílem je kladen na páru ponožek?
Někdo mi o jeden krok, a pouze jeden krok.
Jo?
Diváků: sehnout.
DAVID Malan: Bend dolů, Dobře.
Krok dva.
PUBLIKUM: Zvedněte ponožku.
DAVID Malan: Zvedněte ponožku.
Dobře, tak malý, dvojznačnost zde, a to je jeden z prvních
kamenem úrazu, že bychom měli záměrně
setkat zde.
Je to trochu nejasné, takže vyzvednout ponožku.
Dobře, vezmu tenhle, ale počítač, realizovat jen
bit, nebude mít tento druh lidský instinkt jen
vybrat nejbližší.
Budeme muset začít, zanedlouho, vyjadřující
sami přesněji.
>> Dobře, takže druhý krok je vyzvednout ponožku.
Bereme to.
Krok tři.
V zadní části.
PUBLIKUM: Najdi si pár.
DAVID Malan: nalézt odpovídající dvojice.
Dobře, tak to je dobrý.
Musel jsem si vybrat tuto ponožku.
Takže cílem je najít odpovídající ponožku, teď, ale to, co
to znamená?
Rozumné lidské bytosti, stejně jako ve středu, kdy jsem
věděl, jak najít Mike Smith v telefonním seznamu, tak nějak
šel s jejich instinkt.
Ale tady, je to samozřejmě tato ponožka tady, ale počítač je
nebude tak instinktivní.
Počítač bude mít sbírku bitů, jako my
diskutovali ve středu, a to jsou
organizovány nějak v paměti.
Jde o to, že počítač má pouze schopnost
dívat se na věci, jeden po druhém, a ve skutečnosti, i my
lidé - i když to cítí, jako bych se podíval dolů a rozdělení
sekundu později Vím, kde ponožka je, můj mozek a moje oči
pravděpodobně se rychle sbírat těchto ponožek, a pak se západkou
na jedné se jedná.
>> Takže pokud budeme všichni mnohem promyšlenější nyní jako počítač,
Jak mohu toto odpovídající pár?
No, musíme iterovat.
Musíme snad smyčce během tohoto nepořádek ponožky na
patro níž jsem říct něco jako PRO KAŽDÝ ponožka, si to
up, a je-li stejný tvar a velikost jako ten druhý, PAK
dot, dot, dot, budeme pokračovat v příběhu.
Takže pro každého ponožky, takže jsem vyzvednout tenhle.
I zkontrolovat je to rovna této jedné.
Není to, tak jsem si dal stranou stranu.
Pak jsem iterovat znovu.
Je to jedna rovná?
Ne, to ne, tak jsem to dal stranou.
Je to jeden?
Ne.
Tenhle?
No, a tak dále.
A pak konečně, doufejme, že se setkám tuto ponožku zde.
Takže jestli je to stejný tvar, velikost, vezměte si ji.
>> A teď, co by být náš příští krok tady?
Jo?
PUBLIKUM: Určete P zleva.
DAVID Malan: Dobře, identifikovat vpravo a vlevo, tak
naštěstí, že druh práce.
Trochu symetrická, nebo jsem jen nosit jim tímto způsobem.
Dobře, tak jsem identifikoval právo.
A teď, než budeme pokračovat, dovolte mi, abych poukázat na to, co Joseph je
dělal sem jako jakési veršované programátora.
Takže znovu, není jeden způsob, jak to udělat, ale více než jen
číslování linek, Joseph už začal dělat to
druh odsazení.
Opravdu, toto je velmi častý konvence v programování,
kdy, když děláte něco iterativní, looping styl, as
jsme z čehož vyplývá, s anglickým výrazem "PRO KAŽDÉHO
ponožka, "konvenci v pseudokódu, a jak uvidíme,
normální programovací jazyky, je jen odrážky.
Hit mezerníku několikrát, narazí na klávesu Tab nebo podobně,
tak, aby vnořené pod "PRO KAŽDÝ ponožka" je kus
věcí, které musíte udělat, v důsledku tohoto smyčky.
Tak to je všechno, co dopravní sémanticky.
Nyní mezitím, "Jestli je to stejný tvar a velikost,"
Skutečnost, že "Take it" je členité dále jen znamená, že
to je jediná věc, kterou byste měli udělat, pokud tuto podmínku,
pokud je větev, která rozcestí, je ve skutečnosti pravdivý.
>> Takže teď tady, jsme v kroku čtyři, identifikovat vpravo a vlevo.
Identifikoval jsem pravdu.
Dejte mi krok pět.
A technicky, můžeme opravdu říkat
PRO KAŽDÉHO věc -
asi byste měli očíslovat všechny linky, pokud
budeme dělat to.
JOSEPH: [Neslyšitelné]
DAVID Malan: [Neslyšitelné]?
Dobře, dobře, uděláme to po svém.
Dobře, takže krok pět, jak to děláme správnou ponožku?
Jak budeme postupovat dál, tady?
Ano?
PUBLIKUM: Zvedněte pravou nohu.
DAVID Malan: Zvedněte pravou nohu, Dobře.
Krok šest?
Rychle.
Jo.
PUBLIKUM: Najít otevřený konec ponožky.
DAVID Malan: Dobře, najít otevřený konec ponožky.
Tak dobře.
Tak tady, upřímně, by velmi časté instinkt být jen
kladen na pravém ponožky, ale i to je docela nejednoznačná.
Není-li počítač nebo člověk přesně ví, co to znamená,
to nebude provádět, takže tady, mám
Buďte otevření populace.
Krok sedm?
PUBLIKUM: Dotkněte se prsty.
DAVID Malan: Dotykové prsty.
Dobře, takže teď jdeme -
Dobře, budu se některé svobody zde.
Díky.
Krok osmý?
Dejte na ponožce.
Dobře, takže teď jsem, že jsme dost blízko, aby nějak přijmout
tenhle doma.
Dobře, tak to jde nahoru.
Vezmu některé svobody s tím, co to znamená, skutečně.
Dejte ponožku na.
Dobře, teď kroku devět?
PUBLIKUM: Dejte nohu dolů.
DAVID Malan: Děkuji.
Krok devět, dal nohu dolů, a teď, můžeme opakovat.
Takže pravděpodobně, můžeme nyní přejít do kroku 10 a říct identifikovat
vlevo ponožky, ale to je pravděpodobně už udělal.
>> A pak se mohu nějak opakujte tyto kroky.
Ale tento druh vyvolává otázku.
Před, v poslední době jsme chtěli zopakovat něco, my
udělal iterativně, znovu a znovu, FOR
Každá smyčka tak mluvit.
By mělo smysl používat smyčku, aby se zvládnout i
levou a pravou ponožku?
Vzhledem k tomu, že se cítí, jako jsou tyto operace jsou do značné míry
totožné, s výjimkou toho, že se vychází zde a jeden
Zde začíná?
My smyčku, nebo budeme jen držet psaní kroky
10, 11 a 12?
Diváků: Loop.
>> DAVID Malan: Dobře, tak smyčka.
Vlastně jsem mohla říct jen dál.
Tak proč je tomu tak?
No, to je ve skutečnosti první náš non-zřejmé
rozhodnutí o návrhu, a ve skutečnosti, jeden z metrik, s nimiž
začneme hodnotit, pro sebe a pro vás,
Kvalita programu je to, jak dobře navržen to je.
Už jste udělal minimální množství práce potřebné k
si práci nejrychleji, ať už jde o
váš čas nebo, pokud jde o počítače se systémem době?
Kolik operací dělá to trvá spustit?
Takže pravděpodobně, je to příležitost pro smyčce, protože
jakmile začnu kopírování a vkládání, jako Josef účinně
by začít dělat v okamžiku, jsi trochu plýtvání
čas, a vy jste byl dvakrát expresivní.
>> Ale zároveň, to jsou opravdu jen dvě speciální
případy, vlevo a vpravo.
A vzhledem k tomu dříve, mohl jsem mít 10 nebo 20 nebo více ponožky v
hromada, to určitě dává smysl, že nemá 50 řádků
Kód říká zjistit tuto ponožku, pak další jeden,
pak další.
Tady je to trochu méně zřejmé, a já bych navrhl
že bychom mohli jít buď cestou.
Mohli bychom mít buď tu smyčku, ačkoli to jen smyčky
dvakrát, nebo můžeme jednoduše zkopírujte a vložte jen trochu
právě proto, aby svou práci.
Ale tento program je buggy, abych tak řekl.
To by mohlo mít nějaké chyby, chyby nebo rohové případy, tak
mluví, že jsme se opravdu předvídat.
Nic se stalo tentokrát, ale co by mohlo být špatně
Při provádění tohoto programu?
PUBLIKUM: Nemáte žádné ponožky.
>> DAVID Malan: Takže tam mohl být žádné ponožky tam vůbec.
Takže pojďme se domnívají, že rohový případ.
Takže pokud bychom se posunout zpět ke kroku jedna, takže krok jeden byl
sklonit, takže sedí.
Krok dva, vyzvednout si ponožku, ale pak zjistíte, odpovídající ponožky,
identifikovat pravdu.
Jsme trochu dělal spoustu předpokladů, a to je,
upřímně řečeno, proč program, někdy selhání.
Pokud, programátor, dělali určité předpoklady, jako jsou
určitě tam to bude ponožky nebo jistě tam to
být paměť ponechána v počítači, určitě tam děje
být na disku vlevo na pevném disku -
No, když uděláte tyto předpoklady, a to není,
ve skutečnosti, reality, kdo ví, někdy to, co počítač je
dělat?
A někdy, když se dostanete na otáčející plážový míč nebo
zmrazené Windows nebo podobné, že je to právě proto, že některé
Programátor nepředpokládal ty takzvané rohové případy.
Co jiného by mohlo jít špatně v tomto programu?
Jo?
>> PUBLIKUM: Vy nemáte pravou nohu a levou nohu.
DAVID Malan: Dobře, nemusí mít oba pravou nohu a
levou nohu, a tak tento program nemusí být všeobecně
použitelné.
Ostatní?
PUBLIKUM: Možná jste zvedl osiřelého ponožku.
DAVID Malan: Možná jsem zvedl osiřelého ponožku, tak
non-matching ponožky, které právě nemá žádné sourozence, protože jsem
ztratil, je roztrhaný to, že je to v praní stále, nebo podobně.
Takže, i tak nebylo manipulováno.
Jo?
PUBLIKUM: Možná již ponožky.
DAVID Malan: Možná již ponožky.
Nechtěl jsem vlastně zjistit.
POKUD nemáte ponožky, pak pokračujte k tomu
linka jedna a dva.
A to by se mohlo stát.
Můžete usínat s vaší pokožky na a podobně, tak
taky, velmi rozumné koutek případ.
A možná ještě jedna?
PUBLIKUM: ponožka je naruby.
DAVID Malan: Takže ponožka je naruby, takže jsme udělali žádnou chybu
kontrolu, v krátkosti.
Nechtěli jsme zkontrolovat, zda stav světa je, jak očekáváme.
Nechtěli jsme zkontrolovat, zda jsme skutečně našli to, co jsme hledali.
>> A i když je to jakýsi směšný příklad
zahrnující ponožky, na konci dne, to je přesně
druh myšlení je třeba mít při psaní programů,
iv Scratch, stejně jako v C, v JavaScriptu, v PHP,
protože jinak budou vaše programy vykazují
ekvivalent této předení nafukovací míč, nebo jen výnos
nepřesné výsledky.
Takže díky moc tady na našem písaře Josefa.
[APPLAUSE]
>> DAVID Malan: Dobře, tak co je v
Skutečnost, počítačový program?
No, pojďme se rychle podíval na
Zástupce jeden tady.
Tak to je program napsaný v jazyce nazvaném C. C je
poměrně staré těchto dnech, ale mnoho novější jazyky jsou postaveny
na vrcholu toho.
Vskutku, PHP, jeden z web-centrických jazyků budeme
použít k termínu ke konci, sám o sobě má, co se nazývá
tlumočníka, program, který je napsán v jazyce C, ale o tom více
v mnoha týdnů od této chvíle.
Ale tento program, a to je to, co to znamená psát
program, byť velmi jednoduchý.
Máme nějaké docela tajemné syntaxi zde, ale můžete
asi tušíte, i když jste nikdy naprogramovat před, co
tento program dělá.
Opravdu, já nevím, co printf je, ale tisk rozhodně
vyvolává myšlenku tisku něco.
A tak ano, tento program je v konečném důsledku bude tisknout
slova "Hello, world".
>> Nyní, ať máte Mac nebo PC nebo počítači se systémem Linux, kursy
jsou, alespoň pokud jste si stáhli nějaký volně
k dispozici software, mohli jste se psát programy na
vlastní laptop pro docela nějaký čas.
V systému Mac OS, například, tam je to program s názvem
Terminál, který je dodáván s Mac, která je obvykle ve vašem
Utilities, a to obecně otevře černá a
bílá nebo bílá a černá okna, ve kterém jste
výzvou, na kterou můžete psát příkazy.
Takže je to vlastně připomíná to, co počítače
bylo před grafickým uživatelským
rozhraní, GUI, přišel.
Nyní, ve Windows, máte podobný mechanismus v podobě
z příkazového řádku.
>> Ale co budu dělat, je zde otevřít, řekněme,
TextEdit znovu, takže tentýž program, který jsme používali pro
pseudokód před chvílí, a já jdu dál a
napsat můj první program.
Patří stdio.h, ať to znamená cokoliv, int main
void, ať to znamená cokoliv, a pak ve středu zde,
printf ("hello, world."). A pak zavřít citace,
zavřít závorka, středník.
Teď budu pokračovat a prostě hit Command-S. Jdu
jít dopředu a uložit jako hello.c, takže úmluva
svět programování C je název souboru dot c.
Jdu jen dát v domovském adresáři Johna z Harvardu,
zde, klepněte na tlačítko Uložit, a teď jdu projít k tomuto
okno terminálu, což je opět tato černá a bílá řádku
kde mohu provádět příkazy.
>> Mohu spouštět programy zadáním své jméno, ne
Dvojitým kliknutím ikony v obvyklém slova smyslu.
Ale věc je o C, je, že jazyk jako C první
přichází v této podobě, něco, co nazývá zdrojový kód.
Něco, co vypadá trochu jako angličtině, ale je
rozhodně méně jako angličtina než pseudokód Josefův
Před chvílí.
Je to trochu tajemné.
Zdá se, že následovat některé vzory nebo pravidla.
Skutečnost, že mám složené závorky, středníky, citace,
úhel šle, cítí jako počítač přišel s tímto
druh jazyka.
Ale když půjdu, teď, na tomto terminálu, lze spustit
příkaz, který se bude konvertovat, že zdrojový kód je
něco, co nazývá objektový kód.
To bude konvertovat English-jako syntax na nuly
a ty, stejné druhy nul a jedniček my
mluvil o středu.
Teď, jdu spustit příkaz s názvem zvonění.
Více o tomto v příštích týdnech, ale je to program s
které mohu převést hello.c na celou partou
nul a jedniček.
>> Teď jsem spuštění tohoto příkazu.
Jsem běžet řinčet, a pak jsem řekl běžet sám na tento soubor
volal hello.c, které jsem vytvořil před chvílí, a
nic Zdá se, že se stalo.
Ale opravdu, když jsem vystrčil kolem mého domovského adresáře, bych vidět
že tento hloupě názvem programu a.out nyní existuje.
To je jen výchozí název programu, při psaní
C. Můžeme přepsat to nakonec, ale a.out je
název programu, který jsem právě přeměněn nul a jedniček.
A teď, že je to nul a jedniček, můj Mac, v tomto případě, nebo
Vaše PC s Windows, můžete pochopit ty kousky, ty
nul a jedniček.
A tak, když jsem narazila Enter, vidím "hello, world!"
>> Ale je to trochu buggy.
Nechtěl jsem docela řekl "ahoj, svět: vzduch: -! Jharvard." Vzduch je
jméno mého počítače.
Jharvard je název účtu, takže to, co jsem jasně
vynechat z programu?
Nějaký zalomením řádku.
Nechtěl jsem narazila na ekvivalent Zadejte nebo návratu vozíku,
a to je, opět, svědčí o tom, že počítače mohou
jen to, co řeknete, aby dělali.
A skutečnost, že jsem neřekl počítač přesunout
kurzor na další řádek -
dobře, to určitě nebude jen to
opovážlivě pro mě.
Takže když jsem se vrátit do svého programu, a já říkám, \ n -
Takže \ n, jak brzy uvidíte, je způsob, jak
představuje divné věci, jako znaky nového řádku, věci,
která by jinak byla výsledkem
bít klávesy Enter.
Ale teď, jen vím, že bít klávesy Enter by
jen aby náš kód vypadat divně, tak se svět rozhodl, víš
co, aby věci hezčí, aby ji udrželi na jednom řádku, pojďme
jen říct, \ n představuje nový řádek.
Dovolte mi, abych znovu uložit svůj soubor, přejděte zpět do okna terminálu, a
re-run a.out, Enter.
Přesto buggy, ale proč?
>> PUBLIKUM: [Neslyšitelné]
DAVID Malan: Jo, tak jsem třeba překompilovat ho.
Takže sestavit program znamená jen převést ze zdroje
kód objektového kódu, zdrojovém kódu nul a jedniček.
Nyní, pouhá skutečnost, že jsem narazila Uložit v tomto TextEdit nemá
ložiska na těchto nul a jedniček, protože jsem nejprve
tell zvonění hey, změnil jsem ty řádky kódu,
zdrojový kód.
Musíte regenerovat a.out.
Nic Zdá se, že se stalo, ale v počítači,
Na příkazovém řádku, tak mluvit, když se nic neděje,
to obvykle znamená všechno je v pořádku.
Když se něco stane, znamená to, že
jste zpackal, obecně.
>> Takže pojďme se teď jít do a.out, a opravdu, mám teď "hello,
svět. "
A teď, co o těchto nul a jedniček?
Je-li v tom, jsou ty?
No, nemůžu opravdu jen trochu poke kolem velmi
efektivně.
Dovolte mi, abych otevřít TextEdit.
Tady je a.out.
Nech mě jít dál a to otevřít, a to je zřejmě to, co my
Program vypadá.
Tak jsem otevřel, ne hello.c, ale a.out.
Ale to je vlastně to, co můj program je opravdu.
Je zřejmé, je to nějaký druh abecedních znaků.
Nevidím žádné nul a jedniček, ale je to
protože a.out je program.
Nul a jedniček - ale TextEdit, jak název napovídá, je to
stejně jako Notepad ve Windows, je jen textový editor, takže je to
matoucí všech těchto nul a jedniček as
ačkoli oni byli, co?
ASCII znaky.
>> Takže připomínají ve středu, právě jsme přišli s tímto
svévolné mapování čísel, nebo kousky, na dopisy
abeceda a interpunkční symboly a podobně.
Takže TextEdit, že je to textový editor je interpretací
ty vzory nul a jedniček, které mají být
tisk slova, jako "Hello, world". Je to jejich zobrazení
jako ASCII, a to je důvod, proč to vypadá trochu chaotický.
Nyní, tam jsou některé náznaky správnosti v zde.
Všimněte si, když jsem zdůraznit, že je náznak skutečně "hello,
svět, "tak někde v tomto programu je
věta, kterou jsem napsal.
Ale pojďme dál a nyní vidí s jiným programem.
Toto není jeden budeme používat, že často, ale také přichází s
Mac a bude uvnitř CS50 zařízení.
Nech mě jít napřed a otevřete s programem s názvem xxd.
>> Zpět v den, byla většina programů jmenoval poměrně záhadně,
a tak tento trend pokračuje.
Ale-b znamená vyplivnout tento program tak, jak binární.
Nespouštějte jej.
Zobrazení mi to jako nul a jedniček, a to je C
program, který jsme právě napsali.
Teď, já, jako člověk tady, upřímně nemám ponětí, co
Tyto různé vzory nul a jedniček představují.
Zpět v den, jsem s mými děrné štítky nebo podobné výrobky, by
skutečně se podívat do jaké tyto různé vzory
01111000, ve skutečnosti představují.
Nebo ještě hůř, potřeboval bych udělat děrování nebo vytvoření
z těchto vzorů nul a jedniček.
Ale teď, se na základě víry, že CPU, Intel Inside, tak
mluvit, uvnitř všech našich počítačů v těchto dnech, ví
jak interpretovat tyto nul a jedniček.
A některé nuly a jedničky znamenají tisk.
Některé nul a jedniček znamená hrát zvuk.
Některé nuly a jedničky znamená vzít si uživatelský vstup z klávesnice.
Je tu všechny druhy různých vzorů, ale naštěstí,
jako lidé, pouze obecně muset starat o programování v
Tento poměrně vyšší úroveň.
A v jiných třídách CS můžete ponořit hlouběji a podívat se
u věcí jako ty nul a jedniček, nebo ještě
jiné věci stále.
>> Tak teď pojďme změnit toto.
Pojďme velmi rychle pryč od C a přestěhovat se do něčeho na
trochu víc uklidňující, trochu víc vzrušující, v tom, že
můžeme dostat zpět naše animace a zvuky a podobně, které
jasně uniklo nám v této
docela primitivní rozhraní.
Takže to stejný program v jazyce C mohou být reprezentovány nyní v této
programovací jazyk nazvaný Scratch takto.
To je ekvivalent tohoto Hello World program napsaný v
Tento kousek skládačky styl jazyka nazývá Scratch.
Tak nech mě jít napřed a otevřít tuto velmi programu.
Je to zase jen Scratch.
Je volně k dispozici, a to je totéž jsme
začal dnes na.
>> Tak tohle je Scratch, a to se rozdělila na několik
různé kusy.
Na velmi pravém horním rohu, máme tzv. fáze, a
opravdu, že je místo, kde jsou cookies
provádí jen trochu dříve.
A na jevišti se věci jen přízraky, znaky, nebo
objekty, nebo subjekty.
To není opravdu jedno, jak si o nich myslíte, ale
jsou programovatelné, pohyblivé věci, a v tomto případě se jedná
program, který naše student psal má několik perníku
cookies, pár kruhových cookie, celá banda
srdce, celá banda brýlí.
Z tohoto důvodu se nebo je schopen programovat každý z nich
Jednotlivé postavy samostatně.
>> Teď, co to znamená naprogramovat tyto znaky?
No, nechte mě jít napřed a klikněte na levé straně cookie
a přejděte přes nahoru doleva zde.
V levém horním rohu mé obrazovce je nyní
tzv. skripty oblast.
To je druh nepopsaným listem, zpočátku, na které mohu
drag and drop puzzle kousky, které, upřímně, dělat
přesně to, co říkají.
Na vrcholu tohoto zásobníku dílků je slovo
Když Green Flag klepnutí, a pokud jste si nevšiml dříve,
jak jsem začal, že cookie píseň byla kliknutí, doslova,
zelená vlajka.
Takže skládačky vlevo nahoře tam znamená, když
lidských kliknutí zelená vlajka, pokračoval dělat
následující věci.
>> A teď, co se jim cookie pokračovat dělat?
Já opravdu nevím, jak interpretovat to ještě, ale
cookie zřejmě nastavit její drážky na nulu, pak to čekal
tři sekundy, pak to změnilo jeho skupinu s jedním, pak to
čekal druhý, pak se to změnilo jeho
groove zpátky do jednoho.
A pak to skutečně vypadá jako trochu chybu, by neměly
muset změnit své drážky znovu a znovu, pokud je to
měněn jinde, ale tato série kroků je to, co je
diktovat chování tohoto konkrétního souboru cookie.
Takže pojďme skutečně posunout zpět a nedívat se na něco
tak docela složitý ještě.
Nech mě jít napřed a jít do souboru, Nový,
a získat čistý štít.
>> Takže teď, jsem opravdu bude mít prázdnou skript prostor, prázdné jeviště,
s naším výchozím sprite nuly, a v levé horní části
Na obrazovce mám paletu všech jejich
K dispozici dílky.
A nebudeme procházet téměř, že mnoho z těchto věcí
dnes, protože, opět, většina jsou samo-vysvětlující, ale my
snaží roztřídit je a poukázat na podobnosti
s těmito budoucími jazyky, na které budeme potápět.
A vlevo nahoře tady je první Když Zelená vlajka klepnutí,
tak ať mi přetáhnout sem, oddálit trochu.
A když jsem klikněte na zelenou vlajkou, nic se opravdu děje, protože
Nemám připojen žádnou logiku, prohlášení tak mluvit,
že zelená vlajka, tak nechte mě jít do
Kategorie sem.
Jsem v současné době v Ovládacích kategorii.
Já místo toho jít do toho, jak vypadá kategorii, a
je tu celá parta věcí zde, že Say Say,
Zamyslete se, měnit barvu, spínače kostým.
>> Takže si můžete udělat hloupé věci s kostýmy a
zvuky a podobně.
Nech mě jít dopředu a jen říct Say, a teď zjistíte, jak jsem přetáhnout
a odstranit tento kousek skládačky, to bude chtít, aby zapadla
do odpovídajícího tvaru.
Takže když jsem se do toho pusťte a pustil mé myši, uzavřou
společně, a teď když půjdu sem a klepněte na zelenou vlajkou,
kočka se ve skutečnosti pozdravit, protože to je to, co je uvnitř
tohoto bílém poli.
Brzy budeme vidět, že bílý box je to, co se nazývá
argument, nebo parametr.
Je to způsob změny chování, v tomto případě,
skládačky, ale pokud chci říct, co přesně jsem řekl
před, řekněme hello, world, teď mohu vrátit sem,
Klepněte na tlačítko Přehrát a "hello, world" je to, co je řekl.
>> Takže jsme se doslova programování nyní.
Není to, že přesvědčivé programu, nejméně však
je to trochu závažnější, než něco, co vypadá, na
první pohled, jako je tento.
A můžeme velmi rychle dostat všechny výraznější
protože v Scratch, stejně jako v jiných jazycích, tam je všechno
druhy výkazů, a to nejen Say nebo tisk něco, ale
můžete dělat věci, jako je čekání, jak jsme právě viděli s
cookie, některé počet sekund.
Můžete přehrávat zvuky v prostředí Scratch jen
jako můžete v běžném počítačovém programu přehrávání zvuku.
Můžete zjistit, co se nazývá booleovských výrazů.
Takže teď, pojďme začít se přidat k našemu nástrojů některé terminologie
že se ve skutečnosti týká příkladu, že Joseph a já udělal
Zde se ponožek.
Takže tvrzení jsou jen vylíčením skutečnosti,.
Udělej to.
Směrnice pro skřítka, nebo mě člověk, něco udělat.
Booleovský výraz je něco, co má hodnotu,
tzv. pravdivostní hodnota, která je buď nula nebo jedna, nepravdivé nebo
pravda, zapnutí nebo vypnutí, ne nebo ano.
Nezáleží jak si myslíte, že o tom, ale je to
binární stav.
Jak Nate projednán ve videu středeční, dva
různé věci.
>> Takže v Scratch, Booleovské výrazy stane se podívat
jako jsou tyto modré objekty zde, v tomto případě, je otázka
Značka znamená, že se ptáte na otázku.
Je kočka, nebo sprite, dotýká myši?
Takže to je jen jeden příklad z Scratch bloku, co se děje
které nám umožní zjistit ano nebo ne, je myš dotýká
sprite na obrazovce?
A to může být užitečné, pokud si opravdu chcete dělat věci
s myší.
Kromě logických výrazů, máme věci
jako je myš dolů, takže můžete zjistit, že druh
otázka, jak dobře.
Můžeme to udělat matematiku, pokud si opravdu chcete, a tam je
ve skutečnosti více přesvědčivé použití pro toto, než jen ryzí
aritmetický, jak uvidíme.
Pseudo náhodnosti a aby si program, si zřejmě myslí,
nebo se chovají různě v závislosti na některých zdánlivě náhodných hodnot,
a pak máme takové věci booleovských výrazů jako AND.
Takže pokud opravdu chcete zkontrolovat dvě hodnoty, uvidíme v
Stírací, že můžeme skutečně vyzkoušet, zda se jedná
pravdivé a je to pravda.
Například, v případě, že mé ponožky, mohl jsem na
velmi end zeptal na otázku, zda levý ponožka je zapnutý a pravé ponožka
je na, ukončete.
Tomto kroku na den, takže by bylo
příležitost pro to.
>> Tak pojďme do toho a zkuste se dát některé z nich společně
a jít do pár příkladů více
přesvědčivé než tenhle.
Tak nech mě jít napřed sem a otevřít některé z příkladů
že bude vždy o průběhu stránkách stejně, a
otevřít hello2.
Takže v hello2 zde, máme program, který to dělá málo
věci, ale to nedělá to tak účinně, jak bychom mohli.
Tak tady to říká "Hello, world" po dobu jedné sekundy a pak čeká
pro druhé.
A pak to udělá znovu, a pak se to znovu.
Takže když jsem klikněte na zelenou vlajkou, Scratch říká "Hello, world.
Hello, world.
Hello, world. "A to je samozřejmě kandidát nyní
zlepšení.
>> Co je marginální zlepšení, doufejme, můžeme
nyní udělat, pokud Scratch podporuje koncept?
Nějaký druh smyčky.
Nějaký opakování, nyní, by bylo hezké, tak ať mi
vlastně to zkusit.
Dovolte mi, abych skutečně jít a pohybovat to.
Takže oznámení lze oddělit bloky tak snadno, jak si můžete přidat do
připevněte je.
Nech mě jít pod kontrolou, přejděte sem, a opravdu,
tam je to kousek skládačky tady, opakování a Forever a
Forever Pokud.
Takže tam je několik způsobů, jak vyjádřit cyklickou konstrukce
v Scratch.
Ten, který jsem pravděpodobně chtít tady není navždy, protože jsem jen
Chci aby se to stalo třikrát, ale pravděpodobně Opakovat.
Dovolte mi tedy přetáhnout Opakovat tady, přetáhněte ji, a
Nyní místo toho řekl "Hello, world", tři samostatné krát,
dovolte mi, abych přetáhněte tento kousek skládačky tady.
A i když se to nezdá, aby se vešly, program inteligentní
dost si uvědomit, že bude růst vyplnit, takže je to
tvary, které záležitost a ne absolutní velikost.
Dovolte mi, abych změnit opakování na tři, a teď nech mě jít
dopředu a přetáhněte Počkejte One Second tam také.
Bude to snap v také, a tak teď budu táhnout
tito lidé sem a jen házet je pryč, protože jsem
nepotřebují už.
Dovolte mi, abych oddálit a klikněte na zelenou vlajkou nyní, a my máme
stejný program, ale jak jsem předpovídal před, lépe
navrženy, protože si dokážete představit, jak špatně je tento program
by si jistě esteticky, pokud byste měli
kdo kopírování a vkládání, kopírování a vkládání, nebo
přetažením stejné zatraceně věci znovu a znovu.
>> Nyní, prostě říkat věci na obrazovce, tisk na
obrazovce, opravdu všechno, není to vzrušující, takže se pojďme otevřít
třetí rozptyl zde.
A teď, jak uvidíte, tohle se rychle dostat otravné -
[Meow]
DAVID Malan: -, ale je to také trochu roztomilý.
[Meow]
DAVID Malan: Dobře, tak lépe, a můžeme samozřejmě použít, aby
Stejný přechod Chunking to až do opakování
struktura, ale pojďme dělat to více zajímavější stále.
>> Nech mě jít napřed a otevřít čtvrtiny rozptyl tady, kde jsem
brát věci o krok dál.
Tak podle tohoto, hloupé i když je to na první
pohled, co se tento program bude dělat?
Bude to meow jednou.
Proč?
No, jeden je, pokud vím, vždy menší než dva.
Není pojem náhodnosti zde.
Já jsem doslova pevně jedna a dvě, ale to je
Příkladem nyní skutečně používat logický výraz.
Podobně jako jako Joseph dělal v jeho pseudokódu, odsazení KDYŽ
najdete odpovídající ponožky proveďte následující, zde máme
výraz Jestliže jeden je menší než dva pak -
a ve skutečnosti budeme mít i trochu odsazení,
kde je fialová mírně odsazena doprava -
Pak budete hrát zvuku mňau.
Nyní, v tomto případě, že je vždy menší než dva, takže tento
je tak trochu plýtvání stavu.
Ale budeme moci, jak uvidíme, připojit jiné věci do
Tyto zástupné symboly, kde jedna a dvě nyní jsou.
Takže pojďme se nyní postupně například pět těchto několika
pozdravy a pohled na to, co tento program to udělá.
>> Takže teď, v anglické větě, jak to
se program chová?
PUBLIKUM: Meows polovinu času.
DAVID Malan: Mňau je polovina času, takže to je způsob, jak
dopravu velmi jednoduchý nápad.
I když jsme se náhodou používat některé nerovnosti zde
v některých čísel, to je ve skutečnosti jen programový
způsobem, přesný způsob, jak říct když se mince přijde hlavy, jít
dopředu a mňau.
Nebo naopak, když se mince přijde ocasy, ne mňau.
A v tomto případě, jak jsme vyjádřit, že?
Budeme si vybrat náhodné číslo od 1 do 10, a pokud to
číslo je menší než 6, jděte do toho a mňau.
A jak se to sem dostat?
No opět si všimněte, jen přetažením a
věci nezapadne na místo.
>> Takže teď uvidíme, jestli to náhoda funguje.
Nech mě jít dál a klepněte na zelenou vlajkou.
[Meow]
DAVID Malan: Dobře.
[Meow]
DAVID Malan: Dobře.
Dobře, dobře, tak my jsme dostali hlavy, hlavy, ocasy efektivně.
Tails.
[Meow]
DAVID Malan: Heads.
[Meow]
DAVID Malan: Výborný.
Je to vždy nepříjemné, když jen statisticky dostanete špatný
běh, a to všechny hlavy, a program ve skutečnosti není
fungovat, jak byste doufali.
Ale tentokrát to fungovalo, a zdá se, že mají-li jsme
Tento nekonečný počet opakování, 50% šance.
Teď znovu, ne všichni, že zajímavé, jen aby kočky
meow, takže uvidíme, jestli nemůžeme postoupit tento kousek dál
zde ve verzi šest.
Takže teď máme opravdu nepříjemný verzi -
[MEOWS každých pár vteřin]
DAVID Malan: - a to je to, co je známo, obecné, as
nekonečné smyčky.
>> Takže nekonečné smyčky v tomto případě cítí špatně.
Je to určitě bude, kdo znít špatně, a přesto nekonečný
smyčky nejsou vždy špatné.
Může si myslíte, že kontext, v počítačových programů, kde byste
vlastně chceme nekonečnou smyčku?
Jo?
PUBLIKUM: Chcete-li zkontrolovat stav.
DAVID Malan: Dobře, když chcete zachovat kontrolu podmínku?
Jako co?
PUBLIKUM: [Neslyšitelné]
DAVID Malan: Dobře, dobře, takže pokud jste měli nějaký program, někteří
Takové věci domácí automatizace, kde chcete neustále
Monitor je něco případ.
Jsou světla na?
Jsou světla na, protože možná budete mít časovač, a
Chcete, aby šli pryč, možná budete muset něco udělat
znovu a znovu.
A ve skutečnosti, když už mluvíme o časovačů, každý z vás, kteří se
hodiny na vašem počítači nebo digitální hodinky, to je
nekonečné smyčky.
Nadále aktualizovat čas, protože je to stále
kontrola a kontrola a kontrola má čas změnit,
a pokud ano, oh, můj bože.
Hodiny se konečně změnila.
Je třeba zobrazit tuto hodnotu pro vás.
Takže vzhledem k tomu, většinu času nekonečné smyčky jsou chybou,
nebo alespoň špatnou designu rozhodnutí, jindy
mají svou hodnotu.
>> Dobře, pojďme postoupit dále zde hello7.
Takže teď bude program trochu více interaktivní.
Dovolte mi, abych přiblížíte tu, a znovu, to je to, co je hezké
o Scratch.
A budeme používat to, aby bylo jasno, Scratch, právě dnes a do
příští týden je problém nastavit.
Ale v pondělí, jsme se ponořit do C. V tomto programu zde, to dělá,
navždy, následující.
POKUD dotyku myši - teď, kdo je
souvislosti tady?
No, a všimněte si, že kdo je vybrán tady dole
právo je kočka, sprite, takže jsou tyto skripty, tento
Program, platí pro něj konkrétně.
Takže pokud ta kočka se dotýká myši, pak to bude
hrát tuto dolů a vyčkejte dvě sekundy, a
opakujte ad nauseum.
>> Tak pojďme do toho a hit hru.
Nic se nestane, ale pokud chci pohladit
cat teď, mohu jen.
[Meow]
DAVID Malan: Rozkošný.
[Meow]
DAVID Malan: Dobře, méně obtěžující, ale také zmatní,
tak pojďme dál a uvidíme, jestli nemůžeme aplikovat
trochu více logiky.
To bylo například sedm.
>> Zde v příkladu osm, budeme
zavést ELSE podmínku.
Tolik jako doslovný rozcestí, ve kterém můžete jít
vlevo nebo můžete jít rovnou, stav v programování
jazyk jako Scratch, nebo jak uvidíme C, vám umožní
jít v jednom směru nebo jiný přes If Else konstrukce.
Takže doslova, POKUD dotýkat myši, tato
bude hrát nějaký zvuk, ELSE, že to bude hrát ten druhý
zvuk, mňau.
Nyní, pokud můžete odvodit z názvu těchto zvuků, můžete
asi tušíte, co tento program je určen pro vykouzlit
myšlenka.
Tato kočka je meowing šťastně.
[Meow]
DAVID Malan: Naštěstí, ale není
Docela se mi líbí, aby se dotkl.
[Řve]
DAVID Malan: Takže teď máme kočku, která bude křičet na tebe.
>> Dobře, dobře, poslední příklad s kočkami zde, a
Pojďme otevřená verze devět tady.
Takže teď máme další nejotravnější zvuk, že jsem mohl
najít, takže máme mrože nebo lachtan zde, kdo bude
proveďte následující.
[SEAL kůra]
DAVID Malan: Dobře, takže to bude pokračovat, dokud se přijít na to, jak
tento program funguje.
Takže tentokrát, to zvíře má dva skripty, a to, co je
Zajímavé je, že tyto skripty budou provádět
paralelně.
Tak proto, že oba začít s jedním zelené vlajky na něj kliknete,
je to jako jít takhle, a oba programy rozběhnou ji
jednou, i když jsou to smyčky navždy.
Takže v horní skriptu, mám nějakou logiku.
Jaké funkce, které poskytují tam?
[SEAL kůra]
PUBLIKUM: [Neslyšitelné]
DAVID Malan: Pokud je to, co?
[SEAL kůra]
PUBLIKUM: Pokud ztlumen na nulu, bude to hrát dál
zvuk. [SEAL kůra]
DAVID Malan: Dobře, dobře.
Takže pokud tlumené, co to je, to oranžová věc je nulová,
POTOM hrát lachtan zvuk a že "Oh,
ahoj, "po dobu dvou sekund.
Teď, já nevím, co je ztlumen, ale nulové vyvolává
Myšlenka false nebo vypnout.
Takže pokud ztlumen je nepravdivé, tak pokud není vypnut,
udržet přehrávání zvuku.
Dobře, dobře, jak jsme se zakázat tuto věc?
>> No, pojďme se podívat na druhém skript tam dole.
Druhý skript říká nastavena ztlumen na nulu.
Všimněte si, že je to také oranžová, takže to, co dělá, je to Scratch barvy
bloky ve stejném odstínu, pokud je to něco
logicky souvisí.
Takže stejně jako tlumené až nahoru byla oranžová, tak je ztlumen tady
je uvedeno v oranžové bloku.
Ale to je jen variabilní úkoly, takže stejně jako v
algebra, máte X a Y a Z, v programování máte
proměnné, ale oni jsou obecně -
Vraťme se na chvíli zastavit a postava jak
k zastavení tohoto štěkání.
Jak to mám udělat?
[SEAL kůra]
DAVID Malan: Dobře.
Přestalo to. Dobře.
>> Takže stejně jako v algebře máte proměnné x, y, a z, ale v
programování, které mají proměnné, jako x, y, a z obecně
odsuzován, protože to není vůbec výrazný.
Nemají sémantický význam vůbec, tak ve většině
programovací jazyky, mohou proměnné mají plné
plnohodnotné jména nebo slova nebo fráze, ztlumen rád, říci
co dělají.
Takže toto Druhý skript také poslouchal navždy, a řekl
Pokud klíč, klávesnice klíč Space, je
lisované, otazník.
Takže tam je to stav s logický výraz, který je
bude odpovědět na otázku, jak pravdivě, nebo false,
pak jsem do ní, že si místo stisknutí tlačítka A
POKUD ztlumen je nula, nastavte ztlumen na jednu, ELSE nastavit ztlumen na nulu.
Takže ten druhý rozcestí, a všimněte si, jak jsem se
vnořené dvě, pokud podmínky, je způsob kontroly je
Space Bar stisknutí, protože pokud ano, jsem buď chci jít tuto
tak či onak.
A jak mám obrátit hodnotu ztlumen?
Musím zjistit, je to nula?
Pokud ano, je to jedna, jinak aby bylo nula až tedy přepínat
jeho dva stavy.
>> Dobře, takže máme pak některé z těchto základních
konstrukty.
Máme booleovských výrazů, a uvědomit si, taky, jsou
není všechno, že neznámé.
Ve skutečnosti, tady je rychlý screenshot samozřejmě Harvard je CS50
nákupní nástroj, a všechny webové stránky, které tam má zaškrtávací políčka
a pokles sestřelí opravdu, celou tu dobu, byly pomocí
Booleovské výrazy.
V tomto případě zde, pokud kliknete na zaškrtávací políčko vedle
Předmět větší než nebo rovno 4,5, nebo stejné vedle
fakulty, jste s uvedením logický výraz.
Ukaž mi kurzy, pro které tento výraz je pravdivý.
Nebo doprava, není v rozporu s kurzy proč jsem
přičemž, pokud je to, pak ano, chcete zkontrolovat
tato podmínka, jinak budete chtít ignorovat.
Takže Booleovské výrazy jsou trochu všude kolem, ale když
dáme je do podmínek, ať už pokud to podmínky, POKUD
Elses, nebo dokonce můžeme simulovat hlouběji
úrovních, pokud ELSE If Else -
tak to je něco jako ternární stavu.
Můžete jít tudy nebo tento způsob, nebo tento způsob.
Můžeme si ponechat hnízdění věci jít různými směry.
>> Tak Scratch má tyto smyčky, jako Forever.
To má tyto funkce, jako je Repeat 10, některé
konečný počet, kolikrát chcete.
Máme schopnost nyní nastavit proměnné, takže v tomto případě se
Já jsem prohlásil, například proměnnou s názvem ponožky.
Jsem inicializovány na 0, a to je další směr
mohli jsme vzít tady s Josefem, čímž jsem možná
jen sledovat, kolik ponožky mám na a ukončit
program při této proměnné je hodnota 2.
To by byl jiný způsob, jak řadit z zevšeobecňovat, že
problém a dělat něco znovu a znovu.
No, pojďme dál a nyní představuje pár nových věcí.
Takže ti z vás s předchozím programování zkušeností bude
vím, že mnoho jazyků má pole, nebo vektorů nebo
seznamy, a opravdu, Scratch má něco takového taky.
Tak uvidíme, jestli se nám podaří nebrat věci na další úroveň zde.
Pokud budu mít možnost, nyní s těmito puzzle kousky na
přidat něco, jako slovo nebo číslo, do proměnné, mohu
začít hromadit věci.
A to je vlastně docela apropos pro věci, jako jsou hry,
hry na hrdiny, kde jste druh chodí
některé fantasy svět sbírání věcí, vyzvednutí věci,
sbírat body, nebo podobně.
Možná budete chtít sledovat nějakého druhu zásob, a
opravdu, že to, co jeden z našich bývalých studentů zde dělal s
něco, co nazývá Fruitcraft RPG.
>> Tak nech mě jít napřed a otevřít tuto věc tady, a ve
Fruitcraft, máme tento svět se na vrcholu.
Tak nech mě jít napřed a klikněte na zelenou vlajkou.
Oznámení vlevo nahoře je nějaký druh zásob.
To je realizován v Scratch jako to, co budeme říkat pole nebo
seznamu, a teď máme tuto malou animaci.
Takže stejně jako jsme začali dříve s tímto příběhem cookie lásky,
a pak jsme postoupili k koček a lachtanů, teď můžeme mít
věci, které jsou ještě více interaktivní.
A tento malý modrý kluk, mohu začít pohybovat jeho
málo domů zde.
Takže to vypadá, že má k výjezdu sem, takže jsem pomocí
se šipkami, nahoru, dolů, vlevo, vpravo.
A teď jsem mimo, tak ať je to, co jsem se sem dostal.
Vypadá to jako pomeranč, a opravdu, jakmile jsem se dotknout
oranžová, dostane se svalil do svého inventáře.
Když jdu sem na třešně, teď mám něco
jiný v mém inventáři.
A to je hezké a roztomilé, ale přemýšlet o tom, jak teď, to
je realizován.
No, máme tento pojem v seznamu, a to je zřejmě
skládačky, že stačí říct, co chcete přidat na to, přidat
oranžová, přidejte třešně.
A teď, co je to malý modrý chlap dělá?
No, on je to skřítek.
A pravděpodobně, oranžové a třešně -
oni sami byli oddělené skřítky.
A pomocí podmínek v logických výrazů,
Student byl pravděpodobně schopen vyjádřit POKUD modré chlap je
dotýkají třešně Potom přidejte slovo třešně na jeho
zásob, a pak také skrýt třešňový sprite.
Takže pod kapotou, tam pravděpodobně ještě je třešeň
sprite tam.
Právě jsme řekli, aby se stal skutečně neviditelný.
>> Teď, když jsem jít dál tady, můžeme provést také
proximální věc, kde bych mohl jít a číst znamení.
Takže pokud blue chlap dotýká znamení, můžeme mít to říká blok
stejně jako kočka k nám promluvil ve slovech, ahoj, dříve, "Got
některé druhy ovoce?
Přineste ho na ovoce místo. "Dobře, takže teď, zdá se,
Mám instrukce.
Můžu jít sem na ovoce místo, srovnejte abych se
s dveřmi.
Teď jsem tady.
Můžu jít až k muži na přepážce.
On zjistí, že jsem se k němu, tak to nemusí být
docela stejně dojemné, a já jsem vyhrál hru.
Tak tady to máme Fruitcraft RPG.
>> Takže můžeme dělat věci ještě pokročilejší, než tohle.
Můžeme přidat zvuky.
Můžeme přidat pseudo náhodnost.
Můžeme přidat složitost.
Nech mě jít napřed tady, a spíše než dělat to sám,
dovolte mi, abych vám ukázat jeden z více sofistikovaných podání
jsme v loňském roce z určitého někoho jménem Blake.
Můžeme mít jednoho dobrovolníka, který je pohodlný objevit na
fotoaparát a je pro hraní her?
Jak asi tady?
Pojď nahoru.
Dobře, takže hra, která jste právě nevědomky
dobrovolně hrát -
[APPLAUSE]
DAVID Malan: - je něco, co z dávných dob tzv.
"Frogger." Jaké je vaše jméno?
Renda: Renda.
DAVID Malan: Redna?
Renda: Je to jako Brenda s b..
DAVID Malan: Dobře, Renda.
David.
Rád Vás vidím.
>> Takže tady v "Frogger", a pokud bychom mohli zvýšit objem jen
trochu, jste tento malý
zelená žába na dně.
Můžete použít vlevo, vpravo, nahoru a dolů, a vaším cílem je, aby
přes ulici, přes řeku, a klepněte na lilie podložky
v horní části.
Aw.
One More t -
redo, dobře?
Pojďme hit stop.
Nikdo neviděl, že.
[APPLAUSE]
DAVID Malan: Jo.
Velmi dobře.
Skvělé, děkuji.
>> Tak, že došlo Frogger. Nyní, když víte, co jste
dostal sami do, ještě jeden dobrovolník pro různé
Hra nám jiným studentem.
Chcete-li jít nahoru?
Jak se jmenujete?
RICHARD: Richard.
DAVID Malan: Richard.
Dobře, Richard, pojď nahoru.
[APPLAUSE]
DAVID Malan: Máte něco, co bude znít
obeznámeni brzy, takže tady jsou vaše instrukce.
Takže ve chvíli, některé dílky budou posouvat nahoru
na obrazovce, která vypadají buď vlevo
nebo vpravo nahoru nebo dolů.
Budeš muset zasáhnout šipkou takovým způsobem,
že odpovídá těmto dílků čekajících s
zástupné symboly v horní.
Takže když vidíte šipka vlevo, a to linky s levou
arrow, udeřil na šipku doleva.
Můžete začít.
[MUSIC - "silnější" Kayne West]
DAVID Malan: Dobře, velký potlesk pro Richarda.
[APPLAUSE]
DAVID Malan: Velmi dobrá práce.
Děkuju.
[APPLAUSE]
>> DAVID Malan: Tak zábavné a, zdánlivě, druh
zastrašující jak by mohla být na realizaci něco jako
zdánlivě sofistikované jako to, uvědomit si, že student
nebyly stanoveny a jen psát to všechno najednou.
Spíše, můžete rozebrat problém jako zdánlivě složité
protože to v mnohem menší kousky, a to je také
bude tématem.
Nejhorší věc, kterou můžete udělat při psaní programu ve většině jakékoli
jazyk je, aby se posadili, se opravdu vzrušená, napište
Celá ta zatracená věc, a pak už jen doufat, že to funguje
Čas, který se dokončení psaní.
Spíše by proces plánování obecně
být velmi úmyslné, velmi iterativní, kdy stačí
nastavit velmi malé kroky pro sebe, bite-size kousky
chceš ukousnout, a tak, že máte tyto zdravý rozum
kontroly, malé milníky můžete setkat.
A pak budete stavět na vrcholu těch vytvořit více
sofistikované věci stále.
>> Tak například, jak by jsme jít o
, kterým se provádí hru jako je tento?
No, upřímně řečeno, určitě bych začít tím, že právě
podporuje jedno tlačítko najednou.
Řekněme, implementovat podporu pro levé šipky.
Takže student měl nějak vytvořit v Photoshopu, nebo v
Scratch se pomocí malé grafický editor, k
arrow klíč, který vypadá jako ten nahoře vlevo, jen tam
šedý zástupný symbol.
Pak student měl zjistit, co se x, y koordinovat
dát, kam to dát v okně.
0, 0 je tady, takže budete muset přijít na řadu
pixelů, nebo tečky, k vyrovnání ten šíp z
v horní části obrazovky.
A pak ještě jednou, že je v místě, váš program není ve skutečnosti
dělat něco ještě, takže potom je třeba druhý sprite, pro
instance zelená šipka, která je také ukazující vlevo, a vy
pak je třeba začít psát nějaké skripty pro něj.
>> A jste si všimli, možná, že tyto věci začali přicházet na
při různých rychlostech, a barvy byly v různých
místa, a to proto, že se student používá trochu
pseudo náhodnost.
A tím pseudo náhodnosti, jsem jen říct, vybrat číslo
mezi něčím a něco, protože můžete
začít mapě věci, jako když číslo je mezi jedním a
pět, dobře, pojďme se věc zelené.
Pokud je to mezi 6 a 10, pojďme se na kousek skládačky
červená místo.
Tak dlouho, jak máte způsob generování nějaký
náhodnost, můžete pak učinit rozhodnutí na základě toho
náhodnost.
A já si říkají pseudo náhodný, protože tam je
trochu špinavé tajemství.
Počítače nemůže přijít s náhodnými čísly.
Mohou dělat pouze to, co se jim řekne, protože
jsou umělá zařízení.
Nemohou jen hádat číslo jako my, lidé,
pocit, že můžeme.
Počítač musí něco udělat matematický vykouzlit
iluze matematické čísla, někdy používat
aktuální den času jako vstup do zjišťuje, co
Číslo vrátit, ale o tom až jindy.
Pro tuto chvíli, jen vím, že můžeme vytvořit pseudo náhodnost.
>> Takže jakmile jsem tu možnost pro levé šipky pro spuštění
objevit v různých časech a na různých rychlostech, a pak
Můžu se vrátit a přidat některé z nich, jestliže podmínky.
Pokud tento sprite se dotýká druhou a levá šipka
bylo stisknuto tlačítko -
takže tři podmínky uvedené v tomto případě.
Mohu použít, že a blokovat možná, v tomto případě -
Pak chci jít dál a zvyšovat skóre.
A nahoře, máme skóre, máme Awesome,
Cool, Good, a Boo.
Takže tam to prý pěti proměnných, které tento student
slouží ke sledování těchto různých metrik.
Takže ve zkratce, konečný výsledek je úžasný.
Je to zábava, je to zábava hrát, je to poutavé, ale to není
kde student začal.
On nebo ona začala při mnohem menší sadu kroků.
>> Takže jaké jsou některé další stavební bloky, které můžeme
vazba do těchto programů?
No, tam je to jiné pojetí ve většině jazyků,
Stírací mezi nimi, známý jako závity.
Takže počítač vlastně není opravdu více věcí na
Doba, alespoň ne obvykle.
Spíše, počítač má obvykle jen jeden procesor, a dokonce i
i když počítače jsou velmi rychlé a může proto,
vytvořit iluzi dělat více věcí najednou -
kontrola pošty, jak se okamžitě
zpráva, tisku dokumentu -
Opravdu, počítač je jen skákání z tisku až IMing
k odesílání e-mailů, zpátky a zpátky a tam a zpátky tak rychle, že jsme
pomalé nechápavý lidé prostě neuvědomují, že je to vlastně
běží Tyto programy trochu v čase.
Nyní, to trochu bílé ležet v těchto dnech, protože v dnešní době,
mnoho našich počítačů je to, co se nazývá multi-core, takže
mají jeden procesor, ale více jader, což je něco jako
s více procesory.
>> A tak někdy, mohou počítače skutečně dělat více věcí
v době, ale obecně v rámci programu, programy
spoléhají na tyto věci zvané vlákna.
Takže vlákno je něco jako miniaturní programu, které mohou
existují vedle jiného miniaturní programu a může spustit
paralelně, nebo alespoň může běžet v iluzi, že
že běží současně.
Tak Scratch podporuje tyto věci zvané vlákna.
Můžete mít více skriptů vykonávající najednou, stejně jako my
udělal se lvem moře, a to nám umožňuje skutečně
pak interakce mezi těmito skřítky.
Nech mě jít napřed sem a vytáhnout, řekněme, vlákna, a
hrát to následujícím způsobem.
Máme dva přízraky, z nichž každý uvidíme
má jen jeden scénář.
A zjistíte, že se zdá být nějaký inteligence
kočka v této jedné, protože on je stále blíž -
[Řve]
DAVID Malan: - a blíže k ptáčka.
>> Tak, jak je pták létá?
No, pojďme se podívat na ptáka jako první.
Pták skript řekl po klepnutí zelená vlajka, jděte do adresáře X
rovná záporné 115 a y se rovná 150.
Tak jsem přišel na to, náhodné místo, kde jsem chtěl
pták začít, a já jen svalil ho tam ve výchozím nastavení.
Pak Forever POKUD nedotýkají kočku, tak to je jiná
druh konstrukce cyklu, ale stejný nápad, udělat to znovu a
znovu a znovu.
Tak dlouho, jak jste se nedotýká kočku, přesuňte tři kroky, a
pokud jste na hraně, odrazit, kde je to trochu
odraz ve smyslu billiard.
Tak to je, jak se pták pohybuje druhu
zdánlivě náhodně, ale je to jen proto, že je to se odrazil
stěny v tomto případě.
>> Nyní kočka, mezitím, je tak trochu podvádění.
Kočka, po klepnutí zelená vlajka, ano, začíná v
určité místo, náhodné umístění -
alespoň částečně dle pick
náhodné zelená blok tam -
a potom Forever KDYŽ dotyku ptáka, hrát lev zvuk,
a pak se zastaví skript.
Takže když jsem řekl ukončit, nebo ukončit dříve, tam je puzzle
kus Scratch, že bude jen tak zabít program se na to
bodu, protože je to trochu logicky udělat.
Ale jinak, tady, všimněte si, co se bude dít.
Bod k ptáka a o krok.
Takže tento bod k pták je tak trochu výhodu kočky
má v tom, že je to naváděcí v na pohyblivou ptáka, a můžeme
Nyní, aby tento program all zajímavější.
Místo přesunutí o jeden krok v době, za cyklus procesoru, za
stávka mýtné na zvonku, abych tak řekl, nech mě jít napřed a
pohybovat, řekněme, pět kroků najednou jako kočka.
Klepněte na tlačítko Spustit, a teď opravdu ho najde rychle.
Pokud bychom zdvojnásobit to dále 10 kroků, je trochu jde
právo na něj.
Nyní můžeme dát ptáka,
možná, trochu výhodu.
Pojďme na ptáka a řekl místo pohybu tři kroky,
pojďme ho 30 kroků.
Ale stále byl chycen na konci.
>> Takže tady máme dvě vlákna.
Je uvězněn v Scratch se dvěma skripty a dva
skřítci, ale myšlenka v jiných jazycích je to, že můžete
napsat, v podstatě, příliš mnoho programů, jako je tento, a mají
je běh skutečně, nebo pomyslně, paralelně.
>> Nyní, tam je také tento koncept v programování známý jako
události, a to je něco, co jsme se neviděli v C, se
jazyk známý jako C. Uvidíme ji na konci semestru
programování pro web, kdy jsme představili JavaScript a
Pojem stránek stavebních webových které jsou dynamické a vzájemně
s uživateli.
Takže v tomto případě je nutné velmi jednoduchý příklad dvou
skřítci, chlapec a dívka, z nichž každý má své příslušné
nitě, ale nějak tyto dva jsou vzájemně komunikovat prostřednictvím
ze dne něco jako akce.
Tak nech mě jít napřed sem a přiblížit na chlapcově skriptu,
která vypadá takto.
Když zelená vlajka kliknutí navždy proveďte následující.
Pokud klíč Space, nebo Space Bar, je stisknuto, říkají
Marco po dobu dvou sekund, to je čistě estetického na
obrazovce, trochu speech bubble, ale pak vysílat.
>> Takže vysílání je další Scratch kus, který je
zástupce třídy funkčnosti v programování
, který umožňuje různé programy, různé nitě,
pohřbít-komunikovat, nějak poslat
zprávy, jeden pro druhého.
Předávání kus papíru ve třídě je něco jako nízká tech
ekvivalentní.
Takže vysílat událost.
Mohu poslat tuto zprávu, a slovo akce
je zcela libovolné.
Scratch někdy má tyto vržených sestřelí, tak jsem jen přišel
s náhodným slovem, jako událost, protože teď, co chlapec dělá
když jsem stiskněte tlačítko je, že vysílá tuto událost.
A když jsem se podívat teď na dívčině skriptu, její skript je
super jednoduché, protože vše, co musí udělat, je nemůže jednat, pokud
zelená vlajka je klepnutí.
Ona je navržen tak, aby při akci, kdy se dostane citovat, unquote,
"Akce", a na tom místě, ona poslouchá proto
tzv. událost znovu a znovu.
Jakmile se dostane tuto událost, si to bude křičet
Polo po dobu dvou sekund.
>> A tak si můžete snad vyvodit z tohoto přesně to, co
další výsledek bude.
Dovolte mi, abych klikněte na zelenou vlajkou.
Nic se nestane, protože musím dělat co?
Diváků: Space Bar.
DAVID Malan: Space Bar.
Chlapec říká Marco, dívka říká Polo.
Ale to není pevně dáno samo o sobě.
To je vzájemné komunikace mezi skripty, takže nyní
mají schopnost učinit ještě složitější programy, kde
tyto dva jsou tak nějak vzájemně komunikujících.
>> Takže to, co směry můžeme vzít?
No, problém souboru 0, opravdu, je cílem
bavte se s Scratch.
Pro hackera vydání, budete místo toho bavit s více
sofistikovanější verze Scratch tzv. BYOB, Build
Vaše vlastní bloky, ale myšlenka je stejná.
Budete moci -
Ano, to bylo úmyslné.
Přišlo to z Berkeley.
BYOB je hacker vydání verze, ale jak
demografie, Standard Edition a Hacker vydání podobný,
cílem při ruce pro nadcházející týden je opravdu jen do toho ponořit
hluboká, dostat své špinavé ruce s programováním, a aby
něco zajímavého, aby se něco interaktivní, aby
něco umělecké, udělat něco zábavnější skutečně
prokázat, takže do konce týdne, budete mít projekt,
nejen pro své první CS50 PSet, ale budete mít
Něco málo, že můžete předvést v Annenberg na
přátelé, nebo dokonce rodinné podle nahrát na webové stránky MIT.
A tak, jak jsem řekl ve středu očekáváme 90% třídy,
obecně, k tomu standardní edice.
Uvědomte si, že je tu i tato zásuvka pro ty z vás, kteří
by jinak najít si trochu nudit se základy
a opravdu chcete ponořit a řemesla vizi jste již
mít s předchozím pozadí v to více přátelský
prostředí.
>> Dovolte mi tedy vytáhnout jeden další příklad, že jeden z náš bývalý
Studenti zde udělal a říct něco málo přes písně.
, Který podobně, jako to hraje, myslím, že o tom, jak jít o
provádění tohoto programu pomocí přesně tytéž
stavební bloky, trochu pseudo náhodnosti, a
trochu známé písně.
Pokud bychom mohli zvýšit objem jen trochu?
[MUSIC - "Prší muži" The Weather GIRLS]
>> DAVID Malan: To je to pro CS50.
Uvidíme se v pondělí.
[APPLAUSE]