[Přehrávání hudby] [APPLAUSE] David J. Malan: To je CS50, Úvod Harvard University k duševnímu podniky informatiky a umění programování. Nyní, pokud patříte k těm, které Každý rok se tu sedí s trochu nervů ve vaší mysli, jako , že si nemyslím, že sem patřím, si myslíte, že nejvíce někdo sedí kolem vás ví mnohem víc než vy, je skutečně pohodlnější než ty u počítače věda nebo počítače obecněji, realizovat že 78% studentů, kteří se se CS50 mít žádné předchozí zkušenosti. Ve skutečnosti, tam je 100 bodů tam na displeji, 78, z nichž jsou zeleně, která vás znamená, pokud jste mimo, že demografické, jsou ve velmi dobré společnosti zde na ven. A pokud jste místo mezi 22% CS50 studentů, kteří to opravdu mít předchozí zkušenost, ať už v vysoké školy nebo nějaký jiný program, uvědomit si, že i vy, bude být zpochybněna v průběhu. Nejen, že máme různé stopy pro studenty méně pohodlná a více komfortní podobně v oddílech jsme také takzvané hackerské vydání z nejvíce problémové okruhy, které Dotkne se těm studentům, s tím další zkušenosti prozkoumat podobný materiál ale z více sofistikovaný pohled. Ale to, co je počítačová věda? No, nakonec, co se děje na ohledu na to, jak si prohlédnout toto pole není tak kde jste skončili ve vztahu ke svým spolužákům, ale tam, kde vy sami skončí v týden 12 proti, kde začnete zde v týdnu nula. Nyní počítač science-- dobře, pojďme říkat věda computation-- kde výpočet je opravdu jen ozdobný způsob, jak říkat, přičemž nějaký vstup, produkovat nějaký výstup, a Přitom by se systémem algoritmů, sady instrukcí pro řešení nějaký problém z těchto vstupů aby produkoval nějaký výstup nebo řešení, ve kterém máte zájem. Takže jsme v nedávné době příležitost cestovat ven do Kalifornie, aby setkání s absolventkou. Její jméno je Susan Wojcicki. A ona chtěla mluvit aby jste zde na videu svědčit o tom, jak použít dokonce jen chuť počítače věda ve úvodní úroveň může být. Dokonce i když nechcete jít na sledovat počítačové vědy jako pole, nebo dokonce inženýrství, STEM nebo obecněji uvidíte, ve skutečnosti, jak určitá Samozřejmě tak ovlivnila její život. A ona jen prostě to vzal, když Byl senior zde na Harvard College. Pokud bychom mohli ztlumit světla pro Susan. SUSAN Wójcicki: Hello, world. Já jsem Susan Wojcicki. Jsem generální ředitel YouTube. A vzal jsem CS50, když jsem byl senior na Harvardu v roce 1990. Byl jsem vlastně historie a literatura major. A můj junior v létě, Uvědomil jsem si, že bych chtěl něco naučit o počítačích. A tak jsem se vrátil. Vzal jsem CS50. Bylo to těžké, ale bylo to nejúžasnější třída I vzal. To změnilo, jak jsem se myslet na všechno. A když jsem vystudoval Harvard v roce 1990, jsem šel do Silicon Valley. A já jsem dostal práci. A já jsem pracoval v tech od té doby. David J. Malan: Co teď Susan nezmínil v tomto videu, že to bylo vlastně v ní garáž, že Google sám byl založil Larry a Sergey. Nyní jsme se také natáhl k našim přátelům v code.org, organizace, která v průběhu minulého roku bylo přimět lidi, zejména nadšený informatice a programování, a to zejména. Ale je třeba poznamenat, že programování není počítačová věda sama o sobě. Počítačová věda není programování. Spíše programování je jen tool--, se kterými vás všechny Bude až příliš dobře obeznámeni by semestru end-- tak, že můžete použít ne jen proto, aby budoucí kurzy v CS ale jakýmikoli oblastí, odkud jedeš v humanitních, společenské vědy, přírodní věda, nebo podobně. Ve skutečnosti, dovolte několik dalších absolventů a jejich kolegové mluvit o použitelnosti pole, které čeká. Bill Gates: Byl jsem 13, když jsem se poprvé dostal přístup k počítači. JACK DORSEY: Moji rodiče mi koupil Macintosh v roce 1984 když mi bylo osm let starý. Mark Zuckerberg: Byl jsem v šesté třídě. SPEAKER 1: Naučil jsem se ke kódu na vysoké škole. Ruchi Sanghvi: prvním ročníku, první semestr, Úvod do informatiky. Bill Gates: Napsal jsem program který hrál tic-tac-toe. DREW HOUSTON: Myslím, že to bylo docela skromné ​​začátky. Myslím, že první program Napsal jsem žádal věci jako, Jaká je vaše oblíbená barva? Nebo kolik je vám let? ELENA SILENOK: Poprvé jsem se naučil jak se dělá zelený kruh a červený čtverec se objeví na obrazovce. Gabe NEWELL: První Doba vlastně jsem měl něco přijít a říct ahoj, svět. A udělal jsem počítač dělat. Bylo to prostě úžasné. Mark Zuckerberg: Učit se, jak k programu nezačala off jako chtít se učit všechny počítačové vědy nebo se snaží zvládnout tento disciplína, nebo něco takového. Je to jen nastupuje proto, že jsem chtěl udělat jednu jednoduchou věc. Chtěl jsem udělat něco, co Byla to zábava pro mě a mé sestry. A jsem napsal tento malý program. A pak v podstatě jen přidal trochu na to. A pak, když jsem potřeboval naučit se něco nového, Našel jsem si to, ať už v knihy nebo na internetu, a pak přidal trochu na to. DREW HOUSTON: Je to opravdu není na rozdíl od hraní na hudební nástroj, nebo tak něco nebo hraní sport. David J. Malan: Dobře. Takže dejte nám teď vlastně ponořit trochu hlouběji. Jaké jsou tyto vstupy a výstupy že mluvíme o tady? Tak jak je to s něčím jednoduchým? Asi víte, i když máte žádná znalost výpočetní techniky vůbec, že ​​počítače nějakým způsobem použít a chápe pouze nul a jedniček. Ale jak je to možné mít jak Hodně dnešní stolní počítače a notebooky podobně může udělat? DNA dne, jen abeceda, že chápou je nula nebo jedna. No, to považují. My, lidé, mají tendenci používat desítková soustava. "Prosinec", což znamená 10. A to je 10, protože máme 10 číslic, 0 až devět. Nyní počítače, naopak mají tendenci používat binární. "Bi", což znamená dva. Takže mají tendenci pouze nula a jedna k použití. Ale ukazuje se, že i jen s nulami a jedničkami, že je dostatečně velké abecedy s, který představují většinu některý údaj chcete, ať už je to číslo, ať už je to dopis, ať už je to grafiky nebo videa na obrazovce. Vezměme si například, jak se lidé typicky interpretují toto číslo zde. To je jen tři číslice, jeden, dva, tři. Ale my víme, toto číslo přirozeně nyní jako 123. Ale proč je to tak? No, pokud si myslíte, že zpět aby snad na základní škole, pravděpodobně jste se učili myslet Tato čísla, jako by byla ve sloupcích, kde jeden je ve stovkách místo, dva je v místě desítek, a tři jsou na místo jednotek. Proč je to, že ve skutečnosti užitečné? No, myslím, že o Super jednoduchý aritmetický že jsme všichni byli dělá už léta. Účinně, pokud máte jeden na stovky místě, uděláte rychlý matematiky 100 krát 1 plus 10 krát 2-- protože dva je v řádu desítek place-- navíc 1 krát 3-- protože tři je na místo jednotek. Takže, samozřejmě, pokud my vlastně množí se na to, to, co jsme skutečně představuje s tímto jedním pattern-- dvě tři-- 100 Plus 20 Plus 3, který, samozřejmě, je 123. Nyní binární a počítače opravdu, zásadně mluví stejným jazykem , co děláme. Oni prostě mají menší abecedu. Takže počítače mají pouze nuly a ty, které mají k dispozici. Takže zatímco my lidé mají v podstatě pravomoci 10 v každé z těchto places-- 10 až na nulu, 10 k jedné, deset pro dva, která vám 110 a 100 resp. Protože počítače mají pouze dvě hodnoty mohli pochopit, nula a jedna, mají použít různé hodnoty v těchto sloupcích, jeden, dva, čtyři. A pokud budeme dál, osm, 16, 32, 64, a tak dále. Ale vzor a mentalita je úplně stejný. Takže této logické, nikomu by se jak Chodím na číslo představuje počet jeden v binární? Pokud jste nikdy ani nenapadlo o předtím, co se vaše střeva říct? DIVÁKŮ: One. David J. Malan: One. Přesně tak. Potřebujeme jen jedna ku Ones místo protože nulami stačit, aby nás ani čtyři, ani dvě. Takže jedna krát jedna se rovná jedné. Nyní se věci trochu zajímavější. Pokud chci reprezentovat v binární číslo dva--, ale znovu, i když jste nikdy mluvený tento jazyk dříve, jak se můžeme reprezentovat v binárním hodnotu, kterou lidé znají jako dva? Nula jedna nula. Stačí dát jeden v sloupec, který chcete. Teď je to stále dost snadno asi teď. Takže pokud chci reprezentovat tři-- je sloupec ničím tři je. Takže znovu, nyní mohu přidat tyto hodnoty dohromady tím, že jeden tady. SO 2 krát 1 plus 1 krát 1 je, samozřejmě, 3. Nyní se věci trochu pobavit v že ty se stanou nuly. A reprezentovat čtyři, já si to. A pokud budeme zvyšovat pomalu tady--, že by bylo pět. To by bylo šest. To by bylo sedm. Ale teď se zdá, že mají narazit na problém. Jak bych mohl jít o zastupování eight-- by být další hodnota. Jo, takže potřebujeme nové kousky. A skutečně, pokud jste slyšela tuto frázi, bity, to je jen krátký binární číslice, nula nebo jedna. A tak jsem se stalo, že se představuje pouze tři takové kousky zde. Ale když jsem měl možnost ukládání není tři různé kousky, ale čtyři, Jistě bych mohl představovat osm, a pak devět, a pak 10, a ještě výš a výš. Ale to pak volá na otázku, jak můžeme jít o zobrazování těchto věci na prvním místě. To je jedna věc k tomu je tady na snímku, ale jak si je představují pokud jste mechanické zařízení? Co je to počítač dělá představují vstupy a výstupy, které zásadně definují výpočet Na konci dne? No, co o něčem super jednoduché takhle? Je to jen žárovka. A mohu spustit tento žárovka dál otočením nějaké elektrické energie na a umožňující elektrony protékat, kterým se mění její stát nebo jeho hodnota, abych tak řekl. Například, to je old school stolní lampa tady se jedna taková Žárovka uvnitř ní. A právě teď, že to není opravdu dělají něco užitečného. Ale jakmile jsem ji připojte do elektrické zásuvky a poté použijte tuto switch-- nebo můžeme dokonce říkat tranzistor nebo myslíte, že na to, jak such-- Nyní mohu reprezentovat buď Tato hodnota, kde je žárovka samozřejmě mimo, nebo je tato hodnota. Tato hodnota, nebo je tato hodnota. Tato hodnota, a tak dále. Takže uvnitř počítače, pravděpodobně, jsou mnohem menší kusy hardwaru, ale, že na konci dne jednoduše použít electricity-- Možná zachytit to-- a pak buď držet něco nebo držet něco vypnout. Samozřejmě, že to není zvláště zajímavé dělat pouze s jedinou žárovkou. Ve skutečnosti, jak vysoko můžu počítat v binární s tímto tady lampou? DIVÁKŮ: One. David J. Malan: Jedna, že jo? Potřebuju víc stolní lampy, když vlastně chcete spočítat vyšší. Ale můžeme udělat lépe než to. Vzhledem k tomu, že žárovky dali jsme v těchto věcech jsou ve skutečnosti milovník žárovky než minulý rok by umožnila. A oni jsou vlastně síťové žárovky. A svazky firem aby tyto věci v těchto dnech. Ale ukázalo se, že tahle zejména přichází s funkcí, přičemž můžete změnit jeho barvu. Tak například, pokud zdobí své koleji pokoj s několika z těchto světla cibule, v závislosti na vaší náladě, v závislosti na tom, kdo přijde, v závislosti na počasí, v závislosti na čase dne, můžete skutečně změnit barvy žárovky ve svém pokoji. A to proto, že tyto světla žárovky a jemu podobné to, co je volal API, aplikace programovací rozhraní, které je téma, se kterým budete dobře obeznámeni s koncem semestru. A to je jen fantazie, mystický způsob, jak říct, můžete naprogramovat tyto světla žárovky dělat svou příkazy. Můžete je posílat zprávy stejně jako vy, člověk, můžete poslat zprávu na webový server řekl, dej mi dnešní novinky nebo mi můj e-mail. Můžete poslat více tajemný Zprávy těchto žárovek říci, zapnout a vypnout. Ale to není všechno, že zajímavé. Můžete říci, zapněte červený, zapnout zelené, zapnout modré, všechny se stejným žárovkou. A dokonce můžete, s trochu více důvtipný, řekněme, obrátit se na modrou když je to pochmurný den venku, například. To může skutečně opravit do Počasí API a zjistit, jaké počasí je, nebo čas denní, nebo jiných takových spouští. Takže, ve skutečnosti, dva Vlastní zaměstnanci CS50 je, Dan Bradley a Ansel Duff sem laskavě opatřil nás celá parta z těchto žárovek. A oni stavěli CS50'S vůbec první binární cibule, kde jsme zastoupeni tady-- s těmito hravé malé magnets-- různé zástupné symboly my zmiňoval před jen trochu. Takže cesta sem je Ones místo, dva, čtyři. A my jsme neviděli vyšší, než je. Ale, samozřejmě, že jsou síly dva. Osm, 16, 32, 64 a 128. Takže pokud bych chtěl, aby se trochu milovník než při použití této staré školy přepínač, Mám zde na tomto iPadu Super jednoduché rozhraní že Dan Bradley, bývalý student a nyní učí člověk, naprogramovaný pomocí některé HTML a JavaScript, které jsou značky a programování jazyky, resp. A můžete pravděpodobně see-- iv back-- tam je velké plus a velké mínus, navíc jedno tlačítko pro každý z těchto žárovek. A co tohle mi umožní to je, například, klepněte na znaménko plus a nyní představují, z Samozřejmě, že to číslo? One. A já jej udeřil znovu. Dva. Tři. Čtyři. Pět. Six. Seven. A teď tady máme ten efekt přechodu, ale máme čtvrtiny trochu tentokrát, Takže teď máme osm. Takže bychom to mohli udělat pro docela nějaký čas. Ve skutečnosti, jak je stranou, jak vysoko můžeme počítat? Každý, kdo? Diváků: 255. David J. Malan: 255, že jo? Nebojte se příliš mnoho o matematice pro teď, ale to je docela slušné číslo. Ale to vlastně není vázán jen kolik kusů informací, jako dopis nebo grafiku že bychom mohli reprezentovat. Ale bez ohledu na to, pro teď. Chystám se jít dopředu a zase je všechno pryč. A kdybych mohl, tak bych se chtěl zeptat na dobrovolník, naše první volunteer-- oh, hello-- na jevišti. Háček je v tom, musíte být pohodlné objevit, jak jste jasně jsou v přední části všech vašich spolužáků, , jakož i na internetu. A dovolte mi, abych vypadat trochu mimo to-- jak je to tady v bílé košili? A ruku nahoru. Pojď nahoru. Jaké je vaše jméno? DIVÁKŮ: Jackie. David J. Malan: Jackie. Jackie, pojď nahoru. Takže to, co tam je také na tomto iPad je tlačítko s názvem Game Mode. A to Herní režim je mě umožnit vstup v předstihu zejména desetinné číslo, čísla my, lidé jsou znáte. A pak budete mít za úkol Zde pomocí tlačítek na top-- jeden pro Každý z těchto bulbs-- skutečně zjistit, model žárovky , který představuje číslo v otázce. A je mi líto, co se jmenujete? DIVÁKŮ: Jackie. David J. Malan: Jackie. V pořádku. Rád vás poznávám. Tak nech mě jít napřed a program aby se svět vidět číslo 15. Budeme si to malý nejprve zde. A já jdu do režimu hry. A budu specifikovat, nám číslo 15. OK. A teď se všichni watching-- pokud Chcete-li možná stát tímto způsobem, protože to bude linka up-- pokračovat a přepínat mezi osmi tlačítek podél horní otočit žárovek na nebo vypnout, jak uznáte za vhodné. DIVÁKŮ: OK. David J. Malan: A žádný podvádění tím, že udeří a 15 krát. Oh, budeme dělat, že. DIVÁKŮ: Oh, počkej. Je mi to tak líto. David J. Malan: Můžete také zapnout Žárovky na individuálně s každou z těchto tlačítek nahoře. DIVÁKŮ: Oh, OK. Tak to by bylo jako-- David J. Malan: OK. Takže teď máme osm. Takže pojďme pozastavit publikum, aby se zapojily zde. Jaké číslo je Jackie V současné době zastupuje? 11. Jsme tak skoro tam. A vynikající. Takže máme prvního vítěze. Blahopřejeme. A my jsme si mysleli, že mají některé báječné dárky. Pokud byste chtěli, aby se jeden takový koleji pokoj tady na akademické půdě, můžete si mít závěrečný projekt pomocí se toto rozhraní API, díky Jackie. Takže teď-- [APPLAUSE] --if jsme mohli, jeden jako kolem tohoto. Oh, teď chce každý pár žárovek. Pro takzvané hacker vydání, budeme rozjet to a-- oh, jo, nic neříkající. Myslím si, že jedeš se nyní pokud vaše ruka jde dolů. Jaké je vaše jméno? DIVÁKŮ: Alex. David J. Malan: Alexi, pojď sem. Takže pro Alexe, budeme Program v mírně větším počtu. Možná, že v pořádku. Číslo 50. DIVÁKŮ: OK. David J. Malan: Ale, jak I said-- a ty by mohly chtějí postavit tu tak že tlačítka line up jako byste expect-- ale já jsem Nazývám to hacker vydání. Tak-- hodně štěstí! [SMÍCH] Budete mít možnost se obrátit je vypnutý, pokud ty-- OK. Výborně. Wonderful. Blahopřejeme. [APPLAUSE] Myslím, že bych měl zaplatit. Gratulujeme Alex stejně. OK. Takže konečné stánek s jídlem tady je snad, upřímně řečeno, simplicity-- jednoduchost, se kterou můžete získat nějaké pěkné světlo žárovky, zřejmě v [neslyšitelné]. Ale představují, nakonec, stejné myšlenky s jakou my lidé jsme již příliš známé. Takže to, co je možné, že další krok je v progresi že se snaží dělat něco zajímavé údaje a představující vstupy, které jsou nejen čísla, ale jsou možná dopisy nebo více? No, ukázalo se, že počítačový svět, na mnoho let, prostě přijala libovolný, ale odpovídá standardu, který mapuje čísla písmen abecedy. Například, je zde výňatek z tohoto mapování. Tomu se říká ASCII. -S-C-I-I. A to je prostě tabulka, která mapuje uppercase letters-- v tomto case-- na desítkové číslo. Ale co je důsledek? No, pokud jste skutečně chtějí reprezentovat něco jako e-mail, nebo nějaký text na webové stránce, můžete zřejmě chtějí ukázat lidské dopisy abeceda, ne čísla. Takže v závislosti na rámci programu že uživatel používá, pokud je to webový prohlížeč nebo e-mailový klient, Čísla mohou být pro interpretovat jako písmena. To znamená, že vzory bitů může snadno interpretovat jako písmena. A tak to, co můžeme mít je písmeno bytost reprezentován jako 65, B je reprezentován jako 66. Takže pokud máme super krátké slovo, stejně jako hi, co počítačový by nakonec obchod v desítkové soustavě, ale opravdu binární, používat některé sekvence bitů, využití trochu elektřiny nějakým způsobem, by být dvě čísla 72 a 73. Ale vzor bitů představuje tyto hodnoty. Tak to pak je, jak můžeme Zastupujeme vstupy a výstupy. A stačí, když řeknu, můžeme dělat složitější reprezentace nakonec se věci, jako je grafika, videa, hudbu a další jak uvidíme později tento termín. Tak to prostě odejde a pak algoritmy, tyto soubory pokynů, s nimiž máme řešení konkrétních problémů. Jsme předáním vstupy do algoritmu. A ty algoritmy produkují výstupy, snad správné výstupy a doufejme, že také, efektivně shromáždili výstupy. Jinými slovy, to je jedna věc, realizovat správně něco. To je další věc, kterou k realizaci něco dobře nebo efektivně. Například, jeden demonstrace že jsme rádi v průběhu je to jedna. Ale tyto věci jsou stále stále těžké najít. Ale to je opravdu staré školy telefonní seznam, uvnitř které jsou 1000, plus stránky Jména a telefonní čísla. A když jsem chtěl vyhledat někdo v tomto telefonním seznamu, Nemohl jsem prostě dělat velmi naivní algoritmus. Nemohl jsem otevřít na první stránku, a Mohl bych začít hledat, řekněme, někdo jmenoval Mike Smith. A když to není na první stránky, jsem postoupit do druhého, a pak třetí, a potom na čtvrtý, a tak dále, až jsem konečně najít Mike Smith. Nyní je to algoritmus správný? Hlediště: Ano. David J. Malan: Jo. Jestli je tam, budu nakonec ho najít. Ale to pravděpodobně není příliš efektivní, určitě ne rychle, protože, můj bože, proč jsem plýtvat mým časem obracející přes všechny tyto stránky, když jsem se mohl Určitě to fyzicky rychleji? No, mírné optimalizace, tak mluvit, nemusí být vždy jednu stránku najednou, ale dvě, čtyři, šest, osm, deset. Stále je to tak? Diváků: Ne David J. Malan: Takže ne, jestli jsem pro instance přeskočit Mike Smith. Ale tak dlouho, jak jsem se pedál jednu stranu, když jsem ho přesahovat, možná bychom mohli napravit to, co mohlo by být jinak gotcha. Ale je to lepší? Je to rychlejší? Myslím, že jo. Je to doslova dvakrát tak rychle, když to udělám dvě stránky najednou. Takže když jsem původně měl 1000 stran, Teď mám jen otočit 500 krát, nejsou plně 1.000 stran, aby si případně v nejhorším případě na konci telefonu kniha, kde někdo jako je Mike Smith, nebo někoho, kdo se později jméno by mohlo být ve skutečnosti. Ale, samozřejmě, jsme lidé rozhodně nejsou bude dělat, že určitě není v tomto okamžiku v našem životě. Co je to rozumné člověk pravděpodobně dělat? Diváků: Jdi přímo na the9 S let. David J. Malan: Jdi přímo na S let? Jak mám jít rovnou do S let? Diváků: Rip jej v polovině. David J. Malan: No, není označení. Takže ano, v případě, že byly skutečně Štítek nebo kartu lepkavá pro S, bychom měli skočit rovnou tam. Ale je to docela neškodné. Takže nejlepší, co mohu udělat, je zhruba v sekci S nebo možná zhruba do středu. Ale hlavní jídlo s sebou teď-- a intuice že jste si vzal na udělena pro roky probably-- je to, že to, co děláte teď přátele o tomto problému? Diváků: [neslyšitelné] David J. Malan: Mike Smith je jistě není v této polovině problému protože Smith přichází po polovině což je zhruba sekce M, se zdá být. Takže jak jste mohli vidět na Visitas, můžeme nyní doslova trhat tento problém na polovinu. Diváků: Woo! David J. Malan: Je to stále snazší a jednodušší. [APPLAUSE] Tady to je. [SMÍCH] A teď jsem v podstatě mají stejný problém, ale je to doslova poloviny tak velký. Jsem stále hledají Mike Smith. A troufám si říct, můžu pořád podívejte se na něj stejným způsobem, rozdělit problém na polovinu opět trhá problém znovu na polovinu, což mě teď opouští s problém čtvrtiny velikosti, dramaticky hodit, že polovina pryč, a tento proces opakovat znovu a znovu a znovu se podíval dolů v každém bodě vidět pokud Mike Smith je na stránky se jedná. Teď, když mám toto právo, nakonec jsem se to najít s jedinou stránku, na které Mike Smith je, jestli je opravdu v telefonním seznamu. Samozřejmě, že jsem mohl nikdy volat znovu Mike. Ale zde je, že když jsme začali s 1000 stránkami, můj první algoritmus, otočit stránku, možná 1000 times-- Určitě méně, protože je to Název S a ne jméno Z, ale jako tolik jako 1000 stran potenciálně. Druhý algoritmus, lépe. 500 stran. Za třetí algoritmus, ačkoli, kolik kroků by to se rozdělit 1000 stránky telefonní seznam na dvě poloviny, jako je tohle? 10, dávat nebo brát. Takže jen listovala, že telefonní seznam, potápění a dobývání, abych tak řekl, 10 krát, udělám můj způsob, jak se k jen jedné straně. A tak můžeme zachytit tuto intuici teď trochu graficky pokud jste právě v úvahu Super jednoduchý graf. Jsme na ose x, nebo horizontální osa, je velikost mého problému, počet stránek v telefonním seznamu. A počítačoví odborníci obvykle s oblibou nazývají velikost problému n, kde n je jen některé proměnné, které represents-- v tomto case-- počet stránek. Vertikální, nebo y-osa, zde je bude k řešení, Možná, že počet stránek zatáček, Možná, že počet sekund nebo minuty, bez ohledu na Váš měrná jednotka je. A tak se červená čára představuje první algoritmus, protože tam je jedna až jedna vztah mezi počtem stránek a množství času to bere. Pokud Verizon zdvojnásobuje počet stránky v telefonním seznamu v příštím roce, můj běh time-- Potřebný čas k provedení že první algorithm-- zdvojnásobí v nejhorším případě. Ale druhý algoritmus, kde jsem mizerný dva, vyžaduje méně času na daný problém velikosti. Takže pokud jsem to mnoho pages tady-- upozornění že žlutá čára navrhuje méně času na řešení. A opravdu, to znamená, budeme říkat, n více než dvě. Ale co je tvar třetího a poslední křivka bude vypadat? Jo, je to opravdu bude look-- I Nevím, co jsi chtěl říct. Ale pojďme se podívat, co jsi chtěl říct. Diváků: Takhle. David J. Malan: Bude to vypadat to, logaritmická slope-- exactly-- kdy budete mít tento podivný sklon. Už to není přímka. A co je přesvědčivé o tom, že , i když je nyní graf odříznut, můžete extrapolovat ve vašem nevadí, že zelená linka není bude zvýšení Výška tak moc jak budete postupovat dál se stanoví, že horizontální osy. Ve skutečnosti, Verizon, pro instance, by mohl znamenat zdvojnásobení počet stránek v telefonu Kniha od tohoto roku a příští rok od 1000 do 2000 strany, ale žádný velký problém. S touto třetí a poslední, je tu intuitivní algoritmus dělení a dobývání. Bude mi trvat, kolik kroky příští rok najít někoho, jako Mike Smith? DIVÁKŮ: One. David J. Malan: Je tu jen jeden. A mohou čtyřnásobek, je to mi bude trvat jen dva kroky a tak dále. A tak je to dokladem toho, jak někteří opatrní konstrukce a někteří uznání za to, co vaše vstupy jsou umí ještě lépe. Teď jsme podvádění trochu v tom smyslu, že jsme využití předpoklad. Jaký je můj předpoklad o našem telefonním seznamu které mi umožnilo rozděl a panuj v této intuitivní a stále správným způsobem? Diváků: [neslyšitelné] David J. Malan: Jo. Tak to bylo nařízeno. To bylo podle abecedy podle telefonní seznam společnosti. Kdyby to bylo v náhodném pořadí, které by bylo sakra telefonního seznamu, ale rozhodně ne nehodí algoritmu Použil jsem, protože byste nikdy náhodou přes Mike Smith pokud jste si nechali dělení v polovina tímto způsobem náhodou. Takže pojďme se nyní formalizovat co je jasně intuitivní. Takže něco, co nazývá pseudokód je, kde budeme začnou některé z našich počátečních problémů. A to je obecný způsob, jak popisovat algoritmus nebo počítačový program, ne pomocí C nebo C ++ nebo Java, nebo nějaký konkrétní jazyk, ale jen pomocí anglicky, s které každý člověk může být povědomý. A můžeme psát pseudokódu Pro tento problém následovně. Krok číslo jedna, zvedněte telefonní seznam. Krok dva, otevřený střed telefonního seznamu. Krok tři, podívej se na jména. Krok čtyři, pokud Smith patří mezi names-- A teď je to zajímavé konstrukt. Je to rozhodnutí, bod. Je to rozcestí, pokud máte bude, větev, abych tak řekl. Takže budu odsazení jen konvencí step-- Není five-- který je řekněme, zavolám Miku. Takže to odsazení, zcela svévolné lidské konvence, ale je to prostě chtěl sdělit sémanticky že pokud Smith patří mezi jmény, pak bych měl zavolat Mikea. Mezitím se v kroku šest, oznámení že odsazení je pryč. Tak je jiný druhý vidlice v silnice, ostatní silnice bych mohla cestovat. Takže else if Smith dříve v knize, co je můj další krok pravděpodobně bude tady? Diváků: Jdete na levé straně. David J. Malan: Jo, tak jděte na Levá polovina telefonního seznamu. Vyhoďte pravou polovinu, pokud Smith je dříve v knize. Tak otevřené až do poloviny Levá polovina knihy. A pak krok osm, jít na linku tři. A to je zvědavý smyčka jsem způsobuje, rekurze, abych tak řekl. Ale o tom více v budoucnu. Já jsem pomocí mého stejný algoritmus, má stejný pseudokód, znovu řešit stejný problém protože jediná věc, která se změnila je velikost problému, ne mým cílem, a ne člověk Hledám. Tak jsem si znovu algoritmus že jsem již definovány. Else if Smith později v book-- byste mohli hádat otevřena až do poloviny pravá polovina knihy. A opět, přejděte na řádek tři. Else-- co je poslední řádek v rámci tohoto programu bude? Pokud to není mezi jména na stránce Jsem na, pokud to není dříve knihy, a on to nejpozději v knize, co já vím Nyní je pravda o Mike Smith? Diváků: Není v knize. David J. Malan: Není v knize. Takže nejlepší, co mohu udělat, je jen vzdát a zastavit tento program. V pořádku. Takže v tomto bodě, pojďme se Rychlá prohlídka některé z toho, co vás čeká. A ve skutečnosti, já jsem sem vstoupil o počtu zaměstnanců CS50. Pokud se tito lidé mohli vše se mnou tady na jevišti. [APPLAUSE] Nezapomínejme, že je to jen podmnožina personálu CS50, protože každý rok máme téměř 100 zaměstnanců členové v roli asistentů kurzu, výuka chlapi, a další. Pojď nahoru. Takže oni se k nám připojí zde rozpačitě na chvíli jak dát vichřice prohlídku toho, co do kurzu by měl očekávat zde. Takže v první řadě, máme SAT / UNS jako možnost třídění v průběhu. To znamená záměrně být možnost, kdy Pokud jste trochu nesvůj z toho, že v průběhu, a nemáte strach failure--, i když upřímně řečeno, selhání znamená bolet vaše GPA, dostat B a ne A--, který je přesně to, co jistě pro brány Samozřejmě, stejně jako CS50 a další úvodní kurzy, Tato možnost třídění je určen povolit. Upřímně podpořit students-- zejména pokud na fence-- začít Samozřejmě, SAT / UNS, i nadále SAT / UNS. Ale můžete samozřejmě přepnout na dopis stupně v pátém pondělí v termínu. Upřímně řečeno, když jsem byl v prváku v roce 1995, Já sám jsem ani brát CS50 protože jsem nevstal odvahu skutečně krok nohu ve třídě. Zdálo se, že doménu příliš neznámé ke mně, a opravdu jen pro ty z mých přátel, Upřímně řečeno, kdo byl programování protože oni byli víceletých nebo možná 10 let starý. A bylo to jen proto, že jsem byl schopni přijmout CS50 v můj den v odpovídající verzi SAT / UNS-- vyhovuje / nevyhovuje zpět do day-- že i já vzal 50. A tak či onak, jsem zase tady dnes s vámi. Teď zatím co ještě by měl mít na paměti, o 50 je simultánní zápis. Na rozdíl od pověsti, že Možná jste slyšeli, je to možné, ve skutečnosti, současně zapsat CS50 a další skupiny, které schází na stejné nebo některé překrývající tentokrát jako CS50 přednášek tady. Podívejte se na učební osnovy pro údaje z jejich provádění. Přednášky, zatím, na rozdíl od co je oficiálně v katalogu, obecně jen splnit jen za hodinu. Příležitostně můžeme spustit trochu dlouho. Ale mějte na paměti, že Cílem v CS50 přednášek je poskytnout vám koncepční přehled, doufejme, že některé ukázky, možná dokonce i některé dárky, o tom, co čeká na týden, který následuje. A tak na přednáškách, budeme zkoumat tato témata a příklady dohromady, přináší studentům na jevišti, a zaměstnancům na jevišti tak často, jak můžeme, jen na pár hodin každý týden. Sekce, mezitím bude nabízeny tyto lidi tady-- mnoha z nich se učí chlapi, některé Z nich samozřejmě assistants-- vůle se děje jednou za týden. A co je klíčem k udržení na paměti, je, že jsme se have-- ne na rozdíl od First Nights, hudba class-- různé stopy úseků pro Studenti méně komfortní, více pohodlné, a někde mezi tím. A upřímně řečeno, víte-li že jste méně pohodlné. A vy asi víte, pokud jste mnohem pohodlnější. A pokud si nejste opravdu jisti, jste podle definice někde mezi. Takže když přijde čas na úseku za týden nebo tak, na učebních osnov, my vám zeptat na tuto otázku. A můžete si vybrat self-Based na vlastní úroveň pohodlí a být s students-- být s zelenou dots-- podobná úroveň pohodlí pro vás. Mezitím, máme problém sady, což v konečném důsledku definovat své zkušenosti v tomto kurzu. Jsou nabízeny většinou v několika vydáních. Standard Edition, které očekáváme, že většina každý student v průběhu řešit ale také takzvaný hacker vydání který nenabízí žádné formu kreditu navíc úplně, ale opravdu vychloubání práv říci, že jste se snažil a řešit hackerské vydání kurzu, že obrátit na podobný materiál ale z sofistikovanější úhlu. Co nabízíme pro Standard Edition, pro, opět super většina studentů, nejsou pouze walk-průchodky, které jsou videa pod vedením pracovníků Kurz je že opravdu vás provede Problémy kurzu a možné provedení implementace. A také, po Skutečnost, nabízejí postmortems, přičemž pokud jste zvědaví, jak byste mohli mít nebo by měla vyřešit některé problém, pedagogičtí pracovníci vás provede ty na video i. Mezitím, co je čeká také jsou pět pozdní dní a skutečnost, že se sníží vaše Nejnižší problém nastavit skóre. Určitě oceníte, že výměnou na pracovní zátěž, která očekává, že 50 z vás, život dostane do cesty Někdy, ne-li pětkrát. A tak to bude nabízet jste trochu flexibility, rozšiřuje svůj termín od, řekněme, Ve čtvrtek v poledne v pátek v poledne. Podívejte se na učební osnovy pro podrobnosti jejich provádění. Tak co teď čeká? A je to jen dochází Teď mě, jak dlouho Mám vy tady stát na jevišti. [SMÍCH] David J. Malan: Ale my dostaneme vrcholný provedení zanedlouho. Takže to, co vás čeká, pokud jde z problémových sad? No, možná ukázka toho, co my všichni loni se svými předchůdci. V prvním problému sady v loňském roce jsme uvedli na trh Scratch, grafický programovací jazyk, který umožňuje naprogramovat doslova přetažením dílků, jako ty, které jsou připomínající konstruktů uvidí jen jeden týden proto, když přepínání na více tradiční jazyk, známý jako C. V loňském roce jsme pokračovali k tomuto problému sadě, zahrnující pro kryptografii, kódování informací aby jej z vládní nebo přátelé " oči, které nechcete vidět. Zakódovány v zde zprávy, že brzy si budou moci dešifrovat nebo de-vyškrábat. Breakout byl problém nastavit v loňském roce, ve kterém můžete použít tyto nově nalezenou programování dovednosti skutečně realizovat hra wherein-- jako vy Možná si vzpomenete, od childhood-- Cílem bylo bash cihly, které jsou na vrcholu obrazovky tady, akumulaci skóre po cestě, a provádění vlastních algoritmů s, který toto řešení v konečném důsledku umožňuje hrát hru. Mezitím, později v semestr, dáme vám slovník 143091 anglických slov. A vy budete mít za úkol napsat program, který kouzlo kontroly, dokumenty, které načítá že mnoho slov do paměti tak efektivně, jak je to možné. Obecně ti bodové před svými spolužáky pokud se rozhodnete do trochu výzvou v žebříčku vidět, kdo může používat nejmenším počtem sekund z hlediska doby provozu, a nejmenší počet megabajtů paměti, a ve skutečnosti jemné ladění Vámi programy být neuvěřitelně náročná na zdroje není jen čas. V loňském roce, také jsme se podívali na konci semestru na programování pro web. A skutečně, uděláme to znovu toto rok s několika problémovými sad, zavádí vás do technik a způsob myšlení, se kterým můžete použít Tyto znalosti programování na webové stránky, dynamické webové stránky, webové stránky, které skutečně řeší problémy, a chovat se jinak a nejsou jen statické stránky se statickým informací. Závěrečný projekt nakonec bude definovat, i když, Vyvrcholením kurzu pro studenty, kde budete mít za úkol realizovat většina něco zájem pro vás, tak dlouho, jak to nějak čerpá poučení kurzu je. A jak jste viděli v Video na začátku, budeme uzavřít semestr se CS50 Hackathon, který v případě, neznámé, začne v 19:00 a jednu noc a skončí v 07:00 druhý den ráno. Kolem 21:00 se budeme Pořadí v první večeři. Kolem 01:00 se budeme Pořadí, ve druhé večeři. A pokud jste ještě stojí v 05:00 jsme bude shuttle bus vás na IHOP na snídani. CS50 trh, zatím je událost k němuž 2000 navíc fakulty, studenti, a zaměstnanci z celého areálu bude přijďte se podívat své úspěchy v průběhu a konečné projekty a kreace , které vytvoříte na vašem notebooky, Stolní počítače, nebo možná i žárovky. Mezitím, úřední hodiny a nosná konstrukce. A teď bylo by to lepší čas, aby vám vše dohromady. Konzultační hodiny se budou konat čtyři noci týdně po dobu několika hodin každou noc s obecně o 20 až 30 z Zaměstnanci hřiště je ve službě najednou poskytnout vám intimní one-on-one možnosti podpory s problémovými sady kurzu je. Doučování také bude k dispozici, a to zejména pro studenty méně comfortable-- nebo troufám tvrdit, alespoň comfortable-- pro koho úřední hodiny nejsou největší výchovné prostředí a rozhodně nejsou největší stres-volný. Zvlášť, když termíny jsou lisování, budeme aktivně spárovat vám sami s zaměstnanec pracovat s na některých pravidelných intervalech, jak vaše potřeby a jejich rozvrh dovolí. A zaměstnanců. Dovolte mi představit Davon, Rob, a Gabriel, letošní hlavy. Pokud by každý chtěl say-- [APPLAUSE] --a slovo. [APPLAUSE] Davon tady je Course Manager, který znamená, že ve své roli na plný úvazek pomáhá s realizací a logistika CS50. DAVON: Jo, ahoj, kluci. Uvidíte hodně mě v úředních hodinách. Budu učit sekcí. A pokud budete střílet e-maily dopředu, Budu pravděpodobně reagovat. Tak uvidím spoustu z vás celý semestr. Vítejte na CS50. David J. Malan: A teď Gabriel, který sám byl jen nováček v loňském roce, ale v posledních letech se působí svou vlastní verzi CS50 v Brazílii, přičemž se stáhli všechny content-- stránce kurzu což je jednoznačně být natočený a umístil online-- tak, aby ji mohl přeložit do Portugalský a učit více než 100 z jeho spolužáků více než Během dvou let, výuku v rodném jazyce Osnovy kurzu je. GABRIEL: Dobrý den. [APPLAUSE] GABRIEL: Ahoj, já jsem Gabriel. Já jsem hlava TF kurzu. A doufám, že budete milovat CS50. To je CS50. David J. Malan: A teď Rob. Oh, chceš úvod? ROB: No, já nevím. [SMÍCH] David J. Malan: A Rob Boden. [SMÍCH] ROB: Ahoj, já jsem Rob. Toto je můj pátý rok zapojeni do kurzu. Každý rok, je to jen lepší a lepší třídy, tak vy jste jasně bude úžasné. Doufám, že jste všichni bavit se s ním. Budu se bavit s ním. Tak vidíte kolem sebe. David J. Malan: A čas nedovolí us-- [APPLAUSE] Čas nedovolí nám představit všechny na jevišti a všichni jejich kolegové kteří jsou nákupní třídy dnes. Ale dovolte mi představit Belinda a CS50 Puzzle Den, který čeká na to přijde sobota, která je první události velkého rozsahu Course. Ten především znamenalo kladivo domů bod že výpočetní technika je v konečném důsledku Nejde o programování, ale o řešení problémů obecně. A puzzle den, jak budete vidět, přinese vám a vaše spolužáky dohromady-- Doufáme, že tuto sobotu. BELINDA: OK. Ahoj, kluci. Takže díky. Tak jako naše proslulé kapitána řekl, jmenuji se Belinda. Jsem ve druháku na Quincy House. Já, stejně jako vy, se CS50 v loňském roce, ale opravdu se to líbilo. Mám slabost pro vy ve třetí řadě. A já jsem hrdý na to, že jsem teď na vážný vztah s CS50 [neslyšitelné]. OK. To byl můj ubohý verze vtipu. Každopádně, takže pohybující se na, chtěl pozvat vy všichni na I-Lab, nebo HBS kopřivka. Chystáme se, že má Puzzle den od 12:00 do 03:00. A to je skvělá příležitost pro vás lidi, aby vyhovoval vašim kolegům CS, přátele, vyřešit některé non-CS hádanek, stejně jako kapitán bylo zmíněno, a také jíst nějaké jídlo zdarma, vydělat nějaké úžasné ceny, stejně jako dárkové karty, 75 dolarů na osobu, a also-- co to bylo? Wii U nebo tak něco? Wii U? Ano. Pro naše tombola. Skvělé. Takže budu držet kolem po hodině. A pokud vy máte nějaké otázek, dejte mi vědět. David J. Malan: A uvidíte, za to není nic, co dělat dnes. První problém nastavit zhasne pátek. Ale aby nám dnes doma, rád bych se Představujeme Vám konkrétně jeden zaměstnanec, Colton Ogden tady, jehož ruce jsou nyní chráněné nad vámi se Tento MIDI ovladač kladivo domů bod dále že výpočetní technika se také má použitelnost daleko za techniky a STEM a výpočetní technika sama o sobě, rozšířit i na takové domény je například hudba. Colton se laskavě offered-- jsem si myslel, jeden z nich se bude zaostření. Andrew, kdybychom mohli přivolat zaměření více než na chvíli tady. Co Colton udělal předem je program, Toto zařízení, tento polštářek z tlačítek , které vidíte na obrázku tady, jako MIDI kontrolér, přičemž každá z těchto tlačítek je připojen k určité noty nebo zvuk, obecněji záznam, tak, že tím, že hraje vzory těchto tlačítka, stejně jako vzory bitů, může představovat další vyšší koncepty úrovni. Bude moci nakonec aby nás doma dnes? Bez dalších okolků, je-li můžeme ztlumit světla, a zapněte obrazovku za Colton. Diváků: Woo! David J. Malan: To je CS50. [Přehrávání hudby] [APPLAUSE] To je pro CS50. Uvidíme se v pátek. Některé dort na vás čeká v příčné lodi. [Přehrávání hudby]