[MUSIC Playing] -Alright! -Kjo është CS50. -Kjo është CS50. -Kjo është CS50. [MUSIC - Iggy AZALEA, "dashuroj"] Memorie -My preferuar nga CS50 ishte kur unë shkova në puzzle Day. -Probably Vetëm koha shpenzuar duke punuar në grupe me probleme me miqtë e mi dhe njerëzit që pllajë përfundimisht të bëhet blockmates mia. -My Memorie më të mirë nga CS50 është Hackathon. -The CS50 Hackathon. -Hackathon. -Hackathon. -Hackathon. , Partia Hackathon -Rob Bowden. Vetëm çdo gjë rreth tij. [MUSIC - Iggy AZALEA, "dashuroj"] Memorie -My preferuar është kur unë isha në fazë dhe kam luajtur rolin prestigjioz e një node [? në Linked?] [? Lista. ?] -Kur Ne të gjithë marrë hapësirë ​​të lirë Dropbox dhe Davidi ishte si, shikoni në vendet tuaja. Dhe ajo ishte si, hapësirë ​​për të gjithë! [MUSIC - Iggy AZALEA, "dashuroj"] Këshilla -My për çdo Studenti në hyrje do të të jetë me të vërtetë të punuar në P-vendos me miqtë. Orë -Office është shumë miku juaj. -Bëni Më e përvojën tuaj dhe do të takohet sa më shumë njerëz si ju mund. -Don't Kini frikë të kërkoni ndihmë. Çakëll -start p-grupe në fillim të javës. -Unë Mendoj se gjëja më e madhe është që të të përfitojnë nga të gjitha burimet që CS50 ka. -Shko Të orarit të punës në fillim të javës. -Definitely Shikojnë pantallona të shkurtra. -Don't Shtyj për më vonë për tu p-grupe. Sigurohuni që ju të gjeni një grup të madh e njerëzve për të punuar në P-grupe me. Ju mund të keni shumë argëtim dhe të merrni punën e bërë së bashku. -Don't Kini frikë për të shtyjë veten. Shkoni për edicionin e hacker ndonjëherë. Gjëra -Write në letër para ju ndonjëherë prek kompjuterin tuaj. -CS50 Është me të vërtetë e madhe në ofruar mënyra për të marrë ndihmë. -My Një këshillë është gjumi. Ka thënë se dikush? Gjumi, me siguri. Është e lehtë të mos e bëjë, por ju keni marrë për të bërë atë, unë mendoj. -Unë Do të thotë me të vërtetë të jenë të përgatitur mendërisht për shkak se ju jeni do të duan atë. [MUSIC - Iggy AZALEA, "dashuroj"] -Kjo është CS50. -Kjo është CS50. -Kjo është CS50. [MUSIC - Iggy AZALEA, "dashuroj"] -Kjo është CS50. [Duartrokitje] DAVID J. Malan: Pra, kjo është CS50 dhe ky është fundi i Javës 0. Dhe kjo ishte vetëm disa e stafit CS50-së që presin jo vetëm në seksione dhe orarit të punës, por, Gjithashtu, këtë fundjavë që vjen në CS50 Puzzle ditën. E cila, përsëri, nuk është gjitha për programimin. Në të vërtetë, është e pritshme që ju nuk do të ketë asgjë për të programit, por më tepër të zgjidhur problemet duke përdorur lajthis dhe miqtë së bashku me ju. Ne do të pasohen nga disa nga miqtë tanë në Facebook-- në qoftë se ju të regjistroheni here-- që për disa viteve të fundit, kanë në të vërtetë qenë i shkruar këto sfida me ne. Dhe kështu, ata do të jenë ato në fund të fundit running Dita Puzzle. Dhe kështu, ju do të sfidohet me saktësisht llojet e gjërave dhe problemet që folks në Facebook pëlqen të mendojnë rreth. Kështu që është nesër. Regjistrohu në cs50.harvard.edu/register. Tani një fjalë në disa i stafit në veçanti. Kjo këtu është Ansel Duff, i cili është në të vërtetë një nga bashkë-autorët e këtyre binar llamba që kemi parë të mërkurën, përveç tyre Dan Bradley CS50-së. Ansel Duff ishte gjithashtu një ish- fillestar advisee i imi 3 vjet më parë dhe në fakt ai ndërtoi edhe këtë podiumin. Ai ka shkuar për të bërë shkencat inxhinierike dhe më shumë. Tani, foto e tij këtu është në të vërtetë Ansel 3 vjet më parë në CS50 Hackathon kur ai huazuar një nga tonë balona, ​​mbërthyer atë në laptopë e tij, dhe, për të ardhshëm 12 disa i rastësishëm orë, e përqendruar në projektin e tij të fundit, duke marrë prishet vetëm për të hapur çanta e karamele në Hackathon. Por ai vazhdoi të më shumë kohët e fundit për të kalojnë verën e kaluar me ne, që nga CS50 për stafin e saj, dhe tani studentët këtë semestër, ka vet printer e saj 3D. Dhe me pak fjalë një 3D printera është një pajisje që duket mjaft si kjo. Ju plotësoni atë me një rrotë plastike që është shkrirë poshtë nga pajisja dhe të ndërtoni gjëra fjalë për fjalë nga asgjëja. Shumë si një printer inkjet, ju filloni pështypje nga pak pika të plastike që formojnë bashkë me të formuar objekte të tëra. Dhe kështu Ansel për shembull, më parë këtë verë, ka një 5 iPhone dhe vendosi ai me të vërtetë donte për të mbështetur atë në tryezën e tij. Por ai nuk ka dashur të të dalë dhe për të blerë diçka nga dyqani Apple apo si, kështu që ai u ul dhe filloi të tërhequr diçka. Ai mori një matje të disa si për të se si të trasha dhe sa e gjerë iPhone tij ishte, ai e tërhoqi këtë imazh këtu, ai vendosi që ai donte që të ketë një anim 75 shkallë siç ishte ndezur në atë në tryezën e tij atje. Ai pastaj u kthye këtë, duke përdorur software, në një model 3D CAD që dukej pak diçka si kjo. Dhe pastaj ai vazhdoi, në fund të fundit, që në fakt krijojnë atë. Pra, në fakt, në qoftë se ndonjë nga ju këtu, ndoshta në një rresht që unë mund të hedhin të, të ketë an-- nuk kemi folks me iPhone 5, dhe këtu ne kemi edhe dy të tjerë. Tani, për të mos mbetur pas, CS50 e vet Cheng Gong të përcaktuar këtë verë për të ndërtuar mjaft disa gjëra dhe, në fakt, për arsye që janë ende të paqartë, ka qenë ngadalë shtypjen e një ushtri të elefantëve me artikuluar armë dhe mbathje. Një çift nga të cilat janë në të vërtetë këtu nëse dikush tani do like-- një elefant. Të gjithë të drejtë,. por ajo që Cheng gjithashtu bëri për ne është ai i vendosur shumë mirësi e një aparat fotografik sepse atë elefant, besoni apo jo, merr disa dy dhe një orë e gjysmë për të shkruar. Edhe qëndrim iPhone mori një orë e gjysmë për të shtypur. Dhe çfarë Cheng shkuan përpara dhe e bëri u krijua një aparat të mirë në frontin i këtij printer 3D, filmuar për një orë e gjysmë si dizajn Ansel e shtypura. Ne veshi disa sexy muzikë për atë në mënyrë për të ju jap këtë për të kërkuar se si punon shtypjen 3D. Dhe, edhe pse kjo është në të vërtetë në plastike, të kuptojë se në qoftë se kjo është një fushë me interes për ju në shkollë, ka folks, në mesin e ata Jennifer Lewis këtu në Shkollën e Inxhinieri, që në të vërtetë janë duke punuar në shtypjen 3D objekte e plastike. Por edhe, gjithnjë e më shumë, materiale biologjike për të zgjidhur Problemet fiziologjike për njerëzit. Por këtu është pak diçka nga CS50. [Zë të lartë MEKANIK zhurmave] DAVID J. Malan: Kjo nuk do të tingëllojë diçka të tillë në realitet, por është shumë pije freskuese për të parë atë në atë shpejtësi, dhe me atë zë. Tani, të mërkurën, se si nuk e kemi parë të merrni këtu? Ne kemi filluar duke folur për kompjuterin shkenca dhe pyetëm se çfarë ishte. Dhe kjo është në lidhje me një numër të gjërave, dhe ka kaq shumë drejtime të ndryshme në të cilën ju mund të shkojnë pas një kurs si CS50. Në fakt, në qoftë se ju kap një e këtyre udhëzon jozyrtare për CS jashtë, broshurë që ne kemi dhënë, nëse ju jeni të menduar të marrë vetëm CS50, ose ndoshta duke bërë një e mesme, apo ndoshta edhe të përqëndruar në SHC, e shfletoj nëpër se. Dhe ju do të shihni një diagram drejt fund se ju tregon drejtimet të ndryshme në SHC që ju mund të shkoni jashtë në. Por për sot, ne do të fokusohemi, përsëri, në me të vërtetë një nga pikëpamjet themelore, ndoshta, ku ju keni inputeve të problemeve, ju keni rezultatet nga probleme, dhe ju keni algoritme me të cilën për të krijuar këto rezultatet nga ato inpute. Dhe një shembull i tillë, ishte i Sigurisht, ky libër telefon këtu. Dhe kemi qenë si një shembull për të shkuar nëpërmjet një algoritmi që ishte e saktë. Dhe pastaj një tjetër ishte saktë, por pak më të shpejtë. Dhe pastaj një tjetër që ishte pak më shumë dramatike, por në thelb më të shpejtë. E drejta, ky telefon libër ne pohoi kishte rreth 1,000 faqe. Dhe Sa herë kam të heq librin e telefonit në gjysmë për të gjetur dikë si Mike Smith, maksimalisht, në 1000 librin e faqe? Pra, 10 të japë ose të marrë. Dhe kështu një herë unë grisi këtë gjë në gjysma, ose thjesht, më shumë pjekuri, ndarë në gjysmë, kjo është vetëm 10 faqe nga 1,000. Dhe nëse ju nxjerrim, pak jorealiste për një libër telefoni, por në qoftë se ky libër telefon kishte disa 4 miliardë faqe në të, në mënyrë krejtësisht rëndë fizikisht, sa herë ju ndani një 4 miliardë faqe librin e telefonit në gjysmë? Pra, është në të vërtetë 32, të japë ose të marrë. Dhe kështu 32 herë vetëm, jashtë nga 4 miliardë faqe, mund ju të gjeni dikë si Mike Smith. Dhe kjo është e efikasitetit. Kjo është një algoritëm i mirë, guxoj të them. Por pastaj kemi lëvizur nga se në përpjekje për të formalizuar atë. Dhe unë i propozuar këtë kod pseudokod. Kodi pseudokod nuk është asgjë zyrtare. Kjo nuk është diçka që ju të mësuar përmendësh. Është vetëm diçka që ju shprehin mjaft intuitive duke përdorur anglisht, apo ndonjë gjuhë me të vërtetë, se përcjell idetë tuaja shkurtimisht. Por ajo që është kyç për Kodi pseudokod është që ju të përpiqen të parashikojnë të gjitha Rastet e mundshme që mund të ndodhin. Dhe me të vërtetë, në këtë pseudokod Kodi, ka pasur me të vërtetë tre raste çdo herë që unë të ndarë librin e telefonit. Mike mund të jetë në të majtë. Mike mund të jetë në të djathtë. Ose ai mund të jetë e drejtë në faqen e unë jam më. Ose një rast i katërt qoshe, kështu që të flasin. Një skenar i keq mund të jetë një which-- çfarë po ndodh? Mike nuk është vetëm në librin e telefonit në të gjitha. Dhe kur programet crash-- kur Mac dhe PC software që ju djema të drejtuar në kompjuterat tuaj ndonjëherë varet ose shpërblej papritur, që në përgjithësi do të thotë se disa programues, disa njeri si ju së shpejti, dehur vetëm deri dhe të bëhet një gabim. Ndoshta nuk e mendoja se ndoshta ka ka Mike Smith në librin e telefonit. Dhe në qoftë se ju në fakt nuk shkruaj Kodi për të trajtuar situatat si kjo, përgjithësisht të paparashikueshme gjëra mund të ndodhin. Kompjuterin tuaj mund të ngrijë. Ajo mund të reboot. Programi mund të lë. Dhe kështu të gjitha këto budallallëqet që ju mund të kanë hasur në aktuale tuaj jeta vetëm duke përdorur kompjuterët, gjithnjë do të jetë vetëm shpjegohet larg nga kjo intuitë dhe kjo të kuptuarit e asaj që është e në të vërtetë ndodh nën kapuç. Tani le të përpiqemi për të marrë një sy në një problem më të përgjithshëm. Në vend se të marrë pjesëmarrja në një vend si kjo, e cila do të jetë mjaft i ngadalshëm për të bërë një, dy, tre, katër. Apo ndoshta dy, katër, gjashtë, tetë. Le të përqëndrohet, në vend të kësaj, në se si ne mund të formalizuar algorithm e procesit nga të cilat ne mund të marrë frekuentimin. Dhe gjatë rrugës, le të fillojë për të aplikuar disa nomenklaturën se ne do të përdorim sot, kur ne fakt fillojë programimit në një gjuhë. Kështu që unë ju jap tani, një video minutë katër se ne kemi vënë së bashku me miqtë tanë nga TED, organizatës. Ku kemi furnizuar një skenar dhe ata sollën animators e tyre të mbajnë, dhe në fakt krijoi një 2D gjallëri e asaj që një algoritëm është. Nëse ne mund të zbehtë dritat. [MUSIC Playing] Transmetuesi: Çfarë është një algoritmi? Në shkenca kompjuterike, një algoritmi është një grup e udhëzimeve zgjidhjen disa problemi hap pas hapi. Në mënyrë tipike, algoritme janë ekzekutuar nga kompjuterat, por ne njerëzit kanë algoritme si. Për shembull, si do ju shkoni rreth duke numëruar numri i njerëzve në një dhomë? E pra, në qoftë se ju jeni si unë, ju do të ndoshta pikë në secilin person në një kohë dhe numërimin deri nga zero. Një, dy, tre, katër, e kështu me radhë. E pra, kjo është një algoritmi. Në fakt, le të përpiqemi për të shprehur atë një pak më shumë formalisht në kodin pseudokod. Anglisht-si sintaksë që ngjan një gjuhë programimi. Le n barabartë 0. Për çdo person në dhomë, vendosur n barabartë me n plus 1. Si për të interpretuar pseudokod? E pra një linjë deklaron, si të thuash, një ndryshore quajtur n dhe initializes vlera e saj në 0 këtë vetëm do të thotë se në fillimi i algorithm tonë, gjë me të cilën ne jemi të numërimi ka vlerën 0. Në fund të fundit, para se të fillojmë duke numëruar ne nuk kemi numëruar ende asgjë. Thirrja këtë variabël n është vetëm një konventë. Unë mund të ketë e quajti atë më asgjë. Tani vijë dy demarks fillimi i një lak, sekuenca e hapave që do të përsëritur disa disa herë. Pra, në shembullin tonë, hapi ne jemi marrja është numëruar njerëzve në dhomë. Nën linjë dy është linjë tre cila përshkruan saktësisht se si ne do të shkojnë për numërim. Gjurmë nënkupton që kjo është linjë e tre që do të përsëriten. Pra, me kodin pseudokod është duke thënë është se pas fillimit në 0 për çdo person në dhomë ne do të rritet n nga 1 Tani është kjo algorithm e saktë? E pra le të zhurmë mbi të pak. E bën këtë punë, nëse ka dy njerëz në dhomë? Le të shohim. Në vijë një ne nisja n në 0. Për secilin nga këto dy njerëz, ne pastaj rrisim n nga 1. Pra, në udhëtimin e parë përmes lak, ne rinovuar n nga 0 deri 1. Në udhëtimin e dytë përmes se njëjtë lak, ne rinovuar n nga 1 ne 2. Dhe kështu, me këtë algorithm-së Fundi, n eshte 2, i cili me të vërtetë përputhet me numrin e njerëzve në dhomë. Deri më tani, në mënyrë të mirë. Si për një rast qoshe pse? Supozoni se ka 0 njerëz në room-- përveç meje, i cili është duke bërë numërimin. Në vijë një, ne përsëri nisja n në 0. Këtë herë edhe pse, linjë tre nuk zbaton në të gjitha pasi nuk është një person në dhomë. Dhe kështu n mbetet 0, e cila me të vërtetë ndeshjet numri i njerëzve në dhomë. Shumë e thjeshtë, apo jo? Por numërimi njerëz në një kohë është shumë i paefektshëm, gjithashtu, nuk ka? S'ka dyshim se ne mund të bëjmë më mirë. Pse nuk llogarisin dy njerëz në një kohë, numërimi vend të një, dy, tre, kater, pese, gjashte, shtate, tetë, dhe kështu me radhë. Pse nuk llogarisin dy, katër, gjashtë, tetë, dhe kështu me radhë? Kjo edhe tingëllon më të shpejtë. Dhe kjo me siguri është. Le të shprehim këtë optimization në kodin pseudokod. Le n barabartë 0. Për çdo çift të njerëzve në dhomë, të vendosur n barabartë me n plus 2. Pretty ndryshim i thjeshtë, apo jo? Në vend që të llogarisë njërin në një kohë, ne vend numërimin atyre dy në një kohë. Kjo algorithm-së, në këtë mënyrë, dy herë më shpejtë të jetë e fundit. Por a është kjo e saktë? Le të shohim. E bën këtë punë, nëse ka dy njerëz në dhomë? Në vijë një, ne nisja n në 0. Për këtë një palë e njerëzve, ne pastaj rrisim n me 2. Dhe kështu me këtë algoritëm të Fundi n eshte 2, i cili me të vërtetë përputhet me numrin e njerëzve në dhomë. Supozoni tjetër që ka zero njerëz në dhomë. Në vijë një ne nisja n në 0. Si më parë, linja e tre nuk e ekzekutuar të gjitha pasi që nuk ka ndonjë palë njerëz në dhomë, dhe kështu n mbetet 0. Të cilat me të vërtetë përputhet Numri i njerëzve në dhomë. Por çka nëse ka tre persona në dhomë? Si e bën këtë fare algoritmi? Le të shohim, në përputhje një, ne nisja n në 0. Për një palë të këtyre njerëzve, ne pastaj rrisim n me 2. Por atëherë çfarë? Nuk është një tjetër plotë palë e njerëzve në dhomë, kështu që dy linja nuk zbatohet më. Dhe kështu deri në fund të këtij Algoritmi-së, n është ende 2 e cila nuk është e saktë. Në të vërtetë kjo algorithm e tha të jetë buggy, sepse ajo ka një gabim. Dëmshpërblim Le me disa Kodi i ri pseudokod. Le n barabartë 0. Për çdo çift të njerëzve në dhomë, të vendosur N barabartë me n plus 2. Nëse një person mbetet unpaired, vendosur N barabartë me n plus 1. Për të zgjidhur këtë problem të veçantë, ne kemi futur në përputhje katër një kusht, njohur ndryshe si një degë, se vetëm ekzekuton nëse ka një person që nuk mund të palë me një tjetër. Dhe kështu që tani, nëse ka një, ose tre, apo ndonjë numër i rastësishëm i njerëzve në dhomë, kjo algorithm tani do numërimin e tyre. A mund të bëjmë edhe më mirë? E pra, ne do të mund të llogarisë në threes, ose katër këmbët, apo edhe sosh dhe dhjetëra, por përtej kësaj, ajo do të marrë pak e vështirë për pikë. Në fund të ditës, qoftë ekzekutuar nga kompjuterat apo njerëzit, algoritme janë vetëm një grup i udhëzime me të cilat për të zgjidhur problemet. Këto ishin vetëm tre. Çfarë problemi do të ju zgjidhur me një algoritmi? DAVID J. Malan: Pra qëllimisht, një program shumë të thjeshtë, një algoritmi shumë e thjeshtë, për të arritur diçka shumë e thjeshtë, duke numëruar Numri i njerëzve në dhomë. Por le të ngas përveç disa nga përfaqësuesit karakteristika këtu që janë në të vërtetë do të jetë i dobishëm edhe kur zbatimin më të kompleks të softuerit. Kështu për shembull, në këtë linjë të parë, ne kemi atë që ne e quajmë të ndryshueshme, dhe nga algjebër, ju jeni në përgjithësi të njohur duke përdorur x dhe y dhe z ndonjëherë, dhe kështu me radhë. Por në programimin, variabla jane ende, në fund të ditës, shumë të ngjashme me atë. Por kjo është ndoshta më e thjeshtë për të menduar e një variable si vetëm një enë. Dhe, në fakt, është disa numri i bit zbatuar disi në diskun tuaj të vështirë ose në kujtesën e kompjuterit tuaj, por më shumë se në të ardhmen. Është vetëm një enë. Dhe në qoftë se ju thonë diçka si le n barabartë 0, edhe kjo është si duke e quajtur këtë xhami tas këtu n, vetëm një emër arbitrare, dhe vënë asgjë në të fillimisht. Pra, vlera e këtij tas tani është zero. Dhe sigurisht, nëse ju e perceptojnë në një linjë të mëvonshëm, që në fakt të rrisim një linjë të Kodi, si në këtë linjë e tretë këtu, me 1, kjo është si duke thënë se ajo që është Vlera aktuale e n, kjo është 0, plus 1, vënë diçka si një ping pong topin në këtu. Tani vlera e kësaj variabël është mjaft e thjeshtë 1. Dhe ju mund të nxjerrim shumë shpejt, por tani kjo është 2, tani është 3, dhe kështu me radhë. Pra, kjo është e gjitha një variabël është. Kjo është një pjesë e magazinimit të në fakt të ruajtur disa të dhëna. Tani për tani kjo është një top ping pong. Nuk është një numër. Por kjo mund të jetë fjalë në një fjalor, si spell checker Unë aludoi për të mërkurën për një nga grupe problematike të vitit të kaluar. Tani një tjetër ide kyçe, që në mënyrë të ngjashme është shumë intuitiv unë do të pretendojnë, eshte ajo e nje lak. Dhe lak në procesin i numëruar të gjithë është, natyrisht, duke bërë të njëjtën gjë gjë përsëri dhe again-- ose një në një kohë ose dy në një kohë. Dhe ju mund të shprehë këtë në anglisht, ose Kodi pseudokod, në çdo disa mënyra, por duke përdorur këtë parafjalën "për" është një mënyrë shumë e zakonshme për të bërë që. Për çdo person në dhomë, e bëjnë këtë. Përsëri dhe përsëri. Dhe fakti se kjo është prerë, linjë tre, thjesht do të thotë se çfarë ju jeni duke menduar për të bërë është një temë që është prerë nën kufirin e dy vetë. Vetëm një konventë të njeriut, por një e përbashkët si ne do të shohim më të larta aktuale gjuhë programimi niveli. Tani pak më interesante është kur ju të merrni në një rast qoshe. Për shembull, një qoshe Rasti ishte kur atje ishin tre persona, ose pesë, ose shtatë, apo ndonjë numër i rastësishëm i njerëzve në dhomë, sepse duke bërë që dy nga dy frenat përfundimisht për shkak juaj do të humbasë dikë, ose në shumë fillimi ose fundi shumë në varësi se si ju bëni atë. Dhe kështu, tani, unë kam këtë degë, ose kusht, nëse një person mbetet, pastaj të shkojnë përpara dhe për të trajtuar se një person i vetmuar i cili nuk e ka marrë çiftëzohet me dikë tjetër. Pra, kjo është ajo që ne do të thërrasë a kusht, ose nje dege. Kodi Tani pseudokod në përgjithësi mund të jetë shkruar për të zgjidhur ndonjë numër të problemeve. Dhe ajo që mendova që ne do bëjmë këtu është të marrë një moment për të ftuar do të themi CS50-së vetë Rob Bowden në skenë për të bashkuar nga dy vullnetarë, të cilët nuk kanë asnjë ide se çfarë i pret. Një dorë zbriti sa më shpejt që kam thënë se. Si për ju më të përfundojë këtu, eja lart. Dhe si për nga më larg larg, si në lidhje me mënyrën në shpinë. Rresht përsëri, eja me duart lart. Mirë, dhe si e ke emrin? ANITA: Anita. DAVID J. Malan: Anita. Mirë, nice to meet you. Më lejoni të prezantoj me Rob Bowden. Kjo është Anita. Dhe çfarë është emri juaj? Kiersten: Kiersten DAVID J. Malan: Kiersten. Kiersten, eja dhe takohen Rob Bowden dhe Anit. Gëzohem që u njohëm. Kiersten: Gëzohem që u njohëm. DAVID J. Malan: Mirë, Rob. Rob Bowden: Gëzohem që u njohëm. DAVID J. Malan: Anita. Kiersten: Hi Anita. DAVID J. Malan: Dhe juaj disa qindra shokët e klasës. Pra, tani më lejoni të shkoj përpara dhe të tërheq deri vetëm një program të thjeshtë këtu në Mac OS që do të le të më në fakt shënoj disa shënime poshtë. Dhe në qoftë se ju djema doni të çdo të marrë një pozicion në një nga ato shkolla atje, më lejoni të shkoj përpara dhe fillon një listë i kodit pseudokod, nëse ju do. Dhe ajo që unë dua të bëj këtu, në fund të fundit është lloji për ju disa udhëzime se tonë anëtarët e publikut janë në të vërtetë do të lexojnë për ne. Më lejoni të shkojnë përpara dhe vetëm ndryshojë këtë në një listë të numëruar që të shkojë me atë që ishin duke bërë deri atje. Dhe ajo që unë jam duke shkuar për të bërë me ndihmën tuaj, është të shkruani një program në pseudokod, me të cilin këta njerëz janë duke shkuar për të zbatuar një badiava gjalpë dhe pelte sanduiç. Pra, kjo është ndoshta për këtë qëllim të tregojnë diçka disa nga ju mund të keni parë në internet për vetëm një moment të shkurtër bezdisshëm. [MUSIC BUCKEWHEAT DJEM, "gjalpë badiava  Pelte TIME "] DAVID J. Malan: OK. Kjo është e mjaftueshme për këtë. Kështu që këtu ndërkohë, unë kam një palë e Google gota të cilat ne do të vënë në vetë Rob Bowden CS50-së për të parë botën përmes syve të tij. Dhe ne do të bëjmë më të mirën në postin prodhimit të vërtetë endje pamjet e asaj Rob është duke parë tani, në këtë leksion aktuale Video me dy tonë vullnetarë pranë tij. Pra, ajo që unë jam duke shkuar për të bërë është, unë do të jetë gaktilografist. Ne kemi qëllimin këtu e në të vërtetë shkrim një program me të cilin për të bërë, në fund të fundit, një gjalpë badiava dhe pelte sanduiç, por këta të tre do të sillen sikur ata janë kompjuterat. Dhe kompjutera, në fund të ditës, në të vërtetë janë pajisje goxha memec. Ata janë super të shpejtë, por ata vetëm mund të bëj, fjalë për fjalë, çfarë u thuhet. Ju nuk mund të them vetëm të bëjë një badiava gjalpë dhe pelte sanduiç. Ju duhet të programit të tyre për të bërë këtë. Ju duhet të tregoni atyre me saktësi se çfarë të bëjë, më pak gjërat shkojnë tmerrshëm dhe, me shpresë, amusingly shtrembër. Pra, me që u tha, ne kemi nevojë një thirrje-out nga publiku për çfarë duhet të ndërhyjë një jetë, në qoftë se qëllimi këtu është për të bërë një badiava gjalpë dhe pelte sanduiç. Po? Audienca: [padëgjueshme] qese e bukës. DAVID J. Malan: Hap çantën e bukës. Pra, nëse të tre garuesit do të doja të vazhdoj të bëj që fjalë për fjalë. Hapur qese të bukës. [Audienca qeshur] DAVID J. Malan: Pra, le të punojmë në këtë. Të gjithë të drejtë. Pra hap dy, how-- le të marrin këtë më tej. Po, në frontin. Audienca: [padëgjueshme] bukë. DAVID J. Malan: Çfarë është ajo? Audienca: Hiq bukë. DAVID J. Malan: Hiq bukë. Në mënyrë të ngjashme ngjeshur. Ju faleminderit. [Duartrokitje] DAVID J. Malan: Kjo është ajo? OK, kështu që hap dy do të jetë hequr bukën. Mirë, dikush duan të na shkruani një dënim më të gjatë? Dikush tjetër? Një pak më shumë [e padëgjueshme]. Jo, asgjë tani. Po? Audienca: Vendi dy feta pranë njëri-tjetrit. DAVID J. Malan: Vendi dy feta pranë njëri-tjetrit. [Audienca qeshur] DAVID J. Malan: Vendi dy feta pranë njëri-tjetrit. Hapi katër. Po? Audienca: Merrni tuaj dorë dhe të vendosur atë lehtë në majë të kapakut gjalpi badiava. [Audienca qeshur] Audienca: [padëgjueshme] ngjitur me gjalpë badiava. DAVID J. Malan: Çfarë? Thuaj se përsëri. Audienca: Heq kapakun kapakun dhe vënë ajo butësisht ngjitur me gjalpë badiava. DAVID J. Malan: Vendoseni butësisht ngjitur me gjalpë badiava. OK, progresi. Hapi pesë. Excellent. Po? Pick up thikë. DAVID J. Malan: Pick up thikë. OK, hap gjashtë. Po? Audienca: Hold thikë nga dorezë. DAVID J. Malan: Hold thikë nga dorezë. Hold thikë nga dorezë. Hapi shtatë. Po? Audienca: [padëgjueshme] thikë në badiava gjalpë dhe sa më pak nga [padëgjueshme]. DAVID J. Malan: Vendos thikë in-- I dëgjuar "thikë vënë në gjalpë badiava dhe të marrë sa më pak si të jetë e mundur. " Nga rruga, hiqni letër e parë. Në rregull, hap nëntë. Hapi nëntë. Hapi nëntë. Ne nuk e kemi bërë në të vërtetë një sanduiç ende. Po? Audienca: Duke përdorur thikë në gjalpë badiava, të aplikoni gjalpë badiava në bukë tha. DAVID J. Malan: Duke përdorur thikë në gjalpë badiava, aplikoni gjalpë badiava në tha bukë. [Audienca qeshur] DAVID J. Malan: All hap drejtë 10. Hapi 10. Po? Audienca: Shijoni badiava gjalpë për të siguruar cilësi. [Audienca qeshur] DAVID J. Malan: Hapi 11. Hapi 11. Hapi 11. Hajde. Po? Drejtë atje. Audienca: kujdes marr pelte. DAVID J. Malan: kujdes marr pelte. OK, dhe pastaj një tjetër dora ishte lart. Drejtë pas ju. Po, në blu. Audienca: Në rregull, hiqni kapak nga [padëgjueshme], vërtet, hiqni kapakun nga pelte. [Audienca qeshur] DAVID J. Malan: Nga pelte. Ha ha. [Audienca qeshur] DAVID J. Malan: Dhe? Audienca: Dhe mezi fshij çdo [e padëgjueshme]. [Audienca qeshur] Audienca: Sigurisht, para se [padëgjueshme], hiqni letër nga pelte. DAVID J. Malan: Hiq letër nga pelte. Hapi 14. Ne jemi pothuajse atje. Po? Audienca: Kundër shishe pelte para se çdo gjë bie jashtë. DAVID J. Malan: Kundër pelte shishe para pelte bie jashtë. Hapi 15. Audienca: Replace cap. DAVID J. Malan: Replace cap. Hapi 16. Po? Audienca: [padëgjueshme] DAVID J. Malan: Thuaj se përsëri. Audienca: Merrni kapak off e pelte tuaj. DAVID J. Malan: Off pelte tuaj. Pra really-- Oops. Hajde. Replace cap. Vendos cap-- Ju thatë hiqni kapakun nga pelte. Të ndjehen si ne jemi në një grimë e një lak. Hapi 17. Po? Audienca: [padëgjueshme] DAVID J. Malan: Thuaj se përsëri. Audienca: [padëgjueshme] DAVID J. Malan: Kthehu step-- Audienca: [padëgjueshme] DAVID J. Malan: Hiqe kapak nga gjalpë badiava. Po? Audienca: Drop të gjitha pelte në bukë. DAVID J. Malan: Drop të gjitha pelte në bukë. DAVID J. Malan: Ne jemi pothuajse atje. Hapi 19. Audienca: Hiq pelte tepërt. DAVID J. Malan: Haha, pelte. [Duartrokitje] DAVID J. Malan: Pse nuk we-- një hap më shumë për të marrë këtë shtëpi. Një hap më shumë dhe pastaj ne do të shërbejnë sanduiçe. Po? Audienca: [padëgjueshme] DAVID J. Malan: Ndërsa çdo sanduiç indent Le remains-- së this-- hani. [Audienca Qeshura] DAVID J. Malan: Mirë, faleminderit ju të vullnetarëve tanë këtu. [Duartrokitje} DAVID J. Malan: Ne kemi disa të bukur ndarë dhurata për secilin prej jush. E gjalpë badiava, pelte juaj, dhe bukë për të sjellë përsëri në shtëpi. Ju faleminderit. Kiersten: Faleminderit. DAVID J. Malan: [padëgjueshme] mirëpritur. [Duartrokitje] DAVID J. Malan: Pra, kjo është, Natyrisht, një shembull qesharake. E drejta? Por kjo do lloj të zbulojë se si ne njerëzit vetëm të marrë qartësi për të dhënë. Dhe fakti që unë kam qenë duke folur në një tjetër njeri, ai ose ajo vetëm e di atë që ju thotë. Kompjuter nuk do të dini se çfarë do të thotë, edhe kur përdoret, si ne jemi gati për të bërë sot, programimit diçka në Scratch, një rrjetë dhe rënie, gjuha mister stil copë. Projektuar edhe për të rinj fëmijë, ju keni të jetë aq e qartë dhe aq i saktë me atë që ju doni programin tuaj për të bërë. Tani në fund të fundit, ne jemi do të jetë i programimit jo në kodin pseudokod, Anglisht si sintaksë, por Kodi ose, më mirë, kodi burim. Source code është vetëm mënyrë e sofistikuar për përshkrimin kodin ju në të vërtetë shkruaj me një tastierë që është jo në gjuhën angleze në vetvete. Është në C ose Java ose C ++ apo diçka si kjo, si ne do të shohim së shpejti. Dhe në fakt, vetëm për të trembë një disa prej jush, në shikim të parë, ky është një program i shkruar në një gjuhë të quajtur C. Por për të un-trembë një pakice prej jush, ju do të plotësisht kuptojnë se çfarë po ndodh të vijnë të hënën e ardhshme, kur ajo fjala për diçka si kjo. Sinqerisht, kjo është një gjuhë më të vjetër. Është mjaft misterioze, por është përfaqësues i i shumë gjuhëve këto ditë se kanë shumë kllapa dhe kaçurrel formatimin e teksteve dhe shenjat quote dhe pikpresje. Dhe shumë të kësaj sende sintaktik se nuk është në të gjitha intelektualisht interesante. Në të vërtetë, kjo është një çmenduri e plotë nga idetë shumë të thjeshtë që po na e ndezur në fytyrë. Ky program, si ju mund të vetëm me mend, printime në ekranin e dikujt kompjuterit fjalët "botë Hello presje." Kjo ishte. Pra në mënyrë të qartë, nuk ka shumë gjëra që është duke marrë në rrugën e disa spikatshmëri atje, por ajo do të shumë shpejt të kaloj larg dhe të jetë plotësisht intuitive. Në të vërtetë, ajo që ne jemi duke shkuar për të bërë sot po gjej këtë mjaft komplekse program në kërkim, e cila përsëri ju do të vijnë për të kuptuar shpejt, por për diçka shumë më e thjeshtë. Le të them vetëm atë që ne do të thotë. Le të nxjerrë një foto të asaj që ne do të thotë, me anë të këtyre pjesëve puzzle këtu. Pra, kjo është një programimit Gjuha njohur si Scratch. Ai u krijua nga Media Lab MIT. Dhe ajo që ju do të shihni në problemin vendosur zero, e cila do të dalë më vonë sonte, ne do të duhet të shkoni në këtë URL këtu scratch.mit.edu. Dhe ata kanë një web ndërfaqe bazë nëpërmjet të cilës ju do të shkruani programin tuaj të parë. Ose ata që ndër ju me para përvojë, programe tuaj të dytë, por në një mjedis që është ndoshta pak të panjohura dhe se do t'ju shtyjë për të krijuar diçka të duke përdorur këtë mjedis shumë të vizuale. Tani, ajo që unë jam duke shkuar për të bërë këtu është hapur programin e vetë. Ajo ekziston jo vetëm si një shfletues web, por edhe si një program shkarkueshme kështu që ju mund të përdorni atë në qoftë se ju nuk keni qasje në internet. Dhe unë jam duke shkuar për të bërë këtë këtu, në Sanders, vetëm në rast Wi-Fi nuk bashkëpunojnë super mirë. Dhe ajo që unë jam duke shkuar për të bërë është pika nga disa karakteristika të këtij programi. Pra, të jetë i qartë, unë kam vetëm dy herë klikuar ikonën në desktop tim, ose ekuivalente shkuar për scratch.mit.edu, dhe është tërhequr deri këtë dritare. Kjo është një mjedis programimi. Kjo është një copë software që disa nga miqtë tanë në MIT shkroi se le të na dhe ju shkruani programe në një gjuhë të quajtur Scratch. Tani kjo ndodh që të jetë një cat që është quajtur gjithashtu Scratch dhe kjo është bota e tij në të cilën ai jeton. Kjo është faza, si të thuash, që drejtkëndësh në këndin e sipërm të majtë. Dhe ai nuk duhet të duket si një mace. Ju mund të bëjë atë të duket si çdo gjë dhe ju mund të ketë shumë sprites të tilla, ose karaktere, në një program. Ndërkohë, këtu më shumë e drejtë, është një propozoj bosh i madh. Dhe ky është vendi ku, në një moment, ne do të fillojnë të programimit duke zvarritur dhe duke rënë këto puzzle grafike pjesë që janë të drejtë këtu në mes. Dhe nuk ka mënyrë më shumë prej tyre se ne do të kalojnë kohë këtu në klasë sepse ju do të gjeni se ata janë të gjithë mjaft intuitiv. Përsëri, është e projektuar për fëmijët, por ne e përdorin atë për të vë në lojë përveç disa nga ata Idetë themelore të variablave, sythe, kushtet, dhe, së shpejti, gjërat si funksionet dhe ngjarje dhe temat dhe gjëra të tjera të dashuroj ne do të marrë për të para se të gjatë që në fakt krijojnë diçka nga e para. Synon lojë fjalësh. Tani, ajo që unë jam duke shkuar për të bërë këtu është klikoni mbi jo mocionin, por kontroll. Dhe kjo është vetëm një Kategorizimi i here-- dhe unë shoh një tjetër ngjyra grup të blloqeve. Por vini re disa fjalë të njohura. "Në qoftë se" dhe "tjetër në qoftë se" dhe "të përsëritur." Dhe ju mund ndoshta me mend kjo është kujton degës, ose kushtet e pamë, dhe edhe konstrukt looping. Pra, ne kemi blloqe të ngjashme këtu. Por më interesante një është kjo këtu. Kur ky flamur të gjelbër është i klikuar, kjo, për ata me programing paraprak përvoja, është e barabartë për një funksion kryesor. Por, për ata të panjohur, kjo është pjesa mister që do të fillojë të fillojë programin tonë të gjithë. Kjo fjalë do të thotë, kur të shkoj, në këtë program, dhe kliko një flag-- gjelbër të cilat ju mund të shihni këtu në top qoshe dorën e majtë e UI, kështu që të shohin flamurin e gjelbër ardhshëm në shenjë të kuqe të ndaluar? Kur klikoj se, im programi do të kandidojë. Tani, unë jam duke shkuar për të bërë diçka super e thjeshtë me Scratch. Unë jam duke shkuar për të shkuar përpara dhe të shkojnë në panelit të duket e këtu, ku unë kam një bandë e pjesëve të purpurt puzzle, dhe unë jam duke shkuar për të shkuar përpara dhe të bëjë diçka super e thjeshtë si, të themi. Dhe njoftim then-- kjo teksti në kutinë e bardhë është editable-- unë jam duke shkuar për të thënë "Hello world," ashtu si ne bëri në atë tekstuale version një moment më parë. Dhe tani kur të shkoj e klikoni këtë flamurin e gjelbër, unë kam programuar tani. Kjo nuk është një veçanërisht i program interesant, por kam bërë kompjuter të bëjë diçka. Kam filluar një program dhe kjo bëri atë që unë thashë që ajo të bëjë. Tani, unë mund të vazhdojë për të drag and drop gjithnjë e më shumë nga këto copa puzzle dhe ata do të bashkoj, por le mu disa terminologjinë këtu se ne do të shohim të përsëritura gjatë gjithë kursit, dhe të vërtetë në të gjithë shkenca kompjuterike dhe programimit në përgjithësi. Kjo "thonë" bllok, në të purpurt, le të sapo të fillojë duke e quajtur një deklaratë. Është si një deklaratë të vërtetë. E bëjnë këtë. Pra, kjo është një kategori e udhëzimet që ju mund të ushqyer një kompjuter si pjesë e një programi ose një algoritmi. Dhe të jetë i qartë, ju keni ndoshta marrë për të dhënë që ju kanë programe në kompjuterin tuaj. Dhe ata janë lloj i algoritmeve, por një Programi është me të vërtetë një bandë e algoritmeve që disa njerëzit shkroi. Ata paketuar atë dhe ata e shitën atë mënyrë ju, ose postuar në një faqe interneti për ju për të shkarkuar. Pra, një program është vetëm një tërë bandë e zero dhe ato që, në njëfarë mënyre, njerëzit e krijuar. Dhe ato modelet e zero dhe ato përfaqësojnë gjëra, në fund të fundit, si "thonë hello botë" apo "lojë kjo muzikë "ose" të luajtur këtë video " ose "dërgoni një email." Por ne do të kthehen në mënyrë më detaje çfarë një program është kur ju, veten, shkruani ato. Ja një tjetër statement-- "Prisni një të dytë." Unë nuk e përdorin këtë ende, por në qoftë se unë dua Programi im për të pauzë për një moment për të bërë diçka, unë mund të them se për ta bërë këtë. Prisni një të dytë. Tani një tjetër mund të jetë "luajnë të shëndoshë." Pra, kjo është unike për Scratch, atë ka aftësinë për të luajtur tinguj. Pra, një deklaratë unë mund Përdorimi është, këtu, "luajnë të shëndoshë." Ndërkohë, shprehje Boolean, kështu që kjo është një fjalë njohës emëruar pas vetëm një djalë të quajtur Z. Bool, dhe kjo është e gjitha në lidhje me një pyetje. E vërtetë apo false-- është miut poshtë? Një shprehje Boolean është vetëm disa shprehje në gjuhën angleze që është ose e vërtetë apo e rreme. Ose ose off. Ose një ose zero. Ju mund të mendoni për atë në çdo disa mënyra, por kjo është e vërtetë apo e kjo e rreme, në fund të fundit. Pra "miut poshtë pyetje të shënojë," që do të jetë një shprehje Boolean. Dhe ju mund të mendoni për të tjerët, ndoshta. Për shembull, "është numri majtë më pak se numri i djathtë? " Kjo, gjithashtu, do të jetë një shprehje Boolean. "Më pak se" është një shprehje Boolean. Kjo, gjithashtu, "treguesin e miut prekur." Unë nuk jam i sigurt se pse ata e quajti atë miun akrep. Ajo thjesht do të thotë, është kursori, është shigjetë në ekran, duke prekur cat, për shembull. Apo ndonjë aspekt tjetër të ekranit. Dhe kjo është një pyetje, përsëri, dhe që tregon një shprehje Boolean. Diçka që ju mund të dëshironi të përdorni në një gjendje. Pra, ne do të vijë me atë në vetëm një moment. Ju mund të "dhe" gjëra së bashku. Pra, nëse ju doni të kontrolloni nëse kjo është rasti dhe se është rasti, ju mund të përdorni një "dhe" bllok si kjo. Dhe këtu është se kusht. Vini re formën e hapjes pak në majë të këtij puzzle copë verdhe, kjo është e ngjashme me formën që ne vetëm e pa një moment më parë. Secila nga këto shprehje Boolean kanë këto edges vuri në të majtë dhe të djathtë. Dhe kjo është për shkak se folks MIT vendosur që nga forma vizualisht përcjellë, ju mund të lloj të ndihmojnë njerëzit, studentët dhe fëmijët ashtu, për të lloj të mbushë boshllëqet fjalë për fjalë. Tani që puzzle-- që Hapja është pak i vogël, dhe si ne do të shohim në program, në Scratch, ajo do të rritet për të përshtaten. Ajo do të mbajë formën e saj, në fund të fundit. Pra, një kusht le të vendosni "Duhet të bëjë diçka apo jo?" Një shprehje Boolean është pyetja aktuale ju jeni duke përdorur për të vendosur mund të shkoj për të majtas ose mund të shkoni në të djathtë kur unë të hasni këtë ashtuquajtura pirun në rrugë? Ju mund të ketë dy degë. Nëse diçka është e vërtetë, të bëjë kjo, tjetër shkoni në këtë mënyrë, ose ju mund të bëni vetëm asgjë në të të gjithë, pasi ky bllok nënkuptuar. Në mënyrë të ngjashme, ne mund fole këto gjëra. Pra, nëse ju doni të trefishohet pirun në rrugë, ose e bëjnë këtë apo këtë apo atë, ju mund vetëm fole këto gjëra së bashku. Dhe ajo fillon të marrë pak shëmtuar, përfundimisht, me siguri, por logjike është ende e njëjtë. Ju mund të lexoni fjalë për fjalë kjo lart poshtë dhe ai thotë atë që means-- nëse kjo është e vërtetë, e bëjnë këtë, tjetër në qoftë tjetër. Një lak nuk ka marrë thjeshtë në Scratch. Përgjithmonë të bëjë të mëposhtme. Tani ju nuk mund të mendoni ju mund të bëjë shumë, sepse atje nuk është hapësirë ​​shumë në mes të lartë dhe fund të këtij hapjes copë mister. Por ju do të shihni Scratch do të rritet për të përshtaten sa më shumë copa mister si të doni për të mbushur në atje. Një lak mund të jetë shprehur me përsëritet. Nëse ju e dini që më parë, "I dua të bëj diçka 10 herë, " ju vetëm mund të thoni Scratch për të bërë diçka 10 herë. Dhe, ndërkohë, ne mund të kemi variablave. Kështu që këtu është një e arbitrare, kjo është portokalli në këtë rast, dhe kjo është një turne shakullinë. Përsëri, ju do të gjeni këtë shumë të arritshme sapo ju të filloni duke treguar dhe duke klikuar. Unë e kam quajtur n time ndryshueshme, por unë mund të kishte quajtur atë gjë që unë dua, dhe unë jam vendosjen këtu, në ky shembull arbitrar, në zero. Tani duke parë një program si përshëndetje Bota nuk është e gjitha që bindëse, kështu që le të vërtetë të hapur diçka se një ish-student i bërë. Më lejoni të shkoj përpara dhe të hapur, për shembull, kjo këtu, për të cilin unë do të duan që të ketë një vullnetar. Në rregull, sa about-- le të shkojnë më larg. Po, eja lart. Si e keni emrin? ABBY: Abby. DAVID J. Malan: Abby, eja lart. Pra, a keni luajtur ndonjëherë kjo lojë para? ABBY: Nr DAVID J. Malan: Në rregull. David, nice to meet you. Ejani në më shumë. Dhe çfarë është e programimit tuaj sfond, nëse ka. ABBY: Unë kam mësuar disa C ++. DAVID J. Malan: Ju keni mësuar disa C ++. Dhe çfarë është loja juaj luajnë sfond? ABBY: Jo shumë. DAVID J. Malan: OK, kështu që ne do të marrin se. Pra, këtu është se si gjithçka është duke shkuar për të punuar. Unë jam duke shkuar për të shkuar përpara dhe të klikoni flamurin e gjelbër, e cila është deri këtu në krye të drejtë. Tani paraardhësi juaj në klasë ka dhënë disa udhëzime këtu. Dhe në vetëm një moment, atë thotë se "hapësirë ​​për të filluar." Pra shkoni përpara dhe goditi spacebar. KOMPJUTERIKE GAME: Pikachu. DAVID J. Malan: Dhe qëllimi është të të kapur ushqimin, si përshkruar aty në të majtë. Dhe për të [padëgjueshme] [GAME MUSIC Playing] DAVID J. Malan: Aww, mirë, ju falënderoj për të luajtur. Ne kemi këtu një pak ikje dhuratë për ju. Ne kemi topin stresi CS50, në qoftë se ju dëshironi të zgjidhni. Në rregull, mirë që u njohëm. Faleminderit për të ardhur dhe sfiduese. Pra, ne kemi më shumë topa stresit, kështu që le të bëjmë një shembull më shumë të motivuar. Një vullnetar? Në rregull, si për të drejtë këtu para. Si e keni emrin? Phillip: Phillip. DAVID J. Malan: Phillip. Eja lart, Phillip. Pra, Phillip do të jetë sfiduar me një tjetër lojë se një nga paraardhësit tuaj ka shkruar si pjesë e problemit vendosur zero, quajtur lojë Hardest Ivy. Dhe ne do të shohim në vetëm një moment se çfarë nënkuptohet me këtë. Phillip, nice to meet you. Cili është sfondi juaj? Phillip: Done shumë coding. Bërë një lojrave pak, too. DAVID J. Malan: OK. Marrë një shumë të lojrave, too. Dhe a keni luajtur këtë lojë para? Phillip: Nuk ka DAVID J. Malan: All të drejtë, kështu që këtu ne do të shkojmë. Unë jam duke shkuar për të shkuar përpara dhe klikoni flamurin e gjelbër. [GAME MUSIC] [MUSIC MC Hammer, "U NUK MUND prekni këtë"] Phillip: [padëgjueshme] DAVID J. Malan: [padëgjueshme] Phillip: [padëgjueshme] [Qesh] [MUSIC MC Hammer, "U NUK MUND prekni këtë"] DAVID J. Malan: [padëgjueshme] Çan përmes saj. Phillip: [padëgjueshme] DAVID J. Malan: Shkoni përpara. [MUSIC MC Hammer, "U NUK MUND prekni këtë"] DAVID J. Malan: Në rregull. Urime. [Duartrokitje] DAVID J. Malan: Ne do të pas që në internet më vonë në mënyrë që ju mund të shtyj për më vonë me atë si të mirë. Princeton vjen deri të ardhshëm, pasi që. Pra, tani le të vërtetë të vazhdojë për të filluar nga e para, mënyrë që të flasin, dhe të vërtetë të ndërtuar deri ne mund të vë në lojë përveç disa nga këto ide dhe për të marrë diçka edhe më komplekse deri në fund. Unë jam duke shkuar për të shkuar mbi këtu dhe unë jam duke shkuar për të shkuar përpara dhe për të krijuar një skedë të re. Pra, përsëri, vendosur problemi do të ecin ju me anë të disa nga këto hapa. Por, të gjitha që bëra ishte go në menynë File dhe unë tha "i ri," aq shumë si Microsoft Word, ose ndonjë program të tillë. Dhe le të shkojë përpara now-- dhe ne zbatuar "Hello world" një moment më parë, por le të bëjë diçka një cuter pak. Unë jam duke shkuar për të shkuar deri në ngjarjet. Dhe unë jam duke shkuar për të bërë ", kur Flamuri gjelbër klikuar. " Dhe atëherë unë jam duke shkuar për të përdorur, do të themi, një degë. Kështu që unë jam duke shkuar për të përdorur një "nëse" gjendjen. Dhe vini re se si sa më shpejt që unë të marrë afër për të, ajo do të parakohshme së bashku. Kështu që unë le të shkojë dhe ajo snaps së bashku. Dhe tani unë mund të bëjë diçka interesante. Nëse unë lëviz me këtu, unë jam duke shkuar për të parë një bandë e tërë e blloqeve. Nëse unë shkoj për të "të dhënave" - ​​më lejoni të zoom in-- ka diçka në lidhje me variablat. Nëse unë shkoj në "lëvizje", ju mund të me sa duket të rregullojmë gjërat. Nëse unë shkoj tek "operatorët" - oh, kjo është interesante, Unë mund të marr një numër të rastit. Pra më lejoni të bëjë diçka me të vetëm disa probabiliteti, vetëm për shkak se. Unë jam duke shkuar për të shkuar përpara dhe të terhiq këtë pjesë mister, kësaj është se më pak se bllok, kështu që është vetëm "Është ky numër më pak se se një?" Por unë nuk dua një kod vështirë një numër pasi që të jetë goxha e pakuptimtë. Kështu që unë jam duke shkuar për të drag këtë pjesë këtu, dhe vëreni se si ajo snaps në, dhe tani më lejoni të shkoj përpara dhe të thonë "nëse numri që është zgjedhur rastësisht është më pak se gjashtë, e më poshtë. " Tani pse më pak se gjashtë? Çfarë probabiliteti është kjo në mënyrë efektive do të më jepni, thjesht intuitive? Rreth 50%, e drejtë? Nëse numri që e mendoj rastësisht midis 1 dhe 10 është më pak se gjashtë, në mënyrë të qartë është një, dy, tre, kater ose pese. Dhe kështu që do të më jepni një 50% probabilitet të asaj që po ndodh? E pra, le të bëjë diçka si kjo, "luajnë Meow shëndoshë." Dhe vini re, përsëri, copë mister rritet të përshtaten, për sa kohë që forma ndeshje. Kjo është ajo që është e rëndësishme. M lini të kaloj në Scratch këtu dhe klikoni "luajnë." Asgjë nuk ndodh. A është ky një bug? Jo, nuk është e nevojshme. Ajo mund të jetë vetëm se një Numri më i madh është zgjedhur. Pra, le të bëjë atë përsëri. Asgjë. [Meow] DAVID J. Malan: Nuk është. [Meow] DAVID J. Malan: Përsëri. Nr [MEOWING] DAVID J. Malan: Pra, nëse ju keni luajtur ndonjëherë një lojë, natyrisht, ku sende po ndodh rastësisht, si të liq po vijnë ose jo vijnë për në ekran, ose gjërat janë duke rënë apo jo rënie, kjo është vetëm për shkak se diçka super thjeshtë si kjo po ndodh. Zgjidh një numër të rastit, dhe në qoftë se kjo është më pak se disa vlera, ndoshta e bëjnë këtë apo ndoshta të bëjë që. Ne mund të përfshijnë që në një gjendje. Le të bëjmë diçka të ndryshme. Më lejoni të hedhin që larg. Ju mund të shpëtoj stuff nga vetëm zvarritje atë në të majtë dhe të lënë të shkojnë. Më lejoni të shkoj përpara dhe të bëjë një bllok përgjithmonë dhe shumë shpejt të bëjë diçka të bezdisshëm. Më lejoni të shkoj përpara dhe të thonë "luajnë Meow shëndoshë." Por unë nuk dua që kjo të jetë shumë e bezdisshëm, kështu që më lejoni të rrëmbyer këtë bllok, "Prisni një të dytë," dhe njoftim nuk ka më vend për të. Por në qoftë se ju shkoni mjaft të ngushtë, ajo dëshiron të shkojë atje. Kështu që unë le të shkojë dhe ajo do të rritet për të mbushur bllok. Deri tani, kjo është një lak. [MEOWING] DAVID J. Malan: Jam fjalë për fjalë duke bërë këtë përgjithmonë. Përsëri dhe përsëri. Kjo nuk është vetëm e natyrshme fryrë. Më lejoni të shkojnë përpara dhe për të ndryshuar kjo për jo një të dytë, për dy sekonda dhe hit Enter. Dhe çfarë është e bukur për Scratch është që ju mund të programit interaktive. Bëni një ndryshim, ndoshta hit Enter ose Dëgjo përsëri, dhe vetëm ajo do të mbajë. E pra, tani pse nuk e bëjmë diçka cuter pak? Në vend që të bëjë çdo gjë nga e para, më lejoni të shkoj përpara dhe të hapur një paradhënie bërë një të tillë, që unë para-pjekur, quajtur "Pet Cat." Dhe ne do të postoj të gjitha të këto fotografi online, dhe problemi vendosur zero do të ju them si për të hyrë në ato dhe të hapur ato. Dhe vini re, kjo është shumë e thjeshtë. Por më parë, unë duket se kanë rrëmbyer një "përgjithmonë" bllok, kështu që unë kam marrë një lak. Dhe pastaj unë kam marrë një "nëse" gjendjen. Unë kam marrë një shprehje Boolean. Pra, në anglisht, vetëm glancing në këtë, veçanërisht në qoftë se ju nuk keni programuar më parë, vetëm intuitive, çfarë është kjo do të bëjë, këtë program? [Audienca bërbëlit] DAVID J. Malan: Nëse manar cat, cat do të meow, e drejtë? Për shkak se "përgjithmonë unchecking" është treguesin e miut prekur cat. Pra, të jetë i qartë, dhe unë nuk e them këtë më parë, të gjitha këto enigmës copa dhe skenar që ne kemi kombinuar ato në, mënyrë që të flasin, një skenar është sinonim me program, me të vërtetë, i takon kësaj mace. Dhe arsyeja is-- sepse njoftim se si kjo mace njëjta këtu është e theksuar, këtu ju mund të krijoni një cat dytë apo qen apo me të vërtetë çdo gjë që ju dëshironi në mënyrë grafike. Ju mund të importojë diçka nga Photoshop, apo si, dhe integrimin diçka nëse ju doni të bëni atë për një projekt. Dhe çfarë ju do të gjeni, në fund të fundit, është se ju mund të shtoni Scripts, shtoni mister copa, për karaktere të veçanta. Pra, të gjitha këto i përkasin këtë mace të veçantë. Deri tani, nëse unë të shkojnë përpara dhe të luajnë ky program, asgjë nuk po ndodh. Por ajo po kandidon. Programi është në këtë përgjithmonë lak, lloj pritur për çfarë duhet të ndodhë? [Audienca bërbëlit] DAVID J. Malan: Të manar cat. Pra, nëse unë të lëvizin mausin time drejt him-- [MEOWING] DAVID J. Malan: Pra tani Unë jam petting cat. Ndërkohë, ne mund të kemi një degë të dyfishtë. Më lejoni të shkoj përpara dhe të hapur up nuk manar cat. Ne do të postoj këtë në internet si. Kjo është pak më shumë komplekse, por pa thënë ju mund të me mend se ndoshta çfarë do të ndodhë. [MEOWING] DAVID J. Malan: Cat është meowing, koha grand vjetër. Por ky program është sigurisht quajtur "Mos Pet Cat" kështu në mënyrë të qartë, unë dua të manar cat. [Zhurmshëm] DAVID J. Malan: Mos manar cat. Tani, le të marrin një vështrim në një shembull tjetër këtu. Ky do të quhet "Hi, Hi, Hi," për arsye që do të jetë i qartë, sepse sa më shpejt që unë të drejtuar këtë thing-- [SEAL leh] DAVID J. Malan: Shumë e lehtë për të shkruajnë programe bezdisshëm para. [SEAL leh] DAVID J. Malan: Tani ne nuk do të shkojnë në hollësi të madhe me të gjitha këto, por njoftim ka një disa karakteristika të reja këtu. Ka një ndryshore, të quajtur "mbytur" dhe pastaj ka një bandë e kushteve. Dhe tani për tani, le të më vetëm ju vë në lojë duke thënë se në qoftë se ky djalë merr shumë i bezdisshëm, Unë mund të goditur spacebar dhe ai ndalon. Sepse roli që po luan këto dy Scripts është si më poshtë. Një prej tyre është duke bërë leh çdo disa sekonda. Një tjetër është vetëm duke pritur për mua për të goditur spacebar. Dhe në qoftë se unë bëj goditi spacebar, ajo do të ndryshojë gjendja e kësaj variable, vlera i këtij variabël, që është me sa duket quajtur "mbytur," Unë nuk të kam thirrur diçka të mërzitshme si n, I quajtur atë një fjalë anglisht, "mbytur." Nga 1 me 0 ose 0-1. Nga e vërtetë të rreme ose të rreme për të vërtetë. Dhe kështu që ju mund të vërtetë shohim tani, që ju mund të ketë dy Scripts, dy programe running në të njëjtën kohë, dhe dy prej tyre mund të jetë i ulur në një lak të bërë diçka. Duke pritur për të njeriut për të bërë diçka si goditur spacebar. [SEAL leh] DAVID J. Malan: Dhe tani ai është në rrugën e tij përsëri. [SEAL leh] DAVID J. Malan: Pra, çfarë tjetër mund të bëjmë me këta shembuj? E pra, le të shkojnë përpara dhe të bëjë një Shembulli me numëruar dele. Ne do të vazhdojmë këtë përgjatë linjave këtu of-- le të hapur shembullin dele. Dhe vini re, ashtu si më parë, kjo, fatmirësisht, është pak më pak i bezdisshëm. Sapo kam goditur luajnë here-- Oh jo, ky është i bezdisshëm. Ai do të BAA me disa probabilitet. Le të luajë këtë përsëri. [Dele BLEETING] DAVID J. Malan: Dallimi i vetëm është ne kemi ndryshuar kostum, si të thuash, dhe ne jemi duke përgjysmuar dhe të thonë atë se numri i vërtetë është. E pra, le të shkojnë përpara dhe të marrë këtë hap më tej. Dhe më lejoni të vë në lojë ju me një tipar tjetër këtu. Le të shkojnë përpara dhe të hapur një program të quajtur Temat. Aq shumë si ju mund të ketë një të tillë sprite, duke pasur Scripts shumta, ju mund të ketë dy sprites, një zog në një mace, secili ka skenarin e tyre. Dhe secili prej tyre mund të veprojë në të njëjtën kohë. Nëse ju keni dëgjuar ndonjëherë Fjala "multithreading" një kompjuter është "multithreaded" do të thotë ajo mund të bëjë gjëra të shumta në të njëjtën kohë, dhe, me të vërtetë, kështu që mund të zeroja. Dhe tani vini re se zogu është lloj i heshtur. Është thjesht duke bërë gjëra rastësisht, kërcim jashtë ekranit. Është e qartë se macja është programuar të lloj ketë aftësitë që kërkojnë në shtëpi në mbi zog sepse ai është gjithmonë duke treguar në të. Deri në fund, ai kap zogun aktuale. Kështu që unë nuk do të ndalem në detajet këtu, por ju mund të lloj paraqitje e shkurtër të njëjtat forma, disa "Në qoftë se" kushtet, disa variablave, ndoshta disa sythe, janë në fund të fundit duke bërë të njëjtën gjë. Tani më lejoni të shkoj përpara dhe të hapur up diçka tjetër krejt, të vë në lojë disa nga ju, veçanërisht ata më të rehatshme, çfarë ju mund të bëni me këtë. Unë jam duke shkuar për të shkuar përpara dhe të hapur Button këtu. Dhe kjo është një super program i thjeshtë që duket, por të shikojnë se çfarë ndodh kur I-- Shikojnë atë ndodh kur kam hapur këtë version të tij, këtu në shfletuesin, scratch.mit.edu. Kur unë klikoni këtë kuqe madh button, vini re se çfarë ndodh. Pra, çfarë po ndodh këtu? Ka në fakt një kompleksiteti shumë më tepër ndodh nën kapuç, edhe pse unë kam zbatuar këtë, apo sinqerisht, Dan Bradley ka zbatuar këtë në mënyrë thjesht. Ai ka hartuar një mister Scratch porosi copë, i njohur si një zgjatje e para, ai e quajti atë Toggle. Dhe çfarë Toggle nuk është ajo dërgon një mesazh në lidhje me internet. Dhe se mesazhi vetë duket pak i fshehtë. Por kjo, gjithashtu, ju do të kuptoni deri në fund të termit s. Mesazhi ai është në të vërtetë duke dërguar duket një diçka të vogël si kjo. Është vetëm tekst. I fshehtë. Ju do të kuptoni se nga koha ne të merrni problemi vendosur shtatë. Është thjesht duke dërguar porosi tekstuale në lidhje me internet për një server. Dhe se serveri është, në fund të fundit, duke folur për këtë llambë të lehta, të cilat ka një nga ato llamba dashuroj lehta në atë që, në vetvete, është duke folur me Wi-Fi në rrjetin këtu, ku një pajisje lokale poshtë here-- dhe, në fund të fundit, është e vërtetë kthyer atë dritë në dhe jashtë. Por ne mund të bëjmë më shumë gjëra interesante ende. Vini re se çfarë Dan gjithashtu bëri për ne. Ai bërë sprites shumëfishta, secili prej e cila ka një skenar duke pritur për një klik. Dhe në qoftë se unë klikoni kuqe, ajo shkon të kuqe. Nëse unë të marrë blu, ajo shkon blueish. Jeshile, të verdhë, portokalli. Dhe e gjithë kjo po ndodh nga duke shkuar mënyrë për të dalë mbi internetin, tërhiqet këtu për llambë të lehta, në dhe jashtë. Dhe në qoftë se ju mund të besoj it-- dhe kjo është ndoshta një nga Scratch më komplekse Projektet dikush ka implemented-- ai e bëri atë, në drejtësi, në një ditë. Dhe kjo ishte sfida që e hodhi poshtë deri në Dan, kur pamë kemi bulbs binare, se si ne kemi Scratch, mund të kombinohen ato? Dhe, me të vërtetë, kjo është absolutisht e dikush diçka në këtë dhomë mund të bëjë nga end-- semestër është ai llamba ripërshtatur binare duke përdorur të njëjtën ndërfaqe që ishte në iPad tonë të mërkurën. Kështu që tani, në qoftë se unë në të vërtetë klikoni plus gjatë këtu, ne kemi një, dy, tre. Unë mund të goditur 16 dhe të kthehet se një në. 128, e kështu me radhë. Tani në qoftë se vetëm ka dhe lulëzim mendjen tuaj, ju mund të bëni gjëra shumë më të arritshme, nuk përfshin ndonjë pajisje me siguri. Vetëm gjëra në ekran vetë. Dhe, vërtetë, ajo që shumica e studentëve të mbeten duke bërë është një lloj loje, disa pjesë të punës artistike, ose një lloj interaktive animacion. Dhe unë do të them një nga tonë favoriteve ka qenë kjo. Dhe mendova nëse ne mund të zbehtë dritat, ne do të marrin një paraqitje e shkurtër në këtë finale Projekti Scratch në përfundim. Por ajo që ju do të duhet të mbani në mend, si Unë mund të ju vë në lojë me një hollësi e fundit, sectioning do të fillojë javën e ardhshme. Orari i punës do të fillojnë javën e ardhshme. Problem vendosur zero do të jetë postuar CS50.harvard.edu më vonë sot. Dhe ju do të përballën në problemit të vendosur zero të vet Zamyla Chan CS50-së, i cili udhëzon shumica e walkthroughs tonë. Këto janë ngulitur videos në grupe me probleme që do të mbajë dorën tuaj nëpërmjet shumë i caktuar fillestare up dhe përmes shumë e vendimeve të mundshme të projektimit. Pra, nëse ju keni pasur ndonjëherë atë emocion kur ringjallet një detyrë shtëpie dhe pyesin, ku mund të fillojë? Ajo do të ketë këtë përgjigje për ju. Dhe tani, një program final nga një nga paraardhësit tuaj në përgjigje të pyetjes "Çfarë thotë dhelpra?" [MUSIC YLVIS, "Çfarë do të FOX SAY?] YLVIS: (kënduarit) Dog shkon trikotazhi. Cat shkon Meow. Bird shkon cicërimë dhe miu shkon shpëtim. Cow shkon moo. Bretkocë shkon kuak. Dhe elefant shkon bori. Rosat thonë ga dhe peshk të shkojnë blub. Dhe vulë shkon ow ow ow, por ka një tingull që askush nuk e di, çfarë thotë dhelpra? Dhe DAVID J. Malan: Kjo është ajo për CS50. Ne do të shohim në Puzzle Dita dhe të hënën. [Duartrokitje] [MUSIC YLVIS, "ÇKA I Opinioni FOX?"] Transmetuesi: Dhe tani të thellë Mendimet, nga Daven Farnham. Sot unë u godit në përballen me një libër telefoni. Konfuze, si unë jam në shtëpi shikuar në internet.