[Muzikos grojimo] -Alright! -Tai CS50. -Tai CS50. -Tai CS50. [MUSIC - Iggy AZALEA "Kauke"] -Mano Mėgstamiausia atminties iš CS50 buvo, kai nuėjau į Puzzle diena. -Probably Tik laikas praleistas dirbant ant probleminių rinkiniai su draugais ir žmonių, kurie Wold galiausiai tapo mano blockmates. -My Geriausias atminties iš CS50 yra Hackathon. -The CS50 Hackathon. -Hackathon. -Hackathon. -Hackathon. -The Hackathon -Rob Bowden. Tiesiog viskas apie jį. [MUSIC - Iggy AZALEA "Kauke"] -Mano Mėgstamiausia atminties, kai buvau etapas ir aš grojo prestižinį vaidmenį iš mazgo [? į Susijęs?] [? Sąrašas. ?] -Kai Mes visi turime nemokamą Dropbox erdvę ir Davidas buvo, pavyzdžiui, žiūrėti pagal savo vietų. Ir tai buvo, pavyzdžiui, vietos visiems! [MUSIC - Iggy AZALEA "Kauke"] -My Konsultuoja dėl bet kokios įeinantis studentas būti tikrai dirbti P-rinkiniai su draugais. , Biuro valandos yra labai daug jūsų draugas. -Įsitikinkite Didžiąją dalį savo patirties ir susitikti su kuo daugiau žmonių kaip jūs galite. -Don 'T bijoti prašyti pagalbos. Pradeda dirbti P-rinkiniai anksti savaitę. -Aš Manau svarbiausias dalykas yra pasinaudoti visų išteklių kad CS50 yra. -Go Biurų valandas pradžioje per savaitę. -Definitely Žiūrėti šortai. -Don 'T vilkinti jūsų P rinkinių. -Įsitikinkite Rasite didelį grupę žmonių dirbti P rinkinių su. Jūs galite turėti smagi ir gauti darbą kartu. -Don 'T bijoti stumti save. Eiti hacker leidime kartais. -Write Dalykų ant popieriaus iki Ar kada nors paliesti savo kompiuterį. -CS50 Tikrai puikiai teikti būdų, kaip gauti pagalbos. -My Vienas patarimas yra miegas. Ar kas nors sakė, kad? Miego, tikrai. Tai lengva nedaryti, bet jūs turite tai padaryti, manau. -Aš Sakyčiau tikrai būti protiškai paruošti nes jūs ketinate mylėti jį. [MUSIC - Iggy AZALEA "Kauke"] -Tai CS50. -Tai CS50. -Tai CS50. [MUSIC - Iggy AZALEA "Kauke"] -Tai CS50. [Plojimai] David J. Malan: Taigi tai yra CS50 ir tai yra iš 0 savaitės pabaigoje. Ir tai buvo tik keletas iš CS50 personalo, kuris Jūsų laukia ne tik skyriuose ir darbo valandos, bet, Taip pat, tai ateina savaitgalis ne CS50 Puzzle diena. Kuris, vėlgi, nėra viskas apie programavimą. Iš tiesų, tai tikėtina, kad jums neturės programuoti nieko, o spręsti problemas, naudojant Ratio ir draugai greta jūsų. Mes bus sujungtos kai mūsų draugais Facebook-- jei jūs užsiregistruosite here-- kas per pastaruosius kelerius metus, iš tikrųjų buvo raštu šie iššūkiai su mumis. Ir taip, jie bus tie, galiausiai veikia Dėlionės diena. Ir taip, jums bus užginčyti su būtent į įvairiausius dalykus ir problemų, kad žmonės ne Facebook patinka galvoti apie tai. Taigi tai yra rytoj. Registruotis į cs50.harvard.edu/register. Dabar žodis pora darbuotojų, visų pirma. Tai čia yra Anselį Duff , kuris yra iš tikrųjų vienas iš bendraturčių autorių jų dvejetainis svogūnėliai, kad matėme trečiadienį, Be CS50 savo Dan Bradley. Anselį Duff taip pat buvo buvęs pirmakursis advisee mano prieš 3 metų ir jis iš tikrųjų net pastatė šį tribūnos. Jis nuėjo daryti inžinerijos mokslai ir dar daugiau. Dabar, jo vaizdas čia yra iš tikrųjų Anselį prieš 3 metų tuo CS50 Hackathon kai jis pasiskolino vienas iš mūsų balionai, įstrigo jo nešiojamas, ir už kitas 12 kai keista valandos, susikoncentravęs į savo galutinę projekto tik atsižvelgiant pertraukos atidaryti maišai saldainių tuo Hackathon. Tačiau jis pridūrė, paskutiniu metu praleisti praėjusį vasarą pas mus, nuo CS50 savo darbuotojams, ir dabar studentai šį semestrą, turi savo 3D spausdintuvą. Ir trumpai 3D spausdintuvai yra prietaisas, kuris atrodo gana panašus į šį. Jūs užpildykite jį su plastikine rite kad yra išlydomas, kad prietaisas o jūs statote dalykus tiesiog iš nieko. Panašiai kaip rašalinį spausdintuvą, galite pradėti spjaudė iš mažai taškų iš plastiko kad forma kartu sudaro ištisas objektus. Ir taip Anselį pavyzdžiui, anksčiau Šią vasarą, turi iPhone 5 ir nusprendė, kad jis tikrai norėjo kad paremtų jį ant savo stalo. Bet jis nenorėjo eiti ir nusipirkti kažką iš Apple Store arba kaip, todėl jis atsisėdo ir pradėjo rengti kažką. Jis paėmė keletą matavimus kaip stora ir koks platus jo "iPhone" buvo Jis atkreipė šį paveikslėlį čia jis nusprendė, kad jis norėjo turėti 75 laipsnių nuokrypiu kaip jis buvo spoksoti jį ant savo stalo ten. Tada jis pasuko tai, naudojant programinė įranga, į 3D CAD modelio kad atrodė šiek tiek kažkas panašaus į tai. Ir tada jis pradėjo, galiausiai, kad iš tikrųjų ją sukurti. Taigi iš tiesų, jei kas nors iš jūsų čia, galbūt iš eilės, kad galiu mesti į, turi an-- ten mes žmonės su iPhone 5, ir čia mes turime dar du. Dabar, negali būti nurungė, CS50 savo paties Cheng Gong taip pat nustatyti šią vasarą statyti gana keletą dalykų ir, Tiesą sakant, dėl priežasčių, kurios dar Neaišku, buvo lėtai spausdinant iš dramblių armiją su artikuliuoti ginklų ir kamienus. Iš kurių pora yra iš tikrųjų čia, jei kas dabar būtų like-- dramblį. Visos teisės. bet kas Cheng taip pat padarė mums jis labai maloniai įsteigti kamerą nes to dramblio, tiki jis ar ne, trunka kai du ir puse valandos spausdinti. Net iPhone stendas užėmė valandą ir pusė spausdinti. Ir kas Cheng nuėjo į priekį ir padarė buvo įsteigtas gražią kamera priekyje Šio 3D spausdintuvas, nufilmuotas už valandą ir pusę ANSEL dizaino atspausdintas. Mes aptraukė kai seksualus muzika jai, kad duoti jums tai atrodo , kaip 3D spausdinimas veikia. Ir nors šis faktiškai plastiko, suprasti, kad, jei tai yra plotas jus sudominti akademiškai, yra žmonės, tarp jiems Jennifer Lewis čia pasibaigus mokyklos Inžinerija, kurie iš tikrųjų yra dirba 3D spausdinimo Plastikinių objektus. Bet net vis dažniau biologinės medžiagos išspręsti fiziologinių problemų žmonėms. Bet čia yra šiek tiek kažkas iš CS50. [LOUD MECHANINIAI Triukšmai] David J. Malan: Tai neskamba nieko panašaus, kad iš tikrųjų, bet tai žymiai geriau ją žiūrėti tuo greičiu, ir su tuo garsu. Dabar, trečiadienį, kaip Ar mes pirmą kartą gauti čia? Mes pradėjome kalbėti apie kompiuterį mokslas ir mes paklausė, ką jis buvo. Ir tai apie daug dalykų, ir ten tiek daug skirtingų krypčių , kurioje jūs galite galvą po kaip CS50 žinoma. Iš tiesų, jei jūs įlaipinami vienas tų neoficialių gidų CS išorėje, knygelės, kad mes pateikiame, ar esate galvoju vartoti tik CS50, arba gal darai vidurinio, arba gal net sutelkiant CS, ar vartyti, kad. Ir jūs pamatysite schemą link pabaigos, kad rodo jums daug skirtingomis kryptimis CS, kad jūs galite eiti išjungti. Bet šiandien, mes sutelkti, vėlgi, dėl tikrai vienas iš pagrindinių nuomonę, galbūt, kur jūs turite įėjimai į problemas, jūs turite rezultatus iš problemų, ir jūs turite algoritmai, kurie sukurti tie išėjimai iš šių sąnaudų. Ir vienas toks pavyzdys, buvo Žinoma, šis telefonas knyga čia. Ir mes kaip pavyzdys eiti per algoritmu, kuris buvo teisingas. Ir tada dar vienas buvo teisinga, tačiau šiek tiek greičiau. Ir tada dar vienas, kad buvo šiek tiek daugiau dramatiškas, tačiau iš esmės greičiau. Teisė, šis telefonas knyga, mes teigė, turėjo apie 1000 puslapių. Ir kiek kartų aš turiu ašara telefonų knygą per pusę rasti ką nors, kaip Mike Smith, maksimaliai, į 1000 puslapių knygoje? Taigi, 10 suteikti arba užtrukti. Ir todėl, kai aš persiplėšė šitą dalyką pusė, arba tiesiog, daugiau brandaus, padalintas per pusę, tai tik 10 puslapių iš 1000. Ir jei ekstrapoliuoti, mažai nerealiai už telefonų knygoje, bet jei tai telefonų knyga buvo apie 4 Milijardas puslapių, taigi visiškai griozdiškas fiziškai, kiek kartų jūs padalinti 4 milijardų puslapis telefonų knyga per pusę? Taigi tai tikrai 32, suteikti arba užtrukti. Ir tik todėl 32 kartų, iš iš 4 milijardų puslapių, gali pastebėsite, kad kažkas panašaus Mike Smith. Ir tai efektyvumas. Štai geras algoritmas, Manyti. Bet tada mes persikėlė nuo bandyti ją formalizuoti. Ir aš pasiūliau šį Pseudocode kodą. Pseudocode kodas nėra nieko formalus. Tai nėra kažkas, ką įsiminti. Tai tiesiog kažkas jums išreikšti gana intuityviai, naudojant anglų kalbą, arba bet kalba tikrai, kad perteikia savo idėjas trumpai. Bet kas raktas apie Pseudocode kodas yra tas, kad jums pabandykite numatyti visi galimi atvejai, kad taip gali nutikti. Ir iš tiesų, šiuo Pseudocode kodas, ten buvo tikrai trys atvejai kiekvieną kartą aš padalintas telefono knyga. Mike gali būti į kairę. Mike gali būti į dešinę. Arba jis gali būti teisus puslapyje aš ant. Arba ketvirtas kampas atveju, taip sakant. Blogas scenarijus gali būti vienas which-- kas vyksta? Mike tiesiog ne Telefonų knyga ne visiems. Ir kai programos crash-- kai "Mac" ir kompiuterio programinė įranga, vaikinai paleisti kompiuteriuose kartais stringa arba netikėtai, kad paprastai reiškia, kad kai kurie programuotojas, kai, kaip jūs žmonių greičiau, tiesiog įsukus ir padarė tam tikrą klaidą. Gal nesitikėjo, kad gal ten nėra Mike Smith telefonų knygoje. Ir jei jūs neturite iš tikrųjų rašyti kodas valdyti situacijas, pavyzdžiui, kad, paprastai nenuspėjama dalykai gali atsitikti. Jūsų kompiuteris gali užšaldyti. Jis gali paleisti. Programa gali mesti rūkyti. Ir taip visa tai stupidities, kad jūs gali buvo susidurta su jūsų faktinis gyvenimas tik naudojant kompiuterius, vis labiau bus tik paaiškino kelio šio intuicija ir tai, kas yra supratimas iš tikrųjų vyksta po gaubtu. Dabar pabandykime pažvelgti bendresniu problema. Užuot imtis lankomumas vietoje, kaip tai, kuri būtų gana lėtas padaryti vieną, du, tris, keturis. O gal dviejų, keturių, šešių, aštuonių. Leiskite dėmesio, vietoj to, ant kaip mes galime formalizuoti proceso algoritmas pagal kurią mes galėjo imtis lankomumą. Ir pakeliui, pradėkime taikyti tam tikrą nomenklatūrą kad mes naudojame šiandien, kai mes iš tikrųjų pradėti programavimo kalba. Taigi, aš suteikti jums dabar keturių minučių vaizdo kad mes įdėti kartu su mūsų draugais iš TED, organizacijoje. Kurią mes tiekiamas scenarijų ir jie atnešė savo animatorių padengti, ir iš tikrųjų sukūrė 2D animacija, ką algoritmas. Jei galėtume artimosios šviesos. [Muzikos grojimo] Narrator: Kas algoritmas? Be kompiuterių mokslo, algoritmas yra rinkinys Instrukcijų sprendžiant kai problema žingsnis po žingsnio. Paprastai algoritmai vykdo kompiuterių, bet mes, žmonės, turime algoritmus, taip pat. Pavyzdžiui, kaip būtų tu apie skaičiavimas žmonių skaičius kambaryje? Na, jei jūs panašus į mane, jūs tikriausiai atkreipti kiekvieno asmens vienu metu ir skaičiuoti nuo nulio. Vienas, du, trys, keturi ir tt. Na, tai algoritmas. Tiesą sakant, pabandykime ją išreikšti yra šiek tiek daugiau formaliai Pseudocode kodą. Anglų-kaip sintaksė, kad primena programavimo kalbą. Tegul n yra 0. Kiekvienam kambaryje asmuo, nustatyti n lygi n plius 1. Kaip interpretuoti Pseudocode? Na linija viena deklaruoja, taip sakant, kintamojo vadinamas n ir inicijuoja jo vertė iki 0 tai tik reiškia, kad bent pradžioje mūsų algoritmas, dalykas, su kuriuo mes skaičiavimas vertė yra 0. Galų gale, kol mes pradėti skaičiuoti mes dar skaičiuojami nieko. Kreipiamės į šį kintamąjį n yra tik konvencija. Galėjau jį pavadino dauguma nieko. Dabar liniją du demarks iš ciklo pradžia, veiksmų seka, kad bus kartoti tam tikrą skaičių kartų. Taigi mūsų pavyzdyje, žingsnis mes ėmimas skaičiuoja žmones kambaryje. Po linija du yra linija trijų, kurie apibūdina lygiai taip, kaip mes eiti apie skaičiavimas. Įdubimas rodo, kad tai linija trejų kad bus pakartoti. Taigi su Pseudocode kodas sakoma, kad po pradedant 0 kiekvienam asmeniui patalpa mes padidinti n pagal 1 Dabar tai algoritmas yra teisingas? Na tegul išdulkinti jį šiek tiek. Ar jis veikia, jei yra du žmonės kambaryje? Pažiūrėkime. Pagal vieną mes inicijuoti n 0. Kiekvienam iš šių dviejų žmonių, tada mes prieaugio n iki 1. Taigi, pirmąją kelionę per kilpa, mes atnaujiname n nuo 0 iki 1. Antrąją kelionę per, kad pati kilpa, mes atnaujiname n nuo 1 iki 2. Ir taip, tai šis algoritmas s pabaigoje, n yra 2, kuris iš tikrųjų atitinka numerį žmonių kambaryje. Iki šiol taip gerai. Kaip apie kampinio atveju nors? Tarkime, kad yra 0 žmonių į šalia manęs room--, kas daro skaičiavimas. Pagal vieną, mes vėl inicijuoti n 0. Šį kartą, nors, linija trijų nevykdo ne visi nes nėra į kambarį asmuo. Ir taip n lieka 0, kuris iš tikrųjų atitinka žmonių į kambarį skaičius. Gana paprasta, tiesa? Tačiau skaičiuojant žmones vienu metu yra gana neefektyvus, taip pat, ar ne? Žinoma, mes galime padaryti geriau. Kodėl neskaičiuoja du žmones vienu metu, vietoj skaičiuoti vienas, du, trys, keturių, penkių, šešių, septynių, aštuonių, ir taip toliau. Kodėl gi ne tikėtis dviejų, keturių, šešių, aštuonių, ir tt? Jis netgi skamba greičiau. Ir tai tikrai yra. Leiskite išreikšti šią optimizavimas į Pseudocode kodą. Tegul n yra 0. Už kiekvieną žmonių poros kambarys, nustatyti n lygi n plius 2. Gana paprasta pakeisti, tiesa? Užuot skaičius žmonių vienu metu, mes vietoj suskaičiuoti du iš jų tuo pačiu metu. Šis algoritmas s, taigi, du kartus taip greitai, kaip paskutinis. Bet tai teisinga? Pažiūrėkime. Ar jis veikia, jei yra du žmonės kambaryje? Pagal vieną, mes inicijuoti n 0. Dėl šios viena pora žmonių, tada mes prieaugio n iš 2. Ir taip iki šios algoritmo pabaigos n yra 2, kuris iš tikrųjų atitinka numerį žmonių kambaryje. Tarkime, šalia, kad yra nulis žmonių kambaryje. Pagal vieną mes inicijuoti n 0. Kaip ir anksčiau, linija trijų nevykdo jai visą nes nėra jokių žmonių poros į kambarį, ir taip n lieka 0. Kuris iš tiesų atitinka žmonių skaičius kambaryje. Bet kas, jei yra trys žmonės į kambarį? Kaip tai algoritmas bilieto? Pažiūrėkime, atsižvelgiant viena, mes inicijuoti n 0. Dėl tų žmonių pora, tada mes prieaugio n iš 2. Bet kas tada? Yra ne kita pilna pora žmonių į kambarį, taip liniją du nebetaikoma. Ir taip iki algoritmas pabaigos, n yra dar 2 kurie nėra teisingi. Iš tiesų tai algoritmo sakė būti Buggy, nes jis turi klaidą. Leiskite žalos atlyginimo su kai nauja Pseudocode kodas. Tegul n yra 0. Už kiekvieną žmonių poros kambarys, nustatyti N lygų n plius 2. Jei vienas asmuo lieka neporiniai, nustatyti N lygų n plius 1. Norėdami išspręsti šią konkrečią problemą, mes nustatytas suderinant keturių būklė, kitaip žinomas kaip filialas, kad tik jas vykdo Jei yra vienas asmuo, mes negalėjo suporuoti su kitu. Ir todėl dabar, ar yra vienas, ar tris, arba bet keista skaičių žmonių į kambarį, Šis algoritmas dabar juos skaičiuoti. Ar mes galime padaryti dar geriau? Na, mes galime tikėtis trise, arba keturiomis, ar net penkerių metų ir dešimtys, bet be to, ji ketina gauti šiek tiek sunku punktą. Tuo dienos pabaigos, nesvarbu, ar vykdo kompiuterius ar žmonėms, algoritmai yra tik instrukcijų rinkinys su kuriais, siekiant išspręsti problemas. Tai buvo tik trys. Ką problema prašau išspręsti su algoritmą? David J. Malan: Taigi sąmoningai, labai paprasta programa, labai paprastas algoritmas, pasiekti kažką labai paprasta, skaičiuojant žmonių skaičius kambaryje. Bet leiskite erzinti išskyrus kai atstovo funkcijos, kad čia yra iš tikrųjų bus naudinga, net jei įgyvendinti pats kompleksas programinės įrangos. Taigi, pavyzdžiui, šiuo pirmoje eilutėje, mes turime tai, ką mes vadiname kintamojo, ir iš algebros, jūs paprastai susipažinę naudojant x ir y ir z kartais, ir taip toliau. Bet programavimo, kintamieji vis dar yra, bent dienos pabaigoje, labai panašus į tai. Bet tai turbūt paprasčiau galvoti iš kaip tik konteinerio kintamąjį. Ir, tiesą sakant, tai kai bitų skaičius įgyvendinamos kažkaip kietajame diske ar kompiuterio atmintyje, bet daugiau apie tai ateityje. Tai tiesiog konteineris. Ir jei jūs ką nors pasakyti kaip jau n 0, gerai, kad kaip skambina taurę dubuo čia n, tiesiog savavališkai vardas, ir pradėti nieko į jį iš pradžių. Taigi nuo šios vertės dubuo dabar yra nulis. Ir, žinoma, jei jūs suvokia vėlesniu linija, faktiškai prieaugio tam tikrą liniją kodas, kaip šiuo trečioje eilutėje čia 1, tai yra tarsi sakydamas, kas dabartinė vertė n, tai 0, plius 1, įdėti kažką panašaus ping-pong kamuolys čia. Dabar tai vertė kintamasis yra tiesiog 1. Ir tu gali labai greitai ekstrapoliuoti, bet dabar tai 2, dabar tai 3, ir taip toliau. Taigi, kad viskas kintamasis. Tai saugojimo gabalas iš tikrųjų saugoti tam tikrus duomenis. Nes dabar tai ping-pong kamuoliukas. Yra tai skaičius. Bet jis gali būti žodžiai žodyną, kaip rašybos tikrintuvas Aš užsiminė trečiadienį vienas iš pernykščių probleminių rinkinių. Dabar dar vienas svarbus idėja, kad panašiai yra gana intuityvus aš norėčiau teigti, yra tai, kad kilpa. Ir į šį procesą kilpa Skaičiuojant visiems tai, žinoma, daro tą patį dalykas vėl ir again-- arba vienas metu ar du vienu metu. Ir jūs galite išreikšti tai anglų kalba, arba Pseudocode kodas, bet įvairiais būdais, tačiau naudojant šį prielinksnį "už" yra labai paplitęs būdas tai daryti. Kiekvienam kambaryje asmeniui, tai padaryti. Vėl ir vėl. Ir tai, kad jis atitrauktas, linija trijų, tiesiog reiškia, kad tai, ką jums turėtų daryti yra dalykų, kad manimi atitraukiama žemiau linijos dviejų pati. Tiesiog žmogaus konvencija, bet paplitusi kaip matysime faktinio Aukštojo lygio programavimo kalbomis. Dabar šiek tiek įdomesnis yra kai jūs gaunate kampinio atveju. Pavyzdžiui, kampinis atvejis buvo, kai ten buvo trys žmonės, ar penkis, septynis, arba bet keista skaičių žmonių į kambarį, nes tai daro po du stabdžius galiausiai, nes jūsų ketina praleisti ką nors, arba ne pati pradžia arba labai galas priklausomai nuo to, kaip jūs tai darote. Ir taip, dabar turiu šį filialą arba sąlyga, jei vienas asmuo išlieka, tada eiti į priekį ir dirbti, kad vienas vienatvė asmuo negavau suporuotas su kitu asmeniu. Taigi tai, ką mes vadiname sąlyga, arba filialas. Dabar Pseudocode kodas apskritai gali būti parašyta, kad išspręsti bet kokią problemų. Ir tai, ką aš maniau, mes norime padaryti čia yra šiek tiek laiko pakviesti mes pasakysime CS50 s savo Rob Bowden scenoje turi būti sujungtos dvi savanorių, kas neįsivaizduoju, kas laukia. Rankų krito, kai pasakiau, kad. Kaip apie jus pabaigos čia, nagi iki. Ir kaip apie iš toliau toli, kaip apie būdą gale. Eilėje, nagi su savo rankas aukštyn. Gerai, o koks tavo vardas? ANITA: Anita. David J. Malan: Anita. Gerai, nice to meet you. Leiskite man pristatyti jums Rob Bowden. Tai Anita. Ir koks tavo vardas? Kiersten: Kiersten David J. Malan: Kiersten. Kiersten, nagi aukštyn ir patenkinti Rob Bowden ir Anita. Nice to meet you. Kiersten: Nice to meet you. David J. Malan: Gerai, Rob. ROB BOWDEN: Nice to meet you. David J. Malan: Anita. Kiersten: Sveiki Anita. David J. Malan ir jūsų keli šimtai klasiokais. Taigi, dabar leiskite man eiti į priekį ir ištraukite iki tik paprasta programa čia Mac OS, kuri bus leiskite man tikrai Užrašoma kai natas. Ir jei jus vaikinai nori imtųsi pozicija vienoje iš šių mokyklų ten, leiskite man eiti į priekį ir pradeda sąrašas iš Pseudocode kodą, jei bus. Ir tai, ką aš noriu padaryti čia galiausiai, tai tipo jums kai instrukcijos, kad mūsų auditorijos nariams yra iš tikrųjų ketinate deklamuoti už mus. Leiskite man eiti į priekį ir tik pakeisti tai numeruota sąrašą kad atitiktų tai, ką mes darome ten. Ir tai, ką aš ruošiuosi daryti su jūsų pagalba yra parašyti programą į Pseudocode, su kuria šie vaikinai ketinate įgyvendinti žemės riešutų sviestas ir želė sumuštiniai. Taigi, tai galbūt Savalaikis į parodyti nors kai kurie iš jūsų galėjo matyti internete tik už trumpą erzina metu. [MUZIKA BUCKEWHEAT BERNIUKŲ "Žemės riešutų sviestas  JELLY TIME "] David J. Malan: Gerai. Tai pakankamai, kad. Taigi čia, tuo tarpu, aš turiu pora Google akiniais, kurie mes įdėti CS50 savo Rob Bowden pamatyti pasaulį jo akimis. Ir mes darome geriausiai paštu gamyba iš tiesų pynimas iš kokio Rob siužetai yra matyti dabar į šią faktinę paskaitos vaizdo su mūsų du Savanoriai šalia jo. Taigi, ką aš ruošiuosi daryti yra, aš būsiu mašininkas. Mes turime tikslą čia iš iš tikrųjų rašyti programą su kuriuo padaryti, galiausiai, žemės riešutų sviestas ir želė sumuštiniai, bet šitie trys ketinate elgtis taip, lyg jie yra kompiuteriai. Ir kompiuteriai, ne dienos pabaigoje, iš tikrųjų yra gana kvailas prietaisai. Jie super greitai, bet jie gali būti tik padaryti, tiesiog, ką jie sakė. Jūs negalite tiesiog pasakyti, kad žemės riešutų sviestas ir želė sumuštiniai. Jūs turite užprogramuoti juos tai daryti. Jūs turite pasakyti jiems tiksliai, ką daryti, mažiau viskas vyks siaubingai ir, tikiuosi, Įdomiai kreivai. Taigi su tai sakė, mes turime vienas skambučių iš auditorijos už ką turėtų dėti vienas bus, jei tikslas čia yra padaryti žemės riešutų sviestas ir želė sumuštiniai. Taip? PUBLIKA: [nesigirdi] duonos krepšys. David J. Malan: Atidarykite duonos maišelį. Taigi, jei trys varžovai būtų norite tęsti padaryti, kad pažodžiui. Atidarykite duonos maišelį. [PUBLIKA Atsakyti] David J. Malan: Taigi leiskite dirbti, kad. Viskas gerai. Taigi antro žingsnio, how-- Paimkime tai toliau. Taip, priekyje. PUBLIKA: [nesigirdi] duona. David J. Malan: Kas tai? PUBLIKA: Išimkite duoną. David J. Malan: Išimkite duoną. Panašiai lakoniškas. Ačiū. [Plojimai] David J. Malan: Štai jis? Gerai, kad žingsnis du vyksta būti pašalinti duoną. Gerai, kas nori parašykite mums ilgesnį sakinį? Kažkas? Šiek tiek daugiau [nesigirdi]. Ne, nieko dabar. Taip? PUBLIKA: Vieta du riekelės vieną šalia kito. David J. Malan: Vieta du riekelės vieną šalia kito. [PUBLIKA Atsakyti] David J. Malan: Vieta du riekelės vieną šalia kito. Ketvirtas žingsnis. Taip? PUBLIKA: Gerkite rankų ir jį lengvai ant žemės riešutų sviesto dangčiu. [PUBLIKA Atsakyti] PUBLIKA: [nesigirdi] šalia žemės riešutų sviestu. David J. Malan: Kas? Pasakykite, kad dar kartą. PUBLIKA: Atsukite dangtelį ir įdėti jis švelniai prie žemės riešutų sviestu. David J. Malan: Įdėkite ją švelniai šalia žemės riešutų sviestu. Gerai, pažanga. Penktas žingsnis. Puikus. Taip? Pasiimti peilį. David J. Malan: pasiimti peilį. Gerai, šeštojo veiksmo. Taip? PUBLIKA: Laikykite peilį už rankenos. David J. Malan: laikykite peilis už rankenos. Laikykite peilį už rankenos. Žingsnis septyni. Taip? PUBLIKA: [nesigirdi] peilis žemės riešutų sviestas ir kaip tiek iš [nesigirdi]. David J. Malan: Įdėkite peilis in-- I išgirdo "įdėti peilis žemės riešutų sviestas ir imtis tiek mažai, kaip įmanoma. " Beje, iš pradžių nuimkite popierių. Visos teisės devynios žingsnio. Žingsnis devynis. Žingsnis devynis. Mes ne iš tikrųjų padarė sumuštinį dar. Taip? PUBLIKA: Naudojant peilį su žemės riešutų sviesto, taikomos žemės riešutų sviesto minėtos duonos. David J. Malan: Naudojant peilį žemės riešutų sviestas, taikomos žemės riešutų sviesto sakė duonos. [PUBLIKA Atsakyti] David J. Malan: Visi 10 teisingas žingsnis. 10 etapas. Taip? PUBLIKA: Skonis žemės riešutų sviesto kokybei užtikrinti. [PUBLIKA Atsakyti] David J. Malan: 11 etapas. Žingsnis 11. Žingsnis 11. Nagi. Taip? Štai čia. PUBLIKA: Atsargiai pasiimti želė. David J. Malan: Atsargiai pasiimti želė. Gerai, tada dar ranka buvo iki. Teisė už jus. Taip, mėlynai. PUBLIKA: Gerai, pašalinti dangtis iš [nesigirdi], taip, Dangtelio išėmimas iš drebučių. [PUBLIKA Atsakyti] David J. Malan: Nuo želė. Ha ha. [PUBLIKA Atsakyti] David J. Malan: Ir? PUBLIKA: Ir vos nušluoti bet [nesigirdi]. [PUBLIKA Atsakyti] PUBLIKA: Žinoma, prieš [nesigirdi] išimkite popierių iš drebučių. David J. Malan: Išimkite popierių iš drebučių. Žingsnis 14. Mes beveik ten. Taip? PUBLIKA: Apversti želė butelis prieš viskas iškrenta. David J. Malan: Apversti želė butelis prieš želė iškrenta. 15 žingsnis. PUBLIKA: Uždėkite dangtelį. David J. Malan: Uždėkite dangtelį. 16 žingsnis. Taip? PUBLIKA: [nesigirdi] David J. Malan: Pasakykite, kad dar kartą. PUBLIKA: Paimkite švirkštimo priemonės dangtelį jūsų želė. David J. Malan: Išjungtas jūsų želė. Taigi really-- Oi. Nagi. Uždėkite dangtelį. Įdėkite cap-- Sakei Nuimkite dangtelį nuo drebučių. Jauskitės kaip mes į kilpos tiek. Žingsnis 17. Taip? PUBLIKA: [nesigirdi] David J. Malan: Pasakykite, kad dar kartą. PUBLIKA: [nesigirdi] David J. Malan: Grįžti į step-- PUBLIKA: [nesigirdi] David J. Malan: Pašalinti dangtelis iš žemės riešutų sviesto. Taip? PUBLIKA: Drop visi želė ant duonos. David J. Malan: Drop visi ant duonos želė. David J. Malan: Mes beveik ten. Žingsnis 19. PUBLIKA: Pašalinti perteklius želė. David J. Malan: Haha, želė. [Plojimai] David J. Malan: Kodėl we-- dar vienas žingsnis siekiant pasinaudoti šia namus. Dar vienas žingsnis ir tada mes tarnauti sumuštinius. Taip? PUBLIKA: [nesigirdi] David J. Malan: Nors bet sumuštinis remains-- tegul įtrauka this-- valgyti. [PUBLIKA juoko] David J. Malan: Gerai, ačiū Jūs mūsų savanorius čia. [Plojimai} David J. Malan: Turime kai gražus atsisveikinimo dovanas kiekvienam iš jūsų. Jūsų pačių žemės riešutų sviestas, želė, ir duona parsivežti namo. Ačiū. Kiersten: Ačiū. David J. Malan: [nesigirdi] laukiami. [Plojimai] David J. Malan: Taigi, tai yra, Žinoma, juokinga pavyzdys. Teisė? Bet tai rūšies atskleisti, kaip mes žmonės tiesiog aiškumo savaime suprantamu dalyku. Ir aš tai jau buvo kalbėti su žmogum, jis ar ji tiesiog žino, ką reiškia. Kompiuteriai nesiruošia žinoti, ką reiškia, net tada, kai naudojate, kaip mes ruošiamės daryti šiandien, programavimo kažką naujo, vilkite ir lašas, dėlionės gabalas stilius, kalba. Net skirtas jauniems vaikai, jūs turite kad tai būtų aiškus ir toks pažodinis su ką jūs norite, kad jūsų programa daryti. Dabar galiausiai, mes bus programavimas ne Pseudocode kodą Anglų kaip sintaksės, bet kodas arba, tinkamai, kodo. Šaltinis kodas yra tik išgalvotas būdas Aprašant kodą jūs iš tikrųjų rašyti su klaviatūra tai ne anglų kalba per se. Tai C arba Java arba C ++ ar kažką kaip, kad mes netrukus matysime. Ir iš tiesų, tiesiog panika nedaugelis iš jūsų, iš pirmo žvilgsnio, tai programa, parašyta kalba vadinama C. Bet un-panika jums keletą, Jums bus visiškai suprasti, kas vyksta apie ateiti kitą pirmadienis, kai jį ateina į kažką panašaus į tai. Atvirai kalbant, tai vyresni kalba. Tai gana neaiškus, bet tai atstovas iš kalbų šių dienų daug, kad turi daug skliausteliuose ir garbanotus petnešos ir kabučių ir kabliataškiais. Ir tai daug sintaksinė stuff, kad nėra ne visi intelektualiai įdomu. Iš tiesų, tai pratarti išsiblaškymas nuo labai paprastų idėjų , kurie žiūri mums į veidą. Ši programa, kaip jūs galbūt tiesiog atspėti, spausdina kažkieno kompiuterio ekrane žodžiai "Sveiki kablelis pasaulyje". Štai ir viskas. Taigi aišku, yra daug dalykų, kad yra gauti į kelią kai akivaizdumas ten, bet tai vyksta labai greitai slydimo toli ir visiškai intuityvus. Iš tiesų, tai, ką mes ketiname daryti, šiandien distiliuoti tai gana sudėtingas ieško programa, kuri vėl jums ateis suprasti greitai, bet kažkas daug paprastesnis. Leiskite tik pasakyti, ką reiškia. Leiskite atkreipti ką mes vadiname nuotrauką būdu šių įspūdį čia. Taigi tai yra programavimas kalba žinomas kaip nulio. Jis buvo sukurtas MIT Media Lab. Ir tai, ką jūs pamatysite problema nustatyti nulį, kuris bus išleistas vėliau šį vakarą, mes turime jums eiti į šį URL čia scratch.mit.edu. Ir jie turi internete sąsaja, per kurią rašysite savo pirmąją programą. Arba tiems iš jūsų, su prieš patirtis, jūsų antroji programos, bet tokioje aplinkoje, kuri yra tikriausiai mažai susipažinę ir kad bus stumti jums sukurti kažką naudojant šią labai vizualiai aplinką. Dabar, ką aš ruošiuosi padaryti čia yra atverti pačią programą. Ji egzistuoja ne tik kaip interneto naršyklės, bet taip pat, kaip atsisiųsti programos kad jūs iš tikrųjų galite naudoti ją jei jūs neturite interneto prieigos. Ir aš ruošiuosi daryti, kad į čia, Sanders, tiesiog atveju "Wi-Fi" nėra bendradarbiauti super gerai. Ir tai, ką aš ruošiuosi padaryti, tai taškas iš kelių funkcijų šios programos. Taigi, kad būtų aišku, turiu tik du kartus paspausti piktogramą ant mano darbastalio, arba analogiškai dingo scratch.mit.edu, ir jis ištraukė šį langą. Tai programavimo aplinka. Tai programinė įranga, kad kai kurie iš mūsų draugams MIT rašė, kad galime su mumis ir parašykite programos kalba vadinama nulio. Dabar tai atsitinka būti katė, kuris taip pat vadinamas "Scratch ir tai yra jo pasaulis, kuriame jis gyvena. Tai etapas, taip sakant, kad stačiakampis viršutiniame kairiajame kampe. Ir jis neturi atrodyti kaip katė. Jūs galite padaryti jam atrodo kaip nieko ir jums gali turėti daug tokių sprites, ar simbolių, į programą. Tuo tarpu daugiau nei čia kas Gerai, yra didelis tuščias šiferis. Ir tai, kai, per akimirką, mes ketiname pradėti programavimas vilkdami ir nuleisti tai grafinis dėlionė vienetų, kurie yra dešinėje čia per vidurį. Ir ten taip daugiau jų negu mes praleisti laiką čia klasėje nes jūs pamatysite, kad jie visi gana intuityvus. Vėlgi, ji sukurta vaikams, bet mes naudoti jį erzinti išskyrus kai kurios pagrindinės idėjos kintamųjų, kilpos, sąlygos, ir, netrukus, viskas kaip funkcijų ir renginių ir verpalai ir kiti ornamentuoti dalykų mes gauti prieš ilgas, kad iš tikrųjų sukurti kažkas iš nulio. Kalambūras skirti. Dabar, ką aš ruošiuosi daryti čia yra spauskite ant ne judesio, bet kontrolę. Ir tai tik kategorizavimo here-- ir matau, skiriasi spalva nustatyti blokus. Tačiau pastebėti keletą žinomus žodžius. "Jei" ir "else if" ir "Pakartokite". Ir jūs tikriausiai galite atspėti tai primena filialo, arba sąlygos, mes matėme, ir net apsisukimo konstruktas. Taigi, mes turime panašius blokus čia. Bet įdomiausia vienas tai vienas čia. Kai žalia vėliava paspaudėte, tai tiems, su iš anksto programavimas patirtis, yra lygiavertis su pagrindinės funkcijos. Bet tiems, nepažįstamas, tai dėlionė gabalas kad bus ateityje pradėti visą mūsų programą. Tai tiesiog reiškia, kai aš einu, ir tai programa, ir spustelėkite žalią flag-- kurią galite pamatyti čia į viršutiniame kairiajame kampe UI, taip matyti žalią vėliavą šalia raudono ženklo "Stop"? Kai paspaudžiu, kad mano Programa ketina paleisti. Dabar aš ruošiuosi daryti kažką super paprasta su nulio. Aš ruošiuosi eiti į priekį ir eiti į išvaizda skydelyje čia, kur aš turiu krūva purple įspūdį, ir aš ruošiuosi eiti į priekį ir daryti kažkas super paprasta, kaip, tarkim. Ir then-- pranešimas ši tekstas baltame laukelyje yra editable-- aš ruošiuosi pasakyti "Hello world", tiesiog, kaip mes padarė tą tekstinės versija atgal momentas. Ir dabar, jei aš einu ir spustelėkite šį žalia vėliava aš dabar užprogramuotas. Tai nėra ypač įdomi programa, bet aš padariau kompiuteris kažką daryti. Aš pradėjau programą ir padarė tai, ką aš pasakiau tai daryti. Dabar galiu toliau vilkite ir upuść vis daugiau ir daugiau šių įspūdį ir jie ketina susikabinti, bet tegul slap kai terminologija čia kad mes pamatysime kartojasi visą kursą, ir tikrai per kompiuterių mokslo ir programavimo apskritai. Šis "pasakyti" trinkelė, raudonos, tegul tiesiog pradėkite skambinti pareiškimą. Tai kaip iš tiesų ataskaitoje. Ar tai. Taigi, tai iš kategorijos instrukcijos, kad jums gali pamaitinti kompiuterį kaip iš programos, arba algoritmą. Ir, kad būtų aišku, jūs tikriausiai savaime suprantamu dalyku kad jūs turite programas jūsų kompiuteryje. Ir jie tipo algoritmai, tačiau Programa yra tikrai algoritmų krūva kad kai kurie žmonės parašė. Jie supakuoti jį ir jie pardavė jį taip jums, ar jie paskelbtas svetainėje galite atsisiųsti. Taigi, programa yra tik visa krūva nulių ir , kad kažkaip, žmonės sukūrė. Ir tie nuliai modeliai ir tie atstovauti dalykus, galiausiai, kaip "say hello pasaulio" arba "Play ši muzika "arba" žaisti šį vaizdo įrašą " arba "siųsti el.laišką." Bet mes grįžti būdas išsamiau, ką Programa yra, kai jūs, sau, rašyti juos. Štai dar vienas statement-- "Palaukite, kol vieną sekundę." Aš ne naudoti tai dar, bet jei aš noriu mano programa pristabdyti for a moment, ką nors padaryti, aš galiu pasakyti, kad tai padaryti. Palaukti vieną sekundę. Dabar dar vienas jų galėtų būti "leisti garsą." Taigi, tai yra unikalus nulio, ją turi galimybę žaisti garsus. Taigi, teiginys galėčiau naudojimas yra čia ", žaisti garsą." Tuo tarpu, Būlio išraiška, todėl tai yra mėgėjas žodis pavadintas po to, kai tik vaikinas, vardu Ponas bool, ir tai yra viskas apie klausimą. Tiesa ar false-- yra pelės žemyn? Būlio išraiška yra tiesiog kai anglų išraiška kad yra arba true arba false. Bet ar ne. Arba vienas arba nulis. Jūs galite galvoti apie tai bet įvairiais būdais, bet tai arba tiesa, arba tai klaidinga, galiausiai. Taigi "pelė žemyn klaustukas" kad būtų Būlio išraiška. Ir jūs galite galvoti apie kitus, galbūt. Pavyzdžiui, "yra palikta skaičius mažiau nei teisinga numerį? " Tai taip pat būtų Būlio išraiška. "Mažiau nei" yra Būlio išraiška. Tai vienas, taip pat ", liečiant pelės žymeklį." Nesu tikras, kodėl jie pavadino jį pelės žymeklį. Tai tiesiog reiškia, yra žymeklis, yra arrow ekrane, liečiant katė, pavyzdžiui. Arba kai kurie kiti aspektas ekrane. Ir tai klausimas, ir vėl kad žymi Būlio išraiška. Kažkas, kad jūs galite norite naudoti tokios būklės. Taigi mes atėjo, kad tik akimirkai. Jūs galite "ir" dalykai kartu. Taigi, jei norite sužinoti, ar ši yra atvejis, ir tai yra atvejis, galite naudoti "ir" bloką panašaus į tai. Ir štai ši sąlyga. Atkreipkite dėmesį į mažai atidarymo formą į šios geltonos dėlionės gabalas viršuje, tai primena formos kad mes tik pamačiau prieš akimirką. Kiekviena iš šių Bulio išraiškos turėti šių smailių briaunų kairėje ir dešinėje. Ir tai todėl, kad MIT žmonės nusprendė kad vizualiai perteikiant formų, galite rūšies padėti žmonėms, studentai ir vaikai, tiek, į rūšies užpildyti ruošiniai pažodžiui. Dabar, puzzle-- kad atidarymas yra šiek tiek mažas, ir kaip matysime programoje, į nulio, jis išaugs, kad tilptų. Tai bus išlaikyti savo formą, galų gale. Taigi sąlyga tegul jums nuspręsti "Turėčiau daryti kažką, ar ne?" Būlio išraiška yra faktinis klausimas Jūs naudojate nuspręsti man eiti į į kairę ar man eiti į dešinę kai aš susiduria su tai Vadinamasis šakutės kelyje? Jūs galite turėti du filialus. Jei kažkas yra tiesa, tai tai, dar eiti, kad taip, arba galite tiesiog padaryti nieko visi, nes tai blokas numanomas. Be to, mes galime lizdą šiuos dalykus. Taigi, jei norite, kad trigubai šakutę į kelių, arba tai, arba tai, arba kad tai, galite tiesiog lizdą šie dalykai kartu. Ir jis pradeda gauti šiek tiek negraži, galiausiai, tikrai, bet logikos yra vis dar tas pats. Jūs galite tiesiog skaityti tai iš viršaus į apačią ir jis sako, ką jis means-- jei tai Tiesa, tai padaryti, nors, jei kitur. Kilpa negauna paprastesnis nulio. Visada atlikite šiuos veiksmus. Dabar tu gali galvoti jums gali padaryti daug, nes ten nėra daug erdvės tarp viršaus ir apatinė šio įspūdį atidarymo. Bet pamatysite įbrėžimams ketina augti, kad tilptų kuo daugiau įspūdį kaip norite įsprausti ten. Kitas kilpos gali būti išreiškiamas kartojasi. Jei žinote iš anksto: "Aš nori kažką daryti 10 kartų, " Jūs galite tiesiog pasakyti nulio kažką daryti 10 kartų. Ir, tuo tarpu, mes galime turėti kintamuosius. Taigi čia yra savavališkas vienas, tai oranžinė šiuo atveju, ir tai yra viesulas kelionė. Vėlgi, jūs rasite tai labai prieinama Kai pradėsite nukreipta ir spustelėdami. Aš pavadintas mano kintamasis n, bet aš galėjo jį pavadino, ką noriu, ir aš jį nustatyti čia, tai savavališkas pavyzdys, iki nulio. Dabar matome, kaip programa labas pasaulis yra ne visi, kad įtikinama, tad iš tikrųjų atverti kažką kad buvęs studentas padarė. Leiskite man eiti į priekį ir atverti, Pavyzdžiui, tai vienas čia už kurį norėčiau turėti savanoris. Gerai, kaip about-- eikime toliau. Taip, nagi iki. Koks tavo vardas? ABBY: Abby. David J. Malan: Abby, nagi iki. Taigi ar jūs kada nors grojo šis žaidimas anksčiau? ABBY: Ne David J. Malan: Gerai. Dovydas malonu susitikti su jumis. Nagi daugiau. Ir kas yra jūsų programavimas fonas, jei tokių yra. ABBY: aš sužinojau šiek tiek C ++. David J. Malan: Jūs išmoko tam tikrą C ++. Ir kas yra jūsų žaidimas žaisti fone? ABBY: Ne daug. David J. Malan: Gerai, kad mes priimsime, kad. Taigi čia, kaip žaidimas vyksta į darbą. Aš ruošiuosi eiti į priekį ir spustelėkite žalią vėliavą, kuri yra čia viršuje dešinėje. Dabar jūsų pirmtakas klasės davė jums keletą instrukcijas čia. Ir tik akimirką, ją sako: "erdvė pradėti." Taigi pirmyn ir paspauskite tarpo klavišą. Kompiuterinių žaidimų: Pikachu. David J. Malan: Ir tikslas sugauti maistą, kaip parodyta čia kairėje. Ir [nesigirdi] [ŽAIDIMAS muzikos grojimo] David J. Malan: Aww, gerai, ačiū už žaidimą. Mes čia turime mažai atsisveikinimo dovana jums. Mes turime CS50 streso kamuolys, , jei norite pasirinkti. Gerai, gerai, kad susitikti su jumis. Dėkojame, kad atvykote ir sudėtingas. Taigi, mes turime daugiau streso kamuoliukus, todėl darykime dar vieną pavyzdį motyvuoti. Savanoriu? Gerai, kaip apie čia priekyje. Koks tavo vardas? PHILLIP: Phillip. David J. Malan: Phillip. Nagi iki Phillip. Taigi, Phillip bus ginčijo su kitu žaidimo kad vienas iš jūsų pirmtakai rašė kaip dalis problemos nustatyti nulį, vadinamas Ivy labiausiai žaidimas. Ir mes matome tik momentas, kas reiškia tai. Phillip, nice to meet you. Kas yra jūsų fono? PHILLIP: Priimta daug kodavimo daug. Priimta mažai žaidimų, taip pat. David J. Malan: Gerai. Turite lošimų daug, per daug. Ir jūs žaidėte šį žaidimą ir anksčiau? PHILLIP: Nėra David J. Malan: Visi Gerai, kad čia mes einame. Aš ruošiuosi eiti į priekį ir spauskite žalią vėliavą. [ŽAIDIMAS MUZIKA] [MUZIKA MC Hammer ", U negali liesti Šis"] PHILLIP: [nesigirdi] David J. Malan: [nesigirdi] PHILLIP: [nesigirdi] [Atsakyti] [MUZIKA MC Hammer ", U negali liesti Šis"] David J. Malan: [nesigirdi] Plūgas per ją. PHILLIP: [nesigirdi] David J. Malan: Tęsk. [MUZIKA MC Hammer ", U negali liesti Šis"] David J. Malan: Gerai. Sveikiname. [Plojimai] David J. Malan: mes pranešimas, kad internete vėliau taip kad galite vilkinti su juo taip pat. Prinstono ateina šalia, po to. Taigi dabar galime iš tikrųjų pradėti pradėti nuo nulio, taip sakant, ir iš tikrųjų statyti iki mes galime erzinti išskyrus kai kurias iš šių idėjų ir gauti kažką netgi daugiau sudėtingos pabaigoje. Aš ruošiuosi eiti per čia, ir aš ruošiuosi eiti į priekį ir sukurti naują failą. Taigi dar kartą, problema rinkinys bus vaikščioti jūs per kai kurias iš šių etapų. Tačiau viskas, ką aš padariau buvo eiti į meniu Failas ir I sakė: "naujas," tiek daug, kaip "Microsoft" Žodis ar bet kaip, kad programa. Ir tegul eiti į priekį now-- ir mes įgyvendinama "Hello world" prieš akimirką, bet darykime ką nors šiek tiek mielesnis. Aš ruošiuosi eiti į renginius. Ir aš ruošiuosi daryti ", kai žalia vėliava paspaudėte ". Ir tada aš ruošiuosi naudoti, mes galime pasakyti, filialą. Taigi, aš ruošiuosi naudoti "jei" sąlygą. Ir atkreipkite dėmesį, kaip kuo greičiau gauti arti jai, ji nori przystawkę kartu. Taigi aš atleiskite ir Snaps kartu. Ir dabar galiu padaryti kažką įdomaus. Jei aš slinkti čia, aš ruošiuosi pamatyti visa krūva blokus. Jei aš einu į "duomenys" - leiskite padidinti in-- yra kažkas apie kintamuosius. Jei aš einu į "judesio", galite matyt kreiptis dalykų aplink. Jei aš einu į "operatorių", - oh, tai įdomu, Galiu pasiimti atsitiktinių skaičių. Taigi leiskite man padaryti kažką tik kai tikimybė, tik todėl, kad. Aš ruošiuosi eiti į priekį ir perkelkite šį įspūdį, tai, kad mažiau nei blokas, todėl tik "Tai skaičius mažesnis negu kito?" Bet aš nenoriu kieto kodą numerį nes tai būtų gana beprasmiška. Taigi, aš ruošiuosi vilkite šį kūrinį čia, ir pastebėsite, kaip jis užsifiksuos, o dabar leiskite man eiti į priekį ir pasakyti "jei skaičius, kad manimi parenkamas atsitiktine tvarka yra mažesnis negu šeši, kurie taip ". Dabar kodėl tiek mažiau nei šeši? Kas tikimybė yra tai veiksmingai ketina duoti man, tiesiog intuityviai? Apie 50%, tiesa? Jei skaičius, kurį atspėti atsitiktinai tarp 1 ir 10 yra mažesnis negu šeši, aiškiai tai vienas, du, trijų, keturių ar penkių. Ir taip, kad ketina suteikti man 50% tikimybė, kad tai, kas vyksta? Na darykime kažką panašaus tai ", žaisti garso meow." Ir pranešimas, vėlgi, dėlionės gabalas auga kad tilptų tol, kol figūros sutapti. Štai kas svarbu. Leiskite pereiti prie nulio čia ir paspauskite "žaisti". Niekas nevyksta. Ar tai klaida? Ne, nebūtina. Tai gali būti tiesiog, kad didesnis skaičius buvo pasirinktas. Taigi leiskite tai padaryti dar kartą. Nieko. [MEOW] David J. Malan: Yra tai yra. [MEOW] David J. Malan: Again. Ne [Meowing] David J. Malan: Taigi, jei jūs kada nors grojo žaidimą, žinoma, kur stuff vyksta atsitiktinai, kaip blogi vaikinai ateina, ar ne ateina į ekraną, arba viskas krenta, ar ne mažėja, tai tik todėl, kad kažkas super paprasta, kaip tai vyksta. Pasirinkite atsitiktinių skaičių, ir, jei tai mažiau, nei kai vertės, gal tai padaryti, o gal padaryti. Mes galime įtraukti kad į būklę. Padarykim ką nors kita. Leiskite mesti, kad toli. Jūs galite atsikratyti daiktų iki tiesiog vilkdami jį į kairę ir paleidi. Leiskite man eiti į priekį ir daryti amžinai blokas ir labai greitai kažką erzina. Leiskite man eiti į priekį ir pasakyti "žaisti garso meow." Bet aš nenoriu, kad tai būtų pernelyg erzina, todėl leiskite man patraukti šį bloką, "Palaukite vieną sekundę", o pranešimas ten daugiau nebėra už jį. Tačiau, jei jūs einate pakankamai arti, jis nori eiti ten. Taigi, aš tegul eina ir jis bus augti užpildyti bloką. Taigi, dabar, tai kilpa. [Meowing] David J. Malan: Aš tiesiog tai daryti amžinai. Vėl ir vėl. Tai tiesiog nėra natūralu skamba. Leiskite man eiti į priekį ir tai pakeisti į ne vieną sekundę, iki dviejų sekundžių ir paspauskite "Enter". Ir kas malonu apie Scratch yra kad galėtumėte suprogramuoti interaktyviai. Padaryti kaita, gal Enter arba Play vėl, ir ji bus tik nesustoti. Na, dabar, kodėl ne mes kažkas šiek tiek mielesnis? Užuot daryti viską nuo nulio, leiskite man eiti į priekį ir atverti avansą padarė vieną, kad aš iš anksto kepti, vadinamas "Tinka kat." Ir mes po visų šie failai internete, ir problema nustatyti nulinio pasakys kaip prieiti prie jų ir juos atverti. Ir pranešimas, tai yra gana paprasta. Tačiau iš anksto, man atrodo, kad jau griebė "visada" blokas, todėl aš turiu kilpą. Ir tada aš gavau "jei" sąlygą. Aš turiu Būlio išraiška. Taigi anglų kalba, tiesiog skaitydamas tai, ypač jei jūs niekada užprogramuotas anksčiau, tiesiog intuityviai, kas tai darys, šią programą? [PUBLIKA Pašnekovo] David J. Malan: Jei naminių kačių, katė ketina meow, tiesa? Kadangi "amžinai išvalyti" yra pelės žymiklį neliesdami katė. Taigi, kad būtų aiškus, ir aš nesakiau prieš tai, visi šie dėlionės objektai ir scenarijų, kuris mes kartu juos, taip sakant, scenarijus yra tapatinama su programa, tikrai, priklauso šiai katei. Ir priežastis is-- nes pranešimas kaip tai tas pats katinas čia yra paryškinamas, žemyn čia galite sukurti antra katė ar šuo ar tikrai viską, ką nori pavaizduoti. Galite importuoti kažką Photoshop, ar kaip, ir integruoti kažką, jei jūs noriu padaryti ją projektui. Ir ką jūs rasite, galiausiai, yra tai, kad jums galite pridėti scenarijus, pridėti galvosūkį vienetų, į atskirus simbolius. Taigi visa tai priklauso tai pirma katė. Taigi dabar, jei aš einu į priekį ir žaisti ši programa, nieko, kas vyksta. Bet jis veikia. Programa yra šioje amžinai kilpa, rūšies laukia ką atsitikti? [PUBLIKA Pašnekovo] David J. Malan: PET katė. Taigi, jei aš perkelti savo pelę link him-- [Meowing] David J. Malan: Taigi dabar Aš Petting katė. Tuo tarpu, mes galime turėti dvigubą filialą. Leiskite man eiti į priekį ir atidaryti iki ne naminių kačių. Mes po šio internete taip pat. Tai šiek tiek daugiau sudėtinga, tačiau savaime suprantama, jūs galite atspėti, galbūt kas nutiks. [Meowing] David J. Malan: katė meowing, grand old time. Tačiau ši programa yra žinoma vadinama "Negalima gyvūną augintinį katę" taip aiškiai, noriu naminių kačių. [Riaumojantis] David J. Malan: Negalima naminių kačių. Dabar galime pažvelgti kitame pavyzdyje. Tai vienas bus vadinamas "Sveiki, Sveiki, Sveiki," dėl priežasčių, kad bus aišku, nes kaip tik aš paleisti šią thing-- [SEAL BARKING] David J. Malan: Labai lengva rašyti erzina raštelius programas. [SEAL BARKING] David J. Malan: Dabar mes neisiu į labai išsamiai su visa tai, , bet pranešimas yra pora naujų funkcijų čia. Yra kintamasis, vadinama "nutildytas" ir tada ten sąlygų krūva. Ir dabar, leiskite man tiesiog erzinti jus, sakydamas: kad jei šis vaikinas gauna pernelyg erzina, Galiu paspausti tarpo klavišą, ir jis sustoja. Kadangi vaidmuo, kurį vaidina šie du scenarijai yra taip. Vienas iš jų tai daro loti kas keletą sekundžių. Kita yra tiesiog laukia man paspausti tarpo klavišą. Ir jei aš paspauskite tarpo klavišą, ji ketina pakeisti Šio kintamojo būsena, vertė šio kintamojo, tai, matyt, vadinamas "nutildytas" Aš ne skambinti tai kažkas nuobodus kaip n, Aš pašaukiau jį anglišką žodį "nutildytas". Nuo 1 iki 0 arba 0 iki 1. Nuo tiesa klaidinga ar neteisinga, kad tiesa. Ir todėl jūs galite iš tikrųjų dabar matote, kad jums gali turėti du scenarijus, du programos veikia tuo pačiu metu, ir jie abu gali būti sėdi kilpa daro kažką. Laukiama žmogaus padaryti kažkas panašaus pataikyti tarpo. [SEAL BARKING] David J. Malan: Ir dabar jis savo keliu dar kartą. [SEAL BARKING] David J. Malan: Taigi, ką dar gali mums daryti su šiais pavyzdžiais? Na, eikime į priekį ir daryti pavyzdys su skaičiavimo avis. Mes ir toliau tai palei linijas čia of-- tegul atverti avių pavyzdys. Ir pranešimas, panašiai kaip ir anksčiau, tai viena, laimei, yra šiek tiek mažiau erzina. Kai aš paspauskite žaisti here-- O ne, tai erzina. Jis ketina BAA su tam tikra tikimybe. Pažaiskime šį kartą. [AVIŲ BLEETING] David J. Malan: Vienintelis skirtumas yra mes pakeitėme kostiumas, taip sakant, ir mes perpus ir pasakyti ką, kad tikrasis skaičius yra. Na eikime į priekį ir imtis vieną žingsnį toliau. Ir leiskite man erzinti jus su vienas kitas bruožas čia. Vykime į priekį ir atverti programa, vadinama temas. Tiek daug, kaip jūs galite turėti vieną Sprite, turinti kelis scenarijus, Jūs galite turėti du animacinius, ir paukščių kačių, kurių kiekvienas turi savo scenarijų. Ir kiekvienas iš jų gali veikti vienu metu. Jeigu jūs kada nors girdėjote Žodis "interfeiso" kompiuteris "wielowątkowego" reiškia jis gali padaryti daug dalykų vienu metu, ir, iš tikrųjų, todėl gali subraižyti. Ir dabar pastebėti paukščių rūšies kvailas. Jis tiesiog daro, ką atsitiktinai, šoktelėti nuo ekrano. Aišku katė buvo užprogramuotas į natūra turi ieško galimybių į namus dėl Kadangi paukštis jis visada yra nukreipta į jį. Kol galiausiai jis pagauna tikrąją paukštis. Taigi aš ne galvoti apie detales čia, bet jūs galite rūšies įžvelgti pačias figūras, kai "Jei" sąlygos, kai kintamieji, gal kai kilpos yra galiausiai daro tą patį. Dabar leiskite man eiti į priekį ir atidaryti iki kažkas nutarusi erzinti kai kurie iš jūsų, ypač tie patogesnis, Ką jūs iš tikrųjų galite padaryti su šiuo. Aš ruošiuosi eiti į priekį ir atverti mygtukas čia. Ir tai yra super paprastas tariamas programa, bet žiūrėti, kas atsitiks kai I-- Stebėkite, ką atsitinka, kai aš atidaryti šį jo versija, čia naršyklėje, scratch.mit.edu. Ir kai aš spustelėkite šią Big Red mygtuką, pastebėsite, kas atsitiks. Taigi, kas čia vyksta? Yra iš tikrųjų daug daugiau sudėtingumas vyksta po gaubtu, nors aš įgyvendinama tai, ar atvirai, Dan Bradley įgyvendino tai taip paprasta. Jis sukūrė užsakymą Scratch galvosūkį gabalas, žinomas kaip "Scratch pratęsimo, jis pavadino jį Perjungti. Ir kas Perjungti yra ji siunčia per internetą pranešimas. Ir kad pati žinutė atrodo šiek tiek paslaptingas. Bet tai taip pat jums suprantate sąvoką pabaigoje. Pranešimą jis tikrai siuntimo atrodo šiek tiek kažką panašaus į tai. Tai tiesiog tekstas. Cryptic. Jūs ją suprantate metu mes gauti problema nustatyti septyni. Tai tiesiog siunčiant tekstinę žinutę per serveriui internete. Ir, kad serveris yra, galų gale, kalbėti su šio lemputę, kuri turi vieną iš šių išgalvotas lemputes jame, kad pati, kalba į Wi-Fi tinklą čia, kur vietos prietaisas žemyn here-- ir, galiausiai, tai tikrai sukant tą šviesą ir išjungti. Tačiau mes galime padaryti daugiau įdomių dalykų dar. Atkreipkite dėmesį, ką Danas padarė už mus. Jis padarė keletą sprites, kiekvienas kuris turi scenarijų laukia už paspaudimą. Ir jei aš spustelėkite raudoną, jis eina raudona. Jei gaunu mėlyna, jis eina melsvos. Žalia, geltona, oranžinė. Ir visa tai vyksta, vyksta išeitis į internetą, nusileisti čia lemputė, ir už jos ribų. Ir jei galite manyti it-- ir tai yra galbūt vienas iš labiausiai sudėtingų nulio projektai kažkas turi implemented-- jis tai padarė, tiesą sakant, per vieną dieną. Ir tai buvo iššūkis, numetė Danas, kai mes matėme turi dvejetainius lemputes, turime nulio, kaip mes galime juos sujungti? Ir, tiesą sakant, tai yra visiškai kažkas kas nors šiame kambaryje gali padaryti semestro end-- Ar jis reimplemented dvejetainiai lemputės, naudojančios pati sąsaja, kuri buvo mūsų iPad trečiadienį. Taigi, kad dabar, jei aš iš tikrųjų spustelėkite pliuso per čia mes turime vieną, du, trys. Galiu nukentėjo 16 ir pasukite, kad vienas ant. 128, ir taip toliau. Taigi, jei tik turi ir prapūsti savo mintis, galite daryti tai, ko labiau prieinama, neatliekant jokios įrangos tikrai. Tik kas dėl paties ekrano. Ir, tiesą sakant, tai, ką daugelis studentų galų gale padaryti tai kai tipo žaidimas kai meno kūrinys, arba kai Interaktyvioji animacija natūra. Ir aš pasakysiu, vienas iš mūsų draugai buvo tai vienas. Ir aš pagalvojau, jei mes gali pritemdyti šviesas, mes priimsime žvilgsnis tai galutinis Scratch projektą sudarymo. Bet ką jūs turėtų nepamiršti, kaip Galiu erzinti jus su vienu smulkmenų, ruožais pradės kitą savaitę. Darbo valandos prasidės kitą savaitę. Problema nustatyti nulį bus paskelbtas CS50.harvard.edu vėliau šiandien. Ir jums bus sutiktas Probleminio nustatyti nulio į CS50 savo Zamyla Chan, kuris veda dauguma mūsų walkthroughs. Tai yra įterptųjų video į problemines rinkiniai kad laikys tavo ranką per daug pradinio įsteigti ir per daug iš galimų dizaino sprendimų. Taigi, jei jūs kada nors buvo, kad emocijų kai įlaipinami namų darbai ir įdomu, kur pradėti? Ji turės už jus atsakyti. Ir dabar, galutinis programa vieną iš savo pirmtakų atsakydamas į klausimą, "Ką lapė sako?" [MUZIKA YLVIS "KĄ FOX PASAKYTI?] YLVIS: (dainavimo) Šuo eina Au. Kačių eina meow. Paukščių eina Čivināšana ir pelės eina girgždėti. Karvė eina moo. Varlė eina Kumkać. Ir dramblys eina išgertuvės. Antys pasakyti šundaktariauti ir žuvis eiti Blub. Ir antspaudas eina ow ow ow, bet ten vienas garsas, kad niekas nežino, ką lapė sako? Ir David J. Malan: Štai jį CS50. Mes pasimatysime Puzzle diena ir pirmadienį. [Plojimai] [MUZIKA YLVIS "KĄ lapė sako?"] Narrator: O dabar giliai mintys, pagal Daven Farnham. Šiandien gavau nukentėjo susiduria su telefonų knygoje. Painus, nes aš ne namo žiūrėti internete.