[Zenelejátszás] 

[Taps] 

David J. MALAN: Ez CS50, Harvard Egyetem bemutatása hogy a szellemi vállalkozások számítástechnika és a művészet a programozás. Most, ha azok közé tartozik, amelyek minden évben itt ülünk egy kis idegek a fejedben, mint hogy nem hiszem, hogy ide tartozik, úgy gondolja, hogy a legtöbb valaki ül körül tud sokkal többet, mint amennyit, valóban kényelmesebb, mint te a számítógép tudomány vagy számítógépek általában észre hogy 78% a diákok, akik most hogy CS50 nem korábbi tapasztalatok. 

Sőt, ott van a 100 pont ott A kijelző, 78 amely szilárd zöld, ami azt jelenti, hogy, Ha körében, hogy a demográfiai, vannak nagyon jó társaság itt ki. És ha helyette között a 22% CS50 diákok, akik valóban rendelkezik előzetes tapasztalattal, akár gimnázium vagy más program észre, hogy te is, akkor vitatható során. 

Nem csak különböző pályák a diákok kevésbé kényelmes, és több kényelmes egyaránt szakaszában, mi szintén úgynevezett hacker kiadása A legtöbb probléma határozza meg, hogy kihívást azok a diákok azzal a további tapasztalatok felfedezni hasonló anyaggal hanem egy sokkal kifinomult perspektíva. 

De mi is az a számítástechnika? Nos, végül is, mi fog anyag, amit felfedezni ezen a területen nem annyi, ahol a végén képest az osztálytársaival, de ahol te magad a végén A 12. héten, szemben hol itt kezdődik A hét nulla. Most számítógép tudomány-nos, hívják a tudomány computation-- ahol számítás tényleg csak egy divatos módja mondván, vesz egy kis bemenet, termelő néhány kimenetet, és Ezzel a futás algoritmusok készlet utasítások megoldására néhány probléma azok bemenetek annak érdekében, hogy készítsen néhány kimenet vagy megoldás, amely érdekli. 

Így a közelmúltban volt alkalom utazni ki Kaliforniába, hogy találkozzon egy alumínium-oxid. A neve Susan Wojcicki. És ő szeretne beszélni hogy itt a videó arról tanúskodnak, hogy mennyire alkalmazható még csak egy kis ízelítőt a számítógép tudomány a bevezető szint lehet. Akkor is, ha nem megy, hogy folytassa számítástechnika, mint a mező, vagy akár mérnöki, vagy szár általánosabban látni fogja, sőt, hogy egy bizonyos Természetesen így befolyásolták az életét. És ő csak most vette, amikor volt a vezető itt a Harvard College-ban. 

Ha tudnánk homályos a fények Susan. Susan Wojcicki: Helló, világ. Vagyok Susan Wojcicki. Én vagyok a vezérigazgató a YouTube. És én CS50 koromban a vezető a Harvardon 1990-ben. Én valójában a történelem és irodalom szakon. 

És a junior nyár, Rájöttem, hogy talán akart tanulni valamit a számítógépek. És így jöttem vissza. Vettem CS50. Nehéz volt, de ez volt az legcsodálatosabb osztály vettem. 

Ez megváltoztatta azt hiszem mindent. És amikor végzett a Harvardon 1990-ben mentem Szilícium-völgyben. És kaptam munkát. És én dolgoztam tech azóta. David J. MALAN: Most mi Susan nem említette ezt a videót, hogy valójában az ő garázs, hogy a Google maga is által alapított Larry és Sergey. 

Most is kinyújtotta, hogy a barátok A code.org, olyan szervezet, amely Az elmúlt évben már az emberek egyre különösen izgatott számítástechnika és programozás, különösen. De érdemes megjegyezni, hogy a programozás nem számítógép-tudomány önmagában. Számítástechnika nem programozás. Inkább programozás csak egy tool-- amellyel mindenkinek lesz nagyon is jól ismerős a félév end-- úgy, hogy akkor lehet alkalmazni, nem csak azért, hogy a jövőben tanfolyamok CS hanem, hogy bármilyen területen, ahonnan jössz, a humán, társadalomtudományok, természetes tudomány, vagy hasonlók. 

Sőt, hogy néhány más Alumni és kollégáik beszélni az alkalmazhatóság A terület, amely vár. 

Bill Gates: 13 éves voltam, amikor először kapott hozzáférést a számítógéphez. 

Jack Dorsey: A szüleim vett nekem egy Macintosh 1984-ben amikor én nyolc éves. 

Mark Zuckerberg: voltam a hatodik fokozat. 

SPEAKER 1: megtanultam, hogy kódot a főiskolán. 

Ruchi Sanghvi: első évben, első félév, Bevezetés a Computer Science. 

Bill Gates: írtam egy programot játszott tic-tac-toe. 

DREW HOUSTON: Azt hiszem, hogy nagyon szerény kezdetek. Azt hiszem, az első program Írtam kérdezte a dolgokat, mint, Mi a kedvenc színed? Vagy hány éves vagy? ELENA SILENOK: először hallottam hogyan lehet a zöld kör és egy piros négyzet jelenik meg a képernyőn. GABE NEWELL: Az első alkalommal, amikor valóban volt valami jön és azt mondja, helló, világ. És én egy számítógépes csinálni. Ez csak megdöbbentő. 

Mark Zuckerberg: Tanulás, hogyan a program nem indul el mivel szeretnének tanulni az összes számítógép-tudomány vagy megpróbálja elsajátítani ezt fegyelem, vagy ilyesmi. Ez csak most kezdődött el, mert ezt akartam csinálni egy egyszerű dolog. Azt akartam, hogy valami Jó móka volt a magam és a testvéreim. 

És írtam ezt a kis programot. És akkor alapvetően csak hozzá egy kicsit hozzá. És akkor, amikor kellett tanulni valami újat, Utánanéztem, akár a könyv vagy az interneten, majd hozzátette, egy kicsit rá. 

