[Predvajanje glasbe] 

[APLAVZ] 

DAVID J. Malan: To je CS50, Uvedba Harvard University do intelektualne podjetja računalništva in umetnost programiranja. Zdaj, če ste med tistimi, ki Vsako leto se sedi tukaj z malo živcev v tvoji glavi, kot da misliš, da ne spadaš sem, misliš, da je večina kdo sedi okoli vas ve veliko več kot ti, je res bolj udobno kot ti na računalniku znanost ali računalniki bolj splošno, zavedati da 78% študentov, ki so zdaj da CS50 nimajo predhodnih izkušenj. 

Dejansko pa je 100 pik ni na zaslonu, ki 78 so sveti zeleno, kar pomeni, da vam, če ste med tem demografske, so v zelo dobri družbi tukaj ven. In če ste namesto med 22% CS50 študentov, ki bi dejansko imajo predhodne izkušnje, bodisi v visoka šola ali kakšen drug program Zavedam se, da vas bo tudi mogoče izpodbijati v teku. 

Ne samo, da imamo različne skladbe za študente manj udoben in bolj udobno podobni v oddelkih, smo Prav tako so ti hekerjev izdaj najbolj problem določa, da bo izziv te študente s tem dodatnih izkušenj raziskati podoben material ampak iz več prefinjen perspektiva. 

Toda kaj je računalništvo? No, na koncu, kaj se dogaja, da glede na to, kot ste raziskati to področje ni Toliko, kjer boste na koncu v primerjavi s sošolci, ampak, ko ste sami znašli v 12. teden v primerjavi, kjer ste začeli tukaj v nič teden. Sedaj računalnik science-- dobro, kaj je pravijo znanost computation-- kjer je računanje res samo fancy način rekel, ob nekaj vhod, proizvede nekaj izhod, in tem, ki jih vozijo algoritmov, kompleti navodila za reševanje nekateri problem za te vložke da bi proizvedli neko proizvodnjo ali rešitev, ki vas zanima. 

Tako smo pred kratkim imeli priložnost za potovanje iz v Kalifornijo, da izpolnjujejo z alumna. Njeno ime je Susan Wojcicki. In bi rada, da govorijo da si tukaj na video pričajo, kako se uporablja celo samo okus računalnika znanost na uvodni ravni lahko. Tudi če ne boste šli na opravljanje računalništva kot področje, ali celo inženiring, ali STEM bolj splošno, boste videli, v resnici, kako nekateri Seveda tako vplivali svoje življenje. In ona ga šele, ko se je ona je bil višji tukaj na Harvardu. 

Če bi lahko zatemnite za Susan. SUSAN Wójcicki: Pozdravljen, svet. Jaz sem Susan Wojcicki. Jaz sem predsednik uprave YouTube. In sem CS50, ko sem bil višji na Harvardu leta 1990. Bil sem pravzaprav zgodovina in literature velik. 

In moj junior poletje, Spoznal sem, da morda sem želeli, da se naučijo nekaj o računalnikih. In tako sem se vrnil. Vzel sem CS50. Težko je, vendar je bilo Najbolj neverjetno razreda sem. 

Je spremenila, kako mislim o vsem. In ko sem diplomiral na Harvardu Leta 1990 sem odšel v Silicijevi dolini. In sem dobil službo. In sem delal V tech, odkar. DAVID J. Malan: Zdaj kaj Susan ni omenil v tem videu, da je bilo dejansko v njej garaža, da je Google sam Larry in Sergey utemeljen. 

Zdaj smo tudi dosegel, da naše prijatelje na code.org, organizacije, ki V preteklem letu je bilo pridobivanje ljudi, zlasti navdušen računalništva in programiranje, zlasti. Vendar je treba omeniti, da se načrtovanje ni računalniško znanost sama po sebi. Računalništvo ni programiranje. Namesto programiranje je samo tool-- s katerimi vsemi vami bo vse preveč dobro seznanjeni z end-- semester tako, da jih lahko uporabljajo ne samo da bi prihodnje tečaji v CS ampak na kakršenkoli področjih, od koder pridete v humanistiki, družbene vede, naravna znanost ali podobno. 

Dejansko, dovolite nekaj drugih alumni in njihovi sodelavci govoriti uporabnosti polja, ki čaka. 

Bill Gates: sem bila 13, ko sem Prvi nimajo dostopa do računalnika. 

JACK DORSEY: Moji starši Kupil mi Macintosh leta 1984 ko sem bil osem let star. 

Mark Zuckerberg: Bil sem v šestem razredu. 

ZVOČNIK 1: naučil sem kodo na fakulteti. 

Ruchi SANGHVI: Freshman leto, prva semester, Uvod v računalništvo. 

Bill Gates: sem napisal program da je igral križce in krožce. 

DREW HOUSTON: Mislim, da je zelo skromnih začetkov. Mislim, da prvi program Napisal sem vprašal stvari, kot so, kakšna je tvoja najljubša barva? Ali koliko si star? ELENA SILENOK: Najprej sem se naučil kako narediti zelen krog in rdeči kvadrat prikaže na zaslonu. Gabe NEWELL: prvi čas, pravzaprav sem imel Nekaj ​​prišel in rekel, zdravo, svet. In sem računalnik storiti. Bilo je samo presenetljivo. 

Mark Zuckerberg: Učenje, kako programu ni začnete z željo, da se naučijo vse računalništva ali poskuša, da bi obvladali to discipline ali kaj podobnega. To šele začelo, ker I želeli, da to stori eno preprosto stvar. Želel sem narediti nekaj, je bilo zabavno za mene in moje sestre. 

In sem napisal tale program. In potem v bistvu samo dodamo malo za njo. In potem, ko sem potreboval da se naučijo nekaj novega, Sem ga pogledal, bodisi v knjigo ali na internetu, in nato dodamo malo za njo. 

