[VIDEOTOISTOSTA] [Auton oven Ajetaan] [Auton moottori KÄYNNISTYS] [Musiikkia] -Moving Varrella etsimään hyvinä aikoina ja hyvä uutinen. Kanssa hyviä ystäviä et voi hävitä. -Tämä Voisi tulla tapa. -Opportunity Koputtaa Katsotaanpa vain päästä pois ja napata se. -Joo! -Yhteen me napata se. -We'll Vetokoukku vaellus, bussilla tai Yellow Cab sitä. -Dammit. -Olemme Liikkuvat varrella. -Footloose Ja fancy ilmaiseksi. -Getting Siellä on hauskaa. Tule jakaa sen minulle. -Olemme Liikkuvat varrella. -Olemme Menossa jakamaan kuormaa. -Emme Tarvitse karttaa saat tämän näyttää tien. -Hei Fozzy, haluan sinun kääntyä vasemmalle jos tulet tienhaaraan. -Kyllä herra. Käänny vasemmalle tienhaarasta. Käänny vasemmalle. -En Usko, että. -Cruising Varrella löysimme valot maantiellä. -Ja Tiesi tai tieni. -Niin Luottamaan navigointi. -elokuva Tähtiä räikeä autoja ja elämän ylhäältä alas. -Olemme Storming iso kukkuloille. -Joo, Myrsky on oikeassa. Pitäisikö se sataa lunta? -Ei, En usko niin. -Moving Varrella. -Footloose Ja fancy ilmaiseksi. -Olet Valmis iso aikaa. -Onko Se valmis minulle? -Moving Varrella. Moving varrella. Moving varrella. Moving varrella. -En Luulet paremmin vetää yli. -Kyllä herra. [Lopeta toisto] [APPLAUSE] David J. MALAN: Tämä on CS50. Ja tämä on lopussa viikolla 0, mutta alku kaunis ystävyys. Olemme niin innoissamme täällä Yalen yliopistossa ensimmäistä kertaa meidän ystävä Scaz, ja Jason ja Andy. Kaikki 40 CS50 TF: n ja CA: n täällä Yalen. Ja te kaikki. Ja itse asiassa, se on luultavasti aika to-- [APPLAUSE] Joten, vaikka suurin osa luennoista todellakin olla Cambridge tänä vuonna, tosiasia on, että suunnittelun, ja hyvin paljon tarkoituksellisesti CS50, Mielestäni olemme lähestymässä kohta teknologisesti ja pedagogisesti, jossa se voi olla ylivoimainen koulutus kokemus käydä joidenkin Kurssin materiaali verkossa. Todellakin, reality-- ja jos uskon tämä philosophically-- on että luentoja eivät ole erityisen tehokkaita keinoja tuottaa melko monimutkaisia ​​tietoja. Varmasti yli tunnin plus pitkät jännevälit aikaa. Ja todellakin aina muutaman minutes-- Muistan itseni college-- te vyöhykkeelle ulos hetkeksi, haluat nähdä monimutkainen aihe, ja olet poissa aika paljon Seuraavan 45 minuutin aikana. Ja tosiasia on, että onko olet täällä New Haven tai Cambridge tai yli, yksinkertaisuus ottaa kyky keskeyttää ja pikakelaus, taaksepäin, hyperlinkki liittyvä resurssit, haku koko teksti selostukset ja kuten on tilaisuus, joka Uskallan sanoa online opiskelijoille kauas New Haven, tarjoaa heille mahdollisuuden todella ymmärtää käsitteellinen materiaali me käyttöön luentoihin kaikki paremmin. Mutta lopulta CS50, on opiskelijoiden kokemuksia on tunnettu niin, niin paljon enemmän kurssin ongelma sarjaa, tai viikko-ohjelma hankkeita, Kurssin osat johtama opetus kaverit, öisin virka johtama Kurssin assistentit ja opetus kaverit, ja itse asiassa tällaiset tapahtumia CS50 palapeli Päivä, CS50: n Hack--thon, CS50 Oikeudenmukainen, viikoittain lounaita, ja niin paljon enemmän. Ja niin olitpa täällä New Haven, tai viritetään kaukaa, tänään Cambridge, ja Nähdään taas pian, todellisuus on tämä on yksi ja samaan luokkaan. Ja olemme niin innoissaan täällä kaikki yhdessä tänään. Ja niin lopussa lukukauden, onko täällä tai kaukaa, hyvin toivottavasti käytät ylpeänä, onneksi, ja ehkä hieman helpotusta, paita, joka todistaa että olet ottanut CS50. Joten mistä jätämme pois keskiviikkona? Otimme tarkastella laskennallinen ajattelu. Ja se on kohti mitä me tislattua tietojenkäsittelytiede tykö, ainakin toistaiseksi. Mutta me tislattua se hieman syvemmälle vähintään kolme komponenttia elementtejä. Tulot, joten mikä on ongelma yritämme ratkaista? Lähdöt, mikä on vastata toivomme saada? Ja edustus siellä on. Emmekä asua täällä jälkeen binary, tai jopa ASCII, ja kuten niin paljon, mutta pikemminkin itsestäänselvyytenä että voimme esittää nämä tiedot, koska huomattavasti mielenkiintoisempaa osat näistä ongelmista eivät ole vain tulot ja lähdöt, mutta algoritmit jotka menevät ongelmien ratkaisemiseksi. Ja saatat muistan toinen päivä, että me otti melko perinteinen käsite etsii jonkun kyytiin melko suuri puhelinluettelo, tai yleisemmin digitaalisesti näinä päivinä, vain hyvin suuri tietokokonaisuutta. Todella iso puhelinluettelosta, jossa paljon nimiä aakkosjärjestyksessä. Ja huomasimme, että kun minä voisi lähestyä tätä ongelmaa pelkästään käyttämällä lineaarista approach-- sivu sivulta, tai jopa kaksi AT time-- tajusimme että enemmän intuitiivinen algorithm-- juuri sellainen jakamalla ja valloittaa ongelma uudelleen, ja uudelleen, ja again-- puolittaa sen jokaisen aika, antoi meille tämä vihreä tulosta. Ja se on niin paljon tasaisempi koska se viittaa siihen, että vaikka tämä ongelma saa suurempia ja suurempia, kuten on laita näinä päivinä tietoja sarjaa ja reality-- Facebook ja Google hakutulokset ja like-- tekee meidän algoritmi suorittaa yhtä tehokkaasti näiden isompi puree kuten se teki jopa pienempiä puree. Nyt se herättää kysymyksen, mitä voimme todella ratkaista samalla tällaista intuition? Tällainen jako ja valloittaa? No, voisimme tehdä jotain näin tänään täällä. Voisimme ottaa läsnäolo. Joten ehkä kuten 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11-- ei tule olemaan kaikki, että tehokas. Joten odota, peruskoulun. 2, 4, 6, 8, 10, 12, 14, 16, 18 ja niin edelleen. Mutta voisimmeko tehdä vähän paremmin? Olen melko varma, että voin ei tehdä tämän itse. Joten jos aiot huumori meille vain hetki, toimme mukanamme algoritmi, joka on juuri kolme vaihetta, mutta se ei require-- jos älä mind-- meitä kaikkia seisomaan, Jos haluat. Niin, me kaikki nyt seisoo, askel yksi tämän algoritmin on seuraava. Seisomaan ja antaa itse numero 1. Joten tässä vaiheessa, kirjaimellisesti jokainen tässä huoneessa toivottavasti ajattelee itselleen, kuitenkin hankalasti, numero 1. Nyt askel kaksi tämän algoritmin on aikoo ottaa seuraavan. Vaihe kaksi, pareiksi jonkun kanssa seisoo, lisätä numeroita yhteen, ja hyväksyy summan uusi numero. Nopeasti järki tarkistaa. Mikä numero on jokainen ajattelee nyt? Joten 2, paitsi ehkä yksi, hankala, yksinäinen henkilö. Jos meillä on pariton määrä ihmisiä huoneeseen. Joten yksi henkilö voi silti olla numero 1, se käy hyvin. Mutta askel kolme täällä, yksi teistä olisi istua alas. Muut pitäisi mennä takaisin vaiheeseen kaksi, ja toista, jos voisitte. Joten jos yhä pystyssä, sinun pitäisi olla joukossa menee takaisin vaiheeseen kaksi. Anna mennä. Harvat vielä pystyssä. Joten, jos yhä pystyssä, pareiksi jonkun kanssa. Selvä, hupenevat alas. Harvat vielä pystyssä. Autan, jos tarvetta on. Muista avain takeaway täällä, on se, miten paljon nopeammin tämä on kuin minä laskenta. Katsotaanpa. Voin auttaa. Niin mitä numero on silti ajatellut? Yleisö: Olen 44. David J. MALAN: 44, niin mennä eteenpäin ja istumaan. Mitä numero sinä ajattelet? Yleisö: 74. DAVID J. MALAN: 74. Hyvä, mennä eteenpäin ja istumaan. Kuka muu on yhä pystyssä? 86. Ja on joku muu vielä pystyssä? Mikä numero? Kuulin 67. Ja sitten alkuun? 32. Kukaan muu vielä pystyssä ja ajatellut numero? Voi, hei. Anteeksi. Palaan kohta takaisin. 42. Kukaan muu? Yleisö: 47. DAVID J. MALAN: 47. Onko kukaan muu vielä pystyssä joka ei ole laskettu? Joten lopullinen määrä ihmisiä huoneessa että on 497 paikkaa is-- jotka kaikki ovat filled-- on 390. Joten tämä on suuri. Tulemme pian keskustella käsite vikojen tietokoneohjelma. Mutta me palaamme että ennen pitkää. Mutta teoriassa, mitä voisi on tapahtunut juuri nyt? Joten vaikka siellä oli kolme isoa toimiin tämä algoritmi, jokainen näistä oli juuri sellainen yksi iso operaatio. Ja oli tämä syklisyys sitä että jos olisit vielä pystyssä, Pidit menee vaiheesta kolmesta kahteen askel kolmesta kahteen vaiheeseen kolmesta kahteen. Mutta mitä pidetään tapahtuu kunkin iteraation? Jokainen sykli tämän silmukan? Mitä oli tapahtumassa muualla huoneessa? Ei vain sama asia, mutta mitä oli tapahtumassa puoli olet? Istuu alas. Ja niin siellä sijaitsee tämä näkemys, paljon kuin puhelinluettelo esimerkiksi että jos puoli olet istuen joka kerta, ongelma alkaa kanssa ehkä 400 ihmistä, sitten 200 ihmistä, yli 100 ihmistä, sitten 50 ihmistä, ja niin edelleen. Ja niin me vuolla alas teoria vain yksi henkilö, ajatellut kokonaisarvo kaikille. Nyt todellisuus, jotkut sosiaalinen dynamiikka, ja jotkut laskuvirheitä voisi osaltaan, että lopullinen vika. Mutta teoriassa, kun minä oli vielä laskenta pois, ottaen useita kymmeniä vaiheet, tai satoja vaiheita laskea itse, laskea huoneellinen 500 tai niin ihmiset olisi pitänyt ottaa paljon vähemmän vaiheita, koska voit vain jakaa 500 ja puoli niin monta kertaa. Ja niin aivan kuten puhelimen Kirjan esimerkiksi toinen päivä, meillä oli jotain logaritminen niin sanoakseni, jolloin jos olisimme kaikki toimivat yhteen ääneen, ja unohdetaan Lisäksi virheitä, olisimmeko ovat saavuttaneet täsmälleen että sellainen käyttöaikaa? Nyt on oikeudenmukainen, eräänlainen huijanneen, vuonna että minä velkarahalla toisen resurssin. Ottaa huomioon, että se on vain yksi minua, I velkarahalla satoja sinua. Mutta voidaan sanoa olevan Esimerkiksi rinnakkaisen käsittelyn, tai uusinta kovasti muodissa jossa tietokoneet näinä päivinä on useita suorittimia, tai enemmän teknisesti, enemmän useita ytimiä, ja voi todella tehdä useita asiaa kerralla, aivan kuten sinä kaikki teemme siellä, rinnakkain. Mutta muistuttaa, että mitä me teki myös keskiviikkona oli yrittää kaapata tämä intuitio ja virallistaa sen koodia. Jotain pseudo-koodi. Ja itse asiassa, ja Toivottavasti sinulla anteeksi, se on kuin 80 astetta täällä. Joten aion ottaa tämän pois vain vähän. Mitä ajattelin olimme vain siirtyminen nyt hakemus, jossa me jälleen harjoittaa yleisö, mutta kirjoittaa ohjelma Englanti kuten syntaksi, jolla voidaan ratkaista tämä ongelma. [VIDEOTOISTOSTA] -Se Maapähkinävoi Jelly aika. Maapähkinävoi Jelly aika. Maapähkinävoi Jelly aika. Way ya! Way ya! Way ya! Way ya! Nyt mennään! Ole hyvä! Ole hyvä! Ole hyvä! Maapähkinävoi hyytelöä! Maapähkinävoi hyytelöä! Maapähkinävoi hyytelöä! Maapähkinävoi hyytelöä! Maapähkinä, maapähkinävoi hyytelöä! Maapähkinävoi hyytelöä! Maapähkinävoi hyytelö pesäpallomailalla. [Lopeta toisto] DAVID J. MALAN: --that video, mutta se on hieman riippuvuutta, jos ei vähän ärsyttävää. Mutta tehdä tämän, ajattelin, mitä olimme tehdä, on yrittää kirjoittaa ohjelman yhdessä, josta meillä tarvitaan kolme vapaaehtoista. Täytyy olla mukava kameran ja internet. Sam, tule ylös. Violetti paita, täällä, tule ylös. Ja täällä, haluan mennä vähän kauemmas taaksepäin. Crimson ja sininen paita, tule ylös. Täydellinen. Tule nyt. Tule ylös, tule ylös. Ja mikä on nimesi? Erica. David, nice to meet you. Jos haluat ottaa tämän paikka täällä. Tämä on Sam. Mikä on nimesi? Antonio. Antonio, nice to meet you. Erica ja Sam, jos olisit haluavat olla paikka täällä. Mitä olemme valmistautumaan kanssa, koska nämä kaverit ovat löytämässä, on ainesosia, joiden kanssa tehdä maapähkinävoi ja hyytelöä voileipä. Nyt tämä saattaa olla jotain, joka otat hyvin paljon itsestäänselvyytenä. Mutta olemme antaneet kukin meidän kolme vapaaehtoista here-- kaksi vapaaehtoista ja Sam täällä, leivän jokaisen, levy, veitsi, purkki hyytelöä tai hilloa, ja purkki maapähkinävoi. Ja tavoite käsillä nyt on olemaan näiden kolmen tehdä maapähkinävoi ja hyytelöä voileipä. Mutta mitä aiomme tehdä, on odottaa audience-- koska te kaikki varmasti tiedä, miten tämä niin hyvin reality-- aiomme antaa meille askel askeleelta ohjeet. Pseudo-koodi, jos haluatte. Niin minä näytellä kirjuri täällä. Ja minulla vähän tehtävälistan, ja niin jokainen teistä, yksi kerrallaan, huutaa mahdollinen neuvonta, minä kirjoitan sen muistiin, toista se tarvittaessa. Ja sitten te aiotte tehdä maapähkinävoi ja hyytelöä voileipä vain tekemällä mitä käsketään. Niin ajattele itseänne tietokoneita. Voit vain tehdä mitä käsketään. Mitään olettamuksia, ei-kysymystä. Sinun tarvitsee vain tehdä se. Joten kuka haluaisi vaarantaa ensimmäinen ohje tehdä PBJ voileipä? On parveke. Yleisö: Avaa pussi leipää. DAVID J. MALAN: Avaa pussi leipää, jos haluatte. Katsotaanpa. Katsotaanpa kerrata, ja saada hieman tarkempi. Hyvä tapa aloittaa vaikka. Vaihe kaksi, joku muu. Nyt kukaan ei halua tehdä vapaaehtoistyötä. Vaiheessa kaksi edessä. Yleisö: Avaa sisäinen pussi leipää samoin. DAVID J. MALAN: Avaa sisempi pussi leipää samoin. Suuri, me oppimista. Hieman tarkempi. Hoidetaan tämä työ. Kyllä, vihreä paita. Yleisö: [äänetön] DAVID J. MALAN: viipaletta leipää. Varovasti poistaa kaksi viipaletta leipää. Hyvä. Vaihe neljä, joku muu? Tänne, kyllä? Yleisö: [äänetön] DAVID J. MALAN: Aseta leipä lautaselle. Vaihe viisi? Vaihe viisi, joo? Yleisö: [äänetön] DAVID J. MALAN: Päälle of-- OH, käsi. Aseta käsi päälle maapähkinävoita. Sitäkö minä pää? Yleisö: Joo, ja kierrä. DAVID J. MALAN: And-- sanoa sen uudelleen. Yleisö: [äänetön] DAVID J. MALAN: Ja laita kansi vieressä maapähkinävoita. Kevyesti aseta käsi päälle maapähkinävoita, ja kierrä, ja laita kansi vieressä maapähkinävoita. OK, vaiheeseen kuusi. Vaihe kuusi, joku muu. Joo? Yleisö: [äänetön] DAVID J. MALAN: Sano se uudelleen. Yleisö: Toista vaihe viisi uudelleen. DAVID J. MALAN: Ja toista vaihe viisi uudelleen, joka on luomassa hieman ongelmia Nyt jos teemme tämän askel askeleelta. Joten nyt menemme takaisin vaiheeseen viisi. Kevyesti aseta käsi päälle maapähkinävoita ja ruuvaa ja laittaa kansi vieressä maapähkinävoita. Tartu maapähkinävoi ja toista vaihe viisi uudelleen. Niin me ohittavat päättymättömään silmukkaan, jos haluatte. Vaihe seitsemän, joku muu. Joo, takana. Yleisö: [äänetön] DAVID J. MALAN: --on päällimmäisenä. Yleisö: [äänetön] DAVID J. MALAN: Käytössä Toisaalta toisaalta alkuun. Haluatko vain tulla tänne? Miten lopetan opetus? Mitä loput käskyn? Yleisö: Unohtaminen, että osa. DAVID J. MALAN: Unohtaminen, että osa. Aloitetaan yli. Vaihe seitsemän. Yleisö: [äänetön] DAVID J. MALAN: Tartu kanssa vastustaa hand-- tämä on hyvä. Tämä on todella hyvä. Yleisö: [äänetön] DAVID J. MALAN: Ja muovi jar-- Yleisö: [äänetön] DAVID J. MALAN: Ja twist-- Yleisö: [äänetön] DAVID J. MALAN: kaksi sekuntia. Avaa vain maapähkinävoita purkki. Toivottavasti sinulla anteeksi. Joten Oletetaan menimme sinne. Avaa maapähkinävoita purkki. [APPLAUSE] DAVID J. MALAN: Vaihe kahdeksan, mennään. Vaihe kahdeksan, kyllä, takana. Yleisö: [äänetön] DAVID J. MALAN: Hyvä. Vaihe yhdeksän, kyllä? Yleisö: [äänetön] DAVID J. MALAN: --out of maapähkinävoita purkki. And-- ja mitä? Yleisö: [äänetön] DAVID J. MALAN: Ja laittaa veitsi takaisin maapähkinävoi. Vaihe kymmenen. Vaihe kymmenen. Yleisö: [äänetön] DAVID J. MALAN: Laita veitsi ulos, ja poista tiiviste. Kiva. Pois maapähkinävoita. Selvä, vaihe 11. Yleisö: [äänetön] DAVID J. MALAN: OK, harmaa tietokone noudata sininen tai punainen tietokone. Hyvä. [APPLAUSE] DAVID J. MALAN: Tuo meille kotiin. Pari askeleen. Mitä seuraavaksi? Vaiheet 12. Vaiheessa 12. Joo? Yleisö: Laita yksi siivuja leipä kevyesti yhdellä kädet. DAVID J. MALAN: Yksi kädet. Ja sitten, vaihe 13. Joo? Yleisö: [äänetön] DAVID J. MALAN: --on leivälle. Hyvä. Melko hyvä. Vaihe 14, joo. Yleisö: Kumoa vaihe 13. DAVID J. MALAN: Kumoa vaihe 13. Katsotaanpa siirtyä hyytelö. Se on 100- askeleen ohjelma, mutta me olivat askel 15. Joo. Yleisö: [äänetön] DAVID J. MALAN: 7 kautta 13 käyttämällä hyytelö, koska ne meni niin hyvin. Toista vaiheet 7: stä 13, käyttäen hyytelö. Joten tartu alaosassa hyytelö jar yhdellä kädellä päälle. Toisaalta, että muut top, unohdetaan se osa, tartu vastakkaisia ​​kädet, kansi ja muovinen purkki alareunassa, ja kierrä kaksi sekuntia. Avaa sitten hyytelö jar. Ja lopuksi, yritetään antaa meille jotain syötäviä. Vaihe 16. Joten miksi emme jätä sitä sinne. Kiitos niin paljon meidän kolme vapaaehtoista. [APPLAUSE] Meillä on pieni CS50 stressipallo sinulle. Se piti olla sandwich but-- niin mitä oli kohta, yli joiden vähän hauskaa algoritmi? Mutta tosiasia on, että vaikka olet ohjelmointi tietokoneen, sinun täytyy olla erittäin tarkka. Niin monimutkaista tai painostavan kuin oma tietokone saattaa hyvinkin olla sinulle, osoitteessa ainakin kun jotain menee pieleen, todellisuus on se aika tyhmä laite, joka keksi meille ihmisille, ja voi vain tehdä osajoukko mitä me do-- joskus varmasti faster-- mutta se ei tiedä, miten tehdä oletuksia. Se ei osaa olla sama aallonpituus kuin sinä. Se vain tehdä juuri mitä kerrot sen. Ja sinun on löydettävä, ehkä, kuten alamme kirjallisesti todellinen koodia Ensimmäinen ongelma sarjaa ja sen jälkeen, kuinka helppoa on tehdä oletus ihmisen, ja ei ennakoida minun täytyy käsitellä Tällöin tai että kulma tapauksessa, niin sanoakseni, että saattaa hyvinkin syntyä, jos esimerkiksi Sam oli vain squeezable jar hyytelöä, kun taas kaikki muu oli joitakin lasipurkit kuin hyvin. Joten ennen kuin käännämme huomiota joihinkin itse koodi, sallikaa minun esitellä Kurssin päät täällä Yalen. Ystävämme Scaz, Andy, ja Jason keksiä ja tervehtimään. [APPLAUSE] SCAZ: Olemme menettäneet Jason tilapäisesti. Hei taas, kaikille. Nimeni on Scaz. Olen opettanut Yalen vuodesta 2001. Ja kun en ole opetusta, Tutkimukseni on robotiikan ja tekoäly. Ja ilmoitus, että minulla on tänään on että alkaa pari viikkoa, aiomme on tuo joitakin täydentävää materiaalia CS50 puhua noin intelligence-ohjelmistot. Aiomme puhua siitä, miten paikoissa, kuten Netflix ja Hulu voi suositella elokuvia joka saatat haluta katsoa. Jos me puhumme miten kuljettaja-vähemmän autoja todella toimivat. Ja pystymme maahan nämä asiat käsitteet että opit tässä luokassa tänään. Koska kaikki nämä asiat ovat rakennettu sama perusta. Ja sitähän tämä sarja tutkia. Joten olen innolla innolla näkevämme enemmän teistä kaikki, ja aiot päästä Katso meille kaikille hyvin pian. Saanen sitten esitellä Jason. JASON: Hi everyone. Nimeni on Jason. En valitettavasti meni Harvardin kuin undergrad. Joka on menossa leikata ulos todellinen virta. Ja nyt olen täällä luennoitsijana Tietojenkäsittelytieteen laitos. Ja Autan ajaa kurssin kanssa Scaz, David ja Andy. Andy: Hei kaverit. Nimeni on Andy. Olen oikeastaan ​​ainoa Yale opiskelija lavalla juuri nyt. [APPLAUSE] Olen Berkeley College, kotoisin Solon, Ohio. Ja olin yksi niistä lapsille missä, kun tulin Yale, Luulin, että olisin koskaan on tarkasteltava useita ikinä. Ja sitten tajusin, että sinua tarvitaan sekä tieteen ja QR luottojen valmistua. Ja niin minun fuksi kevät, otin luokka, CS, intro CS luokka täällä Yalen. Olin kuin, tämä on kuin oikeastaan ​​aika siistiä. Ja vaikka olen itse päädyin julistamisesta maailmanlaajuisena asioiden merkittävä, taidot Opin CS ja ohjelmointi ovat niin sovelletaan tahansa alalla päätät tehdä. Ja henkilökunta täällä Yalen, olemme olleet niin kovassa työssä valmistautua teitä. Ja odotamme näkevämme kaikki jaksossa ja virka. Niin joo. [APPLAUSE] DAVID J. MALAN: Kiitos. Joten juuri ennen luokan alkoi, meillä oli tilaisuus kävellä ympäri kampusta jossa matkapuhelin ja ottaa jotkut selfies video muodossa todella ensimmäinen kierros Yalen kampuksella täällä. Joten ajattelimme jakaa karkea leikata juuri tätä Scaz ja Andy ja Jason vei minut ympäri kampusta. [VIDEOTOISTOSTA] [SIRENS] -David. -Tervetuloa Yalen. -Hyvä nähdä sinua. -Mukava nähdä sinua. -Voi Mennään kiertueelle? -Anna N mennä kiertueella. -Road Kiertue. -Tämä Merkki on ollut siellä jonkin aikaa. -Whah, CS50. -Hurry! Mene, mene, mene, mene. Sinun pitäisi [äänetön] Harkness Tower. -Ja Näimme, että pari kertaa. [APPLAUSE] -Varokaa Varten pyörä! Ahh! Hei Frank. -Mitä kuuluu, kaverit? -Kuinka voit? -Hyvä nähdä sinua. -Tervetuloa Video. Eivät toimi liian innoissaan. -Rakastan Silliman. Ahh! -Se On ollut noin kolme tuntia alkaen Jason oli jäätelöä ja Nutella. Joten meidän täytyy pysähtyä takaisin Silliman varten hieman. -Se Ei edes [äänetön] vielä, vain tosiasia että he ovat sitä täällä on niin mahtavaa. Jätkä, siellä Nutella joka aterialla. -On Oli viime vuonna. -Joo. -tell paljon Yale toistaiseksi. Mutta en nyt että TD tuolla. Ja joka on pitää pois kampuksella. TÄSTÄ meillä on goottilaista arkkitehtuuria. Maailmankuulu. Meillä on joitakin enemmän goottilaista arkkitehtuuria. Ja rakentaminen, ja lisää goottilaista arkkitehtuuria. Moi. Täällä meillä oli virka Tiistaisin kautta torstaisin Tylypahkassa, kuten [äänetön]. -Selvä. Se on se kiertueella. Olemme Yalen yliopiston Law School, jossa päivän luento on tapahtumassa. Katsotaanpa puski. [Lopeta toisto] DAVID J. MALAN: Ja että tuo meille täällä nyt. Joten toistaiseksi, olemme olleet keskittyen pseudokoodilla, joka on tämä Englanti kaltainen syntaksi. Sillä ei ole määrätty erittely. Se on vain käytät joitakin intuitiivinen kieli jos halua selittää, mitä haluat tehdä. Mutta katsotaanpa alkaa nyt siirtyminen koodin, koska useimmat ihmiset sanoisivat. Mutta tarkemmin, jotain tunnetaan lähdekoodia. Tämä on kieli, että ihmisillä kirjoittaa, että tietokoneet ultimately-- mahdollisesti kun jotkut määrä steps-- lopulta ymmärtää jotta tietää miten tehdä jotain. Että näit Hanko tämä ehkä keskiviikkona. Tämä on esimerkki, joka uskomattoman, underwhelming kun ajaa yksinkertaisesti sanoo "Hello World." Ja se on kirjoitettu kielellä nimeltään C, joka on syntaktisesti hyvin samankaltainen paljon muita kieliä että et ehkä tiedä, mutta ehkä kuullut, kuten Java, ja C ++, ja Python, ja Ruby, ja vastaavat, ja itse asiassa, me will viettää paljon lukukauden käyttäen C, ja sitten loppupuolella lukukausi, Schengenin säännöstöön, ja toteuta useita muita kieliä. Joukossa PHP ja JavaScript, tietokanta kieli nimeltään SQL. Mutta C, mitä meidän täytyy tämä alhaalta ylöspäin ymmärrystä siitä miten tietokoneita työtä, mitä voit tehdä niiden kanssa, ja miten voit ratkaista ongelmia kaikki tehokkaammin tämän kerrospukeutuminen että keskustelemme keskiviikkona, ja pysyvä olkapäillä toisten. Mutta siitä lisää tulemaan. Tänään katsomme yksinkertaisempi ympäristö, mutta pohjimmiltaan identtinen ympäristö tunnetaan Scratch mukaan ystävämme MIT Media Lab. Tämä on graafinen ohjelmointikieli, Scratch, jolloin voit vetää ja pudota asioita, näyttää palapelin palaset vain lukitus jos se tekee looginen tai ohjelmallisia järkevää tehdä niin. Mutta se tulee, jotta voimme keskustella kaikista Saman ohjelmointi perustekijät että jotkut teistä ehkä tiedätte jo, että monet teistä ehkä ei tiedä mitään ilman juuttua rehellisesti, vuonna älyllisesti mielenkiinnoton syntaksi puolipisteellä, ja suluissa, ja siteeraa, ja vastaavat. Jotka kaikki, varhaisen edelleen, ovat häiriötekijä mitä ovat mielenkiintoisia ja aidosti hyödyllisiä ajatuksia. Joten ottaa nopeasti vilkaisu ympäristöön täällä, jotta tiedät mitä odottaa. Ja itse asiassa, joukossa pelejä meillä voi pelata ovat muutamia ohjelmia kirjallisen by CS50 oma entinen opiskelijat. Yksi heistä, itse, otan tämä kirjoitettu tutkijakoulu minulle. Jos voisin ottaa yhden vapaaehtoisen joka on valmis pelaamaan peli ensimmäistä kertaa. Toki. Tule ylös. Mikä on nimesi? Yleisö: Angela. DAVID J. MALAN: Angela, tule ylös. Joten Scratch on pois muutaman vuoden. Ja kun olin tutkijakoulu, Olin rajat rekisteröitynyt MIT, ottaen professori Mitchel Resnick n kurssi koulutus teknologioihin. Ja me olimme yksi ensimmäisistä opiskelijat maailmassa todella beta testi Scratch. Ja minun hanke oli mitä Angela on nyt armollisesti vapaaehtoisesti pelata kutsutaan Oscartime. Joten aion mennä eteenpäin ja klikkaa kuvaketta tästä. Se tulee avata ohjelma ympäristö että me pian sukeltaa. Aion koko näytön se Angela, täällä. Aion osuma vihreä lippu vain hetken. Ja sitten paljon roskakoriin on putoamassa taivaalta. Ja aiot käyttää hiirtä täällä todella vetää ja pudottaa roskat osaksi Oscarin roskakorit. Joten jos haluat mennä eteenpäin ja valitse Vihreä lippu, peli alkaa. [Musiikkia] Rakastan roskakoriin. Mitään likainen tai likainen tai pölyinen. Mitään repaleinen tai mätä, tai ruosteinen. Kyllä, rakastan roskakoriin. Jos todella haluat nähdä jotain surkea, katso tätä. Minulla on tässä tennarit joka on repaleinen ja kuluneet. Se on kaikki täynnä reikiä pitää ja nauhat ovat repeytyneet. Lahja äidiltäni päivä minä synnyin. Rakastan sitä, koska it's-- DAVID J. MALAN: --green näinä päivinä vain olla heittää kaiken roskakoriin. Ja niin mitä yksi CS50 oma henkilökunta did-- Jordan, kuka saatat tavata today-- on todella päivitetty tämän päivän kertaa. Ja niin saanen avata remix sijaan Angela. Ja me pelata tätä sen sijaan hetken, jossa nyt olet täytyy päättää välillä, onko heittää jotain roskakoriin, tai kierrättää tai kompostoida sitä. Joten siellä on vähän painetta saat Tämän oikeuden edessä teidän 392 497 luokkatoverit täällä salissa, Jos haluat. [VIDEOTOISTOSTA] [Musiikkia] -Voi Rakastan roskakoriin. Mitään likainen tai likainen tai pölyinen. Mitään repaleinen tai mätä tai ruosteessa. Kyllä, rakastan roskakoriin. Jos todella haluat nähdä jotain surkea, katso tätä. Minulla on tässä tennarit joka on repaleinen ja kuluneet. Se on kaikki täynnä reikiä ja nauhat ovat repeytyneet. Lahja äidiltäni päivä minä synnyin. Rakastan sitä, koska se on roskakoriin. Rakastan roskakoriin. Mitään likainen tai likainen tai pölyinen. Mitään repaleinen tai mätä tai ruosteessa. Kyllä, rakastan roskakoriin. Seuraavassa joitakin enemmän mätä tavaraa. Minulla on täällä joitakin newspaper-- [Lopeta toisto] DAVID J. MALAN: --are todella kompostoitava. Mutta kiitos meidän vapaaehtoinen, Angela. Meillä stressipallo sinulle myös täällä. Joten kiitos. Joten tämä oli kirjoittanut minulle. Mutta nyt yksi todellinen entinen oppilas jotka toteutetaan tämä, joka on peli. Kaikki tällä kielellä nimeltään Scratch, että me pian kuori takaisin kerroksia. Mutta jos olisimme like-- miten noin toinen vapaaehtoinen? Oikea. Tule ylös. Mikä on nimesi? Glance? Lance. Lance, tule ylös. Kiva tavata. Tule tällä tavalla. Joten tämä voisi olla teema tuttu joillekin teistä. Mutta näet myös, että ei voi olla vuorovaikutteisuutta, jolloin voit itse olla roolia merkki liikkuminen. Kiva tavata. David. Annan teille, Pikachu. Ohjeet noin tulla ruudulla. Mutta lyhyt, olet menossa haluavat saalis maukasta tavaraa, ja välttää pommeja ja muita asioita. Kanssa osoittimet kokonaan. Joten välilyöntiä. -Pikachu. DAVID J. MALAN: Catch juttuja vasemmalla, ei kiinni kamaa oikealla. [Musiikkia] Joten viimeinen täällä. Jos voisimme olla yksi lisää vapaaehtoinen täällä. Ajattelimme luoda jotain from-- keltaisessa shirt-- keskiviikkona. Mikä on nimesi? Mary, tule ylös Mary. Ja muistaa keskiviikkona esittelimme käsite binary, ja binary sipulit. Tämä on todella nyt täytäntöönpano että samassa käyttöliittymässä että meillä oli iPad kanssa valo sipulit, mutta tässä digitaalisesti sulatettu. Ja sen sijaan tehdä stressiä ball-- kiva tavata, David. Toimme muutama kevyt polttimot Cambridge. Jos voit, klikkaamalla niitä sipulit kääntää ne päälle ja pois, keksiä binary edustus sanovat 256. Ja näet vuonna keskimmäinen, nykyinen vastaavuuden. Niin, että yksi on päällä. Joten vasemmanpuoleisin bitti on päällä. MARY: Joo, [kuulumaton] DAVID J. MALAN: No, joten meillä on just-- OH. Joten tämä on 128 sarakkeeseen. Joten olemme jopa 128. Meidän täytyy päästä 256. Ja voit korjailla päällä ja pois, no big deal. Tai voit lyödä että 128 useammin jos haluat. Hyvä, hyvä. 24. Joo, lähestyy. Lähemmäksi! Voi, mikä on ongelma sitten? Joten mikä on ongelma? Joten mitä meidän ratkaista tämän ongelman? Joten tarvitsemme toisen vähän. Ja tämä on täysin kohtuullinen todellisuudessa, eikö? Jos haluat laskea numerosta 1-2 to 3-4, 5 6, 7, 8, 9 todella kaatuminen 10, olet menossa ylimääräinen vähän. Joten oikeastaan kelata täällä, ja keksiä with--, joka oli ilmeisesti tarkoitus olla perustaa. Et voi tehdä 256 vain lamppu. Miten siis yksinkertaisesti numero 50? Numero 50. Erinomainen. Iso aplodit Mary ja hänen samoin. Kiitos. Joten tämä topic-- tarkoituksellista kuin että was-- todella toistuisi. Suurin arvo, jonka voit edustavat kahdeksan bittiä, tai yhden tavun, on todellakin 256. Mutta ei jos käynnistät laskien 0, kun me näyttävät pitää tehdä saamalla kaikki nämä bittiä pois. Mutta Nyt sukeltaa taustalla täytäntöönpanon ympäristön, ja kammata toisistaan ​​näitä ajatuksia. Joten hetken olemme tulleet muutama eri ohjelmointi perustekijät. Joista ensimmäinen soitamme lausunto. Lajittele verbejä, jos haluatte. Toiminnot. Asiat, jotka pitäisi tehdä. Ja hetken näet lohkoja, jotka näyttävät tältä. Sano "Hello World", esimerkiksi. Tai odota yksi sekunti. Tai toistaa ääntä miau. Ja todellakin ympäristön joka aiomme tehdä tätä kutsutaan Scratch. Ja jos vedän ylös Scratch ilman Esiannostusjakson mitään itse koodi, sallikaa vilkaista tätä käyttöliittymä, niin sanoakseni. Tarkastukset, joiden kanssa olemme vuorovaikutuksessa. Vasemmalla ylhäällä täällä näyttö, alle valikot, olemme vaiheessa, niin sanoakseni. Joten Scratch on mitä me kutsumme Sprite. Se on merkki. Ja hän voi ohjata Ohjelmia kirjoitettaessa häntä vastaan. Ja hän voi liikkua ylös ja alas ja vasemmalle ja oikealle tässä ympäristössä, ei vain siirtämällä hiiri, mutta ohjelmallisesti. Voin kertoa hänelle kävellä suoraan, kävelymatkan vasemmalle, ylös, alas tai vastaavaa. Ja voin ottaa käyttöön muita sprite tai merkkejä samoin. Todellakin, pohjassa tässä missä Näet listan sprite. Tällä hetkellä minulla on vain yksi, mutta voin luoda enemmän, ja he näyttävät täsmälleen siellä. Joten jos taaksepäin hetkeksi, kuten Oscartime-- esimerkiksi Oscar, vasemmalla, roskakoriin voi, oli sprite. Ja asia keskellä, kierrätys bin, oli toinen sprite. Ja komposti bin oli toinen sprite. Ja jokainen pala roskat tai kierrätettävä joka putosi taivaalta on myös kuvahahmon, joista jokainen ohjelmoitiin erikseen. Miten ohjelma? No, tänne oikealla puolella on skriptejä alue. Ja tämä on missä voimme vedä ja pudota palapelin palaset. Vuonna viikolla, se tulee olemaan jossa vastaavasti kirjoittaa koodia enemmän näppäimistön, mutta tänään se tulee olla vetämällä ja pudottamalla palapelin palaset, palettia jotka kaikki löytyy täältä keskellä. Itse keskellä Täällä on koko joukko luokkien palapelin kappaletta tai lohkot. Yksi on liittyvät liikettä, näyttää, ääni, kynä menee ylös ja alas, tiedot, tapahtumia valvoa. Ei aivan varma vielä mitä kaikki nämä tarkoittaa, mutta huomaat, että he ovat on kauniisti luokiteltu. Ja kirjoittaa ohjelman Scratch, tehdään juuri näin. Aion aloittaa pois Tapahtumat, ja vedä tämä yksi täällä. Kun vihreä lippu napsautetaan. Nyt miksi että yksi? No muistuttaa, että meidän vapaaehtoisille tuli, ensimmäinen asia, tai niitä ei ollut klikkaa että vihreä lippu oikeassa yläkulmassa. Ja se tarkoittaa vain sitä käynnistät ohjelman. Joten kun että tapahtuma tapahtuu, mitä haluan tehdä? Aion mennä mukaan odottaa, ja aion tehdä "tervehtimään." Ja aion muuttaa ja sanoa jotain "hei Yale." Ja nyt aion zoomata ulos, valitse vihreä lippu, ja voila, olen kirjoittanut ohjelman. Se ei ole kaikki, että jännittävä aivan vielä, mutta tämä on tarkalleen missä kukin Näiden kirjailija alkoi, sekä Pikachu, ja binary sipulit, ja Oscartime, ja niin monia muita esimerkkejä. Aloitat Super yksinkertainen, ja Sitten aloitat kerros, ja lisätä ominaisuuksia ja toimintoja. Mitä ovat nämä kerrokset menossa koostuvat? No, sen jälkeen lausunnot, Otamme myös on asioita, jotka ovat hieman fancily kutsutaan Boolen operaattoreilla, kun joku nimetty Bool. Ja Boolen lauseke on yksinkertaisesti lauseke, joka on joko tosi tai epätosi, kyllä ​​tai ei, 1 tai 0. Mitään vastakohtia niin. Se on joko totta tai ei. Mutta olemme myös menossa nähdä ne, jotka voisi näyttää tältä. Niinpä esimerkiksi, on hiiri alas? He tavallaan kysymyksiä, jos haluatte. Hiiri on joko alas, totta vai se ei ole, väärä. 1 tai 0, jos haluatte, yleensä kartoitus. Totta on 1, väärä on 0. No entä vähemmän kuin tämä? Tai niin, on tämä vähemmän kuin tämä? Se kysymys tapaisena. Ja jos laitat kaksi numerot siellä, joko X tulee olemaan pienempi kuin tai y yhtä kuin y, tai suurempi kuin y, mutta tämä lohko näemme, on vain aio vastata kysymykseen, on tämä pienempi kuin? Saatamme myös nähdä jotain tällaista. Koskettava hiiren osoittimia. Joten Scratch, voit kysyä kysymys, on Sprite koskettaa hiiren osoitin? Toisin sanoen, on kohdistin leijuu kannen päälle, tai vastaava? Näemme anding asioita yhdessä. Voit esittää kaksi kysymystä, ja Varmista, että molemmat antaa sinulle kyllä ​​tai totta vastauksia ennen tekee päätöksen tehdä jotain. Mutta sitten miten teet päätöksiä? No, meillä on nämä ehdot. Ja näimme tämän meidän Esimerkiksi puhelinluettelon. Katse vasemmalle tai oikea Mike Smith. Ja siinä kunnossa, voit tehdä mahdollisesti, jos Boolen lauseke on tosi. Ja todellakin, huomaa muodot nyt. On tämä paikkamerkki juuri nyt tilojen yläosaan, jossa voimme fit-- jos olen kelata yksi slide-- että muoto. Se ei ole aivan samankokoisia. Ja todellakin, näet, että Scratch koko muuttuu asioita dynaamisesti sopimaan palapelin palaset, mutta muoto on mikä on tärkeää. Tämä asia näyttää että, ja todellakin se on suunnilleen sama muoto että olisi sovittava siellä. Ja jos haluamme tehdä jotain näin tai näin, jos tai muuten, meillä on tämä palapeli pala Scratch samoin. Oletetaan halusitte tehdä, jos, if, tai muuten. Toisin sanoen, kolmitie tienhaaraan. No mitä voit tehdä vain vilkaisemalla tällä? Voin ottaa tämän palapelin pala, ja se ei tunnu sopivan, mutta jälleen, Scratch on menossa uudelleen koko hienosti meille. Voisin aloittaa kerros nämä asiat yhdessä. Joten nyt minulla on kolme-tie haarukka jos tämä on totta, tehdä tämän. Else jos tämä toinen asia on totta, mennä tällä tavalla, muuten mennä tällä muulla tavalla. Ja Muppet Movie, tienhaaraan, niin sanoakseni, välillä Yale tai Stanford, oli juuri sitä, vain kaksi ehtoa. Joko mennä tällä tavalla, muuten mennä näin. No, silmukoiden olemassa myös ohjelmointia. Ja olemme käyttäneet nämä jo luokan ja pseudokoodilla koodi, ja varmasti niissä Scratch ohjelmia ikuisesti. Scratch on tämä palapelin pala että vain voit tehdä jotain ikuisesti. Ja joskus haluat tehdä jotain ikuisesti. Se ei välttämättä ole bugi, se on koska haluat kellon pitää käynnissä, tai peli jatkaa pelaamista. Tai voit määrittää rajallinen määrä vaiheet, kuten tämä toisto lohko täällä, joka toistuu jotain 10 kertaa. Voimme asettaa muuttujia, me pian nähdä. Ja muuttujat, samanlainen henki algebran, kuten X tai Y, tai Z. Se on jotain symbolista, johon voi tallentaa jotain arvoa, jotkut tieto, että saatat haluta muistaa myöhemmin. Paras esimerkki tästä voisi olla peli jossa on pisteet, kuten Pikachu. Kuinka monta kappaletta kakku ja vaikka mitä sinä saalis? No, jotka saattavat olla vaihteleva nimeltään pisteet, joka alkaa 0. Ja sen jälkeen joka kerta saimme pala kakkua tai karkkia, tai kuten, se saa kasvaa. Se saa lisätään yksi kerrallaan. Ja niin muuttuja myymälöissä tieto niin. Sitten on paneelit, ja tulemme takaisin nämä viikon tai kaksi aikaa, mutta joukko on ikään kuin varaston tai olkalaukku, sisällä joista voit laittaa virtuaalisen asioita. Sen avulla voit tallentaa enemmän kuin yksi tieto. Ja voi olla hyötyä Jos pelissä olet eräänlainen käveleminen poiminta asioita. Ja ehkä haluat pitää kaikki nämä paloja kakku ympäri, ja vain syödä ne yksi toisensa jälkeen. Ja sitten on harrastaja konstruktio me will tulevat kutsutaan toiminnoista. Ja vaikka me aiomme nopeampi täällä käymme nähdä, että nämä ovat hyvin luonnollinen ratkaisu ongelmiin että olemme menossa kohtaavat. Koska meidän ohjelmat alkavat saada isompi me will alkaa huomata kuvioita koodi että me kirjallisesti, palapelin palat olemme vetämällä ja pudottamalla. Ja heti kun huomaat itse tekemässä jotain uudestaan ​​ja uudestaan, tai pahempaa vielä kopioiminen ja liittäminen ohjelmointi koodi että olet kirjoittanut, se on luultavasti mahdollisuus tekijä ulos mitä pitää kopiointi ja liittäminen, ja laittoi pallon jotain kutsutaan "toiminto." Mutta enemmän kuin paljon tarkemmin ennen pitkää. Ja sitten on vielä hienompaa ominaisuudet. Niille teistä mukavampaa, tai ottamalla APCS tai vastaava, Scratch todella tukee asiat kuten kierteet ja tapahtumia ja paljon muuta. Niin ymmärtää, että se on melko korkea katto, vaikka se on myös hyvin yleisesti saatavilla ihmiset jotka eivät ole koskaan ohjelmoida ennen. Joten todellakin, let katsomaan klo yksinkertainen ohjelma tai kaksi. Olemme jo tutustunut miten voisi sanoa hei Scratch. Anna minun mennä eteenpäin ja avata hieman mielenkiintoinen ohjelma että olen kirjoittanut etukäteen. Ja tämä on nimeltään Pet Cat. Kaikki nämä ohjelmat ovat saatavilla CS50 verkkosivuilla. Itse asiassa jo siellä. Joten voit ladata niitä, ja pelata heidän kanssaan, ja Harjoitus 0, joka on myös kurssin verkkosivuilla, olet kannustetaan kulkea näitä. Ja lisäksi meillä määrä selattava videoita verkossa, jossa I ja CS50 tiimi todella kävellä kullakin näistä esimerkeistä on paljon hitaammin, erittäin nopea Välitettävissä, tai uudelleenkäämitettävällä tahtiin, jotta voit kävellä näiden rauhassa samoin. Joten tässä on naarmu vasemmalla. Tässä ohjelmassa oikeaan että olen jo valmiiksi tehty. Joten haluan lähentää tässä. Ja voisi joku Englanti, tietäen mitä tiedät, pelkästään nyt miten Scratch teoksia, tavallaan sanoa in Englanti lause tai lauseen, mitä tämä ohjelma ilmeisesti tehdä? Joo, oranssi paita. Yleisö: [äänetön] DAVID J. MALAN: Joo, jos kohdistin on Scratch kissa, pelata meowing ääntä. Mutta huomaa, miten me ilmaista että. On ilmeisesti silmukka, ikuisesti. Ja sitten on kunto, jos lauseke. Ja kollektiivisesti, mitä nuo tarkoittaa? Se tarkoittaa ohjelman on vain aina käynnissä, ja se on vain aina odottaa ja katsellen ja kuunnellen minun siirrän hiiren kissa. Koska aina teen sen, koska ehdotat, se tulee tehdä tämän. Aloitan ohjelman. Mikään ei tunnu olevan tapahtuu, mutta huomaa, miten se korosti nyt keltainen viiva. Se vain tarkoittaa, että se on käynnissä. Ja koska siellä ikuisesti silmukka, se on edelleen käynnissä. Haluan siis siirrän kursorin Scratch. [MEOW] [MEOW] Ja jos muutan sen pois, [MEOW] nyt se pysähtyy, mutta ohjelman vielä käynnissä. [MEOW] Ja niin, ihastuttava. [MEOW] Joten avata hieman kehittynyt Esimerkiksi kutsutaan Älä Pet Cat. Ja nyt katsotaanpas mitä tapahtuu täällä. [MEOW] meowing. Joten se on hieman automaattinen lentäjä, jos haluatte. --pet kissa. Ihmettelen miksi. [ROAR] [MEOW] Miten tämä toimii? No, voit sellainen syy kautta se intuitiivisesti, ehkä. Mutta katsokaamme todellinen koodi. Joten jälleen, kun vihreä lippu napsautetaan, tehdä ikuisesti. Mitä haluat tehdä ikuisesti? No, jos koskettaa hiiri osoitin, sitten pelata ääni, joka on ilmeisesti kutsutaan Lion 5, että on sisällä tämän hankkeen, muu toistaa ääntä Miau, ja odota kaksi sekuntia, joten että se ei ole meowing lakkaamatta. Itse asiassa, voit nopeasti aloittaa ärsyttää itseäsi ja kämppäkaverini. Katsotaanpa poistaa tämän lohkon. Ja huomaa, mitä on mukavaa noin Scratch. Asiat vain sellaista drag ja pudota ja lukitus. Niin uudelleen, se kasvaa täyttää mitä haluat. Mutta jos voin poistaa tämän, ja sitten osuma pelata, [COMPUTER blip SOUND] --it on tavallaan kompastuminen itse, koska se on kirjaimellisesti tekee mitä sanon. Se sanoo aina pelata tätä ääntä, mutta En anna sille mahdollisuuden lopettaa. Ja jotta olisi vika. Ja siksi meillä oli tämä asia täällä nyt. Joten oikeastaan ​​alkavat scratch-- eräänlainen sanaleikki hieman intended-- jossa meillä on nyt kissa liikkua. Joten aion tehdä tämän lennossa. Aion zoomata täällä, vain päästä minua alkoi Tapahtumat. Ja vihreä lippu napsautetaan. Ja siellä on muita tapoja Aloita skriptejä. Aiomme pitää se yksinkertainen täällä. Ja nyt aion mennä eteenpäin ja mennä hallinnassa. Ja vielä, jos unohdat missä asiat ovat, klikkaa ympärillä, ja lopulta löydät ne uudelleen. Joten haluan ikuisesti tehdä mitä? Haluan käyttää liikkeen lohko että tiedän olevan olemassa, siirrä 10 askelmaa. Joten mitä tapahtuu tässä jos pelaan tätä peliä. Onneksi se ei mene liian pitkälle. Voin silti sellainen napata häntä hännästä ja vetää hänet takaisin. Mutta ohjelma on yhä käynnissä, joten hän on tavallaan taistelevat minua. Mutta se halua olla sellainen kiva jos en ehdollisesti korjata tämän koodin. Koska tämä on not-- oikeastaan ​​tämä on todella ei hauska peli kaikille kaiken ikäisiä. Joten yrittää korjata tämän jonkinlaista ehtoja. Joten aion mennä mukaan Ohjaus, ja sitten jos. Pidän tätä ajatusta. Joten muuton jälkeen 10 askelmaa, if-- haluan tuntea missä olen. Aion mennä alle Sensing, ja sitten se näyttää voin mennä täällä. rivin muoto ottelut. Koko ei, mutta se on tulee kasvamaan täyttää. Ja nyt tämä on pieni valikko. Ja nyt hiiri pointer-- en haluavat hiiri, haluan reuna. Joten Scratch on fiksu tietää kun sprite koskettaa reunaa. Mitä haluan hänet itse tehdä? Anna minun mennä eteenpäin ja muuttaa liikkeen. Arvaa mitä? Aion saada hänet kääntymään ympäri. Joten 15 astetta ei ole todella aikoo auttaa minua. Haluan hänet kääntymään ympäri ja mennä toiseen suuntaan. Joten mitä tapahtuu täällä, jos osuin Pelaa nyt. OK, typerää näköinen, mutta se tekee juuri sitä mitä sanoin. Ja se kiertämällä koko Sprite. Nyt näyttää siltä, ​​voin korjata tämän. Ja en tiennyt miten korjata tämä ensin. Olen sellainen oli futz ympäri ja Katso paras tapa tehdä tämä. Mutta jos menen to-- Katsotaanpa, liike. Voi, löysin tämän. Oikeastaan, Set kierto tyyli. Vasemmalle, oikealle, tai älä kiertää, tai ympäri. Ja käy ilmi, että mitä haluan. Ja aion laittaa tämä ei ole minun silmukka, koska minun ei tarvitse asettaa kierto tyyli useita kertoja. Aion laittaa sen hyvin alkuun Tämän ohjelman, jotta se saa asettaa kerran, ja sitten muistaa. Ja nyt aion kokeilla tätä uudelleen. Saanen lopettaa ohjelman. Ja nyt kun kiinteänä vika. Joten olen toistuvasti paranna tätä. Ohjelma on saada hieman monimutkaisempi ja isompi, mutta otan vauva vaiheet niin sanoakseni, ja pieni puree pois ongelma saada paremmin ja paremmin. Mutta tämäkin on tavallaan ontuva. Arvaa mitä? Pyytää joku todella hyvä, frightful ääni kuin keksiä? Joku äänellä. Uh, joo. Tule ylös. Vihreä paita. Joten se kääntyy pois on joitakin muita hauskoja asioita, estetiikka ja kuulostaa keskuudessa. Tässä miau. Klikkaan Äänet-välilehteä. [MEOW] On miau. [MEOW] [MEOW] [MEOW] --actually ennätys jotain oman täällä. Joten juuri siihen. Sen sijaan käyttää tätä kissa ääni, katsotaanpa mennä eteenpäin täällä, ja mikä on nimesi? Nick, nice to meet you. Se on David. Joten hetken, aion lyödä Tallenna-painiketta. Ja jos voit vain huutaa osaksi kannettava tietokone, "Auts," ikään kuin vain käveli seinään, että on arvostettua. 1, 2. NICK: Auts! DAVID J. MALAN: Mahtavaa. Ja nyt voi tehdä vähän muokkausta täällä. Menossa päästä eroon hiljainen osia. Ja mielestäni se on hyvä. Kiitos paljon. NICK: Pleasure. DAVID J. MALAN: Olen vain nimesi sen "Auts," mutta nyt aion palata minun skriptejä. Ja ilmoitus on todellakin äänen täällä. Ja aion mennä eteenpäin ja toistaa äänen Auts, ja aion tehdä niin, jos se koskettaa vain reunoista. Ja sitten aion on se kääntyä. Joten mitä tapahtuu täällä. Mennään koko näytön. [VIDEOTOISTOSTA] -Ouch! Auts! Auts! Auts! Auts! Auts! Auts! Auts! [Lopeta toisto] DAVID J. MALAN: Niin tajuat että saamme hieman onnekas. Aion saada hänet liikkua kuten 100 askelta kerrallaan. Joiden vaikutus nyt on menossa on be-- [COMPUTER häiriö SOUND] Niin kohtuuden rajoissa. Joten mahdollisuus tarkentaa, että lisäksi jos me todella haluamme. Joten Nyt käyttöön toinen käsite. Päästää minua lähtemään johonkin nimeltään Counting Sheep ja käyttää jotain kutsutaan muuttuja. Tämä on suloinen pikku lampaita, ja Vaihdoin hänen puku niin sanotusti. Joten vaikka oletusarvo on kissa, voit ladata, voit piirtää, voit tehdä minkä tahansa määrän merkkejä teidän sprite. Tässä ohjelma, joka on aiomme tehdä mitä Englanti? Perustuu jälleen vain mitä tiedät nyt. Mitä tämä ohjelma tekee? Joo, se tulee laskea. Yksi numero kerrallaan. Meillä on ilmeisesti on tämä asettaa laskuri. En tiedä mikä se on, mutta ehkä se on vaihteleva. Se on vain kontti, X tai Y. Mutta sana laskuri on enemmän kuvaileva kuin matemaatikko n X tai Y. Joten voimme käyttää Englanti sanoja asioita. Ikuisesti, tarkoittaa vain pitää tehdä tämä. Sano laskuri. Nyt jos tämä tuli? No, käy ilmi, että laskuri on vaihteleva. Joten se on vain yksi palapelin pala olen luonut etukäteen. Ja vaikka se sattuu ei olla sama muoto täällä, normaalisti sanoisit jotain hei täällä. Voit myös vetää muuttuja niin että se mitä on päästä sanoi. Sitten odotan toista, minä muuttaa laskuri yhdellä, mukaa se lisäämällä yksi. Joten nettovaikutus on Tämä suloinen Counting Sheep. Vaikka hän laskee itse. Nyt se on hyvin nopeasti menossa tylsää koska hän aikoo Tätä todella ikuisesti, mutta juuri siitä Ohjelman suunnittelu määrää. Lets yrittää nyt toinen esimerkki joka hyödyntää muuttuja. Tämä yksi nimeltään Hi Hi Hi, että ei saada harmittaa nopeasti. Nyt tämä on kaksi skriptejä. Ja niin taas, otamme vauvan askelia. Aloitimme jotain Super pieni, lisätään siihen, lisätään siihen. Nyt haluan tehdä jotain entistä dynaamisempi, joten haluan olla kuuntelee kaksi eri asiaa kerrallaan. Niin vasemmalla, kun Vihreä lippu on napsautetaan, Asetin muuttuja, kirjoitin etukäteen kutsutaan Mykistetty. Ja minä mielivaltaisesti asettaa sen 0. Joten Scratch ei ole totta ja väärä, mutta se ei ole 0 ja 1. Voin siis lähentää että sama ajatus. Ja sitten ikuisesti, jos välilyöntiä on painettuna, aseta muuttujan 0. Tai pahoillani. Jos Space painetaan, ja jos mykistetty, muuttuja, on 0, aseta mykistetty 1, muuten asettaa mykistetty 0. Tämä näyttää tavallaan kuin olemme juuri tekemässä ja avaamalla työtä. Mutta mitä vaikutuksia? Joka kerta osuin välilyöntiä, Mitä tapahtuu muuttuja nimeltään mykistetty, loogisesti? Tavallaan saa kääntää. Se muuttuu 0: sta 1 tai 1-0. Joten kesti muutaman korttelin ilmaista, että, mutta kaikki Mulla on toggling tila tämä muuttuja 0 tai 1, tai 0 tai 1 joka kerta osuin välilyöntiä. Nyt tänne, mitä tämä tekee? Ikuisesti, jos mykistetty on 0, joten jos mykistetty on väärä. Joten jos se ei ole mykistetty, on semantiikka siellä, toistaa ääntä merileijona, ja ajatella Hi Hi Hi kahdelle sekuntia, odota kaksi sekuntia. Joten huomaa nyt nämä skriptit ovat tehokkaasti menossa rinnakkain niin että voi kuunnella yhden toiminta, muut tehdä päätös perustuu kyseisen kanteen. Ja se voi tehdä tämän ikuisesti. [Merileijona BARKING] [Merileijona BARKING] Se tulee tehdä tämän ikuisesti ja [Merileijona BARKING] koska olen juuri tehnyt. Ja nyt se on edelleen käynnissä mutta olen "mykistetty" peli. [Merileijona BARKING] Ja se kaikki tämä kaveri tekee nyt liian. Avataan toinen esimerkki tästä. Anna minun mennä Tapahtumat, ja nyt tämä ihana myös. Mutta huomaa sitä on kaksi sprite. Joten ei vain kaksi skriptejä yksi sprite, mutta kaksi sprites. Ja jos minä klikkaa sinistä kaveri kuin minä jo, näen hän yhtenä ohjelma täällä että kirjaimellisesti sanoo vain tämä, kun saan tapahtuma, sanoa "Polo" kahden sekunnin ajan. Joten jos olet koskaan pelannut allas, peli Marco Polo, jos oranssi kaveri kirjoitus on viitteitä, ilmeisesti joka kerta osuin välilyöntiä, mitä oranssi kaveri aikoo tehdä? Hän aikoo sanoa "Marco". Ja sitten tämä on uusi lohko. Emme ole nähnyt tätä ennen, mutta lähettää tapahtuman. Ja voisin kutsua sitä tapahtuma mitään haluamme. Palaamme tähän ehkä ennen pitkää. Mutta lähetykset tapahtuma on tapa yksi sprite puhua toisiinsa olennaisesti kulkee sen viestin. Se ei ole viestin näet. Se ei ole jotain visuaalinen. Se on eräänlainen tietokoneen viestin että muut kaveri kuuntelee. Koska todellakin, sininen kaveri, muistaa ei kun vihreä lippu napsautetaan. Hän sen sijaan on, kun saan tapahtuma. Kun hän saa luovutti tämän merkinnän luokassa, niin sanoakseni, hänen tulisi sanoa "Polo." Ja niin nettovaikutus on, että kun minä osuma vihreä lippu, mitään ei tapahdu. Mutta kun välilyöntiä, hän sanoo "Marco", hän vastaa "Polo." Mutta ainoa Sprite olen vuorovaikutuksessa on oranssi yksi. Joten tämä on tapa eräänlainen kulkee väliset viestit sprite ja ottaa ne kommunikoivat toistensa kanssa. Nyt Katsotaanpa viimeisen yksi täällä kutsutaan Langat. Ja huomata tämän pelaamalla sitä. Nämä ovat siis kaksi sprite. Lintu on eräänlainen lentelee. Hän terhakka. Ei ole "Auts", mutta sama ajatus. Mutta kissa näyttää aika fiksu. Mikä on kissa ilmeisesti tekee? Ja odottaa sitä. Mikä on kissa ilmeisesti tekee? Se ei ole vain terhakka. Hän seuraava lintu. Ja niin ilmeisesti olemassa tapa yhdistelmällä lohkojen here-- ja katsokaamme kissa todella nopeasti. Ikuisesti, jos koskettaa lintu, sitten pelata ääni Lion 4, mitä se on. Kuulimme sen kerran. Muuten, kohta kohti lintu, ja siirrä yksi askel. Nyt se seikka, että se on yksi vaihe on mitä antaa lintu hieman etu aluksi, mutta jos me sen sijaan tekevät 10, esimerkiksi, joten että jokainen iterointi silmukan hän liikkuvat 10 vaiheet aikaa. Joten enemmän tilaa. Katsotaan mitä sitten tapahtuu. [LION ROAR] Ei kovinkaan paljon paremmin. Joten nyt yritetään parantaa kun nämä pikku iteratiivisesti, ja palata että käsite toiminto. Ja todellakin yksi perustavista takeaways luokan suunnittelu. Ei vain kirjallisesti ohjelmia, jotka toimivat ja että ovat oikein, mutta ovat hyvin suunnitteli. Ja suunnittelu on paljon enemmän subjektiivinen, ja saat paremmin se ajan myötä. Mutta sallikaa joitakin vauvan askelia kohti alkaen ohjelma, joka toimii, ehdottomasti, mutta se ei ole kovin hyvä. Se ei ole kovin hyvin kirjoitettu. Joten tässä on ohjelma, joka tekee tämän. Yskä, yskä, yskä. Mitä ohjelma näyttää? Näyttää olevan oikein minulle. Se sanoo sohva toiseksi, sitten se odottaa. Sitten se sanoo uudelleen, sitten se odottaa. Sitten se sanoo uudelleen, sitten se odottaa. Ja sitten ohjelma implisiittisesti päättyy, koska ei ole mitään silmukka. Mutta miksi tämä huonosti kirjoitettu ohjelma? Vaikka et ole koskaan ohjelmoida ennen? Kuten, mitä hieroo väärällä tavalla, ehkä täällä? Joo? Yleisö: [äänetön] DAVID J. MALAN: Aivan. Olet toistamalla itsesi uudestaan ​​ja uudestaan. Ja kirjaimellisesti, minä kopioida ja liittää kaksi näistä lohkojen uudelleen ja uudelleen. Ja juuri sellainen järki tarkista, että sinun pitäisi tehdä. Hetkinen. Pitäisikö minun todella tehdä tätä? Joten mitä tämä mitä ilmeinen ratkaisu ehkä? Jonkinlainen silmukka. Ja en ole aivan muistaa mitä palapelin pala on, mutta jos katson seuraavaan toistoon täällä, todellakin, siellä ei ole vain ikuisesti silmukka, on olemassa toista jokin määrä kertoja. Ja niin olen määritelty kolme. Ja nyt huomaa kuinka paljon tiukempi, miten paljon ytimekkäämpi tämä ohjelma on. Ja tavallaan, miten paljon enemmän ylläpidettävissä. Jos haluan vaihtaa sanan yskä jotain muuta, kuten Achoo, kuin hän aivastelua. Sitten voin muuttaa sen yhden paikka, eikä kolme. Joten tämä jo tuntuu hieman parempi suunnittelu. Saanen sen sijaan auki yskä 2, meidän kolmas esimerkki. Huomaa, kuin tietokone tiedemies, I alkaa laskea 0, tyypillisesti. Nyt tämä näyttää vähän pelottavampi osoitteessa ensimmäinen, mutta vaikutus on sama. Yskä, yskä, yskä. Mutta mitä näyttää olevan pohjimmiltaan uusi yläosassa ohjelman? Olen poistanut sanoa. Olen poistanut odottaa. Ja mitä olen kytketty sijaan? Toiminto. Yskä lohko. Tarkoitan, rehellisesti, olen ilmeisesti sellainen idiootti jos en vain aloittaa lohko joka on ilmeisesti kutsutaan "Yskä" jos siinä kaikki haluan hänen tekevän. Mutta se ei ole Scratch. Pikemminkin Menin yksi paletti kutsutaan enemmän lohkojen täällä, ja vedän tämä iso violetti juttu täällä, että antaa minulle määrittää funktion. Se lähinnä antaa minun luoda oman palapelin pala, joka voidaan kutsua mitä olen haluavat, että voi tehdä mitään haluan, mutta se antaa sille nimi. Se antaa minulle uusi, violetti palapelin pala että nyt tekee kaiken kerron sen tehdä. Joten tämä violetti pala täällä vastaa tämä täällä. Ja mitä se tekee? Siinä sanotaan yskä varten toinen, ja sitten se odottaa. Ja nyt olen tavallaan luotu minun omia palapelin pala, niin, että se käyttäytyy juuri sitä samalla tavalla. Joten en voi jatkaa tätä. Ja todellakin, siellä tulee olemaan enemmän ja enemmän mahdollisuuksia modularisointi, ja kerrospukeutuminen, monimutkaisuus päällekkäin toisen. Mutta tämä perusajatus, todellakin ongelma sanoi 0. Mitä aiot haastetaan tehdä on ladata Scratch, tai vain käyttää sitä Webissä, ja vain pitää hauskaa sen kanssa. Annamme sinulle joukon vaatimukset, joiden ääni, ja jotkut lukumäärä palapelin palaset. Mutta voit tehdä juuri tätä. Ja huomaat, että olet menossa haluavat ottaa joitakin vauvan askelia aluksi, kunnes ohjelma saa yhä monimutkaisempia. Mutta ottaen on tämä Paras tapa voisin tehdä tämän? Voin välttää tämän vaisto ehkä kopioida ja liittää? Mutta ennen Harjoitus 0, ja ennen kuin lykätä, ajattelimme ottaa yhden enemmän vapaaehtoinen jos voisimme, lopullisen ohjelman se ehkä kaikkein asentamista lainkaan, kun otetaan huomioon nykypäivän paikka. Tule alas. Joo. Kyllä. Mikä on nimesi? O-ou. Se on ok. Molemmat tulevat alas. Ja olen käsittelevät tätä jotenkin kuluessa, että seuraavien kymmenen sekuntia. Joten tule alas. Tule alas. Saanen tule tänne. Tule. Selvä. Katsotaanpa täällä. Niin huomaa todella nopeasti täällä, jos haluat tulla ylös. Teemme kaksi kierrosta tästä. Ja mikä on nimesi? SABRINA: Sabrina. DAVID J. MALAN: Sabrina ja? YING GEE: Ying Gee. DAVID J. MALAN: Ying Gee. Hauska tavata molempia. David. Joten meidän lopullinen esimerkki tästä on nimeltään Ivy vaikein peli. Ja miksi ei meillä teet Taso 1, ja teet tason 2. Ja näemme, miten pitkälle pidemmälle me itse mennä. Kirjoittanut opiskelija viime vuonna, miksattu minua niin että tämä menisi yli hyvin New Haven. Ja minä annan sinulle peli, joka tulee mukana liikkuvat nuolet ylös ja alas, ja saada Yale maaliin. No niin. [VIDEOTOISTOSTA] [MUSIC - NFL Fox tunnari] [MUSIC - MC Hammer, "U voi koskettaa  TÄMÄ "] -U Ei voi koskettaa tätä. U voi koskettaa tätä. Ei voi koskettaa tätä. Minun, minun, minun, minun musiikki lyö minua niin kova, tekee minut sanoa, oh, herrani. Kiitos siunausta minua mieli riimi ja kaksi hype jalkaa. Se on hyvä kun tiedät alas. Super pölvästi ilves päässä Oaktown. Ja minut tunnetaan sinänsä ja tämä beat öh, et voi koskettaa. Kerroin sinulle Homeboy U voi koskettaa tätä. Joo, miten elämme ja tiedät U voi koskettaa tätä. Katso silmiini, mies. U voi koskettaa tätä. Yo, haluan rintakuva funky lyrics. U voi koskettaa tätä. Tuore uusi potkuja ja housut. Sait sitä niin ja tiedät halua tanssia. Joten siirtää pois paikkasi ja saada lentää tyttö ja saalis voittaa. Vaikka se on liikkuva ote pumppu hieman bittinen ja anna heidän tietää, mitä on tekeillä. Niin. Niin. Kylmä lähetystyöhön niin vedä takaisin. Kertoa heille, että olet liian paljon ja tämä on askel öh et voi koskettaa. Yo, olen kertonut sinulle U voi koskettaa tätä. Miksi seisot siellä mies? U voi koskettaa tätä. Yo, ääni kelloa koulun vuonna, tikkari. U voi koskettaa tätä. Anna minulle laulun, rytmi tekee niistä hiki sitä minä annan heille nyt. He tietävät kun puhutte Hammer puhut osoittavat, että on aggressiivisesti. Ja tiukka laulajat ovat hikoilu niin siirtää ne mikrofoni. Tai nauha oppia, mitä se tulee ottaa ja nyt hän aikoo polttaa kaavioita. Legit joko töitä tai voit yhtä hyvin lopettaa. Koska tiedät U voi koskettaa tätä. U voi koskettaa tätä. Murtaa se alas. Lopettaa. Hammer aika. Mennä virran spin jos et voi siirtää tähän sinulla todennäköisesti kuollut. Joten aalto kädet ilma [äänetön] Tämä on se voittaja tanssi tämä ja aiot saada ohuempi. Siirrä liu'uta paisti vain minuutti nyt kaikki tehdä kolahtaa. Joo. U voi koskettaa tätä. U voi koskettaa tätä. Sinun on parempi saada aggressiivisesti poika U ei voi koskettaa tätä. Ovikelloa koulun takaisin. Murtaa se alas. Lopettaa. Hammer aika DAVID J. MALAN: Se on se CS50! Kiitos paljon liityit! Nähdään ulkopuolella. [Lopeta toisto] [VIDEOTOISTOSTA] [MUSIC - "SEINFELD" tunnari] Hei David. Hei, David. Kuinka menee? -Hyvä Työ, tänään. -Niin Olet ajatellut mitä aiot tehdä ulos vitsejä? -Ei, En saanut mitään. -Mitä If-- mitä jos tämä on pois vitsi? Kaltainen, purkaminen kärryt? -Uh-Huh. Tiedäthän, se on noin mitään. -Niin Pidä, ei tarinaa, ei konfliktien, ei päätöslauselman. En ymmärrä. Mikä se noin sitten? En mitään. -No Meillä ulos vitsi on noin mitään, ja meillä ei ole toimijoita. Kuka tulee olemaan tässä? -Ei, Ei, ei. Tarkoitan, otan sen. -You'll Olla se? -Joo! Ihmiset ovat aina kertoa minulle Olen hahmo. -No, Tarkoitan, se on totta. Mutta kuka muu tulee olemaan siinä? Se voi vain olla sinä. -Voit Tulee olemaan se, Gavin, Dan, Dan, Colton, Z'Myla, Alysse, Doug, David, kaikki. -Niin Se on tyhjästä, ja kaikki siinä on? -Ei yhtään mitään. -Tämä on naurettavaa.