DREW HOUSTON: Ez tényleg nem ellentétben hangszeren játszani, vagy valami vagy játszik a sport. David J. MALAN: Rendben. Így hát most már tényleg merülés egy kicsit mélyebbre. Mik ezek a bemenetek és kimenetek hogy beszélünk itt? 

Szóval, hogy valami egyszerű? Ön valószínűleg tudja, akkor is, ha nem ismeri a számítógép-tudomány egyáltalán, hogy a számítógépek valahogy használni és érti csak nullák és egyesek. De hogyan lehet, hogy esetleg lehet adni, hogy sok mai asztali és hordozható számítógépek számára egyaránt lehet tenni? 

A DNS-t a nap, az egyetlen ábécé, hogy megértsék nulla vagy egy. Nos, hogy ezt. Mi, emberek, hajlamosak használni a decimális rendszer. "December", azaz 10. És ez azért van, mert 10 10 számjegy, 0 és kilenc. 

Most számítógépek, ezzel szemben, hajlanak arra, hogy a bináris. "Bi", azaz kettő. Így általában csak a nulla és egy. De kiderült, hogy még csak a nullák és egyesek, hogy egy elég nagy ábécé képviselnek, amellyel a legtöbb bármilyen adat akarsz, hogy ez a szám, hogy ez a levél, legyen az grafika vagy videó a képernyőn. 

Vegyük például, hogy mi, emberek általában értelmezik ezt a számot itt. Ez csak három számjegy, egy, kettő, három. De tudjuk, hogy ez a szám veleszületett most, mint 123. De miért van ez? 

Nos, ha úgy gondolja, vissza hogy talán iskolában, akkor valószínűleg arra tanították, hogy gondolni ezeket a számokat, hogy az oszlopok, ahol az egyik a több száz hely, a kettő a tízesek helyén, és a három is van a helyén. Miért, hogy valóban hasznos? Nos, gondolj a szuper egyszerű számtani hogy mi minden volt csinál már évek óta. Hatékonyan, ha van egy a több száz helyen, te a gyors matek 100 szer 1 plusz 10-szer 2-- mert kettő van a tízes place-- plusz 1 alkalommal 3-- mert három van, az is helyén. Szóval, persze, ha valójában szaporodnak ezt ki, amit mi igazán képviselő ezzel pattern-- egy két three-- 100 plusz 20 plusz 3, ami, persze, 123. 

Most bináris, és a számítógépek nagyon, alapvetően ugyanazt a nyelvet beszélik hogy mi. Ők csak egy kisebb ábécé. Így a számítógépek csak nullákat és azok a rendelkezésükre áll. Tehát míg mi, emberek lényegében hatáskörét a 10 mindegyik places-- 10 a nulla, az egy 10, tíz A két, így 110 és 100 ill. 

Mivel a számítógépek csak két értéke tudják megérteni, nulla és egy, van, hogy különböző értékeket Ezekben az oszlopokban, egy, kettő, négy. És ha folyamatosan megy, nyolc, 16, 32, 64, és így tovább. De a minta és a mentalitás pontosan ugyanaz. 

Tehát ezt a logikát, valaki, hogyan lenne Megyek a képviselő a szám egy bináris? Ha még soha nem is gondoltam ez előtt, mi a bél mondani? 

Közönség: Egy. David J. MALAN: Egy. Pontosan. Csak meg kell egy a is el, mert a nulla elég, hogy nekünk sem négy, sem a kettő. Tehát az egyik alkalommal egy egyenlő egy. Most a dolgok egy kicsit érdekes. Ha azt akarom, hogy képviselje a bináris száma kettő--, de megint, akkor is, ha soha nem beszélt ezen a nyelven előtt, hogyan képviseljük bináris az érték, amit az emberek tudni két? Zero egy nulla. Csak tedd az egyik a oszlopot akarod. 

Most már kezd nagyon könnyű talán most. Tehát, ha azt akarom, hogy képviselje three-- nincs három oszlopának. Szóval, megint, én most hozzá ezeket az értékeket össze azzal, hogy itt senki. Tehát 2-szer 1 plusz 1 1 alkalommal, természetesen, 3. 

Most a dolgok egy kicsit móka hogy azok ma már nulla. És tartalmazza a négy, én ezt. És ha növelni lassan itt-- lenne öt. Ez hat. Ez lenne a hét. 

De most úgy tűnik, hogy befut egy probléma. Hogyan lehet, hogy megyek a képviselő eight-- lesz a következő érték. Igen, szükségünk van egy új bit. És valóban, ha már hallottam ezt a kifejezést korábban, bit, ez csak rövid bináris számjegy, nulla vagy egy. 

És így megtörténhet, hogy képviselő Csak három ilyen bitet itt. De ha volt egy módja tárolására nem három különböző bitet, hanem négy, biztosan tudtam képviselt nyolc, majd kilenc, majd a 10, és még magasabbra. 

De ez majd meghívja a kérdés, hogy hogyan lehet megy a képviselő ezeket dolgok az első helyen. Ez az egyik dolog, hogy dolgozzon őket ide egy csúszda, de hogyan képviselje őket ha egy mechanikus eszköz? Mi az a számítógép tesz képviseli a bemenetek és kimenetek alapvetően meghatározza számítás a végén a nap? 

Nos, mi a valami szuper egyszerű, mint ez? Ez csak egy villanykörte. És kiválthatja ezt villanykörte menni forgatva néhány elektromosság és lehetővé teszi az elektronok átfolyni, amely megváltoztatja annak állam vagy az értéke, hogy úgy mondjam. Például, ez a egy régi iskola asztali lámpa itt egy ilyen villanykörte belsejébe. És most ez nem igazán csinál semmit hasznos. De amint azt dugja az elektromos aljzatba majd ezt switch-- vagy mi is ez egy tranzisztor vagy úgy gondolja, hogy ez egy such-- Most már képviselhetnek ezt az értéket, ahol a villanykörte a nyilvánvalóan ki, vagy ezt az értéket. Ez az érték, vagy ezt az értéket. Ez az érték, és így tovább. 

