[Powered by Google Translate] [ROCK MUSIC] [MUSIC - "HAPPY PAMOJA" turtles] DAVID Malan: Leo, sisi kuanza utafutaji wetu wa misingi ya sayansi ya kompyuta na utangulizi wetu, sasa, ni sanaa ya programu, ambayo kwamba ni mfano mmoja tu. Lakini katika ven wa kutatua matatizo, kujua kwamba CS50 wa jadi Puzzle Siku ni kesho. Kama umefanya bado RSVPed ajili ya tukio hili, unaweza kwenda cs50.net/rsvp. Unaweza kuleta timu ya mbili au tatu au nne. Utakuwa changamoto na matatizo kama moja ulizoziona hadi pale mwanzo. Matatizo yote mpya mwaka huu kama wewe walizokula mwaka jana, na wewe watapata nafasi kisha kushinda zawadi ya baadhi Fabulous. Kati yao, Wii na vyeti baadhi ya zawadi na kama, wakati wote kunyongwa nje na wanafunzi CS50 na wanafunzi na pizza na kuungana. Hivyo zaidi juu ya kesho kwamba kama ungependa. Hii basi ni CS50, kwa wale wa wewe kujiunga na sisi kwa mara ya kwanza. Na kujua kwamba kweli hii ni hasa nia ya kupata wewe kupitia kozi hii mwisho wake wa mwisho, ambapo kiwango wewe itakuwa na si tu ufahamu wa haya misingi ya sayansi ya kompyuta, lakini utakuwa na hii sana vitendo ujuzi kuweka kwamba unaweza kisha kuchukua nyuma idara yako mwenyewe, kama ni uhandisi na sayansi, kutumiwa hisabati, sayansi ya michezo, asili sayansi, au kama. Hakika, nini ili kusisimua kuhusu sayansi ya kompyuta hizi siku ni kwamba ni hivyo tu zinazotumika kwa kila aina ya mashamba. Na hata kama leo, sisi tu scratch ya uso wa jadi sana programu lugha inayojulikana kama C, tutaweza badala kuangalia kitu kinachoitwa Scratch kitu fulani na ambayo kwamba hadithi kuki upendo ulitekelezwa na mmoja wa yako watangulizi katika miaka ya nyuma, kwa kuwaambia hadithi, kwa kuunda michezo, kujenga sanaa maingiliano, na kwa kweli kuanza wrap wetu akili kuzunguka baadhi ya constructs msingi kwamba zinasababisha programu lakini katika hali halisi, kama utaona, kwamba kiasi kidogo inatisha, hiyo ni kidogo sana arcane, kuliko utaona kabla ya muda mrefu. Na kutambua, pia, kwa wale tu kujiunga na sisi hii muhula, misemo ambayo sisi kumalizika hotuba ya Jumatano, si hivyo muhimu ambapo wewe kuishia jamaa na yako wanafunzi katika darasa hili, lakini ambapo, hadi kufikia mwisho wa muhula katika wiki 11, kuishia jamaa na wewe mwenyewe haki hii siku sana. Hivyo bila wasiwasi zaidi, hii pia ni thamani kubainisha kuwa walio chini ya starehe, wale mahali fulani katika kati, ni pia, kwa kubuni ya kozi hii, si katika hasara yoyote vis-a-vis wale vizuri zaidi kuja katika darasa hili. Kama utaona zaidi ya wiki ijayo, tuna tofauti tracks kwa ajili ya background disparate nyuma, sehemu kwa wale chini ya starehe, vizuri zaidi, wale mahali fulani kati. Kama utaona mwishoni mwa wiki hii na wiki ijayo, matoleo mawili ya wengi tatizo seti katika toleo wote standard na hacker hivyo kwamba wote wanaweza kujitegemea chagua chini njia ambayo wewe ni vizuri zaidi. Kwa hiyo leo, sisi kupiga mbizi katika programu hii lugha inayoitwa Scratch. Ni graphical programu lugha, na bado sawa sifa za baadhi ya lugha za ngazi za juu tutaweza kuchunguza baadaye katika muhula, kati yao C na JavaScript na PHP. Lakini ni kwenda kuruhusu sisi kuepuka baadhi ya distractions mapema ya syntax, mambo kama semicolons, mabano, na nyingine arcane maelezo kwamba, katika mtazamo wa kwanza, si tu wakati wote kielimu ya kuvutia na huwa na kupata katika njia ya kutoka ufahamu baadhi ya msingi. Katika suala la muundo sasa msaada mbele, barabara hii chombo, CS50 Diskutera, ambayo itaunganishwa juu ya kozi tovuti baadaye leo, ni online majadiliano jukwaa katika ambayo wewe utakuwa na uwezo wa kuuliza maswali ya kila mmoja na wafanyakazi, na pia ni chombo, kama tutaweza kuona wiki ijayo, kwamba tutaweza kutumia kabisa integratedly katika masaa ya ofisi pia. Hakika, ofisi masaa kuanza Jumatatu, na kusema ukweli, kwanza wiki ya masaa ya ofisi ni haki Asili muhimu. Sidhani utapata Scratch yote inaccessible. Ni badala binafsi maelezo, kama tutaweza kuona, na hivyo kile tutaweza kuitumia kwa leo ni kwa dondoo baadhi ya msingi mawazo ambayo, basi, yanaendelea katika mapumziko ya muhula. Lakini kuanzia Jumatatu, saa 8:00 mchana kupitia 11:00 itakuwa masaa ya ofisi katika Annenberg juu ya mapumziko ubongo. Sectioning mbili itaanza jioni hii, hivyo wakati mwingine hii mwishoni mwa wiki, kwenda cs50.net/section, na wewe itabidi kuulizwa maswali kadhaa. Kati yao, jinsi gani unaweza kuelezea yako faraja ngazi kama ya leo? Hakuna ngumu, kwa haraka kama utawala kwa aliye katika ambayo ndoo. Ni tu aina ya kitu ambayo pengine kujua kama wewe ni miongoni mwa walio chini ya starehe au vinginevyo. Na sasa, walkthroughs. kuweka tatizo vipimo kwa ajili ya wiki hii, wote kiwango na hacker toleo sawa, ni online saa cs50.net kama ya sasa. Na utaona kwamba kwanza ya matoleo haya, toleo la kawaida kila wiki, unaambatana na kitu sisi piga walkthrough code, kikao wakiongozwa na moja ya mafundisho kozi ya wenzake kwa kuongoza wewe kupitia, kutoa vidokezo juu, na kupata chini ya njia fulani linapokuja kwa kuanzia seti hizi tatizo. Hivyo kwa kila moja ya tatizo hizi seti, kama wewe ni milele kutaka kwa ajili yako mwenyewe ambapo mimi kuanza, unaanza na hizi walkthroughs. Na kwa kweli, naomba kuanzisha Zamyla Chan, hii mafundisho ya mwaka wenzake ambao watakuwa kuongoza kila mmoja na kila moja ya walkthroughs haya. Zamyla? [Applause] ZAMYLA CHAN: Oh, hi, kila mtu. Jina langu ni Zamyla. Mimi nina junior kusoma uhandisi katika Winthrop House. Lakini mimi kujaribu na inafaa katika kama wengi kozi za sayansi ya kompyuta kama mimi unaweza, ambayo ni kwa nini mimi nina kweli msisimko kwa kuwa kuongoza hii mwaka walkthroughs. Walkthroughs, kwa ajili yangu, walikuwa sehemu muhimu ya CS50 yangu uzoefu. Wakati walkthrough, kwa ajili ya kuweka p-kila, tutaweza kwenda kupitia tatizo kuweka pamoja, kuangalia juu ya matatizo, aina ya wagawe juu katika kuumwa manageable. Mimi nitakupa vidokezo mbinu, kwa ajili ya kupata kupitia na kupata kuanza. Natumaini kukuona yote katika walkthroughs. Kama huwezi kufanya hivyo katika mtu, basi tafadhali kufanya tune katika online. DAVID Malan: Mufti. Asante, Zamyla. Hivyo kutambua kwamba walkthroughs ni kweli, siku ya Ijumaa alasiri, lakini hii ni kwa makusudi kwa kubuni ili kwamba hata kama msiotaka kuhudhuria darasa juu ya Ijumaa alasiri, video itakuwa juu wote haraka zaidi juu ya mwishoni mwa wiki. Hivyo kutambua kwamba cs50.net atakuwa yote ya wa Zamyla walkthroughs. Na kwamba kuna tarehe ya leo na wakati, 3:00, Harberd Hall, 104. Na baadhi ya wenzake mafundisho pia tayari baadhi hotuba kwa wewe kuwepo kwa kuwapa kidogo ya mtazamo kama yale uzoefu wao kuja ndani na kwenda nje ya CS50 ilikuwa kama. Hivyo kama tunaweza dim taa kwa muda tu, nimewapeni baadhi ya wafanyakazi wa CS50. JACKSON STEINKAMP: Mimi alichukua CS50 mwaka jana kama Freshman katika kuanguka, na ni kabisa akapiga akili yangu. Nisingeli mfanya madarasa yoyote ya programu kabla, na kamwe alikuja na sayansi katika kompyuta yoyote uzoefu wakati wote. Na tu, nikasikia buzz kuhusu darasa na aliamua kuchukua hiyo. Julia MITELMAN: Ni kweli fun, kweli walioshiriki. Mimi bado, hadi leo hii - Mimi hivi karibuni tu niliona nina disketi kwamba Daudi alitupa siku yetu ya kwanza ya hotuba. Mimi nilikuwa Hung juu ya ukuta wangu. Hii pengine ni kidogo nerdy, lakini mimi Hung katika juu ya yangu ukuta wakati wa darasa kama ukumbusho wa jinsi ya baridi ilikuwa. TRAVIS Downs: Ni hivyo aibu. JACKSON STEINKAMP: Kompyuta sayansi ni kitu lazima kujaribu hata kama wewe si moja kwa sayansi ya jadi. Ni uzoefu wake mwenyewe, na CS50 kuhakikisha uko mkono vizuri kupitia kwa jeshi lake veritable ya TFS. ALI NAHM: Mimi alichukua kama Freshman, na hivyo mimi alifanya mengi ya marafiki wapya. Mimi pia got kuletwa na ukolezi hii nzima na nzima shule ya uhandisi, na hivyo mimi sana kupendekeza na kuwakaribisha kwa familia zetu CS50. YANIV YACOBY: CS50 tu inafundisha jinsi ya kutumia zana kwamba ni sana kupatikana. Wewe tu haja ya mbali, unahitaji browser mtandao, na wewe haja ya kujifunza kuandika baadhi ya kificho, na kweli unaweza kujenga nadhifu mambo. Karen Xiao: Ni hivyo tu baridi na kuwa na uwezo wa kufanya kitu na kuwa na watu kuitumia na kuwa na watu kuona hivyo, na kwamba nini mimi kweli upendo kuhusu hilo. Tim MCLAUGHLIN: - maana ya jamii, nadhani, katika hii kozi zaidi ya shaka yoyote nimekuwa kuchukuliwa hadi sasa. Wewe si kuchukua tu mwingine - wewe si kujaza mwingine mahitaji. Wewe si tu kwenda mihadhara na kwenda kwa sehemu. Lakini unafanya tani ya mambo ambayo ni wote kuhusu programu na wote kuhusu teknolojia, lakini haina kweli kujisikia kama darasa zaidi ya muda. TRAVIS Downs: Siku ya kwanza, wao mitupu nje keki, na Mimi mara moja kuuzwa. JACOB PRITT: Free pipi na pizza. ZAMYLA CHAN: - bila kujali maslahi yako ngazi, nadhani kwamba CS50, itabidi kuwa na furaha, na wewe utakuwa na kielimu drivas. MARK GROZEN-SMITH: Ni daima chama katika darasa, na ni kila chama usiku kazi kwenye seti p-yako. JACKSON STEINKAMP: Kila muda kumaliza kuweka tatizo, kujisikia kama wewe kumaliza ya mradi. MELISSA Niu: Ilikuwa Freshman mwaka, na mimi ilifanyika ununuzi. Mimi alikuwa wangu nne madarasa tayari, na mimi nilikuwa katika Annenberg. Na mimi mapema ndani rafiki, na anasema, hey, mimi nina ununuzi darasa hili aitwaye CS50, na unapaswa kuja na mimi. Kuishia kuchukua ni kwamba kuanguka, na baada ya darasa kwamba, mimi walidhani labda nitakacho madogo katika CS. Lakini hapa mimi, miaka mitatu baadaye, bado kusoma kompyuta sayansi na kweli kufanya hivyo kama kubwa, na mimi kupendwa kila wakati wa hayo. Rob Bowden: Mimi sijui. ALI NAHM: Hebu kuona. MELISSA Niu: craziness. SPIKA 1: Mimi najisikia kama ningependa kuwa sana cliche. Ningependa kusema tu, kama, kutisha. YANIV YACOBY: Upatikanaji. JACOB PRITT: Free pipi na pizza. TRAVIS Downs: Je, si kugeuka chini darasa kwamba mikono nje ya keki. Tim MCLAUGHLIN: juhudi. VIPUL SHEKHAWAT: Essential. Rob Bowden: Hebu fikiria jibu. Mimi nadhani got kitu. Oh, mungu. Yeah, jina langu Rob Bowden, na hii ni CS50. [Applause] DAVID Malan: zote haki, hivyo hebu kuanza kuchora picha wa mwelekeo ambao tunaweza kwenda, na hebu kuanzisha dhana hii hapa inayojulikana kama pseudocode. Hivyo pseudocode si programu Lugha hata yenyewe. Ni kitu kiufundi per se, lakini ni tu aina ya ujumla njia ya kuonyesha uungwana mwenyewe just, uungwana algorithmically, uungwana procedurally, lakini bila kuwa na wasiwasi kuhusu lugha gani wewe ni kuonyesha mwenyewe in Ni baadhi ya mfano wa Kiingereza na lugha ya programu na ambayo kutokea kwa kuwa familiar, ili tuweze kuanza kuandika jambo la aina hii kama sisi kwenda. Na kwa kweli, Joseph, inaweza mimi kukopa wewe juu ya hatua ya kuwa mwandishi hapa? Mimi tumeenda mbele hapa mapema na wamesahau kuweka juu ya soksi baadhi ya leo, na hii utakuwa miongoni mwa zaidi yetu ridiculous mifano. Sasa, mimi haja ya wewe zaidi ya hapa. Mimi itabidi kufanya sehemu soksi. Hivyo hapa tuna kidogo scratch pedi. Hii ni literally tu TextEdit katika Mac. Sisi siyo kweli kwenda kuandika mpango runnable, lakini sisi ni tu kwenda kuanza sketching nje pseudocode makao juu ya baadhi ya shauri wewe kutoa na mimi hapa. Hivyo hapa ni rundo yangu ya soksi nyumbani. Sina soksi juu ya wakati mimi kuamka asubuhi, na sisi sasa haja ya kuandika mpango, algorithm ya aina, na ambayo kupata soksi haya juu ya miguu yangu. Na njiani, hebu angalia kama sisi safari juu, au kukutana, baadhi ya mawazo ya kwamba utaenda kuwa na kuanza kufikiri juu zaidi umakini wakati programu wasije programu yako si kuishi kabisa kama ilivyokusudiwa. Kwa hiyo mimi kukaa chini hapa. Mimi nimepata rundo yangu ya soksi. Nini jambo la kwanza busara binadamu ingekuwa kufanya wakati lengo ni kuweka juu ya jozi ya soksi? Mtu nipe hatua moja, na ni moja tu hatua. Yeah? Watazamaji: Bend chini. DAVID Malan: Bend chini, Sawa. Hatua mbili. Hatua mbili. Watazamaji: Pick up sock yako. DAVID Malan: Pick up sock yako. Sawa, hivyo kidogo utata hapa, na hii ni moja ya kwanza kikwazo vitalu kwamba sisi ni walidhani makusudi kukutana hapa. Ni kidogo utata, hivyo kuchukua sock yako. Fine, Nitachukua hii moja, lakini kompyuta, kutambua katika tu kidogo, si kwenda kuwa na kwamba aina ya silika ya binadamu tu kuchukua moja ya karibu. Sisi ni kwenda kuanza, kabla ya muda mrefu, akielezea wenyewe zaidi usahihi. Haki ya wote, hivyo hatua mbili ni pick up sock yako. Tutaweza kuchukua hiyo. Hatua ya tatu. Katika nyuma. Watazamaji: Find jozi vinavyolingana. DAVID Malan: Find jozi vinavyolingana. Sawa, hivyo hii ni nzuri. Mimi nilikuwa na kuchagua hii sock. Hivyo lengo ni kupata sock vinavyolingana, sasa, lakini kile haina maana? binadamu busara kuwa, kiasi kama Jumatano wakati mimi tu alijua jinsi ya kupata Mike Smith katika kitabu cha simu, aina tu ya akaenda na silika zao. Lakini hapa, ni wazi kuwa hili sock hapa, lakini kompyuta si itakuwa hivyo instinctive. kompyuta ataenda kuwa na ukusanyaji wa bits, kama sisi kujadiliwa kwenye Jumatano, na hao ni kupangwa kwa namna fulani katika kumbukumbu. Lakini uhakika ni kwamba kompyuta ina uwezo tu kuangalia mambo kwa wakati mmoja, na kwa kweli, hata sisi binadamu - hata ingawa anahisi kama mimi glanced chini na kupasuliwa pili baadaye najua ambapo sock ni, ubongo wangu na macho yangu labda alifanya haraka skim ya soksi hizo, na kisha latched kwenye moja katika swali. Hivyo kama sisi kuwa wote zaidi ya makusudi sasa kama kompyuta, jinsi gani mimi kupata hii jozi vinavyolingana? Naam, tunapaswa kuwa na iterate. Inabidi labda kitanzi juu ya hii fujo ya soksi juu ya sakafu ambapo mimi kusema kitu kama KWA KILA sock, pick it juu, na kama sura sawa na ukubwa kama moja nyingine, BASI dot, dot, dot, tutaweza kuendelea hadithi. Hivyo kwa kila sock, hivyo mimi kuchukua hii moja. Mimi ni kuangalia hii sawa na hii. Siyo, hivyo mimi kuweka kando kando. Kisha mimi iterate tena. Je, hii ni moja sawa? Hapana, si, hivyo mimi kuiweka kando. Je, hii ni moja? No Hii moja? Hapana, na kadhalika. Na kisha hatimaye, hopefully, mimi kukutana hii sock hapa. Hivyo kama ni umbo moja, kawaida, kuchukua hiyo. Na sasa, nini itakuwa hatua yetu ijayo hapa? Yeah? Watazamaji: Tambua haki kutoka kushoto. DAVID Malan: Okay, kutambua haki na wa kushoto, ili bahati nzuri, kwamba aina ya kazi. symmetriska kidogo, au nimekuwa tu huvaliwa yao kwa njia hiyo. Haki ya wote, hivyo nimekuwa kutambuliwa haki. Na sasa, kabla ya sisi kuendelea, basi mimi kumweka nje nini Yusufu wamekuwa wakifanya hapa kama aina ya programu mjuzi. Hivyo tena, hakuna njia moja ya kufanya hili, lakini zaidi tu idadi ya mistari, Joseph tayari imeshaanza kufanya hili aina ya indentation. Hakika, huu ni mkataba wa kawaida sana katika programu, ambapo wakati wa kufanya kitu iterative, looping style, kama sisi ni akimaanisha na maneno ya Kiingereza "KWA KILA sock, "mkataba katika pseudocode na, kama tutaona, kawaida programu lugha, ni tu Indent. Hit nafasi bar mara chache, hit muhimu Tab au kama, ili nested chini "KWA KILA sock" ni chunk ya stuff kwamba unahitaji kufanya kama matokeo ya kitanzi kwamba. Basi hiyo ni yote yale kuwasilisha semantically. Sasa wakati huo huo, "Kama ni sura sawa na ukubwa," ukweli kwamba "Chukua" ni indented zaidi tu ina maana hilo ni jambo tu unapaswa kufanya kama sharti kwamba, kama kwamba tawi, kwamba uma katika barabara, kwa kweli ni kweli. Hivyo sasa hapa, sisi ni juu ya hatua nne, kutambua kulia na kushoto. Nimekuwa kutambuliwa haki. Kutoa yangu hatua tano. Na kitaalam, sisi inaweza kweli wito KWA KILA kitu - unapaswa pengine namba mistari yote ikiwa tunakwenda kufanya hili. JOSEPH: [inaudible] DAVID Malan: [inaudible]? Okay, faini, wote haki, tutaweza kufanya hivyo njia yako. Haki ya wote, hivyo hatua tano, ni jinsi gani sisi kufanya sock haki? Jinsi gani sisi kuendelea ijayo, hapa? Ndiyo? Watazamaji: Inueni mguu wa kulia. DAVID Malan: Inueni mguu wa kulia, Sawa. Hatua ya sita? Haraka. Yeah. Watazamaji: Find mwisho wazi ya sock. DAVID Malan: Okay, kupata mwisho wazi ya sock. Hivyo nzuri. Hivyo hapa, uaminifu, Instinct kawaida sana ingekuwa tu kuwa kuweka kwenye sock haki, lakini pia kwamba ni haki ya utata. Isipokuwa kompyuta au binadamu anayejua hasa nini maana ya, si kwenda kuwa na nitafanya hivyo, hivyo hapa, nimekuwa kupatikana ufunguzi wa hisa. Hatua ya saba? Watazamaji: Shika vidole vya miguu. DAVID Malan: Touch vidole. Sawa, hivyo sasa sisi kwenda - Haki wote, mimi naenda kuchukua uhuru baadhi hapa. Shukrani. Hatua ya nane? Vaeni sock. Sawa, hivyo sasa mimi, nadhani tuko karibu kutosha ya aina ya kuchukua hii moja nyumbani. Haki zote, hivyo hii huenda juu. Mimi itabidi kuchukua uhuru baadhi na inamaanisha nini, kwa kweli. Kuweka sock juu. Haki zote, sasa hatua tisa? Watazamaji: Weka mguu chini. DAVID Malan: Asante. Hatua ya tisa, kuweka mguu chini, na sasa, tunaweza kurudia. Hivyo labda, tunaweza sasa kwenda katika hatua ya 10 na kusema kutambua kushoto sock, lakini hiyo ni pengine tayari amefanya. Na hivyo basi, mimi unaweza aina ya kurudia hatua hizi. Lakini aina hii ya begs swali. Kabla ya hapo, wakati wa mwisho tulitaka kurudia kitu, sisi alifanya hivyo iteratively, tena na tena, KWA Kitanzi KILA hivyo kusema. Je, ni mantiki ya kutumia kitanzi ili kushughulikia wote kushoto na sock haki? Kwa sababu anahisi kama hizi shughuli ni pretty much kufanana isipokuwa kwa ukweli kwamba moja inaanza hapa na moja inaanza hapa? Je, sisi kitanzi, au kufanya sisi tu kuweka hatua kuandika 10 na 11 na 12? Watazamaji: Loop. DAVID Malan: Sawa, hivyo kitanzi. Mimi kwa kweli anaweza kuwa alisema tu kuendelea. Hivyo kwa nini hii kesi? Naam, hii ni kweli kwanza ya zetu zisizo dhahiri kubuni maamuzi, na kwa kweli, moja ya metrics na ambayo tutaweza kuanza kutathmini, kwa wenyewe na kwa ajili yenu, ubora wa mpango ni jinsi tu pamoja iliyoundwa ni. Umefanya kiasi ndogo ya kazi muhimu kupata kazi kufanyika haraka zaidi, ama katika suala la muda wako au katika suala la muda wa kompyuta mbio? Wangapi shughuli gani inachukua nitafanya? Hivyo arguably, hii ni fursa kwa kitanzi kwa sababu haraka kama mimi kuanza kuiga na pasting, kama Joseph ufanisi ingekuwa kuanza kufanya katika dakika moja, wewe ni aina ya kupoteza yako muda, na wewe ni kuwa doubly expressive. Lakini wakati huo huo, hizi ni kweli tu mbili maalum kesi, kushoto na kulia. Na wakati kabla, nipate kuwa soksi 10 au 20 au zaidi katika rundo, ni dhahiri hufanya akili si kuwa na mistari 50 ya code akisema kuangalia hii sock, basi moja ijayo, basi moja ijayo. Hapa, ni kidogo chini ya dhahiri, na napenda mapendekezo kwamba tunaweza kwenda ama njia. Tunaweza kuwa na aidha kuwa kitanzi, ingawa tu matanzi mara mbili, au tunaweza tu nakala na kuweka kidogo tu hapa ili kupata kazi kufanyika. Lakini mpango huu ni Buggy, hivyo kusema. Inawezekana kuwa baadhi ya makosa, makosa, au kesi kona, hivyo kwa kusema, kwamba sisi si kweli wanatarajia. Hakuna kitu potoka wakati huu, lakini nini inaweza kuwa wamekwenda vibaya wakati wa utekelezaji mpango huu? Watazamaji: Huna soksi yoyote. DAVID Malan: Hivyo kunaweza kuwa hakuna soksi kuna chochote. Basi hebu fikiria kwamba kesi kona. Hivyo kama tunaweza kitabu nyuma hadi hatua moja, hivyo hatua moja alikuwa inama, ili hundi nje. Hatua mbili, pick up sock yako, lakini kisha kupata vinavyolingana sock, kutambua haki. Sisi aina ya kufanywa rundo zima la mawazo, na hii ni, kusema ukweli, kwa nini mpango wakati mwingine ajali. Kama wewe, programu, kuwa alifanya dhana fulani, kama Hakika kuna kwenda kuwa soksi au hakika kuna kinaendelea kuwa kumbukumbu kushoto katika kompyuta, hakika kuna kinaendelea kuwa nafasi disk kushoto juu ya gari ngumu - Naam, kama wewe kufanya mawazo haya, na kwamba si, katika ukweli, ukweli, ambaye anajua nini wakati mwingine ya kompyuta kwenda kufanya? Na wakati mwingine, wakati wewe kupata inazunguka beach mpira au waliohifadhiwa Windows au kama, hiyo ni just kwa sababu baadhi ya programu Hawakutarajia wale kesi kona kinachojulikana. Nini kingine inaweza kuwa wamekwenda vibaya katika mpango huu? Yeah? Watazamaji: Huna mguu wa kulia na mguu wa kushoto. DAVID Malan: Okay, wanaweza kuwa wote mguu wa kulia na kushoto mguu, na hivyo programu hii inaweza kuwa kwa wote husika. Wengine? Watazamaji: Unaweza kuwa ilichukua sock yatima. DAVID Malan: nipate ilichukua sock yatima, hivyo yasiyo ya vinavyolingana sock kwamba tu ana ndugu hakuna sababu nimekuwa waliopotea, ni vilio, ni katika safisha bado, au kama. Hivyo kwamba, pia, ina si kweli imekuwa kubebwa. Yeah? Watazamaji: Unaweza tayari soksi juu. DAVID Malan: nipate tayari soksi juu. Sikuweza kweli check. IF huna soksi juu, BASI kuendelea kufanya mstari mmoja na miwili. Na ambayo inaweza kutokea. Ukilala na soksi yako juu na kama, ili kwamba, pia, busara sana kona kesi. Na labda mtu mwingine? Watazamaji: sock ni ndani nje. DAVID Malan: Hivyo sock ni ndani nje, hivyo sisi hakufanya kosa kuangalia, katika muda mfupi. Sisi hawakuwa kuangalia kama hali ya dunia ni kama sisi kutarajia. Sisi hawakuwa kuangalia kama sisi kweli kupatikana nini sisi ni kuangalia kwa. Na hata ingawa hii ni aina ya mfano ridiculous kuwashirikisha soksi, mwisho wa siku, hii ni hasa aina ya mawazo unahitaji kuwa na wakati kuandika programu, hata katika Scratch kama vile katika C, katika JavaScript, katika PHP, kwa sababu vinginevyo, programu yako maonyesho sawa ya mpira ambao inazunguka pwani au tu mavuno usahihi wa matokeo. Hivyo wengi shukrani hapa kwa mwandishi wetu Joseph. [Applause] DAVID Malan: zote haki, hivyo ni nini, katika kweli, programu ya kompyuta? Naam, hebu kuchukua mtazamo wa haraka katika mwakilishi mmoja hapa. Hivyo hii ni programu iliyoandikwa katika lugha inayoitwa C. C ni uungwana zamani siku hizi, lakini wengi lugha ya karibu zaidi ni kujengwa juu yake. Hakika, PHP, moja ya lugha za mtandao-centric tutaweza kutumia kuelekea mwisho mrefu wa, yenyewe ina nini inaitwa mkalimani, programu iliyoandikwa katika C, lakini zaidi juu ya kwamba katika wiki nyingi kutoka sasa. Lakini mpango huu, na hii ni nini maana ya kuandika mpango, angalau moja rahisi sana. Tuna baadhi ya syntax uungwana cryptic hapa, lakini unaweza pengine guess, hata kama wewe sijawahi iliyowekwa mbele, nini mpango huu gani. Hakika, sijui nini ni printf, lakini magazeti ya shaka conjures up wazo la uchapishaji kitu nje. Na hivyo ndiyo, mpango huu ni hatimaye kwenda magazeti nje maneno "Hello, Dunia." Sasa, kama una Mac au PC au kompyuta Linux, tabia mbaya ni, angalau kama wewe kupakuliwa baadhi hiari inapatikana programu, unaweza wamekuwa kuandika mipango juu ya Laptop yako mwenyewe kwa muda kabisa sasa. Juu ya Mac OS, kwa mfano, kuna programu hii inaitwa Terminal kuja na Mac, hiyo ni kawaida katika yako Utilities folder, na kwa ujumla kuufungua nyeusi na nyeupe au dirisha nyeupe na nyeusi ambayo una kuchochea saa ambayo unaweza aina amri. Hivyo hii ni kweli ni kukumbusha kile kompyuta kutumika kwa kuwa kabla ya mtumiaji graphical interfaces, GUIs, alikuja pamoja. Sasa, katika Windows, una utaratibu sawa katika fomu wa haraka amri. Lakini kile Mimi naenda kufanya hapa ni kufungua, hebu sema, TextEdit tena, hivyo mpango huo sisi walikuwa wanatumia kwa ajili ya pseudocode wakati uliopita, na mimi nina kwenda mbele na kuandika mpango wangu wa kwanza. Pamoja stdio.h, chochote kwamba njia, int kuu batili, chochote kile maana yake, na kisha katika katikati hapa, printf ("hello, ulimwengu."). Na kisha karibu quote, karibu Paren, semicolon. Sasa mimi nina kwenda mbele na tu hit Command-S. Mimi naenda kwenda mbele na kuokoa hii kama hello.c, hivyo mkataba katika dunia ya programu C ni jina faili dot c. Mimi naenda kuweka tu katika Nyumbani saraka John Harvard wa, hapa, bonyeza Ila, na sasa mimi nina kwenda juu ya hii terminal dirisha, ambayo tena ni hii haraka nyeusi na nyeupe ambapo naweza wanatekeleza amri. Mimi wanaweza kukimbia mipango na kuandika jina lao, na si kwa mbili-Kwenye icons katika akili ya kawaida. Lakini jambo ni kuhusu C ni kwamba lugha kama C kwanza huja katika namna hii, kitu kinachoitwa chanzo code. Kitu ambacho inaonekana kidogo kama Kiingereza lakini ni dhahiri chini kama Kiingereza kuliko Yusufu pseudocode wakati iliyopita. Ni kidogo zaidi arcane. Inaonekana kufuata mwelekeo wa baadhi au sheria. ukweli kwamba nina braces curly, semicolons, quotes, angle braces, anahisi kama kompyuta kuja na hii aina ya lugha. Lakini kama mimi kwenda, sasa, kwa dirisha hili terminal, siwezi kukimbia amri ambayo inaenda kubadilisha kwamba chanzo code ni kitu kinachoitwa kitu code. Ambayo inaenda kubadilisha Kiingereza-kama syntax kwa zeros na ndio, kila moja ya zeros na ndio sisi aliyesema kuhusu Jumatano. Sasa, mimi nina kwenda kukimbia amri kuitwa Clang. Zaidi juu ya hili katika wiki ijayo, lakini ni mpango na ambayo naweza kubadilisha hello.c ndani ya rundo zima ya zeros na ndio. Sasa, nimekuwa kukimbia amri hii. Nimekuwa kukimbia Clang, na kisha nikasema kukimbia mwenyewe juu ya faili hii kuitwa hello.c, ambayo mimi umba wakati uliopita, na kitu inaonekana kutokea. Lakini, ikiwa mimi poked karibu nyumbani saraka yangu, napenda kuona kwamba hii stupidly aitwaye mpango a.out sasa lipo. Hii ni jina default kwa ajili ya mpango wakati wa kuandika katika C. Tunaweza override hii hatimaye, lakini a.out ni jina la mpango mimi tu kuongoka katika zeros na ndio. Na kwa kuwa sasa ni zeros na ndio, Mac yangu, katika kesi hii, au yako Windows PC, wanaweza kuelewa bits wale, wale zeros na ndio. Na hivyo wakati mimi hit Enter, naona "hello, ulimwengu!" Lakini ni Buggy kidogo. Sikuwa kabisa kusema "hello, ulimwengu: hewa: -! Jharvard." Hewa ni jina ya kompyuta yangu. Jharvard ni jina la akaunti, hivyo nini mimi wazi omit kutoka mpango? Baadhi ya aina ya mapumziko ya mstari. Sikuweza hit sawa ya Enter au kurudi carriage, na hii ni, tena, ushahidi wa ukweli kwamba kompyuta inaweza tu kufanya kile wewe kuwaambia cha kufanya. Na ukweli kwamba Mimi sikuwaambieni kompyuta hoja mshale line ijayo - vizuri, ni hakika si kwenda tu kufanya hivyo kujikinai kwa ajili yangu. Hivyo kama mimi kurejea mpango wangu, na mimi kusema \ n - Hivyo \ n, kama tutaweza kuona hivi karibuni, ni njia ya anayewakilisha mambo weird kama wahusika mpya line, mambo ambayo vinginevyo kuwa ni matokeo ya kupiga ufunguo kuingia. Lakini kwa sasa, tu kujua kwamba kitufe kuingia ingekuwa tu kufanya code yetu kuangalia isiyo ya kawaida, hivyo aliamua dunia, unajua nini, kwa kuweka mambo prettier, kuitunza kwenye mstari mmoja, hebu tu kusema \ n inawakilisha mstari mpya. Hebu resave faili yangu, kwenda nyuma ya dirisha terminal, na re-kukimbia a.out, Ingiza. Bado Buggy, lakini kwa nini? Watazamaji: [inaudible] DAVID Malan: Yeah, hivyo mimi haja ya recompile yake. Hivyo mpango wa kukusanya tu ina maana kubadili kutoka chanzo kanuni na kitu code code, chanzo zeros na ndio. Sasa, ukweli tu kwamba mimi hit Ila katika hili TextEdit hana kuzaa juu ya zeros hizo na zile kwa sababu mimi kwanza haja ya kuwaambia Clang hey, nimekuwa iliyopita wale mistari ya kificho, chanzo code. Unahitaji regenerate a.out. Hakuna inaonekana kuwa kilichotokea, lakini katika kompyuta, katika mstari amri, ili kuzungumza, wakati chochote kinachotokea, kwamba kwa kawaida maana yote ni sawa. Wakati kitu gani kutokea, ina maana wewe messed up, kwa ujumla. Basi hebu sasa kwenda a.out, na kwa kweli sasa, nina "hello, dunia ". Na sasa, nini kuhusu haya zeros na zipi? Ambapo, kwa kweli, ni wale? Naam, siwezi kweli tu aina ya poke karibu sana kwa ufanisi. Hebu kufungua TextEdit. Hapa ni a.out. Hebu kwenda mbele na kufungua hii, na hii ni nini inaonekana yangu mpango inaonekana kama. Hivyo nilipofungua, si hello.c, lakini a.out. Lakini hii ni kweli si kile mpango wangu kweli ni. Wazi, hii ni aina fulani ya wahusika alfabeti. Mimi naona hakuna zeros na ndio, lakini hii ni kwa sababu a.out ni mpango. Zeros na wale - lakini TextEdit, kama jina linavyosema, ni tu kama Notepad juu ya Windows, ni tu mhariri wa maandishi, hivyo ni kuwachanganya wote wa zeros hizo na zile kama ingawa walikuwa, nini? ASCII wahusika. Hivyo wanakumbuka juu ya Jumatano, sisi tu kuja na hii holela ramani ya namba, au bits, na barua ya alfabeti na alama punctuation na kama. Hivyo TextEdit, kwamba ni mhariri asilia ni misinterpreting wale mifumo ya zeros na wale ambao wanatakiwa kuwa uchapishaji maneno, kama "dunia hello,." Ni ya kuionyesha kama ASCII, na kwamba sababu inaonekana messy kidogo. Sasa, kuna baadhi ya vidokezo ya usahihi katika hapa. Taarifa kama mimi kuonyesha, kuna ladha ya kweli "hello, dunia, "hivyo mahali fulani katika mpango kwamba ni sentensi mimi aliandika. Lakini hebu kwenda mbele na kuona sasa na mpango tofauti. Hii si moja tutaweza kutumia mara nyingi, lakini pia kuja na Mac na itakuwa ndani ya appliance CS50. Hebu kwenda mbele na kufungua na programu inayoitwa XXD. Nyuma kwa siku, programu nyingi walikuwa aitwaye uungwana isiyoeleweka kirahisi, na hivyo hali hiyo itaendelea. Lakini-b maana mate nje ya mpango huu kama binary. Je, si kukimbia. Kuonyesha ni mimi kama zeros na ndio, na hii ni C mpango sisi tu aliandika. Sasa, mimi, kama binadamu hapa, mimi uaminifu hawana wazo nini haya mbalimbali mifumo ya zeros na ndio kuwakilisha. Nyuma kwa siku, mimi, pamoja na kadi yangu Punch au kama, ingekuwa kweli kuwa na kuangalia kile ruwaza hizi mbalimbali za 01111000, kwa kweli kuwakilisha. Au mbaya zaidi, napenda haja ya kufanya au kufinywa uumbaji ya ruwaza hizi za zeros na ndio. Lakini kwa sasa, kuchukua imani kwamba CPU, Intel ndani, hivyo kusema, ndani ya yote ya kompyuta yetu siku hizi, anajua jinsi ya kutafsiri zeros haya na ndio. Na baadhi zeros na ndio maana magazeti. Baadhi zeros na ndio maana kucheza sound. Baadhi zeroes na ndio maana kuchukua user pembejeo kutoka keyboard. Kuna kila aina ya mifumo tofauti, lakini sisi nashiriki, kama binadamu, tu kwa ujumla haja ya kuwa na wasiwasi kuhusu programu katika ngazi hii ya juu ya haki. Na katika nyingine CS madarasa unaweza delve chini zaidi na kuangalia katika mambo kama zeros hizo na zile, au bado mambo mengine bado. Hivyo sasa hebu kubadilisha hii. Hebu hoja haraka sana mbali na C na hoja ya kitu kidogo zaidi ya faraja, zaidi kidogo ya kusisimua, kwa kuwa tunaweza kupata nyuma Animations yetu na sauti na kama kwamba wazi kuwa alitoroka sisi katika hii uungwana primitive interface. Hivyo mpango huu sawa katika C inaweza kuwakilishwa sasa katika hii programu lugha inayoitwa Scratch kama ifuatavyo. Hii ni sawa na mpango huu hujambo dunia imeandikwa katika kipande hii puzzle style lugha inayoitwa Scratch. Hivyo basi mimi kwenda mbele na kufungua mpango huu sana. Ni mara ya pili wakamwita Scratch. Ni hiari inapatikana, na hii ni kitu kimoja sisi kuanza leo tarehe. Hivyo hii hapa ni Scratch, na ni kuvunjwa juu katika chache tofauti vipande. Juu ya haki ya juu sana, tuna hatua kinachojulikana, na Hakika, hiyo ambapo cookies kutumbuiza kidogo tu iliyopita. Na juu ya hatua ambayo ni mambo kuitwa sprites wahusika, au vitu, au taasisi. Ni kweli haina jambo jinsi unafikiri wao, lakini wao ni programmable, movable vitu, na katika kesi hii, hii mpango kwamba mwanafunzi wetu aliandika ina michache ya Gingerbread cookies, wanandoa wa cookies mviringo, rundo zima la mioyo, rundo zima la miwani. Kwa sababu hii, yeye au yeye ni uwezo wa mpango wa kila wale mtu binafsi wahusika tofauti. Sasa, ni nini maana kwa mpango wahusika hawa? Vizuri, basi mimi kwenda mbele na bonyeza kuki hii kushoto na kitabu juu ya upande wa kushoto juu hapa. Katika kushoto juu ya screen yangu sasa ni kinachojulikana scripts eneo hilo. Hii ni aina ya slate tupu, awali, kwenye ambayo naweza Drag na kuacha vipande puzzle kwamba, kusema ukweli, kufanya hasa nini wanasema. Katika sana juu ya hii stack ya vipande puzzle ni neno Wakati Green Flag clicked, na kama hakuwa na taarifa kabla, njia Nilianza kwamba wimbo kuki alikuwa kubonyeza, literally, bendera ya kijani. Hivyo kwamba kipande puzzle juu kushoto kuna maana ya wakati binadamu Clicks bendera ya kijani, aliendelea kufanya mambo yafuatayo. Sasa, kwa nini wao kuki kuendelea kufanya? Mimi kwa kweli sijui jinsi ya kutafsiri hii bado, lakini kuki inatarajia Groove yake na sifuri, basi walisubiri tatu sekunde, basi ni iliyopita kundi lake kwa moja, basi ni walisubiri pili, basi ni iliyopita yake Groove nyuma moja. Na kisha hii kwa kweli inaonekana kama kidogo ya mdudu, hawapaswi kuwa na mabadiliko ya Groove yake tena na tena isipokuwa ni kuwa iliyopita mahali pengine, lakini hii mfululizo wa hatua ni nini kulazimisha tabia ya kuki fulani. Basi hebu kweli kitabu nyuma na si kuangalia kitu kabisa hivyo tata bado. Hebu kwenda mbele na kwenda Picha, New, na kupata slate safi. Hivyo sasa, mimi kweli kuwa tupu script eneo hilo, hatua tupu, na default wetu Scratch Sprite, na juu kushoto juu ya screen yangu mimi kuwa na godoro wa wote wa zao inapatikana puzzle vipande vipande. Na sisi si kwenda kwa njia ya karibu kwamba wengi wa mambo haya leo kwa sababu, tena, zaidi ni maelezo binafsi, lakini sisi kujaribu categorize yao na kumweka nje yanayofanana na lugha hizi baadaye ambayo sisi kupiga mbizi. Na juu kushoto hapa ni kwanza Wakati Green Flag clicked, hivyo basi mimi Drag hii zaidi ya hapa, zoom nje kidogo. Na kama mimi bonyeza bendera ya kijani, hakuna kitu kweli hutokea kwa sababu ya Mimi si masharti yoyote mantiki, taarifa yoyote ili kuzungumza, kwa kuwa bendera ya kijani, hivyo basi mimi kwenda makundi zaidi ya hapa. Mimi nina sasa katika jamii Control. Mimi badala kwenda chini kwa jamii Looks, na kuna rundo zima la mambo hapa kwamba kusema Sema, Fikiria, Mabadiliko ya Rangi, Switch Costume. Hivyo unaweza kufanya mambo silly na costumes na sauti na kama. Hebu kwenda mbele na kusema tu Sema, na sasa taarifa kama mimi Drag na kuacha hii kipande puzzle, ni kwenda wanataka latch katika sura sambamba. Hivyo wakati mimi kwenda mbele na basi kwenda ya panya yangu, wao lock pamoja, na sasa kama mimi kwenda juu hapa na bonyeza bendera ya kijani, paka haina ukweli kusema hello kwa sababu hiyo ni nini ndani ya hii sanduku nyeupe. Tutaweza haraka kuona kwamba hii sanduku nyeupe ni nini wito hoja, au parameter. Ni njia ya kubadilisha tabia ya, katika kesi hii, puzzle kipande, lakini kama nataka kusema hasa kile alisema kabla, kusema hello, dunia, sasa naweza kurudi nyuma zaidi ya hapa, bonyeza kucheza, na "hello, ulimwengu" ni nini alisema. Hivyo sisi ni literally programu sasa. Ni si kulazimisha kwamba wote wa mpango, lakini angalau ni kitu kidogo zaidi kuliko kulazimisha kwamba inaonekana, katika kwanza mtazamo, kama hii. Na tunaweza haraka sana kupata yote zaidi expressive kwa sababu katika Scratch, kama katika lugha nyingine, kuna aina aina ya kauli, si tu Sema au uchapishaji kitu, lakini unaweza kufanya mambo kama kusubiri, kama sisi tu, kwa kuona kwa cookie, baadhi ya idadi ya sekunde. Unaweza kucheza sauti katika mazingira ya Scratch tu kama unaweza katika kawaida programu ya kompyuta sauti kucheza. Unaweza kuangalia kile kinachojulikana misemo Boolean. Hivyo sasa, hebu kuanza kwa kuongeza toolkit yetu baadhi ya istilahi kwamba kweli inahusiana na mfano kwamba Yusufu na mimi hapa na soksi. Hivyo kauli tu kauli ya ukweli. Je hii. maelekezo kwa Sprite, au mimi binadamu, kufanya kitu fulani. Kujieleza Boolean ni kitu ambayo ina thamani, kinachojulikana ukweli thamani, hiyo ni aidha zero au moja, au ya uongo kweli, au kuizima, hakuna au ndiyo. Je, si kweli jambo jinsi unafikiri ya hili, lakini ni binary serikali. Kama Nate kujadiliwa katika video Jumatano, wawili mambo tofauti. Hivyo katika Scratch, misemo Boolean kutokea kwa kuangalia kama hizi vitu bluu hapa, na katika kesi hii, swali alama ina maana kwamba wewe ni kuuliza swali. Je paka, au Sprite, kugusa mouse pointer? Hivyo hii ni mfano mmoja tu wa block Scratch kwamba kinaendelea kuruhusu sisi kuangalia ndiyo au hapana, ni panya kugusa sprite kwenye screen? Na hii inaweza kuwa na manufaa kama kweli wanataka kufanya mambo na mouse yako. Mbali na maneno Boolean, tuna mambo kama ni kipanya chini, hivyo unaweza kugundua kwamba aina ya swali kama vizuri. Tunaweza kufanya hisabati kama kweli wanataka, na kuna kweli zaidi ya kulazimisha matumizi kwa ajili ya hii kuliko safi tu ya hesabu, kama tutaweza kuona. Pseudo randomness na kufanya mpango yako kuonekana kufikiri au tabia tofauti kulingana na baadhi ya maadili inaonekana random, na kisha sisi mambo kama maneno Boolean kama NA. Hivyo kama kweli wanataka kuangalia maadili mbili, tutaweza kuona katika Scratch kwamba tunaweza kweli mtihani kama hii ni kweli na hii ni kweli. Kwa mfano, katika kesi ya soksi yangu, mimi naweza wameweza katika sana mwisho aliuliza swali kama sock kushoto ni juu ya haki na sock ni juu, kuacha. Umemaliza kwa siku, hivyo kwamba itakuwa nafasi kwa ajili hiyo. Basi hebu kwenda mbele na kujaribu kipande baadhi ya hizi pamoja na kwenda katika michache mifano zaidi kulazimisha kuliko huu. Hivyo basi mimi kwenda mbele hapa na kufungua baadhi ya mifano kwamba daima kuwa katika tovuti ya shaka pia, na kufungua hello2. Hivyo katika hello2 hapa, tuna mpango kwamba anafanya chache mambo, lakini siyo kufanya hivyo vizuri kama sisi nguvu. Hivyo hapa anasema "hello, ulimwengu" kwa moja ya pili na kisha waits kwa ajili ya pili. Na kisha anafanya hivyo tena, na kisha anafanya hivyo tena. Hivyo kama mimi bonyeza bendera ya kijani, Scratch anasema "Hello, ulimwengu. Hello, ulimwengu. Hello, ulimwengu. "Na hii ni wazi mgombea sasa kwa kuboresha. Nini uboreshaji kidogo kidogo, hopefully, tunaweza sasa kufanya ikiwa Scratch inaunga mkono maana? Baadhi ya aina ya kitanzi. Baadhi ya aina ya marudio, sasa, itakuwa nzuri, hivyo basi mimi kweli kujaribu kuwa. Hebu kweli kwenda na hoja hii. Hivyo taarifa unaweza detach vitalu kwa urahisi kama unaweza kuongeza kwa ambatisha yao. Hebu kwenda chini ya Kudhibiti, kitabu chini hapa, na kwa kweli, kuna kipande hii puzzle hapa, Rudia na Forever na Kama Forever. Hivyo kuna idadi ya njia ya kuonyesha constructs looping katika Scratch. moja mimi pengine wanataka hapa ni si Forever sababu mimi tu wanataka hili kutokea mara tatu, lakini pengine Rudia. Hivyo basi mimi Drag Rudia zaidi ya hapa, Drag na tone yake, na sasa badala ya kusema "hello, dunia" mara tatu tofauti, basi mimi Drag hii kipande puzzle katika hapa. Na hata ingawa haionekani fit, mpango huo ni smart kutosha kutambua itakua kujaza, hivyo ni maumbo kwamba suala hilo na si kawaida kabisa. Hebu kubadili marudio kwa tatu, na sasa napenda kwenda mbele na Drag Subiri Moja Pili katika huko pia. Ni kwenda snap katika pia, na hivyo sasa mimi naenda Drag guys hawa zaidi ya hapa na tu kutupa kwa sababu mimi hawana haja nao tena. Hebu zoom nje na bonyeza bendera ya kijani sasa, na tuna mpango huo lakini, kama mimi alitabiri kabla, bora iliyoundwa kwa sababu unaweza kufikiria jinsi mbaya mpango huu bila kupata, hakika aesthetically, kama alikuwa na kuanza kuiga na pasting, kuiga na pasting, au dragging na kuacha mambo yale yale, darn tena na tena. Sasa, mambo ya kusema tu kwenye screen, uchapishaji kwa screen, kwa kweli wote si kwamba kusisimua, hivyo hebu kufungua tatu ugomvi hapa. Na sasa, kama utaona, hii itabidi haraka kupata annoying - [Meow] DAVID Malan: - lakini pia ni aina ya cute. [Meow] DAVID Malan: Sawa, hivyo bora, na sisi tunaweza kutumia sawa mpito ya chunking hii juu katika looping muundo, lakini hebu kufanya hivyo kuvutia zaidi bado. Hebu kwenda mbele na kufungua ugomvi wa nne hapa, ambapo mimi kuchukua mambo hatua moja zaidi. Hivyo kulingana na hii, silly ingawa hii ni mara ya kwanza mtazamo, ni nini mpango huu kwenda kufanya? Ni kwenda meow mara moja. Kwa nini? Naam, ni moja, mbali kama mimi najua, daima chini ya miwili. Hakuna dhana ya randomness hapa. Nina literally ngumu-coded moja na mbili, lakini hii ni mfano sasa ya kweli kwa kutumia usemi Boolean. Kiasi kama kama Yusufu alivyofanya katika pseudocode wake, indentation IF kupata vinavyolingana soksi THEN kufanya yafuatayo, hapa tuna kujieleza KAMA moja ni chini ya miwili BASI - na kwa kweli sisi hata kidogo ya indentation, ambapo zambarau ni kidogo indented kwa haki - BASI utaenda kucheza meow sound. Sasa, katika kesi hii, kuwa mtu ni daima chini ya miwili, hivyo hii ni aina ya taka ya hali hiyo. Lakini tutaweza kuwa na uwezo, kama tutaweza kuona, kuziba mambo mengine ndani ya haya placeholders ambapo moja na mbili sasa ni. Basi hebu sasa mapema ili mfano tano ya hizi kadhaa hellos na kuangalia nini mpango huu kinaendelea kufanya. Hivyo sasa, katika sentensi ya Kiingereza, jinsi gani hii mpango kuishi? Watazamaji: Meows nusu wakati. DAVID Malan: nusu Meow ya muda, hivyo hii ni njia ya kuwasilisha wazo rahisi sana. Hata ingawa sisi kutokea kwa kutumia usawa baadhi hapa katika idadi fulani, hii ni kweli tu programmatical njia, njia sahihi, ya kusema kama sarafu anakuja juu ya vichwa, kwenda mbele na meow. Au kinyume chake, kama sarafu anakuja juu mikia, wala meow. Na katika kesi hii, ni jinsi gani sisi kueleza kwamba? Tutaweza kuchukua idadi random 1-10, na kama kwamba idadi ni chini ya 6, kwenda mbele na meow. Na jinsi gani hii kupata katika hapa? Naam tena, taarifa tu dragging na kuacha na mambo latches katika nafasi. Hivyo sasa hebu angalia kama randomness hii kazi. Hebu kwenda mbele na bonyeza bendera ya kijani. [Meow] DAVID Malan: Okay. [Meow] DAVID Malan: Okay. Okay, nzuri, hivyo sisi got vichwa vichwa, mikia ufanisi. Mikia. [Meow] DAVID Malan: Wakuu. [Meow] DAVID Malan: Mufti. Ni daima Awkward wakati tu kitakwimu kupata mbaya kukimbia, na ni wote vichwa, na mpango wa kweli haina kazi kama wewe d matumaini. Lakini wakati huu, ni kazi, na sisi wanaonekana kuwa, kama tulivyofanya hii idadi ya usio wa nyakati, 50% ya tabia mbaya. Sasa tena, si wote kwamba kuvutia, maamuzi tu paka meow, hivyo hebu angalia kama hatuwezi kuendeleza hii kidogo zaidi hapa katika toleo sita. Hivyo sasa, tuna kweli annoying version - [Meows SEKUNDE KILA FEW] DAVID Malan: - na hii ni nini inayojulikana, kwa ujumla, kama usio kitanzi. Hivyo usio kitanzi katika kesi hii anahisi mbaya. Ni dhahiri kwenda kuanza sounding mbaya, na bado usio matanzi si daima mbaya. Je, unaweza kufikiria mazingira katika mipango ya kompyuta ambapo d kweli unataka kitanzi usio? Yeah? Watazamaji: Wakati unataka kuangalia hali. DAVID Malan: Okay, wakati unataka kuendelea kuangalia hali zao? Kama nini? Watazamaji: [inaudible] DAVID Malan: Okay, nzuri, hivyo kama wewe alikuwa na baadhi ya mpango, baadhi aina ya kitu nyumbani automatisering, ambapo unataka daima kufuatilia ni kesi kitu. Ni taa ya juu? Ni taa ya juu kwa sababu labda una timer, na wewe unataka waende mbali, unaweza haja ya kufanya kitu tena na tena. Na kwa kweli, akizungumza ya timers, yoyote ya ninyi ambao Clocks kwenye kompyuta yako au kuona digital, hiyo ni usio kitanzi. Ni inaendelea update mara kwa sababu ni daima kuangalia na kuangalia na kuangalia ana muda iliyopita, na kama ni hivyo, oh, mungu wangu. saa s hatimaye iliyopita. Inahitaji kuonyesha kwamba thamani na wewe. Hivyo ambapo zaidi ya matanzi wakati usio ni kosa, au angalau uamuzi maskini kubuni, wakati mwingine kufanya kuwa na thamani yao. Naam, hebu mapema zaidi hapa hello7. Hivyo sasa mpango kupata kidogo zaidi maingiliano. Hebu zoom katika hapa, na tena, hii ni nini ni nzuri kuhusu Scratch. Na tutaweza kuitumia kuwa wazi, Scratch, tu leo ​​na ndani ya tatizo wiki ijayo kuweka. Lakini siku ya Jumatatu, sisi kupiga mbizi katika C. Katika programu hii hapa, ni gani, milele, yafuatayo. IF kugusa mouse pointer - sasa, ambaye ni muktadha hapa? Naam, na taarifa kwamba nani kuchaguliwa chini hapa chini kulia ni paka, Sprite moja, hivyo scripts haya, hii mpango, inatumika kwake hasa. Hivyo kama paka kwamba ni kugusa mouse pointer, kisha itakuja kucheza hii chini na kusubiri sekunde mbili, na kisha kurudia ad nauseum. Basi hebu kwenda mbele na hit kucheza. Hakuna kinachotokea, lakini kama nataka pet paka sasa, naweza tu. [Meow] DAVID Malan: adorable. [Meow] DAVID Malan: Okay, chini ya annoying, lakini pia anapata mwanga mdogo, hivyo hebu hoja juu na kuona kama hatuwezi kuingiza zaidi kidogo mantiki. Hiyo ilikuwa mfano saba. Hapa katika mfano nane, tunakwenda kuanzisha hali mwingine. Sana kama uma halisi katika barabara, ambayo unaweza kwenda kushoto au unaweza kwenda kulia, hali katika programu Lugha kama Scratch, au kama tutaweza kuona C, anaweza kukuruhusu kwenda katika mwelekeo mmoja au mwingine kupitia IF mwingine kujenga. Hivyo halisi kabisa, KAMA kugusa mouse pointer, hii kucheza baadhi ya sauti, mwingine ni kwenda kucheza hii nyingine sauti, meow. Sasa, kama unaweza infer kutoka jina wa sauti hizi, unaweza pengine nadhani nini mpango huu s maana ya conjure up wazo la. Paka hii meowing happily. [Meow] DAVID Malan: Furaha, lakini haina kabisa kama kuguswa. [Mngurumo] DAVID Malan: Basi sasa tuna paka ambao yell saa wewe. Haki zote, vizuri, siku moja mfano na paka hapa, na hebu wazi toleo tisa ya hii hapa. Hivyo sasa, tuna ijayo annoying wengi sauti kwamba mimi naweza kupata, hivyo tuna walrus au simba bahari hapa nani kwenda kwa kufanya yafuatayo. [SEAL gome] DAVID Malan: Okay, hivyo hii yataendelea hadi wewe kufikiri jinsi mpango huu unavyofanya kazi. Hivyo wakati huu, mnyama huyu ana scripts mbili, na nini kuvutia hapa ni kwamba hawa scripts ni kwenda kutekeleza sambamba. Basi, kwa sababu wao wote kuanza na bendera moja ya kijani clicked, ni kama kwenda kama hii, na mipango yote ya kuanza mbio mara moja hata kama uko looping milele. Hivyo katika script ya juu, mimi na baadhi ya mantiki. Nini makala gani kwamba kutoa huko juu? [SEAL gome] Watazamaji: [inaudible] DAVID Malan: Kama ni nini? [SEAL gome] Watazamaji: Kama umebakia kimya na sifuri, ni kwenda kuendelea kucheza mgambo. [SEAL gome] DAVID Malan: Okay, nzuri. Hivyo KAMA kimya, chochote hii ni, jambo hili chungwa ni sifuri, BASI kucheza simba bahari ya sauti na kufikiri "Oh, hi, "kwa ajili ya mbili sekunde. Sasa, sijui nini ni umebakia kimya, lakini sifuri conjures up wazo la uongo au mbali. Hivyo kama ni uongo kimya, hivyo kama si kimya, kuendelea kucheza sound. Haki zote, vizuri, jinsi gani sisi Disable jambo hili? Naam, hebu tuangalie script pili chini huko. script pili anasema kuweka umebakia kimya kwa sifuri. Angalia pia ni machungwa, ili kile Scratch haina ni rangi vitalu katika kivuli huo ikiwa ni aina ya kimantiki kuhusiana. Hivyo tu kama umebakia kimya juu juu mara ya machungwa, hivyo ni umebakia kimya chini hapa zilizotajwa katika block machungwa. Lakini hii ni kazi variable, hivyo kama ilivyo katika algebra, una x na y na z, katika programu una vigezo, lakini wao ni ujumla - pause wacha kwa muda na takwimu jinsi kuacha hii barking. Je, mimi kufanya hili? [SEAL gome] DAVID Malan: Okay. Ni kusimamishwa. Sawa. Hivyo tu kama katika algebra una vigezo x, y, na z, lakini katika programu, baada ya vigezo kama x, y, na z ujumla ni kipaji juu kwa sababu wao siyo wakati wote expressive. Hawana maana semantic wowote, hivyo katika zaidi programu lugha, unaweza kuwa na vigezo kamili fledged majina au maneno au misemo, kama kimya, kusema wayatendayo. Hivyo hii script pili pia alikuwa akisikiliza milele, na alisema ikiwa muhimu, muhimu keyboard Space, ni taabu, swali alama. Hivyo kuna hali na kujieleza Boolean kwamba kwenda kujibu swali ama ukweli au uongo, basi nina ndani yake IF ufunguo nafasi ni taabu na IF umebakia kimya ni sifuri, kuweka umebakia kimya kwa moja, mwingine kuweka umebakia kimya kwa sifuri. Hivyo hii uma nyingine katika barabara, na taarifa jinsi nimekuwa Furushi mbili KAMA hali, ni njia ya kuangalia ni Nafasi Bar taabu kwa sababu kama ni hivyo, mimi ama unataka kwenda huu njia au namna hiyo. Na jinsi gani mimi Geuza thamani ya kimya? Mimi na kuangalia ni sifuri? Kama ni hivyo, kufanya hivyo ni moja, mwingine kufanya ni sifuri kwa hiyo kugeuza wake na mataifa mawili. Haki wote, hivyo basi tuna baadhi ya hizi muhimu constructs. Tuna maneno Boolean, na kutambua, pia, hizi ni si yote unfamiliar. Kwa kweli, hapa screenshot ya haraka ya Harvard kozi ya CS50 ununuzi chombo, na tovuti yoyote huko nje kwamba ina checkboxes na kushuka Downs kuwa kweli, muda wote huu, wamekuwa wakitumia Boolean misemo. Katika kesi hii hapa, kama bonyeza checkbox ijayo Bila shaka zaidi au sawa na 4.5, au ujao sawa kwa Kitivo, wewe ni inayobainisha kujieleza Boolean. Nionyesheni kozi ambayo kujieleza kwamba ni kweli. Au kwa haki, hana mgogoro na kozi mimi nina kuchukua, kama kwamba ni checked, basi ndiyo, unataka kuangalia hali ya kuwa, mwingine unataka kupuuza. Hivyo Boolean misemo ni aina ya pande zote, lakini wakati sisi kuziweka katika hali, iwe KAMA hali, KAMA Elses, au tunaweza hata simulate undani ngazi, KAMA mwingine KAMA mwingine - hivyo kwamba ni aina ya hali ternary. Unaweza kwenda kwa njia hii au kwa njia hii au kwa njia hii. Tunaweza kuweka mambo nesting kwenda katika mwelekeo tofauti. Hivyo Scratch ina loops haya, kama Forever. Ina makala haya kama Rudia 10, baadhi ya finite idadi ya nyakati. Tuna uwezo sasa kuweka vigezo, hivyo katika kesi hii Nimekuwa alitangaza, kwa mfano, variable soksi inayoitwa. Nimekuwa initialized 0, na kwamba bado mwingine mwelekeo tunaweza wamechukua hapa pamoja na Yusufu, ambapo labda mimi tu kuweka wimbo wa jinsi wengi soksi nina juu na kuondoa mpango wakati thamani kwamba variable ni 2. Hiyo itakuwa ni njia nyingine ya aina ya generalizing kwamba tatizo na kufanya kitu tena na tena. Naam, hebu kwenda mbele na sasa kuanzisha wanandoa mambo mapya. Hivyo wale wa wewe kwa uzoefu kabla Programing mapenzi kujua kwamba mengi ya lugha na arrays, vectors au au orodha, na kwa kweli, Scratch ana kitu kama hii, pia. Basi hebu angalia kama sisi hatuwezi kuchukua mambo ya ngazi ya pili hapa. Kama mimi na uwezo, sasa, pamoja na vipande haya puzzle kuongeza kitu, kama neno au idadi, kwa variable, siwezi kuanza kukusanya vitu. Na hii ni kweli pretty apropos kwa mambo kama michezo, jukumu-kucheza michezo ambapo wewe ni aina ya kutembea karibu baadhi dunia fantasy kukusanya vitu, kuokota mambo up, kupata pointi, au kama. Unaweza kutaka kuweka wimbo wa aina fulani ya hesabu, na kweli, kwamba ni nini mmoja wa wanafunzi wetu wa zamani hapa alivyofanya kwa kitu kinachoitwa Fruitcraft RPG. Hivyo basi mimi kwenda mbele na kufungua hii kitu hapa, na katika Fruitcraft, tuna dunia hii juu kwa juu. Hivyo basi mimi kwenda mbele na bonyeza bendera ya kijani. Ilani ya juu kushoto ni baadhi ya aina ya hesabu. Hiyo kutekelezwa katika Scratch kama kile Tutamwita safu au orodha, na sasa tuna hii uhuishaji kidogo. Hivyo tu kama sisi kuanza mapema na hadithi hii upendo cookie, na kisha sisi imepanda kwa paka na simba bahari, sasa tunaweza kuwa na mambo ambayo ni zaidi hata ya maingiliano. Na hii kidogo guy bluu, siwezi kuanza kuzunguka yake kidogo nyumbani hapa. Hivyo inaonekana kama yeye got exit chini hapa, hivyo mimi nina kutumia funguo mishale, juu, chini, kushoto kulia. Na sasa mimi nina nje, hivyo basi ni nini mimi nimepata hapa. Inaonekana kama machungwa, na kwa kweli, kwa haraka kama mimi kugusa machungwa, anapata plopped katika hesabu yangu. Kama mimi kwenda juu hapa cherries, sasa nina kitu mwingine katika hesabu yangu. Na hii yote ni nzuri na cute, lakini fikiria kuhusu jinsi gani, sasa, hii ni kutekelezwa. Naam, tuna wazo hili la orodha, na kwamba inaonekana puzzle kipande kwamba wewe tu kusema nini unataka kuongeza kwa hiyo, kuongeza machungwa, kuongeza cherries. Sasa, ni nini hiki kidogo guy bluu kufanya? Naam, yeye ni sprite. Na pengine, machungwa na cherries - wao wenyewe walikuwa tofauti sprites. Na kutumia hali katika misemo Boolean, mwanafunzi alikuwa pengine na uwezo wa kueleza KAMA bluu guy ni kugusa cherries THEN kuongeza cherries neno lake hesabu, na kisha pia kujificha sprite cherry. Hivyo chini ya Hood, kuna pengine bado ni cherry sprite huko. Tumekuwa tu aliiambia ni kuwa ufanisi asiyeonekana. Sasa, kama mimi kuendelea kutembea zaidi ya hapa, tunaweza pia kufanya hivyo kupakana kitu, ambapo naweza kwenda na kusoma ishara. Hivyo kama guy bluu kugusa ishara, tunaweza kuwa na hii block Sema tu kama paka akisema nasi katika maneno, hello, awali, "Got baadhi ya matunda? Kuleta kwa mahali matunda ". Sawa, hivyo sasa, inaonekana, Nina maelekezo yangu. Siwezi kwenda juu hapa mahali matunda, line up mwenyewe na mlango. Sasa, mimi nina katika hapa. Naweza kwenda hadi mtu counter. Yeye hutambua kwamba mimi nina karibu naye, hivyo hana kuwa kabisa identically kugusa, na mimi kuwa alishinda mchezo. Hivyo kuna tuna Fruitcraft RPG. Hivyo tunaweza kufanya mambo hata zaidi ya juu kuliko huu. Tunaweza kuongeza sauti. Tunaweza kuongeza randomness Pseudo. Tunaweza kuongeza utata. Hebu kwenda mbele hapa, na badala ya kufanya hivyo mwenyewe, napenda kuonyesha moja ya maoni ya kisasa zaidi tulipata mwaka jana kutoka kwa mtu mmoja aitwaye Blake. Je, tunaweza kuwa na moja ya kujitolea ambao ni starehe ya kuonekana kwenye kamera na ni kwa ajili ya kucheza mchezo? Vipi kuhusu haki pale? Kuja juu juu. Haki ya wote, hivyo mchezo kwamba una tu kutojua walijitolea kucheza - [Applause] DAVID Malan: - ni kitu kutoka yesteryear kuitwa "Frogger." Jina lako ni gani? Renda: Renda. DAVID Malan: Redna? Renda: Ni kama Brenda na b. DAVID Malan: Okay, Renda. Daudi. Nice kukutana na wewe. Hivyo hapa katika "Frogger," na kama tunaweza kuongeza kiasi tu kidogo kidogo, wewe ni hii kidogo kijani chura juu ya chini. Unaweza kutumia wa kushoto, kulia, juu na chini, na lengo ni kuvuka barabara, kuvuka mto, na kugusa pedi lily saa ya juu. Aw. Moja zaidi t - Redo, wote haki? Hebu hit stop. Hakuna mtu alipoona kuwa. [Applause] [Applause] DAVID Malan: Yeah. Vizuri sana kufanyika. Bora, asante. Hivyo kwamba kulikuwa Frogger. Sasa kwa kuwa unajua nini wameweza wamezipata wenyewe ndani, kujitolea moja zaidi kwa tofauti mchezo in na mwanafunzi mwingine. Wewe unataka kuja juu juu? Nini jina lako? RICHARD: Richard. DAVID Malan: Richard. Haki zote, Richard, kuja juu juu. [Applause] DAVID Malan: Una kitu ambacho itabidi sauti familiar hivi karibuni, hivyo hapa ni maelekezo yako. Hivyo katika dakika moja, vipande puzzle baadhi ni kwenda kitabu juu kutoka screen kwamba kuangalia aidha kushoto au haki juu au chini. Wewe utaenda kuwa na hit funguo arrow kwa namna kwamba sambamba na vipande wale wanaojitokeza na puzzle placeholders kwa juu. Hivyo wakati wewe kuona mshale wa kushoto, na mistari yake juu na kushoto mshale, hit arrow kushoto. Unaweza kuanza. [MUSIC - "IMARA" KAYNE WEST] DAVID Malan: zote haki, big pande zote ya applause kwa Richard. [Applause] DAVID Malan: Very well done. Asante. [Applause] DAVID Malan: Basi na furaha na, inaonekana, ni aina ya vitisho kama inaweza kuwa kutekeleza kitu kama inaonekana kisasa kama hii, kutambua kwamba mwanafunzi hawakuwa yaliyowekwa na kuandika tu hii yote kwa mara moja. Badala yake, unaweza kuvunja tatizo kama inaonekana tata kama hii katika vipande ndogo sana, na hii, pia, ni kwenda kuwa mandhari. Kitu mbaya unaweza kufanya katika kuandika mpango katika yoyote zaidi Lugha ni kukaa chini, kupata kweli msisimko, kuandika zima kitu damn, na kisha tu matumaini kwamba kazi kwa wakati wewe ni kumaliza kuandika. Badala yake, mchakato wa programu lazima ujumla sana makusudi, sana iterative, ambapo wewe tu kuweka hatua ndogo sana kwa ajili yenu wenyewe, vipande bite-kawaida unataka bite mbali, na hivyo kuwa una hizi sanity hundi, kidogo milstenarna unaweza kukutana. Na kisha kujenga juu ya wale kujenga zaidi kisasa mambo bado. Hivyo kwa mfano, ni jinsi gani sisi kwenda kuhusu kutekeleza mchezo kama hii? Naam, kusema ukweli, mimi bila ya shaka tu kuanza kwa vumilianeni muhimu kwa wakati. Hebu tu kutekeleza msaada kwa ajili ya mshale wa kushoto. Hivyo mwanafunzi alikuwa na namna fulani kujenga katika Photoshop, au katika Scratch yenyewe kutumia kidogo graphical mhariri, arrow muhimu kwamba inaonekana kama moja ya juu kushoto hapo, tu placeholder kijivu. Kisha mwanafunzi alikuwa na kufikiri nini x, y kwa kuratibu kuweka hayo, ambapo ili kuweka katika dirisha. 0, 0 ni hapa juu, hivyo kuwa na takwimu nje ya idadi ya Ukubwa, au dots, ili kukabiliana na kwamba mshale kutoka juu ya screen. Na kisha mara moja kwamba katika mahali, mpango yako haina kweli kufanya chochote bado, hivyo basi haja sprite pili, kwa mfano arrow kijani hiyo pia akizungumzia kushoto, na wewe basi haja ya kuanza kuandika scripts baadhi kwa ajili yake. Na utaona, pengine, kwamba mambo haya alianza kuja saa mbalimbali kasi, na rangi walikuwa katika tofauti maeneo, na kwamba kwa sababu mwanafunzi kutumika kidogo ya Pseudo randomness. Na kwa randomness Pseudo, mimi tu maana pick idadi kati ya kitu na kitu kwa sababu unaweza kuanza mambo ramani, kama kama namba ni kati ya mmoja na tano, vizuri, wacha kufanya kitu kijani. Kama ni kati ya 6 na 10, wacha kufanya kipande puzzle nyekundu badala yake. Hiyo kwa muda mrefu kama una njia ya kuzalisha aina fulani ya randomness, unaweza kisha kufanya maamuzi kwa kuzingatia kwamba randomness. Na mimi kushika Pseudo akisema random kwa sababu kuna kidogo chafu siri. Kompyuta hawezi kuja na idadi random. Wanaweza tu kufanya nini re aliiambia kwa sababu wao uko na mwanadamu vifaa. Hawawezi tu nadhani idadi kama binadamu sisi kujisikia kama tunaweza. kompyuta ina kufanya kitu hisabati kwa conjure up udanganyifu wa idadi ya hisabati, wakati mwingine kwa kutumia sasa siku ya wakati kama pembejeo kwa kuhesabia nje nini idadi ya kurudi, lakini zaidi juu ya kwamba wakati mwingine. Kwa sasa, tu kujua kwamba tunaweza kuzalisha randomness Pseudo. Hivyo mara tu nina uwezo kwa mshale wa kushoto ili kuanza kuonekana kwa nyakati tofauti na kwa kasi tofauti, basi Siwezi kwenda nyuma na kuongeza baadhi ya hizi KAMA masharti. IF sprite hii ni kugusa moja nyingine, na kushoto arrow ufunguo imekuwa taabu - hivyo tatu hali katika kesi hiyo. Naweza kutumia NA kuzuia pengine, katika kesi hiyo - BASI nataka kwenda mbele na increment score. Na saa ya juu, tuna score, tuna ajabu, Cool, mwema, na Boo. Hivyo kuna inaonekana tano vigezo kuwa mwanafunzi huyu kutumika kwa kuweka wimbo wa metrics hizi mbalimbali. Hivyo katika muda mfupi, matokeo ya mwisho ni ya kushangaza. Ni furaha, ni furaha kwa kucheza, ni kujishughulisha, lakini hii si ambapo mwanafunzi alianza. Yeye au yeye kuanza saa seti ndogo sana ya hatua. Kwa hiyo kile ni baadhi nyingine matofali ya ujenzi kwamba tunaweza weave katika programu hizi? Naam, kuna dhana hii katika lugha nyingine nyingi, Scratch kati yao, unaojulikana kama threads. Hivyo kompyuta inaweza kweli si kweli kufanya mambo mengi kwa wakati, angalau si kawaida. Badala yake, kompyuta ujumla ina moja tu CPU, na hata ingawa kompyuta ni super haraka na unaweza, kwa hiyo, kujenga udanganyifu wa kufanya mambo nyingi kwa mara moja - kuangalia pepe yako, kupata papo ujumbe, uchapishaji hati - kweli, kompyuta tu kuruka kutoka uchapishaji kwa IMing kwa emailing, nyuma na nyuma na nyuma na nje kwa kasi kwamba sisi polepole binadamu witted tu wala kutambua kwamba ni kweli mbio hizo mipango kidogo kwa wakati. Sasa, hii kidogo ya nyeupe uongo siku hizi kwa sababu, siku hizi, wengi kompyuta yetu ni kile kinachojulikana mbalimbali ya msingi, hivyo kuwa moja CPU lakini cores nyingi, ambayo ni aina ya kama kuwa CPUs nyingi. Na hivyo wakati mwingine, kompyuta inaweza kweli kufanya mambo mbalimbali wakati huo, lakini kwa ujumla ndani ya mpango, mipango kutegemea juu ya mambo haya kuitwa threads. Hivyo thread ni aina ya kama mpango miniatyr kwamba unaweza zipo sambamba mpango mwingine miniatyr na wanaweza kukimbia sambamba, au angalau wanaweza kukimbia chini ya udanganyifu kwamba wanakimbia wakati huo huo. Hivyo Scratch inasaidia mambo haya kuitwa threads. Unaweza kuwa na scripts nyingi utekelezaji mara moja, tu kama sisi alivyofanya kwa simba bahari, na hii inaruhusu sisi kweli kisha kuwa mwingiliano kati ya sprites haya. Hebu kwenda mbele hapa na kuvuta juu, hebu sema, nyuzi, na kucheza hii kama ifuatavyo. Tuna sprites wawili, kila mmoja ambaye tutaweza kuona ina moja tu script. Na utaona kuna inaonekana kuwa baadhi ya akili katika paka katika hii moja kwa sababu yeye ni kupata karibu - [Mngurumo] DAVID Malan: - na karibu na ndege mdogo. Hivyo jinsi ni uendeshaji ndege? Naam, hebu kuchukua kuangalia ndege wa kwanza. script ndege alisema wakati bendera ya kijani ni clicked, kwenda x sawa na hasi 115 na 150 y sawa. Hivyo mimi tu figured nje mahali ambapo random nilitaka ndege kuanza, na mimi tu plopped naye huko na default. Kisha Forever KAMA si kugusa paka, hivyo hii ni tofauti aina ya kujenga looping, lakini wazo moja, kufanya hivyo tena na tena na tena. Hiyo kwa muda mrefu kama wewe si kugusa paka, hoja hatua tatu, na kama wewe ni juu bounce makali, ambapo ni aina ya reflection katika maana ya billiard. Basi hiyo ni jinsi ndege ni kuhamia karibu aina ya inaonekana nasibu, lakini ni kwa sababu tu ni bouncing off kuta katika kesi hii. Sasa paka, wakati huo huo, ni aina ya cheating. paka, wakati bendera ya kijani ni clicked, ndiyo, inaanzia baadhi ya mahali, mahali random - angalau katika sehemu kama kwa pick random kijani block pale - na kisha Forever KAMA kugusa ndege, kucheza sauti simba, na kisha kuacha script. Hivyo wakati mimi alisema kuondoa, au exit kabla, kuna puzzle kipande katika Scratch kwamba kuua tu mpango saa kwamba uhakika kwa sababu ni aina ya mantiki kufanyika. Lakini vinginevyo, hapa, taarifa ya nini kinaendelea kutokea. Uhakika kuelekea ndege na hoja hatua moja. Hivyo hatua hii kuelekea ndege ni aina ya paka faida ana katika kwamba ni juu ya ndege katika homing kusonga, na tunaweza sasa kufanya mpango huu wote zaidi ya kuvutia. Badala ya kusonga hatua moja kwa wakati kwa mzunguko CPU, kwa mgomo toll ya kengele, ili kuzungumza, na napenda kwenda mbele hoja, hebu sema, hatua tano kwa wakati kama paka. Bonyeza kukimbia, na sasa yeye kweli alimkuta huyo haraka. Kama sisi mara mbili zaidi jambo hili kwa hatua 10, ni aina ya inakwenda haki kwa ajili yake. Sasa, tunaweza kutoa ndege, labda, kidogo ya faida. Hebu kwenda ndege na kusema badala ya kusonga hatua tatu, hebu hoja yake hatua 30. Lakini bado got hawakupata katika mwisho. Hivyo hapa, tuna threads mbili. Ni wakishikiliwa katika Scratch na scripts mbili na mbili sprites, lakini wazo katika lugha nyingine ni kwamba unaweza kuandika, kimsingi, programu nyingi sana kama hii na kuwa na yao kukimbia kweli, au imaginarily, sambamba. Sasa, kuna pia dhana hii katika programu inayojulikana kama matukio, na hii ni kitu hatutaweza kuona katika C, Lugha inayojulikana kama C. Sisi kuona kuelekea mwisho wa muhula katika programu ya mtandao, wakati sisi kuanzisha JavaScript na dhana ya kurasa za mtandao jengo ni nguvu na kuingiliana na watumiaji. Hivyo katika kesi hii, tuna mfano rahisi sana wa wawili sprites, mvulana na msichana, kila mmoja ambaye una husika yao nyuzi, lakini kwa namna fulani hizi mbili ni inter-wa mawasiliano kwa njia ya ya kitu kinachoitwa matukio. Hivyo basi mimi kwenda mbele hapa na kuvuta script kijana, ambayo inaonekana kama hii. Wakati bendera ya kijani clicked, milele kufanya yafuatayo. Kama Space muhimu, au Bar Space, ni taabu, wanasema Marco kwa sekunde mbili, kwamba ni rena estetiska juu ya screen, kidogo Bubble hotuba, lakini kisha matangazo. Hivyo matangazo ni mwingine kipande Scratch kwamba mwakilishi wa darasa ya utendaji katika programu ambayo inaruhusu programu mbalimbali, tofauti nyuzi, kwa inter-kuwasiliana, kwa namna fulani kutuma ujumbe, mmoja hadi mwingine. Kupita kipande cha karatasi katika darasa ni aina ya tech chini sawa. Hivyo matangazo ya tukio hilo. Siwezi kutuma ujumbe huu, na tukio neno ni kabisa holela. Scratch wakati mwingine ina heka hizi kushuka, hivyo mimi tu alikuja na neno random kama tukio kwa sababu sasa, nini kijana anafanya wakati mimi vyombo vya habari muhimu ni yeye matangazo ya tukio hili. Na kama mimi kuangalia sasa katika script msichana, script yake ni super rahisi kwa sababu wote anahitaji kufanya si kitendo wakati bendera ya kijani ni clicked. Yeye ni iliyoundwa na hatua wakati anapata quote, unquote, "Tukio", na katika hatua hiyo, yeye anasikiliza hiyo kwa tukio kinachojulikana tena na tena. Haraka kama yeye inapata kuwa tukio, yeye atakuja kelele Polo kwa sekunde mbili. Na hivyo unaweza labda infer kutoka hii hasa ni nini matokeo ya pili ni kwenda kuwa. Hebu bonyeza bendera ya kijani. Hakuna kinachotokea kwa sababu mimi haja ya kufanya nini? Watazamaji: Nafasi Bar. DAVID Malan: Nafasi Bar. Kijana anasema Marco, msichana anasema Polo. Lakini si kwamba vigumu coded per se. Hiyo ni inter-mawasiliano kati ya scripts, hivyo sasa sisi wana uwezo wa kufanya mipango magumu hata zaidi ambapo hizi mbili ni namna fulani baina ya kuwasiliana. Hivyo katika kile maelekezo tunaweza kuchukua hii? Naam, katika kuweka tatizo 0, kwa kweli, lengo ni kuwa na furaha na Scratch. Kwa toleo hacker, itabidi badala yake kuwa na furaha na zaidi kisasa toleo la Scratch kuitwa BYOB, Kujenga Blocks Your Own, lakini wazo ni sawa. Wewe utakuwa na uwezo - Ndiyo, hiyo ilikuwa makusudi. Ni alifika kutoka Berkeley. BYOB ni toleo hacker toleo hili, lakini wote wawili idadi ya watu, kiwango toleo na toleo hacker sawa, Lengo katika mkono kwa wiki ijayo ni kweli tu kwa kupiga mbizi katika kina, kupata mikono yako chafu na programu, na kufanya kitu kuvutia, kufanya kitu maingiliano, kufanya kitu kisanii, kufanya kitu fun kwa kweli kuonyesha, hivyo kuwa na mwisho wa wiki, itabidi mradi, si tu kwa pset yako ya kwanza CS50, lakini itabidi kidogo kitu ambacho unaweza kuonyesha mbali katika Annenberg kwa marafiki au hata familia yake na kuweka kwa tovuti MIT. Na hivyo kama mimi alisema Jumatano, tunatarajia 90% ya darasa, ujumla, kufanya matoleo ya kiwango. Kutambua kwamba pia kuna hii plagi kwa wale ambao ili vinginevyo kupata mwenyewe kidogo kuchoka na misingi na kweli wanataka kupiga mbizi katika hila na maono tayari kuwa na background kabla katika hii zaidi ya kirafiki mazingira. Hivyo basi mimi kuvuta up moja nyingine mfano kwamba mmoja wa zamani zetu wanafunzi hapa alifanya na kuwaambia kitu kidogo kupitia wimbo. Hiyo vile vile, kama ina hili, kufikiri kuhusu jinsi ya kwenda juu kutekeleza mpango huu kwa kutumia just hizi jengo vitalu, kidogo kidogo ya randomness Pseudo, na kidogo ya nyimbo zilizozoeleka. Kama tunaweza kuongeza kiasi kidogo tu? [MUSIC - "Ni mvua WATU" WASICHANA Hali ya hewa] DAVID Malan: Hiyo ni kwa CS50. Sisi kuona juu ya Jumatatu. [Applause]