DREW HOUSTON: To je res ni v nasprotju igranje instrumenta ali kaj ali igranje šport. DAVID J. Malan: Dobro. Torej nam pustite zdaj dejansko potopite malo globlje. Kaj so ti vhodi in izhodi da govorimo o tukaj? 

Torej, kaj pa nekaj preprostega? Vi verjetno veste, tudi če imate no poznavanje računalništva nje, da računalniki nekako uporabiti in razume le ničel in enic. Ampak, kako je to mogoče dati, kako veliko današnjih namiznih in prenosnih računalnikov podobni lahko storite? 

DNA dan, samo alphabet, da razumejo je nič ali ena. No, da je to. Mi, ljudje, nagnjeni k uporabi decimalnega sistema. "December", kar pomeni 10. In to je 10, ker imamo 10 številk, od 0 do devet. 

Zdaj računalniki, nasprotno, nagibajo k uporabi binarno. "Bi", kar pomeni dva. Torej so ponavadi samo nič in eno za uporabo. Ampak se je izkazalo, da je tudi samo ničle in enic, da je dovolj velik abeceda s katerimi bi predstavljajo najbolj katerikoli podatek, ki ga želite, ali je to številka, ali je to pismo, ali je to grafično ali video na zaslonu. 

Razmislite, na primer, kako smo ljudje, interpretirajo to številko tukaj. To je le tri številke, ena, dva, tri. Vemo pa to številko prirojeno zdaj kot 123. Ampak zakaj je to? 

No, če misliš nazaj da morda razredu šole, boste verjetno naučili razmišljati o Te številke so pa v stolpcih, če je eden na sto mesto, dve je v več deset mestu, in tri v tisti mestu. Zakaj je to dejansko uporabna? No, pomislite super preprosta aritmetična da smo bili vsi delal za let. Učinkovito, če imaš ena na stotine mestu, vam hitro math 100 krat 1 plus 10-krat 2-- ker sta se v več deset lokal je-- plus 1 krat 3-- ker tri je tisti mestu. Torej, seveda, če želimo dejansko množijo tole, kaj smo v resnici predstavlja s tem pattern-- eno dva three-- je 100 plus 20 plus 3, ki je, seveda, je 123. 

Zdaj binarna in računalniki res, bistveno govorijo isti jezik da storimo. Imajo samo manjši abecedo. Torej računalniki imajo samo ničle in tisti, ki so jim na razpolago. Torej, ker so v bistvu smo ljudje Pooblastila 10 v vsaki od teh places-- 10 na nič, 10 na eno, deset za dve osebi, ki vam daje 110 in 100 oz. 

Ker računalniki imajo le dve vrednosti jih lahko razumemo, nič in ena, morajo uporabiti različne vrednosti v teh stolpcih, ena, dva, štiri. In če bo ohranil, osem, 16, 32, 64, in tako naprej. Ampak vzorec in mentaliteta je povsem enako. 

Torej po tej logiki, kdorkoli, kako bi Grem pa predstavlja število eno v binarno? Če še nikoli niste niti pomislili prej, kaj vaš gut rekel? 

OBČINSTVO: One. DAVID J. Malan: One. Točno tako. Pravkar smo potrebovali eno v posameznikova mesto, ker ničel zadostuje, da bi se nam ne štiri ali dve. Torej, en krat ena enaka ena. Zdaj se stvari malo zanimivo. Če želim, da zastopa v binarno število Druga stvar, ampak, še enkrat, tudi če ste nikoli Pred govorijo ta jezik, kako jih predstavljamo v binarno da smo ljudje vrednosti poznamo kot dvema? Nič od nič. Samo dal eno v stolpec, ki ga želite. 

Zdaj pa postaja precej enostavno verjetno zdaj. Torej, če želim, da zastopa three-- je stolpec Nobena tri stranke. Torej, še enkrat, sem lahko zdaj dodate te vrednote skupaj z uvedbo enega tukaj. Torej 2-krat 1 plus 1 krat 1 je, seveda, 3. 

Zdaj se stvari malo zabave v da tisti, ki je sedaj postal ničle. In predstavljajo štiri, sem dobil to. In če smo prirastek počasi tu--, da bi bilo pet. To bi bilo šest. To bi bilo sedem. 

Zdaj pa se zdi, da ima naletijo na problem. Kako bi šel približno zastopajo eight-- bo naslednja vrednost. Ja, zato potrebujemo novo bitov. In, seveda, če ste slišal te besede, bitov, ki je samo za kratek binarna števka, nič ali ena. 

In tako sem se zgodi, da se predstavljajo le tri takšne bitov tukaj. Ampak, če sem imel način skladiščenja ne tri različne bitov, ampak štiri, Zagotovo sem lahko predstavljajo osem, nato pa devet, in nato 10, in še višje in višje. 

Ampak da pokliče na vprašanje, kako lahko iti okoli predstavljajo ti stvari na prvem mestu. To je ena stvar, da pripravi jim tukaj na slide up, ampak kako si jih predstavljajo če ste mehansko napravo? Kaj je računalnik počne predstavljajo vhode in izhode, ki bistveno opredeljujejo izračun na koncu dneva? 

No, kaj o nečem super enostavno, kot je ta? To je samo žarnica. In to lahko sproži žarnica, da gredo na z vrtenjem nekaj elektrike na in omogočajo elektroni teče skozi, kar spremeni njeno država ali njena vrednost, tako rekoč. Na primer, to je desk lamp old school tu z eno tako žarnica znotraj njega. In zdaj je ni res počel kaj koristnega. Toda takoj, ko sem jo priključite v električno vtičnico in potem uporabite to switch-- ali bomo lahko tudi imenujemo tranzistor ali pomislite, da je such-- Zdaj lahko predstavljajo bodisi ta vrednost, kadar žarnica je očitno off, ali je ta vrednost. Ta vrednost ali to vrednost. Ta vrednost in tako naprej. 