Így belsejében egy számítógép, feltehetően, sokkal kisebb darabokra a hardver, de, hogy a végén A nap egyszerűen használni electricity-- talán elfog it-- és akkor vagy tartsa valami vagy tartani valamit. Természetesen, ez nem Különösen érdekes, hogy nem csak egy villanykörte. 

Tény, hogy milyen magasra tudok számolni az bináris ezzel asztali lámpa itt? 

Közönség: Egy. 

David J. MALAN: Egy, nem igaz? Kell még asztali lámpa, ha valóban szeretné számolni magasabb. De meg tudjuk csinálni jobban is. Mivel az izzók, hogy , amit tenni ezeket a dolgokat valóban szakértő izzók mint tavaly lehetővé tenné. És ők valóban hálózati izzók. És fürtök vállalatok hogy ezek a dolgok manapság. 

De kiderül, hogy a ez különösen jön a funkció, amellyel meg tudod változtatni a színeket. Így például, ha díszített kollégiumi szoba egy pár ilyen fény izzók, attól függően, hogy a hangulat, attól függően, hogy aki jön, az időjárástól függően, attól függően, hogy az idő A nap, akkor valóban változtatni a színét az izzók a szobában. És ez azért van, mert ezek a fény izzók és mások, mint azt, hogy mi a hívott egy API, az alkalmazás programozási felület, amely egy olyan téma, amellyel akkor jól ismeri a félév végén. 

És ez csak a képzelet, rejtélyes módon mondván, akkor a program ezeket könnyű izzók csinálni a licitálás. , Akkor küldje el az üzeneteket mint te, egy ember, tud üzenetet küldeni a web szerver mondván, hogy nekem a mai hír vagy adj e-mail címemet. 

Küldhetünk több misztikus üzeneteket ezekre izzók mondani, be-és kikapcsolása. De ez nem olyan érdekes. Azt lehet mondani, kapcsolja be a piros, bekapcsolásához zöld, kapcsolja be kék, összes azonos villanykörte. És akkor is, egy kicsit több hozzáértés, mondjuk, viszont magát a kék ha ez egy borús nap kívül, például. Ez valójában javítást időjárás API és megtudja milyen az időjárás, vagy az idő nap, vagy más ilyen kiváltó. 

Tehát, sőt, a két CS50 saját munkatársai, Dan Bradley és Ansel Duff itt, kedves beszerzett nekünk egy csomó ilyen izzók. És építettek CS50 a első bináris izzók, ahol már képviselt itt-- ezekkel a játékos kis magnets-- A különböző helyőrzőket mi utalt, hogy csak egy kicsit korábban. 

Így módon itt van a is hely, kettő, négy. És nem láttuk magasabb. De, persze, ők hatásköre két. Nyolc, 16, 32, 64, és 128. Tehát ha én most szeretnék egy kicsit cifrább mint használ a régi iskola kapcsoló, Van itt a iPad egy szuper egyszerű felület hogy Dan Bradley, a korábbi diák és most tanítás ember, programozott segítségével néhány HTML és a JavaScript, amely olyan jelölés és programozás nyelv volt. És akkor talán csak-- még a visszautazni-- van egy nagy plusz, és egy nagy mínusz, plusz egy gomb minden egyes ilyen izzók. És mi ez fog engedje meg, hogy nem az, például, kattintson a plusz és most képvisel, a Persze, milyen számot? Egy. És én is sújtotta újra. Két. Három. Négy. Öt. Six. Hét. 

És itt most kap az átforgatás de van egy negyedik kicsit ebben az időben, így most már nyolc. Így tudnánk ezt jó ideje. Valójában, mint egy félre, milyen magasra tudnánk számolni? Valaki? 

Közönség: 255. 

David J. MALAN: 255, nem igaz? Ne aggódj túl sokat a matek most, de ez egy elég tisztességes szám. De ez valójában nem kötődik csak hány darab információ, mint egy levél, vagy a grafikus hogy mi képviseli. 

De nem számít, egyelőre. Én megyek előre és kapcsolja ki az összes. És ha tudnám, szeretném kérni önkéntes, az első volunteer-- ó, hello-- a színpadon. A fogás van, hogy kényelmes jelennek meg, ahogy jól amelyek előtt minden osztálytársai, valamint az interneten. És hadd nézzem egy kicsit túl a-- mi a helyzet itt, a fehér ing? És kezét. Gyere fel. Mi a neve? 

Közönség: Jackie. 

David J. MALAN: Jackie. Jackie, gyere fel. Szóval, mi is van ezen iPad egy gomb nevű játékmódban. És ez a játék mód majd engedje meg, hogy bemenet előzetesen egy adott tizedes szám, a számok mi emberek ismerik. És akkor lehet megtámadni itt a gombokkal A top-- egyet mindegyik bulbs-- hogy valóban kitalálni a minta izzók , amely képviseli az adott darabszámot. 

És sajnálom, hogy mi volt a neved? 

Közönség: Jackie. 

David J. MALAN: Jackie. Rendben. Örülök, hogy találkoztunk. 

Szóval, hadd menjen előre, és program a világ, hogy a 15-ös. Majd tartani kicsi először itt. És én megyek be játékmódban. És én fogom megadni, adja meg a 15-ös. 

OK. És most mindenki watching-- ha szeretné talán állni így, mert sorban hurok-- megy előre, és válthat a nyolc gomb a felső kapcsolja az izzók vagy ki ahogy jónak látod. 

Közönség: OK. 

David J. MALAN: És nem csalás ütő plusz 15 alkalommal. Ó, fogunk csinálni. 

Közönség: Oh, várj. Annyira sajnálom. 

