[Prehrávanie hudby] [APPLAUSE] David J. Malan: To je CS50, Úvod Harvard University duševného podniky informatiky a umenie programovania. Teraz, ak patríte k tým, ktoré Každý rok sa tu sedí s trochu nervov vo vašej mysli, ako , Že si nemyslím, že sem patrím, si myslíte, že najviac niekto sedí okolo vás vie oveľa viac ako vy, je skutočne pohodlnejšie ako tie pri počítači veda alebo počítača všeobecnejšie, realizovať že 78% študentov, ktorí sa sa CS50 mať žiadne predchádzajúce skúsenosti. V skutočnosti, tam je 100 bodov tam na displeji, 78, z ktorých sú zelene, ktorá vás znamená, ak ste mimo, že demografické, sú vo veľmi dobrej spoločnosti tu na von. A ak ste miesto medzi 22% CS50 študentov, ktorí to naozaj mať predchádzajúce skúsenosti, či už v vysokej školy alebo nejaký iný program, uvedomiť si, že aj vy, bude byť spochybnená v priebehu. Nielen, že máme rôzne stopy pre študentov menej pohodlná a viac komfortné podobne v oddieloch sme tiež takzvané hackerské vydania z najviac problémové okruhy, ktoré Dotkne sa tým študentom, s tým ďalšie skúsenosti preskúmať podobný materiál ale z viacerých sofistikovaný pohľad. Ale to, čo je počítačová veda? No, nakoniec, čo sa deje na ohľadu na to, ako si prezrieť toto pole nie je tak kde ste skončili vo vzťahu ku svojim spolužiakom, ale tam, kde vy sami skončia v týždeň 12 proti, kde začnete tu v týždni nula. Teraz počítač science-- dobre, poďme hovoriť veda computation-- kde výpočet je naozaj len ozdobný spôsob, ako hovoriť, pričom nejaký vstup, produkovať nejaký výstup, a Pritom by sa systémom algoritmov, sady inštrukcií pre riešenie nejaký problém z týchto vstupov aby produkoval nejaký výstup alebo riešenie, v ktorom máte záujem. Takže sme v poslednom čase príležitosť cestovať von do Kalifornie, aby stretnutie s absolventkou. Jej meno je Susan Wojcická. A ona chcela hovoriť aby ste tu na videu svedčiť o tom, ako použiť dokonca len chuť počítača veda vo úvodná úroveň môže byť. Dokonca aj keď nechcete ísť na sledovať počítačovej vedy ako pole, alebo dokonca inžinierstva, STEM alebo všeobecnejšie uvidíte, v skutočnosti, ako určitá Samozrejme tak ovplyvnila jej život. A ona len proste to vzal, keď Bol senior tu na Harvard College. Ak by sme mohli stlmiť svetlá pre Susan. SUSAN Wójcicki: Hello, world. Ja som Susan Wojcická. Som generálny riaditeľ YouTube. A vzal som CS50, keď som bol senior na Harvarde v roku 1990. Bol som vlastne história a literatúra major. A môj junior v lete, Uvedomil som si, že by som chcel niečo naučiť o počítačoch. A tak som sa vrátil. Vzal som CS50. Bolo to ťažké, ale bolo to najúžasnejšie trieda I vzal. To zmenilo, ako som sa myslieť na všetko. A keď som vyštudoval Harvard v roku 1990, som išiel do Silicon Valley. A ja som dostal prácu. A ja som pracoval v tech odvtedy. David J. Malan: Čo teraz Susan nezmienil v tomto videu, že to bolo vlastne v nej garáž, že Google sám bol založil Larry a Sergey. Teraz sme sa tiež natiahol k našim priateľom v code.org, organizácie, ktorá v priebehu minulého roka bolo prinútiť ľudí, najmä nadšený informatike a programovania, a to najmä. Ale je potrebné poznamenať, že programovanie nie je počítačová veda sama o sebe. Počítačová veda nie je programovanie. Skôr programovanie je len tool--, s ktorými vás všetky Bude až príliš dobre oboznámení by semestra end-- tak, že môžete použiť nie len preto, aby budúce kurzy v SK ale akýmikoľvek oblastí, odkiaľ ideš v humanitných, spoločenské vedy, prírodné veda, alebo podobne. V skutočnosti, dovoľte niekoľko ďalších absolventov a ich kolegovia hovoriť o použiteľnosti pole, ktoré čaká. Bill Gates: Bol som 13, keď som sa prvýkrát dostal prístup k počítaču. JACK DORSEY: Moji rodičia mi kúpil Macintosh v roku 1984 keď mi bolo osem rokov starý. Mark Zuckerberg: Bol som v šiestej triede. SPEAKER 1: Naučil som sa ku kódu na vysokej škole. Ruch Sanghvi: prvom ročníku, prvý semester, Úvod do informatiky. Bill Gates: Napísal som program ktorý hral tic-tac-toe. DREW HOUSTON: Myslím, že to bolo docela skromné ​​začiatky. Myslím, že prvý program Napísal som žiadal veci ako, Aká je vaša obľúbená farba? Alebo koľko máte rokov? ELENA SILENOK: Prvýkrát som sa naučil ako sa robí zelený kruh a červený štvorec sa objaví na obrazovke. Gabe NEWELL: Prvý Doba vlastne som mal niečo prísť a povedať ahoj, svet. A urobil som počítač robiť. Bolo to jednoducho úžasné. Mark Zuckerberg: Učiť sa, ako k programu nezačala off ako chcieť sa učiť všetky počítačové vedy alebo sa snaží zvládnuť tento disciplína, alebo niečo také. Je to len nastupuje preto, že som chcel urobiť jednu jednoduchú vec. Chcel som urobiť niečo, čo Bola to zábava pre mňa a mojej sestry. A som napísal tento malý program. A potom v podstate len pridal trochu na to. A potom, keď som potreboval naučiť sa niečo nové, Našiel som si to, či už v knihy alebo na internete, a potom pridal trochu na to. DREW HOUSTON: Je to naozaj nie je na rozdiel od hranie na hudobný nástroj, alebo tak niečo alebo hranie šport. David J. Malan: Dobre. Takže dajte nám teraz vlastne ponoriť trochu hlbšie. Aké sú tieto vstupy a výstupy že hovoríme o tu? Tak ako je to s niečím jednoduchým? Asi viete, aj keď máte žiadna znalosť výpočtovej techniky vôbec, že ​​počítače nejakým spôsobom použiť a chápe iba núl a jednotiek. Ale ako je to možné mať ako Veľa dnešné stolové počítače a notebooky podobne môže urobiť? DNA dňa, len abeceda, že chápu je nula alebo jedna. No, to považujú. My, ľudia, majú tendenciu používať desiatková sústava. "December", čo znamená 10. A to je 10, pretože máme 10 číslic, 0 až deväť. Teraz počítača, naopak majú tendenciu používať binárne. "Bi", čo znamená dva. Takže majú tendenciu len nula a jedna na použitie. Ale ukazuje sa, že aj len s nulami a jednotkami, že je dostatočne veľkej abecedy s, ktorý predstavujú väčšinu niektorý údaj chcete, či už je to číslo, či už je to list, či už je to grafiky alebo videa na obrazovke. Zoberme si napríklad, ako sa ľudia typicky interpretujú toto číslo tu. To je len tri číslice, jeden, dva, tri. Ale my vieme, toto číslo prirodzene teraz ako 123. Ale prečo je to tak? No, ak si myslíte, že späť aby snáď na základnej škole, pravdepodobne ste sa učili myslieť Tieto čísla, ako by bola v stĺpcoch, kde jeden je v stovkách miesto, dva je v mieste desiatok, a tri sú na miesto jednotiek. Prečo je to, že v skutočnosti užitočné? No, myslím, že o Super jednoduchý aritmetický že sme všetci boli robí už roky. Účinne, ak máte jeden na stovky mieste, urobíte rýchly matematiky 100 krát 1 plus 10 krát 2-- pretože dva je v poriadku desiatok place-- navyše 1 krát 3-- pretože tri je na miesto jednotiek. Takže, samozrejme, ak my vlastne množia sa na to, to, čo sme skutočne predstavuje s týmto jedným pattern-- dve tři-- 100 Plus 20 Plus 3, ktorý, samozrejme, je 123. Teraz binárne a počítače naozaj, zásadne hovoria rovnakým jazykom , Čo robíme. Oni jednoducho majú menšiu abecedu. Takže počítače majú len nuly a tie, ktoré majú k dispozícii. Takže zatiaľ čo my ľudia majú v podstate právomoci 10 v každej z týchto places-- 10 až na nulu, 10 k jednej, desať pre dvoch, ktorá vám 110 a 100 resp. Pretože počítače majú len dve hodnoty mohli pochopiť, nula a jedna, majú použiť rôzne hodnoty v týchto stĺpcoch, jeden, dva, štyri. A ak budeme ďalej, osem, 16, 32, 64, a tak ďalej. Ale vzor a mentalita je úplne rovnaký. Takže tejto logickej, nikomu by sa ako Chodím na číslo predstavuje počet jeden v binárnej? Ak ste nikdy ani nenapadlo o predtým, čo sa vaše črevá povedať? DIVÁKOV: One. David J. Malan: One. Presne tak. Potrebujeme len jedna ku Ones miesto pretože nulami stačiť, aby nás ani štyri, ani dve. Takže jedna krát jedna sa rovná jednej. Teraz sa veci trochu zaujímavejšie. Ak chcem reprezentovať v binárne číslo dva--, ale znova, aj keď ste nikdy hovorený tento jazyk skôr, ako sa môžeme reprezentovať v binárnom hodnotu, ktorú ľudia poznajú ako dva? Nula jedna nula. Stačí dať jeden v stĺpec, ktorý chcete. Teraz je to stále dosť ľahko asi teraz. Takže ak chcem reprezentovať tři-- je stĺpec ničím tri je. Takže znova, teraz môžem pridať tieto hodnoty dohromady tým, že jeden tu. SO 2 krát 1 plus 1 krát 1 je, samozrejme, 3. Teraz sa veci trochu pobaviť v že tie sa stanú nuly. A reprezentovať štyri, ja si to. A ak budeme zvyšovať pomaly tady--, že by bolo päť. To by bolo šesť. To by bolo sedem. Ale teraz sa zdá, že majú naraziť na problém. Ako by som mohol ísť o zastupovaní eight-- by byť ďalšia hodnota. Jo, takže potrebujeme nové kúsky. A skutočne, ak ste počula túto frázu, bity, to je len krátky binárne číslice, nula alebo jedna. A tak som sa stalo, že sa predstavuje iba tri takéto kúsky tu. Ale keď som mal možnosť ukladania nie je tri rôzne kúsky, ale štyri, Iste by som mohol predstavovať osem, a potom deväť, a potom 10, a ešte vyššie a vyššie. Ale to potom volá na otázku, ako môžeme ísť o zobrazovanie týchto veci na prvom mieste. To je jedna vec k tomu je tu na snímke, ale ako si ich predstavujú ak ste mechanické zariadenie? Čo je to počítač robí predstavujú vstupy a výstupy, ktoré zásadne definujú výpočet Na konci dňa? No, čo o niečom super jednoduché takto? Je to len žiarovka. A môžem spustiť tento žiarovka ďalej otočením nejaké elektrickej energie na a umožňujúce elektróny pretekať, ktorým sa mení jej štát alebo jeho hodnota, aby som tak povedal. Napríklad, to je old school stolná lampa tu sa jedna taká Žiarovka vnútri nej. A práve teraz, že to nie je naozaj robia niečo užitočného. Ale akonáhle som ju pripojte do elektrickej zásuvky a potom použite túto switch-- alebo môžeme dokonca hovoriť tranzistor alebo myslíte, že na to, ako such-- Teraz môžem reprezentovať buď Táto hodnota, kde je žiarovka samozrejme mimo, alebo je táto hodnota. Táto hodnota, alebo je táto hodnota. Táto hodnota, a tak ďalej. Takže vnútri počítača, pravdepodobne, sú oveľa menšie kusy hardvéru, ale, že na konci dňa jednoducho použiť electricity-- Možno zachytiť to-- a potom buď držať niečo alebo držať niečo vypnúť. Samozrejme, že to nie je obzvlášť zaujímavé robiť iba s jedinou žiarovkou. V skutočnosti, ako vysoko môžem počítať v binárne s týmto tu lampou? DIVÁKOV: One. David J. Malan: Jedna, že jo? Potrebujem viac stolové lampy, keď vlastne chcete spočítať vyššia. Ale môžeme urobiť lepšie než to. Vzhľadom k tomu, že žiarovky dali sme v týchto veciach sú v skutočnosti milovník žiarovky ako minulý rok by umožnila. A oni sú vlastne sieťové žiarovky. A zväzky firiem aby tieto veci v týchto dňoch. Ale ukázalo sa, že tahle najmä prichádza s funkciou, pričom môžete zmeniť jeho farbu. Tak napríklad, ak zdobia svoje koľaji izba s niekoľkými z týchto svetla cibule, v závislosti na vašej nálade, v závislosti na tom, kto príde, v závislosti na počasí, v závislosti na čase dňa, môžete skutočne zmeniť farby žiarovky vo svojej izbe. A to preto, že tieto svetlá žiarovky a jemu podobné to, čo je volal API, aplikácia programovacie rozhranie, ktoré je téma, s ktorým budete dobre oboznámení s koncom semestra. A to je len fantázia, mystický spôsob, ako povedať, môžete naprogramovať tieto svetla žiarovky robiť svoju príkazy. Môžete ich posielať správy rovnako ako vy, človek, môžete poslať správu na webový server povedal, daj mi dnešné novinky alebo mi môj e-mail. Môžete poslať viac tajomný Správy týchto žiaroviek povedať, zapnúť a vypnúť. Ale to nie je všetko, že zaujímavé. Môžete povedať, zapnite červený, zapnúť zelené, zapnúť modré, všetky s rovnakým žiarovkou. A dokonca môžete, s trochu viac pútavé, povedzme, obrátiť sa na modrú keď je to pochmúrny deň vonku, napríklad. To môže skutočne opraviť do Počasie API a zistiť, aké počasie je, alebo čas denné, alebo iných takýchto spúšťa. Takže, v skutočnosti, dvaja Vlastní zamestnanci CS50 je, Dan Bradley a Ansel Duff zadajte prosím opatril nás celá partia z týchto žiaroviek. A oni stavali CS50'S vôbec prvý binárne cibule, kde sme zastúpení tady-- s týmito hravé malé magnets-- rôzne zástupné symboly my spomínal pred len trochu. Takže cesta sem je Ones miesto, dva, štyri. A my sme nevideli vyššia, než je. Ale, samozrejme, že sú sily dva. Osem, 16, 32, 64 a 128. Takže ak by som chcel, aby sa trochu milovník než pri použití tejto starej školy prepínač, Mám tu na tomto iPade Super jednoduché rozhranie že Dan Bradley, bývalý študent a teraz učí človek, naprogramovaný pomocou niektoré HTML a JavaScript, ktoré sú značky a programovanie jazykmi, resp. A môžete pravdepodobne see-- iv back-- tam je veľké plus a veľké mínus, navyše jedno tlačidlo pre každý z týchto žiaroviek. A čo toto mi umožní to je, napríklad, kliknite na znamienko plus a teraz predstavujú, z Samozrejme, že to číslo? One. A ja ho udrel znova. Dva. Tri. Štyri. Päť. Six. Seven. A teraz tu máme ten efekt prechodu, ale máme štvrtiny trochu tentoraz, Takže teraz máme osem. Takže by sme to mohli urobiť pre docela nejaký čas. V skutočnosti, ako je stranou, ako vysoko môžeme počítať? Každý, kto? Divákov: 255. David J. Malan: 255, že jo? Nebojte sa príliš veľa o matematike pre teraz, ale to je celkom slušné číslo. Ale to vlastne nie je viazaný len koľko kusov informácií, ako list alebo grafiku že by sme mohli reprezentovať. Ale bez ohľadu na to, pre teraz. Chystám sa ísť dopredu a zase je všetko preč. A keby som mohol, tak by som sa chcel spýtať na dobrovoľník, naša prvá volunteer-- oh, hello-- na javisku. Háčik je v tom, musíte byť pohodlné objaviť, ako ste jasne sú v prednej časti všetkých vašich spolužiakov, , Ako aj na internete. A dovoľte mi, aby som vyzerať trochu mimo to-- ako je to tu v bielej košeli? A ruku hore. Poď hore. Aké je vaše meno? DIVÁKOV: Jackie. David J. Malan: Jackie. Jackie, poď hore. Takže to, čo tam je tiež na tomto iPad je tlačidlo s názvom Game Mode. A to Herný režim je ma umožniť vstup v predstihu najmä desatinné číslo, čísla my, ľudia sú poznáte. A potom budete mať za úlohu Tu pomocou tlačidiel na top-- jeden pre Každý z týchto bulbs-- skutočne zistiť, model žiarovky , Ktorý predstavuje číslo v otázke. A je mi ľúto, čo sa voláte? DIVÁKOV: Jackie. David J. Malan: Jackie. V poriadku. Rád vás spoznávam. Tak nechaj ma ísť napred a program aby sa svet vidieť číslo 15. Budeme si to malý najprv tu. A ja idem do režimu hry. A budem špecifikovať, nám číslo 15. OK. A teraz sa všetci watching-- ak Ak chcete možná stať týmto spôsobom, pretože to bude linka up-- pokračovať a prepínať medzi ôsmimi tlačidiel pozdĺž hornej otočiť žiaroviek na alebo vypnúť, ako uznáte za vhodné. DIVÁKOV: OK. David J. Malan: A žiadny podvádzanie tým, že udrie a 15 krát. Oh, budeme robiť, že. DIVÁKOV: Oh, počkaj. Je mi to tak ľúto. David J. Malan: Môžete tiež zapnúť Žiarovky na individuálne s každou z týchto tlačidiel hore. DIVÁKOV: Oh, OK. Tak to by bolo ako-- David J. Malan: OK. Takže teraz máme osem. Takže poďme pozastaviť publikum, aby sa zapojili tu. Aké číslo je Jackie V súčasnosti zastupuje? 11. Sme tak skoro tam. A vynikajúce. Takže máme prvého víťaza. Blahoželáme. A my sme si mysleli, že majú niektoré báječné darčeky. Ak by ste chceli, aby sa jeden taký koľaji izba tu na akademickej pôde, môžete si mať záverečný projekt pomocou sa toto rozhranie API, vďaka Jackie. Takže teď-- [APPLAUSE] --if sme mohli, jeden ako okolo tohto. Oh, teraz chce každý pár žiaroviek. Pre takzvané hacker vydanie, budeme rozbehnúť to a-- oh, jo, nič nehovoriace. Myslím si, že ideš sa teraz ak vaše ruka ide dole. Aké je vaše meno? DIVÁKOV: Alex. David J. Malan: Alex, poď sem. Takže pre Alexa, budeme Program v mierne väčšom počte. Možno, že v poriadku. Číslo 50. DIVÁKOV: OK. David J. Malan: Ale, ako Aj said-- a tie by mohli chcú postaviť tu tak že tlačidlá line up ako by ste expect-- ale ja som Nazývam to hacker vydania. Tak-- veľa šťastia! [SMIECH] Budete mať možnosť sa obrátiť je vypnutý, ak ty-- OK. Výborne. Wonderful. Blahoželáme. [APPLAUSE] Myslím, že by som mal zaplatiť. Gratulujeme Alex rovnako. OK. Takže konečné stánok s jedlom tu je snáď, úprimne povedané, simplicity-- jednoduchosť, s ktorou môžete získať nejaké pekné svetlo žiarovky, zrejme v [nepočuteľné]. Ale predstavujú, nakoniec, rovnaké myšlienky s akou my ľudia sme už príliš známe. Takže to, čo je možné, že ďalšie krok je v progresii že sa snaží robiť niečo zaujímavé údaje a predstavujúce vstupy, ktoré sú nielen čísla, ale sú možno listy alebo viac? No, ukázalo sa, že počítačový svet, na mnoho rokov, proste prijala ľubovoľný, ale zodpovedá štandardu, ktorý mapuje čísla písmen abecedy. Napríklad, je tu výňatok z tohto mapovania. Tomu sa hovorí ASCII. -S-C-I-I. A to je jednoducho tabuľka, ktorá mapuje Uppercase letters-- v tomto case-- na desiatkové číslo. Ale čo je dôsledok? No, ak ste skutočne chcú reprezentovať niečo ako e-mail, alebo nejaký text na webovej stránke, môžete zrejme chcú ukázať ľudské listy abeceda, nie čísla. Takže v závislosti na rámci programu že užívateľ používa, ak je to webový prehliadač alebo e-mailový klient, Čísla môžu byť pre interpretovať ako písmená. To znamená, že vzory bitov môže ľahko interpretovať ako písmená. A tak to, čo môžeme mať je písmeno bytosť reprezentovaný ako 65, B je reprezentovaný ako 66. Takže ak máme super krátke slovo, rovnako ako hi, čo počítačový by nakoniec obchod v desiatkovej sústave, ale naozaj binárne, používať niektoré sekvencie bitov, využitie trochu elektriny nejakým spôsobom, by byť dve čísla 72 a 73. Ale vzor bitov predstavuje tieto hodnoty. Tak to potom je, ako môžeme Zastupujeme vstupy a výstupy. A stačí, keď poviem, môžeme robiť zložitejšie reprezentácie nakoniec sa veci, ako je grafika, videá, hudbu a ďalšie ako uvidíme neskôr tento termín. Tak to proste odíde a potom algoritmy, tieto súbory pokynov, s ktorými máme riešenie konkrétnych problémov. Sme odovzdaním vstupy do algoritmu. A tie algoritmy produkujú výstupy, snáď správne výstupy a dúfajme, že tiež, efektívne zhromaždili výstupy. Inými slovami, to je jedna vec, realizovať správne niečo. To je ďalšia vec, ktorú k realizácii niečo dobre alebo efektívne. Napríklad, jeden demonštrácie že sme radi v priebehu je to jedna. Ale tieto veci sú stále stále ťažké nájsť. Ale to je naozaj starej školy telefónny zoznam, vnútri ktorej sú 1000, plus stránky Mená a telefónne čísla. A keď som chcel vyhľadať niekto v tomto telefónnom zozname, Nemohol som jednoducho robiť veľmi naivný algoritmus. Nemohol som otvoriť na prvú stránku, a Mohol by som začať hľadať, povedzme, niekto menoval Mike Smith. A keď to nie je na prvý stránky, som postúpiť do druhého, a potom tretí, a potom na štvrtý, a tak ďalej, až som konečne nájsť Mike Smith. Teraz je to algoritmus správny? Hľadisko: Áno. David J. Malan: Jo. Ak je tam, budem nakoniec ho nájsť. Ale to pravdepodobne nie je príliš efektívne, určite nie rýchlo, pretože, môj bože, prečo som plytvať mojím časom obracajúce cez všetky tieto stránky, keď som sa mohol Určite to fyzicky rýchlejšie? No, mierne optimalizácia, tak hovoriť, nemusí byť vždy jednu stránku naraz, ale dve, štyri, šesť, osem, desať. Stále je to tak? Divákov: Nie David J. Malan: Takže nie, či som pre inštancie preskočiť Mike Smith. Ale tak dlho, ako som sa pedál jednu stranu, keď som ho presahovať, možno by sme mohli napraviť to, čo mohlo by byť inak gotcha. Ale je to lepšie? Je to rýchlejšie? Myslím, že jo. Je to doslova dvakrát tak rýchlo, keď to urobím dve stránky naraz. Takže keď som pôvodne mal 1000 strán, Teraz mám len otočiť 500-krát, nie sú plne 1.000 strán, aby si prípadne v najhoršom prípade na konci telefónu kniha, kde niekto ako je Mike Smith, alebo niekoho, kto sa neskôr meno by mohlo byť v skutočnosti. Ale, samozrejme, sme ľudia rozhodne nie sú bude robiť, že určite nie je v tomto okamihu v našom živote. Čo je to rozumné človek pravdepodobne robiť? Divákov: Choď priamo na The9 S rokov. David J. Malan: Choď priamo na S rokov? Ako mám ísť rovno do S rokov? Divákov: Rip ho v polovici. David J. Malan: No, nie je označenie. Takže áno, v prípade, že boli skutočne Štítok alebo kartu lepkavá pre S, by sme mali skočiť rovno tam. Ale je to celkom neškodné. Takže najlepšie, čo môžem urobiť, je zhruba v sekcii S alebo možno zhruba do stredu. Ale hlavné jedlo so sebou teď-- a intuície že ste si vzal na udelená pre roky probably-- je to, že to, čo robíte teraz priateľov o tomto probléme? Divákov: [nepočuteľné] David J. Malan: Mike Smith je iste nie je v tejto polovici probléme pretože Smith prichádza po polovici čo je zhruba sekcie M, sa zdá byť. Takže ako ste mohli vidieť na Visitas, môžeme teraz doslova trhať tento problém na polovicu. Divákov: Woo! David J. Malan: Je to stále ľahšie a jednoduchšie. [APPLAUSE] Tu to je. [SMIECH] A teraz som v podstate majú rovnaký problém, ale je to doslova polovice tak veľký. Som stále hľadajú Mike Smith. A trúfam si povedať, môžem stále pozrite sa na neho rovnakým spôsobom, rozdeliť problém na polovicu opäť trhá problém znova na polovicu, čo ma teraz opúšťa s problém štvrtiny veľkosti, dramaticky hodiť, že polovica preč, a tento proces opakovať znovu a znovu a znovu sa pozrel dole v každom bode vidieť ak Mike Smith je na stránky sa jedná. Teraz, keď mám toto právo, nakoniec som sa to nájsť s jedinou stránku, na ktorej Mike Smith je, či je naozaj v telefónnom zozname. Samozrejme, že som mohol nikdy volať znova Mike. Ale tu je, že keď sme začali s 1000 stránkami, môj prvý algoritmus, otočiť stránku, možno 1000 times-- Určite menej, pretože je to Názov S a nie meno Z, ale ako toľko ako 1000 strán potenciálne. Druhý algoritmus, lepšie. 500 strán. Po tretie algoritmus, hoci, koľko krokov by to sa rozdeliť 1000 stránky telefónny zoznam na dve polovice, ako je toto? 10, dávať alebo brať. Takže len listovala, že telefónny zoznam, potápanie a dobývanie, aby som tak povedal, 10 krát, urobím môj spôsob, ako sa k len jednej strane. A tak môžeme zachytiť túto intuíciu teraz trochu graficky ak ste práve do úvahy Super jednoduchý graf. Sme na osi x, alebo horizontálne os, je veľkosť môjho problému, počet stránok v telefónnom zozname. A počítačoví experti obvykle s obľubou nazývajú veľkosť problému n, v ktorom n je len niektoré premenné, ktoré represents-- v tomto case-- počet stránok. Vertikálne, alebo y-os, tu je bude k riešeniu, Možno, že počet stránok zákrut, Možno, že počet sekúnd alebo minúty, bez ohľadu na Váš merná jednotka je. A tak sa červená čiara predstavuje prvý algoritmus, pretože tam je jedna až jedna vzťah medzi počtom stránok a množstvo času to berie. Ak Verizon zdvojnásobuje počet stránky v telefónnom zozname v budúcom roku, môj beh time-- Potrebný čas na vykonanie že prvý algorithm-- zdvojnásobí v najhoršom prípade. Ale druhý algoritmus, kde som mizerný dva, vyžaduje menej času na daný problém veľkosti. Takže ak som to veľa pages tady-- upozornenie že žltá čiara navrhuje menej času na riešenie. A naozaj, to znamená, budeme hovoriť, n viac ako dve. Ale čo je tvar tretieho a posledná krivka bude vyzerať? Jo, je to naozaj bude look-- I Neviem, čo si chcel povedať. Ale poďme sa pozrieť, čo si chcel povedať. Divákov: Takto. David J. Malan: Bude to vyzerať to, logaritmické slope-- exactly-- kedy budete mať tento podivný sklon. Už to nie je priamka. A čo je presvedčivé o tom, že , Aj keď je teraz graf odrezaný, môžete extrapolovať vo vašom nevadí, že zelená linka nie je bude zvýšenie Výška tak moc ako budete postupovať ďalej sa stanovuje, že horizontálnej osi. V skutočnosti, Verizon, pre inštancie, by mohol znamenať zdvojnásobenie počet stránok v telefóne Kniha od tohto roka a budúci rok od 1000 do 2000 strany, ale žiadny veľký problém. S touto tretí a posledný, je tu intuitívne algoritmus delenie a dobývanie. Bude mi trvať, koľko kroky budúci rok nájsť niekoho, ako Mike Smith? DIVÁKOV: One. David J. Malan: Je tu len jeden. A môžu štvornásobok, je to mi bude trvať len dva kroky a tak ďalej. A tak je to dokladom toho, ako niektorí opatrní konštrukcie a niektorí uznanie za to, čo vaše vstupy sú vedia ešte lepšie. Teraz sme podvádzanie trochu v tom zmysle, že sme využitie predpoklad. Aký je môj predpoklad o našom telefónnom zozname ktoré mi umožnilo rozdeľ a panuj v tejto intuitívne a stále správnym spôsobom? Divákov: [nepočuteľné] David J. Malan: Jo. Tak to bolo nariadené. To bolo podľa abecedy podľa telefónny zoznam spoločnosti. Keby to bolo v náhodnom poradí, ktoré by bolo sakra telefónneho zoznamu, ale rozhodne nie nehodí algoritmu Použil som, pretože by ste nikdy náhodou cez Mike Smith ak ste si nechali delenie v polovica týmto spôsobom náhodou. Takže poďme sa teraz formalizovať čo je jasne intuitívne. Takže niečo, čo nazýva pseudokód je, kde budeme začnú niektoré z našich počiatočných problémov. A to je všeobecný spôsob, ako popisovať algoritmus alebo počítačový program, nie pomocou C alebo C ++ alebo Java, alebo nejaký konkrétny jazyk, ale len pomocou po anglicky, s ktoré každý človek môže byť povedomý. A môžeme písať pseudokódu Pre tento problém nasledovne. Krok číslo jedna, zdvihnite telefónny zoznam. Krok dva, otvorený stred telefónneho zoznamu. Krok tri, pozri sa na mená. Krok štyri, ak Smith patrí medzi names-- A teraz je to zaujímavé konštrukt. Je to rozhodnutie, bod. Je to rázcestie, ak máte bude, vetva, aby som tak povedal. Takže budem odsadenie len konvencií step-- Nie five-- ktorý je povedzme, zavolám Miku. Takže to odsadenie, úplne svojvoľné ľudské konvencie, ale je to proste chcel povedať sémanticky že ak Smith patrí medzi menami, potom by som mal zavolať Mikea. Medzitým sa v kroku šesť, oznámenia že odsadenie je preč. Tak je iný druhý vidlica v cesty, ostatné cesty by som mohla cestovať. Takže else if Smith skôr v knihe, čo je môj ďalší krok pravdepodobne bude tu? Divákov: Idete na ľavej strane. David J. Malan: Jo, tak choďte na Ľavá polovica telefónneho zoznamu. Vyhoďte pravú polovicu, ak Smith je skôr v knihe. Tak otvorené až do polovice Ľavá polovica knihy. A potom krok osem, ísť na linku tri. A to je zvedavý slučka som spôsobuje, rekurzia, aby som tak povedal. Ale o tom viac v budúcnosti. Ja som pomocou môjho rovnaký algoritmus, má rovnaký pseudokód, znovu riešiť rovnaký problém pretože jediná vec, ktorá sa zmenila je veľkosť problému, nie mojím cieľom, a nie človek Hľadám. Tak som si znova algoritmus že som už definované. Else if Smith neskôr v book-- by ste mohli hádať otvorená až do polovice pravá polovica knihy. A opäť, prejdite na riadok tri. Else-- čo je posledný riadok v rámci tohto programu bude? Ak to nie je medzi mená na stránke Som na, ak to nie je skôr knihy, a on to najneskôr v knihe, čo ja viem Teraz je pravda o Mike Smith? Divákov: Nie je v knihe. David J. Malan: Nie je v knihe. Takže najlepšie, čo môžem urobiť, je len vzdať a zastaviť tento program. V poriadku. Takže v tomto bode, poďme sa Rýchla prehliadka niektoré z toho, čo vás čaká. A v skutočnosti, ja som sem vstúpil o počte zamestnancov CS50. Ak sa títo ľudia mohli všetko so mnou tu na javisku. [APPLAUSE] Nezabúdajme, že je to len podmnožina personálu CS50, pretože každý rok máme takmer 100 zamestnancov členovia v úlohe asistentov kurze, výučba chlapi, a ďalšie. Poď hore. Takže oni sa k nám pripoja tu rozpačito na chvíľu ako dať víchrica prehliadku toho, čo do kurzu by mal očakávať tu. Takže v prvom rade, máme SAT / UNS ako možnosť triedenia v priebehu. To znamená zámerne byť možnosť, kedy Ak ste trochu nesvoj z toho, že v priebehu, a nemáte strach failure--, aj keď úprimne povedané, zlyhanie znamená bolieť vaše GPA, dostať B a nie A--, ktorý je presne to, čo určite pre brány Samozrejme, rovnako ako CS50 a ďalšie úvodné kurzy, Táto možnosť triedenia je určený povoliť. Úprimne podporiť students-- najmä ak na fence-- začať Samozrejme, SAT / UNS, naďalej SAT / UNS. Ale môžete samozrejme prepnúť na list stupňa v piatom pondelok v termíne. Úprimne povedané, keď som bol v prvom ročníku v roku 1995, Ja sám som ani brať CS50 pretože som nevstal odvahu skutočne krok nohu v triede. Zdalo sa, že doménu príliš neznáme ku mne, a naozaj len pre tých z mojich priateľov, Úprimne povedané, kto bol programovanie pretože oni boli viacročných alebo možno 10 rokov starý. A bolo to len preto, že som bol schopní prijať CS50 v môj deň v zodpovedajúcej verzii SAT / UNS-- vyhovuje / nevyhovuje späť do day-- že aj ja vzal 50. A tak či onak, som zase tu dnes s vami. Teraz zatiaľ čo ešte by mal mať na pamäti, o 50 je simultánne zápis. Na rozdiel od povesti, že Možno ste počuli, je to možné, v skutočnosti, súčasne zapísať CS50 a ďalšie skupiny, ktoré schádza na rovnakej alebo niektoré prekrývajúce tentoraz ako CS50 prednášok tu. Pozrite sa na učebné osnovy pre údaje z ich vykonávania. Prednášky, zatiaľ, na rozdiel od čo je oficiálne v katalógu, všeobecne len splniť len za hodinu. Príležitostne môžeme spustiť trochu dlho. Ale majte na pamäti, že Cieľom v CS50 prednášok je poskytnúť vám koncepčné prehľad, dúfajme, že niektoré ukážky, možno dokonca aj niektoré darčeky, o tom, čo čaká na týždeň, ktorý nasleduje. A tak na prednáškach, budeme skúmať tieto témy a príklady dohromady, prináša študentom na javisku, a zamestnancom na javisku tak často, ako môžeme, len na pár hodín každý týždeň. Sekcia, medzitým bude ponúkané týchto ľudí tady-- mnohých z nich sa učia chlapi, niektoré Z nich samozrejme assistants-- vôle sa deje raz za týždeň. A čo je kľúčom k udržaniu na pamäti, je, že sme sa have-- nie na rozdiel od First Nights, hudba class-- rôzne stopy úsekov pre Študenti menej komfortné, viac pohodlné, a niekde medzi tým. A úprimne povedané, ak viete že ste menej pohodlné. A vy asi viete, ak ste oveľa pohodlnejšie. A ak si nie ste naozaj istí, ste podľa definície niekde medzi. Takže keď príde čas na úseku za týždeň alebo tak, na učebných osnov, my vám spýtať na túto otázku. A môžete si vybrať self-Based na vlastnú úroveň pohodlia a byť s students-- byť s zelenou dots-- podobná úroveň pohodlia pre vás. Medzitým, máme problém sady, čo v konečnom dôsledku definovať svoje skúsenosti v tomto kurze. Sú ponúkané väčšinou v niekoľkých vydaniach. Standard Edition, ktoré očakávame, že väčšina každý študent v priebehu riešiť ale aj takzvaný hacker vydania ktorý neponúka žiadne formu kreditu navyše úplne, ale naozaj vychvaľovanie práv povedať, že ste sa snažil a riešiť hackerské vydanie kurzu, že obrátiť na podobný materiál ale z sofistikovanejšie uhla. Čo ponúkame pre Standard Edition, pre, opäť super väčšina študentov, nie sú iba walk-priechodky, ktoré sú videá pod vedením pracovníkov Kurz je že naozaj vás prevedie Problémy kurzu a možné prevedenie implementácia. A tiež, po Skutočnosť, ponúkajú postmortems, pričom ak ste zvedaví, ako by ste mohli mať alebo by mala vyriešiť niektoré problém, pedagogickí zamestnanci vás prevedie ty na video aj. Medzitým, čo ich čaká tiež sú päť neskoré dní a skutočnosť, že sa zníži vaša Najnižšie problém nastaviť skóre. Určite oceníte, že výmenou na pracovnú záťaž, ktorá očakáva, že 50 z vás, život dostane do cesty Niekedy, ak nie päťkrát. A tak to bude ponúkať ste trochu flexibility, rozširuje svoj termín od, povedzme, Vo štvrtok napoludnie v piatok napoludnie. Pozrite sa na učebné osnovy pre podrobnosti ich vykonávania. Tak čo teraz čaká? A je to len dochádza Teraz ma, ako dlho Mám vy tu stáť na javisku. [SMIECH] David J. Malan: Ale my dostaneme vrcholný prevedenie onedlho. Takže to, čo vás čaká, pokiaľ ide z problémových sad? No, možno ukážka toho, čo my všetci vlani so svojimi predchodcami. V prvom probléme sady v minulom roku sme uviedli na trh Scratch, grafický programovací jazyk, ktorý umožňuje naprogramovať doslova pretiahnutím dielikov, ako tie, ktoré sú pripomínajúce konštruktov uvidí len jeden týždeň preto, keď prepínanie na viac tradičné jazyk, známy ako C. V minulom roku sme pokračovali k tomuto problému sade, zahŕňajúce pre kryptografiu, kódovanie informácií aby ho z vládnej alebo priatelia " oči, ktoré nechcete vidieť. Zakódované v tu správy, že čoskoro si budú môcť dešifrovať alebo de-vyškriabať. Breakout bol problém nastaviť v minulom roku, v ktorom môžete použiť tieto novo nájdenú programovanie zručnosti skutočne realizovať hra wherein-- ako vy Možno si spomeniete, od childhood-- Cieľom bolo bash tehly, ktoré sú na vrchole obrazovky tu, akumuláciu skóre po ceste, a vykonávanie vlastných algoritmov s, ktorý toto riešenie v konečnom dôsledku umožňuje hrať hru. Medzitým, neskôr v semester, dáme vám slovník 143091 anglických slov. A vy budete mať za úlohu napísať program, ktorý kúzlo kontroly, dokumenty, ktoré načítava že veľa slov do pamäte tak efektívne, ako je to možné. Všeobecne bodové pred svojimi spolužiakmi ak sa rozhodnete do trochu výzvou v rebríčku vidieť, kto môže používať najmenším počtom sekúnd z hľadiska doby prevádzky, a najmenší počet megabajtov pamäte, av skutočnosti jemné ladenie Vami programy byť neuveriteľne náročná na zdroje nie len čas. V minulom roku, tiež sme sa pozreli na konci semestra na programovanie pre web. A skutočne, urobíme to znovu tento rok s niekoľkými problémovými sád, zavádza vás do techník a spôsob myslenia, s ktorým môžete použiť Tieto znalosti programovania na webové stránky, dynamické webové stránky, webové stránky, ktoré skutočne rieši problémy, a správať sa inak a nie sú len statické stránky so statickým informácií. Záverečný projekt nakoniec bude definovať, aj keď, Vyvrcholením kurzu pre študentov, kde budete mať za úlohu realizovať väčšina niečo záujem pre vás, tak dlho, ako to nejako čerpá poučenie kurzu je. A ako ste videli v Video na začiatku, budeme uzavrieť semester sa CS50 hackathon, ktorý v prípade, neznáme, začne o 19:00 a jednu noc a skončí v 07:00 druhý deň ráno. Okolo 21:00 sa budeme Poradie v prvej večeri. Okolo 01:00 sa budeme Poradie, v druhej večeru. A ak ste ešte stojí v 05:00 sme bude shuttle bus vás na IHOP na raňajky. CS50 trh, zatiaľ je udalosť ku ktorému 2000 navyše fakulty, študenti, a zamestnanci z celého areálu bude príďte sa pozrieť svoje úspechy v priebehu a konečné projekty a kreácie , Ktoré vytvoríte na vašom notebooky, Stolové počítače, alebo možno aj žiarovky. Medzitým, úradné hodiny a nosná konštrukcia. A teraz bolo by to lepší čas, aby vám všetko dohromady. Konzultačné hodiny sa budú konať štyri noci týždenne po dobu niekoľkých hodín každú noc so všeobecne o 20 až 30 z Zamestnanci ihrisko je v službe naraz poskytnúť vám intímne one-on-one možnosti podpory s problémovými sady kurzu je. Doučovanie tiež bude k dispozícii, a to najmä pre študentov menej comfortable-- alebo trúfam tvrdiť, aspoň comfortable-- pre koho úradné hodiny nie sú najväčšie výchovné prostredie a rozhodne nie sú najväčší stres-voľný. Zvlášť, keď termíny sú lisovanie, budeme aktívne spárovať vám sami s zamestnanec pracovať s na niektorých pravidelných intervaloch, ako vaše potreby a ich rozvrh dovolí. A zamestnancov. Dovoľte mi predstaviť Davon, Rob, a Gabriel, tohtoročný hlavy. Ak by každý chcel say-- [APPLAUSE] --a slovo. [APPLAUSE] Davon tu je Course Manager, ktorý znamená, že vo svojej úlohe na plný úväzok pomáha s realizáciou a logistika CS50. DAVONA: Jo, ahoj, chlapci. Uvidíte veľa ma v úradných hodinách. Budem učiť sekcií. A ak budete strieľať e-maily dopredu, Budem pravdepodobne reagovať. Tak uvidím veľa z vás celý semester. Vitajte na CS50. David J. Malan: A teraz Gabriel, ktorý sám bol len nováčik v minulom roku, ale v posledných rokoch sa pôsobí svoju vlastnú verziu CS50 v Brazílii, pričom sa stiahli všetky content-- stránke kurzu čo je jednoznačne byť natočený a umiestnil online-- tak, aby ju mohol preložiť do Portugalský a učiť viac než 100 z jeho spolužiakov viac než Počas dvoch rokov, výučbu v rodnom jazyku Osnovy kurzu je. GABRIEL: Dobrý deň. [APPLAUSE] GABRIEL: Ahoj, ja som Gabriel. Ja som hlava TF kurzu. A dúfam, že budete milovať CS50. To je CS50. David J. Malan: A teraz Rob. Oh, chceš úvod? ROB: No, ja neviem. [SMIECH] David J. Malan: A Rob Boden. [SMIECH] ROB: Ahoj, ja som Rob. Toto je môj piaty rok zapojení do kurzu. Každý rok, je to len lepšie a lepšie triedy, tak vy ste jasne bude úžasné. Dúfam, že ste všetci baviť sa s ním. Budem sa baviť s ním. Tak vidíte okolo seba. David J. Malan: A čas nedovolí us-- [APPLAUSE] Čas nedovolí nám predstaviť všetky na javisku a všetci ich kolegovia ktorí sú nákupné triedy dnes. Ale dovoľte mi predstaviť Belinda a CS50 Puzzle Deň, ktorý čaká na to príde sobota, ktorá je prvá udalosti veľkého rozsahu Course. Ten predovšetkým znamenalo kladivo domov bod že výpočtová technika je v konečnom dôsledku Nejde o programovaní, ale o riešení problémov všeobecne. A puzzle deň, ako budete vidieť, prinesie vám a vaše spolužiakmi dohromady-- Dúfame, že túto sobotu. BELINDA: OK. Ahoj, chlapci. Takže vďaka. Tak ako naše preslávené kapitána povedal, volám sa Belinda. Som vo druháku na Quincy House. Ja, rovnako ako vy, sa CS50 v minulom roku, ale naozaj sa to páčilo. Mám slabosť pre vy v tretej rade. A ja som hrdý na to, že som teraz na vážny vzťah s CS50 [nepočuteľné]. OK. To bol môj úbohý verzia vtipu. Každopádne, takže pohybujúce sa na, chcel pozvať vy všetci na I-Lab, alebo HBS žihľavka. Chystáme sa, že má Puzzle deň od 12:00 do 03:00. A to je skvelá príležitosť pre vás ľudí, aby vyhovoval vašim kolegom SK, priateľov, vyriešiť niektoré non-SK hádaniek, rovnako ako kapitán bolo spomenuté, a tiež jesť nejaké jedlo zadarmo, zarobiť nejaké úžasné ceny, rovnako ako darčekové karty, 75 dolárov na osobu, a also-- čo to bolo? WiiU alebo tak niečo? WiiU? Áno. Pre naše tombola. Skvelé. Takže budem držať okolo po hodine. A ak vy máte nejaké otázok, dajte mi vedieť. David J. Malan: A uvidíte, za to nie je nič, čo robiť dnes. Prvý problém nastaviť zhasne piatok. Ale aby nám dnes doma, rád by som sa Predstavujeme Vám konkrétne jeden zamestnanec, Colton Ogden tu, ktorého ruky sú teraz chránené nad vami sa Tento MIDI ovládač kladivo domov bod ďalej že výpočtová technika sa tiež má použiteľnosť ďaleko za techniky a STEM a výpočtová technika sama o sebe, rozšíriť aj na takéto domény je napríklad hudba. Colton sa láskavo offered-- som si myslel, jeden z nich sa bude zaostrenie. Andrew, keby sme mohli privolať zameranie viac ako na chvíľu tu. Čo Colton urobil vopred je program, Toto zariadenie, tento vankúšik z tlačidiel , Ktoré vidíte na obrázku tu, ako MIDI kontrolér, pričom každá z týchto tlačidiel je pripojený k určitej noty alebo zvuk, všeobecnejšie záznam, tak, že tým, že hrá vzory týchto tlačidlá, rovnako ako vzory bitov, môže predstavovať ďalšie vyššej koncepty úrovni. Bude môcť nakoniec aby nás doma dnes? Bez ďalších okolkov, ak je môžeme stlmiť svetlá, a zapnite obrazovku za Colton. Divákov: Woo! David J. Malan: To je CS50. [Prehrávanie hudby] [APPLAUSE] To je pre CS50. Uvidíme sa v piatok. Niektoré tortu na vás čaká v priečnej lodi. [Prehrávanie hudby]