Tako znotraj računalnika, domnevno so veliko manjši kosi strojne opreme, vendar so na koncu dneva so preprosto uporabiti electricity-- morda ujeti tem-- in potem vodi nekaj ali da nekaj off. Seveda, to ni posebej zanimivo narediti s samo eno žarnico. 

V bistvu, kako visoko lahko štejem v binarno s to namizno svetilko tukaj? 

OBČINSTVO: One. 

DAVID J. Malan: Ena, kajne? Rabim več svetilk mizo, če sem dejansko želijo, da računajo višje. Vendar pa lahko storimo bolje. Ker žarnice, ki smo pripravili v teh stvareh dejansko luksuznih žarnice od minulih dni bi dovolil. In oni so dejansko mrežno žarnice. In grozde podjetij da te stvari v teh dneh. 

Vendar se je izkazalo, da je ta zlasti opremljen s funkcijo, s katerim lahko spremenite svoje barve. Torej za primer, če ste krasijo vaš študentski sobi z nekaj teh luči žarnice, glede na vaše razpoloženje, odvisno od tega, kdo prihaja v, odvisno od vremena, odvisno od časa dneva, lahko dejansko spremembo barve žarnice v svoji sobi. In to zato, ker te luči čebulice in drugi, kot ji še kaj imenovane API, vloga programski vmesnik, ki je tema, s katero se boste dobro seznanjeni z do konca semester. 

In to je samo domišljija, skrivnosten način rekel, lahko programirate te svetlobe žarnice, da opravljate svoje ponudbe. Lahko jim pošiljate sporočila tako kot ti, človek, lahko pošljete sporočilo na spletni strežnik rekel, da mi današnje novice ali daj mi svoj email. 

Lahko pošljete več Skrivnosten sporočil, da teh žarnic reči, vklop in izklop. Ampak to še ni vse, da je zanimivo. Lahko rečemo, vklopite rdeče, vklopi zelena, vklopite modra, vse z istim žarnico. In lahko celo z nekoliko bolj zdrava pamet, pravijo, obrnite se na blue ko je mračno dan zunaj, na primer. To lahko dejansko pripopava vreme API in izvedeli kaj je vreme, ali čas dneva ali drugih tovrstnih sprožilcev. 

Torej, v resnici, dva Lastna uslužbenci CS50 je, Dan Bradley in Ansel Duff tukaj, prosimo, nabavljeno nam cel kup teh žarnic. In so zgradili CS50-jev Prve kdaj binarnih čebulice, kjer smo zastopali tu-- s temi igrivo malo magnets-- različne ograde smo Omenil bi samo malo nazaj. 

Torej, tako kot je tu posameznikova mesto, dva, štiri. In nismo videli več kot to. Ampak, seveda, oni so pooblastila dva. Osem, 16, 32, 64 in 128. Torej, če jaz zdaj želim biti malo Ljubitelj kot če bi uporabili to staro šolo stikalo, Tukaj imam na tej iPad super preprost vmesnik da Dan Bradley, nekdanji študent in zdaj asistent, programed uporabo nekaterih HTML in JavaScript, ki so markup in programiranje jeziki oz. In lahko verjetno vidimo-- tudi v nazaj-- tam je velik plus in velik minus, plus en gumb za vsako od teh žarnic. In kaj se to dogaja, da mi dovolite, da se je, na primer, kliknite znak plus in zdaj predstavljajo od Seveda, kaj več? One. In to lahko še enkrat udaril. Dve. Tri. Four. Pet. Six. Seven. 

In tu smo dobili, da prevračanjem, vendar imamo še četrto malo tokrat, tako da zdaj imamo osem. Tako da bi lahko to naredili že kar nekaj časa. V bistvu, kot sedmih, kako visoko smo lahko računali? Kdorkoli? 

OBČINSTVO: 255. 

DAVID J. Malan: 255, kajne? Ne skrbite preveč o matematiki za zdaj, ampak to je precej dostojno številko. Vendar dejansko ne zavezuje samo koliko kosov informacij, kot pismo ali grafiko da bi jih zastopamo. 

Ampak ne glede na to, za zdaj. Jaz grem naprej in jih vse izklopite. In če bi lahko, bi rad vprašal za prostovoljec, naš prvi volunteer-- oh, hello-- na odru. Ulov je, da moraš biti udobno se pojavljajo, kot ti je jasno so pred vsemi sošolci, kot tudi na internetu. In mi pogledati malo dlje za-- Kaj pa tukaj v beli srajci? In roko gor. Pridi gor. Kako ti je ime? 

OBČINSTVO: Jackie. 

DAVID J. Malan: Jackie. Jackie, pridi gor. Torej, kar je tudi v tem iPad je gumb imenovan Game Mode. In to Game Mode dogaja, da mi dovolite, da vložek vnaprej določeno decimalno številka, številke smo ljudje poznajo. In potem vam bo izpodbijala tukaj uporabiti tipke o top-- enega za vsaka od teh bulbs-- dejansko ugotovimo, vzorec žarnic , ki predstavlja številko v vprašanje. 

In žal mi je, kaj je bilo ime? 

OBČINSTVO: Jackie. 

DAVID J. Malan: Jackie. V redu. Lepo, da sva se spoznala. 

Zato naj gredo naprej in program za svet za prikaz številke 15. Bomo obdržati majhno najprej tukaj. In jaz grem v Game Mode. In bom, da določite, nam številko 15. 

OK. In zdaj z vsem watching-- če želite morda stojijo na ta način, ker bo to linijo up-- iti naprej in preklopite osem gumbov vzdolž vrh za vklop žarnice na ali off, kot se vam zdi primerno. 

OBČINSTVO: OK. 