David J. MALAN: Ki is kapcsolhatja Az izzók külön Ezekkel a gombok tetején. Közönség: Oh, OK. Így lenne mint-- David J. MALAN: OK. Tehát most már nyolc. Úgyhogy szünetet a közönség, hogy vegyenek részt itt. Mi a szám Jackie jelenleg képviselő? 11.. Így már majdnem ott vagyunk. És kiváló. Tehát az első győztes. Gratulálok. 

És úgy gondoltuk, mi lenne néhány mesés ajándékot. Ha azt szeretné, hogy egy ilyen kollégiumi szoba itt az egyetemen, tudod magad, hogy a végleges projekt használ most az API, köszönhetően Jackie. Így now-- 

[Taps] 

--if tudnánk, még egy e ilyen körül. Ó, most már mindenki azt akarja, néhány izzók. Az úgynevezett hacker kiadás, fogjuk rámpa fel egy-- ó, Ja, semmitmondó. Azt hiszem, jön most Ha a kezed megy lefelé. Mi a neve? 

Közönség: Alex. David J. MALAN: Alex, gyere ide. Így Alex, fogunk programot egy kissé nagyobb számot. Talán azért. A szám 50. 

Közönség: OK. David J. MALAN: De, mint Én mondta-- és lehet, hogy akar állni itt így hogy a gombok sorakoznak ahogy azt expect-- de tettem hívják ezt a hacker kiadás. Úgyhogy-- jó szerencsét! 

[Nevetés] 

Ön képes lesz arra, hogy kapcsolja őket, ha te-- OK. Kiváló. Csodálatos. Gratulálok. 

[Taps] Azt hiszem, meg kell fizetni. Gratulálunk Alex is. OK. 

Tehát a végső elvihető Itt remélhetőleg, őszintén szólva, a simplicity-- a egyszerűség, amely lehet kapni néhány szép fény izzók, látszólag [nem hallható]. De az általuk képviselt, végül, az azonos gondolatok amivel az emberek már nagyon is ismerős. Szóval, mi lehet a következő lépés lehet a progresszió próbál tenni valamit Érdekes adatokkal és ami bemenetek, amelyek nem csak számok, de talán betűk vagy több? 

Nos, kiderült, hogy a számítógépes világ, sok éven át, csak elfogadott egy tetszőleges, de a egységes szabvány, amely leképezi számok hogy az ábécé. Például, itt van egy részlet az feltérképezése. Úgy hívják ASCII. A-S-C-I-I. És ez csak a tábla térképek nagybetűs letters-- ebben case-- a decimális számok. 

De mi a következménye? Nos, ha valóban szeretné, hogy képviselje olyasmi, mint egy e-mail vagy valamilyen szöveget egy weboldalon, akkor Nyilvánvalóan szeretnénk megmutatni az emberi betűit ábécé, nem a számok. Tehát attól függően, hogy a A program keretében hogy a felhasználó az, ha ez A webböngésző vagy e-mail kliens, számok minden bizonnyal értelmezhető leveleket. Ez azt jelenti, minták bit könnyen értelmezhető leveleket. 

És mi lehet a levél A lény képviseletében a 65, B hogy képviseletében a 66. Tehát ha van egy szuper rövid szó, mint hi, amit a számítógép végül tárolja decimális de tényleg bináris, segítségével néhány bitek sorozatát, kihasználva egy kis elektromosság valamilyen módon, lenne a két szám 72 és 73. 

De a minta bitek képviseli ezeket az értékeket. Így ezek akkor is, hogy hogyan lehet képviselni a bemenetek és kimenetek. És elég annyit mondani, tudjuk nem bonyolultabb reprezentációk végül a dolgok, mint grafika, videók, zenék, és még mint látni fogjuk később ezt a kifejezést. 

Úgy, hogy csak hagy majd algoritmusok, ezek a készletek Az utasítások, amelyek mi megoldásában aktuális problémák. Most haladunk a bemeneteket algoritmusok. És ezek algoritmusok termelő kimenet, remélhetőleg korrekt kimenet és remélhetőleg, is, hatékonyan összegyűjtött kimenetek. Más szóval, ez az egyik dolog végrehajtani valamit helyesen. Ez egy másik dolog, hogy végre valami jó vagy hatékonyan. 

Például, egy demonstrációs hogy vagyunk kedveli során ez egy. De ezek a dolgok egyre egyre nehezebb találni. De ez valóban egy régi iskola telefonkönyv, amelynek belsejében 1,000 plusz oldalnyi neveket és telefonszámokat. És ha akartam, hogy néz ki valaki ebben a telefonkönyvben, Én egyszerűen nem egy nagyon naiv algoritmus. Nem tudtam megnyitni az első oldalon, és Tudtam kezdeni keresni, mondjuk, valaki nevű Mike Smith. És ha nem az első oldal, én tovább a második, , majd a harmadik, majd a negyedik, és így tovább, amíg végül megtalálja Mike Smith. 

Most az, hogy algoritmus helyes? 

Közönség: Igen. 

David J. MALAN: Igen. Ha bent van, én végül találni. De vitathatatlan, hogy nem túl hatékony, biztosan nem gyors, mert, Istenem, miért vagyok vesztegeti az időmet essek végig ezeket az oldalakat, ha tudtam biztosan nem ez fizikailag gyorsabban? 

Nos, egy kis optimalizálás, így a beszélni, lehet, hogy nem egy oldalt egy időben, hanem két, négy, hat, nyolc, 10. Mégis igaz? 

Közönség: Nem 

David J. MALAN: Szóval nem, ha a Például átugorják Mike Smith. De amíg én vissza pedál egy oldalt, ha túllépik neki, talán tudnánk kijavítani milyen egyébként egy Megvagy. 

