[TÓNLIST] Þetta er CS50-- Harvard Kynning University að vitsmunalegum fyrirtæki í tölvunarfræði og listin að forritun. Og nafn mitt er David Malan, og Ég var bara að hugsa í morgun, það hefur verið ótrúlega 20 ára í dag þar sem ég sat síðast þar sem þú krakkar gera núna. Það var 1996. Ég var sophomore, og ég var að taka CS50 í fyrsta skipti. Og ég hafði ekki einu sinni fengið upp taug að taka það sjálfur freshman ár, að hluta til vegna þess tíma. Tölvunarfræði við mig var góður af eins, meh. Ég var a hluti af a geek vaxa upp, en ég gerði í raun ekki hafa allir vitsmunalegum áhugi á því virtist bara vera a heild búnt af fólk forritun allan tímann. Og ég var hræddur að vera heiðarlegur. Námskeiðið og tölvunarfræði fleira almennt haft og að einhverju leyti, hefur enn þetta orðspor sviði til varast, ef aðeins vegna þess að svo margir af okkur ert ókunnur með það og ekki viss um það. Og það var í raun ekki fyrr en ég verslaði þessi flokkur að sophomore fall-- og jafnvel þá, ég þátt aðeins vegna þess að professor-- einn af fyrstu leiðbeinendur mína, Brian Kernighan nú á Princeton-- leyfa mér að taka í bekknum fara mistakast. Og reyndar, það er hvers vegna í dag við að leyfa og hvetja nemendur til að taka þennan flokk sat / unsat. Og aðeins þá, af enda önn gerði ég grein eins, vá, þetta var ekki svo framandi sviði. Reyndar, þetta var mjög uppbyggjandi sviði, og meira excitingly, sérstaklega síðar, eins og ég tók námskeið í Leiklist 101 og Latin A og þá loksins Grad skóla fornleifafræði, gerði ég byrja virkilega að sjá vegamót á þessu sviði, tölvu vísindi, með hugvísindum, náttúrufræði, listum, læknisfræði, og þess háttar. Og svo er það það sem er bara svo sniðugt um tölvunarfræði að lokum, eins og við vonum að þú munt see-- er notagildi hennar að þessum öðrum sviðum, og hvernig þú getur taka nokkuð af í dag er og önn er hugmyndir og hagnýt færni aftur til eigin lén þitt, og í raun kanna þetta gatnamótum af frjálslynda listir og vísindi. Svo 73% af ykkur, ef síðasta Árið er einhver vísbending, hafa aldrei tekið CS námskeið áður. Svo ef, eins og mig, þú ert tilfinning svolítið hræddur, eða hreinskilnislega þú ert ekki í raun viss hvers vegna þú ert jafnvel hér. Kannski þú fylgdi bara nokkrar vinir á að Sanders núna. Það er algerlega fínt. Markmiðið hér er að krókur þú og til að fullvissa þig að ef þú lítur til vinstri og hægri, þú ert að fara að sjá bekkjarfélaga með eins lítið eða eins mikið reynslu að þú sjálfur gæti hafa. Og reyndar, munum við deila Sumir tölfræði síðar í dag um hvað lýðfræði bekknum yfirleitt líta út. Og eins bætt reassurance-- og þetta sem við meina síðan ég tók námskeiðið nokkur ár ago-- í kennsluáætlun námskeiðsins er er this-- að það sem á endanum mál á þessu námskeiði er ekki svo mikið þar sem þú enda upp miðað við bekkjarfélaga þína, en þar sem þú í viku 11, í lok önn, enda miðað við sjálfur í viku 0, sem er þar sem við erum hér í dag. Og þetta er það sem ég áttaði öll þessi ár síðan. Og ég þekki fullt af bekkjum segja þetta, en það er sérstaklega sannur í tölvunarfræði. Í lok dags, þessi reitur er framandi eins og það var að mér og gæti verið að þér, er mjög bara um að leysa vandamál. Og sem slík, það hjartarskinn hafa þetta nothæfni að fá öðrum sviðum. Og í raun, ef við reyndum að distill hvað þetta þýðir, þetta er lausnaleit í kjarna þess, eflaust ég. Það er input-- svo hvað það er að þú ert að reyna að leysa. Það er framleiðsla, sem er vonandi lausnin á þessi vandamál. Og þá, eins og við gerðum segir í tölvunarfræði, það er þetta svartur kassi í miðja að þú ert ekki endilega hafa til að hugsa um hvernig það virkar. Þú sjálfur gæti á endanum framkvæma það sem er inni kassann. En fyrir tilgangi í dag og fleiri almennt í lífinu, sama allt þér um er að þessi vandamál fá leyst. Og það sem þetta námskeið er á endanum um er að kanna gatnamótum þessi inntak og framleiðsla, og þessir svokölluðu reiknirit, eins og við munum fljótlega sjá, að framkvæma það sem er undir þar, hetta. En þessi inntak og þessir outputs-- hvað þýðir það í raun þýtt? Jæja, í lok dags, við þurfum einhver leið til að fulltrúi upplýsingar. Þetta er sérstaklega sannur í tölvu, sem eins fínt og flókið eins og það kann að virðast, er ansi heimsk tæki. Það tekur electricity-- hvort frá snúru eða rafhlöðu sem input-- og þá framleiðir það sumir preprogramed svör á skjánum. En hvernig eigum við að fá frá byrja að klára það? Jæja, hvað er vandamál að vera leyst? Jæja, kannski við gætum, á upphaf hvers misseris, reyna að taka mætingu í herbergi eins og þetta. Svo ég gæti gert eins og einn, tveir, þrír. Eða kannski, ef ég gerði það til að raða í að halda utan á myself-- að halda utan um things-- Ég gæti fljótt uppiskroppa með fingrum. Svo ég gæti bara gert kjötkássa marks-- einn manneskja, tveir, þrír, fjórir, fimm, sex, sjö, átta. Og allir með sennilega gert þetta, hvort sem er á hendur eða á stykki af pappír. Og þetta er í raun bara eitthvað sem kallast unary notation-- þar sem ef þú hefur aðeins einn bókstaf í stafrófinu, einn eða kjötkássa þinn merkja í þessu tilfelli, fyrir hvert inntak þú vilt að telja, þú þarft að setja niður einn af þessum letters-- einn af þessum merkjum. Allt í lagi. Það er allt fínt og gott og ekki allt sem flókið. En tölvur eru ekki allir að miklu flóknari. Reyndar, flest ykkar líklega vita jafnvel ef þú hefur í raun ekki talið hvað þetta þýðir, að tölvur skilja aðeins núll og ones-- svokölluðu tvöfaldur kerfi. Við mennirnir, hins vegar eru svo miklu flóknari að því leyti eins og við skiljum núllstöð í gegnum nines. En jafnvel þótt tvöfaldur er, fyrst sýn, ekki allt sem ég þekki, það kemur í ljós að það er bara eins og kerfi og hugmyndir sem við vitum nú þegar. Svo til dæmis, íhuga þetta. Þetta er bara röð af táknum. Og allt af þér, þegar glancing á það, sennilega held 123-- ekkert mjög áhugavert þar. En hvers vegna er það þessi tala, 123? Þetta eru bara glyphs á sem screen-- bara mynstur sem einhver gæti hafa dregið eða slegið. En ef þú ert eins og mig, þú sennilega muna úr grunnskóla að það eru tegund af dálka eða stöðum hér. Það er staður einn er og Tíu er staður og það hundrað er staðurinn. Og ástæðan að þetta er 123 og ekki bara mynstur af þremur táknum er vegna þess, að sjálfsögðu, ef við hafa einn í hundruðum stað, þú gera stærðfræði 100 sinnum einn, og síðan tveir í tíu sæti. Svo er það 10 sinnum 2, og síðan þrír í sæti Annars er og það er 1 sinni 3. Og þegar þú bætir við alla þá upp, að Auðvitað, þú færð 100 plús 20 plús 3. Þannig að við byrjuðum með bara mynstur af symbols-- á alphabet-- en þá erum við kortlagt merkingu á það með því að þessum dálkum. Jæja, það kemur í ljós að tölvur eru í raun ekki allt sem frábrugðið þig og mig. En í stað þess að nota völd 10, svo að speak-- 1, 10, 100, 1000, 10.000 sæti og svo forth-- þeir í raun bara nota heimildir 2-- svo einn, 2, 4, og síðan ef við setjum meira tölustafir, 8, 16, 32, 64, 128, og svo framvegis. Og svo er þetta hvernig tölva myndi tákna fjölda 0, bara eins og við menn. 0, 0, 0-- og þú geta sennilega giska hvaða mynstur núllum og sjálfur, Ef tölva getur einungis tala 0 eða 1-- hvað mynstrið er að fara til að tákna fjöldi við mennirnir vita sem 1? Yeah-- 0, 0, 1. Allt í lagi. Svo 0, 0, 1 er hvernig við tákna 1, svo þú gætir verið hneigðist þá að tákna númer 2, ef þú hefur The Four er staðurinn og tveir er staðurinn sem einum stað, gætir þú sagt, vel, ef við hefðum 1 í stað þess manns, og nú viljum við telja upp að 2, gætir þú gera þetta og láta þetta vera núll. En auðvitað er þetta ekki hvernig tugakerfið virkar heldur. Ef þú setur tölustaf báðum þessum dálkum, þú hefur fengið að gera tölur. Svo hvað fjölda gerði ég tilviljun bara tákna? Svo er það 3, vegna þess að 2 sinnum 1 plús 1 sinnum 1, auðvitað, gefur okkur þrjú. Þannig að þetta myndi vera tvö. The hluti konar selbiti, svo að segja, eins og 0 verður einn, líkt og 9 hlutverkum yfir og verður 0 þegar þú bera 1. Þetta þá væri þriggja auðvitað. Four-- annar áhugaverður hlutur gerist, þar sem sjálfur rúlla yfir og þú bera 1, svo að segja. Þannig að þetta, að sjálfsögðu, er 4. En ef þú hratt áfram núna, hvað er stærsta númerið fara að vera að tölvan getur táknað? Svo það er bara sjö í þessu tilviki, ekki satt? Þar sem þú ert með einn í fjórum, einn í tvo, einn í einu. Svo er það 4 plús 2 plús 1. Svo sem gefur þér sjö. Og reyndar, það myndi virðast við fyrstu sýn sem tölvur geta treyst ekki hærra en þetta. En þetta er auðvitað ekki satt. Hvað gerum við mennirnir gerum þegar við viljum að telja hærra en eins 999? Bara bera einn og bara bæta fjórða tölunni vinstra. Og svo reyndar við gátum. Við gætum hafa átta 's Staður og stað 16. er, og 32 er staðurinn, 64, 128-- og þú getur bara halda áfram á allt að óendanleika. Svo þessi núll og ones-- svokölluð tvöfaldur system-- eru hvað tölva vísindamaður myndi almennt kalla svolítið, eða tvöfaldur tölustafur. En nú, hvernig eigum við að fá úr hugtak eða grafík þessum hlutum að raunveruleg tölva? Við virðast vera skipstjóri skref hér. Jæja, eina inntak í lok dagsins, til minn laptop hérna er þetta flæði raforku. Jafnvel ef það hefur verið langur tími síðan þú hugsað um eða aldrei hugsað um hvernig rafmagn virkar, það er rafeindir flæða í eða út, og það er góður minn inntak. Svo ef það er allt sem við erum fá sem inntak hér, hvað getum við gert við þær upplýsingar? Jæja, gætum við hugsað núll og bara skortur á rafmagni. Ekkert er flowinw, ekkert er flytja, ekkert er að gerast. Það er bara sjálfgefið state-- núll. En ef það er rafmagn flæðir, hvers vegna ekki við bara geðþótta, en á heimsvísu stöðugt, kalla það a einn. Svo einfaldlega með því að hafa ekkert vald, við höfum núll, já orku, Við höfum one-- ekki vald, já orku. Og á þann hátt, að nota eitthvað meira líkamlegt eða rafræn við byrjum að framkvæma þessa hugmynd af eitthvað að vera annað hvort einn eða núll. Reyndar gætum við bara gert það hérna. Svo hér hef ég ekki þrír heldur átta ljósaperur, sem hver um sig hefur eigin rofi hennar. Og svo ef ég vildi til að tákna Talan sjö hér, Ég gæti kveikt á þessum þremur ljósaperur. Og reyndar, inni í tölvan mín er milljónir, milljarða af hlutum sem eru bara minni en það, sem kallast smári, rofa, sem þú kveikir bara á og burt. Svo þetta eru big-- tiltölulega big-- rofa inni laptop-- minn eru margir, margir, margir, margir fleiri rofar. En allt sem þeir gera er nákvæmlega that-- snúa eitthvað á, snúa eitthvað burt. Og sem slík, tölva getur táknað, með þeim milljónum eða milljörðum smára, fullt og hellingur af núllum og sjálfur. Og það er öðrum vélbúnaði enn að gerir þér kleift að geyma upplýsingar langan tíma, þannig að þegar þú draga stinga, þú missir það ekki. En það er saga fyrir annan dag. Og hvað getum við gert við þessar bitum? Gætum við bara að taka þrýstingur burt af me-- gæti einhver vilja til að koma upp hér og bjóða upp á kynningu? Ég sá þessa hönd fyrst. Hvað heitir þú? MADAY: Maday. DAVID Malan: Maday, koma á upp. Gaman að hitta þig. MADAY: Gaman að hitta þig. DAVID Malan: Komið þessa leið. Ég mun ekki þurfa að vör þig. Allt í lagi. Svo hér höfum við, notice-- einn, two-- Við munum breyta að out-- einn, tveir, fjórir, átta, 16, 32, 64, 128. Þetta er vísvitandi. Það er átta bita here-- tvöfaldur digits-- núll og sjálfur. Og dálítið er gagnlegt eining measure-- ekki eins gagnlegar mælieiningu á sjálfu sér. Venjulega þú vilja að minnsta kosti átta af þessum hlutum, gengur einnig undir nafninu bæti. Þannig að við höfum bæti bita hér. Þannig að ef við vildum að skora þig með, til dæmis, stafsetningu út í tvöfaldur, þetta gildi here-- 42. Langar þig til að taka a stunga á það? MADAY: [inaudible]. DAVID Malan: Já, bara ýta litla hvíta rofa í framan. Og þú vilt að stafa út 42, og upp fyrir grípa er þetta CS50 streitu bolti ef þú færð þetta. Allt í lagi. Svo þú ert 32. Við erum að fara að þurfa 42. Svo er það með átta, svo það er 40. Og excellent-- mjög fallega gert. Þakka þér. [Applause] Allt í lagi. Þannig að við höfum eitt streitu boltanum. Við skulum gera þetta einu sinni enn ef við getum. Eitt annað sjálfboðaliða? Free streitu boltanum, frjáls streitu boltanum. OK. Hérna í miðjunni, viltu koma niður? Allt í lagi. Ég veit. Þar sem við förum. Svo tölurnar here-- koma niður. Hvað heitir þú? Davey: Davey. DAVID Malan: Davey. OK. Komdu upp, Davey. Gaman að hitta þig. Og það sem við erum að fara að fá þig spell-- ef þú gætir sitja lengi þarna fyrir aðeins einn moment-- er númer 50. En, en, en, en, en, þetta eru seglum grunnskóla fyrir ástæðu. Bara svolítið erfiðara, allt í lagi? Það er samt átta. Allt í lagi. Svo hvað við höfum á það? Við höfum 32. Nice. 32 plús 16 gefur okkur 48-- svo nálægt. Og dásamlegt. Hamingjuóskir til Davey eins og heilbrigður. [Applause] Allt í lagi. Þannig að við getum gert þetta allan daginn, og það er ekki fá allir það mikið meira áhugavert og meira krefjandi. En það er í raun point-- er hvernig tiltölulega einföld það er, í lok dags, hvað er tölvan gerir að geyma upplýsingar, að geyma inntak og að lokum geyma eða tákna þær framleiðsla. En tölur einir eru ekki allt sem áhugavert. Svo menn, fyrir nokkrum árum, ákveðið, þú veist hvað? Það væri gott ef tölvur voru ekki bara reiknivélar fyrir tölur Rekstur, en í raun gæti gera hlutina eins og ritvinnsla, eða tölvupóst eða fleiri nútíma lífum þessar tegundir af tækni. Og svo að heimurinn ákvað geðþótta, en almennt, að ef þú vilt geyma fjármagn bréf A í tölvu, þú veist hvað? Við skulum bara öll sammála að geyma sumir mynstur núllum og ones-- bits-- að lokum táknar heiltala 65. Við verðum bara öll sammála um það. 66 myndi tákna B, 67 myndi tákna C, og það er bunches af öðrum mynstrum núll og sjálfur, eða undirliggjandi tölur, sem myndi tákna aðrir stafir enn. Svo ef þú konar andlega gleypa þetta í smástund, Ég setti vísvitandi upp í gegnum I, þar sem H 72 og ég er 73. Ef tölva síðan, í tengslum við ritvinnsla program eða e-mail, ljós undir hetta til að hafa þessi mynstur bits-- mynstri bita fulltrúar 72, þá 73, þá 33-- hvað gæti þetta leiðréttingar á þeirri áætlun? Svo hæ, og þá eitthvað. Við gerum ekki endilega vita, en örugglega 33-- ekki á töfluna earlier-- var einfaldlega upphrópunarmerki. Svo 72 var H, 73 er ​​ég, 33 gerist að vera upphrópunarmerki enn. En það er allt í lagi og gott, og í raun nú á dögum, frekar en bara nota sjö eða átta bitar, þökk sé eitthvað kallaði Unicode öfugt að ascii aftur í dag, við í raun getur táknað enn meira áhugavert stafir en bara þetta upprunalega enska hlutdræg bréf. En við getum líka tákna jafnvel snyrtilegur hlutur eins litum. Ef þú hefur einhvern tíma heyrt hánefni RGB, rauður, grænn, blár, sem þýðir bara að tölvu oftast notar þrjú sett af bits-- sumir fjölda bita sem tákna tala fyrir hversu mikið rautt þú vilt, annað sett af bitum til hversu mikið grænn þú vilt, og annað sett tölu fyrir hversu mikið blár þú vilt. Svo stór tala þýðir hellingur af rauður, fáeinum þýðir ekkert rautt. Og svo þetta eru svona Middle gildi hér. Svo gefa mér smá rauðvín, gefa mér grænn, og gefa mér smá bláu. Og ef þú blanda þeim þremur tónum á lit saman, í þessu tilfelli, þú færð þetta murky skugga á gult eða brúnt. En það mynstur átta plús átta plús eight-- svo 24 bits-- vinstri til hægri, er hvernig tölva myndi tákna tilteknu litur. Nú er þetta bara punktur á skjánum. Ef þú lítur í raun loka á sjónvarpið þitt tölva, munt þú sjá punkta eða díla. Og ef þú hafa a heild rist punktar, lárétt og lóðrétt, þú þarft myndum. Og þá ef þú tekur mynd og síðan þvo sýna þér aðra mynd, annar mynd, annar mynd, annar mynd, mjög hratt, þú auðvitað hefur bíó. Og svo eftir þar sem við byrjuðum. Við byrjuðum með þessum núllum og sjálfur. Við unnum þaðan til tugakerfissnið tölur, hvernig við tákna þá. Nú höfum við stafina í stafrófinu. En í öðru samhengi bíddu, getum við notað nokkrar fleiri bita og tákna liti. Um leið og þú hefur getu til að tákna liti, þú hefur getu til að tákna ljósmyndir og Hreyfimyndir og önnur slík stafir á skjánum. Og þegar þú hafa a heild búnt af myndir fljúga af mönnum í einu, það lítur út eins og kvikmyndum, og þannig að þú færð vídeó eins og heilbrigður. Svo nota þetta mjög einföld frumform gerum við hafa veg hönd að lokum allar þessar tegundir fjölmiðla. Og við höfum horfir aftur og aftur og aftur, þangað til við fá frá lægsta stigi að þessu hæsta stigi. Svo gefur það okkur þetta Almenna hugmyndin um abstrakt. En við byrjuðum hér. Hér nú gætum við tákna í tölvu inntak okkar með núllum og sjálfur, framleiðsla okkar í núllum og sjálfur, en það sem fram fer inni í kassanum? Það er þar sem tölvan vísindi fær áhugavert. Það er þar sem þú koma í raun þinn eigin huga til að bera til að leysa vandamál. Við getum nú mælt fyrir um, fyrir restin af önn, já. Ég veit hvernig tvöfaldur verk. Ég man hvernig ASCII eða Unicode-- kortlagning á letters-- verk. Og það stendur vissulega að vegna þess að við gæti táknað rauður og grænn og blár, og tákna margmiðlun eins og heilbrigður. En þetta er áhugavert efni. Þetta er það sem gerir einhvern fær um að leysa vandamál. Og eitt slíkt vandamál við viljum gera, örugglega, er að taka mætingu, eða gera þetta algorithmically. Og aftur, ég gæti gert þetta. Ég gæti gert einn, tveir, þrír, fjórir fimm, sex, sjö, átta og níu. Og ég gæti skrifað það niður til að halda utan um það. En það er bara hvernig ég vildi tákna upplýsingar. Eða ég gæti gert þetta faster-- tveir, fjórir, sex, átta, tíu, 12, 14, 16, 18, 20, 22-- mér finnst eins og tvisvar eins hratt en það er samt að fara að taka a heild einhver fjöldi af tími. En það kemur í ljós, ef við nýta enn annar resource-- og raunar tölvur þessir dagar hafa margar örgjörva eða gáfur. Það kemur í ljós tölvur geta gera fullt af hlutum í einu, og reyndar við, í þessu herbergi, gæti tákna nákvæmlega þetta. Svo það er svolítið félagslega klaufalegur, en ef þú myndir húmor mig fyrir aðeins þriggja skrefa ferli, láta ég bið alla í stað það bara að standa upp um stund. Stattu upp. Svo hugsa til sjálfur, tala one-- svo í þessu herbergi allir, nema fólk sem ekki gerði skuldbinda, eru að hugsa númer eitt. Svo er að númerið þitt núna. Það er fyrsta skrefið, eða sem tölva vísindamaður eða forritari myndi venjulega gera, við erum að fara að byrja að telja á núlli. Ef minnsti fjöldi sem við getum tákna með þeim ljósaperur er núll, bara með að fara þá allir burt, ég gæti eins vel bara byrja að telja frá núll er í staðinn fyrir eitt. Og svo er það tölva vísindamenn gera. Svo stíga núll, standa upp og hugsa um númer eitt. Næsta skref er this-- par burt með einhverjum standandi og bæta símanúmerum saman. Wonderful. Svo á þessu augnabliki, bókstaflega allir þátt er að hugsa um númer 2, nema fyrir einn stakur mann ef við höfum oddatala fólks í herberginu. Og nú þriðja skrefið hér er að fara að að this-- einn af ykkur ætti að setjast niður. Einn af þú ættir að setjast niður, og ef þú ert enn að standa, fara aftur að stíga einn. Allt í lagi. Allt í lagi. Svo fleiri og fleiri fólk ætti að sitja niður. Takið eftir að þetta hefur völdum a loop-- einhvers konar hringrás. Sumir af þú ættir að vera vandræðalega fastur, fara fram og til baka á milli skrefi og tveir, einn og tveir, einn og tveir. Það er allt í lagi. Fyrsta galla okkar. Við munum takast á við það. Allt í lagi. Leyfðu mér að reyna að örva hlutina með. Í orði, aðeins ein manneskja er að standa eins og allir áfram að para burt. En láttu mig hraða hlutum upp við fólk enn standa. Hvað fjölda ertu að hugsa um? 46. OK. Fara á undan og setjast niður. Þú krakkar eru enn standa. Hver er samt standa? Hvað fjölda ertu að hugsa um? OK. Þannig að við munum koma aftur til þín. Aftur í? Hvað er þetta? 22. OK einhver annar upp top-- já? 34. OK. Hérna á right-- minn upp hér? 132, mjög gott. 22? OK. Og hver er enn standandi? Hérna? 46, mjög gott. 72. Ég get ekki tefja mikið lengur. Já? 30, gott. Hérna? 23? 23. Og ég held að það allir nema ykkur, enginn þrýstingur. Ó, bíddu. 28? Bara átta. OK. Bara átta. Hérna? 30. 23. 24. 18. Þetta er versta framkvæmd þessarar reiknirit alltaf. OK. Svo einhver annar? Einhver annar? OK. Einn í viðbót. 16? OK. 16. Allt í lagi. Þannig að ef ég hef ekki misst neinn í the glampi hér, þegar ég ýta á Enter, við munum sjá, algorithmically er heildarfjöldi fólks í Sanders. Því aftur, það er eins og alla eins og þú settist niður, fór númerið þitt burt til einhvers annars, til einhvers annars, til einhvers annars, svo sem í orði, á endanum, eina óþægilega maður ætti að vera eftir standa. En það er allt í lagi. Við ferð hlutum upp handvirkt. Það er sérstaklega erfitt að sjá í þessu tiltekna rými. Og heildarfjöldi fólks Við teljum að það eru hér 546. Heildarfjöldi Ég var afhent af kennslu félögum, sem gerði það gamla skóla hægur vegur, var 820. [Hlæjandi] [Applause] Það er allt í lagi. Svo sannarlega þá eru þessar pöddur. Og það er fínt. Og svo hugsa til baka um þetta í fyrsta skipti sem eitthvað þú skrifar ekki endilega að vinna. Þetta hefur gerst við mig hér eins og heilbrigður. En við skulum nú íhuga hvernig við gætum beita þessari sömu hugmynd að einhverju þú gætir hafa séð áður, sem er þetta gamla skólanum tækni here-- mjög stór símaskrá. Og geri ráð fyrir að þetta símaskránni hefur 1.000 síður og 1.000 nöfn og tölur í stafrófsröð inni af því. Jæja, gætum við eins konar gilda svipuð Hugmyndin að þessari mjög líkamlega vandamál, bara að nota mig. Ég bara svona sviknir með því að fá ykkur öllum með fullt og fullt af mismunandi örgjörva eða gáfur framkvæmd sumir reiknirit. En ef það er bara smá gamall mér, ég get samt skiptimynt þessi sömu kjarna hugmynd um að deila og sigra þessi vandamál aftur og aftur, þar helmingur af þér, helmingur af þér, helmingur af þér, helmingur af þér, fræðilega haldið sitja niður, þangað til við vorum eftir, fræðilega, með aðeins einn mann. Svo í þessu gamla skólanum technology-- við gerum ekki þarf þetta map-- þetta gamla skólanum tækni, við gætum byrjað að leita að einhverjum eins Mike Smith, eina síðu í einu. Og ég sé að nei, Mike er ekki hér. Ég er enn í A hlutanum. Að lokum, finnst mér sjálfur í B-deild. Og þetta er algorithm-- skref-fyrir-skref kennslu. Byrja á byrjun og einni síðu í einu, leita Mike Smith. Er þetta correct-- þetta reiknirit eða nálgun? Já, það er rétt. Ef Mike er hér, á endanum Ég næ honum. En það er ekki duglegur. Það er augljóslega mjög hægur. Svo ég get nýta Sömu twosies nálgast. Ég get gert einhverskonar tveimur, fjórir, sex, átta, 10, 12. Það er tvisvar sinnum eins hratt. Ég ætla að fá að Mike hraðar ef hann er þarna. Er það rétt? Já, en ég heyrði little-- nei. Nú heyrði ég nei. Já. Það er padda hugsanlega. Kannski Mike verður bara tilviljun samloka milli tveggja síðna, vegna þess að ég er að fljúga í gegnum þetta tveggja í einu. Svo að minnsta kosti að við þurfum nokkrar konar skilyrt fix. Ég þarf að segja, hey, ef ég högg einhvern sem Nafnið byrjar með T í stað S, Ég tvöfalda betri til baka að minnsta kosti eina síðu. Svo þrjótur í fyrstu, en hægt að laga. En enginn af okkur eru að fara að leita að Mike Smith í gegnum 1.000 bls síma bók eina síðu í einu. Hvað er eðlilegur maður að fara að gera? Þú ert að fara að fara í S áratugnum, ef þú vissi hvar s á. Þú gætir farið gróflega að miðju eða örlítið skekkt undir lok. Og ég lít niður hér og Ég er í M kafla. En hvað veist þú um þetta vandamál núna, sem við vissum ekki endilega að vita áður hjá okkur öllum bara að telja okkur equivalently? Jæja, Mike er greinilega að fara að vera í þessum helmingi bókarinnar ef hann er hér yfirleitt vegna þess að það er flokkað. Og svo þú getur mjög dramatically-- [Gasping] Ég veit. [Applause] Það er í raun mjög auðvelt ef þú gerir það niður hrygg þar. En þú getur þá kasta helmingur af vandamálinu í burtu. Nú, ég er vinstri með sama problem-- finna Mike Smith í síma book-- en nú símaskrá byrjar á M og fer til Ö, en það er helmingur eins stór. En þetta er það sem er áhrifamikill. Rétt eins og í orði, strákar, þegar þú allur settist aðeins helmingur í einu, vandamálið fékk helmingi stór, helmingi stór, aftur og aftur. Svo hefur þetta vandamál orðið Sama vandamál en helmingur eins stór. Nú er það 250 síðu vandamál. Um leið og ég átta, ó, ég er í T kafla óvart. Ég hef gengið of langt. Ég get kastað að helmingur af símaskránni burtu. Nú er ég niður á fjórðungur af vandamálinu. Og er hægt að endurtaka, endurtaka, endurtaka þangað til, í orði, þú ert fór með bara eina síðu. Og ef Mike er á þessari síðu, Ég get nú leyst þetta vandamál. En hversu fljótt var ég að leysa það? Í fyrra tilvikinu, það tók mig svona kannski 1.000 skref til að finna Mike Smith. Það gæti hafa tekið me-- Ég tók upp í símaskránni og ég byrjaði að horfa eina síðu í einu, og Mike gæti verið 1.000 blaðsíður síðar. Second aðferð kannski tekur mig 500 skref, vegna þess að ég er að fljúga gegnum tvo í einu. Og í þriðja nálgun þó, það er sérstaklega öflugur. En við skulum íhuga hvað við raunverulega gerði með þessum þriðja nálgun. Ég hef það sem ég ætla að kalla bara þessir yfirlýsingar hér, einn í einu. Pick upp símaskránni. Opið til the miðja af símaskránni. Horfðu á nöfn. Og þá hlutirnir fá smá meira vitsmunalega áhugavert, ef enn einfalt. Ef Smith er meðal nöfn á þeim núverandi síðu þá gera eitthvað skilyrðum. Það er eins og gaffli í veginum. Hringja Mike. Ef Mike er meðal nöfn á þeirri síðu, sem heitir Mike. En aðeins að gera línuna fjögur ef lína tré, ef þú vilt, er satt. Svarið við þeirri spurningu er já. Annars ef Smith er fyrr í book-- í öðrum orðum, ef ég er í M kafla og ég er að leita að einhverjum til að vinstri, hvað þá að ég ætti að gera er eitthvað mjög svipað. Þá ætti ég að opna á miðjunni vinstri hluta bókarinnar. Svo fara til vinstri, og þá fara aftur að stíga tvö. Horfðu á nöfn þar. Svo í öðrum orðum, gera það sama, en á vandamáli sem hefur verið lækkað um helming. Þú veist hvað? Ef Smith er seinna í bókinni byggt á blaðsíðu ég að horfa á, opin the miðja af the hægri helminginn af bókinni og þá fara aftur til baka að stíga tvö, else-- Það er fjórða möguleiki hér. Mike er annaðhvort hér eða til vinstri eða til hægri eða ekki. Og hér við teljum betra þetta. Og í raun, ef þú hefur einhvern tíma haft tölvan hrun bara á þig, það er stundum en ekki alltaf, afleiðing af aðeins mannlegur forritari ekki átta, ó skjóta, það er reyndar þetta fjórða atburðarás. Og ef þú skrifar ekki kóða að höndla þessi atburðarás, stundum þú veist ekki hvað tölva gæti gert. Og reyndar forrit gæti hrun. En í þessu tilfelli, ég hélt um það, og ég sagði, annað hætta, því það er fjórða rökrétt möguleg atburðarás. Nú, við skulum bara bæta sumir orðaforða þannig að við getur byrjað að kasta í kringum hugtök sem eru annars nokkuð leiðandi. Allt það sem ég hef bara auðkenndur með gulum hér, Ég ætla bara að fara í virka eða málsmeðferð. Þeir eru bara svona aðgerðir. Svo taka upp, opin, leita á, kalla, opinn, opinn, quit-- þetta eru bara aðgerðir, eða við munum kalla þá meira formlega, aðgerðir. Á sama tíma, nú í gult, Ég hef hápunktur hluti that-- skulum bara byrja að hringja þá skilyrði eða útibú. Þetta eru ákvörðun stig þar þú gætir farið þessa leið, með þessum hætti, eða einhver önnur átt enn. Þannig að þeir verða aðstæður. Og nú er þessi smá áhugamaður. Við skulum kalla þessar spurningar Boolean tjáning, eftir einhverjum með föðurnafn bool. Og Boole-segð er bara eitthvað það er annað hvort sönn eða ósönn, já eða nei. Svo er það spurningin sem svarið þér þykir vænt um, svo sem að í ástandi gera decision-- komast aftur svar, og þá fara til vinstri eða hægri, eða eitthvað annars að öllu leyti. Og þá loks, þessir línur here-- fara aftur að stíga tvö, fara til baka að stíga two-- við gætum framkvæma þessa hugmynd í mismunandi vegu. Og þá þá með forritun reynsla gæti hafa gert eða getur ímyndað gera þetta öðruvísi. En fyrir tilgangi í dag, það er bara hugmynd sem skiptir máli. Þetta er örvandi hvað Við munum almennt köllum a loop-- einhvers konar hringrás, vegna það er að gera mig gera eitthvað aftur. Svo nú skulum íhuga bara hversu gott þetta reiknirit er. Það er rétt. Ef Mike er í bókinni, er það einn af þeir fjórir scenarios-- aftur og aftur og aftur, munum við finna hann. En hvernig gott er það? Jæja, þá höfum við ekki að vera of formlegt hér. En við skulum samsæri bara eitthvað, X og Y, til að fá tilfinningu laginu á þessu vandamáli. Á x-ás er hér stærð vandamáli mínu. Og þeir sem y-ás hér mun vera tími til að leysa. Svo kannski er þetta fjöldi síðna. Kannski er þetta sekúndur eða síðu turns-- hvað sem er. Hvernig sem þú vilt að telja er hvað þessi mynd mun tákna. Og það fyrsta reiknirit, ég ætla að lýsa sem bara beina línu. Ef það er n síður í símaskrá, þá er það gæti tekið mig eins og margir sem n skref til að finna Mike. Ef Regin eða símafyrirtækið bætir eina síðu á næsta ári, það gæti tekið mig einn step-- eitt eining tími til að finna Mike. Svo er það bara þetta eina til eina hlutfall. Það er bein lína brekku. Á sama tíma, sem annar algorithm-- ef ég er fara tveir á time-- tveimur, fjórir, sex, átta, eða double-- fara í gegnum síðurnar tvisvar í einu, tvo í einu, það er samt bein lína. Það er nú eitt til tvö hlutfall, en aðeins neðar. Svo ef það er þetta margir síður á töfluna hér í gult, sem gæti tekið mér þetta margir stíga eða sekúndur, annars það er að fara að taka mig tvisvar eins og margir á rauða línu. En græna línan er alvöru takeaway. Þetta er það sem við almennt kalla logorithm-- þig inn n, þar sem n er fjöldi síðna. En það er lögun sem skiptir máli í dag, vegna þess að við höfum ekki að jafnvel hugsa um samsærismaður stig. Hugsaðu um sérstakt atburðarás. Segjum Regin morgun tvöfaldar sem Fjöldi síðna í þeirri símaskránni, frá 1.000 til 2.000. Í fyrsta reiknirit, I gæti eyða auka 1.000 skref leita Mike, bara vegna þess að Regin tvöfaldast stærð bókarinnar. Annað algorithm-- það gæti taka mig aukalega 500 skref. 1.000 fleiri síður, ég fer tvo í time-- 500 fleiri skref til að finna Mike. En það þriðja reiknirit er eins konar töfrum. Regin tvöfaldar fjölda síðna frá 1.000 til 2.000, En hversu margir fleiri skref gerir það taka mig til að leita að Mike? Það er bara eitt, því ég get bara rífa símaskránni, einu sinni enn frá 2.000 bls vandamál til a 1.000 síðu vandamál, og voila. Ég hef tekið gríðarlegt bit út af því. Og ef þú ferð virkilega sérstakt, geri ráð fyrir að í símaskránni Félagið hafði eitthvað brjálaður eins a 4 milljarða síðu símaskrá. Jæja hversu mörg skref gæti það tekið að finna Mike Smith í 4 milljarða síðu símaskrá? Það er stór tala, en bara 4 milljarða til 2000000000-1000000000 til 500 milljónir, 250 million-- enn hljómar eins og stór númer, en ég er mjög fljótt fá að smærri gildi. Og í raun, ef ég geri stærðfræði rétt, ég get bara skipta 4 milljarða með u.þ.b. 32 sinnum áður Ég fá niður til bara einn. Þannig að ef það símaskrá voru 4 milljarðar blaðsíður að lengd, ekkert stórmál. Innan nokkurra sekúndna, kannski 32 sekúndur, gat ég skipta því í tvennt og að lokum að finna Mike eða álykta að hann er ekki þar. Og það er kjarni algorithm-- gott reiknirit. Og það er eitt af Markmið flokki eins og þetta, er að reyna að reikna út hvernig ég leysa vandamál ekki bara rétt, eins og ég vissi alltaf hvernig á að gera það einn síðu á time-- en rétt og vel. Hvernig get ég hanna gott lausnir á vandamálum? Svo skulum taka a augnablik hér og gefa þér tilfinningu núna CS50 sjálfsögðu itself-- kynna starfsmenn fáir Auðvitað er. Rétt áður en 2:00, munum við taka stutt hlé þannig að þau ykkar sem eru að versla geta önd út og taka líta á einhverjum öðrum flokki og horfa á restina af þessu á netinu. En nú, láttu mig kynna CS50, bekknum sjálft, og sérstaklega hvað er nýtt. Svo síðastliðið vor, við eyddi alveg smá time-- Starfsfólk Námskeiðið er og I-- hugsa um hvað það er sem við viljum CS50 að vera, og fara aftur til fyrsta meginreglur, svo að segja, að íhuga hvað það er sem við viljum þetta námskeið til að líta út eins og að vera eins og fyrir nemendum sínum. Og svo þú munt sjá í vanda setja núll eins og heilbrigður, boð að taka a líta á það URL sem er yfirlit yfir sumir af motivations bak á Eftirfarandi einkenni haust 2016. Svo eins og þú gætir hafa tínt frá TL: DR útdeila, námskrána í dag sem og frá kennsluskrá, á þessu ári í CS50, þú ert bara ráð fyrir að mæta today-- svo starf vel done-- og síðast fyrirlestur þann 21. nóvember. Og þú ert velkomin, en ekki er búist við mæta þeim fyrirlestra í miðju, vegna þess hvað við erum að gera á þessu ári, er að skjóta í rauntíma efni námskeiðsins er. Svo allt verður að vera núverandi og felld sem best við can-- líðandi og samtöl sem fólk gæti vera með í iðnaði í heimur, en að þessi efni í boði, eins og a afleiðing, jafnvel earlier-- heill með fullri afrit texta og searchability og tenglar á aðrar auðlindir. Og reyndar, höfum við verið krafa um nokkurt skeið og við teljum nú þetta, að við getum búið til, stafrænt, meira flottari, meira sannfærandi mennta reynslu, öfugt að safna hér um 23 sinnum í eigin persónu, heyra einhver eins og mig einfaldlega tala um tölvunarfræði, öfugt við taka virkari. Svo þú munt sjá í námsskrá Auðvitað er skissu á önn hér, ásamt þegar fyrirlestrar verið teknar, sem þú ert velkomið en ekki gert ráð fyrir, og þegar þeir vilja út á vef námskeiðsins er. Og það sem við munum gera hérna á Miðvikudaga byrja í næstu viku, er miklu meira náinn, með aðeins þeir fólkinu sem vilja taka þátt, er svokölluð ganga í gegnum, þar sem ég og höfuð námskeiðinu er mun reyndar gera hlutina smá meira náinn hérna í hljómsveitinni kafla, enn sumir tækni og ganga í gegnum núverandi viku Heimadæmi, og bjóða þér particularly-- ef meðal þeim sem minna comfortable-- allt meira leiðsögn sem þú vilt kannski eða þörf fyrir áskorun viku. Og álíka, fyrir þá sem geta ekki mæta þeim í eigin persónu, ekki máli. Það verður álíka undir einn af eldri starfsmönnum Auðvitað er, Zamalya, sama tækifæri fellt í vanda setur sig. Vandamál setur á þessu ári kemur út á föstudögum og ekki lengur gert sjö dögum síðar, en 10 dagar later-- vísvitandi skarast við hvert vandamál sett, svo sem til að ná betur, við vonum, Ebb og flæði í áætlunum nemenda, sérstaklega þegar midterms eða íþróttir eða fræðimenn eða extracurriculars hafa tilhneigingu til að koma og fara sérstaklega miðjan önn. Það ætti að gefa þér smá meira svigrúm til þess hvort þú andlit hlaða viku með CS50 eða bak álag það á eftirfarandi helgina í staðinn. Svo líta á námsskrá Auðvitað er Hér fyrir áætlun þeirra. Og þú munt taka líka meðal breytingar á þessu ári, fyrir þá sem fleiri þekki forritun í fortíðinni, Við munum byrja á önn sem munum við dag í grunni, einblína sérstaklega á tungumáli kallast C, og síðan umskipti ekki PHP, en til tungumál sem heitir Python undir lok annarinnar í samhengi við forritun vefur, ásamt SQL og JavaScript, HTML, CSS, og enn fleira. Og í svari við FAQ, það er örugglega raunin sem CS er ekki eins skelfilegur eins og ég einu sinni hélt að það væri, en það er eins mikið verk eins og ég hafði heyrt að það gæti verið. En þetta er að segja að hér eru nokkrar tölfræði frá haust 2015 nemandi líkama, þar láréttar bláa línur tákna meðalfjölda vinnustunda tilkynnt. Og þú munt sjá að meðaltali sex til 10 til 12-- kannski 16 eða svo og svo framvegis, en með hár dreifni að vera skýr. Og svo gera sér grein fyrir að það er ekki einungis nemendur öruggari og minna þægilegt í námskeiðinu, en samsvarandi stuðning uppbygging til að fá þá nemendur gegnum önn með góðum árangri. Reyndar, í svari við á FAQ, ætti þú taka CS50 sem fyrsta ári? Algerlega. Og í raun, ég iðrast hafa ekki fundið leið mína eða finna nýja sviði að fyrsta árið eins vel. Og þú ættir að taka CS50 með önnur námskeið, vissulega eins well-- og almenn ráðgjöf við gætum gefa nemendum, sem CS50 er líklega ekki góður af bekknum eða innra bekknum að þú ættir að taka með þremur annað eða fjórar aðrar p-setja bekkjum. En ef þú ert að taka tvö önnur p-sett bekkjum, eitthvað annað, og CS50, algerlega viðráðanleg. Ég hef haft marga nemendur í framhjá gert það alveg tekist. Og til að fá þig í átt að mark með góðum árangri, er að sjálfsögðu hafa sections-- mismunandi lög fyrir nemendur minna þægilegt, öruggari, og einhvers staðar á milli, þar á námskeiðið er Fyrsta vandamálið sett, þú verður beðinn um að lýsa sjálfur. Og ef þú ert meðal þeirra sem minna þægilegt, það er góður af hlutur að þú bara frekar vita. Og reyndar, það er verið að vaxandi lýðfræðilegar í CS50 fyrir alveg nokkrum árum. Eins og á síðasta haust fyrir dæmi, 58% af bekknum lýst sig sem meðal þeirra minna þægilegt, með 9% meðal þeirra sem meira þægilegt, og þá hinir nemendurnir úti í rauður lýsa sig eins einhvers staðar á milli. Og þú munt sjá hér umfjöllunarefnin heild og áætlun köflum, sem öll eru í boði í eigin persónu, í rauntíma, með námskeiðið er Amazing staff kennslu félögum og auðvitað aðstoðarmenn, sumir hverjir þú munt hitta í bara smá stund. Deildir sig, eins og þú munt sjá, munu vera mánudögum og þriðjudögum og miðvikudögum, þannig að leyfa þér að kafa á eftir að taka þátt, ef þú svo velja, í námskeiðið er fyrirlestur fyrr um viku. Og þá skrifstofa klukkustundir, sem vissulega, með hverri brottför ári, hafa ekki verið minni a áskorun fyrir námskeiðið. Og á þessu ári, við erum að skipuleggja að aðeins að halda skrifstofu hours-- einn á einni tækifæri til hjálp fyrir nemendur á miðvikudögum fimmtudögum og sunnudögum, the síðastur af þeim vera í the síðdegi með hönnun til að draga úr nokkuð af streitu sem undantekningarlaust kemur með seint nótt P-settting með frest looming-- en Viðtalstími verður einnig boðið á mánudögum og þriðjudögum og Miðvikudaga og föstudaga og laugardaga, takk vinum okkar á HSA. CS50 hefur nú eigin rúm hennar fyrir nemendur og CS50 starfsfólk, topp 67 Mount Auburn Street, þarna í Harvard Square. Framtíðarsýn sem er að CS50 er TFS og VS alla vikuna, ansi mikið um mest daga, verður það til stuðnings. Svo ef þú hefur fengið nokkrar spurning um p-setja eða þú ert tilfinning a lítill lokað eða smá ruglaður, og Heck, hefur þú fengið klukkutíma eða hálftíma milli flokka, sérstaklega í square-- getur þú skjóta á og hafa þessi spurning svarað á að hafa þessi rugl clarified-- mjög mikið í anda, þú ert þekki, stærðfræði eigin deildarinnar stærðfræði spurningar miðstöð, en ansi mikið allan sólarhringinn á [? Gcal?] Að við munum birta á netinu. Kennslu er einnig í boði fyrir þá nemendur, frjálslega frá námskeiðið er eigið starfsfólk ef þú vilt nánara einn á einn, eða aðeins tveir eða þrír bekkjarfélagar, vinna með einn af starfsmönnum Námskeiðið er. Og reyndar, þetta eru hér bara sumir starfsmenn Námskeiðið er, fáeinir þeirra sem þú munt mæta í bara smá stund. Í raun, CS50 eigin höfuð kennslu náungi, og höfuð námskeið aðstoðarmaður, og preceptor, gæti komið á allt, leyfa þá til að segja halló. [Applause] Ræðumaður 1: [inaudible]. [Applause] Ræðumaður 2: [inaudible]. [Applause] Ræðumaður 3: [inaudible]. [Applause] DAVID Malan: Og leyfa okkur að koma um borð tvo af CS50 er mest eldri starfsmenn, Rob og Zamayla eins og heilbrigður. [Applause] Reyndar, bæði Rob og Zamayla hafa verið með okkur svo lengi, að ég var fær til að fara í skjalasafni CS50 er og fundið þetta mjög SD myndefni þeirra sem taka þátt á sviðinu sjálfir fyrir nokkrum árum. ROB: [inaudible]. [Applause] ZAMAYLA: [inaudible] [Applause] DAVID Malan: Þakka þér. Svo í viðbót við þessar liðsmenn hér, CS50 hefur hópur næstum 100 starfsmenn, sem allir verður í boði fyrir hluta og Viðtalstími og svo margt fleira. Og eins Rob segir líka, þetta er mikilvægasti yfirferð CS50 í 10 ár sem Ég hef verið í [inaudible]. [Inaudible] áherslu sérstaklega í að veita uppbyggingu stuðning, snyrtingu burt a einhver fjöldi af megnið sem hefur verið safnast í 10 ár á endurtekningu þróun á vandamál setur Námskeiðið er. Svo á þessu ári, ekki aðeins í bekknum en einnig í formi vandamál Auðvitað er setur, ættir þú að finna hluti til vera meira straumlínulagað, trimmer, mikið viðráðanlegri en á árum áður, eins og við varpa af farangrinum sem er þróað af eðli vaxandi ár eftir ár og iterating. Svo nýja og betri hefst í dag. Þú munt hitta meira af Starfsfólk Auðvitað er út í [inaudible] á 2:30, þar sem við þjónum, sem hefð, köku. Það er dálítið meira köku en það, en þú munt Meet Erin og Tobias og aðrir enn. Og láta mig gefa þér ferð áður en við heyrum frá sumir af the annar starfsmanna í bekknum, hvað bíður eins og heilbrigður. Í raun, við byrjum alltaf CS50 er önn þetta koma laugardagur, með það sem er kallað CS50 Puzzle Day. Það hefur ekkert að gera með tölvunarfræði í sjálfu sér, en með um vandamál leysa almennt. Og ef þú velur svo til að taka þátt, fyrir sumir af the boð, þú gætir hafa séð hurðina lækkað eða á sviðinu hér, það er tækifæri í hópum á tveimur eða þremur eða fjórum, til að taka þátt í þrautir og pizza og verðlaun og more-- á laugardaginn, Dvöl lag fyrir fleiri. Þú munt finna líka að sérhver Föstudagur, á Fire and Ice, er CS50 koma með heild búnt nemenda að hádegismat, til að gera stór flokkur finnst meira náinn, og almennt koma saman Alumni og vinum frá iðnaði að tala um hvað þeir eru búnir verið að frá útskrift. Á sama hátt, á þessu ári, við munum vígja alltaf fyrst CS50 50 erfðaskrá contest-- a á meðal-önn tækifæri til að leyfa öllum á valið í grunni, að hafa Áskorunin vitsmunum gegn bekkjarfélögum, aftur í teymi af tveimur eða þremur eða fjórir, nota aðeins þessi forritun kunnátta sem þú ert þá undir Beltið eftir aðeins sex eða sjö vikur í bekknum, og taka þátt í þessari tegund af samkeppni online-- ef þú vilt að skerpa eigin færni allt meira í þeirri áskorun. Í lok annarinnar er svokölluð CS50 Hackathon-- tækifæri sem hefst á 7:00 PM endar á 7:00 AM, og á leiðinni eru 12 kvöld klukkustundir þar sem að kafa í endanlegri project-- Auðvitað er tækifæri til að hanna og innleiða flest allt af áhuga til þín með fræðslunni Leiðbeiningar náungi er. Around 9:00 gerum við yfirleitt þjóna pizza, 1:00 AM, Philippe er, og fáir af okkur sem eru enn vakandi 5:00 AM, skutla eru bussed niður Leiðin til IHOP í morgunmat. Og þá nokkrum dögum seinna er svokölluð CS50 fare-- sem endi önn sýningu í Hátíð bara hversu langt svo margir CS50 nemendur hafa komið frá viku núll alla leið til viku, og hafðu í huga að 73% af þeim bekkjarfélagar og þitt á þessu ári hafa aldrei tekið CS bekknum áður. Í raun, að reemphasize eins mikið, hér er nokkur fleiri andlit frá starfsfólki CS50 er. Ræðumaður 4: [inaudible]. Ræðumaður 5: [inaudible]. Ræðumaður 6: [inaudible]. Ræðumaður 7: [inaudible]. Ræðumaður 8: [inaudible] Ræðumaður 9: [inaudible]. Ræðumaður 4: [inaudible]. Ræðumaður 10: [inaudible]. Ræðumaður 11: [inaudible]. Ræðumaður 12: [inaudible]. Ræðumaður 13: [inaudible] Ræðumaður 14: [inaudible]. Ræðumaður 13: [inaudible]. Ræðumaður 15: [inaudible] Ræðumaður 16: [inaudible]. Ræðumaður 11: [inaudible] Ræðumaður 5: [inaudible]. DAVID Malan: Sumir af the lið eru sjálfir að versla bekkjum. En ef þeim meðlimum af CS50 starfsfólk eru hér, gæti komið á upp fyrir réttlátur a augnablik. CS50 er TFS og VS og [? starfsfólk?] Meðlimir here-- þetta eru bara nokkrar á faces-- einn af hverjum þú bara sá, og nokkrar other-- og fáeinir aðrir enn. Hvers vegna eigum við ekki að fara á undan og leyfa þið fimm mínútna hlé. Ef þú þarft að önd út til búð flokkar, það er fínt. Og í fimm mínútur, munum við halda áfram, taka a líta á Scratch-- sem fyrsta forritunarmál okkar, mæta Starfsfólk Námskeiðið er hér meira, og einbeita lokum á Heimadæmi núll. Þannig að við munum vera aftur í fimm mínútur. [Applause] Allt í lagi. Þannig að við erum aftur. Og í okkar eftir tími í dag, markmiðið er að jafna íþróttavöllur í skilmálar af sumum hugtök, hvað varðar hugmyndir. Því reyndar, eins og á sumir af the sjókort fyrri, það er að fara til vera a svið af stigum reynslu í bekknum, sumir af sem hafa nemendur hafa tekið nokkrar forritun áður, sumir hverjir hafa ekki. Og svo með þetta fyrsta vandamál sett og með þessari fyrstu tungumáli höfum við tækifæri til að byrja að taka sem sjálfsögðum hlut eftir dag nokkrar algengar orðaforða og hugmynd. Og við munum gera þetta með því að Fyrsta languages-- námskeiðinu er auk C og Python og JavaScript og SQL og HTML og CSS, Við munum vera með áherslu upphaflega og bara fyrir vandamál setja núll á þessu myndræna tungumáli, sem heitir Scratch, þróað af MIT Media Lab niður veginn, til að hjálpa nemendur og börn sérstaklega tjá sig algorithmically-- á þann hátt meira í samræmi við það við gætum hringt computational hugsun. Og það er gagnlegt tungumál því mjög fljótt í næstu viku í viku einn, gera við umskipti til a fleiri hefðbundin og yfirnáttúrulegt tungumál kallast C, sem er eingöngu texta. Þú notar aðeins lyklaborðið í Til að skrifa leiðbeiningar eins og þessir á skjánum. En jafnvel þótt þú hafir aldrei séð forritunarmál áður, í bara glancing á þetta allt vera það dulinn, þú getur sennilega giska á að sennilega prenta Hello World. En það er mikið af nokkur dæmi um setningarleg kostnaður þar. Það er undarlegt kjötkássa tákn eða kjötkássa tag upp efst. Það er því oddklofar, sumir svigum, hrokkið axlabönd, hálf-colon-- það er bara svo mikið sjónræn setningafræði sem gerist í leiðinni. Við byrjum námskeiðið með Scratch svo að fá fyrri alla þá vitsmunalega uninteresting truflun, og einbeita sér í staðinn á þeim hugmyndum. Í raun, þetta gæti verið áður. Þetta, fyrir þetta, viku skal vera eftir. Þetta, í þessu myndræna Tungumál Scratch, er hvernig þú myndi innleiða það sama program-- forrit sem þegar keyra, einfaldlega segir halló heimur. Og hvað er gott um Scratch er það er þetta myndræna forritun umhverfi sem notar ráðgáta stykki eða blokkir, að aðeins interlock saman ef það gerir rökrétt vit til að gera það. Og með grunni er hægt að þróa fjör og gagnvirka leiki og list, og allir tala af hlutur sem þú might ímynda sér í eigin huga, og innleiða þá einfaldlega með draga og sleppa stykki púsluspil. Og reyndar, munum við hafa getu að tjá sumir af sömu hugmyndir sem ég nefndi bara smá stund síðan í samhengi við Mike Smith og leita hlutina a sími book-- eins virka, bara aðgerðir, hluti eins og lykkjur sem gera það aftur og aftur, breytur, sem er eitthvað sem við munum kynna, en það er kunnuglegt kannski frá algebra-- bara einhvers konar tákn að geyma ýmsar gildið sem þú gætir þarf later-- Boolean tjáning, þar sem þeir já nei eða satt rangar spurningar frá áður. Aðstæður eru þeir gafflar Í road-- þessir útibú svo að segja. Og svo eru sumir áhugamaður eiginleikar við munum sjá enn í dag, kallast fylki og þræði og Viðburðir, að við munum þá endurskoðun á tími á mismunandi tungumálum. En Scratch gerir okkur til að kanna allar þessar. Svo hér í grunni, þetta fjólublár blokk er það fall er oftast að fara að líta út. Þetta fjólublátt púsluspil stykki sem hefur sumir orð eins og segir, sem er aðgerð, og þá gæti það hafa rifrildi eða parameter-- einhvern hátt sinnar tegundar á sérsníða hvað það blokk gerir þannig að það er ekki fyrirfram ákvarðað með MIT hvað þetta fjólubláa blokk segir. Í raun, þú munt sjá í stund sem ég er fær um að slá orðin eins halló heimur, eða halló David, eða halló Zamayla, eða hvað ég vil, í rifrildi að því ráðgáta piece-- hvítur kassi þar. Á sama tíma, ef ég vil lykkju, munum við sjá að það er ráðgáta stykki sem líta smá appelsína svona. Og lögun þeirra eins konar bendir til þess að eitthvað gerist aftur og aftur í lotu. Þannig að ef ég vefja segja halló heimur blokk með eilífu blokk í grunni, það er bara að fara að halda að segja halló Heimurinn eilífu, alveg bókstaflega. Á sama tíma, það er annað gerð lykkju í grunni að við munum see-- endurtaka block-- þar, ef þú vita fyrirfram hversu oft þú vilt lykkja til að framkvæma endanlegt nokkrum sinnum í fact-- þig Hægt er að tilgreina að því að slá í nokkrum eða jafnvel tengja í breytu, eins x eða y eins og við munum sjá. Í raun, breytur eins Ég í þessu tilfelli, sem er sameiginlegt heiti fyrir að heiltölubreytu sem bara geymir number-- heiltala gæti verið, til að nota þennan orange blokk hér til setja breytu eins og ég á núll. Hér er dæmi í grænum a Boole-segð í grunni. Jafnvel þó að þetta lítur út eins og stærðfræði uppskrift, stærðfræði ójöfnur eins og þetta í raun eru Boolean tjáning. Þetta er annað hvort sönn eða ósönn. I er minni en 50. Það er annað hvort já eða nei svar eða satt eða ósatt svar. Og við munum almennt köllum þessir Boolean tjáning. Og það þarf ekki að vera 50. Það getur verið x minna en y, stærra en y, jafnt y-- allir tala um annað spurninga mætti ​​spyrja. Nú, við fyrstu sýn gæti þetta litið skyndilega alveg djörf hér, og það er. En hugmyndin vitur, það er ansi kunnuglegt frá áður. Ef x er stærra en y, en segja eins mikið. Annars ef x er stærra en y, þá segja eins mikið. Annars segja að x er jafnt og y. Þannig að við höfum dæmi Það þriðja scenario-- eina þriðja possibility-- X er annað hvort meira en, minna en, eða jöfn. Þannig að við höfum þrjá leið gaffal í veginum. Og eftir það er flott here-- Scratch, það virðist, hefur aðeins eina þraut stykki, í þessu tilfelli, í Ef annars blokk. Og enn sem virðist gefa til kynna að þú getur hafa aðeins tvíhliða gaffal í veginum. Þú getur farið til vinstri eða hægri, en hvað um það þriðja atburðarás? Hvað ef x er jafnt Y? Ekki máli. Taktu eina þraut stykki, setja annað inni í honum að búa til merkingartækni jafngildi um ef, annars ef, else-- og nú þig hafa þrjú hátt gaffal í veginum. Og eins og við munum sjá, að stykki klóra púsluspil er hægt að teygja og vaxa, svo eins og að troða meira efni í þeim. Þú þarft ekki að passa allt í sjálfgefna stærð sína. Þetta er eitthvað sem við munum fljótlega sjá er kallað array. Það er eins og list-- einhverja leið geyma mörg stykki af upplýsingar í breytu, ekki bara tala. Þetta munum við sjá fulltrúa eitthvað sem kallast multi-þráður. Í raun, allt af þinn Macs og tölvur þessa dagana styðja multi-þráður, sem þýðir að þú getur bókstaflega gera marga hluti í einu. Hægt er að hafa Microsoft Word upp í forgrunni, vinna á einhverjum ritgerð. Þú gætir hafa a flettitæki í opnun bakgrunni G-mail eða Facebook eða þess háttar. Tölvan getur gert marga hluti í dag vegna þess að það er multi-snittari, og áætlanir eru þeir í í Einkum eru einnig multi-snittari. Það er hlutir sem kallast atburðir sem vel í heimi grunni, og þá er það alltof, til að gera eigin sérsniðnum þraut okkar stykki ef hlutur í raun ekki fyrir hendi fyrirfram. Þannig að við skulum hvetja þetta eins og hér segir. Fyrir nokkrum árum, þegar ég fyrst uppgötvað Scratch, þegar ég var í raun Grad nemandi við MIT, við okkur var falið að gera heimavinnuna. Og ég implemented-- sem eftir á að hyggja, var mjög lélegt ákvörðun vegna þess að það er mest infuriating lagið í heiminum að hlusta á átta klukkustundir meðan að vinna á homework-- þinni en eitthvað sem ég kallaði Oscar Time, sem er kannski kunnuglegt lag. CS50s eiga Jordan Hayashi, einn af fleiri háttsettir okkar starfsmenn, hefur uppfærsla það fyrir 2015 og nú 2016, þar aftur í dag, Ég hafði allt bara að fara í Oscar ruslið getur. Nú erum við styðjum endurvinnslu og jarðgerð. En til að mála mynd af því sem við getum gert hér og til að hvetja sum neðri hæð dæmi, gætum við fengið einn annan sjálfboðaliða til að bara koma á upp og spila fyrsta mitt skilaverkefni alltaf? Komdu upp. Hvað heitir þú? HENRY: Henry. DAVID Malan: Henry, koma á upp. Komdu upp. Head hvor vegur, og þú munt sjá í smá stund, Ég ætla að fara á undan og högg the grænn fáni í efstu hægri hendi horn, sem þýðir að fara. Litli stöðva merki helgimynd er að fara að segja stopp, og það er þegar þú byrjar og stöðva the program. Gaman að hitta þig. Allt í lagi. Þannig að við erum að fara að sjá leiðbeiningar á skjánum í aðeins augnablik. Og bara með því að spila þennan leik fyrir nokkrum seconds-- treystu mér, við erum ekki að fara að vilja til að spila alla leið til end-- þú verður fá tilfinningu fyrir því hvað forritið gerir. Og meira en bara einblína á Henry vera gott eða slæmt á þessum leik, fókus og hvernig var það framkvæmd af mér upphaflega og þá með Jordan. Með öðrum orðum, þar eru stærðirnar? Hvar eru lykkjur? Hvar eru aðgerðir? Og við munum sjá hvort við sjáum ekki þeir sem undir hetta. Bara smella og draga rusl til viðeigandi bin. [TÓNLIST] Allt í lagi. Það er mjög gott. Hvers vegna eigum við ekki að stöðva það þar. Þakka þér. Hamingjuóskir til Henry. Þakka þér. [Applause] Réttlátur ímynda kembiforrit þessi forrit. Ef það er vandamál tvö mínútur voru song-- en svo hvað er að gerast hér í raun? Eins flókið eins og það gæti byrja að virðast fá með tímanum, reyndar fleiri og fleiri efni byrjaði að falla, hvað er áhugavert um af þessu tagi example-- og við munum sjá nokkrar others-- er að ef þú líta framhjá flókið eða tæknibúnaður af leiknum, það er mjög einfalt að byggja blokkir sem play-- sem allir, ef þú distill þá til þeirra byggingareiningar, eru mjög aðgengileg og implementable við sig. Til dæmis, er það verið nokkur tími, en ég er nokkuð viss um hvað ég gerði í upphafi þegar gera þennan leik í fyrsta sinn Ég var alveg eins og procrastinated. Ég vissi ekki einblína á allt á rökfræði eða þraut stykki, Ég áherslu á grafík og finna götu staða og ruslið getur og allt það. En þeir voru nauðsynlegur innihaldsefni í fyrstu. Og þegar ég kláraði að fresta og þar út heildstæðu umgjörð, Ég ákvað, láta mig gera bara einn stykki af ruslið falla af himni. Og við munum sjá Scratch styður það sem kallast sprites-- stafi sem hægt er hafa mismunandi búningum á svo þeir líta öðruvísi. Og svo ég setti ruslið búningur á einum slíkum Sprite. Og ég þurfti bara það að falla af himni. Og svo kemur í ljós, Scratch, eins og flest forritunarmál, styður slembitölur eða tæknilega sauðakóðanum slembitölur, svo sem með því að draga og sleppa ákveðnum ráðgáta stykki, ÉG var fær til hafa ruslið koma frá vinstri í fyrstu. Og svo næsta skipti sem það féll úr rétt og þá frá miðju. Og allir leikurinn gerði var bara hafa ruslinu falla af himni. Þú getur ekki benda á það eða smella á það. Þú getur ekki opnað ruslið getur. Þú getur ekki gert neitt. En það var barn skref átt fullkominn sýn minni. Og eftir það, ég reyndar framkvæmda einhvers konar af sensing þannig að ef þú did smellir og draga á stykki af ruslið yfir ruslinu geta, Oscar er loki myndi opna og loka. Ekkert myndi gerast í ruslið, en að minnsta kosti lokið myndi opna og loka. Svo þá stöðva, stíga tvö af tveimur. Og þetta er það sem er að fara að vera Lykillinn í bæði Heimadæmi núll og í forritun almennt, er að taka þessar mjög vísvitandi barn stíga. Vegna þess að ekki aðeins er það að leyfa þér að finnst heiðarlega leikinn miklu meira quickly-- það er Það versta í heimi til að reyna að koma öllum Oscar Time, þá klukkustundum högg síðar græna fána, og ekkert virkar eins og vænta því hvar þú jafnvel byrja að kemba eða leysa þessi forrit? Það er bara yfirþyrmandi. Og svo sannarlega faðma þessa hugmynd að taka steps-- barn stíga aftur og again-- byggja upp eitthvað sem er, á endanum, mjög áhrifamikill og flókin, en í fyrstu, er ekki nærri eins mikið svo. Í raun, við skulum gera þetta. Leyfðu mér að fara á undan and-- Skafðu sig staðar á vefnum á Scratch.MIT.edu, og þú munt vera sagt sem mikið aftur í vanda setja núll, forskrift fyrir sem er nú þegar á heimasíðu CS50 er. En þetta er það Skafðu sjálft er. Og það er í raun bara þrjár aðal svæði. Efst til vinstri þar er svokölluð stigi. Þetta er Scratch. Sjálfgefna búningur er köttur. Og þetta er rétthyrnd heimurinn í sem þú getur move-- upp, niður, til vinstri, rétt og sum önnur efni. Í miðri hér eru flokkar okkar eða bretti okkar af stykki púsluspil, og mismunandi litum meina mismunandi hluti. Og ef þú pota í kring, þú munt sjá hlutir eins lykkjur og skilyrðum og breytur og önnur innihaldsefni. Og þá hérna er forskriftir svæði. Þetta er þar sem ég er að draga og sleppa þessir púsluspil stykki til að gera hlutina. Svo skulum gera eitt slíkt. Leyfðu mér að fara á undan and-- og ég veit hvar það er. Þannig að ég ætla strax að smella á þar sem ég veit hlutirnir eru tilbúnir til að vera, en benda og smella og poking í kring eru óhjákvæmileg. Svo þegar grænn fáni smellt hvað mig langar að gera? Ég ætla að gera þetta. Ég ætla að draga þetta fjólubláa þraut stykki, segja halló í tvær sekúndur, og láta mig stækka. Og ég ætla að breyta þessu að vera það sem ég vil það að be-- halló heimur tvær sekúndur er fínn. Nú ætla ég að smella á grænn fáni, eða ef ég vil virkilega, Ég get Full Screen það og koma svo aftur. Það verður bara að halda allt í einum glugga. Grænn flag-- halló heimur. Allt í lagi. Ekki allt sem áhugavert. Svo láta mig fara á undan og gera þetta. Leyfðu mér að reyna eitthvað annað. Þegar grænn fáni clicked-- skulum gera eitthvað eins hljóð. Og eftir að út af kassi fyrir frjáls þú færð köttur hljóð, sem er sjálfgefið Sprite. Svo nú láta mig fara á undan og högg græna fána núna. [Meowing] Aw. Það er yndisleg. Ég er forritun. Svo hvað hef ég gert? Þetta er ígildi a program. Það er augljóslega frábær einfalt. Það var í raun ekki að taka allt sem mikið fyrirhöfn og MIT gerði mest af verkinu, en ég hef kallað fall. Ég hef notað aðgerð. Ég hef gert nokkrar aðgerðir, með því að nota bara að eitt fjólublátt ráðgáta stykki. Jæja, ef ég vil gera Þrír meows í röð? Leyfðu mér að fara á undan og gera tvö og þrjú. Og eftir því að þegar þér sveima nálægt ráðgáta stykki, smá hvítt lína birtist konar segul, og það mun smella saman þegar þú lætur fara. Við skulum sjá hvað gerist hér. [Meowing] Það er padda. Ég heyri bara eina meow. Hvers vegna gæti það verið? Já? Já. Við í raun ekki heyra það, en það er gott innsæi. Þeir eru allir að spila á sama tíma. Hvers vegna? Jæja, tölvan er bara að fara að gera það sem þú segir það að gera. Svo ef þú segir, leika hljóð, spila hljóð, spila hljóð, en þú segir það ekki að spila fyrr en þú ert búinn, spila þar til þú ert búinn, það er að fara að blása í gegnum forritið mjög hratt og ekki aðeins það sem þú segja það að gera. Þannig að ég þarf reyndar að laga þetta í nokkra vegu. Ég gæti bara gert þetta, að losna við þetta. Leyfðu mér að reyna þetta önnur þraut piece-- spila hljóð meow þar til gert, og þá draga þrjú þessar og smelltu Spila. [Meowing] Það er í raun ekki very-- þakka you-- mjög eðlilegt. Svo hvers vegna ekki I-- láta mig fara að stjórna hér. Nice. Bíddu eina sekúndu, og nú láta mig fara aftur að hljóð og spila hljóð þar til gert, og þá láta mig fá að bíða eina sekúndu. Og þá láta mig fara og fá eitt meira hljóð, og hér við fara. [Meowing] Smá meira náttúrulegur, en þetta er ekki mjög duglegur. Eins og ég var að fá leiðindi, allir að vera það stuttlega, smella og til baka og í raun endurtekning work-- minn ansi mikið að afrita og líma. Reyndar, ef ég stjórna smellt eða hægri smellt Ég hefði getað bara afritað og límt. Hvað væri betra smíða til að nota? Hvað hugmynd frá áður? Já, svo lykkju. Og í raun, ef við pota í kring, við gætum fundið einmitt það. Leyfðu mér að fara á viðburði eða frekar Control. Svo repeat-- ég ekki vil það að vera 10 sinnum. Það er að fara að fá pirrandi fljótt. En ég mun endurtaka þrisvar sinnum. Leyfðu mér að fara aftur í hljóð og spila hljóð þangað til það er gert. Leyfðu mér að fara aftur til að stjórna og bara bíða eina sekúndu. Og takið eftir, gætir þú held að það passar ekki, En aftur ef segul þú láta hana smella í stað, það mun vaxa að fylla. Hvað er það að spila núna? [Meowing] OK. Nice. Og þetta er það sem væri kallað forrit sem er líka rétt. Það meowed þrisvar nokkuð náttúrulega, en það er betra hannað. Ég er að nota minna offramboð. Ég vissi ekki að afrita og líma neitt. Ég notaði bara betri hugmynd. Nú, þetta er samt ekki allt sem áhugavert með Scratch að gera nokkuð. Svo skulum gera eitthvað annað í staðinn. Gerum eitthvað eilífu. Og þú veist hvað? Hreyfing virðist áhugavert. Við skulum hafa hann að færa 10 skref og högg leika núna. OK. Jæja við getum konar draga hann aftur, og hann er enn gangi vegna þess að hann er að gera þetta að eilífu. Svo lykkja er að gera hvað það er að segja að gera, en þetta er ekki allt sem áhugavert. Gerum þetta. Leyfðu mér að bæta við stjórn blokk, og nota einn þessara skilyrða fyrir í fyrsta skipti. Svo það er að fara að flytja 10 steps-- 10 punktar, 10 punktar á screen-- þá er að fara að spyrja þessa spurningu. Ef eitthvað er satt, þá gera eitthvað inni í reitnum. Svo kemur í ljós Sensing hefur allt fullt af Boolean expressions-- spurningar um Já Nei eða satt rangar form-- láta mig gera þetta. Ef touching-- og þá er það þetta litla vallista. Ég get parameterize það. Ef að snerta edge-- skulum gera eitthvað svona. Svo ef að snerta edge-- láta mig fara aftur til hreyfingu. Og hvers vegna ekki við bara snúa 180 gráður? Allt í lagi. Svo eilífu, flytja 10 skref. Ef þú ert að snerta brún, snúa 180 gráður. Og það er ekki the endir af the program vegna þess að þú ert í eilífu loka, svo það er að fara að fara aftur og aftur og aftur og aftur. Svo skulum sjá hvað gerist. OK. Smá þrjótur, en góður af kaldur. Og við getum bætt við þetta nokkrum kjánalegt sem eru ekki allt sem vitsmunalega áhugavert. En ef við högg þetta litla hljóðnema button-- ouch. Leyfðu mér að hreinsa þetta upp. Leyfðu mér að auka þetta eins þeir myndu segja í sjónvarpinu. Hreinn það upp, Vista og Nú fara upp til forskriftir. Og nú, láta mig fara að hljóma. Leyfðu mér að gefa það a nafn. Ég kalla þetta Ouch. Og nú spila hljóð Ouch. Takið það birtist í Smá vallista. Látum okkur sjá. [Ouch] [Hlæjandi] En við getum breytt T hans á flugu. Við getum verið tvöfalt pirrandi. [Ouch] Eða ef við tökum það eins 1.000 skref í time-- OK. Þannig að við erum að fara að yfirgefa þessi einn einn. Svo aftur, byggja blocks-- I byrjaði með eitthvað frábær einfalt, og þá er ég bætti lögun, bætt lögun, bætt lögun. Og ég þarf ekki lengur að hafa áhyggjur af hvernig fyrsta af þeim eiginleikum var framkvæmd eins og ég halda áfram til lag hlutina ofan. Svo í raun, láta mig gera eitt annað hér. Leyfðu mér að fara á undan og opna skrá sem Ég kom fyrirfram, heitir Sheep. Svo það hefur örlítið mismunandi karakter sem lítur svona út. Og láta mig sjá hvort ég get ekki gera eitthvað með teljara í þessu case-- svokallaða breytu. Ég ætla að fara á undan og undir Events-- láta mig fá grænn fáni smellt. Þá láta mig fara í Data, sem ég veit frá bara að leika í kring áður, er þar sem breytur eru. Og ég ætla að fara á undan og draga þetta. Svo breytu sem heitir gegn, og Ég ætla að frumstilla hana á núll. Ég get kalla það anything-- x eða Y eða z-- en í forritun, hringja eitthvað í merkingu gagnleg leið, eins og borðið, sem lýsir hvað það er, það er mun auðveldara að lesa kóðann þinn síðar. Leyfðu mér að fara á undan og fá að eilífu loka hér. Og láta mig fara til útlit síðu og gera Say blokk. En hvað er kaldur um breytur er ég ekki ert bara að slá í eitthvað eins halló heimur, sem við höfum nú þegar gert, get ég í staðinn að fara til Data og draga breytu mína, og jafnvel þótt lögunarinnar er ekki alveg líta út eins og það ætti að passa, það mun vaxa að fylla. Og ég verð bara að segja teljarann ​​fyrir einn second-- spoiler-- hann er að fara að telja. Við munum segja það í eina sekúndu. Þá ætla ég að fara og hafa hann beðið eina sekúndu, svo það þýðir ekki að telja upp of hratt. Og þá loks, breyta teljara með því að one-- í öðrum orðum, hækka teljarann ​​í einu Umframvirði og gera þetta að eilífu. Svo sauðfé líka, eins og forritari, telur frá 0. Og ef við bíðum nógu lengi, hann mun gera þetta að eilífu. En það er ekki alveg satt, vegna þess að í raun, eins og við munum uppgötva í viku eitt, heiltölur og tölvur almennt, tæknilega hafa aðeins finite-- vel, frekar tölvur, þegar þeir tákna heiltölur, hafa aðeins endanlegan fjölda bita. Þeir ljósaperur úti getur aðeins treyst svo hátt áður en þú ert út af ljósaperum. Og tölvu líka, Aðeins hefur svo mikið minni, Aðeins hefur svo marga smára, svo það getur aðeins treyst svo hátt. Svo kemur í ljós að sauðfé, Ég held, getur treyst á 2 milljarða eða eitthvað ansi stór. Þannig að við erum ekki að fara að bíða eftir að þetta gerist. En að lokum einhver galla að gerast sem getur haft nokkur mjög raunverulega heimi afleiðingar. En fyrir utan sauðfé, sem bara kynnir breytu. Við skulum fara á undan og opna eitthvað sem ég gerði fyrirfram hér kallað Pet sem Cat-- Gæludýr Cat hérna. Og eftir hér það er nokkrar blokkir, en þegar grænn fáni smellt eilífu að gera eftirfarandi. Ef þú ert að snerta músina pointer-- svo bendilinn á skjánum, sem arrow-- leika hljóð meow og þá bíða í tvær sekúndur. Og bara að gera þetta að eilífu. Bara stöðugt bíða til að sjá hvort pointer-- ef kötturinn er að snerta músina. Svo ég högg leika. Ekkert er að gerast. En eins og ég færa bendilinn yfir köttur, [Meowing] Og ef ég flyt það í burtu, ekki klappa kettinum lengur. Svo sumir skilyrt rökfræði orpið inni í lykkju. Hvernig væri þessu dæmi, vísvitandi heitir ekki gæludýr Cat? Hvað er þetta að fara að gera? [Meowing] Hvers vegna ættir þú ekki að klappa kettinum? [Meowing] OK. Svo er þetta dæmi um hvort annað. Það er ákvörðun benda og vegna þess að það er að sitja í lykkju, þeir eru báðir að fá köflóttur. Er þetta satt? Er þetta satt? Er þetta satt? Er þetta satt? Og að lokum, ein af þá er að fara að sækja um og svo þú heyrir annaðhvort meow eða öskra á ljón í því tilfelli. Jæja, við skulum gera örlítið meira ímynda eitt sem ég gerði fyrirfram too-- þræði. Svo er þráður bara einn Það sem tölvan getur gert. Svo a multi-snittari program er a program sem getur gert marga hluti í einu. Og öll þessi dæmum svona langt hafa haft bara einn handrit, svo að speak-- eitt forrit eins og þetta upp hér. En eftir þetta forrit hefur tveir sprites, tveir stafir. Eitt er fugl. Einn er köttur. Og eftir þegar ég smelli á þetta niður vinstri, hafa þeir hvor eigin forskriftir þeirra eða forrit tengd þeim. Og bæði af þeim áætlanir, tilkynning, byrjun við þegar græna clicked-- fána skulum líta á cat-- þegar grænn fáni smellt. Og svo reyndar þegar ég lenti spila núna, tveir hlutir eru að fara að gerast í einu. Kötturinn og fuglinn eru bæði að fara að starfa samtímis til að búa til þessi áhrif. Og þú gætir ímyndað þér hvað er að gerast. Það er lykkja og fuglinn og kötturinn eru í lykkju. Fuglinn er bara skoppandi eins Ég var áður þegar ég sagði Ouch. En kötturinn er greinilega yfirburði. Það er annar Sensing blokk sem bendir á köttinn vísvitandi að fuglinn í þessu tilfelli hér. Þannig að við gætum stríða sundur, með því að leita gegnum þær blokkir, hvað er að gerast. En lykillinn efnið hér er ein. Fuglinn, þannig að þessi leikur er ekki alveg boring-- eða þetta animation-- byrjar á handahófi átt. Og tölvan er að tína a tala á milli 90 og 180 í raun, þannig að það er örlítið mismunandi teiknimyndir hvert skipti. Og þá taka hér, ef kötturinn er snerta fuglinn, þá spila ljón fjögur sound-- öskra. En meðan á fuglinn er litatöflu, höfum við á þessu. Forever, ef ekki snerta köttinn, bara halda áfram þrjú skref. Og þá er hér annað ráðgáta stykki. Ef þú ert á brún, hopp. Svo fuglinn er bara svona minding eigið fyrirtæki sitt, bara fljúga í kring og skoppar, og það er mjög kötturinn sem hafði skilyrt rökfræði til að ákvarða hvort það hefði lent fuglinn. Allt í lagi. Svo skulum gera eitt annað hér, þetta vera kölluð Hi Hi Hi. Og þetta hér bara gerir þetta í eilífu lykkju. En notice-- hvernig eigum við að hætta þetta mjög pirrandi forrit? Högg the rúm bar. Vegna þess að ef ég geri það, vinstri hönd program-- eftir það er stöðugt listening-- er lykillinn pláss stutt. Ef rúm bar ýtt, og ef svo er, hvað þýðir það að gera? Það er mjög algengt tækni. Það setur breytu jöfn að einhverju gildi. En það skiptir það gildi. [? Svo útliti?] byggt á shape-- I með breytu sem ég skrifaði fyrirfram kallast Þögguð, sem segir bara já eða nei. Er hljóðið þögguð eða ekki? Satt eða ósatt? Og takið eftir, ég er að segja this-- ef þögguð er núll, þá breyting til einn, annars sett Mute það á núll. Svo bara flettir gildi frá núll til einn. Ég gæti hafa done-- breyta því frá tveimur til þremur og þremur til tveimur eða 4-5 eða fjórir til sex. En það skiptir ekki máli hvaða tölur ég nota, svo lengi sem ég halda breyta henni hið gagnstæða. Og flest allir forritari myndi bara velja núll og one-- rangar og satt, burt og skráin til að tákna þetta. Og þetta er enn í gangi. Ef ég högg the rúm bar aftur [SEAL Hljómar] The program er enn í gangi. Vegna þess að það er þetta annað handrit sem segir, að eilífu gera eftirfarandi. Ef þögguð breyta jafnt zero-- svo ef þú ert ekki að þagga er logic-- ef það er ósatt eða nei, þá spila hljóð, vegna þess að þú ert ekki þögguð. Þú ættir að spila hljóð og þá held hi hi hæ í tvær sekúndur og þá bíða, og gera það aftur og aftur og aftur. Og svo á þennan hátt höfum við leið til fólk to-- fyrir forrit til að hafa samskipti. Og þeir þurfa ekki að vera eins dags eins og aðrir. Í raun, poking around-- engin orðaleikur intended-- einhver eyddi mikið af tími á internetinu framkvæmdar- PokemonGo í grunni. Það geolocates jafnvel þér í Cambridge eða Allston hér. Svo ef þú vilt sjá líka hvað fólk getur gert er this-- mjög fínt valmyndinni. Smelltu hér. Þetta er mér með örvatakkana mínum núna. Ég ætla að fara eftir þessu. Smellur. Og nú þú smellir á PokeBall. Ég meina, ég held að þú sért ætlast til að smella á PokeBall. Allt í lagi. Svo ég gerði það. Ég get farið yfir hér. Og þessi manneskja framkvæmda meira PokeBalls yfir here-- þremur PokeBalls. Við munum senda tengil á þessa á netinu svo þú getur spilað. En tilkynning það er bara sumir undirstöðu kubbar. Það lítur mikið áhugamaður, og það er. Þetta er áhrifamikill og fleira en við gerðum oftast búast, vissulega fyrir Heimadæmi núll. Ég hef ekki hugmynd um hversu lengi þessi manneskja var á netinu. En það er allt bara lykkju. Það er hljóð leika. Það er einhvers konar lykkju að hlusta á hvort ég er hitting á örina eða niður arrow eða vinstri og hægri, og þá ef svo er, það er að flytja það einhvers fjöldi punkta. Og þá ef ég smelli á annar Sprite, það er einhvers konar ef ástand þar. Já, þetta er að verða of mikil. Við erum að fara að hætta. Það er alla þá undirstöðu kubbar. Það eru engin önnur innihaldsefni önnur en þær sem við höfum horft á þegar. Og enn hér, láta mig gera einn endanlega sett af dæmum sem málar mynd líka um hvað þú getur gert hér. Hér er mjög einfalt forrit sem bara gerir this-- hósta, hósta, hósta. Og byggt aðeins á hvað Við höfum litið á svona langt, hvar er augljóst tækifæri til úrbóta. Þetta forrit er rétt. Það hósti þrisvar sinnum, sem er það sem ég ætlaði. En það er illa útfærð. Það er illa hannað. Hvers vegna? Já. Það er ekki lykkja. Og það er ekki svo mikið að það er ekki lykkju, það er að það er mikið af offramboð. Það er afrituð og límt kóða, svo að segja. Í og lausnin sennilega er örugglega lykkju. Svo láta mig fara á undan og bæta við það. Og ég ætla að draga þetta hérna. Leyfðu mér að fara á undan og fá endurtaka blokk, breyti þessu í þrjá. Ég ætla að henda sumir af þeim blokkum. Og þú munt taka eftir að það er nokkuð leiðandi. Þú draga og sleppa og það birtast og hverfa að lokum. Og ég get bara draga þetta hér, og nú hef ég hreinni útgáfu enn. En þú veist hvað? Það er þetta tækifæri nú fyrir abstraction-- að byrja að skilgreina nýjan orðaforða sem MIT gerði ekki ráð fyrir. Það er að bíða og endurtaka og að eilífu og ef, en hvað ef ég vil kynna orðið hósta sem loka? Hvað ef ég vil ráðgáta stykki Hvers tilgangur í lífinu er að hósta? Jæja, við skulum líta á þessa útgáfu hér, sem ég gerði eins og hér segir. Dularfullur, ég hef búið þetta ráðgáta stykki hér, sem Scratch leyfir þér að gera. Og reyndar C og Python og JavaScript eru að fara að leyfa þér að gera þetta eins vel. Þú getur búið til þinn eiga siðvenja stykki sem þú kallar það sem þú vilt. Í þessu tilviki, hósti finnst eins og sanngjarn skilgreiningu. Og þá með þessum stykki niður Hér getur þú skilgreint hvað það þýðir. Ég dró og lækkaði úr þetta litatöflu here-- meira blocks-- þetta stór fjólublátt blokk, þar sem ég slóst í hósta eins og nafnið á nýju ráðgáta stykki minn. Og þá er ég að segja hvenær sem notandi kallar þetta nýja hósti þraut stykki, gera segja og bíða. Og svo hér í blokkinni endurtaka mína, Ég get bara hósta þrisvar sinnum. Og ég myndi halda því fram, einkum ef nú þú fela þetta smáatriði. Hverjum er ekki sama hvernig hósti er hrint í framkvæmd? Allt sem ég hugsa um sem forritari sem ég get hósta. Mér er alveg sama hvernig sagt er hrint í framkvæmd. Ég hugsa bara að köttur getur sagt eitthvað. Ég get ágrip burt að smáatriðum og aðeins áherslu á það sem er á skjánum hér. En ég get tekið þetta einu skrefi lengra. Takið eftir að hér, ég hef framkvæmda lykkja þrisvar sinnum. En hvað ef í staðinn ég grípa þessa útgáfu? Og hvað ef í staðinn í þessari útgáfu hér, Ég breyta bara ráðgáta stykki mitt til að taka rök og inntak í sjálfu sér? Og það inntak getur verið tala eins og þriggja. Svo nú, ef ég er að skrifa forrit og ég vil kötturinn að hósta, Ég get reyndar sagt þraut stykki hversu oft á að hósta, því neðst hér, áhugamaður útgáfa af þessum sérsniðin ráðgáta stykki leyfir mér að tilgreina að hósti fer í raun An input-- tekur rök eins og þetta. Og þú veist hvað? Kannski ég átta, bíddu í eina mínútu. Hósti er same-- það er í grundvallaratriðum sama hugmynd og hnerri. Það er bara öðruvísi orð á skjánum. Ég get ágrip burtu frekar og innleiða þetta endanleg útgáfa af a hósti, sem við fyrstu sýn er leið flóknari leita. En eftir því sem ég hef gert. Ég hef nú generalized-- genericized really-- þessa þraut stykki að vera kölluð segja orð n sinnum. Og nú hef ég tvær nýjar ráðgáta stykki hérna skilgreina hósta n sinnum. Og hvað þýðir hósti virka ekki? Hvað þýðir vanur ráðgáta stykki gera? Það kallar bara segja blokk, liggur í orðinu sem ég vil segja, liggur á fjölda oft ég vil segja. Vegna þess að nú get ég framkvæma sneeze með því einfaldlega að segja Achoo, í þessu tilfelli, sumir nokkrum sinnum. Og svo ég layering og layering. Og aftur, lykillinn hér er ekki hvernig ég innleitt það, en staðreyndin að ef ég bókstaflega bara fara þessir af skjánum, líta hvernig einfalt ef ekki nokkuð program minn lítur nú. Vegna þess að það gerir það sem það segir, ég hef horfir burt hvað er inni þessi svarta kassanum. það gerist að vera fjólublátt kassi hér, en ég hef hindra burtu hvað er inni vegna þess að ég er ekki sama hvernig það virkar ekki. Ég hugsa bara núna að það virkar. Og reyndar í vandamáli Stilla núll, þetta er einmitt konar layering hugmyndir þú munt hafa tækifæri til að kanna. Það er einmitt tækifæri til að gilda að leysa vandamál tækni, að það er líklega framandi umhverfi. Og hvort þú hefur ekki forritað fyrir eða forritað áður, þú munt komast að því að það er a lítill eitthvað í þessu umhverfi fyrir alla. Og með Heimadæmi einn í einu í viku, við munum vera færður til áherslu á hærra stigi tungumáli kallast C-- eða öllu heldur lægri stigi tungumál kallast C-- það er jafnvel meira öflugur, jafnvel þó að það er lítið meira dulinn við fyrstu sýn. Og þú munt gera sér grein fyrir TL dag: DR, að þetta vandamál setja er styttri glugga tíma en framtíð sjálfur, einfaldlega vegna þess að þú ættir að finna það nokkuð aðgengileg. Og ekki að hafa áhyggjur ef þú bæta bekknum seint. Við munum fjalla um að áður en langur. Og áður en við adjourn fyrir köku, við skulum ljúka með aðeins tveggja mínútna útlit á hvað bíður þér hér í CS50. [TÓNLIST] Allt í lagi. Það er það fyrir CS50. Við munum sjá þig fljótlega. Kaka er nú þjónað. [TÓNLIST] Ræðumaður 17: Hefur þú heyrt um orlof, Chief? Ræðumaður 18: Kannski er það meira undir hetta.