DAVID J. Malan: In ni varanje z hitting plus 15-krat. Oh, bomo storili. 

OBČINSTVO: Oh, počakaj. Tako mi je žal. 

DAVID J. Malan: Lahko tudi vključite Žarnice na posamezno z vsako od teh gumbov na vrhu. OBČINSTVO: Oh, OK. Tako da bi bilo takšen-- DAVID J. Malan: OK. Torej, zdaj imamo osem. Torej, kaj je premor Občinstvo tu se zatakne. Katero število je Jackie Trenutno predstavlja? 11. Torej smo skoraj tam. In odlično. Torej imamo prvo zmagovalca. Čestitam. 

In smo mislili, da bomo imeli nekaj čudovitih darila. Če želite, da je ena taka študentski sobi tukaj na kampusu, lahko sami imeli končni projekt zdaj uporabljajo ta API, zahvaljujoč Jackie. Torej sedaj-- 

[APLAVZ] 

--if smo lahko ena več kot okoli tega. Oh, zdaj vsakdo želi nekaj žarnic. Za tako imenovane hacker izdaji, bomo ga ploščadi je-- oh, ja, neobvezujoče. Mislim, da pridete do sedaj če je tvoja roka se dogaja. Kako ti je ime? 

OBČINSTVO: Alex. DAVID J. Malan: Alex, pridi sem. Torej, za Alex, se bomo Program v nekoliko večjem številu. Morda je v redu. Številka 50. 

OBČINSTVO: OK. DAVID J. Malan: Ampak, kot I rekla-- in morda želim stati tukaj, tako da da so gumbi line up kot bi si expect-- ampak sem to imenujemo izdaja hacker. Tako-- srečno! 

[Smeh] 

Morda ne boste mogli obrniti jim off če ti-- OK. Odlično. Čudovito. Čestitam. 

[APLAVZ] Mislim, da bi morala vplačati. Čestitke Alex tudi. OK. 

Torej končni takeaway tukaj je, upajmo, odkrito povedano, simplicity-- preprostost s katero lahko dobite nekaj lepo svetlobo žarnice, očitno v [neslišno]. Ampak oni predstavljajo, navsezadnje, enake ideje s katero smo mi ljudje že vse preveč seznanjeni. Torej, kaj bi lahko naslednjič korak napredovanja poskuša nekaj storiti Zanimivo s podatki in predstavljajo vložke, ki niso samo številke, vendar so morda črke ali več? 

No, izkazalo se je, da računalniški svet, za več let, preprosto sprejel samovoljno, ampak skladni standard, ki preslika številke s črkami abecede. Na primer, tukaj je odlomek iz tega kartiranja. To se imenuje ASCII. -S-Ci-I-I. In da je preprosto tabela, ki preslika velike črke letters-- v tem case-- za decimalna števila. 

Toda kaj je posledice? No, če ste dejansko želeli predstaviti nekaj takega kot e-pošto ali kakšno besedilo na spletni strani, si seveda želeli pokazati človekovih pisma abeceda, ne številke. Torej, odvisno ozadje programa da uporabnik uporablja, če je spletni brskalnik ali e-poštni odjemalec, številke lahko zagotovo razlagati tako, kot pisem. To se pravi, vzorce bitov lahko enostavno treba razlagati tako črkami. 

In kaj lahko imamo je črka bitje zastopali 65, B so zastopali 66. Torej, če imamo super Skratka beseda, kot hi, kaj bi računalnik na koncu Trgovina na decimalko, ampak res v binarno, uporabo nekaterih zaporedje bitov, vplivno malo električne energije na nek način, bi se ti dve številki 72 in 73. 

Toda vzorec bitov, ki predstavlja te vrednote. Torej, to so torej, kako smo lahko predstavljajo naše vhode in izhode. In je dovolj reči, da lahko narediti bolj kompleksne predstavitve navsezadnje s stvarmi, kot grafika, video posnetke, glasbo in še več kot bomo videli kasneje ta izraz. 

Tako da samo pusti potem algoritmi, ti sklopi navodil, ki smo reševanje konkretnih problemov. Mi gre na vložkov algoritmov. In ti algoritmi se proizvajajo izhodi, upajmo pravilni izhodi in upajmo, da tudi učinkovito zbrali izhode. Z drugimi besedami, to je ena stvar, pravilno izvajati nekaj. To je še ena stvar, za izvajanje nekaj dobro ali učinkovito. 

Na primer, ena predstavitev da smo radi v teku je to ena. Ampak te stvari so dobili vedno težko najti. Ampak to je res old school imenik, znotraj katere so 1000 plus strani Imena in telefonske številke. In če sem hotel pogledati nekdo v tem imeniku, Lahko bi enostavno narediti zelo naiven algoritem. Lahko bi odprla na prvi strani, in Lahko bi začeli iskati, recimo, nekdo imenom Mike Smith. In če ni na prvi stran, sem napredovala na drugo, in nato tretji, in nato na četrti, in tako naprej, dokler nisem končno našli Mike Smith. 

Zdaj pa je, da je algoritem pravilen? 

OBČINSTVO: Ja. 

DAVID J. Malan: Ja. Če je on tam, bom ga na koncu našli. Vendar to verjetno ni zelo učinkovit, zagotovo ne hitro, ker, moj Bog, zakaj sem zapravljam svoj čas flipping skozi vse te strani, ko sem lahko Vsekakor to narediti fizično hitreje? 

No, rahlo optimizacija, tako da govori, morda ne eno stran naenkrat, vendar dve, štiri, šest, osem, 10. Še vedno pravilna? 

OBČINSTVO: Ne 

DAVID J. Malan: Torej ne, če sem za instance preskočite Mike Smith. Ampak tako dolgo, kot sem nazaj pedal ena stran, če ga ustrelijo, Mogoče bi lahko kaj popraviti bi sicer gotcha. 