De ez jobb? Ez gyorsabb? Úgy értem, igen. Ez szó szerint kétszer olyan gyorsan ha én két oldalt egy időben. Tehát, ha én eredetileg 1000 oldal, Most már csak a flip 500-szor, nem teljesen 1000 oldal, hogy esetleg a legrosszabb esetben a végén a telefon könyv, ahol valaki Mike Smith, vagy valaki későbbi neve is valójában. 

De, persze, az emberek biztosan nem lesz ezzel, hogy biztosan nem ezen a ponton az életünkben. Mi az ésszerű ember valószínűleg fog csinálni? Közönség: Menj egyenesen The9 S. David J. MALAN: Menj egyenesen a S? Hogyan megy egyenesen a S? 

Közönség: Rip félbe. David J. MALAN: Nos, nincs jelölés. Szóval, igen, ha valóban címke vagy a ragadós lapon S, meg kell ugrani ott. De ez elég ártalmatlan. Tehát a legjobb, amit tehetek, hogy nagyjából az S szakasz vagy esetleg durván középre. De a legfontosabb elvihető now-- és az intuíció , amit tett nyújtott éves probably-- az, hogy mit csinál most tudni ezt a problémát? 

KÖZÖNSÉG: [nem hallható] 

David J. MALAN: Mike Smith biztosan nem ebben a felében a probléma mert Smith után jön a középső amely nagyjából az M rész, úgy tűnik, hogy. Szóval, mint ahogy azt már láttuk a Visitas, most már szó szerint szakadás ezt a problémát ketté. Közönség: Woo! David J. MALAN: Ez egyre könnyebb és könnyebb. [Taps] Tessék. [Nevetés] És most én alapvetően ugyanaz a probléma, de szó szerint fele akkora. Még mindig keresem Mike Smith. És merem állítani, még most is keresse őt ugyanúgy, felosztása a probléma fele ismét, tépte a probléma újra a fél, amely most hagy nekem probléma negyede a méret, drámaian dobja, hogy a fele el, és ismételje meg ezt a folyamatot újra és újra és újra, lenézett minden ponton, hogy ha Mike Smith a a kérdéses oldalt. 

Most, ha én ezt a jogot, végül én magam csak egy oldal, amely Mike Smith , ha ő valóban a telefonkönyvben. Persze, tudtam, soha nem hívja Mike újra. De a lényeg az, hogy ha elkezdtük 1000 oldal, az első algoritmus, fordítsa az oldalt, talán 1000 times-- határozottan kevésbé, mert S nevet és nem Z-ig név, hanem több mint 1000 oldal potenciálisan. 

Másodszor algoritmus, annál jobb. 500 oldal. Harmadszor algoritmus, bár, hány lépés lenne az hogy osztja a 1000 oldal telefonkönyv félbe, mint ez? 10 ide vagy oda. Tehát csak essek át az telefonkönyv, búvárkodás és hódító, hogy úgy mondjam, 10-szer, teszem azt utamat le, hogy csak egyetlen oldalt. 

És így tudjuk megragadni ezt az intuíciót most egy kicsit grafikusan ha csak úgy ez szuper egyszerű gráf. Mi vagyunk az x-tengely, vagy vízszintes tengely, a mérete a probléma, Az oldalak számát a telefonkönyvben. És számítógépes szakemberek általában szeretném felhívni akkora, mint egy probléma n, ahol n csak néhány változó represents-- ebben case-- oldalak számát. 

A függőleges, vagy Y-tengelyen, itt van lesz az idő, hogy megoldja, Lehet, hogy az oldalszámot fordulat, Lehet, hogy a másodpercek száma vagy perc, bármi a mértékegység. És ez a piros vonal jelenti az első algoritmus, mert van egy 1-1 közötti kapcsolat szám Az oldalak és mennyi időt vesz igénybe. 

Ha Verizon megduplázza száma oldalakat a telefonkönyvben a következő évben, a futás time-- a végrehajtásához szükséges időt az első algorithm-- megduplázza a legrosszabb esetben. De a második algoritmus, ahol én essek két, kevesebb idő Egy adott méretű probléma. Tehát, ha én ezt a sok oldalak itt-- értesítés hogy a sárga vonal javasolja, kevesebb időt, hogy megoldja. És valóban, az általa képviselt, azt fogjuk mondani, n két. 

De mi az alakja a harmadik és végső görbe fog kinézni? Igen, ez valóban fog Nézd! I Nem tudom, mit fog mondani. De lássuk, mi akartál mondani. 

Közönség: Így. 

David J. MALAN: Meg fog kinézni ez egy logaritmikus slope-- exactly-- amelynek van ez a furcsa lejtőn. Ez már nem egy egyenes vonal. És mi vonzó arról, hogy annak ellenére, hogy a grafikon most vágva, lehet extrapolálni a baj, hogy ez a zöld vonal nem növekedni fog magasság, hogy sok minden ahogy haladsz előre le, hogy a vízszintes tengely. 

Sőt, a Verizon, a Például, megduplázódhat az oldalak számát, a telefon könyv között az idei és a következő év 1000 és 2000 oldal, de nem nagy ügy. Ezzel a harmadik és egyben utolsó, van egy intuitív algoritmus Az osztódó és hódító. Ez fog telni, hogy sokkal több lépéseket a következő évben, hogy talál valakit Mike Smith? 

Közönség: Egy. 

David J. MALAN: Csak egy. És ők is négyszeresére, ez az fog telni, csak két lépésben és így tovább. És ez bizonyíték arra, hogy csak hogy néhány gondos tervezés és néhány elismerést, amit a bemenet képes még jobb. Most már csal a kicsit abban az értelemben, hogy mi kihasználva egy feltételezés. Mi a feltételezés a mi telefonkönyv amely lehetővé tette számomra, hogy ossza meg és uralkodj ebben intuitív, és még mindig a helyes út? 

