[Powered by Google Translate] [MUSIC ROCK] [MUSIC - "HAPPY TOGETHER" breshka] DAVID Malan: Sot, ne fillojmë eksplorimin tonë e Bazat e shkencave kompjuterike dhe futjen tonë, tani, tek artin e programimit, i cili se është vetëm një shembull. Por në të njëjtën mënyrë e zgjidhjes së problemeve, e di se Dita tradicionale e CS50 Puzzle është nesër. Nëse ju nuk keni RSVPed ende për këtë ngjarje, ju mund të shkoni në cs50.net/rsvp. Ju mund të sjellë ekipet e dy ose tre ose katër. Ju do të sfidohet me probleme si një që ju pashë deri atje në fillim. Të gjitha problemet e reja të këtij viti në qoftë se ju mori pjesë vitin e kaluar, dhe ju do të ketë një shans për të fituar pastaj disa çmime të pabesueshëm. Midis tyre, një Wii dhe disa certifikata dhuratë dhe si, të gjithë, ndërsa varur me CS50 studentët dhe shokët e klasës dhe pica dhe Facebook. Aq më shumë në atë nesër, nëse ju do të donte. Kjo pastaj është CS50, për ato prej jush bashkohen me ne për herë të parë. Dhe e di se ky kurs është e vendosur posaçërisht për të marrë ju nëpër këtë kurs deri në fund të saj përfundimtar, në të cilën pikë ju do të kemi jo vetëm një kuptim të këtyre Bazat e shkencave kompjuterike, por ju do të keni ky grup shumë praktik aftësi që ju mund pastaj të marrë përsëri në Departamenti tuaj, nëse kjo është shkenca inxhinierike, matematikë e aplikuar, shkencat fizike, natyrore shkenca, ose të ngjashme. Në të vërtetë, ajo është aq emocionuese për shkenca kompjuterike këto ditë është se ajo është vetëm aq i zbatueshëm për të gjitha llojet e fushave. Dhe, edhe pse sot, ne vetëm do të zeroja sipërfaqe e një gjuhë shumë tradicionale programimi i njohur si C, ne do në vend të shikoni në diçka të quajtur Scratch, diçka me të i cili se dashuria cookie histori u realizua nga një prej tuaj Paraardhësit në vitet e fundit, për të treguar histori, për të krijuar lojëra, për të krijuar art interaktive, dhe në fakt të fillojë të përfundojë tonë Mendjet rreth disa nga konstruktet themelore që rri programimit por në një kontekst, si ju do të shihni, kjo është shumë më pak e frikshme, që është shumë më pak misterioze, se ju do të shihni para se të gjatë. Dhe të kuptojë, gjithashtu, për ato prej jush vetëm duke u bashkuar ne kete semestër, frazat në të cilën ne përfundoi ligjëratën e së mërkurës, kjo nuk është aq e rëndësishme, ku deri në fund në lidhje me tuaj shokët e klasës në këtë klasë, por ku ju, deri në fund të semestrit të në javën e 11, deri në fund në lidhje me veten tuaj të drejtë në këtë ditë shumë. Kështu, pa zhurmë më tej, kjo është gjithashtu me vlerë të përmendet se ata më pak të rehatshme, ata diku në mes, janë gjithashtu, me dashje të këtij kursi, jo në çdo disavantazh vis-a-vis atyre më të rehatshme vijnë në këtë klasë. Si ju do të shihni gjatë javëve që do të vijnë, ne kemi ndryshme Gjurmët për sfond prapa ndryshëm, seksione për ata më pak të rehatshme, më të rehatshme, ata diku në mes. Si ju do të shihni këtë fundjavë dhe javën e ardhshme, dy versionet e vendos shumica problem në dy edicionin standard dhe kështu hacker që të gjithë ju mund të zgjidhni vetë-poshtë rrugën me të cilën ju janë më të rehatshme. Pra sot, ne pikiatë në këtë programimi gjuha quajtur Scratch. Kjo është një gjuhë programimi grafike, dhe ende ka karakteristika të njëjta e disa nga gjuhët e nivelit të lartë, ne do të shqyrtuar më vonë në semestër, në mesin e tyre dhe C JavaScript dhe PHP. Por kjo do të na lejojë për të shmangur disa nga distractions në fillim të sintaksës, gjëra të tilla si pikpresje, kllapa, dhe detaje të tjera misterioze që, në shikim të parë, janë jo vetëm në të gjitha intelektualisht interesante dhe kanë tendencë për të marrë në rruga nga disa të kuptuarit themelor. Në aspektin e strukturës tani mbështetjen përpara, realizuar këtë mjet, CS50 diskutojnë, e cila do të jetë e lidhur me kurs të website vonë sot, është forumi internet diskutimi në të cilën ju do të jetë në gjendje të bëjnë pyetje njëri-tjetrin dhe të stafit, dhe kjo është gjithashtu një mjet, si ne do të shohim javën e ardhshme, se ne do të përdorim mjaft integratedly në orarit të punës si. Në të vërtetë, disa orë zyre të fillojë të hënën, dhe sinqerisht, i pari Javën e orarit të punës është çelësi mjaft i ulët. Unë nuk mendoj se ju do të gjeni gjithçka që Scratch paarritshëm. Kjo është mjaft e vetë-shpjegues, siç do të shohim, dhe kështu çfarë ne do të përdorin atë për sot është për nxjerrjen e disa nga idetë themelore që do, atëherë, vazhdojnë gjatë gjithë Pjesa tjetër e semestrit. Por duke filluar nga e hëna, në 20:00 me 23:00 do të jetë orarit të punës në Annenberg mbi pushimit të trurit. Sectioning dy do të fillojnë këtë mbrëmje, kështu që diku kjo fundjavë, shkoni në cs50.net/section, dhe ju do të të kërkohet një numër pyetjesh. Midis tyre, si do ta përshkruanit tuaj Niveli rehati si sot? Nuk ka vështirë, rregull të shpejtë se kush është, në të cilën kovë. Është vetëm lloj i gjë që ju ndoshta e dini, nëse ju janë në mesin e atyre më pak të rehatshme apo ndryshe. Dhe tani, walkthroughs. Problemi vendosur Specifikim për këtë javë, dy standarde dhe edicionin hacker njësoj, është në linjë me cs50.net si tani. Dhe ju do të shihni se e parë e këtyre edicioneve, Edicioni standarde çdo javë, është shoqëruar me diçka që thërrasë një walkthrough kod, një seancë të udhëhequr nga një Sigurisht miqtë e mësimdhënies për t'ju udhëheq përmes, të sigurojë këshilla, dhe të marrin ju poshtë një rrugë të veçantë kur është fjala për të filluar këto grupe problemesh. Pra, me secilin prej këtyre problemit përcakton, nëse ju jeni ndonjëherë të dashur për veten tuaj ku mund të fillojë, ju filloni me këto walkthroughs. Dhe në fakt, më lejoni të prezantoj Zamyla Chan, këtë shokët viti mësimor i cili do të drejtojë çdo një nga këto walkthroughs. Zamyla? [Duartrokitje] ZAMYLA Chan: Oh, hi, të gjithë. Emri im është Zamyla. Unë jam një inxhinieri vogël studiuar në Winthrop House. Por unë të përpiqet dhe të përshtatet në sa më shumë kurse shkenca kompjuterike si unë mund, e cila është arsyeja pse unë jam i gëzuar me të vërtetë për të çuar këtë walkthroughs viti. Walkthroughs, për mua, ishin një pjesë thelbësore e CS50 tim përvojë. Gjatë walkthrough, për çdo p set-, ne do të kalojnë nëpër Problemi vendosur së bashku, duket se problemet, lloji i ndarjen e tyre deri në kafshon menaxhueshme. Unë do të ju jap këshilla, teknikat, për marrjen përmes dhe duke u nisur. Unë shpresoj që të shoh se jeni të gjithë në walkthroughs. Nëse ju nuk mund të bëni atë në person, atëherë ju lutem bëni një mendje në internet. DAVID Malan: Excellent. Faleminderit, Zamyla. Pra, të kuptojnë se walkthroughs janë, në të vërtetë, në një e premte pasdite, por kjo është qëllimisht me dashje në mënyrë që edhe në qoftë se ju do të në vend nuk marrin pjesë në klasë në një e premte pasdite, videos do të jenë të gjithë më shpejt mbi fundjavë. Pra, të kuptojnë se cs50.net do të jenë të gjithë të Zamyla walkthroughs. Dhe se nuk është data e sotme dhe koha, 03:00, Harberd Hall, 104. Dhe disa nga miqtë e mësimdhënies kanë përgatitur edhe disa vërejtje për ju në mungesë të ju jap një grimë Perspektiva për atë që përvoja e tyre të ardhshëm në dhe duke shkuar nga CS50 ishte si. Pra, nëse ne mund të zbehtë dritat për vetëm një moment, unë jap disa prej stafit CS50 së. JACKSON STEINKAMP: mora CS50 vitin e kaluar si një studente në bien, dhe kjo absolutisht shpërtheu mendjen time. Unë kurrë nuk kishte marrë ndonjë klasa programimit para, dhe kurrë nuk erdhi me çdo shkenca kompjuterike përjetojnë në të gjitha. Dhe vetëm, kam dëgjuar lëvizje në lidhje me klasën dhe vendosur për të marrë atë. Julia MITELMAN: Ajo ishte me të vërtetë zbavitëse, të vërtetë të angazhohen. Unë ende, sot e kësaj dite - Unë vetëm kohët e fundit kam pa disketë që Davidi na dhanë në ditën tonë të parë të leksionit. I kishte varur atë në mur tim. Kjo është ndoshta pak nerdy, por unë varur në të mia Muri gjatë klasës si një kujtesë se si ajo ishte e ftohtë. TRAVIS Downs: Është kaq e turpshme. JACKSON STEINKAMP: Kompjuteri shkenca është diçka që ju duhet të përpiqet edhe në qoftë se ju nuk jeni një për shkencat tradicionale. Kjo është përvoja e vet, dhe CS50 do të bëjë që ju jeni mbështetur edhe nëpër atë me ushtrinë e tij i vërtetë i TFS. ALI NAHM: Unë e mori atë si një fillestar, dhe kështu kam bërë shumë e miq të rinj. Unë gjithashtu u njohën me këtë përqendrim të gjithë dhe Shkolla tërë inxhinieri, dhe kështu që unë rekomandoj atë dhe ju mirëpresim në familjen tonë CS50. Yaniv YACOBY: CS50 vetëm ju mëson se si të përdorin mjete që janë gjerësisht të arritshme. Ju duhet vetëm një kompjuter portativ, ju keni nevojë për një shfletues web, dhe ju duhet të mësojnë të shkruajnë disa kodin, dhe ju mund të vërtetë të ndërtuar gjëra i zoti. Karen Xiao: Është vetëm kaq ftohtë të jetë në gjendje për të bërë diçka dhe kanë njerëzit e përdorin atë dhe të ketë njerëzit e shohin atë, dhe kjo është ajo që unë me të vërtetë duan lidhje me të. TIM MCLAUGHLIN: - një ndjenjë të komunitetit, unë mendoj se, në këtë Kursi më shumë se çdo tjetër, sigurisht që unë kam marrë deri më tani. Ju nuk jeni vetëm duke marrë një tjetër - ju nuk jeni tjetër të plotësojë kërkesën. Ju nuk jeni vetëm do të ligjëratave dhe do të seksionit. Por ju jeni duke bërë ton e gjëra që janë të gjitha në lidhje me Programimi dhe të gjitha në lidhje me teknologjinë, por kjo nuk me të vërtetë të ndjehen si një klasë më të madhe të kohës. Downs Travis: Dhe në ditën e parë, ata shpërndahen tortë, dhe të Unë kam qenë i shitur në çast. Jacob PRITT: karamele falas dhe pica. ZAMYLA Chan: - pavarësisht nga niveli i interesit tuaj, unë mendoj se CS50, ju do të keni fun dhe ju do të jetë intelektualisht stimuluar. MARK GROZEN-Smith: Është gjithmonë një palë në klasë, dhe kjo është një partia çdo natë duke punuar në grup p-tuaj. JACKSON STEINKAMP: Çdo herë që të përfunduar një sërë problem, ju do të ndjehen si ju keni përfunduar një projekt. Melissa NIU: Ishte viti fillestar, dhe unë u bërë pazar. I kishte katër klasa të gatshme e mia, dhe unë kam qenë në Annenberg. Dhe unë përplasem në një mik, dhe ai thotë, hej, unë jam pazar kjo klasë quhet CS50, dhe ju duhet të vijnë me mua. Përfundoi duke marrë atë që bien, dhe pas asaj klase, unë menduar ndoshta unë jam duke shkuar për të miturin në CS. Por unë jam këtu, tre vjet më vonë, ende duke studiuar kompjuter shkenca dhe vërtetë për ta bërë atë si një i madh, dhe kam dashur çdo Momenti i saj. Rob Bowden: Unë nuk kam asnjë ide. ALI NAHM: Le të shohim. Melissa NIU: craziness. Kryetari 1: Ndjehem si unë do të jetë shumë klishe. Unë do të them vetëm, si, awesome. Yaniv YACOBY: Accessibility. Jacob PRITT: karamele falas dhe pica. TRAVIS Downs: Nuk mund të hedh poshtë një klasë që duart jashtë tortës. TIM MCLAUGHLIN: Energjetike. Vipul SHEKHAWAT: Essential. Rob Bowden: Më lejoni të mendoj për një përgjigje. Unë mendoj se kam marrë diçka. Oh, zot. Yeah, Bowden Rob emrin tim, dhe kjo është CS50. [Duartrokitje] DAVID Malan: Të gjithë të drejtë, kështu që le të fillojë për të pikturuar një foto i drejtimit në të cilin ne mund të shkojnë, dhe le të prezantoj ky koncept i njohur si pseudokod këtu. Pra pseudokod nuk është një programimit Gjuha në vetvete. Nuk është asgjë teknike në vetvete, por kjo është vetëm një lloj i Mënyra e përgjithshme e shprehur veten mjaft të saktë, algorithmically mjaft, mjaft procedurale, por pa pasur nevojë të shqetësuar në lidhje me atë gjuhë që ju jeni shprehur veten in Është një model i angleze dhe gjuhët programuese me e cila ju ndodh që të jetë e njohur, kështu që ne mund të fillojnë shkruar këtë lloj gjë si ne do të shkojmë. Dhe në fakt, Jozefi, a mund ta marr ju deri në skenë që të jetë shkrues këtu? Unë kam shkuar përpara këtu paraprakisht dhe harruar për të vënë në disa çorape sot, dhe kjo do të jetë në mesin e më të tonë shembuj qesharake. Tani, kam nevojë për ty këtu. Unë do të bëj pjesën e çorape. Pra, këtu kemi një jastëk pak para. Kjo është fjalë për fjalë vetëm TextEdit në një Mac. Ne nuk jemi të vërtetë do të shkruaj një program runnable, por ne jemi vetëm duke shkuar për të filluar jashtë sketching bazuar pseudokod në disa të avokatit që ju ofrojnë për mua këtu. Kështu që këtu është grumbull ime e çorape në shtëpi. Unë nuk kam asnjë në çorape kur zgjohem në mëngjes, dhe ne tani duhet të shkruani një program, një algoritëm në terezi, me të cilat për të marrë këto çorape në këmbët e mia. Dhe gjatë rrugës, le të shohim nëse ne udhëtim mbi ose hasni, disa nga idetë që ju jeni do të duhet të fillojë menduarit rreth shumë më seriozisht kur programimit mos programet tuaja nuk sillen mjaft si qëllim. Kështu që unë ulem këtu. Unë kam marrë grumbull time të çorape. Cila është gjëja e parë që një qenie njerëzore të arsyeshme do të bëni kur qëllimi është për të vënë në një palë çorape? Dikush të më jepni një hap, dhe vetëm një hap. Po? Audienca: Bend poshtë. DAVID Malan: Bend poshtë, Mirë. Hapi dy. Hapi dy. Audienca: Pick up goditje tuaj. DAVID Malan: Pick up goditje tuaj. Mirë, kështu që lehtë paqartësi këtu, dhe kjo është një nga të parët blloqe pengues që ne jemi duke menduar për qëllim hasni këtu. Kjo është pak e paqartë, në mënyrë që të marr goditje tuaj. Mirë, unë do të marrë këtë një, por një kompjuter, të realizuar në vetëm një pak, nuk do të ketë atë lloj të instinktit njerëzor për të vetëm marr një të afërt. Ne do të duhet të fillojë, para se të gjatë, duke shprehur veten më saktësisht. Të gjithë të drejtë, kështu që hapi i dytë është të marr goditje tuaj. Ne do të marrë atë. Hapi tre. Në shpinë. Audienca: Gjeni një palë përputhen. DAVID Malan: Gjej palë përputhen. Mirë, kështu që kjo është e mirë. Unë kisha për të zgjedhur këtë goditje. Pra, qëllimi është për të gjetur një goditje përputhen, tani, por ajo që do të thotë kjo? Një njeri i arsyeshëm që, ashtu si të mërkurën, kur unë vetëm e dinte se si për të gjetur Mike Smith në librin e telefonit, vetëm lloji i shkoi me instinkt e tyre. Por këtu, kjo është pa dyshim ky çorapë këtu, por një kompjuter të nuk do të jetë aq i pavetëdijshëm. Një kompjuter do të ketë një koleksion të bit, si ne diskutuan të mërkurën, dhe ata janë organizuar disi në kujtesë. Por pikë është se një kompjuter ka vetëm aftësinë të shikojmë në gjërat një në një kohë, dhe në fakt, edhe ne njerëzit - edhe pse ai ndjehet si unë lëshoi ​​poshtë dhe një ndarje dytë më vonë unë e di ku është sock, trurin tim dhe sytë e mi me sa duket ka një shpejtë cek nga ato çorape, dhe pastaj latched në të një në fjalë. Pra, nëse ne jetë mbi të gjitha shumë të qëllimshme tani si një kompjuter, si mund ta gjej këtë palë përputhen? E pra, ne duhet të iterate. Ne duhet të ndoshta lak mbi këtë rrëmujë të çorape në kati ku unë them diçka si PER SECILIN sock, marr atë deri, dhe nëse të njëjtën formë dhe madhësi si një tjetër, PASTAJ dot, dot, dot, ne do të vazhdojmë tregimin. Pra, për çdo goditje, kështu që unë të marr këtë. I kontrolloni është kjo e barabartë me këtë një të tillë. Kjo nuk është, kështu që kam vënë mënjanë anën. Atëherë unë iterate përsëri. A është ky një të barabartë? Jo, ajo nuk është, kështu që unë e vënë atë mënjanë. A është kjo një? Jo. Kjo? Jo, dhe kështu me radhë. Dhe pastaj në fund, me shpresë, unë do të ndeshen me këtë goditje këtu. Kështu që nëse kjo është të njëjtën formë, madhësi, të marrë atë. Dhe tani, ajo do të jetë hapi ynë i ardhshëm këtu? Po? Audienca: Identifikimi i drejtë nga e majta. DAVID Malan: Mirë, për të identifikuar djathtë dhe të majtë, kështu që për fat të mirë, kjo lloj e punimeve. Një simetrik pak, ose unë kam veshur vetëm atyre në këtë mënyrë. Të gjithë të drejtë, kështu që unë kam identifikuar të drejtë. Dhe tani, para se të vazhdojë, më lejoni të theksoj se çfarë Jozefit bërë këtu si lloj i një programues i përsosur. Pra, përsëri, nuk ka një mënyrë për të bërë këtë, por përtej vetëm numëron linjave, Joseph tashmë ka filluar të bëjë këtë lloj vulë. Në të vërtetë, kjo është një konventë shumë e zakonshme në programimin, ku, kur ju bëni diçka përsëritës, looping stil, si ne jemi duke nënkuptuar me frazën Shqip "për çdo çorapë, "Konventës në pseudokod dhe, siç do të shohim, gjuhë programimi normale, është që vetëm porosit. Hit space bar disa herë, e goditi kyç Tab apo si, në mënyrë që të mbivendosur nën "PER SECILIN çorap" është copë e sende që ju duhet të bëni si rezultat i asaj lak. Pra, kjo është e gjitha që është përcjellë semantike. Tani ndërkohë, "Në qoftë se kjo është të njëjtën formë dhe madhësi," të Fakti që "Merre" është prerë më tej thjesht do të thotë kjo është e vetmja gjë që ju duhet të bëni në qoftë se atë gjendje, në qoftë se dega, që pirun në rrugë, është në fakt e vërtetë. Kështu që tani këtu, ne jemi në hap katër, për të identifikuar djathtë dhe të majtë. Unë kam identifikuar drejtë. Jepni hap pesë. Dhe teknikisht, ne mund të quajmë të vërtetë PËR ÇDO gjë - ju ndoshta duhet të numërojë të gjitha linjat nëse ne jemi duke shkuar për të bërë këtë. Joseph: [padëgjueshme] DAVID Malan: [padëgjueshme]? Mirë, mirë, të gjithë të drejtë, ne do të bëjmë atë rrugën tuaj. Të gjithë të drejtë, kështu që hapi pesë, si mund të bëjmë goditje të drejtë? Si nuk kemi vazhduar më tej, këtu? Po? Audienca: Ngrini këmbën e djathtë. DAVID Malan: Ngrini këmbën e djathtë, Mirë. Hapi gjashtë? Shpejt. Po. Audienca: Gjej një fund të hapur të çorap. DAVID Malan: Mirë, të gjetur në fund të hapur të çorap. Në mënyrë të mirë. Kështu që këtu, sinqerisht, një instinkt shumë të zakonshme do të jetë vetëm vënë në goditje të drejtë, por që gjithashtu është mjaft e paqartë. Nëse kompjuteri apo e njeriut e di saktësisht se çka do të thotë, ajo nuk do të jetë për të ekzekutuar atë, kështu që këtu, unë kam gjeti hapjen e aksioneve. Hapi shtatë? Audienca: Prek gishtërinjtë tuaj. DAVID Malan: gishtërinjtë kontakt. Mirë, kështu që tani ne do të shkojmë - Të gjithë të drejtë, unë jam duke shkuar për të marrë disa lirive këtu. Faleminderit. Hapi tetë? Vendos mbi çorap. Mirë, kështu që tani unë, mendoj se ne jemi mjaft afër për të zgjidhur të marrë kjo në shtëpi. Të gjithë të drejtë, kështu që kjo shkon deri. Unë do të marrë disa lirive me çfarë do të thotë, në fakt. Vendos goditje në. Të gjithë të drejtë, tani hap nëntë të tjerët? Audienca: Vendos këmbë poshtë. DAVID Malan: Faleminderit. Hapi nëntë, vënë këmbën poshtë, dhe tani, ne mund të përsërisim. Kështu me sa duket, ne tani mund të shkojnë në hap 10 dhe thonë identifikuar la goditje, por kjo është bërë tashmë duket. Dhe kështu atëherë, unë mund të lloj të përsëritur këto hapa. Por ky lloj i ngre pyetjen. Para, hera e fundit që kemi dashur të përsëris diçka, ne bëri atë iteratively, përsëri dhe përsëri, një për ÇDO lak në mënyrë që të flasin. A do të kishte kuptim për të përdorur një lak në mënyrë për të trajtuar të dyja të majtë dhe çorapë të drejtë? Sepse ajo ndjehet si këto operacione janë goxha shumë identike me përjashtim të faktit se një këtu fillon dhe një fillon këtu? A kemi lak, ose nuk kemi vetëm i mbajnë hapa shkrim 10 dhe 11 dhe 12? Audienca: loop. DAVID Malan: Mirë, kështu që lak. Unë në fakt mund të ketë thënë vetëm do të mbajë. Pra, pse është ky rast? E pra, kjo është në fakt e parë e tonë jo-dukshme vendime të projektimit, dhe në fakt, një nga metrics me të cilat ne do të fillojnë të vlerësuar, për veten dhe për ju, cilësinë e një programi është vetëm se si i projektuar mirë është. A keni bërë sasi minimale të punës të nevojshme për merrni punën e bërë më shpejt, qoftë në aspektin e kohën tuaj ose në terma të kohës drejtimin e kompjuterit? Sa operacionet e bën atë që duhet për të ekzekutuar? Pra ndoshta, kjo është një mundësi për një lak, sepse sa më shpejt që unë të fillojë kopjimi dhe pasting, si Jozefit në mënyrë efektive do të fillojnë të bëjnë në një moment, ju jeni lloj i humbur tuaj kohë, dhe ju jeni duke dyfish ekspresive. Por në të njëjtën kohë, këto janë me të vërtetë vetëm dy speciale raste, majtas dhe djathtas. Dhe ndërsa më parë, unë mund të ketë 10 ose 20 ose më shumë në çorape një grumbull, kjo definitivisht nuk ka kuptim që të ketë 50 rreshta të Kodi thënë kontrolloni këtë goditje, pastaj një tjetër, pastaj një tjetër. Ja, kjo është më pak e qartë, dhe unë do të propozohet që ne mund të shkojnë as mënyrë. Ne mund të kemi ose se lak, edhe pse ajo vetëm sythe dy herë, ose ne thjesht mund të kopjoni dhe ngjisni vetëm pak këtu në mënyrë që të marrë punë të bërë. Por ky program është buggy, në mënyrë që të flasin. Ajo mund të ketë disa gabime, gabime, apo raste qoshe, në mënyrë që të flasin, se ne nuk të vërtetë të parashikojnë. Asgjë nuk shkoi keq këtë herë, por ajo mund të ketë shkuar keq ndërsa ekzekutimin e këtij programi? Audienca: Ju nuk keni asnjë çorape. DAVID Malan: Pra, nuk mund të ketë çorape atje whatsoever. Pra, le të marrin në konsideratë atë rast qoshe. Pra, nëse ne mund të shkoni mbrapa deri në një hap, prandaj hap një ishte përkulet, në mënyrë që kontrollon jashtë. Hapi dy, marr goditje tuaj, por pastaj gjeni sock përputhen, identifikimin e drejtë. Ne lloj i bërë një bandë e tërë e supozimeve, dhe kjo është, sinqerisht, pse programi ndonjëherë rrëzimit. Nëse ju, programues, kanë bërë supozime të caktuara, si me siguri nuk do të jetë çorape ose me siguri nuk do të jetë lënë në kujtesën e kompjuterit, me siguri nuk do të jetë hapësirë ​​në disk lënë në hard drive - E pra, nëse ju e bëni këto supozime, dhe se nuk është, në fakt, realiteti, i cili e di se çfarë kompjuteri ndonjëherë të do të bëni? Dhe ndonjëherë, kur ju të merrni topin tjerrje plazh ose Windows-të ngrira apo të ngjashme, kjo është pikërisht për shkak se disa programues nuk parashikojnë ato të ashtuquajturat raste qoshe. Çfarë tjetër mund të ketë shkuar keq në këtë program? Po? Audienca: Ju nuk keni këmbën e djathtë dhe një këmbë të majtë. DAVID Malan: Mirë, nuk mund të ketë dy këmbën një të drejtë dhe një këmbën e majtë, dhe kështu ky program nuk mund të jetë universale zbatueshme. Të tjerët? Audienca: Ju mund të keni kap një çorapë jetim. DAVID Malan: Unë mund të ketë kap një çorapë jetim, kështu që një jo-matching çorapë që vetëm nuk ka vëllezërit e motrat, sepse kam humbur atë, ajo është shqyer, është ende në lavazh, ose si. Kështu që, gjithashtu, nuk ka qenë me të vërtetë trajtuar. Po? Audienca: Ju mund të keni në çorape. DAVID Malan: unë mund të tashmë kanë çorape me radhë. Unë në fakt nuk e shikoni. Nëse ju nuk keni në çorape, pastaj do të vazhdojë për të bërë Shkarko një dhe dy. Dhe kjo mund të ndodhë. Ju bie në gjumë me çorape tuaj në dhe të ngjashme, në mënyrë që, gjithashtu, një rast shumë të arsyeshme qoshe. Dhe ndoshta një tjetër? Audienca: çorapë është brenda jashtë. DAVID Malan: Pra çorapë është brenda jashtë, kështu që ne nuk bëri asnjë gabim kontrolluar, me pak fjalë. Ne nuk kontrolloni nëse gjendja e botës është si ne presim. Ne nuk kontrolloni nëse ne fakt gjetur atë që ne jemi duke kërkuar për të. Dhe, edhe pse kjo është lloj i një shembull qesharak përfshin çorape, në fund të ditës, kjo është pikërisht lloj mentaliteti që ju duhet të keni duke shkruar programe, edhe në Scratch, si dhe në C, në JavaScript, në PHP, sepse përndryshe, programet tuaja do të shfaqin ekuivalent i atij topin tjerrje plazh ose vetëm të japë Rezultatet e pasaktë. Falë kaq shumë këtu për të Jozefit tonë shkrues. [Duartrokitje] DAVID Malan: Të gjithë të drejtë, kështu që çfarë është, në Në fakt, një program kompjuteri? E pra, le të marrë një shikim të shpejtë në një Përfaqësuesi i një këtu. Pra, kjo është një program i shkruar në një gjuhë të quajtur C. C është gjuhë mjaft e vjetër këto ditë, por shumë të reja janë ndërtuar në krye të saj. Në të vërtetë, PHP, një nga web-centric ne do gjuhëve përdorin drejt përfundimit termit-së, vetë ka atë që quhet një Përkthyesi, një program që është shkruar në C, por më shumë në atë në shumë javë nga tani. Por ky program, dhe kjo është ajo që do të thotë për të shkruar një Programi, megjithëse një shumë të thjeshtë. Ne kemi disa sintaksë mjaft të fshehta këtu, por ju mund të ndoshta me mend, edhe në qoftë se ju nuk keni programuar më parë, se çfarë ky program bën. Në të vërtetë, unë nuk e di se çfarë printf është, por me siguri të shtypura zgjon idenë e shtypjen diçka jashtë. Dhe kështu po, ky program është në fund të fundit do të shtypura nga fjalët "Hello, World". Tani, nëse ju keni një Mac apo PC ose një kompjuter Linux, shanset janë, të paktën nëse keni shkarkuar disa lirisht software në dispozicion, ju mund të ketë qenë i shkruar në programe laptop tuaj për mjaft kohë tani. Në Mac OS, për shembull, nuk quhet ky program Terminali që vjen me një Mac, që është zakonisht në tuaj Utilities dosje, dhe në përgjithësi një hap të zezë dhe bardhë ose një dritare të bardhë dhe e zezë në të cilën ju keni një të menjëhershëm në të cilën ju mund të shtypni komandat. Pra, kjo është në të vërtetë kujton se çfarë kompjuterë përdoret për të para se përdoruesi grafike Interfaces, GUIs, erdhi së bashku. Tani, në Windows, ju keni një mekanizëm të ngjashëm në formë i prompt komandimit. Por ajo që unë jam duke shkuar për të bërë këtu është hapur, le të themi, TextEdit përsëri, kështu që programi i njëjtë që ne u përdorur për pseudokod një moment më parë, dhe unë jam duke shkuar për të shkuar përpara dhe shkruajnë programin tim të parë. Përfshijnë stdio.h, çfarëdo që do të thotë, int kryesore pavlefshëm, çfarëdo që do të thotë, dhe pastaj në mes këtu, printf ("Hello, World."). Dhe pastaj quote ngushtë, afër prindërve, pikëpresje. Tani unë jam duke shkuar për të shkuar përpara dhe vetëm goditi Command-S. Unë jam duke shkuar të shkojnë përpara dhe për të shpëtuar këtë si hello.c, kështu që në konventë bota e programimit C është Emri i file dot c. Unë jam duke shkuar të vetëm të vënë në directory John Harvardit Home, këtu, klikoni Ruaj, dhe tani unë jam duke shkuar për të shkuar mbi të kësaj dritare terminali, e cila përsëri është ky shpejtë zezë dhe e bardhë ku unë mund të ekzekutojë komandat. Unë mund të drejtuar programet nga shtypja emrin e tyre, jo nga double-klikuar ikona në kuptimin e zakonshëm. Por kjo gjë është në lidhje me C është se një gjuhë si C parë vjen në këtë formë, diçka që quhet kod burim. Diçka që duket pak si anglisht, por është definitivisht pak si anglisht se një pseudokod Jozefit Momenti më parë. Kjo është pak më shumë misterioze. Kjo duket të ndiqni disa rregulla apo modele. Fakti që unë kam formatimin e teksteve kaçurrel, semicolons, citime, formatimin e teksteve kënd, duket si një kompjuter doli me këtë lloj i gjuhës. Por në qoftë se unë shkoj, tani, në këtë dritare terminali, unë mund të kandidojë një Komanda që do të konvertohet në kodin burimor që është diçka që quhet kod objekt. Kjo do të konvertohet në anglisht si sintaksë për zero dhe ato, të njëjtat llojet e zero dhe ato ne biseduar rreth mërkurën. Tani, unë jam duke shkuar për të drejtuar një komandë të quajtur tingëllimë. Më shumë për këtë në javët që do të vijnë, por kjo është një program me të cilat unë mund të konvertohet hello.c në një bandë e tërë nga zero dhe ato. Tani, unë kam drejtuar këtë komandë. Unë kam drejtuar tingëllimë, dhe pastaj kam thënë drejtuar vetes në këtë dosje quajtur hello.c, që kam krijuar një moment më parë, dhe asgjë nuk duket të ndodhë. Por në të vërtetë, në qoftë se unë poked rreth directory e shtëpisë sime, unë do të shoh se kjo a.out quajtur stupidly program tani ekziston. Kjo është vetëm emri i parazgjedhur për një program kur shkrim në C. Ne mund të pranoj këtë përfundimisht, por a.out është Emri i programit që unë vetëm të kthehet në zero dhe ato. Dhe tani që kjo është zero dhe ato, Mac tim, në këtë rast, ose PC tuaj të Windows, mund të kuptojmë këto bit, ato zero dhe ato. Dhe kështu që kur unë hit Enter, unë shoh "Hello, World!" Por kjo është një buggy pak. Unë nuk e kam mjaft të thonë "Hello, World: ajër: - jharvard". Ajrit është emrin e kompjuterit tim. Jharvard është emri i llogarisë, kështu që atë që nuk kam të qartë heq nga programi? Disa lloj pushim line. Unë nuk e goditi ekuivalentin e Fut ose kthimin topi, dhe kjo është, përsëri, testament për faktin se kompjuterat mund të vetëm bëni atë që ju them që ata të bëjnë. Dhe fakti që unë nuk them kompjuter lëvizur kursorin në rreshtin tjetër - mirë, kjo është me siguri nuk do të bëni vetëm atë mendjemadhësi për mua. Pra, nëse unë kthehem në programin tim, dhe unë them \ n - Pra \ n, si ne së shpejti do të shohim, është mënyra e përfaqësojnë gjëra të çuditshme si karaktere të reja, gjëra të linjës që përndryshe do të jetë rezultat i goditur tastin Enter. Por tani për tani, vetëm e di se goditur Enter do vetëm të bëjë kodin tonë të duket e çuditshme, kështu që vendosi bota, ju e dini çka, për të mbajtur gjërat prettier, për të mbajtur atë në një linjë, le të vetëm thonë \ n përfaqëson një linjë të re. Më lejoni të resave dosjen time, të shkojnë prapa në dritaren e terminalit, si dhe ri-drejtuar a.out, Enter. Ende buggy, por pse? Audienca: [padëgjueshme] DAVID Malan: Yeah, kështu që kam nevojë për të përpiluar atë. Pra, për të hartuar një program të vetëm do të thotë të kthyer atë nga burimi Kodi për kodit objekt, kodin burimor në zero dhe ato. Tani, fakti që unë goditi Ruaj në këtë TextEdit nuk ka duke pasur në ato zero dhe ato, sepse unë së pari duhet të them tingëllimë hej, unë kam ndryshuar ato rreshta të kodit, të kodi burim. Ju keni nevojë për rigjenerimin a.out. Asgjë nuk duket të ketë ndodhur, por në një kompjuter, në një command line, në mënyrë që të flasin, kur asgjë nuk ndodh, që zakonisht do të thotë të gjitha është e mirë. Kur diçka nuk ndodh, kjo do të thotë ju messed up, në përgjithësi. Pra, le të shkojnë në a.out tani, dhe në të vërtetë, unë kam "hello, botë. " Dhe tani, ajo që në lidhje me këto zero dhe ato? Ku, në fakt, janë ata? E pra, unë nuk mund të vërtetë vetëm lloji i thes rreth shumë në mënyrë efektive. Më lejoni të hapur TextEdit. Ja a.out. Më lejoni të shkojnë përpara dhe të hapur këtë, dhe kjo është me sa duket ajo e mia Programi duket si. Kështu që unë kam hapur, nuk hello.c, por a.out. Por kjo nuk është e vërtetë se çfarë programi im është me të vërtetë. Natyrisht, kjo është një lloj i karaktereve alfabetik. Unë po të shoh asnjë zero dhe ato, por kjo është sepse a.out është një program. Zero dhe ato - por TextEdit, si emri sugjeron, kjo është ashtu si Notepad-in në Windows, është vetëm një editor teksti, kështu që është e konfuze të gjitha ato zero dhe ato si pse ata ishin, çfarë? Karaktere ASCII. Pra, kujtojnë të mërkurën, ne vetëm doli me këtë mapping arbitrare të numrave, apo BITS, në letrat e të Alfabeti dhe simbolet shenjat e pikësimit dhe si. Pra TextEdit, se kjo është një editor teksti i keqinterpretimit ato modelet e zero dhe ato që do të duhej të jetë Fjalët e shtypje, si "Hello World",. Është shfaqja e tyre si ASCII, dhe kjo është arsyeja pse ajo duket një çrregullt pak. Tani, ka disa lë të kuptohet e korrektësisë në këtu. Njoftim nëse unë theksoj, nuk është një aluzion i vërtetë "hello, Bota, "kështu që diku në këtë program është Fjalia kam shkruar. Por le të shkojnë përpara dhe tani shoh me një program të ndryshëm. Kjo nuk është një ne do të përdorin atë shpesh, por ajo gjithashtu vjen me një Mac dhe do të jetë në brendësi të aparatit CS50. Më lejoni të shkoj përpara dhe të hapur me një program të quajtur xXD. Kthehu në ditë, shumica e programeve janë quajtur mjaft cryptically, dhe kështu trend vazhdon. Por do të thotë-b nxjerr këtë program jashtë si binare. A nuk e drejtuar atë. Shfaqin atë për mua si dhe ato zero, dhe kjo është C programit ne vetëm shkruante. Tani, unë, si një njeri këtu, Unë sinqerisht nuk kam asnjë ide se çfarë këto modele të ndryshme të zero dhe ato përfaqësojnë. Kthehu në ditë, unë, me kartat e mia shënoj apo si, do në fakt duhet të shikoni se çfarë këto modele të ndryshme të 01111000, në të vërtetë përfaqësojnë. Ose edhe më keq, unë do të duhet të bëjë punching ose krijimin prej këtyre modeleve të zero dhe ato. Por tani për tani, të marrë në besim se një CPU, Intel brenda, kështu që për të folur, në brendësi të të gjithë kompjuterat tanë këto ditë, e di si për të interpretuar këto zero dhe ato. Dhe disa zero dhe ato do të thotë të shtypura. Disa zero dhe ato do të thotë të luajë një tingull. Disa zero dhe ato do të thotë të marrin të dhëna nga përdoruesit një tastierë. Ka të gjitha llojet e modeleve të ndryshme, por ne fatmirësisht, si njerëzit, vetëm në përgjithësi duhet të shqetësohen për programim në ky nivel mjaft të lartë. Dhe në klasat e tjera ju mund të gërmoj nëpër libra SHC poshtë thellë dhe të shohim në gjëra të tilla si ato zero dhe ato, apo akoma gjëra të tjera akoma. Pra, tani le të kthyer këtë. Le të lëvizin shumë shpejt larg nga C dhe të shkojë në një diçka pak më shumë ngushëlluese, pak më emocionuese, në atë ne mund të merrni mbrapa animacione tona dhe tingujt dhe si kjo në mënyrë të qartë na kanë shpëtuar në këtë Ndërfaqja mjaft primitive. Pra, ky program njëjtë në C mund të përfaqësohet tani në këtë gjuhë programimi të quajtur Scratch si më poshtë. Kjo është ekuivalente e këtij programi botë Hello shkruar në kjo pjesë mister stil gjuha quajtur Scratch. Pra më lejoni të shkoj përpara dhe të hapur këtë program shumë. Ajo që quhet përsëri zeroja. Kjo është lirisht në dispozicion, dhe kjo është e njëjta gjë që ne filloi sot në. Pra, kjo këtu është zeroja, dhe kjo është thyer deri në disa copa të ndryshme. Në të djathtë shumë të lartë, ne kemi fazën e ashtuquajtur, dhe në të vërtetë, kjo është ajo ku cookies kryer vetëm pak më parë. Dhe në atë fazë janë gjëra të quajtur sprites, karakteret, ose objekte, ose subjektet. Kjo nuk ka rëndësi se sa ju mendoni se prej tyre, por ata janë programueshëm, gjëra të luajtshme, dhe në këtë rast, ky program që studenti ynë shkroi ka disa kek me xhenxhefil cookies, një çift i cookies rrethore, një bandë e tërë e zemrat, një bandë e tërë e syze. Për shkak të kësaj, ai ose ajo është në gjendje të programit të secilit prej atyre karaktere individuale vete. Tani, çfarë do të thotë të programosh këto karaktere? E pra, më lejoni të shkoj përpara dhe të klikoni në këtë cookie majtë dhe shkoni mbi të majtë të lartë këtu. Në të majtë krye të ekranit tim tani është ashtu-quajtur Scripts zonë. Kjo është lloj i një propozoj bosh, fillimisht, mbi të cilat unë mund të drag and drop copa mister që, sinqerisht, nuk pikërisht ajo që thonë ata. Në krye të këtij rafte e copa mister është fjala Kur Flamuri Gjelbër klikuar, dhe në qoftë se ju nuk e keni njoftim para, Mënyra kam filluar atë këngë cookie është klikuar, fjalë për fjalë, një flamur të gjelbër. Kështu që pjesa puzzle në krye majtas aty do të thotë kur klikimeve njeriut flamur gjelbër, vazhdoi të bëjë gjërat e mëposhtme. Tani, ajo që bënë ata cookie vazhdoj të bëj? Unë vërtetë nuk e di se si për të interpretuar këtë, por cookie duket vendosur zakon saj në zero, atëherë ajo pritur tre sekonda, atëherë ajo ndryshoi grupin e saj në një, atëherë ajo pritur një të dytë, atëherë ajo ndryshoi saj kthyer në një zakon. Dhe pastaj kjo në fakt duket si pak e një bug, nuk duhet duhet të ndryshojë zakon e saj përsëri dhe përsëri nëse është e duke u ndryshuar në vende të tjera, por kjo seri hapash është ajo që është diktuar sjelljen e këtij cookie të veçantë. Pra, le të vërtetë lëviz prapa dhe nuk shikojnë në diçka mjaft aq komplekse ende. Më lejoni të shkojnë përpara dhe të shkoni tek File, New, dhe për të marrë një propozoj të pastër. Deri tani, unë me të vërtetë kanë një zonë të zbrazët script, një fazë e zbrazët, me Scratch Sprite tonë default, dhe në të majtë krye në ekranin tim nuk kam paletë e tyre të gjithë copa mister në dispozicion. Dhe ne nuk do të shkojnë nëpër gati se shumë nga këto gjëra sot, sepse, përsëri, shumica janë vetë-shpjeguese, por ne do të përpiqen për kategorizimin e tyre dhe të vënë në dukje ngjashmëritë me këto gjuhë të ardhmen për të cilat ne do të zhyten. Dhe në të majtë të lartë këtu është i pari Kur Flamuri Gjelbër klikuar, kështu që le mua terhiq mbi këtë këtu, zoom out pak. Dhe në qoftë se unë klikoni flamurin e gjelbër, asgjë të vërtetë ndodh sepse Unë nuk kam bashkangjitur ndonjë logjikë, çdo deklaratë në mënyrë që të flasin, të se flamuri gjelbër, kështu që më lejoni të shkoj deri në Kategoritë këtu. Unë jam aktualisht në kategorinë e Kontrollit. Unë jam në vend do të zbresin në kategorinë duket, dhe ka një bandë e tërë e gjëra këtu që thonë Thuaj, Mendoni, Ndryshimi, Color Switch kostum. Kështu që ju mund të bëni gjëra pa kuptim me kostume dhe tingujt dhe si. Më lejoni të shkoj përpara dhe të them vetëm Thuaj, dhe tani vini re si unë terhiq and drop këtë pjesë mister, ajo do të duan të shul në formën përkatëse. Kështu që kur të shkoj përpara dhe le të shkojnë e miut tim, ata bllokoj së bashku, dhe tani, nëse unë shkoj këtu dhe klikoni flamurin e gjelbër, cat në fakt nuk them hello, sepse kjo është ajo që është brenda të këtij kuti të bardhë. Ne së shpejti do të shihni se kjo kuti e bardhë është ajo që quhet një argumenti, ose një parametri. Kjo është një mënyrë për të ndryshuar sjelljen e, në këtë rast, një mister copë, por në qoftë se unë dua të them saktësisht se çfarë kam thënë më parë, thonë hello, bota, unë tani mund të shkoni përsëri mbi këtu, click play, dhe "Hello, World" është ajo që e ka thënë. Pra, ne jemi fjalë për fjalë programimit tani. Kjo nuk është e gjitha që bindëse e një programi, por të paktën kjo është një diçka pak më bindës sesa që duket, në shikim të parë, si kjo. Dhe ne mund shumë shpejt të marrë të gjitha më ekspresive sepse në Scratch, si në gjuhë të tjera, nuk është e gjitha llojet e deklaratave, jo vetëm Thuaj diçka ose shtypje, por ju mund të bëni gjëra të tilla si duke pritur, pasi ne vetëm e pa me cookie, disa numri i sekondave. Ju mund të luajnë tingujt në mjedisin e vetëm Scratch si ju mund të në një program kompjuterik normale të shëndosha luajnë. Ju mund të shikoni se çfarë janë quajtur shprehje boolean. Deri tani, le të fillojë për të shtuar në veglën tonë disa terminologjinë që në fakt ka të bëjë me shembull se Jozefi dhe kam bërë këtu me çorape. Kështu deklaratat janë vetëm deklarata të vërtetë. Bëni këtë. Një direktivë për Sprite, ose më njerëzore, për të bërë diçka. Një shprehje Boolean është diçka që ka një vlerë, një ashtuquajtura vlera vërteta, që është ose një zero ose një, rreme ose vërtetë, jashtë ose në, jo ose po. Nuk ka rëndësi se si ju mendoni për këtë, por kjo është një Shteti binar. Si Nate diskutohet në video së mërkurës, dy gjëra të ndryshme. Pra, në Scratch, shprehjet Boolean ndodhë të shohim si këto objekte blu këtu, dhe në këtë rast, pyetja mark nënkupton se ju jeni duke i kërkuar një pyetje. Është mace, ose Sprite, duke prekur treguesin e miut? Pra, kjo është vetëm një shembull i një bllok Scratch që është sipër për të na lejuar për të kontrolluar po ose jo, është e miut prekur sprite në ekran? Dhe kjo mund të jetë e dobishme në qoftë se ju në të vërtetë doni të bëni gjëra me miun tuaj. Përveç shprehjeve Boolean, ne kemi gjëra si është e miut poshtë, kështu që ju mund të zbulojë këtë lloj të pyetje si. Ne mund të bëjmë matematikë në qoftë se ju në të vërtetë doni, dhe ka përdor në të vërtetë shumë bindëse për këtë se vetëm të pastër të aritmetike, si ne do të shohim. Randomness Pseudo dhe duke e bërë programin tuaj të duket për të menduar ose sillen ndryshe në bazë të disa vlerave në dukje të rastit, dhe pastaj ne kemi gjëra të tilla si shprehje Boolean si dhe. Pra, nëse jeni të vërtetë dëshironi të shikoni dy vlera, ne do të shohim në Zeroja se ne në fakt mund të testuar nëse kjo është e vërtetë dhe kjo është e vërtetë. Për shembull, në rastin e çorape e mia, unë mund të kemi në të shumë në fund pyetjen nëse sock e majtë dhe të djathtë është në sock është në, lë. Ju jeni bërë të gjithë për këtë ditë, kështu që do të jetë një mundësi për këtë. Pra, le të shkojnë përpara dhe të përpiqemi për të kuptuar disa nga këto së bashku dhe të shkojnë në një çift të shembujve më shumë bindëse se ky. Pra më lejoni të shkoj përpara dhe e hapur deri këtu disa nga shembujt se gjithmonë do të jetë në faqen e internetit të kursit si edhe, dhe hapur deri hello2. Pra, në hello2 këtu, ne kemi një program që është duke bërë disa gjëra, por kjo nuk e bën atë si në mënyrë efektive si ne mund. Kështu që këtu ai thotë se "Hello, World" për një të dytë dhe pastaj pret për një të dytë. Dhe pastaj e bën atë përsëri, dhe pastaj e bën atë përsëri. Pra, nëse unë klikoni flamurin e gjelbër, Scratch thotë "Hello, bota. Përshëndetje, bota. Përshëndetje, bota. "Dhe kjo është padyshim kandidati tani për përmirësim. Çfarë është përmirësimi margjinale, me shpresë, ne mund të të bëjë tani nëse Scratch mbështet konceptin? Disa lloj lak. Një lloj përsëritjeje, tani, do të ishte mirë, kështu që le mua në fakt provoni se. Më lejoni të vërtetë të shkojnë dhe lëvizin këtë. Pra, njoftimi mund të shkëputen blloqe aq lehtë si ju mund të shtoni për bashkangjitni ato. Më lejoni të shkoj nën kontroll, lëvizni poshtë këtu, dhe në të vërtetë, ka kjo pjesë mister këtu, Përsërit dhe përgjithmonë dhe Nëse përgjithmonë. Pra, ka një numër të mënyra e shprehjes konstruktet looping në Scratch. E unë ndoshta dëshironi këtu nuk është përgjithmonë, sepse unë vetëm dëshironi që kjo të ndodhë tri herë, por ndoshta Përsëriteni. Pra më lejoni të drag Përsëriteni gjatë këtu, drag and drop, dhe tani në vend të thënë "Hello, World" tri herë ndara, më lejoni të drag puzzle copë këtë këtu. Dhe, edhe pse kjo nuk duket të përshtaten, programi është i zgjuar të mjaftueshme për të realizuar atë do të rritet për të mbushur, kështu që është forma se materia dhe jo madhësia absolute. Më lejoni të ndryshojë përsëritje të tre, dhe tani më lejoni të shkoj përpara dhe terhiq Prisni një të dytë në atje si. Ajo do të parakohshme si edhe, dhe kështu që tani unë jam duke shkuar për të drag këta njerëz mbi këtu dhe vetëm ata hedhin larg, sepse unë nuk kanë nevojë ata më. Më lejoni të zoom jashtë dhe klikoni flamurin e gjelbër tani, dhe ne kemi programi i njëjtë, por, siç kam parashikuar më parë, më mirë projektuar për shkak se ju mund ta imagjinoni se sa keq ky program do të ketë, sigurisht aesthetically, nëse keni pasur për të të fillojë kopjimi dhe pasting, kopjimi dhe pasting, ose zvarritje dhe në rënie të njëjtat gjëra mallkuar përsëri dhe përsëri. Tani, thjesht duke thënë gjëra në ekran, shtypje të ekran, me të vërtetë jo të gjithë se emocionuese, kështu që le të hapur një Ndryshimi i tretë këtu. Dhe tani, si ju do të shihni, kjo do të shpejt të merrni annoying - [Meow] DAVID Malan: - por kjo është edhe lloj cute. [Meow] DAVID Malan: Mirë, kështu që më mirë, dhe ne me siguri mund të përdorin atë Tranzicioni njëjta zhurmë e madhe kjo deri në një looping strukturë, por le ta bërë atë më interesante ende. Më lejoni të shkoj përpara dhe të hapur një grindje të katërt këtu, ku unë marrë gjërat një hap më tej. Pra, sipas kësaj, edhe pse kjo është budalla në fillim shikim, çfarë është ky program do të bëjë? Ajo do të Meow herë. Pse? E pra, një është, me sa di unë, gjithmonë më pak se dy. Nuk ka asnjë nocioni i randomness këtu. Unë e kam fjalë për fjalë hard-coded një dhe dy, por kjo është një Shembulli tani e në fakt duke përdorur një shprehje Boolean. Pjesa më e madhe ashtu si Jozefi e bëri në pseudokod tij, gjurmë IF ju gjeni çorape përputhen pastaj të bëjë të mëposhtme, këtu kemi një shprehje nëse dikush është më pak se dy PASTAJ - dhe në fakt ne kemi edhe pak e vulë, ku purple është e prerë pak në të djathtë - Atëherë ju jeni duke shkuar për të luajtur Meow shëndoshë. Tani, në këtë rast, se një është gjithmonë më pak se dy, kështu që kjo është lloj i një mbetje e një gjendje. Por ne do të jetë në gjendje, siç do të shohim, të plug gjëra të tjera në këto placeholders ku një dhe dy tani janë. Pra, le të tani të përparuar në shembull të këtyre pesë disa hellos dhe të shikojmë se çfarë ky program do të bëjë. Deri tani, në një fjali anglisht, si e bën këtë Programi sillen? Audienca: Meows gjysmën e kohës. DAVID Malan: gjysma Meow i kohës, kështu që kjo është një mënyrë për të përcjellë një ide shumë të thjeshtë. Edhe pse ne të ndodhë të jetë duke përdorur disa pabarazitë këtu në disa numra, kjo është me të vërtetë vetëm një programmatical mënyrë, një mënyrë të saktë, për të thënë nëse vjen deri monedhë kokat, shkoni përpara dhe mjaullin. Ose anasjelltas, nëse vjen deri monedhë bishtin, nuk mjaullin. Dhe në këtë rast, si nuk kemi shpreh se? Ne do të marr një numër të rastit 1-10, dhe në qoftë se Numri është më pak se 6, të shkojnë përpara dhe mjaullin. Dhe si e bëri këtë të marrë në këtu? Edhe një herë, vërehet vetëm zvarritje dhe duke rënë dhe latches gjërat në vend. Pra, tani le të shohim nëse kjo randomness punon. Më lejoni të shkojnë përpara dhe klikoni flamurin e gjelbër. [Meow] DAVID Malan: Mirë. [Meow] DAVID Malan: Mirë. Mirë, mirë, kështu që ne kemi marrë kokat, kokat, bishta efektive. Tails. [Meow] DAVID Malan: Udhëheqësit. [Meow] DAVID Malan: Excellent. Është gjithmonë vështirë kur vetëm statistikisht ju merrni një e keqe drejtuar, dhe kjo është e gjitha kokat, dhe programi në fakt nuk punojnë si ju do të shpresoj. Por këtë herë, ai ka punuar, dhe ne duket të ketë, në qoftë se ne e bëmë kjo një numër të pafund të herë, shanset 50%. Tani përsëri, jo të gjitha se interesante, vetëm duke bërë macet meow, kështu që le të shohim nëse ne nuk mund të përparojnë këtë një pak më tej këtu në versionin gjashtë. Deri tani, ne kemi versionin vërtetë i bezdisshëm - [MEOWS çdo disa sekonda] DAVID Malan: - dhe kjo është ajo që është e njohur, e përgjithshme, si një loop pafund. Pra lak pafund në këtë rast ndjehet keq. Është definitivisht do të fillojë fryrë keq, dhe ende pafund sythe nuk janë gjithmonë të këqija. Ju mund të mendoni për kontekstin në programet kompjuterike, ku ju do të të vërtetë duan një lak pafund? Po? Audienca: Kur ju dëshironi të shikoni një kusht. DAVID Malan: Mirë, kur ju doni të mbani kontrollin një kusht? Ashtu si çfarë? Audienca: [padëgjueshme] DAVID Malan: Mirë, mirë, kështu që nëse keni pasur ndonjë program, disa lloj gjë automatizimi në shtëpi, ku ju dëshironi që vazhdimisht monitor është diçka rasti. Janë dritat në? Janë dritat për shkak se ndoshta ju keni një sahat, dhe ju doni që ata të shkojnë jashtë, ju mund të kenë nevojë për të bërë diçka përsëri dhe përsëri. Dhe në fakt, duke folur për timers, ndonjë prej jush që kanë orë në kompjuterin tuaj ose watches dixhitale, që është një loop pafund. Ajo vazhdon të rinovuar kohën, sepse ajo është vazhdimisht kontrolluar dhe të kontrolluar dhe të kontrolluar ka ndryshuar koha, dhe nëse është kështu, oh, my god. Ora është ndryshuar në fund. Ajo ka nevojë për të shfaqur atë vlerë për ju. Pra, ndërsa shumica e sythe pafund kohë janë një gabim, ose të paktën një vendim të projektimit të dobët, nganjëherë ata e bëjnë kanë vlerën e tyre. E pra, le të përparojnë më tej këtu për hello7. Deri tani programi do të marrë pak më shumë interaktive. Më lejoni të zoom në këtu, dhe përsëri, kjo është ajo që është e bukur rreth Scratch. Dhe ne do të përdorin atë për të jetë i qartë, zeroja, vetëm sot dhe në Problemi i javës së ardhshme të vendosur. Por të hënën, ne pikiatë në C. Në këtë program ketu, ai e bën, përgjithmonë, në vijim. NESE prekur treguesin e miut - tani, i cili është Konteksti këtu? Mirë, dhe njoftimi se kush është zgjedhur këtu poshtë në fund drejtë është macja, Sprite një, kështu që këto scripts, kjo Programi, vlen të tij në veçanti. Pra, në qoftë se macja është prekur treguesin e miut, atëherë ajo do për të luajtur këtë poshtë dhe prisni dy sekonda, dhe pastaj të përsëritur nauseum ad. Pra, le të shkojnë përpara dhe e goditi të luajë. Asgjë nuk ndodh, por në qoftë se unë dua të përkëdhelur the cat tani, unë mund të thjesht. [Meow] DAVID Malan: Adorable. [Meow] DAVID Malan: Mirë, më pak i bezdisshëm, por edhe merr shurdhër, kështu që le të lëvizë dhe të shohim nëse ne nuk mund të injektojnë një logjikë pak më shumë. Kjo ishte shembull i shtatë. Këtu në tetë shembull, ne do të futur një kusht tjetër. Kështu shumë si një pirun fjalëpërfjalshëm në rrugë, në të cilat mund të shkojnë majtas ose ju mund të shkoni të drejtë, një kusht në një programimit Gjuha si Scratch, ose si ne do të shohim C, mund të lejojë që të shkoni në një drejtim apo në një tjetër me anë të një IF ELSE ndërtojnë. Pra mjaft fjalë për fjalë, nëse prekur treguesin e miut, kjo do të luajë një tingull, përndryshe ajo do të luajë këtë tjetrin , meow shëndoshë. Tani, në qoftë se ju mund të konkludoj nga emri i këtyre tingujve, ju mund të ndoshta me mend se çfarë ky program është menduar për të sjell në mendje deri Ideja e. Kjo mace është meowing fat të mirë. [Meow] DAVID Malan: Për fat të mirë, por nuk mjaft si për të prekur. [Rënkime] DAVID Malan: Deri tani ne kemi një mace që do të bërtas në ju. Të gjithë të drejtë, të mirë, një shembull i fundit me macet këtu, dhe Le versionin e Hapur nëntë të këtij këtu. Deri tani, ne kemi tingullin e ardhshëm më të bezdisshëm se unë mund të gjetur, kështu që ne kemi një lopë deti ose luani deti këtu kush do të bëjë të mëposhtme. [Leh MBAJTESJA] DAVID Malan: Mirë, kështu që kjo do të vazhdojë derisa të kuptoj se si ky program punon. Pra, kjo kohë, kjo kafshë ka dy Scripts, dhe çfarë është interesante këtu është se këto Scripts do të ekzekutojë në mënyrë paralele. Pra, për shkak se ata të dy fillojnë me një flamur të gjelbër klikuar, kjo është si të shkosh si kjo, dhe të dy programe të fillojë running atë herë edhe në qoftë se ata janë looping përgjithmonë. Pra, në shkrimin lartë, unë kam disa logjikë. Çfarë karakteristika do të sigurojë se deri atje? [Leh MBAJTESJA] Audienca: [padëgjueshme] DAVID Malan: Nëse kjo është ajo? [Leh MBAJTESJA] Audienca: Nëse mbytur në zero, ajo do të mbajë të luajtur tingëllojë. [Leh MBAJTESJA] DAVID Malan: Mirë, mirë. Pra, nëse mbytur, çfarëdo kjo është, kjo gjë portokalli është zero, PASTAJ luajnë tingujt lion detit dhe mendoj se "Oh, hi ", për dy sekonda. Tani, unë nuk e di se çfarë është mbytur, por zero zgjon deri Ideja e rreme ose off. Pra, nëse mbytur është e rreme, kështu që nëse nuk mbytur, mbani luajtur të shëndoshë. Të gjithë të drejtë, të mirë, si nuk kemi çaktivizoni këtë gjë? E pra, le të shohim në shkrimin e dytë atje poshtë. Script dytë thotë vendosur mbytur në zero. Vini re është gjithashtu portokalli, kështu që çfarë Scratch nuk është ajo ngjyra blloqe të njëjtë në hije, nëse është e renditjes të lidhura logjikisht. Pra, ashtu si top mbytur deri qenë portokalli, kështu që është e mbytur këtu poshtë përmendur në bllok portokalli. Por kjo është një detyrat ndryshueshme, kështu që ashtu si në algjebër, ju keni x dhe y dhe z, në programimin e keni variablave, por ata janë në përgjithësi - pauzë le për një moment dhe figura si për të ndaluar këtë leh. Si ta bëj këtë? [Leh MBAJTESJA] DAVID Malan: Mirë. Ai u ndal. Rregull. Pra, ashtu si në algjebër keni variablave x, y, dhe z, por në programimit, duke pasur si variabla x, y, z dhe në përgjithësi është frowned sepse ata nuk janë në të gjitha ekspresive. Ata nuk kanë asnjë kuptim semantik lloj, kështu që në shumicën gjuhë programimi, variablat mund të ketë të plotë emra të drejta të ose fjalë apo fraza, si mbytur, për të thënë atë që bëjnë ata. Pra, ky dorëshkrim i dytë gjithashtu ishte dëgjuar përgjithmonë, dhe ai tha: nëse çelësi, çelësi i tastierës Hapësirë, është presion, pikëpyetje. Kështu që nuk ka një kusht me një shprehje Boolean që është do të përgjigjem një pyetje ose vërtetësi apo e rreme, atëherë unë kam në brendësi të saj, nëse çelësi hapësirë ​​është ngritur dhe NESE mbytur është zero, i vendosur mbytur në një, tjetër mbytur vendosur në zero. Pra, kjo pirun të tjera në rrugë, dhe njoftim se si unë kam mbivendosur dy NESE kushte, është një mënyrë për të kontrolluar është Space Bar presion, sepse nëse është kështu, unë as dua të shkoj këtë mënyrë ose në këtë mënyrë. Dhe si mund ta anasjell vlerën e mbytur? Unë duhet të kontrolloni është zero? Nëse është kështu, e bëjnë atë një, tjetër bëjnë zero për arsye toggle shtetet dy e saj. Të gjithë të drejtë, kështu që ne kemi pastaj disa nga këto themelore ndërton. Ne kemi shprehje boolean, dhe të kuptojë, gjithashtu, këto janë jo të gjithë që të panjohura. Në fakt, këtu është një screenshot të shpejtë të kursit të Harvardit CS50 mjet pazar, dhe çdo faqe interneti që ka atje kutitë dhe ngritje rënie kanë me të vërtetë, e gjithë kjo kohë, janë përdorur Shprehjet Boolean. Në këtë rast këtu, në qoftë se ju klikoni checkbox tjetër për Kursi më i madh se ose e barabartë me 4,5, apo tjetër për të njëjtën Fakulteti, ju jeni dhënë një shprehje Boolean. Trego kurse për të cilat se shprehja është e vërtetë. Apo në të djathtë, nuk është në konflikt me kurse unë jam marrë, në qoftë se është i kontrolluar, atëherë po, ju doni të kontrolloni se gjendja, tjetër që ju doni të injorojë atë. Pra, shprehjet Boolean janë lloj i të gjithë rreth, por kur ne kemi vënë ato në kushte, nëse nëse kushtet, nëse Elses, ose ne mund të simulojnë edhe më thellë nivelet, NESE tjetër në qoftë se tjetër - kështu që kjo është lloj i një shteti tresh. Ju mund të shkoni në këtë mënyrë ose në këtë mënyrë ose në këtë mënyrë. Ne mund të mbani gjërat fole për të shkuar në drejtime të ndryshme. Pra Scratch ka këto sythe, si Gjithmone. Ajo ka këto karakteristika si Përsëriteni 10, disa numër i caktuar të kohës. Ne kemi aftësinë për të vendosur variablave tani, kështu që në këtë rast Unë e kam deklaruar, për shembull, një çorape ndryshueshme quajtur. Unë e kam nisur në 0, dhe kjo është një tjetër drejtim ne mund të kemi marrë deri këtu me Jozefin, ku ndoshta unë vetëm i mbajnë gjurmët e sa çorape të kam në dhe të përfundojë Programi, kur vlera që variable është 2. Kjo do të jetë një tjetër mënyrë për të lloj i përgjithësuar që problem dhe duke bërë diçka përsëri dhe përsëri. E pra, le të shkojnë përpara dhe tani futur disa gjëra të reja. Pra, ata prej jush me përvojë paraprake programing do e di se shumë gjuhë kanë vargjeve, ose vektorët ose Listat, dhe në të vërtetë, zeroja ka diçka si kjo, too. Pra, le të shohim nëse ne nuk mund të marrë gjërat në nivelin e ardhshëm këtu. Nëse unë kam mundësi, tani, me këto copa mister për të shtoni diçka, si një fjalë apo në numër, të një variable, unë mund të të fillojë të grumbulluar gjërat. Dhe kjo është në të vërtetë me këtë rast goxha për gjëra të tilla si lojra, Roli-luajtur lojëra ku ju jeni lloj i ecin përreth disa botë fantazi mbledhur gjëra, picking up gjërat, fituar pikë, ose si. Ju mund të dëshironi që të mbani gjurmët e disa lloj të inventarit, si dhe në të vërtetë, kjo është ajo që një nga ish-studentët tanë këtu e bëri me diçka që quhet Fruitcraft RPG. Pra më lejoni të shkoj përpara dhe të hapur këtë gjë këtu, dhe në Fruitcraft, ne kemi këtë botë deri në krye. Pra më lejoni të shkoj përpara dhe klikoni flamurin e gjelbër. Njoftim të majtë të lartë është një lloj i inventarit. Që është zbatuar në Scratch si ajo që ne do të thërrasë një grup ose një listë, dhe tani ne kemi këtë animacion pak. Pra, ashtu siç kemi filluar më herët me këtë histori dashurie cookie, dhe pastaj ne të avancuara për macet dhe kuriozitete detit, tani ne mund të kemi gjëra që janë edhe më interaktiv. Dhe ky djalë i vogël blu, unë mund të fillojnë të lëvizin përreth tij shtëpi pak këtu. Pra, duket sikur ai e mori një dalje këtu poshtë, kështu që unë jam duke përdorur çelësat shigjeta, lart, poshtë, majtas drejtën. Dhe tani unë jam jashtë, kështu që le të është ajo që unë kam marrë këtu. Duket si një portokall, dhe në të vërtetë, sa më shpejt që kam prek portokalli, ajo merr plopped në inventarin tim. Nëse unë shkoj këtu për të qershi, tani kam diçka tjetër në inventar tim. Dhe kjo është e gjitha e bukur dhe bukur, por mendoj se si, tani, kjo është zbatuar. E pra, ne kemi këtë nocion e një listë, dhe kjo është me sa duket një copë mister që ju vetëm thoni atë që ju doni të shtoni në të, të shtoni portokalli, shtoni qershi. Tani, çfarë është ky djalë i vogël blu duke bërë? E pra, ai është një sprite. Dhe me sa duket, portokalli dhe qershi - ata vetë ishin të ndara sprites. Dhe përdorimin e kushteve në shprehje Boolean, e Studenti ishte ndoshta në gjendje për të shprehur NESE djalë blu është qershi prekur pastaj shtoni qershi fjalë të tij inventarit, dhe pastaj edhe të fshehin Sprite qershi. Pra, nën kapuç, ka ndoshta ende është një qershi sprite atje. Ne kemi thënë vetëm atë për të bërë në mënyrë efektive të padukshme. Tani, nëse unë mbaj në këmbë gjatë këtu, ne gjithashtu mund të bëjë këtë Gjëja proximal, ku unë mund të shkoni dhe lexoni shenjë. Pra, nëse djalë blu prekur shenjë, ne mund të kemi këtë bllok Opinioni ashtu si macja foli me ne në fjalë, hello, më herët, "Got disa fruta? Sjellë atë në vendin fruta. "Të gjithë të drejtë, kështu që tani, me sa duket, Unë kam udhëzimet e mia. Unë mund të shkojnë mbi këtu në vendin e frutave, të vijë veten deri me derë. Tani, unë jam këtu. Unë mund shkojnë deri tek njeriu në banak. Ai zbulon se unë jam pranë tij, kështu që nuk duhet të jetë mjaft identike prekur, dhe kam fituar ndeshjen. Kështu që nuk kemi Fruitcraft RPG. Pra, ne mund të bëjë gjëra edhe më të avancuar se sa kjo. Ne mund të shtoni tinguj. Ne mund të shtoni randomness pseudo. Ne mund të shtoni kompleksitetin. Më lejoni të shkoj përpara këtu, dhe në vend se ta bëni këtë veten time, më lejoni t'ju tregoj një nga aplikimet më të sofistikuara kemi marrë vitin e kaluar nga një person të caktuar të quajtur Blake. Mund të kemi një vullnetar që është e rehatshme shfaqeshin në kamera dhe është deri për të luajtur një lojë? Si për të drejtën atje? Come on up. Të gjithë të drejtë, kështu që loja që ju keni vetëm unknowingly vullnetarë për të luajtur - [Duartrokitje] DAVID Malan: - është diçka nga e quajti kaluar "Frogger." Cili është emri juaj? Renda: Renda. DAVID Malan: Redna? Renda: Është si Brenda me një b. DAVID Malan: Mirë, Renda. David. Gëzohem që u njohëm. Pra këtu në "Frogger," dhe nëse ne mund të rritur volumin vetëm pak, ju jeni në këtë pak bretkocë gjelbër në pjesën e poshtme. Ju mund të përdorni majtas, djathtas, lart e poshtë, dhe qëllimi juaj është që të kalojnë në rrugë, kalojnë lumin, dhe kontakt pads lily në majë. Aw. Një më t - bëj sërish, të gjithë të drejtë? Le të ndaluar hit. Askush nuk e panë atë. [Duartrokitje] [Duartrokitje] DAVID Malan: Po. Bërë shumë mirë. Excellent, thank you. Kështu që nuk ishte e Frogger. Tani që ju e dini se çfarë ju keni marrë veten në, një vullnetar për më shumë një tjetër Loja dorëzuar nga një tjetër student. Ju dëshironi që të vijnë më lart? Çfarë është emri juaj? RICHARD: Richard. DAVID Malan: Richard. Të gjithë të drejtë, Richard, eja lart. [Duartrokitje] DAVID Malan: Ju keni diçka që do të tingëllojë njohur së shpejti, kështu që këtu janë udhëzimet tuaja. Pra, në një moment, disa copa mister do të lëvizni lart nga ekrani që duken as la ose të djathtë lart ose poshtë. Ju jeni do të duhet për të goditur çelësat arrow në mënyrë të tillë që korrespondon me ato copa puzzle rreshtim deri me e placeholders në krye. Pra, kur ju të shihni një shigjetë të majtë, dhe ajo me linjat e majtë shigjeta, goditi arrow majtë. Ju mund të fillojë. [MUSIC - "të fortë" Kayne West] DAVID Malan: Të gjithë të drejtë, raundi madhe e duartrokitje për Richard. [Duartrokitje] DAVID Malan: Very well done. Falemnderit. [Duartrokitje] DAVID Malan: fun Pra dhe, me sa duket, lloj frikësimit si ajo mund të jetë për të zbatuar diçka si në dukje të sofistikuar si ky, e kuptojnë se studenti nuk përcaktohen dhe shkruani vetëm këtë të gjithë në të njëjtën kohë. Përkundrazi, ju mund të prishen si një problem në dukje komplekse si kjo në copa shumë të vogla, dhe kjo, gjithashtu, është do të jetë një temë. Gjëja më e keqe që ju mund të bëni me shkrim një program në shumicën ndonjë gjuha është të ulen, të marrë me të vërtetë i ngacmuar, shkruani Gjëja e tërë damn, dhe pastaj vetëm shpresoj se ajo punon me koha që ju jeni mbaruar me shkrim. Përkundrazi, procesi i programimit duhet përgjithësi të jenë shumë të qëllimshme, shumë përsëritës, ku ju vetëm vendosur hapa shumë të vogla për vete, kafshoj-size copë nuk ju duan të kafshoj, dhe kështu që ju kanë këto mendje e shëndoshë kontrolle, piketa pak ju mund të takohen. Dhe pastaj ju të ndërtuar në krye të atyre për të krijuar më shumë gjëra të sofistikuar ende. Kështu për shembull, si mund të shkojmë në lidhje me zbatimin e një lojë si kjo? E pra, sinqerisht, unë me siguri do të fillojë vetëm me mbështetjen e një kyç në një kohë. Le të vetëm të zbatojë mbështetje për shigjetën e majtë. Pra studenti duhej të krijuar disi në Photoshop, ose në Zeroja veten duke përdorur editor pak grafike, një kyç arrow që duket si një në krye mbetur atje, vetëm placeholder gri. Atëherë nxënësi kishte të kuptoj se çfarë x, y koordinuar për vënë atë, ku për të vënë atë në dritare. 0, 0 është deri këtu, kështu që ju duhet të kuptoj se numri i pixels, ose pika, për të kompensuar atë shigjetë nga në krye të ekranit. Dhe pastaj një herë se është në vend, programi juaj nuk ka të vërtetë bëjë asgjë ende, kështu që atëherë ju duhet një sprite dytë, për shembull një shigjetë e gjelbër që është gjithashtu duke treguar majtë, dhe ju atëherë duhet të filloni të shkruani disa Scripts për të. Dhe vëreni, ndoshta, se këto gjëra filluan të vijnë në shpejtësi të ndryshme, dhe ngjyrat ishin në të ndryshme vende, dhe kjo është për shkak se studenti përdorur një grimë e randomness pseudo. Dhe nga randomness pseudo, unë vetëm do të thotë të zgjedhë një numër mes diçka dhe diçka, sepse ju mund të të fillojë të gjëra hartë, si në qoftë se numri është në mes të një dhe pesë, pra, le të bëjë gjë e gjelbër. Nëse kjo është ndërmjet 6 dhe 10, le të bëjë copë puzzle kuqe në vend. Për aq kohë sa ju keni një mënyrë për të gjeneruar një lloj të randomness, atëherë ju mund të marrë vendime bazuar në atë randomness. Dhe unë mbaj duke thënë pseudo të rastit, sepse ka një sekret të vogël të pista. Kompjuter nuk mund të dalë me numra të rastit. Ata vetëm mund të bëjnë atë që ata janë duke thënë, sepse ata janë bërë njeri-pajisje. Ato nuk mund të mendoj një numër si ne njerëzit ndjehen si ne mund. Një kompjuter ka të bëjë diçka matematikore të sjell në mendje deri iluzion i numrit matematikore, nganjëherë duke përdorur Dita aktuale të kohës si një input për parafytyruar se çfarë Numri i të kthehen, por më shumë në atë kohë tjetër. Tani për tani, vetëm e di se ne mund të gjenerojnë randomness pseudo. Pra, një herë unë kam aftësinë për shigjetën e majtë për të filluar shfaqur në kohë të ndryshme dhe në shpejtësi të ndryshme, atëherë Unë mund të ktheheni mbrapsh dhe të shtoni disa prej tyre nëse kushtet. Nëse kjo sprite është prekur një tjetër, dhe shigjetë majtë Çelësi ka qenë presion - kështu tri kushtet në atë rast. Unë mund të përdorin atë dhe për të bllokuar ndoshta, në këtë rast - PASTAJ Unë dua të shkoj përpara dhe rritje rezultatin. Dhe në krye, ne kemi një rezultat, ne kemi Awesome, Cool, e mirë, dhe Boo. Pra, ka në dukje pesë variablave që ky studenti përdorur për të mbajtur gjurmët e këtyre metrics të ndryshme. Pra me pak fjalë, rezultati përfundimtar është e mahnitshme. Është kënaqësi, kjo është kënaqësi për të luajtur, është e angazhuar, por kjo nuk është ku studenti filloi. Ai ose ajo filloi në një grup shumë të vogël të hapave. Pra, cilat janë disa blloqe të tjera të ndërtimit që ne mund të endje në këto programe? E pra, nuk është ky koncept tjetër në shumicën e gjuhëve, Zeroja në mesin e tyre, e njohur si temat. Kështu që një kompjuter nuk mund të vërtetë të vërtetë të bëjë gjëra të shumta në një kohë, të paktën jo zakonisht. Përkundrazi, një kompjuter në përgjithësi ka vetëm një CPU, dhe madje edhe pse kompjuterët janë të super të shpejtë dhe mund të, prandaj, të krijojë iluzionin e bërë gjëra të shumta në të njëjtën kohë - kontrolluar postën tuaj, duke marrë një çast , mesazhi shtypjen e një dokumenti - me të vërtetë, një kompjuter është vetëm duke kërcyer nga shtypi për IMing për emailing, mbrapa dhe mbrapa dhe mbrapa me radhë dhe në mënyrë të shpejtë që ne njerëzit ngadalshëm zgjuar thjesht nuk e kuptojnë se kjo është në fakt drejtimin e këtyre programeve pak në një kohë. Tani, kjo pak e një gënjeshtër e bardhë këto ditë, sepse, në ditët e sotme, shumë kompjuterë tona janë ato që janë quajtur multi-core, kështu që ju të ketë një CPU cores të shumta, por, që është lloj i si pasur CPUs shumëfishtë. Dhe kështu nganjëherë, kompjuterat mund të vërtetë të bëjë gjëra të shumta në një kohë, por në përgjithësi brenda një programi, programet mbështetet mbi këto gjëra quajtur temat. Pra, një fije është lloj i si një program miniaturë që mund të ekzistojnë së bashku me një tjetër program miniaturë dhe mund të kandidojë paralelisht, ose të paktën mund të kandidojë nën iluzionin se ata janë drejtimin në të njëjtën kohë. Pra Scratch mbështet këto gjëra quajtur temat. Ju mund të keni Scripts shumta ekzekutimin në një herë, ashtu si ne bëri me luani deti, dhe kjo na lejon që në fakt pastaj të ketë ndërveprime midis këtyre sprites. Më lejoni këtu të shkojnë përpara dhe tërheq lart, le të themi, temat, dhe luajë këtë si më poshtë. Ne kemi dy sprites, secili prej të cilëve ne do të shohim ka vetëm një dorëshkrim. Dhe vëreni nuk duket të jetë disa inteligjencës në cat në këtë për shkak se ai është duke iu afruar - [Rënkime] DAVID Malan: - dhe afër zog pak. Pra, si është operativ zog? E pra, le të marrin një vështrim në të shpendëve të parë. Script zog thënë kur flamuri gjelbër është klikuar, shkoni tek x barabartë negative 115 dhe y barabartë 150. Kështu që unë thjesht motive nga një vend të rastit, ku kam kërkuar zog për të filluar, dhe unë vetëm plopped atë atje by default. Pastaj Gjithmone nëse jo mace prekur, kështu që kjo është një tjetër lloj konstrukti looping, por të njëjtën ide, e bëjnë këtë përsëri dhe përsëri dhe përsëri. Aq kohë sa ju nuk jeni prekur cat, lëvizin tre hapa, dhe në qoftë se ju jeni në buzë, fryrje, ku kjo është lloj i një reflektim në kuptimin e bilardos. Pra, kjo është se si zog po lëviz rreth llojit të dukje rastësisht, por kjo është vetëm për shkak se ajo është kërcim jashtë muret në këtë rast. Tani cat, ndërkohë, është lloj i mashtrimit. Cat, kur flamuri gjelbër është klikuar, po, fillon në disa vend, një vend të rastit - të paktën në pjesë, si për të marr bllok të rastit gjelbër atje - dhe pastaj përgjithmonë nëse prekja zogun, luajnë tingujt lion, dhe pastaj ndalet script. Kështu që kur thashë përfundojë, apo dalje para, ka një mister pjesë në Scratch që thjesht do të vrasin në programin që pikë sepse kjo është lloj i bërë logjikisht. Por ndryshe, këtu, njoftim se çfarë do të ndodhë. Pika në drejtim të shpendëve dhe për të shkuar një hap. Pra kjo pikë ndaj shpendëve është lloj i një avantazh cat ka në atë që është e ngrohtë në të shpendëve në lëvizje, dhe ne mund të tani e bëjnë këtë program edhe më interesante. Në vend që të lëvizin një hap në një kohë për ciklin e CPU, per grevë taksë e zile, kështu që të flasin, le të shkoj përpara dhe të veprim, le të themi, pesë hapa në një kohë si mace. Kliko drejtuar, dhe tani ai me të vërtetë e gjen atë shpejt. Nëse ne të dyfishtë këtë më tej në 10 hapa, ai lloj i shkon drejtë për të. Tani, ne mund të japin zog, ndoshta, pak e një avantazh. Le të shkojnë në të shpendëve dhe të thotë në vend të lëvizur tre hapa, le të shkojë atë 30 hapa. Por ai ende u kap në fund. Kështu që këtu, ne kemi dy temat. Është burgosur në Scratch me dy scripts dhe dy sprites, por ideja në gjuhë të tjera është se ju mund të shkruar, në thelb, shumë programe si kjo dhe të ketë ata të drejtuar të vërtetë, ose imaginarily, në mënyrë paralele. Tani, ka edhe ky koncept në programimin e njohur si ngjarjet, dhe kjo është diçka që ne nuk do të shohim në C, Gjuha njohur si C. Ne do të shohim atë drejt përfundimit të semestrit në programimin e web, kur ne kemi prezantuar dhe JavaScript Nocioni i web faqet e ndërtimit që janë dinamike dhe të ndërveprojnë me përdoruesit. Pra, në këtë rast, ne kemi një shembull shumë të thjeshtë e dy sprites, djalë dhe vajzë, secili prej të cilëve kanë tyre përkatëse temat, por disi këto dy janë ndër-komunikimit nga rruga diçka e quajtur ngjarje. Pra më lejoni të shkoj përpara këtu dhe zoom në shkrimin e djalit, e cila duket si kjo. Kur flamuri gjelbër klikuar, përgjithmonë të bëjë në vijim. Nëse Hapësirë ​​kyç, ose Space Bar, është presion, thonë Marco për dy sekonda, që është thjesht estetike në ekran, një flluskë pak fjalim, por pastaj transmetuar. Pra, transmetimi është një tjetër pjesë Scratch që është përfaqësues i një klase të funksionalitetit në programimin e që lejon programe të ndryshme, temat e ndryshme, të ndër-komunikojnë, në një farë mënyre dërguar Mesazhet, e në një tjetër. Kalimi një copë letër në klasë është lloj i teknologjisë ulët ekuivalente. Pra, transmetuar ngjarjen. Unë mund të dërgoni këtë mesazh, dhe ngjarja fjala është tërësisht arbitrar. Scratch ndonjëherë ka këto ngritje rënie, kështu që unë vetëm erdhi deri me një fjalë të rastit si rast sepse tani, çfarë bën djali kur unë shtypni kyç është ai transmeton këtë ngjarje. Dhe në qoftë se unë shoh tani në shkrimin e vajzës, script saj është super e thjeshtë sepse të gjitha ajo ka nevojë për të bërë nuk është vepruar kur flamuri gjelbër është klikuar. Ajo është projektuar për veprim, kur ajo merr quajtur ato, të japin kuotën, "Ngjarje", dhe në atë moment, ajo është dëgjuar, pra për ashtuquajtura ngjarje përsëri dhe përsëri. Sa më shpejt që ajo merr atë ngjarje, ajo do të bërtas Polo për dy sekonda. Dhe kështu që ju ndoshta mund të konkludoj nga kjo saktësisht se çfarë Rezultati i ardhshëm do të jetë. Më lejoni të klikoni flamurin e gjelbër. Asgjë nuk ndodh sepse kam nevojë për të bërë çfarë? Audienca: Space Bar. DAVID Malan: Space Bar. Boy thotë Marco, vajza thotë se Polo. Por kjo nuk është e vështirë koduar në vetvete. Kjo është ndër-komunikimit mes Scripts, kështu që tani që ne kanë aftësinë për të bërë programe edhe më komplekse, ku këto dy janë disi të ndër-komunikimit. Pra, në atë që mund të marrë drejtime kjo? E pra, në grup problemit 0, me të vërtetë, qëllimi është që të have fun me Scratch. Për edicionin e hacker, ju do të në vend të ketë argëtim me një më shumë Versioni i sofistikuar i quajtur Scratch BYOB, Build Blocks tuaj, por ideja është e njëjtë. Ju do të jenë në gjendje - Po, se ishte i qëllimshëm. Ajo erdhi nga Berkeley. BYOB është edicioni hacker versionin e këtë, por të dyja , demografike, Standard Edition dhe edicionin Hacker njësoj Qëllimi në dorë për javën e ardhshme është me të vërtetë vetëm për të zhyten në thellë, të marrë në duart tuaja të pista me programimin, dhe të bëjnë diçka interesante, të bëjë diçka interaktive, të bëjë diçka artistike, e bëjnë fun diçka për të vërtetë tregojnë, në mënyrë që deri në fund të javës, ju do të keni një projekt, jo vetëm për të parë tuaj pset CS50, por ju do të keni një diçka të vogël që ju mund të nxjerr në Annenberg për miqtë apo edhe familjes nga ngarkimi atë në faqen e internetit të MIT-së. Dhe kështu si unë tha të mërkurën, ne presim që 90% të klasës, në përgjithësi, për të bërë botimet standarde. Të kuptojë se ka edhe kjo dalje për ato prej jush që përndryshe mund të gjeni veten një pak i mërzitur me bazat dhe me të vërtetë duan të zhyten në dhe zeje një vizion që ju tashmë keni me sfond paraprak në këtë shumë miqësore mjedisit. Pra më lejoni të tërhequr deri një shembull tjetër se njëri nga ish tonë Studentët ketu dhe tregoni e bëri një diçka të vogël përmes këngës. Kjo në mënyrë të ngjashme, si kjo luan, mendoni se si ju shkoni në lidhje me zbatimin e këtij programi duke përdorur pikërisht këto njëjta blloqe ndërtimi, pak e randomness, dhe një pseudo pak e këngë të njohur. Nëse ne mund të rritur volumin e vetëm pak? [MUSIC - "Po bie shi njerëzve" vajzave MOTI] DAVID Malan: Kjo është ajo për CS50. Ne do të shohim ju në hënën. [Duartrokitje]