Vendar je bolje? Je hitrejši? Mislim, ja. To je dobesedno dvakrat hitreje če naredim dve strani hkrati. Torej, če sem prvotno imela 1000 strani, Zdaj moram samo flip 500-krat, ni v celoti 1000 strani, da bi dobili lahko v najslabšem primeru na koncu telefona knjige, kjer je nekdo Like Mike Smith ali nekoga z pozneje ime bi dejansko lahko. 

Ampak, seveda, smo ljudje nikakor niso dogaja, da se delaš, da zagotovo ne na tej točki v naših življenjih. Kaj je smiselno človek bi storili? OBČINSTVO: Pojdi naravnost The9 S-ih. DAVID J. Malan: Pojdi naravnost na S-ih? Kako sem šel naravnost v S-ih? 

OBČINSTVO: Raztrgaj na pol. DAVID J. Malan: No, ni oznake. Torej, ja, če bi bilo res Nalepka ali zavihku lepljiva za S, moramo skočiti tam. Ampak to je precej neškodljiva. Torej, najbolje kar lahko naredim, je v grobem na oddelku S ali morda grobo v sredini. Ampak ključ takeaway sedaj-- in intuicija da ste vzeli za odobri za leti probably-- je, da je tisto, kar vam zdaj vem o tem problemu? 

OBČINSTVO: [neslišno] 

DAVID J. Malan: Mike Smith je zagotovo ni v tem polovici problema ker Smith prihaja po sredini kar je približno oddelek M, da izgleda. Torej, kot ste morda opazili pri Visitas, lahko zdaj dobesedno trgati ta problem na pol. OBČINSTVO: Woo! DAVID J. Malan: To je vedno lažje in lažje. [APLAVZ] Tukaj imaš. [Smeh] In zdaj sem v osnovi imajo isti problem, ampak to je dobesedno pol tako velika. Še vedno iščem Mike Smith. In upam si reči, da še vedno lahko poglej za njega na enak način, Delili problem v polovici Ponovno, solzenje problem spet na pol, kar me zdaj zapusti z problem četrtino velikosti, dramatično vrgel to polovico stran, in ta postopek ponavljamo znova in znova in spet pogledal navzdol na vsaki točki za prikaz če Mike Smith je na stran v vprašanju. 

Zdaj, če jaz to pravico, na koncu se bom najti s samo eno stran, na kateri Mike Smith je, če je to res, v telefonskem imeniku. Seveda, jaz bi Nikoli pokličite Mike znova. Ampak poanta je, da če smo začeli s 1000 stranmi, moj prvi algoritem, flip strani, morda 1000 times-- vsekakor manj, ker je Ime S in ne Z ime, ampak kot več kot 1000 strani, potencialno. 

Drugi algoritem, bolje. 500 strani. Tretji algoritem, čeprav, koliko korakov bi bilo da razdeliti 1000 stran Telefonski imenik na pol, kot je ta? 10, vzemi ali pusti. Torej le z lahkota skozi to telefonski imenik, potapljanje in osvajanje, tako rekoč, 10-krat, bom navzdol na eno samo mesto, stran moj način. 

In tako bomo lahko zajame to intuicijo zdaj malo grafično če si razmisli ta super preprost graf. Mi smo na x-osi ali horizontalno os, je velikost moj problem, število strani v telefonskem imeniku. In računalniški znanstveniki na splošno všeč, da pokličete velikost problema n, kjer n je le neka spremenljivka, ki represents-- v tem case-- število strani. 

Navpično ali y-os, je tukaj bo čas za rešitev, morda število strani zavojev, morda število sekund ali minut, ne glede na tvoja merska enota je. In zato je ta rdeča črta predstavlja prvi algoritem, ker obstaja 00:59 Razmerje med številom strani in koliko časa traja. 

Če Verizon podvoji število strani v telefonskem imeniku v naslednjem letu, moj tek enkrat bom vprašal Čas, potreben za izvedbo da najprej algorithm-- podvoji v najslabšem primeru. Toda drugi algoritem, kjer sem lahkota z dve, zahteva manj časa za saj problem velikost. Torej, če imam to veliko Pages tu-- obvestilo da rumeno črto predlaga, manj časa za reševanje. In res, to pomeni, bomo rekli, n več kot dva. 

Toda kaj je oblika tretji in končno krivulja bo izgledal? Ja, to je res šlo za glej-- I Ne vem, kaj si hotel reči. Ampak poglejmo, kaj si hotel reči. 

OBČINSTVO: Tako. 

DAVID J. Malan: To bo izgledal to, logaritmična slope-- exactly-- s katerim imate to nenavadno pobočju. To ni več ravna črta. In kaj je prepričljiv pa, da je to čeprav je graf zdaj odrezan, lahko ekstrapolirati v vašem moti, da je ta zelena črta ni bo povečanje Višina vse, da je veliko kot boste nadaljevali še naprej po tej horizontalni osi. 

Dejansko, Verizon, za primerka, bi lahko podvojil število strani v telefonu knjiga med letos in prihodnje leto od 1000 do 2000 strani, vendar ni nič takega. S tem je tretji in zadnji, tam je intuitiven algoritem delitve in osvajanja. To se dogaja, da me, koliko več korake v naslednjem letu, da bi našli nekoga, Like Mike Smith? 

OBČINSTVO: One. 

DAVID J. Malan: Obstaja samo ena. In ga lahko štirikrat, to je dogaja, da mi bo le dve več korakov in tako naprej. In tako je to dokaz, da kako nekaj skrbno načrtovanje in nekateri spoštovanje za to, kar tvoji vhodi so lahko še boljši. Zdaj varamo malo v smislu da smo vplivno domnevo. Kaj je moja predpostavka o našem telefonskem imeniku , ki mi je omogočila, da se razdeli in vladaj v tem intuitiven in še pravilen način? 