KÖZÖNSÉG: [nem hallható] David J. MALAN: Igen. Így elrendelte. Ezt betűrendbe által A telefonkönyv társaság. Ha ez véletlen sorrendben, hogy lenne egy pokoli telefonkönyv, de ez biztosan nem alkalmas arra, hogy az algoritmus Én, mert akkor soha nem csak úgy történnek szerte Mike Smith ha folyamatosan osztjuk fél, hogy így véletlenül. 

Úgyhogy most hivatalossá Mi egyértelműen intuitív. Tehát valami úgynevezett pszeudokódja ahol mi kezdődik néhány kezdeti problémák. És ez egy általános leírási módja egy algoritmus, vagy egy számítógépes programot, nem a C vagy C ++, vagy Java, vagy konkrét nyelv, de csak a angol, a amely minden emberi lehet ismerős. 

És lehet, hogy írni a pszeudokód ezt a problémát a következők szerint. Első lépés, vedd fel a telefonkönyvet. Második lépés, nyitott a közepén telefonkönyv. A harmadik lépés, nézd meg a neveket. Negyedik lépés, ha Smith között names-- 

És most ez egy érdekes konstrukció. Ez egy döntési pont. Ez egy villát az úton, ha majd egy ág, hogy úgy mondjam. Úgyhogy behúzni csak a konvenció step-- nem five-- amely a mondjuk, hívom Mike. Tehát ez a behúzás, teljesen önkényes emberi konvenció, de egyszerűen azt jelentette, hogy közvetíteni szemantikailag hogy ha Smith között nevek, akkor hívjanak Mike. 

Közben lépésben hat, értesítés hogy a behúzás elment. Tehát van még a másik villát a út, a másik út talán utazni. Tehát, még ha Smith korábban a könyv, mi a a következő lépés valószínűleg lesz itt? Közönség: Menj a bal oldalon. David J. MALAN: Igen, így megy a bal fele a telefonkönyv. Dobd el a jobb fele, ha Smith korábban a könyvben. Annyira nyitott, hogy a közepén a bal fele a könyv. 

Majd lépésről nyolc, megy a sorban három. És ez a furcsa hurok vagyok indukáló, rekurzív hogy úgy mondjam. De még az, hogy a jövőben. 

Én a saját azonos algoritmus, én ugyanaz pszeudokódja, megoldani ugyanazt a problémát újra mert az egyetlen dolog, ami változott a méret a probléma, nem a célom, és nem a személy Keresem. Szóval újra az algoritmus hogy én már definiált. 

Else if Smith később A book-- lehet, hogy találjam nyitott közepéig a jobb felét a könyv. És ismét, menjen a sorban három. Else-- mi az utolsó sor ez a program lesz? Ha ő nem tartozik a nevét az oldalon vagyok az, ha nem korábban a könyvet, és ő nem később a könyvben, mit tudom én Igaz, Mike Smith most? Közönség: Ő nem az a könyv. David J. MALAN: Ő nem az a könyv. Tehát a legjobb, amit tehetek, hogy csak add fel, és ne ezt a programot. Rendben. Tehát ezen a ponton, vessünk egy gyors túra néhány, amit vár. És valóban, én csatlakozott ide számos CS50 személyzet. Ha ezek az emberek is mind velem itt a színpadon. 

[Taps] 

Ne feledd, hogy ez csak egy részhalmaza CS50 személyzet, óta minden évben már közel 100 dolgozót tagok szerepe természetesen asszisztensek, tanítási fickók, és így tovább. Gyere fel. Így fog csatlakozni hozzánk itt ügyetlenül egy pillanatra mint mi, hogy a forgószél túra amit meg kell várni, itt a kurzus. 

Tehát az első és legfontosabb, van SAT / UNS mint az osztályozó opció során. Ez azt jelenti, szándékosan hogy egy lehetőséget, amely ha egy kicsit nyugtalan az, hogy a tanfolyam, és akkor félelem failure-- még ha őszintén szólva nem azt jelenti, fáj a GPA, kapok egy B, és nem A-- hogy pontosan mi, természetesen a gateway Természetesen, mint a CS50 és egyéb bevezető tanfolyamok, Ebbe a kategóriába tartoznak az opció azt jelenti, hogy. 

Szívből ösztönözni students-- különösen ha a fence-- kezdeni a Természetesen SAT / UNS, még marad SAT / UNS. De akkor biztosan váltani egy levél fokozat az ötödik hétfőn a távon. 

Őszintén szólva, mikor még volt egy újonc 1995-ben, Én magam nem is veszi CS50 mert én nem kaptam fel az ideg hogy valóban lépést gyalog az osztályteremben. Úgy tűnt, a domain túl ismeretlen számomra, és tényleg csak azok számára, barátom, őszintén szólva, aki már a programozási mivel ezek hat vagy talán 10 éves. És csak azért, mert én voltam tudja, hogy CS50 az én időmben Az ekvivalens változata SAT / UNS-- megfelel / nem felel vissza a day-- hogy még vettem 50. És valahogy, vagy más, én vagyok itt megint veled ma. 

Most közben mi mást kell szem előtt tartani 50 egyidejű beiratkozás. Ellentétben a pletykák, hogy lehet, hogy hallott, lehet, sőt, egyszerre beiratkozik a CS50 és egy másik osztály megfelel az azonos vagy néhány egymást átfedő időben CS50 előadásain itt. Lásd a tananyag az adatok az azok végrehajtására. 

Előadások, közben, ellentétben Mi hivatalosan a katalógusban, általában csak találkoznak csak egy órára. Alkalmanként lehet futtatni egy kicsit hosszú. De ne feledje, hogy a cél CS50 előadások az, hogy az Ön számára fogalmi áttekintést, remélhetőleg néhány tüntetések, talán még néhány ajándékot, Az, hogy mi vár a A hét következik. 

És így előadások, fogjuk felfedezni azok a témák és példák együtt, így a hallgatók a színpadra, és személyzet a színpadon, amilyen gyakran csak lehet, csak egy pár órát hetente. Szakaszok, eközben lesz által ezek az emberek itt-- sok Ezek tanítás fickók, néhány Ezek természetesen assistants-- akarat történhet hetente. 

