[Umhverfishljóðum] Virkar það? PATRICK REBESCHINI: Við getum byrjað. OK. Great. Við skulum byrja. Svo það er mesta ánægja mín að bjóða ykkur öll velkomin hingað í dag í fyrsta fyrirlestrinum um, vel, Inngangur að Computing og forritun. Einnig þekktur sem CS50 eða vel, CPSC 100, opinberlega hér í Yale. Þannig að við gætum ekki verið meira spenntur að bjóða ykkur öll velkomin hingað. Mitt nafn er Patrick Rebeschini. Ég er yfirmaður kennari fyrir bekkinn. Ég er hér fulltrúi hóp um 60 starfsmanna sem vilja vinna með þér yfir misserið. Þessi tala er næstum 60 af okkur. Samt meðfram ótrúlega stigi skuldbindinga að við að setja inn í þetta flokki, sem gerir CS50 bekknum Yale University sem býður hæsta þrep stuðning til ykkar allra. Og við gætum ekki verið meira stolt af bjóða þessum flokki hér aftur. Í raun, eins og þú munt brátt upplifa, CS50 er miklu meira en flokki. Það er samfélag. Og þú verður að vera hluti fljótlega af þessu samfélagi. Þetta er annað árið sem Yale er að bjóða þessum flokki. Við erum að byggja á frelsi Árangur á síðasta ári, þar sem í fyrsta skipti, hér á þessum háskóla, grunnnám nám aðstoðarmaður voru samþykktar í skólastofum. Þetta byrjaði allt með þessum flokki á síðasta ári. Svo eins og þú veist, bekknum er kennt í samstarfi við Harvard University. Að kenna þetta námskeið við erum relying-- við getum treyst á mikla sérfræðiþekkingu David Malan og Harvard lið. Svo David hefur verið kennsla CS50 fyrir vel, 10 ár núna. Og á hverju ári sem hann hefur verið ýta mörkum og bæta kennslustofunni reynslu. Aftur, við gátum ekki verið meira ánægð að halda áfram þessu samstarfi við þá. Í raun, einn af Mest áhugavert hlutum, Ég mun segja að keyra þessa tegund núna, bæði í Harvard og hér í Yale, er í raun ótrúlegt kross-frjóvgun hugmyndir, sem miða að því að bæta læra reynslu til ykkar allra. Svo sem afleiðing af þessum umfangsmiklu samvinna á milli tveggja háskóla, CS50 er stolt af því að tilkynna nýja útgáfu á þessu ári með sjáanlegum breytingum. David mun allur segja okkur um þá núna. Svo please-- þessa veru sagði, vinsamlegast tengja mig og velkomin til að gefa stór umferð lófaklapp að fagna Davíð og Harvard lið hér á Yale. [Applause] DAVID Malan: Þakka þér. Takk. Þetta er CS50, Harvard University er og kynning Yale University er að vitsmunalegum fyrirtæki í tölvunarfræði og listin að forritun. Og hvað það þýðir að þetta námskeið að lokum er um að leysa vandamál. Reyndar margir af þú might hafa komið út úr menntaskóla eða hafa eytt síðustu tveimur árum spá í hvað sumir af vinum þínum gerði á síðasta ári eða í öðrum flokkum. Og enn, að veruleikinn er, sama hvað við gera í lok dags í þessum flokki, það er að fara að vera um lausn vandamála. Og eins og svo kannski taka sumir fullvissu í þeirri staðreynd að 73% nemenda sem taka þennan flokk, bæði hér í Yale eins og á Harvard, hafa aldrei tekið CS bekknum áður. Svo ef þú ætlar að sitja hér í áhorfendur í dag að spá hvers vegna þú ert að sitja hér í áhorfendur dag, eða kannski þú fylgdi bara ásamt nokkrum vinum, eða kannski þú hafir verið lítið forvitinn um hvað tölvunarfræði og forritun er, átta sig á að flestir bekkjarfélögum þínum til vinstri og hægri þig eru mjög í sama lýðfræðilega. Og reyndar, ef við lítum á síðasta tölfræði ári innan nemandi líkama CS50, bæði hér og í Harvard, 58% nemenda lýsa sig sem minna þægilegt. 9% er öruggari. Og þá er 33% einhvers staðar á milli. Og það er engin formleg skilgreining um hvað þessar fötunum þýðir. Þú veist svona þú ert minna þægilegt ef þú ert. Þú ert að tilfinning a lítill órólegur með kannski vera í bekknum. Þú ert ekki alveg viss um hvort tölvan vísindi bekknum er á endanum fyrir þig, og átta sig á að þú ert í mjög góðum félagsskap. Og raunar flokkun, og mat, og viðbrögð, og allt, sem styðja uppbyggingu í bekknum er að lokum mjög mikið einstaklingsbundið. Meira svo en flest allir annar flokkur af hönnun. Og reyndar, það sem á endanum skiptir máli í þessum flokki er ekki svo mikið þar sem þú enda allt miðað við aðra, en þar sem þú, í viku 11 eða síðasta, og miðað við sjálfur í viku 0 hér fyrst okkar. Svo hvað þýðir það? Jæja, þetta þýðir af þeim 73% af nemendur á síðasta ári sem hafði aldrei tekið CS bekknum áður, af byrja á önn sem þeir voru fór að fikta í tungumáli heitir Scratch, sem við sjálf munu sjá hér í dag. Og í lok sem önn höfðu þeir farið í gegnum þetta allt listann af áskorunum. Byrjar með tungumál sem heitir c. Framkvæmd, hvað er við fyrstu sýn, að fara að vera a hluti af a áskorun fyrir sumir, en nokkuð ánægjulegt þegar þér fá Super Mario skoppar upp og niður pýramída framkvæmda, að vísu, með bara eitthvað sem kallast ASCII list. Útfærsla síðustu year-- hvað nemendur á síðasta ári þá gerði eftir það var innleiða þeirra eigin Caesar dulmál og Vigenere dulmál. Svo dulkóðun reiknirit sem þú gætir Scramble upplýsingar og síðan afkóðaðir upplýsingar til að senda leyndarmál skilaboð. The leikur af 15. Ef þú manst frá bernsku eða einhver aðili hag, sem lítið plast leikur þar sem þú færir tölurnar upp, niður, til vinstri og hægri til að reyna að fá þá í röð, í raun útfæra þessi leikur og leysa rökfræði þarf þar. Og þá erum við dabbled í réttar á síðasta ári. Svo um miðjan önn, nemendur sem höfðu aldrei notað hljómborð þeirra í þessu skyni áður, voru að skrifa hugbúnað að batna, svo að segja, JPEG eða ljósmyndir að við höfðum óvart eytt úr stafrænni minniskort úr myndavél. Endurheimt leyndarmál skilaboð frá inni í bitamyndina, og önnur slík gerðir grafík eins og heilbrigður. Við færðum þá til að gefa allur bekkurinn orðabók. Bara mjög stór textaskrá með 150.000 enskum orðum. Og allir voru áskorun að einhvern veginn lesa, svo að segja, þessi orð í minni. Í minni tölvunnar. Og þá svara spurningum á því formi, er þetta orð? Er þetta orð? Er þetta orð? Í raun bara að innleiða a stafa afgreiðslumaður. Og þá krefjandi hver hitt með stóru board-- leiðtogi borð að sjá hver gæti nota sem minnst magn af minni, í the minnstur magn af tími til reyndar villuleit stór skjöl. Við færðum frá þá að innleiða sjálfur eigin vefþjón. Svo ekki gera vefsíður í tungumálum eins og HTML og CSS, ef þú ert kunnuglegur. En í raun og veru að innleiða Miðlarinn sem hlustar á internetinu fyrir beiðnir frá vafra og þá bregðast við þeim beiðnum. Þá innleiða okkar eigin E-verslun eins website, þar sem nemendur gætu keypt og selt hlutabréf. Teikning í næstum rauntíma gengi hlutabréfa frá Yahoo Finance. Og leyfa nemendum að sjá hvernig eigu þeirra þróast. Og svo að lokum að blanda upp Google News og Google Landakort hvorved nemendur með hugtakinu eftir skilmálum lok hafði getu til að smella, og umferð, og leita á Google kort. Og þá sjá allir þær fréttir greinar sem eru aðlægan þeim tilteknu svæði. Svo sannarlega fara frá núll til 60. Og á leiðinni að hafa það sem við áttum á síðasta ári sem heitir, tölvusnápur viðbætur. Að hækka bar frekar fyrir þá sem gæti mjög vel hafa gott magn af reynslu að vera í þeirri 9% af öruggari. Þannig átta sig á að það er mjög hár loft jafnvel innan þeirra viðfangsefni fyrir nemendur koma frá mismunandi bakgrunn. Vegna þess að í lok daginn, við erum að lokum áherslu einfaldlega á þetta. En hvað þýðir þetta meina, lausnaleit? Svo skulum leggja til að við distill það svona. Svo er lausnaleit raun bara svona mynd. Svo þú hefur fengið aðföng að einhverju vandamáli, eitthvað sem þú vilt í raun að leysa. Markmiðið er að fá framleiðsla, lausn á því vandamáli. Og þá í miðjunni er það sem við munum kalla svartan kassa. Þú þarft ekki endilega vita eða jafnvel sama hvað er inni þessi svarta kassanum. Allt sem þú veist er að þegar þú fæða inntak inn í það, þú færð vonandi framleiðsla eða • lausn frá því. Og en í dag munum við líta bæði inntak og framleiðsla, Við munum langtíma, og yfir Auðvitað á öllu önn, áherslu á hvað er inni kassann. Og þar liggja eitthvað sem heitir reiknirit. Skref fyrir skref leiðbeiningar um reyndar að leysa nokkur vandamál. En hvað er dæmi af nokkrum aðföngum? Svo kannski einfaldur hlutur á the byrja á hverju skólaári, einhver might vilja til að taka mætingu. Þannig gætum við gert einn, tveir, þrír, fjórir, fimm, sex, og hvernig myndi ég halda utan um þessar upplýsingar. Ég gæti bara farið einn, tveir, þrír, fjórir, fimm, sex. Og bara nota einhverskonar einn tölustafur. Eða ég gæti í raun tekið þetta aðeins lengur tíma. Og hvernig get ég tákna alla menn í þessu herbergi? Jæja, ég gæti gert eitthvað eins, OK. Ég sé einn einstakling. Allt í lagi. Ég sé annan mann, a Þriðji aðili, og svo framvegis. En enginn telur fólk eins og þetta. Svo bókstaflega, flest okkar, ef við erum jafnvel að fara að draga neitt á öllum, eru líklega að fara að fara Einn tveir þrír fjórir, kannski fá smá ímynda, fimm, sex, sjö, átta, níu, tíu og svo framvegis. Og það er í raun Kerfið heitir unary. Uno, eins uno felur einn, þar sem þú bara hafa einn bókstaf. Þú hefur bara fengið þetta kjötkássa merki. Og ég, fyrir skilvirkni, bara dró þessi kjötkássa merki, að lokum sem beinar línur. En ég hefði getað dregið þá sem lítið stafur tölur. Hvar tákna einn maður, eitt inntak, Ég teikna bara stafur mynd eða kjötkássa merki. En þetta er ekki allt sem svipmikill. Ef allt sem ég hef er þetta kjötkássa merki, hvað þá stafur tölur, hvernig gæti ég tákna eitthvað eins og fjölda 15? Eða 15 manns í herberginu? Ég gæti þurft að gera eitthvað eins og 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15. Það bara virkar ekki mælikvarði mjög vel. Eins og inntak fá stór, við þarf betra kerfi en þetta. Og það kemur í ljós að kerfi sem tölvur nota er ekki allt sem frábrugðið frá því sem þú og ég veit. Í raun, flestir í þessu herbergi, jafnvel ef þú ert meðal þeirra sem minna þægilegt, ekki endilega vita hvernig Mac eða PC virkar í raun, þú hefur sennilega amk heyrt, að undir hetta eru 0 og 1 er. Svokölluðum tvöfaldur kerfi. Svo reyndar, tölvur meira en bara kjötkássa skytta í orðaforða þeirra, en ekki eins mikið af a orðaforða eins og við menn. Reyndar, við mennirnir notum ekki tvöfaldur. Bi þýðir 2, 0 og 1. En aukastaf, Deca sem þýðir 10, 0 til 9. Þannig að við höfum miklu meira svipmikill getu í venjulegum mönnum okkar heimi. En ég vil halda því fram að þessi kerfi, tvöfaldur, og tölur, og allt á milli og utan, eru í raun allt alveg þekki. Til dæmis, íhuga þetta dæmi hér, 123. Þannig að þetta er í raun, að sjálfsögðu, a tala við vitum sem 123. En allt sem ég teiknaði bara var bara þetta mynstur táknum, glyphs svo að segja. Raða af stærðum á borð í krít. En hvers vegna þurfum við strax og innsæi grípa þetta sem 123? Jæja, ef þú værir eins og mér í grunnskóla, þú lært sennilega að þetta er 1s dálki, þetta er 10s súla, þetta er 100s dálki. Og hvers vegna er það gagnlegt? Jæja, það er einföld stærðfræði þér núna gera til að fá úr mynstri táknum að tala við skiljum innsæi. Er það, 100 sinnum 1, og þá 10 sinnum 2, og 1 sinni 3, sem auðvitað er bara 100, og Þetta er 20, og þetta er þrír. Og svo ef við bætum þá together-- ah. Svo þar liggur konar rökhugsun bak við hvers vegna þetta sett af táknum þýðir eitthvað alvöru og tölugildi. Jæja, tölvur gera nákvæmlega það sama, en þeir bara geta treyst eins hátt og einn. En ég var fær til að telja eins hátt og þrjú. Og í raun, ef ég hélt að fara ég gæti fara eins hátt og níu í þessu kerfi. Tölvur hafa aðeins núll og sjálfur í stafrófinu þeirra. Svo hvað þýðir það? Jæja, það þýðir bara að ef tölvu vill til að tákna, segja númer 0, kannski með þremur characters-- þrjú bókstafir svo að segja, það er hvernig tölvan táknar 0. Svo ekki allt sem skelfilegt svo langt. Það er einmitt það sem við mennirnir myndu gera. Og í raun, flest okkar myndu bara hunsa núllum samt. A tölva, ef það vill að geyma númer 1, reynist er að fara að gera þetta. Og tölvu til að geyma númer 2 er ekki fara að gera unary kerfi, sem ég vísaði til áðan. Það er í raun að fara að gera þetta. Og þetta er sennilega þar sem mynstrið byrjar að verða minna augljós fyrir flesta fólkinu. Það er 2, þetta er 3. Forvitinn, þetta er nú 4. Og nú er það raunverulega hjartarskinn virðast vera kannski dulinn, en það er ekki ef við teljum hvað tvöfaldur raunverulega þýðir. Það þýðir að þú hefur tvö stafina stafrófinu þinn. Svo tvær mögulegar stafir fyrir hverja tákn. Þannig að í raun þýðir að við erum að fara að þurfa 1s stað, eða 2s stað, a 4s stað og þá 8, og 16, 32 og 64. Og hvað er munurinn þarna? Eins og þessir eru 1, 2, 4, 8, 16, 32, 64. Og áður en við þurftum 110, 100.000, 10.000. Hvað er líkt þarna? Og hvað er mynstrið? Já. STUDENT: Powers 2 í stað þess að völd 10. DAVID Malan: Já. Powers 2 í stað valdi 10. Og svo ef ég vildi halda fara, 8, 16s og svo forth-- en nú ef þú ert svona af hugmynd, nú tvöfaldur kerfi er í raun frekar einfalt. Hvers vegna er þetta mynstur af 0 áratugnum í heiminum á tölvum 0? Vel því það er 4 sinnum 0, 2 sinnum 0, 1 sinnum 0 og þú færð 0. Hvers vegna er þetta númer 1? Sama rökhugsun, en nú erum við hafa 1 á 1. dálki. Hvers vegna er þetta 2? Við höfum 1 á 2s dálki. Og hvernig þá get ég tákna segja, númer 7 í tvöfaldur? Segja hávær. STUDENT: Þrír 1s. DAVID Malan: Þrír 1s. Svo 1, 1, 1 vegna þess að við þurfum bara 4 plús 2 plús 1 gefur mér 7. Allt í lagi. Svo þaðan hvernig gerum við tákna 8 með 3 staðgengla? Já. STUDENT: 1, 0, 0, 0. DAVID Malan: Já 1, 0, 0, 0. Og enn kannski, ég konar tæknilega þarf að bæta við öðru tákn til stjórnar. Ef ég vil að passa að ég örugglega þarf að gera eitthvað eins og þetta. Þannig að ég þarf reyndar að nota nú sem 8s dálki, og það er fínt. En forvitinn hlutur í tölvunarfræði er sem það er að fara að kosta okkur eitthvað. Þú þarft meira vinnsluminni í tölvunni núna. Þú þarft meira minni vegna þess að þú þarft eitthvað líkamlega að geyma það viðbótar bita, svo að segja. Tvöfaldur tölunum. Og raunar allt sem hefur gerst hér, eins og tugakerfið, ef við höldum að bæta upp tölurnar og upp og upp, við förum til 5 til 6 til 7 til 8 það er eins og að bera 1, bókstaflega. Og þá allt annað fer aftur niður í núll. En hvernig eigum við að tákna í raun þetta líkamlega í tölvu? Jæja, í lok dagsins, eina líkamlega inntak fara í tölvuna mína hér er þetta rafmagnsleiðsla, svo rafmagn eða rafeindir frá vegg. Og svo hvernig fæ ég frá einhverju líkamlega svona til í raun og veru alþingismaður hugmynd svona í staðinn. Jæja, hvað getum við gert? Við gætum telja að allt í lagi, kannski ef rafmagn er flýtur Ég gæti geyma það og halda í það. Og ef ég ætla að halda á að einhverju rafmagn, það er bara að fara að geðþótta tákna 1. Og ef ég klóna og það er ekkert þar, þú veist að er bara að fara að geðþótta tákna 0. Þannig að ef eitthvað er þar, 1. Ef ekkert er það, 0. Eða þú getur gert þetta svolítið meira sjón. Hér er 0. Það er ekkert áhugavert gangi á um bakhlið símans míns. En ef ég leyfa smá bita af raforku til að renna, jafnvel þó að það er lítið bjart hér, vasaljós mitt fór á. Þannig að ég ætla að geyma hleðslu og Ergo, þessi sími táknar nú 1. Svo 0 1. Svo með 1. iPhone hversu hátt get ég telja að nota þessa tegund af nálgun? Ég meina til 1. Það er ekki allt sem sannfærandi. Svo hvað meira getum við gert? Jæja við skulum sjá, er einhver á þeirra Síminn núna að ég gæti fengið lánað? Einhver sem hefur símann með vasaljós byggð í? Má ég taka lán? Ég þarf ekki það opið. Allt í lagi. Þakka þér. Leyfðu mér að láni á þessu. Allt í lagi. Svo ef ég skruna nú upp og hér, hvað er ég fulltrúi núna? Já. Svo er það þriggja vegna þess að þetta er í 1s dálki, þetta er í 2s dálki. Svo 1 plús 2 er 3. Og þá ef við reynum að fá virkilega creative-- Ó, þakka þér. Mjög sjáum. Allt í lagi. Ég hef nú þrjú iPhone. Allt í lagi. Og nú this-- ég mun ekki gert eitthvað lengra en þetta. Hvað er ég fulltrúi núna? Bara Sevens. En ég þurfti líkamlega meira minni í þessu tilfelli. En það er allt það er. Hægt er að hugsa um hvað er að gerast skráin þakka you-- inni símanum sem bara vera rofi sem er að kveikt og slökkt. Og ef þú hefur einhvern tíma heyrt orð smári. Eða ef þú hefur einhvern tíma heyrt markaðssetningu tala Intel inni, sem er að tala við hvers konar vélbúnað það er inni á tölvunni þinni. Intel gerir örgjörva, Mið vinnslu eining, sem eru eins og heila inni á tölvunni þinni. Og þessir örgjörva og það sem þeir eru að tengjast að hafa fullt og fullt af pínulitlum rofa. Milljónir, milljarða rofa sem getur annað hvort verið á eða burt. Svo tölvum, sem betur fer, eins Macs okkar og tölvur, getur treyst vegur hærra en 7 eða 8 vegna þess að þeir hafa miklu meira en þrír eða fjögur bita. Vegur meira en sem nemur þrjú vasaljós sem við höfðum bara. En nú byrjar þetta til að fá ansi óspennandi fljótt. Ef ég vil nú að raunverulega vera fær að gera eitthvað meira áhugavert, Ég vil vera fær um að stökkva til eitthvað eins og þetta. Svo ASCII, það er í raun ekki gagnlegt skammstöfun, en American Standard Code Til að fá upplýsingar Interchange. Það þýðir bara, nokkur ár síðan við mennirnir ákveðið, þú veist hvað, við viljum vera fær um að gera meira við tölvur en bara númer. Við viljum ekki þá að bara vera dýr reiknivélar, okkur langar til að vera fær um að gera hlutina eins og ritvinnsla, að vísu mjög einfaldlega. Seinna höfðum við tölvupósti og öðrum slíkum miðlum. Og svo heimurinn ákvað fyrir nokkrum árum síðan samkvæmt þessu kerfi ASCII, veistu hvað? Í ákveðnum tegundum forrit hvenær þú sjá jafnvirði fjölda 65, eins og mynstur bita. Og við gætum gert það stærðfræði hér á borðinu. Mynstur bitum sem tákna 65. Ekki hugsa um það sem 65 í aukastaf. Hugsaðu um það eins og geðþótta, en heimsvísu, stöðugt sem höfuðborg A. Og þá mun heimurinn ákveðið, þú veist hvað? Við skulum taka annað mynstur bita. Og ef við sjáum alltaf á Fjöldi 66, við skulum bara gera ráð fyrir að það er Höfuðborg B. Fljótur áfram til H og ég, ef þú sérð 72 eða 73, sem ætti að vera H og I, hvoru tveggja. Og svo lengi eins og the heild Heimurinn samþykkir á þetta. Þannig að þegar þú færð tölvupóst, eða þú vildi fá skrá á a USB stafur, eða eitthvað eins that-- hvenær þú sérð að mynstur bita, þú veist að það ætti að vera þetta bréf eða einhver önnur bréf. En það er samhengi sérstakur, ekki satt. An email program might túlka þetta sem stafi, en graphing reiknivél eða reiknivél gæti tákna eða túlka þetta, að sjálfsögðu, eins og bókstöfum. Svo með því að segja, fljótur litla endurskoðun. Þetta er kannski þriggja persóna E-mail sem hefur verið sendur til mín. Undir hetta það er allt í 0s og 1s, en við ekki sama. Við erum að fara að byrja að ágrip ofan 0s og 1s bréfum. Og ef ég sé mynstur 0s og 1s sem virkilega tákna 72, vísbending, vísbending, 73, og þá 33, hvað er skilaboðin? STUDENT: [inaudible] DAVID Malan: Svo ef þú heldur aftur bara í smá stund síðan, HI voru skilaboðin sem ég var að reyna að samskipti hér vegna H er 72, Ég er 73, og nú 33-- þú viljir ekki endilega vita þetta fyrirfram, en það kemur í ljós ef þú í raun sjá meira af myndinni og kerfið að mannkynið samið árum síðan er það bara upphrópunarmerki. Og reyndar, það er mynstur af tákn og tölur fyrir hvert eðli sem þú gætir hafa á lyklaborðinu þínu. Allt í lagi. Skulum ágrip frekar. Ef við viljum ekki bara hafa hlutir eins og tölur og bókstafi, við viljum í raun og veru að framkvæma grafík. Jæja, ef þú hefur einhvern tíma heyrði hánefni RGB. Það er góður af dagsett nú, en það er enn góður af þar. RGB er rauður, grænn, blár. Og það er bara kerfi segja, þú veist hvað, við skulum nota þrjú sett af bitum. A setja af 8 bitum, annað sett af 8 bitar, og annað sett af 8 bitum. Og við skulum nota þessi bita að geyma hversu mikið rautt vér vilja á skjánum okkar, hversu mikið grænt viljum við á skjánum okkar, og hversu mikið blátt við viljum á skjánum okkar. Og þetta þýðir bara að ef þú hafa lot-- a stór tala fyrir rautt, það þýðir að gefa mér mikið af rauðum. Ef þú hafa a stór tala fyrir grænn, gefa mér mikið af grænu. Og ef þú ert bara svolítið af bláum eða fáeinum eins 33, gefa mér smá bláu. Og ef þú skyldir til að sameina þá þrjár stærðir, svo að segja, þú færð this-- you varla hægt að sjá á skjávarpa hér, en þetta murky litbrigði af gulum eða brúnt. En þetta er að segja, með því að nota það Mynstur 8 plús 8 plús plús 8-- að mynstur af 24 bitum er hvernig tölva myndi geyma þessi litbrigði af gulum í einu pínulítill punktur um pixla á skjánum. Þannig að við höfum farið frá 0s og 1s til aukastafi Tölurnar bókstöfum. Eða meira áhugavert, litað punkta. Jæja, hvað auðvitað þá kemur næst? Jæja, hvað er mynd sem þér sjá á Facebook eða fá í tölvupósti? Eða þess háttar? Hvað er skýring tæknilega á mynd? Já. Hvað er mynd sem samanstendur af ef þú lítur í raun loka á skjánum? Já. Það er bara allt fullt af pixlum. Í staðreynd, ef þú tekur þinn fartölvu kannski síðar, og líta mjög vel á it-- eftir um hvernig dýr laptop er og hvernig hár gæði skjárinn er, þú gætir mjög vel sjá alla litla punkta á skjánum. Og þessir punktar eða punktar, sem þýðir að það er 24 bitar fulltrúar hvert pixla í það ljósmynd sem þú sérð á Facebook, eða að þú tókst bara á iPhone nýlega. Og svo er það hvernig við fáum að hlutum eins og grafík. Jæja, hvað er a vídeó? A vídeó er bara a setja af grafík fljúga af skjánum aftur og aftur og aftur. Og svo myndbönd raun, eru bara mynstur bita fulltrúar grids, raðir og dálkum punkta, fljúga með skjánum mynd, eftir mynd, eftir sinni mynd, gengur einnig undir nafninu Hreyfimyndir. Svo það er það fyrir inntak og framleiðsla. Allt sem við höfum nú er forsendu að þú vita hvað, ef við viljum tölvu til að tákna upplýsingar, við höfum kerfi fyrir að gera það. Við getum gert það með 0s og 1s í lok dags. En við getum ágrip, svo að tala, ofan á það svo sem til að tákna fleiri áhugavert. Og hér á út í CS50, og í tölvunarfræði almennt, við stöndum nú á herðum af öllum þeim sem kom fyrir okkur sem mynstrağur það út. Og nú bara ráð fyrir að tölvur getur táknað inntak og framleiðsla. En nú skulum raunverulega gera eitthvað með þeim. Svo er reiknirit bara sett leiðbeiningar, skref fyrir skref, til að leysa nokkur vandamál. Og hvað gæti ein slík vandamál að vera. Svo er þetta gamall skóli tækni, símaskrá. Og inni símaskránni er heild búnt af nöfnum og númerum. Og þau nöfn eru yfirleitt raðað í stafrófsröð. Þannig að ef ég vildi finna einhvern í þetta símaskrá eins og Mike Smith, hvað er dæmigert mönnum að fara að gera? Jæja, þú gætir einfaldlega að opna það upp, að líta á fyrstu síðu. Ég sé ekki Mike Smith. Snúa til annarri síðu, Ég sé ekki Mike Smith. Og bara halda áfram og fara. Er þetta skref fyrir skref aðferð rétt? Já. Það er góður af heimskur, ekki satt. Það er óhagkvæmt, rétt. Vegna þess að það er að fara að taka að eilífu til að fá að Mike, en það er rétt. Vegna þess að ef Mike er hér Ég mun örugglega finna hann. Svo er það örlítið meira sanngjarn maður að fara að gera? Þeir gætu samt opnað að framan, og kannski fljúga í gegnum símaskránni tvær síður í einu. Tveir, fjórir, sex, átta. Ég get í raun ekki líkamlega gera það mjög vel. En í orði, þetta ætti að vera tvisvar eins hratt, tvær síður í einu. Er þetta reiknirit rétt? STUDENT: [inaudible] DAVID Malan: Ekki endilega. Góður. Hvers vegna að hellir? STUDENT: Vegna þess að hann gæti verið á einn af þeim síðum sem þú ert skipstjóri. DAVID Malan: Já. Svo jafnvel ef ég fæ nær og nær. Hvað ef hann er bara tilviljun, eftir slæmt heppni, samloka milli tveggja síðna sem ég er að fljúga yfir? Þannig að við þurfum a festa fyrir þetta. Við þurfum í raun að þá segja, bíddu í eina mínútu, kannski ef við förum of langt, kannski ef við högg T kafla, fyrir T koma eftir Smith, þá ættum við að minnsta kosti tvöfalt til baka að minnsta kosti eina síðu. Svo hægt að laga, en það er skilyrt mál þar. Svo það er tvisvar sinnum eins hratt, en þú gætir að tvöfalda aftur bara svolítið. En enginn í herberginu sínu, jafnvel ef þú í raun ekki að nota símann bækur lengur, er að fara að byrja á byrjun. Hvað ætlarðu að gera leita Mike Smith? Þú ert að fara að fara gróflega að S áratugnum. Eða ef þú í raun ekki hafa svindl lak á pappír, þú ert að fara að fara að minnsta kosti u.þ.b. við miðju. Og vissulega ekki að framan á bókinni. Þú ert að fara að líta niður. Og stærðfræðilega þú ert líklega fara að sjá M kafla, sem er nokkurn veginn í miðjunni. Og þá þú ert að fara að gera sér grein fyrir, hvað er satt? Hvar er Mike? STUDENT: [inaudible] DAVID Malan: Já. Svo er hann á á þessari hlið. Og svo hvað er hægt að gera? Jæja, bæði óeiginlegri merkingu og bókstaflega getur þú rífa vandamál í tvennt einu sinni? Og þá vita að þú getur kastað þetta hálf vandans burtu. Og nú erum við vinstri með grundvallaratriðum sama vandamál, en það er helmingur eins stór. Og svo nú er það sett af leiðbeiningum? Hvað er algrím að finna Mike Smith? Það er nákvæmlega það sama. Nú gerist þetta vera M kafla og þetta er Z kafla, en grundvallaratriði uppskrift er enn sú sama. Fara u.þ.b. að miðju, líta niður, ó, fjári það. Nú er ég í T kafla, Ég hef gengið of langt. En hér líka Geturðu beita þeirri sömu rökfræði. Kasta helmingur af vandamálinu burtu og nú erum við fór með vandamál sem er fjórðungur af stærð. Og við getum endurtekið, og við getum endurtekið, og við getum endurtekið þar til fræðilega það er bara ein blaðsíða eftir á sem Mike annaðhvort er eða er ekki. Svo er það svo öflugt um þessa hugmynd? Ég meina eftir allt, það er nokkuð leiðandi. Enginn er að fara að byrja á því upphaf símaskránni og flettir 1.000 síður til að finna Mike Smith. Flest allir í þessu herbergi er að fara að gera bil svona reiknirit spara fyrir ofsafenginn. Og svo hvers vegna gerði við það? Jæja, íhuga skilvirkni. Hugleiddu hversu mikið betra þetta reiknirit var með því að brjóta það niður í frumeindir. Svo hvað gerði ég fyrst? Ég tók upp símaskrána. Og tölvu vísindamaður, og forritari, almennt það kemur í ljós, er að fara að byrja að telja allt á 0. Hvers vegna? Jæja, það er svolítið skrítið að við menn telja, almennt, byrja frá einum. Vegna þess hvað er minnsti fjöldi getum við greinilega samsvara byggt jafnvel á gömlum grunnskóla stærðfræði okkar? Jæja, það var 0, hvort það er í aukastaf eða tvöfaldur. Og svo þú munt sjá í heiminum computing og forritun, sérstaklega, byrjum við telja allt frá 0. Svo ég tók upp bókina símann skref 0. Ég ætla að opna til miðja símaskránni. Og það er örugglega tjáning sem ég gerði. Og þá skref tvö var að líta á nöfn. Skref þrjú er svolítið öðruvísi eðli. Ég ætla að biðja mig spurningu. Ef Smith er meðal nöfn, Ég ætla að taka ákvörðun. Ef hann er á meðal nöfn, þá ætla ég að hringja Mike. Og ég ætla að taka ákvörðun byggt á þeim stykki af upplýsingar. Hins vegar, ef ekki, ef Smith er fyrr í bókinni til vinstri, Ég ætla að opna að miðju vinstri hluta bókarinnar. Og þá hér er slungin, Ég ætla að fara aftur að stíga tvö. Ég ætla að raða á standa á eigin herðum mínum og bara endurtaka fyrri störf sem ég gerði. En verkið sem ég hef skilið er minna og minna og minna. En það er samt að fara að vinna. En ef Mike, í staðinn, er síðar í bókinni til hægri, Ég ætla að opna að miðju á hægri helmingi bókarinnar, þá fara aftur að stíga tvö. En það er í raun fjórða atburðarás. Mike er annað hvort hér, eða hér, eða hér, or-- STUDENT: Ekki þar. DAVID Malan: Ekki þar. Og reyndar, ef við gerum ekki ráð fyrir þetta fjórða og síðasta atburðarás áætlun okkar gæti verið þrjótur eða gölluð á einhvern hátt. Annað, hætta að ræða að við höfum ekki fundið Mike yfirleitt. Og reyndar, ef þú hefur einhvern tíma tekið eftir tölva hangandi, eða öllu Skyndilega orð eða einhver önnur Forritið hættir bara óvænt, og stundum þér villa Skilaboðin eru bókstaflega að. Þetta forrit hætta óvænt. Það getur verið fyrir allir tala af ástæða. En stundum er það eitthvað eins einfalt og þetta. Mannlegi forritari sem skrifaði þessi hugbúnaður vissi ekki að, ó, það er fram hlutur sem getur í raun gerst. Og ef þú skrifar ekki kóða til handtaka sem fjórða atburðarás, það er örugglega óvænt stundum hvað tölva gæti raunverulega gera. Nú skulum kalla út nokkrar af þessum hlutum. Svo í gulum hér, ég hafa bent skilmála að héðan við erum bara að fara að hringja aðgerðir. Aðgerðir í heimi forritun eru bara eins og aðgerðir, yfirlýsingar aðgerða. Svo taka upp, opin, leita á, kalla, opinn, opinn, hætta. Það er fall, aðferð, aðgerð, allir tala um samheiti myndi vinna eins og heilbrigður. Nú hvað er þetta nú í gulum? Ef annað, ef annað, ef annars, þetta eru það við erum að fara að hringja aðstæður í forritun, eða útibú, ákvörðun bendir, ef þú vilt. En hvernig veistu hvaða gaffal á veginum til að taka, svo að segja? Við þurfum að varpa ljósi hugtök til hægri Það, sem eru þessir já, engin spurning. Þessar Rétt Rangt spurningar. Smith meðal nöfn? Smith fyrr í bókinni? Smith síðar í bókinni? Þetta eru spurningar til þar sem það er já eða nei, eða equivalently satt, eða ósatt, eða equivalently, einn eða núll svar. Og á meðan er það bara einn síðasta stykki. Þetta hefur hér hvers konar áhrif? Hvort sem þú program áður, hvernig myndir þú lýsa því sem skref sjö og 10 eru að gera? Hvað sagðirðu? STUDENT: A endurkvæma skref. DAVID Malan: A endurkvæma skref. Já, í raun. Það er tæknilega endurtekningu hér ef þú ert kunnuglegur. En við munum koma aftur að því. En það er að gera eitthvað skýrt. Aftur, það er örvandi a hringrás, lykkju, rétt. Þú ert bókstaflega að fara baka að einhverju fyrri skref. Og svo reyndar, þetta er að fara að framkvæma einhvers konar hringrás. En þú ert ekki að fara að fá fastur í þessu endalaust, rétt. Vegna þess að ef þú ert stöðugt að skoða er Mike hér, eða til vinstri, eða ekki hér, lokum að hann er ekki að fara að vera þar. Og þú getur bara hætta með öllu eins og á þeirri síðustu línu. Svo það er það orðaforða. Og þetta var það sem við gerðum almennt kalla sauðakóðanum kóða. Það er ekki raunveruleg tungumál. Það er bara mjög terse English, en það hefur samband málið. Það er engin formleg uppbygging hér. Þú notar bara það fáir orð, en eins skýr orð eins og þú getur til að senda hugmynd. Nú hvernig gott er að reiknirit og hversu miklu betra er það? Jæja, eigum við ekki að komast í sérstöðu númer eða neitt svona. En við getum litið á sem lögun af þessari lausn. Þannig að ef við drögum bara smá xy lóð hér á lárétta ásnum hér. Við skulum bara kalla stærð vandans. Og tölvu vísindamaður myndi yfirleitt nota n sem breytu hér. Svo n síður, eða N fólk í herberginu, eða hvað það er sem þú ert að reyna að telja. Og þá á lóðrétta ásinn á vinstri, það væri kominn tími til að leysa. Svo hversu margar sekúndur gerir það taka mig á að finna Mike Smith? Eða hversu mörg skref tekur það? Hversu margir síðu beygjur tekur það? Svo er það hversu mikið það kostar mér í tíma til að leysa vandamál. Og við kannski að draga fyrst reiknirit halla, ef þú vilt, sem bara þetta beina línu í rauðu. Og ég ætla að kalla það n. Hvers n? Hvers vegna er það bara þetta eina að einu sambandi? Jæja, ef Regin eða hvað símafyrirtækið bætir eina síðu til símaskrá næsta ári, sem gæti ýta Mike einn skref nær til loka, eftir því hvar þessi síða er. Og svo áhrif gæti bara að vera að bæta við einum sekúndu. Eða eitt síðu snúa. A einn til einn hlutfall. Á hinn bóginn, annað reiknirit. Hversu mikið hraðar var það innsæi? Þar sem ég fór tvær síður í einu? Já. STUDENT: [inaudible] DAVID Malan: Já. Svo það er að fara að vera tvisvar sinnum eins hratt. Og við viljum draga það hér háö skalanum. Það er samt bein lína, en lægri en rauða línu. Vegna þess að sumir tala síðna, ef það tekur þú þetta margir skref með fyrsta reiknirit, það er að fara að taka þig helming eins mörg skref með sekúndu. Og svo gula línan lýsa seinni reiknirit er bara að fara að vera undir það. En hvað er í raun öflug er að hugsa um þriðja og síðasta, og ótrúlega mest leiðandi reiknirit, sem hefur þessa lögun. Tæknilega við myndum kalla þetta lógaritmískum bugða. Ur stöð 2 á n í þessu tilfelli. En það skiptir ekki máli. Það sem skiptir máli er í raun í grundvallaratriðum mismunandi lögun sem það hefur. Og þú getur íhuga hversu mun styttri þessi lína virkilega er í the langur hlaupa. Það er stöðugt að aukast. Það þýðir ekki að fletja út fullkomlega. En það vex alltaf svo mikið hægar sem vandamálið fær stærri og stærri. Og hægt er að hugsa um það þessa way-- ef Regin er ekki bara bæta við einni síðu á næsta ári en tvöfaldar fjöldi síðna í símaskránni, fyrsta reiknirit gæti taka tvisvar eins mörgum skrefum. Ef það er 1.000 síður þetta ári, 2.000 síður á næsta ári, Mike gæti verið að mikið lengra í burtu. Svo það er 1.000 auka skref til að finna hann. Seinni reiknirit gæti verið aðeins 500 fleiri skref til að finna hann því aftur, Ég er að fljúga í gegnum það tveimur í einu. En hvað um þriðja reiknirit? Ef Regin tvöfaldar sem Stærð símaskránni á næsta ári frá 1.000 til 2000 síður, hversu margir fleiri skref er þriðji reiknirit minn að fara að taka? Já, það er bara einn. Og það er öflugur hugmynd. Hægt er að taka 1.000 síðuna bit út af því að vandamál í einu. Og nú ef þú telur kjánalegt atburðarás, en það talar eins konar til máttur þessu tagi intuition-- ef símaskrá hafði, eins og, fjóra milljarða síður, finnst eins og a raunverulega stór vandamál. Og reyndar, það gæti taka mig fjóra milljarða síðu snýr að finna Mike Smith í því Málið með fyrsta reiknirit. En hversu mörg skref myndi það taka í þriðja reiknirit að finna Mike milli fjögurra milljarða stykki af pappír? Svo fjóra milljarða þér rífa í tvennt. Þú færð tvo milljarða. Þá einn milljarð, þá 500 milljónir, 250 milljónir, 125 million-- en það finnst eins og þetta er að fara að taka smá stund. Ég gæti þurft 32 fingur að telja upp það mikil. En það er örugglega eins fáir sem 32 bls tárum. Þú getur farið úr fjórum milljarðar til eina síðu innstu fylgsni upprunalega fjöldi Síður í tvennt 32 sinnum þangað til þú ert vinstri með bara að einni síðu. Nú, auðvitað, ég svindla hér. Það er ekki það að við erum bara að vera svoleiðis af heimskur alveg með fyrstu tveir reiknirit. Ég svindla í einhverjum skilningi, eða virkilega ég fá meira forsendu. Hvað var satt um símaskránni í upprunalegri mynd sem leyft mér að jafnvel nota þessi þriðja reiknirit? Já? Áhorfendur: Það var alphabetized. DAVID Malan: Það var alphabetized, ekki satt? Ef það væri bara í handahófi röð, þetta er sóun tíma, þetta allt samtal. Ég verð að líta á hvert síðu ef það er í handahófskenndri röð að finna Mike Smith áður en ég má álykta að hann sé þarna eða ekki. Og svo horn við hafa skorið er að ég hef ráð fyrir að einhver annar í þetta mál gerðum vinnu fyrir mig. Og svo að lokum boð spurningin vel, bíddu í eina mínútu. Hvernig finnst þér að raða 1.000 síður nöfnum og númerum? Það er í raun öðruvísi vandamál, eitthvað við munum koma aftur til í framtíðinni. En þegar þú hugsar um vefsíður eins og Facebook og Google fyrir Gmail og hlutir eins Google eigin leit Vísitölur, þegar þú ert milljónir eða milljarða stykki af gögnum sem geymd þessa dagana, searching-- og ekki sé minnst flokkun þær problems-- er endanlega áskorun í sjálfu sér. Og reyndar, þetta er þá bara einn af þeim áskorunum að við munum vera að horfa á. Svo nú skulum taka a augnablik og taka a líta á CS50 sjálft og gefa þér tilfinningu um hvað er í verslun þessari önn. Reyndar, ef þú hefur ekki nú þegar, ekki taka a líta á þessa vefslóð. Og eins Patrick kennd til, á þessu ári erum við gerð mikil fjárfesting alla meira í að styðja Auðvitað er uppbyggingu í skilmálar af TAS og VS, skrifstofa klukkustundir, kafla framboð, og stafræn efni á netinu, eins og heilbrigður. Reyndar, í skilmálar af námskeiðinu er fyrirlestur, við erum hér í dag. Og væntingar þetta ári opinberlega af námskeiðinu eru að mæta til í dag, að sjálfsögðu er síðasta fyrirlestur og námskeið nokkurn veginn í miðju önn með hverjum fyrirlestri í milli liggja almennt á föstudaginn síðdegis á netinu, bæði fyrir Yale nemenda og Harvard nemendur á þessu ári. Reyndar, einn af the grundvallarbreytingar er sem við erum að samþykkja á Harvard fyrirmynd mjög mikið eins og við gerðum hér í síðustu ár og nú á þessu ári, svo sem álíka, filma við enn mest fyrirlestra Námskeiðið er í Cambridge en gera þau aðgengileg fyrr en við höfum í fortíðinni þannig að þau you-- ef þú langar að, til dæmis, fá forskot á efni á fyrstu helgina frekar en seinni helgina, munt þú hafa aðgang að þessum tegundum af efni, leit, Ívafin, hyperlinkable að tengjast auðlindum alla fyrr. Hvað varðar efnisatriði, til að gefa þér tilfinningu trajectory-- Auðvitað er og sum þetta gæti verið hrognamál fyrir nú, en ekki lengi, treyst. Við munum byrja í dag, að lokum, með að horfa á einum forritun tungumál kallast grunni. Við munum umskipti eftir í næstu viku til eitthvað sem kallast C og síðan að horfa á önnur bygging blokkir til að leysa vandamál, hlutir sem kallast fylki og reiknirit, hvernig við notum minni til að nýta okkar og ókostur, og hlutir eins gögn uppbygging, og síðan í átt að síðasta staf flokkur horfa á vél nám og horfa á annan tungumál kallast Python, hvernig vefur virkar, hvernig internetið meira almennt virkar, samskiptareglur eins HTTP, tungumál fyrir gagnagrunna eins SQL, JavaScript fyrir vefinn, og að lokum binda allar þessar saman. Og svo reyndar, á lok dagsins, þú munu ekki læra í þessum flokki grunni eða C eða Python eða SQL eða JavaScript. Þú verður að stað almennt læra tölvunarfræði og undirstöður þeirra, og þú munt læra hvernig á að forrita í mörgum þessara Tungumál leiðinni. Þannig verð, eitt af markmiðum Námskeiðið í lok er að taka burt allar námskeiðið er þjálfun hjól af þeim síðustu vikum þannig að eftir þetta, getur þú aftur á eigin fields-- þinn hvort sem er eða er Ekki tölvunarfræði eða verkfræði, í eðlilegt vísindi, listir, hugvísindi eða beyond-- og koma sumir af þessu hugmyndir Auðvitað er og þessi reitur er hugmyndir og hagnýt færni til eigið lén í því skyni að leysa vandamál þar. Hvað munum við vera að gera hér á meðan í flestum fimmtudaga eftir dag er með höfuð Námskeiðið er leiðandi það sem við munum kalla walkthroughs af vandamál setur Námskeiðið er. Svo í hverri viku þegar við hafa a vandamál setja, við munum að ganga í gegnum í stað svona viðfangsefni námskeiðsins er, bjóða þér nokkrar ábendingar og bragðarefur og hönnun tækni. En ef þú ert ekki fær að gera þá í eigin persónu, átta sig á þeim sama auðlindir verði fellt við einn af sjálfsögðu er leiðbeinenda í því vandamáli setur sig, eins og heilbrigður. Vandamálið setur á þessu ári, ólíkt á síðasta ári, byggt á endurgjöf, Enn verður sleppt á föstudögum. En frekar en að vera vegna síðari Föstudagur, þannig að gefa þér aðeins sjö daga, mun í raun vera vegna 10 dögum síðar. Og reyndar, þetta þýðir að þeir skarast með helgi. En við vonum að þetta ár sérstaklega mun þetta leyfa nemendum að ná betur Ebb og flæði í tímaáætlun þeirra, hvort sem það er fræðimenn eða extracurriculars eða íþróttir eða midterm árstíð. Þú getur annað hvort að framan-álag eða bak-álag viku þinn áherslu á CS50 byggt Á eigin viku þinnar raunverulegu námskeið álag. Vandamálið setur sig mun spanna svið tungumála, þó að við munum leggja áherslu aðallega snemma á á C áður en við leggjum áherslu á eftir á hærri stigi, fleiri vefur-miðlægur tungumál. Og þá í nokkra spurningar here-- ættir þú að taka bekknum eins CS50 sem fyrsta árs? Svo algerlega. Og reyndar, það er ekki endilega eitthvað þú ættir fresta þar til þú hefur skorið tennurnar á öðrum tegundum flokkum. Heldur telja að fyrir marga nemendur, ég sjálfur innifalinn aftur í dag, þetta er mjög framandi sviði, sérstaklega ef þú aldrei gerði tekið AP CSA eða eitthvað svoleiðis í menntaskóla. En ljóst að snemma á, hvort sem það er þetta námskeið eða einhver önnur inngangs námskeið, Nú er örugglega besti tíminn, Ég held, að finna einhverja nýja leið eða nokkrar nýjar fræðilegum áhuga, eins og heilbrigður. Og þá að taka með öðrum courses-- svo einn af helstu munur hér móti Harvard er að við bara taka fjögur námskeið á önn í Harvard fyrir sumir ástæða. Og þið í raun og veru að draga burt sumir 36 námskeið í alls á meðan á fjögurra ára þínum, sem þýðir yfirleitt fjórar eða fimm bekkjum. Og ég held að það sé alveg óhætt að segja og að afsala CS50, við hönnun, er sennilega ekki tegund af bekknum að þú ættir venjulega taka með fjórum öðrum námskeið fyrir samtals fimm vegna psets eru eftir hanna nokkuð ákafur. Reyndar lærði ég líka þetta aftur í dag. Ég myndi ekki lýsa CS50 og tölvunarfræði, forritun eins og svo margt erfitt og það er bara tímafrekt. Það er ekki góður af hlutur þar eftir matinn, þú geta farið aftur til dorm þinn herbergi, setjast niður og byrja að áherslu á pset hugsa, allt í lagi, Ég ætla Bang þetta út í kvöld og þá færa um að næsta efni minn næsta dag. Stundum þú högg bara á vegg. Þú ert galla í kóðanum þínum. Þú þarft ekki endilega að hvernig á að leysa nokkur vandamál. Og einn af the lykill lögun af forritun fyrir mig í dag er þú þarft bara svona til að taka skref til baka stundum, sofa á það eða hugsa um það á meðan á að skokka eða einhverjum öðrum starfsemi, og þá koma aftur til það ferskt. Og þú þarft bara þessum glugga tíma. Og reyndar, það er hvers vegna við höfum lengdur úr the magn af tími í boði fyrir vandamál setur á þessu ári og einnig, fyrir þessa vefslóð Ég setti upp áðan til að hvað er nýtt á þessari önn, Styttri vandamálið setur svo að þeir eru í grundvallaratriðum ekki skemur, og takeaways eru ekkert minna en það er mikið minna framan máli, miklu minna Legwork sem þú þarft að gera í framan hvert Heimadæmi, eins og þú munt sjá, áður en þú getur reyndar kafa í kjöti af henni. Svo átta sig á að þeir og aðrar breytingar eru á sjóndeildarhringnum til að ná betur nemendum, en á endanum að ganga úr skugga um að að takeaways eru örugglega eins hátt og mögulegt er. Svo á meðan meiri vinna en það gæti verið í dæmigerðum bekknum, við vonum að skilar til þú og takeaways fyrir þig og færni og hugmyndir sem þú hættir eru allir meira sannfærandi í kjölfarið. Og til að fá þig there-- og þetta er einn af helstu Takeaways, sem Patrick kennd earlier-- er Stuðningur Námskeiðið er uppbygging. Svo ekki eini hjartarskinn CS50 hafa einn af stærsta auðvitað starfsfólk á háskólasvæðinu. Það hefur einnig einn af mest grunnnámi. Reyndar, CS50 síðasta ári var fyrsta flokks að hafa grunn kennara. Og vitnisburður þeim árangri að gera núna mörg önnur námskeið innan Yale CS hafa þessi, eins og heilbrigður. Og fyrir nemendur, sérstaklega, munu þessir TAS og auðvitað aðstoðarmenn vera að styðja a heild net auðlindir stuðning, meðal þeirra eru köflum eða recitations, vikulega tækifæri að hafa nánara umræður og hefur af efni miðað fyrir mismunandi lög, fyrir nemendur minna þægilegt, öruggari, eða einhvers staðar þar á milli. Þetta mun fylgja framboð Fyrirlestrarnir eftir nokkra daga í hverri viku á mánudögum og þriðjudögum. Og þá skrifstofu hours-- einn-á-einn tækifæri um aðstoð frá námskeiðinu VS og tas verður á miðvikudögum og fimmtudögum og sunnudögum á mörgum sinnum, sem öll verða settar á vef námskeiðsins er, jafnvel meira en á síðasta ári, eins og heilbrigður. En hvað er lykillinn að CS50, ef Ekki vissulega dálítið óvenjulegt, er menning námskeiðinu er að við höfum reynt að rækta, bæði í Cambridge í mörg ár og nú síðast í New Haven. Og í raun, að koma upp þessu Laugardagur, ef þú hefur ekki heyrt, er CS50 Puzzle Day, sem hefur ekkert að gera með tölvunarfræði en er alveg hannað til að senda skilaboð að tölvunarfræði er um að leysa vandamál. Og reyndar, ef þú vilt félagi með einum eða tveimur eða þremur vinum og mynda lið fyrir CS50 Puzzle Day, taka a líta á auglýsingar sem eru á leiðinni út. Og þrjár klukkustundir af pizzu og þrautir og verðlaun bíða. Og reyndar, því að fyrsta sinn á þessu ári, það verður ekki haldið í samstarfi við Harvard. Það verður hér sjálfstætt við Yale. Svo að hafa auga út fyrir þá ef þú hefur ekki. Flestir alla föstudaga í önn eigum við að reyna að gera stór bekknum finnst lítið og koma einhverjum 50 nemendur í hádegismat með starfsmönnum Auðvitað er, með Alumni, vinum frá iðnaði til að tala um hvað lífið er eins eftir flokki eins CS50 og yfir sumrin og eftir útskrift. Svo að hafa auga út fyrir boð um það. Í fyrsta skipti alltaf á þessu ári munum við halda fyrsta alltaf CS50 erfðaskrá Keppnin, valfrjáls opt for-í tækifæri miðjan önn, eftir allt af okkur hafa haft sumir sex eða sjö vikna forritun í C undir belti þeirra til að keppa, ef þú myndir svo choose-- aftur á teams-- reyna að leysa eins margar áskoranir eins og þú getur í forritun með vinir þínir á móti öðrum. Og í átt að hala misseris munum við leiguflug nokkrar rútur, í raun að eyða smá tíma í Cambridge, ef þú vilt eins og að tengja okkur, fyrir svokölluð CS50 Hackathon. Á 7 pm og við munum byrja. Around 9 PM, munum við hafa pizzu. Around 1:00 AM, munum við hafa burritos. Og einhver enn vakandi á rútuferð heim um 5:00 AM, við munum hætta af fyrir pönnukökur á IHOP á leiðinni home-- 12 klst tækifæri til að sökkva sjálfur með bekkjarfélögum og starfsfólk í lokaverkefni námskeiðsins er, sem er tækifæri að fara vel út fyrir Vandamál Auðvitað er sett og hönnun og framkvæmd mest nokkuð af áhugi til þín, sem mun að lokum vera lögun hér í Commons. Í fyrsta sinn CS50 Fair var síðast ári, enda-af-önn sýningu eða hátíð hvað allir í bekknum hafði náð, sérstaklega þeim aftur, sem fór frá ekkert að einhverju, frá núll til 60, hafa enga fyrri bakgrunni og sýningin að lokum, eitthvað fyrir alla háskólasvæðið og, ef á netinu, heimurinn á að sjá, eins og heilbrigður. Nú, þessar hér eru bara nokkrar af þeim TAS og VS sem gerir CS50 mögulega. Leyfa mér að bjóða eitthvað þessara starfsmanna sem eru hér að koma upp á svið, auk höfuð Námskeiðið er, að bjóða einhverjum orð innblástur, eins og heilbrigður. ANDI: Hi, krakkar. Getur þú krakkar Heyrirðu í mér? Takk fyrir að taka þátt okkur á þetta yndisleg, rigning Fimmtudagur síðdegi. Mitt nafn er Andi. Ég er yngri í Berkeley. Og ásamt Stelios og Sumar, Við munum vera þrír höfuð kennsla þinn aðstoðarmenn fyrir þetta komandi ár. Svo held ég, sýningu á hands-- hversu margir af ykkur hafa engin áform um að vera CS mikil né raunverulega köfun djúpt í tölvunarfræði sem meiriháttar hér? Æðislegur. Það er ljómandi. Þannig að ég er í raun alþjóðlegt málefni og hugræn vísindi meiriháttar. Ég kom bókstaflega að Yale með ásetningi á aldrei að þurfa að líta á Fjöldi alltaf aftur í lífi mínu. Þegar ég kom til Yale, þetta var eitthvað sem var aldrei á ratsjá minn. Mig langaði til að læra um ljóð. Mig langaði til að læra um alþjóðamálum. Mig langaði til að læra um vatnsliti teikningar. Já, bjóðum við flokk á vatnsliti teikningum. En ég hef aldrei raunverulega hafði áhuga í neinu stemma stigu tengdum. En þá eldri ég fékk, því meira sem ég áttaði að sérhver sviði raunverulega í sumum vit starfa tölvunarfræði, eða ef ekki tölvunarfræði, útreikningur. Í raun, að alþjóðlegt mín málefnum hyrningarsteini verkefni, við erum að nota gögn greinandi að greina hryðjuverkaárásir fyrir Boko Haram í Nígeríu. Og svo eins og þú geta sjá, án tillits til af því sem meiriháttar þú endar sækjast eða hvað áhugamál þín hér á Yale eru, forritun og undirstöður af hvaða færni eru frábær gagnlegt. Og CS50 raunverulega er vel útbúinn til konar lána mikið af auðlindum sínum til þín, án tillits til hversu vel þú ert eða hvernig áhuga þú ert í að sækjast bekknum. Sumar er að fara að tala svolítið hluti um hvað þú krakkar eru að fara að læra um á þessu ári. SUMMER: Hæ, allir. Ég Sumar Wu. Ég er yngri í Morse. Og ég byrjaði í raun út sem CS50 nemandi sjálfur. Svo fyrir þremur árum, ég var á bilið ár. Ég myndi aldrei taka a CS bekk í menntaskóla, En ég hélt að í frítíma mínum, það væri flott að læra hvernig á að kóða. Svo ég gerði fljótur Google leit, leit út fyrir það sem var í boði á netinu, og sá þetta myndband með Muppets og DJs og kaldur vefsíður. Ég var eins og, ég vil læra hvernig á að gera það. Svo ég tók námskeiðið, og ég bara féll í ást með það. En ég man að vera svo vandlátur af Krakkarnir sem gæti mæta á Hackathon, mæta Puzzle Day, mæta skrifstofu klukkustundir, fá hjálp frá Tas í eigin persónu. Og svo ég aldrei ímyndað að ég myndi fá tækifæri að hér þátt í Námskeiðið sem fyrst fékk mig áhuga á tölvunni vísindi og er ástæðan Ég tölvunarfræðinemi mikil í dag. Svo ég vara þig við, þessum flokki er að fara að teygja þig. Það er að fara að skora á þig. En það er líka að fara að kenna þér hvernig á að gera hlutina að þú aldrei ímyndað þú gætir. Stelios: Hæ, allir. Mitt nafn er Stelios. Ég er yngri í Branford College og CS mikil. Ég er líka frá Aþenu, Grikklandi. Ég hlakka til móts ykkar allra, spjalla við þig á kafla, á Viðtalstími, á föstudag lunches. Ég er virkilega spenntur því við höfum sett svo mikið átak í að skapa einstakt stuðning Uppbygging fyrir ykkur til að gera reynslu þína með Námskeiðið sem best. Og ég vona að þó flestir þú hefur sennilega ekki tekið CS Auðvitað áður, vona ég að það CS50 fyrir þig er það neistaflug áhuga til frekari stunda tölvu vísindi í framtíðinni, eins og það hefur gert með svo margir í fortíðinni. Svo þakka þér fyrir að vera hér, spennt að sjá þig. Jason Hirschhorn. JASON Hirschhorn: Hi, allir. Mitt nafn er Jason Hirschhorn. Ég bý í Silliman. Og ég fór til Harvard sem háskólanámi og majored í samfélagsfræði og minored í tölvunarfræði. Og einn af helstu hlutverkum mínum hér er að styðja þetta frábæra starfsfólk sem þeir styðja ykkur öll. Í raun er þetta ekki þeim öllum. Það eru 55 háskólastúdent og útskriftarnema hér til að styðja ykkur öll. Og ég eflaust einn af þeim bestu hlutar námskeiðsins fyrir þig allt er að fá að vinna með þá, að fá að vita þá, að fá að sjá þá, bæði í CS50 og utan CS50 þessari önn og fyrir mörgum annir til að koma. Svo vonandi þú munt taka Auðvitað vegna þess að vonandi fá að hafa samskipti við Wonderful staff við höfum á sviðinu. Ræðumaður: Jæja, láttu mig klára með því að segja það verður gaman. DAVID Malan: Jæja, takk öllu liðinu okkar. Leyfa mér að dekkja ljósin og leyfa meira af liðinu okkar, bæði frá Cambridge og New Haven, að segja halló eins og þessir gaurar skrá burt. Og eftir það munum við umskipti til fyrsta skuldbindinga forritun okkar með þessu tungumáli kallast grunni. Svo þökk sé liðið. Við skulum dekkja ljósin og heyra frá nokkrum öðrum. [Applause] [Vídeó spilun] -The Hlutverk CS50 er að gera þér öruggari með algerlega nýjan hátt hugsun, þetta computational hugarfari. -Það Gert tölvunarfræði áhugavert, sem er eitthvað sem ég vissi í raun ekki grein fyrir var hægt fyrr en ég tók bekknum. -Ég Var eins, hó. Ég er virkilega þýða hugsanir mínar inn í tölvu núna. -Even Ef þú ert ekki með neina bakgrunn í tölvunarfræði eða einhverju reynslu, þetta er í raun bekknum fyrir þig. -Svo Ég vil örugglega nemendur mínir bara að fá bráður óður tölvunarfræði. Ekki bara forritun, en hugsa eins og a tölva vísindamaður er í raun það sem ég vil reyna að kenna freshman minn. -CS50 Er erfitt og gefandi. An reynslu. -Extravaganza. -Það Er að færa okkur á næsta stig. [TÓNLIST] -The TFS eru, held ég, að undirstaða af námskeiðinu. -Ég Spenntur að hafa nemendur mínir ég er að hjálpa hafa þessi AHA augnablik að átta sig á hvað þeir eru í raun að reyna að gera, til að reikna út hvernig á að gera pset. -CS50 Er örugglega erfitt námskeið. En ólíkt öðrum Auðvitað raun í Yale, það hefur svo mikil, stuðningsmeðferð samfélag. -Þú Gera alls ekki þarf að vita neitt um erfðaskrá að vera fær um að taka námskeiðið. -Það Er ótrúlegt að horfa á hversu langt fólk kemur í eina önn. -Þú Voru ekki einir að sitja í herbergið þitt læra að kóða, en það var meira en bara bekknum. Það var reynsla. -The Besta leiðin til að læra hugtök og að vinna þá er með því að kenna öðrum. -Hvað Er í síma hættu? [TÓNLIST] -Og Þetta er CS50. [TÓNLIST] -Þetta Er CS50. -Got Vandamál? Rífa það í tvennt. [TÓNLIST] Hentu því. DAVID Malan: Allt í lagi. Svo skulum tackle-- í smá bita, tilviljun, það er verið þessi hefð fyrir sumir ástæða fyrir 10 árum til að þjóna köku minnsta byrja og enda CS50. Svo bíður þér í lok í dag, í viðbót við námskrá, verður nokkur köku eins vel og Starfsfólk Námskeiðið er að segja halló. En nú skulum umskipti til Fyrsta tungumála okkar, þar sem Við munum eyða í raun bara viku og einn Heimadæmi á þessu léni, Scratch. Og þú munt finna ef þú hefur forritað áður, margir af þeim hugmyndum og þess Möguleikarnir eru þekki þig. En þú munt komast að því að það er gaman á leiðinni að reikna út nákvæmlega hvernig á að þýða sumir af þeim hugmyndum sem þú veist nú þegar við þetta tiltekna umhverfi að virkilega vekja hrifningu fjölskyldu þinni og vinir með vinnu, sem getur fara online, ef þú velur það, eftir á. Og ef þú ert ekki fyrri reynslu og eru meðal meirihluta nemendur minna þægilegt, átta sig á að margir af þeim hugmyndum sem við bara kannaði með reality-- hlutum eins og bækur síma og aðsókn og svo forth-- þýða nokkuð vel við tölvu, en ekki ef þú notar, upphaflega, tungumál eins og þetta. Svo er þetta forrit skrifað á tungumáli sem heitir C. Og við munum eyða töluvert um tíma í C, að lokum. En líkurnar eru, þetta mun líta svolítið dulinn að þér í fyrstu sýn. Í staðreynd, there 'a einhver fjöldi af skrýtið setningafræði, sviga, horn sviga, hrokkið axlabönd, vitna, og semikommum. Og reyndar, ef þú kafa inn forritun í fyrsta sinn horfa á og reyna að búa til efni eins og þetta, heiðarlega, þú færð svo mired svo oft í bara heimskur minutia sem hefur ekkert vitsmunalega áhugavert um það. En ímynda sér ef þú gætir búið til þetta sama program-- sem eins og þú might eins konar álykta, sennilega prentar "Halló, heimur" einhvern veginn eða annan. Við getum distill þessi sömu hugmynd í bara tveir púsluspil stykki, ef þú vilt. Reyndar, Scratch er áhugavert vegna þess að það er þetta myndrænt tungumál. Hægt er að draga og sleppa þeim púsluspil stykki sem aðeins Öryggisræsipinni ef það gerir rökrétt vit til að gera það. Og svo í grunni, við munum fljótlega sjá, þetta er hvernig þú myndir framkvæma það sama program, með aðeins tvo ráðgáta stykki það ansi mikið hvað þeir segja. En við munum sjá í bara smá stund að sumir af kubbar sem við kennd að fyrr og nokkrar fleiri eru allt sem að lokum eru að fara að mynda sum elstu áætlunum okkar. Við erum að fara að hafa hlutina eins functions-- bara aðgerðir sem gera eitthvað, eins og segir halló, heimur. Við erum að fara að hafa lykkjur, hlutir sem örva hringrás aftur og aftur, alveg eins og við gerði áðan með rannsakandi Mike Smith. Breytur, eins og í algebru, ef þú hafa X eða Y, sem hægt er að geyma númer. Jæja, í forriti, þú getur raunverulega geyma meira en bara tölur. Þú getur geymt orð og setningar og grafík og öðrum hlutum enn. Boolean tjáning, bara questions-- já eða nei, satt eða ósatt. Skilyrði, taka ákvarðanir byggt á þeim já / nei svör. Og þá áhugamaður hlutina eins array og þræði og viðburðir og allir tala um annað lögun, en allt sem kortleggja mjög fallega til mjög vingjarnlegur blokkir eins og þetta. Þetta er að fara til vera a fall, fjólublátt ráðgáta stykki sem bara segir hvað nafn hennar is-- í þessu tilfelli, segja. Og þá oft, það er hvítt kassi sem þér getur slegið inn eða draga sumir gildi í. Og það er það sem er almennt kallast rök eða breytu. Það er leið til að breyta því sjálfgefið hegðun þraut stykki eða fall þannig að það er eitthvað sérsniðin fyrir þig eins og að segja, halló, heimur eða halló, Andy eða halló, Jason eða einhver annar málsliður í staðinn. Ef þú vilt segja að lot-- bókstaflega forever-- þú getur tekið annað púsluspil stykki sem kallast eilífu og bara samloka á tveir saman eins og þetta. Og það lykkja, eins og myndin gefur til kynna, þýðir bara að segja halló, heimur eilífu, aftur og aftur og aftur. Eða, ef þú vilt bara að gera það tímabundið fjöldi af sinnum, eins og 50 sinnum, það er að fara að vera annar ráðgáta stykki fyrir that-- endurtaka 50 sinnum. Á sama tíma, ef þú vilt að hafa breytu í þessu máli sem við erum um að spila með, þú getur notað appelsína blokk eins og þetta. Og þessi breyta I geðþótta Ég kallaði til heiltölu. Og ég setti bara það jöfn 0. Og svo kannski ég, í þessu case-- þetta variable-- táknar skora einhvers í leiknum. Þú byrjar á núlli, og hvert skipti sem þú gera sér markmið eða eitthvað svoleiðis, þú færð einn til viðbótar stig. Þú getur spurt spurninga í grunni. Ef við draga og sleppa þraut stykki í augnablikinu eins og þetta, þú getur spurt spurninga eins og: vel, er ég minna en 50? Kannski þú þarft 50 stig til að vinna. Og svo þetta myndi vera spurning þú vilt spyrja. Eða, meira almennt, að má segja er x minna en y, þar sem það er tvær breytur þátt? Nú, þetta er mikið stærri við fyrstu sýn, en í raun ekki allt sem flóknari. Þetta er bara sambland aðstæður og breytum og Boolean tjáning til að spyrja þrjú questions-- er x minna en Y? Ef svo er, segja svo. Segja, x er minna en y. Annars, ef x er hærra en Y, annars x skal vera jöfn y. Og þar með Mike Smith, Það voru fjórir aðstæður, hér í heimi tölum, x er annaðhvort minna en, stærra en eða jafnt og. Allt sem við höfum eru þrjú gafflar í veginum. Og þá er það áhugamaður púsluspil stykki eins og þetta fyrir hluti eins og fylki, þar sem við erum að fara að vera fær um að geyma upplýsingar. Við erum að fara að sjá blokkir sem leyfa okkur að framkvæma margar þræði, annar eiginleiki sem við munum nota, og þá einnig eitthvað sem kallast atburði. En áður en við komum að því benda og búa jafnvel, að lokum, eigin sérsniðið okkar púsluspil stykki, við skulum í raun að opna forritið sjálft. Þannig að þetta er Scratch. Það er í boði á scratch.mit.edu. Og þú ert velkomin til að spila núna eða síðar, eins og heilbrigður. Þetta gerist að vera ótengdur útgáfa. Fyrir fólk sem ekki endilega hafa mikla internetið, þú getur sótt sami hugbúnaður, eins og heilbrigður. Og það er í raun aðeins þrjár þættir til þennan hugbúnað. Á efstu vinstri horni skjárinn er tegund af sviðinu að Scratch, sem sjálfgefið lítur út eins og köttur, býr inni. Hann er að fara upp, niður, til vinstri og hægri og gera allir tala af öðrum hlutum, og getur að líta hvaða fjölda vegu byggt á búningum sem þú tilgreinir hann. En þetta er það sem við munum kalla a Sprite, eins konar eðli. Og er hægt að hafa margar stafir, eins og við munum sjá fljótlega. Í miðri nú eru allir þessir ráðgáta stykki og þessir flokkar eða bretti þegar í stað. Svo núna, ég smellti á Motion. Og svo ég ætla að sjá allt í hreyfing tengist púsluspil stykki eða blokkir, svo aðgerðir sem hafa að gera með að fara upp, niður, til vinstri eða hægri eða einhver önnur aðgerð. En ef ég smellti á útlit, þú mátti sjá hlutina eins og segjum blokk að við sáum bara í smá stund síðan. Og ef ég smelli á Control, munt þú sjá hluti eins og endurtaka og eilífu og ef blokk sem við sáum áðan. Og svo þú munt finna að við munum bara klóra yfirborð sumir af the þraut stykki saman, en það er allt nokkuð innsæi og benda og smella. Reyndar, Scratch var hannað fyrir yngri nemendur til að hjálpa gefa þeim útrás fyrir skapandi hugsun. Og enn frábærlega, það er yndislegt stepping steinn að nákvæmlega hugmyndir sem við erum að fara að kanna í C og Python og JavaScript, einnig. Á hægri hönd hlið, loksins, hér er þetta, svokallaða forskriftir svæði. Og þetta er bara autt með sem þú byrjar að skrifa forrit. Og ég ætla einmitt það. Nú, gerast ég að vita hvar hlutirnir eru vegna þess að ég hef gert þetta nokkrum sinnum. En ég veit að undir Atburðirnir flokki, það er þetta blokk here-- þegar grænn fáni smellt. Og eftir ef ég súmma út og aftur í hérna á sviðinu, Scratch líf innan þessa lítið ferhyrnt heimi, topp sem er grænt merkja og rautt stöðva merki. Svo fara og hætta, í sömu röð. Og svo hvað ég vil gera þegar að grænn fáni er smellt? Jæja, láttu mig fara að því útlit flokk. Og láta mig fara á undan og draga og sleppa þessu. Og eftir um leið og það gerist loka, þeir eru eins konar segulmagnaðir. Svo ef ég láta nú fara, skyndimynd það saman gott og hreinlegur. Og ég ætla að fara á undan og segja eitthvað eins halló, heimur tvær sekúndur. Leyfðu mér að súmma út og smelltu nú grænn fáni, og segja, halló, heimur. Allt í lagi. Svo er það allt í lagi og gott. Ekki allt sem spennandi. Við skulum gera það svolítið sætur. Og ég veit að í fyrirfram, Scratch gerist að koma með nokkrum sætur hluti eins og þessa. Svo spila hljóð meow þar til gert. Svo skulum gera þetta. [MJÁ] Aw, það er yndisleg. Og ef ég smelli henni again-- [MJÁ] Og aftur. [MJÁ] En ég að halda að þurfa að reanimate grunni. En ég get gert betur en þetta. Hvers vegna þarf ég ekki að draga bara þrír af þessum. Og nú er það þrisvar sinnum eins yndisleg. [Meowing] OK, reyndar, það er lítið hrollvekjandi. Þannig að við þurfum eitthvað þar á milli þar. Ef ég fer að stjórna, það lítur út eins og Það er í raun bíða blokk. Og svo taka ef ég sveima yfir there-- og láta mig gera þetta svolítið stærri. Ef ég sveima, það er að fara að smella á sinn stað. Svo bíða eina sekúndu, bíddu eina sekúndu. Skulum högg græna fána á ný. [Meowing] OK, smá meira náttúrulegur, en ekki mjög duglegur. Svo er þetta rétt ef áætlun mín er Markmiðið var meow þrisvar sinnum. En það er ekki mjög vel hönnuð. Ég svona skera nokkrar horn. Ég fékk smá latur. Hvað finnst like-- hvað ég virðist að hafa gert illa, myndir þú segja? Já? Já, í miðjunni. Áhorfendur: Notað meira minni en þú þarf að vegna þess að þú ert að nota svo margir mismunandi línu. DAVID Malan: Já, svo fleiri línur. Og það væri ekki endilega að vera minni, þó það gæti talist þannig. En það er definitely-- það er offramboð. Og ég bókstaflega konar dreginn og lækkaði sömu hlutina. Og ef þú konar extrapolate-- ef það er ekki augljóst here-- vel, hvernig væri Ég meow 30 sinnum? Ég myndi draga og sleppa, eins og, 30 fleiri pör af stykki púsluspil. Og vissulega, það er betri leið. Og við höfum séð betri leið. Hvað innsæi myndi vera betri leið? Já, bara nota lykkju. Engin eftirlíking og líma. Og reyndar, hvenær þetta önn ef þú byrjar finna sjálfur að draga og sleppa, eða bara að afrita og líma, hættulegt venja að fá inn vegna þetta er bara ekki mjög haldist. Til dæmis, ef ég vil breyta hljóðið eitthvað annað, Ég verð að breyta því núna í þremur stöðum í stað þess að bara einn. Vegna þess reyndar, ef ég brjóta þessa away-- ég heiti bara að fara að decouple það svona. Leyfðu mér að grípa endurtaka blokk, og smelltu þá þrjá, tegund þrjú, kasta sumir af þessum burtu með bara sleppa. Og þá taka það lítur ekki eins og það passar, En segul, það er að fara að ekki aðeins smella í stað en vaxa til að passa lögun. Svo er það gott. Og nú ef ég smelli leika. [Meowing] Mjög gott. Allt í lagi. Og nú er það mjög auðvelt að breyta líka, því ég get bara breyta eitt númer á einum stað. En þetta líka, er ekki allt sem áhugavert. Við skulum hafa í raun Scratch ekki meow, en færa. Leyfðu mér að fara til Motion og færa 10 skref inni of-- Úpps, láta mig laga þetta. Láttu mig hafa það að færa 10 steps-- reyndar, við skulum ekki endurtaka. Leyfðu mér að grípa stjórna blokk, og gera eftirfarandi eilífu. Forever, flytja 10 skref. Og smelltu Spila. OK. Svo sem betur fer, hættir hann. Annars krakkarnir myndu fá mjög í uppnámi þegar þeir missa konar köttinn sinn. En að minnsta kosti ég get dregið hann aftur inn á skjánum. En þetta er ekki allt sem mikill af leik eða hreyfimynd. Það væri gott ef til vill Hann hopp burt brún. Svo hvað gerum við? Hvað reisa þurfum við að hafa Scratch ákveður að hopp, heldur þú, Jafnvel þótt þú hafir aldrei séð Scratch áður? Já, í bak. Áhorfendur: Þú þarft að ef blokk eða ef-þá. DAVID Malan: Já, svo sumir konar ef blokk eða ef-þá. Svo í raun, höfum við einn af þessum hér. Svo if-- svo látið mig fá losna við hreyfingu. Leyfðu mér að stækka þannig að það er stærri. Svo hvernig um þetta. Forever, ef Sensing-- við höfum ekki séð þetta áður. Ég þarf Boolean tjáningu. Og það kemur í ljós hvort að snerta það? Ef snerta brún, hvað mig langar að gera? Jæja, ef ég fer aftur til Motion, reynist, ó, ég get snúið. Leyfðu mér að draga þetta í hér. Af hverju get ég ekki fara á undan og snúa 180 gráður? Og nú, láta mig fara bara í lokin. Ég gæti sett hreyfingu á upphaf eða endir. En rökrétt, í hvert skipti sem ég flyt ég langar að athuga, ég snerta brún? Er ég að snerta brún? Er ég að snerta brún? Þannig að rökrétt ég snúið ef svo. Svo skulum högg leika. OK. Svo það er örlítið þrjótur, svo að segja. Og villan er bara mistök í tölvuforriti. En að minnsta kosti það er að vinna. Og í raun, ég get farið í hér. Og láta mig gera það ekki 10 skref í tími, en þetta er allt fjör er. Þetta er allt teiknimynd eða jafnvel bíómynd er. Leyfðu mér að fara 20 skref í einu. Svo 20 sinnum eins og margir hlutir eru að gerast einu sinni eða tvisvar eins og margir, í þessu tilfelli. Og hann er áhrifamikill hraðar. Leyfðu mér að breyta til 30. 100. 1.000. Og það er að fara mjög hratt. Og þetta is-- já, OK. Svo nú erum við bara að fíflast með það. OK, svo gallaðir. En við getum draga hann út af the vegur hér. En við getum gert meira gaman með þetta líka. Hvernig væri this-- hann er á hvolfi. En það kemur í ljós Scratch-- og það er í raun, Ég verð að afsala, ekki fræðileg gildi að því sem ég er að fara að gera. En ef ég opna á hljóðnemanum, við skulum stöðva hann og gera eitthvað eins og þetta. Ouch! [LAUGH] Það var yndisleg. Þakka þér. Nú, þetta er það sem röddin mín lítur út eins og þegar ég öskra Ouch. Ég held ekki að við lent hlátur þinn. Það er allt í lagi. Leyfðu mér að spara þetta sem "Ouch." Skulum spara þetta sem "ouch". Og nú munum við fara aftur til forskriftir. Og nú er ég need-- skulum sjá, Sound. Ó, spila hljóð Ouch. Þannig að ef ég ætla að snerta brún, láttu mig Fyrsta leikritið ouch, og þá snúa við. Og nú skulum setja hann í miðjunni. [Segja "ouch"] Tvisvar sinnum eins hratt. OK. En það er bókstaflega gera það sem ég er að segja. Svo það er í raun rétt, það er bara smá pirrandi fljótt. Svo skulum bæta eitthvað meira áhugavert að þessu. Leyfðu mér að opna í raun allt eitt sem ég gerði fyrirfram, viðeigandi kallað Pet sem Köttur, sem gerir þetta. Hér er handrit upp hér. Hvað er þetta að fara að gera í ensku kjörum? Hvað er þetta hannað til að gera? Já, við skulum fara some-- já? Áhorfendur: Þegar þér gæludýr köttinn, meows það. DAVID Malan: Já, þannig að þegar þú gæludýr köttinn, það er að fara að meow. Svo í öðrum orðum, það er nú að eilífu lykkja enn, ásamt með ástandi, ásamt með Boolean tjáningu, ásamt núna aðgerðir, áhrif sem, þegar ég spila þetta forrit er ekkert gerist fyrr en ég færa bendilinn nær og nær og nær and-- [MJÁ] Þá er það eins og að klappa kettinum. [MJÁ] Aðeins einu sinni þú raunverulega færa bendilinn yfir honum. Nú, ég þeyttum líka upp ekki gæludýr ekki kötturinn, sem gerir þetta í staðinn. [Meowing] Svo hann er bara stöðugt meowing. [Meowing] En ef ég fæ líka close-- [Meowing] [ROAR] Svo hvernig virkar þetta? Nú hef ég bara tveir-vegur punga í veginum. Ef snerta músarbendilinn, þá spila ljónið hljóð. Annars bara spila meow hljóð, og þá bíða þrjár sekúndur svo að það er eins konar að gera það mjög rólega. Allt í lagi. Svo er það að sameina sumir fleiri hugmyndir enn. Við skulum taka a líta á þetta dæmi Ég þeyttum upp kallast þræði. Og þetta er í grundvallaratriðum öðruvísi því að það notar eiginleiki af mörgum forritunarmál sem heitir þræði, getu forrit til að bókstaflega gera tvennt samtímis. Reyndar, þessa dagana ef þú ert að nota Google Docs eða Microsoft Word, og skjalið þitt er stöðugt að vera villuleita jafnvel eins og þú type-- eða þú högg Command-P eða Control-P og prenta eitthvað, það er prentun á meðan þú heldur áfram að skrifa. Programs dag getur örugglega gert margar hluti í einu, rétt eins og í grunni hér. Svo hér, ég á tvær sprites nú, fugl og köttur. Og ef ég smelli á hvert þá stafi einn í einu, Ég sé núna fuglinn er forskriftir efst til hægri. Nú sé ég kattarins. Bird er, köttur er. Svo að hver þeirra hefur eigin handriti þeirra. En tilkynning, hvað ráðgáta stykki þeir báðir byrja með? Þegar grænn fáni smellt. Og fugla, þegar grænn fáni smellt. Svo þegar ég smelli á græna fána, báðum þessum skriftum eða forrit eru að fara að keyra samhliða. Og þú munt taka eftir því að fuglinn er bara mindlessly skoppar af brún. Kötturinn greinilega hefur verið forritað með stefnumótandi kostur. And-- [ROAR] Allt í lagi. Svo kötturinn lent fugl í þessu tilfelli. Afhverju er það? Jæja, tilkynning fyrst við höfum bara fuglinn bara mindlessly fara þessari fyrstu stað, og þá að eilífu, ef ekki snerta köttinn, bara færa. Og ef þú ert á brún, hopp. Og bara færa. Og ef þú ert á brún, hopp. En kötturinn, á meðan, hefur einhver frekari rökfræði sem segir this-- fyrst, bara svo að þetta er ekki alveg hlutdræg gegn fugl, eftir að ég hef notaði grænt þraut stykki þar sem í raun velur handahófi númer. A lögun af mörgum tungumálum er að gefa þú handahófi eða pseudorandom tölur. Þannig að í þessu tilfelli, kötturinn upphaflega velur slembitölu milli, eins og, 90 gráður og 180 gráður, í raun, svo að það er svolítið of variance. Og þá að eilífu, ef snerta fuglinn, leika ljónið hljóð. Annars bara benda í átt að fuglinn. Benda í átt að fuglinn. Point í átt að fugl, sem er púsluspil stykki í sjálfu sér í þessu tilfelli. Jæja, getum við gert einn annar hlutur hér. Leyfðu mér að opna atburði program hér. Og hér höfum við aftur tvær sprites, sem líta út eins og þessar tvær brúður hér. Og hvað er áhugavert hér er þetta. The appelsína strákur hefur þetta sett af stykki púsluspil hér. Forever gera following-- ef rúm bar er ýtt, þá segja, Marco, og þá útvarpað atburð. Og á meðan, bláa gaurinn hér hefur this-- þegar þú færð atburðinn, segja Polo. Svo kemur í ljós í grunni og í öðrum tungumálum, það eru leiðir til tveimur forritum eða tveir forskriftir, í þessu tilfelli, að intercommunicate þannig að þegar ég högg the rúm bar, segir hann Marco. Og hitt heyrir að, ef svo má tala, og segir Polo í svörun. Svo er hægt að skrifa forrit sem í raun samskipti á þennan hátt. Og ef ég geri þetta einn í staðinn, Ég get jafnvel bætt breytur, bara að nota eina sprite í þessu tilviki. This einn er sérstaklega pirrandi. [SEAL gelta] Takið eftir á hægri höfum við fengið sumir viðbótar rökfræði hérna. Hvernig get ég hætt þessu innsigli frá gelta? [SEAL gelta] Það lítur út eins á hægri hönd hlið er það sem er að spila hljóð. En það er bara að spila a hljóð ef það er satt? Ef að variable-- appelsína block-- þaggaði er núll. Hvernig get ég breytt þögguð að vera 1, þýðir satt, gera þetta þaggað? Apparently, hinn handrit, ég get högg the rúm bar, og nú hættir hann. Þannig að við getum haft þetta fjarskipti yfir handrit, eins og heilbrigður, bara með því að deila breytu yfir tveggja eins og þetta. Nú, þetta er ekki allt sem áhugavert. Við skulum fara á undan og gera þetta og sameina mikið af þessum hugmyndum með þessu forriti hér. Áður en við gerum það þó, hvernig væri einn sjálfboðaliði? Leyfðu mér að taka þrýstingur burt um mig vegna þess að ég í raun ekki spila þennan leik. Við skulum hafa einhvern við hafa ekki séð áður. Þú þarft að vera þægilegt að koma upp á svið hér, á myndavél. OK, komdu upp. Mjög hugrakkur. Hvað heitir þú? IDRIS: Idris. DAVID Malan: Svo? IDRIS: Idris. DAVID Malan: Idris, gaman að hitta þig. Komdu upp. Og nú, á eigin þinn hreyfanlegur Síminn, spilar þú Pokemon fara? IDRIS: Nei DAVID Malan: Really? IDRIS: Já. DAVID Malan: Allt í lagi. Allt í lagi. Jæja, gaman að hitta þig. Komdu yfir. Ég ekki heldur. Þannig að við munum reikna út saman hvernig á að spila þetta, þar sem einhver í raun fór og framkvæmda í grunni með því að breyta kettinum að í raun Mismunandi stafir allt saman. Og ef ég á öllum skjánum þetta hér, við erum að fara að sjá eftirfarandi leikinn saman. Enn að hlaða, enn að hlaða. Láttu ekki svona. Leyfðu mér að gera þetta. Láttu ekki svona. Þessi leikur er svo stór að það hrundi. Standa við. Prófaðu þetta einu sinni enn. Láttu ekki svona. Allt í lagi. Þar sem við förum. OK. Grænn fáni. Svo hér við fara. [TÓNLIST] Veldu miðju stigi hér. Smelltu á bláa strákur þar. Allt í lagi. Og þú getur notað örina keys-- upp, niður, vinstri, hægri. Nú, við skulum íhuga eins og við gerum this-- og þá fara eftir eðli þar. Jebb. Og nú að smella honum með músinni. Ójá. Færa. Hvar er ör? Gjörðu svo vel. Svo að smella á það. Já. Allt í lagi. Svo nú er ég sagði þú ert pota boltanum, að ef smellur það, það mun gera það. Mjög gott. Í æfa í dag, ég fann þessa útgáfu af leiknum er reyndar ekki mjög erfitt. Svo ef þú vilt fara aftur hér, ganga niður að þessu Poke boltanum. Og þá fara að taka rétt. Prófaðu að smella á það. Ó, reyndar, það er geyma, greinilega. OK þannig að loka því. Aldrei gert það áður. Kannski fara upp í þetta hlutur upp hér. Ó, þar sem þú ferð. Bíddu, það er eitt þarna. Ó, það er annar. OK. Niður. Já, smelltu. OK, það er mjög sætur. OK, mjög vel gert. Þessi leikur er ekki mjög erfitt. OK. Til hamingju. Hér höfum við CS50 streitu boltanum fyrir þig. En íhuga fyrir réttlátur a augnablik hvað sum Takeaways eru þar. Auðveldara en alvöru leik, greinilega. En allt sem við höfum að fara hér er eðli sem hefur sennilega einhvers konar lykkju í tengslum við það. Það er ekki köttur. Það er þetta eðli í staðinn. Og það lykkja er bara stöðugt segja, ef upp ör ýtt, ef niður ör ýtt, ef vinstri ör ýtt eða hægri arrow þrýsta, færa upp eða niður eða til vinstri eða hægri. Eða ef það er annað púsl stykki þar sem segir þegar að snerta aðra Sprite, þegar að snerta einn af þeim stafi að Poke boltanum, ef snerta, þá gera þetta. Svo allar hugmyndir sem við höfum verið að nota svona langt raunverulega getur bara verið beitt í þessu tiltekna samhengi til að spila þennan leik, eins og heilbrigður. Leyfðu mér að fara á undan og draga upp einum öðrum hérna, í raun. Leyfðu mér að fara á undan og draga upp, við skulum segja, þetta. Þetta er eitthvað sem við Remixed. Made af einum okkar nemendur í Cambridge, og þá fór ég í gegnum og breytti nánast hvert tilvik af Harvard til Yale þetta sinn. Myndi einhver vilja til keppa á móti ivies hér í öðru uppsöfnun af öllum þessum hugmyndum? Komdu niður, já. Hvað heitir þú? DINA: Dina. DAVID Malan: Adina? DINA: Dina. DAVID Malan: Dina, koma niður. Allt í lagi, Dina. Svo er þessi leikur fær erfiðara og erfiðara, vegna þess að í þessum leik, það er breytur notaðar eins vel sem eru stöðugt að halda utan um á hvaða stigi þú ert í leiknum. Svo gaman að hitta þig. Koma í kring hér. Og svo markmiðið hér er að raða af leggja leið þína í gegnum völundarhús að þetta nemandi framkvæmda. Og bara til að setja á svið, hver þessar myndir á skjánum er eigin Sprite sínum eigin eðli hennar. Svo þessir voru sjálfgefið ketti, en nemandinn breytt þeim til hinna ýmsu ivies lógó hér. Og þá munt þú sjá að bara með því að nota skilyrði og lykkjur og aðgerðir og fleira, þú færð þetta. [TÓNLIST] [TÓNLIST - MC HAMMER, "U getur ekki snerta  ÞETTA "] Já, allt í lagi. Já, halda áfram. Fyrsta stig er mjög auðvelt. Þú hefur bara fengið að fara yfir það. En aftur, íhuga, þetta er bara lykkja hlusta örina keys-- upp, niður, vinstri, hægri. Og nú Sensing blokk. Mjög gott. [TÓNLIST - MC HAMMER, "U getur ekki snerta  ÞETTA "] Mjög gott. [TÓNLIST - MC HAMMER, "U getur ekki snerta  ÞETTA "] Mjög gott. Nokkuð auðvelt, Crimson. Allt í lagi. Levels-- uh-ó. [TÓNLIST - MC HAMMER, "U getur ekki snerta  ÞETTA "] Og aftur, í þessum þrjú Harvard Crests, þú þarft bara rökfræði segja ef á brún, hopp. [TÓNLIST - MC HAMMER, "U getur ekki snerta  ÞETTA "] OK, hvað þú ert að gera er að meira áhugavert en hvers vegna. Mjög gott. Mjög gott. Uh-ó. [TÓNLIST - MC HAMMER, "U getur ekki snerta  ÞETTA "] Ég held að þú þarft að fórna sjálfur. [TÓNLIST - MC HAMMER, "U getur ekki snerta  ÞETTA "] Quick! [TÓNLIST - MC HAMMER, "U getur ekki snerta  ÞETTA "] Nice. Það er allt í lagi. Þú munt fá það. Já já! Mjög gott. [Uppörvandi] [TÓNLIST - MC HAMMER, "U getur ekki snerta  ÞETTA "] Nice! [TÓNLIST - MC HAMMER, "U getur ekki snerta  ÞETTA "] Náði því. Láttu ekki svona! Annað að síðasta stigi. [TÓNLIST - MC HAMMER, "U getur ekki snerta  ÞETTA "] Allt í lagi. [TÓNLIST - MC HAMMER, "U getur ekki snerta  ÞETTA "] Já. Góð notkun á breytum hér. [TÓNLIST - MC HAMMER, "U getur ekki snerta  ÞETTA "] Já. [TÓNLIST - MC HAMMER, "U getur ekki snerta  ÞETTA "] Nice. [TÓNLIST - MC HAMMER, "U getur ekki snerta  ÞETTA "] Það er í lagi. Við verðum að komast til enda. There. Oh! [TÓNLIST - MC HAMMER, "U getur ekki snerta  ÞETTA "] Gæti keyrt seint í dag, en það er ađ vera þess virði. [TÓNLIST - MC HAMMER, "U getur ekki snerta  ÞETTA "] Þú getur gert það! Yeah! [Uppörvandi] [TÓNLIST - MC HAMMER, "U getur ekki snerta  ÞETTA "] Þessi er mjög erfitt. [TÓNLIST - MC HAMMER, "U getur ekki snerta  ÞETTA "] Við munum gefa þér tvo fleiri mannslífum. Getur þú gert það? [TÓNLIST - MC HAMMER, "U getur ekki snerta  ÞETTA "] Allt í lagi. Hvernig óður í a stór umferð lófaklapp engu að síður. Þú verður að annar á síðasta stigi. Þakka þér. [Applause] Svo er þetta bara að segja hversu mikið þú er hægt að gera með þessar tegundir af hlutum. Og átta sig líka, að þegar stykki púsluspil ekki exist-- ekki og reyndar, þetta er að fara að vera einn þeim heimildum sem við fyrsta vandamál setur og beyond-- er að raun að búa til þinn eigin. Og þetta er bara runu af einu af dæmunum sem þú munt vera fær um að spila með á netinu, þar ef þú hefur ekki byggt inn grunni eitthvað eins og hósti ráðgáta stykki, þú geta raunverulega gera það sjálfur. Og svo allt þetta og fleira bíður. Og bara að mála endanleg mynd af örugglega hvað er undan í birgðir fyrir bekknum fyrir þig, byggt á nokkrum myndum af bekkjarfélögum fortíð, leyfa mér að deyfa ljósin eitt síðasta skipti og sýna þér CS50. [TÓNLIST] Allt í lagi. Það er það fyrir CS50. Kaka er nú þjónað. [TÓNLIST]