OBČINSTVO: [neslišno] DAVID J. Malan: Ja. Zato je ukazal. Abecednem redu, da ga je Telefonski imenik podjetje. Če bi bilo v naključnem vrstnem redu, ki bi pekel imeniku, gotovo pa ne bi gre pričakovati, da se algoritem Včasih sem, ker si ne bi nikoli pravkar zgodilo čez Mike Smith Če ste ohranili delitev na pol na ta način po naključju. 

Torej, kaj je zdaj formalizirati kaj je jasno intuitivno. Torej nekaj, kar se imenuje psevdokoda je, če se bomo začeti nekaj naših začetnih težav. In to je splošen način opisovanja algoritem ali računalniški program, ne z uporabo C ali C ++ ali Java, ali specifičnega jezika, vendar samo z uporabo angleščine, z , ki bi lahko vsak človek pozna. 

In bi mi napisali psevdokoda za ta problem, kot sledi. Prvi korak, pick up telefonski imenik. Dva, odprt do sredine imenik korak. Tretji korak, poglej imena. Korak štiri, če Smith je med names-- 

In zdaj je to Zanimiv konstrukt. To je odločitev, točka. To je vilice v cestnem prometu, če vas bo, podružnica, tako rekoč. Torej bom zamakniti samo po dogovoru step-- ne five-- ki je recimo, bom poklical Mike. Torej, ta zareza, popolnoma samovoljno človeški konvencija, vendar je preprosto pomenilo, da semantično posredovati da če Smith je med imeni, potem bi moral poklicati Mike. 

Medtem v koraku šest, obvestila da je zareza več. Torej je še druga vilice v road, druga cesta Jaz bi potovali. Torej else if Smith je prej v knjigi, kar je moj naslednji korak, verjetno, da bo tukaj? OBČINSTVO: Greš na levi strani. DAVID J. Malan: Ja, pojdite na leva polovica imeniku. Mečejo desno polovico, če Smith je že prej v knjigi. Torej odprt sredi leva polovica knjige. 

In potem korak osem, pojdite na linijo tri. In to je radoveden loop sem induciranje, rekurzija tako rekoč. Ampak več o tem v prihodnosti. 

Jaz sem z mojo isti algoritem, moj isto psevdokoda, ponovno reševanje istega problema ker je edina stvar, ki se je spremenilo je velikost problema, ne moj cilj, in ne oseba Iščem. Tako da sem lahko ponovno algoritem da sem že definirana. 

If Smith je kasneje v book-- boste morda guess-- odprta do sredine desna polovica knjige. In še enkrat, pojdite na linijo tri. Else-- kaj je končna linija V tem programu dogaja, da je? Če ni med Imena na strani sem no, če je to v ne prej knjige, in ni ga kasneje v knjigi, kaj vem Zdaj je res o Mike Smith? OBČINSTVO: On ni v knjigi. DAVID J. Malan: On ni v knjigi. Torej, najbolje kar lahko naredim, je le obupajte in ustaviti ta program. V redu. Tako da na tej točki, vzemimo Hiter ogled nekaj, kar čaka. In v resnici, sem tukaj pridružil s številom zaposlenih CS50. Če ti ljudje lahko vse mi pridruži tukaj na odru. 

[APLAVZ] 

Zapomnite si, da je to le podmnožica osebja CS50, saj vsako leto imamo skoraj 100 zaposlenih člani v vlogi pomočnikov seveda, poučevanje štipendistov, in še več. Pridi gor. Tako se nam bodo pridružili tukaj nerodno za trenutek kot smo dali tornado turnejo, kaj morate pričakovati, tukaj v teku. 

Torej, v prvi vrsti, imamo SAT / UNS kot možnost razvrščanja v teku. Ta je mišljen namerno da je možnost katerim če ste malce nelagodno pri čemer je v teku, in ti se bojijo failure-- četudi odkrito neuspeh pomeni boli vaše GPA, pridobivanje B in ne je--, ki je natančno tisto, gotovo za prehod Seveda, kot CS50 in drugo uvodna predavanja, ta možnost razvrščanja je mišljeno, da se omogoči. 

Iskreno spodbujala students-- posebej če na fence-- za začetek Seveda SAT / UNS, čeprav še vedno SAT / UNS. Vendar lahko zagotovo preklopite na pismo razred, ki ga peti ponedeljek v mandatu. 

Iskreno povedano, ko sem je bil novinec v letu 1995, Sam nisem celo CS50 ker nisem dobil pogum dejansko korak peš v razredu. Zdelo se je, domene preveč seznanjeni z mano in res samo za tiste moje prijatelje, odkrito, ki je bil za programiranje saj so bili šestkrat ali pa 10 let star. In to je samo zato, ker sem bil sposobna sprejeti CS50 v moj dan v enakem različici SAT / UNS-- DOBER / SLAB nazaj v dan-- da tudi jaz vzel 50. In tako ali drugače, jaz sem tu z vami danes. 

Zdaj medtem kaj si bi morali imeti v mislih približno 50 je sočasen vpis. V nasprotju z govoricami, da je Morda ste slišali, lahko, v resnici, hkrati vpis v CS50 in drugega razreda, ki izpolnjuje na enak ali prekrivanj Čas kot CS50 predavanj tukaj. Glej učni načrt za navedb za njihovo izvajanje. 

Predavanja, medtem ko je v nasprotju s kaj je uradno v katalogu, bo na splošno le izpolnjevati za samo eno uro. Včasih smo morda teči malo dolgo. Toda ne pozabite, da Cilj v CS50 predavanj je, da vam ponudimo konceptualnega pregleda, upajmo, da nekaj demonstracij, morda celo nekatere darila, kaj za vas pričakuje tednu, ki sledi. 