És mi a kulcs, hogy szem előtt, hogy mi Ne lesz-- nem ellentétben First Éjszaka, a zene class-- különböző zeneszámokat szakaszok a diákok kevésbé kényelmes, több kényelmes, és valahol a kettő között. És őszintén szólva, tudod, ha akkor kevésbé kényelmes. És akkor valószínűleg tudja, ha te vagy kényelmesebb. És ha nem is biztos, akkor definíció szerint valahol a kettő között. Tehát, ha eljön az ideje, hogy rész Egy hét múlva, egy a tanterv, fogjuk kérni, hogy a kérdést. És akkor saját válassza alapú a saját komfort és legyen students-- legyen zöld dots-- hasonló komfort az Ön számára. 

Közben van probléma meghatározza, amely végső soron meghatározni a tapasztalat ezen a kurzuson. Ők kínálják jellemzően több kiadást ért meg. A Standard Edition, hogy mi várható a legtöbb minden hallgató a kurzus, hogy kezeljék hanem egy úgynevezett hacker kiadás hogy nem nyújt formája külön hitel nyíltan de tényleg a kérkedés jogok mondani, hogy kipróbált és foglalkozni A tanfolyam hacker kiadásban az megközelítés a hasonló anyagi hanem egy sokkal kifinomultabb szög. 

Amit kínálunk az standard változat, az, Ismét egy szuper többség a diákok, nem csak gyalog-átvezetéseket, melyek videók által vezetett tanfolyam munkatársai hogy valóban végigvezeti a Természetesen a problémák és a lehetséges tervezési megvalósítások. És mi is, miután a Tény, hogy kínálnak postmortems, ahol, ha kíváncsiak vagytok, hogy hogyan tudta volna vagy kellett volna megoldani, néhány probléma, a nevelőtestület végigvezeti azok a video is. 

Eközben mi vár is vannak öt kései nap, és az a tény, hogy csökken a legkisebb probléma beállított pontszámot. Azt biztosan értékelik, hogy cserébe a terhelés, amely 50 elvár Az, az élet az utamba Néha, ha nem öt alkalommal. És így ez nyújt Ön egy kis rugalmasság, kitolja a határidőt, mondjuk, a Csütörtök délben a péntek délben. Lásd a tanterv a végrehajtásának részleteit tartalmazza. 

Most mi most vár? És ez csak a bekövetkezett most nekem, hogy milyen hosszú Én magam srácok itt állok a színpadon. 

[Nevetés] 

David J. MALAN: De mi lesz a az éghajlati Befejezés előtt hosszú. Szóval, mi vár szempontjából A probléma készletek? Nos, talán a teaser, amit minden tavaly az Ön elődei. Az első probléma készlet Tavaly bevezették Scratch, grafikus programozási nyelv, amely segítségével programozni szó szerint húzással puzzle darabkái, mint ezek, amelyek emlékeztet a konstrukciók fogja látni csak egy hét Ezért, ha váltani a hagyományos nyelv, ismert, mint a C. 

A tavalyi évben folytatódott hogy ezt a problémát meg, beleértve a kriptográfia, a kódolási információ tartani az állami vagy a barátok " szeme, hogy nem akarja látni. Kódolt, itt van egy üzenet, hogy hamarosan meg képes lesz dekódolni vagy de-tülekedés. 

Breakout volt a probléma be az elmúlt évben, amelyben használja ezeket az új talált programozás készségek ténylegesen alkalmazni a játék wherein-- ahogy Talán emlékszik rá az childhood-- A cél az volt, hogy beüt a téglák, melyek tetején a képernyő itt felhalmozódó pontszám az út mentén, és végrehajtási saját algoritmusok amellyel ez a megoldás végül lehetővé teszi, hogy a játék. Közben, később a félév, adunk a szótár 143.091 angol szavak. És akkor lehet megtámadni, írni egy programot, amely helyesírás ellenőrzés, okmányok, betöltése, hogy sok szót a memóriába a lehető leghatékonyabban. Általában ragya ellen osztálytársai Ha úgy dönt, hogy egy kicsit kihívás ranglistán hogy ki tudja használni a legkevesebb másodperc működési idő, és a legkevesebb megabájt memória, és valóban finom hangolás a programokat hogy hihetetlenül erőforrás-hatékony nem éppen időben. 

Az elmúlt évben is, néztük a végén A félév a webes programozás. És valóban, mi nem, hogy újra ezt év több probléma készletek, vezet be, hogy a technika és a a gondolkodásmód, amellyel akkor lehet alkalmazni, ezek a programozási ismeretek weboldalak, dinamikus weboldalak, weboldalak, amelyek valóban megoldani problémák és másképp viselkednek és nem csak statikus oldalak statikus információkat. 

Az utolsó projekt végül határozza meg, mégis, a csúcspontja a kurzus a diákok, ahol a akkor lehet megtámadni, hogy hajtsák végre leginkább semmit az érdeklődés neked, mindaddig, amíg azt valahogy merít a tanfolyam tanulságokat. 

És ahogy láttam a videó elején, fogjuk kötni a félévben a CS50 Hackathon, amely, ha ismeretlen, kezdődik 07:00 egy éjszaka véget 07:00 a következő reggel. Körülbelül 09:00, majd rend első vacsora. Körülbelül 01:00, majd rend második vacsora. És ha még mindig állt 5:00, mi majd shuttle busszal a IHOP reggelire. 

A CS50 Fair, eközben egy olyan esemény amelyre 2000 plusz kar, a diákok, és munkatársak számára mind Campus jönnek, hogy a teljesítmények során, és a végső projektek és alkotások hogy hozzon létre a laptopok, asztali, vagy talán még izzók. 

Eközben munkaidőben és a tartószerkezet. És most ez lett volna a jobb alkalom, hogy Önnek az egészet. 