In tako na predavanjih, bomo raziskati te teme in primeri skupaj, prinaša študentom na odru, in osebje na odru tako pogosto, kot smo lahko, za samo nekaj ur na teden. Oddelki, medtem, bo ki jih ti ljudje tu-- veliko ponudi od njih učil štipendistov, nekaj Od njih seveda assistants-- volje se dogaja tedensko. 

In kaj je ključnega pomena, da v mislih je, da smo ne have-- razliko od prve Noči, glasba class-- različne skladbe odsekov za študentje manj udobnih, več udobno, in nekje vmes. In odkrito povedano, veš, če ste manj udoben. In verjetno veste, če ste bolj udobno. In če niste prepričani, da ste po definiciji nekje vmes. Torej, ko pride čas, da oddelku v enem tednu ali tako, po predmetniku, vam bomo vprašati to vprašanje. In si lahko sami izberite Temelji na svojo raven udobja in se z students-- biti z zeleno dots-- podobna raven udobja za vas. 

Medtem, imamo težavo kompleti, ki bo v končni fazi opredeliti svoje izkušnje na tem tečaju. Oni ponujajo tipično v več izdajah. Standardna izdaja, da pričakujemo najbolj vsak učenec v času za reševanje ampak tudi tako imenovana heker izdaja ki ponuja nobene oblike dodatnega posojila Dokončna ampak res je bahač reči, da si se potrudil in reševati hacker izdaj teku, da pristop podoben material ampak bolj sofisticirane kotom. 

Kaj ponujamo za standardna izdaja, za, enkrat, super večina študentov, ki niso le sprehod-kanale, ki so videos osebje teku je pod vodstvom da vas resnično sprehod skozi Težave seveda je možno in oblikovanje izvedb. In tudi, ko Dejstvo, ponujajo postmortems, pri čemer, če ste se spraševala, kako bi lahko imeli ali bi morala rešiti nekaj problem, učno osebje vas bo vodil skozi tiste na video, kot tudi. 

Medtem, kaj pričakuje preveč, so pet poznih dni in dejstva da bomo Odvrzite najmanjši problem je določeno število točk. Vsekakor cenim, da je v zameno za delovno obremenitev, ki pričakuje in 50 od vas, življenje pride na pot včasih, če ne celo petkrat. In tako bo ponujal ste malo fleksibilnosti, razširja svoj rok od, recimo, Četrtek opoldne v petek opoldne. Glej učni načrt za Podrobnosti za njihovo izvajanje. 

Zdaj, kaj zdaj čaka? In to je šele pojavljajo Zdaj mi samo kako dolgo Imam vidva stojim na odru. 

[Smeh] 

DAVID J. Malan: Ampak bomo prišli do climactic konča pred dolgo. Kaj v smislu, da čaka o sklopih problematike? No, morda teaser, kaj smo vsi lani s svojimi predhodniki. V prvi problem niz Lani smo uvedli Scratch, grafični programski jezik, ki omogoča programiranje dobesedno povleci in spusti kosov sestavljanke, kot ti, ki so spominja konstruktov bodo videli samo en teden torej, ko stikalo za bolj tradicionalno jezik, znan kot C. 

Lani smo nadaljevali na ta problem set, vključujejo v kriptografiji kodiranja informacij da bi preprečil vladni ali prijatelji " Oči, ki jih ne želite videti. Kodiran tukaj je sporočilo, da je kmalu bodo mogli dešifrirati ali de-scramble. 

Zlom je bil problem nastavite lansko leto, v katerem uporabljate te nove najdemo programiranje spretnosti, da dejansko izvajanje Igra wherein-- kot vi lahko odpokliče iz childhood-- Cilj je bil, da bash opeke, ki so na vrhu zaslona tu se kopičijo rezultat na poti, in izvajanju svoje algoritme s katerim je ta rešitev koncu vam omogoča, da igrajo igro. Medtem, kasneje v semester, vam bomo dali slovar 143.091 angleških besed. In vam bo izpodbijala napisati program, ki urok preglede, dokumente, ki jih nalaga, da veliko besed v pomnilnik čim bolj učinkovito. Na splošno vam luknjičaste pred sošolci če ste se odločili v nekaj Izziv na vodjo krovu da vidim, kdo sme uporabljati, najmanj sekund časa teče, in število hišnih številk megabajtov pomnilnika, in dejansko uglašuje svoje programe da je neverjetno viri gospodarnemu ne samo čas. 

Lani smo tudi pogledal na koncu semestra na spletnem programiranju. In res, bomo storili še enkrat to leto z več problemskih sklopov, ste za uvedbo tehnik in miselnost, s katero se lahko prijavijo ta znanja programiranja do spletne strani, dinamične spletne strani, spletne strani, ki dejansko rešujejo težave in se vedejo drugače in niso zgolj statična strani z statično informacij. 

Končni projekt na koncu bodo opredelili, čeprav, Vrhunec tečaja za študente, pri čemer vas bo izpodbijala izvajanje Najbolj kaj v interesu za vas, tako dolgo, kot je nekako črpa pouku predmeta je. 

In kot ste videli v video na začetku, bomo zaključili s semester CS50 Hackathon, ki, če se ne poznajo, se bo začelo ob 07:00 za eno noč in konča ob 7:00 zjutraj. Okoli 09:00, se bomo Vrstni red, v prvi večerji. Okoli 01:00, se bomo Da bi v drugem večerjo. In če ste še vedno stoji ob 5:00 uri, smo bo shuttle vam bus da IHOP za zajtrk. 

CS50 Fair, medtem, je dogodek na katero 2.000 plus fakultete, študente, in osebje iz vse kampusu bo prišli pogledat svoje dosežke v teku in končni projekte in stvaritve ki ste ga ustvarili na vaših prenosnih računalnikov, namizij, ali morda celo žarnice. 

Medtem, govorilne ure in podporno strukturo. In zdaj bi že bil boljši čas za vas vse bruhati. 

Uradne ure bodo potekale štiri noči teden za več ur vsako noč s splošno 20 in 30 od Osebje Seveda je dežurni naenkrat da vam z intimno ena-na-ena možnosti za podporo s problemskih sklopov predmeta je. Tudi Vadenje bo voljo, zlasti za študente manj comfortable-- ali si trditi, vsaj comfortable-- za katere Uradne ure niso Najbolj Negovanje okolje in zagotovo niso najbolj brez stresa. Še posebej, če roki so stiskanje, bomo proaktivno vas seznaniti sebe s članom osebja za delo z na nekem rednem urniku, kot vaše potrebe in njihov urnik dopušča. 

In osebje. Dovolite mi, da predstavim Davon Rob, Gabriel, letošnji glave. Če bi vsak rad say-- 

[APLAVZ] --a beseda. [APLAVZ] Davon tukaj je Vodja seveda je, kar pomeni v svoji polni delovni čas vlogi mu pomaga pri izvedbi in logistika CS50. DAVON: Ja, zdravo, fantje. Videli boste veliko za mene uradnih ur. Jaz se bom učil oddelke. In če si ustrelil emails naprej, Verjetno bom se odziva. Tako da bom videl veliko vas vse semester. In dobrodošli na CS50. 

DAVID J. Malan: In zdaj Gabriel, ki je sam je bil le novinec lani, ampak za zadnjih nekaj let, ima posluje svojo različico CS50 v Braziliji, pri čemer je preneseno vse tečaja je content-- kar je dokaz, posnet in postavi online-- tako da je lahko to prevesti Portugalsko in nato naučil več kot 100 njegovih sošolcev več potek nekaj let, poučevanje v svojem maternem jeziku Učni načrt predmeta je. 

GABRIEL: Pozdravljeni. 

[APLAVZ] GABRIEL: Živjo, jaz sem Gabriel. Jaz sem vodja TF tečaja. In upam, da vam bo všeč CS50. To je CS50. 

DAVID J. Malan: Zdaj za Robu. Oh, želite uvod? 

ROB: Ne, ne vem. [Smeh] DAVID J. Malan: In Rob Boden. [Smeh] ROB: Živjo, jaz sem Rob. To je moje peto leto ukvarja s tekom. Vsako leto, to je samo boljši in boljši razred, tako fantje so očitno bo super. Upam, da ste vsi zabavajte se z njo. Grem, da se zabava z njo. Torej, se vidimo. 

DAVID J. Malan: In čas ne dovoli us-- 

[APLAVZ] 

Čas nam ne dovoli uvesti vse na odru in vse njihove sodelavce ki so nakupovanje razredov danes. Ampak, dovolite mi, da predstavim Belinda in CS50 Puzzle Dan, ki čaka to prihod sobota, ki je v prvi vrsti veliki dogodki lestvica Seveda je. 

Ta je zlasti mišljeno kladivo domov točka da računalništvo v končni fazi Ne gre za programiranje, ampak glede reševanja problemov na splošno. In Puzzle dan, saj boste glej, vas bo popeljal in tvoji sošolci together-- upamo, da bomo to soboto. 

BELINDA: OK. Zdravo, fantje. Torej, hvala. Tako kot naš slavni kapitan je dejal, moje ime je Belinda. Sem študent drugega letnika na Quincy House. 

I, tako kot fantje, je CS50 lani, res ljubil. Imam mehko spot za ti fantje v tretji vrsti. In jaz sem ponosen, da reči, da sem zdaj v predanega razmerja z CS50 [neslišno]. OK. To je bil moj lame različica šalo. 

Kakorkoli že, tako premika naprej, samo hotel povabiti vi vsi na i-lab, ali HBS koprivnica. Bomo se ob Puzzle dan 12:00-03:00. In to je odlična priložnost za vas Fantje, ki izpolnjuje vaše kolege CS prijatelje, rešiti nekatere non-CS uganke, kot stotnik omenjeno, pa tudi jedel brezplačno hrano, zaslužite nekaj super nagrade, kot so darilne kartice 75 $ na osebo, in also-- kaj je bilo? Wii U, ali kaj? Wii U? Da. Za našo nagradno igro. Awesome. Tako da bom ostal po pouku. In če imate vi koli vprašanja, povej mi. 

DAVID J. Malan: In boste videli, onstran To ni nič storiti danes. Prvi problem je določeno bo šel ven petek. Ampak, da bi nas pripeljal domov danes, rad bi vam predstavim še posebej ena član osebja, Colton Ogden tukaj, katerih roke so zdaj zaščitena nad vami s to MIDI kontroler za dodatno točko kladivo domov da računalništvo, preveč, je uporabnost daleč inženiring in STEM in računalništvo sam, zajema tudi takih področjih, kot glasbo. 

Colton je vljudno offered-- sem mislil eden izmed njih se je dogajalo, da se določi ostrino. Andrew, če bi lahko prikliče poudarek sem za trenutek. 

Kaj Colton je naredil vnaprej je program, ta naprava, to blazinica gumbov da vidite na sliki tukaj gor, kot krmilnik MIDI, pri čemer je vsak od teh gumbov je nakazan na določeno glasbeno noto ali zvok, bolj splošno snemanje, tako, da z igranjem vzorce teh gumbi, podobno kot vzorcev bitov, lahko predstavlja druge Višje koncepti ravni. Bo lahko na koncu da nas bo danes doma tukaj? Brez odlašanja, če je smo lahko zatemnite, in nato na zaslonu v ozadju Colton. 

OBČINSTVO: Woo! 

DAVID J. Malan: To je CS50. 

[Predvajanje glasbe] 

[APLAVZ] 

To je to za CS50. Vas bomo videli v petek. Nekateri cake vas čaka v prečni ladji. 

[Predvajanje glasbe]