Fogadóóra kerül sor négy éjszakára hetente több órán át minden éjjel általában a 20 és 30, a Természetesen a személyzet szolgálatban egyszerre hogy az Ön számára meghitt egy-egy lehetőséget a támogatás A kurzus probléma készletek. Tutori is lesz rendelkezésre álló, különösen a diákok kevésbé comfortable-- vagy merem mondani, legalábbis comfortable-- kinek munkaidőben nem a legtöbb tápláló környezet és biztosan nem a legtöbb stressz-mentes. Különösen akkor, ha a határidőket megnyomja, mi proaktív módon van pár magunkat egy tagja a személyzet dolgozni egyes, menetrend, az igényeknek megfelelően és a menetrend lehetővé teszi. 

És a személyzet. Engedjék meg, hogy bemutassam Davon, Rob, és Gabriel, az idei feje. Ha minden szeretne mondanak: 

[Taps] --a szó. [Taps] Davon itt van a tanfolyam vezetője, amely azt jelenti, az ő teljes munkaidőben szerep ő segít a végrehajtás és logisztikai CS50. Davon: Igen, szia, srácok. Majd meglátod, nagyon sokat jelent nekem a munkaidő. Fogok tanítani szakaszok. És ha lőni maileket előre, Majd talán reagál. Szóval találkozunk sok van minden félévben. És üdvözöljük a CS50. 

David J. MALAN: És most Gabriel, aki maga is csak egy újonc tavaly, de az elmúlt pár évben óta működik a saját verzióját CS50 Brazíliában, ahol ő le az összes tanfolyam content-- ami egyértelműen lenni filmre és elhelyezni online-- hogy tudta lefordítani a Portugál, majd tanítani több mint 100 az osztálytársai felett során egy pár évig, tanítás az ő anyanyelvén a tanfolyam tanterv. 

GABRIEL: Hello. 

[Taps] GABRIEL: Szia, én vagyok Gabriel. Én vagyok a vezetője TF a kurzus. És remélem, tetszeni fog CS50. Ez CS50. 

David J. MALAN: Most Rob. Ó, akarsz bevezetés? 

Ebből: Nem, én nem tudom. [Nevetés] David J. MALAN És Rob Boden. [Nevetés] ROB: Szia, én vagyok Rob. Ez az én ötödik év részt vett a tanfolyam. Minden évben, ez csak egy jobb és jobb osztály, így vagytok egyértelműen lesz félelmetes. Remélem, minden szórakozni vele. Fogok szórakozni vele. Így találkozunk. 

David J. MALAN És idő nem teszi lehetővé minket-- 

[Taps] 

Az idő nem teszi lehetővé számunkra, bemutatni mindenkinek a színpadon és minden kollégáik akik vásárolni osztályok ma. De engedje meg, hogy bemutassam Belinda és CS50 Puzzle Nap, ami vár ez jövő szombaton, ami az első a Természetesen a nagyszabású eseményeket. 

Ez különösen azt jelenti, kalapács haza a pontot hogy a számítógép-tudomány végső soron nem a programozás, hanem inkább a problémamegoldás általában. És puzzle nap, mint majd látni, viszi és az osztálytársaival together-- reméljük, most szombaton. 

BELINDA: OK. Sziasztok. Szóval köszönöm. Úgy, mint a mi jeles kapitány azt mondta, a nevem Belinda. Én egy másodéves Quincy House. 

Én, akárcsak ti, volt CS50 tavaly, nagyon tetszett. Nekem van egy puha helyet a srácok a harmadik sorban. És büszke vagyok, hogy mondjam, én vagyok most egy elkötelezett kapcsolatban A CS50 [nem hallható]. OK. Ez volt a béna változata egy vicc. 

Különben is, így haladunk tovább, Csak szerettem volna meghívni srácok mind az I-lab, vagy HBS csalánkiütés. Mi lesz, amelynek Puzzle nap 12:00-03:00. És ez egy nagyszerű lehetőség, srácok, hogy megfeleljen a többi CS barátok, megoldani néhány nem-CS rejtvények, mint a kapitány említett, és egyen egy kis ingyen étel, keresni néhány félelmetes díjat, mint ajándék kártyák, $ 75 személyenként, és also-- mi volt ez? Wii U, vagy valami? Wii U? Igen. A mi tombola. Félelmetes. Szóval maradok óra után. És ha a srácok bármilyen kérdés, szólj. 

David J. MALAN És meglátod, túl ez nincs semmi köze a mai. Az első probléma beállítása kialszik péntek. De hogy nekünk haza ma, szeretnék be, hogy kifejezetten egy több a személyzet tagja, Colton Ogden, akinek a keze már védett felett Önnek MIDI vezérlő kalapács haza a pontot tovább hogy a számítógép-tudomány, is, van alkalmazhatóság messze mérnöki és a szár és a számítástechnika is, kiterjesztése még az ilyen területeken a zene. 

Colton kedvesen offered-- azt hittem, egyikük fogja rögzíteni a fókuszt. Andrew, ha meg tudnánk hívni fókusz itt egy pillanatra. 

Mi Colton tett előre a programban ez a készülék, ez a pad gombok hogy látod a képen itt, MIDI vezérlő, amelynek minden egyes ilyen gombok van bekötve, hogy egy adott zenei hang vagy a hang, általában a felvétel, úgy, hogy a játék minták ezek gombok, ugyanúgy, mint minták bit, képviselhet más magasabb szintű fogalmak. Képes lesz végül hogy minket haza ma? Minden további nélkül, ha a tudtuk homályos a fények, és kapcsolja be a képernyő mögött Colton. 

Közönség: Woo! 

David J. MALAN: Ez CS50. 

[Zenelejátszás] 

[Taps] 

Ez az a CS50. Látni fogjuk, hogy péntek. Néhány sütemény várja a kereszthajó. 

[Zenelejátszás]