[TAUSTAMELU] Toimiiko se? PATRICK REBESCHINI: Voimme päästä alkuun. OK. Suuri. Aloitetaan. Joten se on minun suurin ilo toivottaa teidät kaikki täällä tänään ensimmäisen luennon , hyvin, Johdanto Tietojenkäsittelyn ja ohjelmointi. Tunnetaan myös CS50 tai hyvin, cpsc 100, virallisesti täällä Yalen. Joten emme voineet olla innoissaan toivottaa teidät kaikki täällä. Nimeni on Patrick Rebeschini. Olen pää ohjaaja luokan. Olen täällä edustaa ryhmää noin 60 henkilöstön jäsentä jotka auttavat sinua koko lukukauden. Tämä määrä on lähes 60 meistä. Silti pitkin ylimääräinen Maksusitoumusten että me otetaan tähän luokka, tekee CS50 luokka Yalen yliopistossa, joka tarjoaa suurin tukitason kaikille teille. Ja emme voi olla ylpeä tarjoaa tämän luokan täällä taas. Itse asiassa, koska voit pian kokea, CS50 on paljon enemmän kuin luokan. Se on yhteisö. Ja olet osa Heti tämän yhteisön. Tämä on toinen vuosi, Yale tarjoaa tähän luokkaan. Rakennamme äärimmäisenä menestys viime vuonna, jossa ensimmäistä kertaa, täällä tässä yliopistossa, perustutkintoa oppiminen avustaja hyväksyttiin luokkahuoneissa. Kaikki alkoi Tämän luokan viime vuonna. Niin kuin tiedätte, luokka opetetaan yhdessä Harvard University. Opettaa tämän kurssin olemme relying-- voimme luottaa suurta asiantuntemusta David Malan ja Harvard joukkue. Niin David on ollut opetus CS50 reilusti, 10 vuotta. Ja joka vuosi hän on ollut työntää rajoja ja parantaa luokkahuoneen kokemus. Jälleen, emme voineet olla mielellään jatkaa yhteistyötä heidän kanssaan. Itse asiassa, yksi mielenkiintoisimmat osat, Sanon käynnissä tämän luokan nyt, sekä Harvardin ja täällä Yalen, on todella uskomaton ristipölytyksen ideoita, joilla pyritään parantamaan oppimiskokemus teille kaikille. Niin tuloksena laajoja yhteistyötä kahden yliopisto, CS50 ylpeänä ilmoittaa uuden version tänä vuonna kanssa havaittavia muutoksia. David kaikki kertovat ne nyt. Joten please-- tämä olento sanoi, liity minulle ja tervetuloa antamaan iso aplodit toivottaa David ja Harvard joukkue täällä Yalen. [SUOSIONOSOITUKSET] DAVID MALAN: Kiitos. Kiitos. Tämä on CS50, Harvardin yliopiston ja Yale University käyttöönottoa älylliseen yritysten tietojenkäsittelytiede ja taiteen ohjelmointia. Ja mitä se tarkoittaa, että tämä kurssi lopulta, noin ongelmanratkaisu. Itse asiassa monet teistä ehkä ovat tulleet ulos lukiosta tai ovat viettäneet parin viime vuoden aikana mietin, mitä jotkut ystäväsi tekivät viime vuonna tai muihin luokkiin. Ja kuitenkin, todellisuus ei, mitä me do lopussa päivän tässä luokassa, se tulee olemaan noin ongelmanratkaisuun. Ja sellaisena, ehkä ota Joissakin rauhoittaa se, että 73% opiskelijoista, jotka käyttävät tämän luokan, niin täällä Yalen sekä Harvardissa eivät ole koskaan CS luokan ennen. Joten jos olet istuu täällä yleisö tänään mietin miksi istut täällä yleisössä tänään, tai ehkä vain seurasi yhdessä joidenkin ystävien, tai ehkä olet ollut vähän utelias, mitä tietojenkäsittelytiede ja ohjelmointi on, ymmärtää että useimmat teidän luokkatoverit vasemmalle ja oikealle teistä ovat hyvin saman väestörakenteen. Ja todellakin, jos katsomme viime vuoden tilastojen sisällä ylioppilaskunnassa CS50 sekä täällä ja Harvardin, 58% opiskelijoista kuvata itseään vähemmän mukavaksi. 9% on mukavampaa. Ja sitten 33% on jossain välissä. Eikä ole virallista määritelmää mitä nämä kauhat tarkoittaa. Sinä tavallaan että olet vähemmän mukava, jos olet. Et tunne hieman levoton jossa ehkä ollessa luokassa. Et ole aivan varma, onko tietokone tiede luokka on viime kädessä sinulle, ja ymmärtää, että olet erittäin hyvä yritys. Ja todellakin luokittelu, ja arviointi, ja palautteen, ja kaikki tämä tukirakenne luokassa on lopulta hyvin yksilöllisesti. Enemmän kuin useimmat mitään muut luokan virhe. Ja todellakin, mitä lopulta Olennaista tässä luokassa ei ole niin paljon, jos lopetat jopa suhteessa muihin, mutta jos te, viikolla 11 tai viime, ja suhteessa itse viikolla 0 täällä ensimmäinen. Mitä tämä tarkoittaa? No, tämä tarkoittaa niitä 73% opiskelijat viime vuonna, että ei ollut koskaan CS luokan ennen, jonka aloittaa lukukauden he oli leikittelevät kielellä nimeltään Scratch, jonka me itse näkevät täällä tänään. Ja lopussa lukukausi olivat he menneet kautta koko lista haasteita. Alkaen kieli nimeltä c. Toteuttaminen, mikä ensi silmäyksellä, menossa olla hieman haaste Joissakin, mutta melko ilahduttavaa kun saada Super Mario terhakka ylös ja alas pyramidi täytäntöön, vaikkakin, juuri jotain kutsutaan ASCII. Toteuttaminen viime year-- mitä opiskelijat viime vuonna sitten ei sen jälkeen oli toteuttamaan oma Caesar salakirjoitus ja vigenere cipher. Joten salausalgoritmeja jolla voisit ryntäily tiedot ja sitten purkaa tiedot lähettää salaisia ​​viestejä. Peli 15. Jos muistat lapsuudessa tai jonkin osapuolen puolesta, että hieman muovinen peli jossa liikutaan numerot ylös, alas, vasemmalle ja oikealle yrittää saada ne järjestyksessä, todellisessa täytäntöönpanossa että peli ja ratkaisemalla logiikkaa tarvitaan siellä. Ja sitten me dabbled forensics viime vuonna. Joten Syyslukukauden, opiskelijat jotka eivät olleet koskaan käyttivät näppäimistöt tätä tarkoitusta varten ennen, olivat kirjallisesti ohjelmisto elpyä, niin sanotusti, JPEG tai valokuvia että meillä oli vahingossa Poistetaan digitaalisesta muistikortti kamerasta. Elvytys salaisia ​​viestejä sisäpuolelta bittikarttakuvan, ja muita tämän tyyppisiä grafiikkaa samoin. Sitten siirtynyt antamaan koko luokka sanakirja. Vain todella iso tekstitiedosto 150000 Englanti sanat. Ja jokainen haastettiin jotenkin lukea, niin sanotusti, nämä sanat muistiin. Tietokoneen muistiin. Ja sitten vastata kysymyksiin muotoa, on tämä sana? Onko tämä sana? Onko tämä sana? Oikeastaan ​​vain täytäntöön oikoluku. Ja sitten haastava jokaisen muut isolla board-- johtaja aluksella nähdä, kuka voisi käyttää vähiten muistia, vähiten aikaa todella oikeinkirjoituksen tarkistus suuria asiakirjoja. Me siirtynyt sitten vuodesta täytäntöön niistä oma web-palvelin. Joten ei tehdä verkkosivuja kielillä kuten HTML ja CSS, jos olet perehtynyt. Mutta todellisessa täytäntöönpanossa palvelin, kuuntelee Internetissä pyynnöille selaimista ja sitten vastata näihin pyyntöihin. Sovellamme omaa e-kauppa, kuten nettisivut, jossa opiskelijat voivat ostaa ja myydä varastoja. Piirustus lähes reaaliajassa pörssikurssit Yahoo Finance. Ja antaa opiskelijoille mahdollisuuden nähdä miten salkussa kehittyy. Ja sitten lopuksi mash up Google News ja Google Kartat jolloin opiskelijat by aikavälillä ehdot loppuun oli kyky osoita, ja pyöreä, ja haku Googlen kartalla. Ja sitten nähdä kaikki uutisartikkeleita että ovat proksimaalisesti ne tietyt alueet. Joten todella menee nollasta 60. Ja matkan varrella ottaa mitä meillä oli viime vuonna nimeltään, hakkeri lisäyksiä. Se nostaa rimaa lisäksi ne teistä joka saattaa hyvinkin olla hyvä määrä kokemusta ollessa että 9% on mukavampaa. Niin ymmärtää, että on olemassa erittäin korkea katto jopa ne, haasteita opiskelijoille lähtöisin eri taustan. Koska lopussa päivä, olemme lopulta keskittyi yksinkertaisesti tässä. Mutta mitä tämä tarkoita, ongelmanratkaisu? Joten ehdottaa me tislata sitä näin. Joten ongelmanratkaisu on todella juuri tällainen kuva. Joten sinulla panoksia joitakin ongelmia, jotain todella haluavat ratkaista. Tavoitteena on saada tuotokset, ratkaisun tähän ongelmaan. Ja sitten keskellä on mitä me kutsumme musta laatikko. Et välttämättä tiedä tai edes care mitä sisällä että musta laatikko. Kaikki te tiedätte, että kun rehu panos sitä, te toivottavasti saat ulostulo tai liuosta siitä. Ja vaikka tänään tutustumme sekä tulot ja lähdöt, me will pitkällä aikavälillä, ja yli Tietenkin koko lukukauden, keskittyä mitä sisällä että laatikko. Ja siinä lepäävät jotain kutsutaan algoritmeja. Askel askeleelta ohjeet itse ratkaista joitakin ongelmia. Mutta mikä on esimerkki joidenkin panoksia? Joten ehkä yksinkertainen asia on aloittaa jokaisen lukuvuoden, joku kannattaa ottaa läsnäolo. Niinpä voisimme tehdä yksi, kaksi, kolme, neljä, viisi, kuusi, ja miten pidän kirjaa kyseiset tiedot. Voisin vain mennä yksi, kaksi, kolme, neljä, viisi, kuusi. Ja vain käyttää eräänlainen yhden numeron. Tai voisin itse äänittää tämä hieman pidemmällä aikavälillä. Ja miten voin edustaa kaikkia ihmisillä tässä huoneessa? No, voisin tehdä jotain, OK. Näen yksi henkilö. Selvä. Näen toisen henkilön, joka on Kolmas henkilö, ja niin edelleen. Mutta kukaan laskee ihmisiä näin. Joten kirjaimellisesti, suurin osa meistä, jos olemme edes aio vetää mitään lainkaan, todennäköisesti menossa yksi kaksi kolme neljä, ehkä saada vähän fancy, viisi, kuusi, seitsemän, kahdeksan, yhdeksän, kymmenen ja niin edelleen. Ja se on oikeastaan nimeltään unary. Uno, kuten uno mikä yksi, missä vain yksi kirjain. Olet juuri saanut tämän hash merkki. Ja minä, tehokkuuden, vain piirsi Näiden hash merkkejä, lopulta kuten suoria viivoja. Mutta en voinut vetää ne niin vähän tikku. Missä edustamaan yksi henkilö, yksi tulo, Olen vain piirtää tikku kuvio tai hash merkki. Mutta tämä ei ole kovin ilmeikäs. Jos minulla on vain nämä hash tavaramerkit, saati tikku, miten voisi Edustan jotain numero 15? Tai 15 henkilöä huoneessa? Voisin täytyy tehdä jotain 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15. Se vain ei mittakaavassa hyvin. Koska panokset saada suuria, me tarvitsevat parempi järjestelmä kuin tämä. Ja se osoittautuu, että joka tietokoneet käyttävät ei ole kovin erilainen mitä te ja tiedän. Itse asiassa useimmat ihmiset tässä huoneessa, vaikka olet yksi niistä vähemmän mukava, eivät välttämättä tiedä miten Macin tai PC todella toimii, olet todennäköisesti ainakin kuullut, että alla huppu ovat 0: n ja 1: n. Ns binary järjestelmään. Joten todellakin, tietokoneissa on yli vain hash tavaramerkkien sanavarastoaan, mutta ei yhtä paljon sanastoa meidän ihmisten. Todellakin, me ihmiset eivät käytä binary. Bi tarkoittaa 2, 0 ja 1. Mutta desimaalin, deka mikä tarkoittaa 10, 0 kautta 9. Joten meillä on paljon enemmän ilmeikäs valmiuksia normaalin ihmisen maailmassa. Mutta olin sitä mieltä, että nämä järjestelmät, binary, ja desimaali- ja kaiken välillä ja sen ulkopuolella, ovat oikeastaan ​​kaikki varsin tuttuja. Esimerkiksi harkita Tässä esimerkissä täällä, 123. Joten tämä todella on, tietenkin, useita tunnemme 123. Mutta en juuri kiinnitti oli juuri tämä kuvio symboleja, kuvioita niin sanotusti. Tavallaan muotoja taululle liidulla. Mutta miksi me välittömästi ja intuitiivisesti ymmärtää tätä 123? No, jos olit kuten minut alakoulussa, varmaan tietää, että tämä on 1-sarakkeessa, tämä on 10s sarakkeessa tämä on 100s sarake. Ja miksi se hyödyllinen? No, se on yksinkertainen aritmeettinen nyt do saada siitä mallia symbolien useita ymmärrämme intuitiivisesti. Juuri, 100 kertaa 1, ja sen jälkeen 10 kertaa 2, ja 1 kertaa 3, mikä tietenkin on vain 100, ja Tämä on 20, ja tämä on kolme. Ja niin jos me lisätä ne together-- ah. Joten siinä piilee sellainen päättely takana miksi tämä symboleja tarkoittaa jotain todellista ja numeerinen. No, tietokoneet tehdä täsmälleen sama asia, mutta ne vain voi laskea jopa yksi. Kun taas Pystyin laskea jopa kolme. Ja itse asiassa, jos pidin menossa voisin mennä jopa yhdeksän tässä järjestelmässä. Tietokoneet on vain nollia ja ne niiden aakkoset. Mitä tämä tarkoittaa? No, se tarkoittaa vain sitä, että jos tietokone haluaa edustaa, sano numero 0, ehkä käyttäen kolmea characters-- kolmea aakkosten niin sanotusti niin tietokone edustaa 0. Joten kaikki, että pelottava toistaiseksi. Se on juuri sitä, mitä me ihmiset tekisi. Ja itse asiassa useimmat meistä olisi vain sivuuttaa alkunollat ​​muutenkin. Tietokone, jos se haluaa Tallenna numero 1, osoittautuu aikoo tehdä tätä. Ja tietokone tallentaa numero 2 ei ole aikoo tehdä unary järjestelmä, joka viittasin aiemmin. Se todella tulee tehdä tämän. Ja tämä on luultavasti jossa kuvio alkaa tulla vähemmän ilmeinen varten useimmat ihmiset. Tilanne on 2, tämä on 3. Kummallista, tämä on nyt 4. Ja nyt se todella näyttävät olevan ehkä arvoituksellinen, mutta se ei ole, jos otetaan huomioon mitä binary todella tarkoittaa. Se tarkoittaa sinulla on kaksi letters oman aakkosten. Joten kaksi mahdollista merkkiä Kunkin paikkamerkki. Niin että todella tarkoittaa aiomme tarvitsevat 1s paikassa tai 2s paikka, 4S paikka ja sitten 8, ja 16, 32 ja 64. Ja mitä eroa on? Kuten nämä ovat 1, 2, 4, 8, 16, 32, 64. Ja ennen kuin meillä oli 110, 100000, 10000. Mitä samankaltaisuus siellä? Ja mikä malli? Joo. OPISKELIJA: Powers of 2 sijasta valtuudet 10. DAVID MALAN: Joo. Powers of 2 sijasta valtuudet 10. Ja joten jos halusin pitää menossa, 8, 16s ja niin forth-- mutta nyt jos olet tämmöinen of vihje, nyt binäärijärjestelmään on oikeastaan ​​melko yksinkertainen. Miksi tämä malli 0: n maailmassa tietokoneiden 0? No koska se on 4 kertaa 0, 2 aikoina 0, 1 kertaa 0 ja saat 0. Miksi tämä numero 1? Samat perustelut, mutta nyt on 1. 1 sarakkeeseen. Miksi tämä 2? Meillä on 1. 2s sarakkeeseen. Ja miten sitten tehdä edustan sanovat, numero 7 binary? Sano kovempaa. OPISKELIJA: Kolme 1s. DAVID MALAN: Kolme 1s. Joten 1, 1, 1, koska meidän täytyy vain 4 plus 2 plus 1 antaa minulle 7. Selvä. Joten sieltä miten me edustavat 8 3 paikkamerkit? Joo. STUDENT: 1, 0, 0, 0. DAVID MALAN: Kyllä 1, 0, 0, 0. Ja kuitenkin ehkä, olen sellainen Teknisesti tarvitaan lisätä toisen paikanvaraajaan hallitukselle. Jos haluan sovittaa että minä todellakin täytyy tehdä jotain tällaista. Joten olen itse täytyy käyttää nyt 8s sarake, ja se käy hyvin. Mutta utelias asia computing on että tulee maksamaan meille jotain. Tarvitset lisää muistia tietokoneen nyt. Tarvitset lisää muistia koska tarvitset jotain fyysinen tallentaa, että Lisäbitti, niin sanotusti. Binäärimerkillä. Ja todellakin kaikki mitä tapahtui täällä, kuten kymmenjärjestelmä, Jos pidämme lisäämällä numeroita ylös ja ylös ja ylös, menemme 5-6 ja 7-8 se on kuin kuljettaa 1, kirjaimellisesti. Ja sitten kaikki muu menee takaisin nollaan. Mutta miten me oikeastaan ​​edustavat nämä asiat fyysisesti tietokoneessa? No, lopussa päivä, vain fyysinen panos menee tietokoneeseen tässä tämä virtajohto, joten sähköä tai elektroneja seinästä. Ja niin miten saan jotain fyysinen kuin että todella mikä idea näin sijaan. No, mitä me voisimme tehdä? Voisimme katsoa, ​​että, kaikki hyvin, ehkä jos sähkö virtaa En voisi tallentaa sen ja pidä siitä kiinni. Ja jos olen tilalla joihinkin sähköä, joka on juuri menossa mielivaltaisesti edustaa 1. Ja jos minä vedä pistokkeesta ja ei ole mitään siellä, tiedät, että on juuri menossa mielivaltaisesti edustaa 0. Joten jos jotain on olemassa, 1. Jos mikään ei ole siellä, 0. Tai voit tehdä tämän hieman visuaalista. Tässä on 0. Ei ole mitään mielenkiintoista meneillään on noin takaisin minun puhelimeen. Mutta jos annan hiukan vähän sähköä virrata, vaikka se on hieman kirkas täällä, minun taskulamppu jatkoi. Joten olen tallentamiseksi maksu ja ergo, tämä puhelin nyt edustaa 1. Joten 0 1. Joten 1 iPhone kuinka korkea voin laskea käyttäen tällaista lähestymistapaa? Siis 1. Se ei ole kaikki, että pakottavia. Mitä muuta voisimme tehdä? No katsotaanpas, on joku heidän puhelimeen juuri nyt, että voisin lainata? Jokainen, joka on puhelimen taskulamppu rakennettu? Voinko lainata? En tarvitse sitä auki. Selvä. Kiitos. Saanen lainata tätä. Selvä. Jos siis nyt vierittää ylös ja tänne, Mitä minä edustavat nyt? Joo. Joten se on kolme, koska tämä on 1-sarakkeessa, tämä on 2s sarakkeeseen. Joten 1 ja 2 on 3. Ja sitten jos yritämme saada todella creative-- oh, kiitos. Hyvin ennaltaehkäisevä. Selvä. Olen nyt kolme iPhone. Selvä. Ja nyt this-- en tahdo do yhtään pidemmälle. Mitä minä edustavat nyt? Vain seiskat. Mutta minä tarvitaan fyysisesti enemmän muistia tässä tapauksessa. Mutta siinä kaikki se on. Voit ajatella mitä tapahtuu on-- kiitos sinä-- sisällä puhelimen sillä vain on kytkin, joka on kytketään päälle ja pois päältä. Ja jos olet koskaan kuullut sana transistori. Tai jos olet koskaan kuullut markkinointi puhua Intel sisällä, joka puhuu sellaista laitteisto se on sisällä tietokoneen. Intel tekee prosessorit, keskusyksikön, jotka ovat kuin aivot tietokoneesi sisälle. Ja nämä suorittimet ja asiat ne on liitetty on paljon ja paljon pieniä kytkimiä. Miljoonat, miljardeja kytkimet joka voi olla joko päälle tai pois päältä. Joten tietokoneet, onneksi, kuten meidän Macit ja PC, laskea tapa yli 7 tai 8 koska heillä on paljon enemmän kuin kolme tai neljä bittiä. Way enemmän kuin vastine kolme taskulamput että meillä oli. Mutta nyt tämä alkaa saada melko mielenkiinnoton nopeasti. Jos nyt halutaan todella pystyä tehdä jotain mielenkiintoisempaa, Haluan pystyä hyppäämään että jotain tällaista. Joten ASCII, se ei oikeastaan ​​hyödyllinen lyhennettä, mutta American Standard Code for Information Interchange. Se tarkoittaa vain sitä, muutamia vuosia sitten me ihmiset päättäneet, Tiedätkö mitä haluamme pystyä tekemään enemmän tietokoneita kuin vain numeroita. Emme halua niitä vain kallista laskimet, haluamme pystyä tekemään asioita, kuten tekstinkäsittely, vaikkakin hyvin yksinkertaisesti. Myöhemmin meillä oli sähköpostin ja muiden tiedotuskanavaa. Ja niin maailma päätti joitakin vuosia sitten mukaan tähän järjestelmään ASCII, Tiedätkö mitä? Tietyntyyppisissä ohjelmia milloin tahansa katso vastaava määrä 65, kuten kuvio bittiä. Ja voisimme tehdä matematiikka täällä pöydällä. Rakenteessa bittiä, jotka edustavat 65. Älä ajattele sitä 65 desimaalin. Ajattele sitä mielivaltaisesti, vaan maailmanlaajuisesti, johdonmukaisesti pääoman A. Ja sitten maailma päätti, tiedätkö mitä? Otetaan toinen malli bittejä. Ja jos me koskaan nähdä numero 66, nyt vain olettaa, että on pääoma B. Nopeasti eteenpäin H ja minä, jos näet 72 tai 73, joka pitäisi olla H ja I, vastaavasti. Ja niin kauan kuin koko maailma on samaa mieltä tätä asiaa. Niin, että kun saat sähköpostia, tai saisit tiedoston on USB-muistin, tai jotain that-- kun näet, että rakenteessa bittejä, tiedät, että se olisi tätä kirjain tai jokin muu kirjain. Mutta se on yhteydessä erityisiä, oikea. Sähköpostiohjelma saattaa tulkita nämä asiat kuten merkkejä, mutta graafinen laskin tai laskin voisi edustaa tai tulkita näitä asioita, tietenkin, kuten kirjeitä. Niin, että sanoi, nopea pikku tarkastelu. Tämä on ehkä kolme merkki sähköposti, joka on lähetetty minulle. Alapuolella huppu se kaikki 0s ja 1s, mutta emme välitä. Aiomme alkaa abstrakti yläpuolella 0s ja 1s kirjaimia. Ja jos näen kuvion 0 ja 1s että todella edustavat 72, vihje, vihje, 73, ja sitten 33, mikä viesti? OPISKELIJA: [tahtiimme] DAVID MALAN: Joten jos luulet takaisin hetki sitten, HI oli viesti yritin kommunikoida täällä, koska H on 72, I on 73, ja nyt 33-- et tahdo välttämättä tiedä tätä etukäteen, mutta se osoittautuu jos todella katso lisää kaavion ja järjestelmän että ihmiskunta sovittu vuotta sitten, se on vain huutomerkki. Ja todellakin, siellä on rakenteessa symbolit ja numerot jokaisen merkin että saatat olla näppäimistöllä. Selvä. Katsotaan abstrakti entisestään. Jos emme halua vain asioita, kuten numeroita ja kirjaimia, me todella haluavat toteuttaa grafiikkaa. No, jos olet koskaan kuullut lyhennettä RGB. Se on tavallaan päivätty nyt, mutta se on edelleen sellainen siellä. RGB on punainen, vihreä, sininen. Ja se on vain järjestelmä sanoa, tiedätkö mitä, nyt käyttää kolmea erilaista bittiä. Joukko 8 bittiä, toinen joukko 8 bittiä, ja toinen joukko 8 bittiä. Ja nyt käyttää näitä bittejä tallentaa kuinka paljon punainen me haluaa meidän näytöllä, kuinka paljon vihreä haluamme meidän näytöllä, ja kuinka paljon sininen haluamme meidän näytöllä. Ja tämä tarkoittaa vain sitä, että jos on lot-- iso numero punainen, se merkitsee minulle paljon punaista. Jos sinulla on suuri määrä vihreä, anna minulle paljon vihreää. Ja jos olet vain hieman sininen tai pieni määrä, kuten 33, anna minulle hieman sinistä. Ja jos satut yhdistää nämä kolme suuruudet, niin sanotusti, saat this-- tuskin voi nähdä projektori täällä, mutta tämä hämärä sävy keltainen tai ruskea. Mutta tämä on sanottava, käyttäen että kuvio 8 plus 8 plus plus 8-- että kuvio 24 bittiä Näin tietokone olisi tallentaa, että keltaisen sävyä yhdessä pieni piste pikselin näytöllä. Siksi olemme mennyt 0s ja 1s desimaaliluvuksi numeroita aakkosten. Tai mielenkiintoisempaa, värillisiä pisteitä. No, mitä tietysti sitten tulee seuraavaksi? No, mikä on kuva, että olet Facebookia tai saada sähköpostia? Tai vastaavaa? Mikä on määritelmä teknisesti kuvan? Joo. Mikä on kuva koostuu jos näyttää todella lähellä näytön? Joo. Se on vain koko joukko pikseliä. Itse asiassa, jos otat laptop ehkä myöhemmin, ja näyttää todella tarkasti at it-- riippuen kuinka kallista laptop on ja kuinka korkea laatu näyttö on, saatat hyvinkin nähdä kaikki pikku pisteinä ruudulla. Ja ne pisteiden tai pikseliä, mikä tarkoittaa, että on 24 bittiä, jotka edustavat jokaista pikseliä kyseisessä valokuva, näet Facebook, tai että juuri kesti iPhonella äskettäin. Ja niin näin saamme asioita, kuten grafiikkaa. No, mikä on video? Video on vain joukko grafiikka rientää näyttöä uudelleen ja uudestaan ​​ja uudestaan. Ja niin videot todella, ovat vain kuviot bittien edustavien verkkojen, rivit ja sarakkeita pisteitä, rientää näytön kuva, jälkeen kuva, kun kuva, alias Elokuvat. Niin, että se tulot ja lähdöt. Kaikki olemme nyt on oletukseen, te tietävät, mitä, jos haluamme tietokone edustaa tietoa, meillä on järjestelmä tee sitä. Voimme tehdä sen 0 ja 1s lopussa päivän. Mutta voimme abstrakti, joten puhua, päälle, että jotta edustaa useampaa kiinnostavia asioita. Ja täällä ulos CS50 ja tietojenkäsittelytiede yleisemmin nyt kantaa olkapäillä kaikki ihmiset, jotka tuli ennen meitä joka tajunnut, että ulos. Ja nyt vain olettaa, että tietokoneet voi edustaa tulot ja lähdöt. Mutta nyt nyt todella tehdä jotain niiden kanssa. Joten algoritmi on vain joukko ohjeiden, askel askeleelta, ratkaista joitakin ongelmia. Ja mitä voisi yksi tällainen ongelma on. Joten tämä on vanha koulu teknologia, puhelinluettelo. Ja sisällä puhelinluettelo on läjän nimiä ja numeroita. Ja ne nimet ovat yleensä aakkosjärjestyksessä. Joten jos halusin löytää jonkun Tämä puhelinluettelo kuten Mike Smith, mikä on tyypillinen ihmisen aikoo tehdä? No, voit yksinkertaisesti avata sitä, katso ensimmäisellä sivulla. En näe Mike Smith. Kierrä toiselle sivulle, En näe Mike Smith. Ja vain pitää käynnissä ja menee. Onko tämä vaiheittain oikea? Joo. Se on tavallaan tyhmä, oikea. Se on tehotonta, oikea. Koska se tulee kestää ikuisesti päästä Mike, mutta se on oikea. Koska jos Mike on täällä Aion todellakin löytää hänet. Joten mitä hieman järkevä ihminen aikoo tehdä? Ne saattavat silti avata eteen, ja ehkä lentää läpi puhelinluettelosta kaksi sivua kerrallaan. Kaksi, neljä, kuusi, kahdeksan. En voi oikeastaan fyysisesti tehdä sen hyvin. Mutta teoriassa, tämän pitäisi olla kaksi kertaa niin nopeasti, kaksi sivua kerrallaan. Onko tämä algoritmi oikein? OPISKELIJA: [tahtiimme] DAVID MALAN: Ei välttämättä. Hyvä. Miksi että varoitus? Opiskelija: Koska hän voisi olla yksi sivuista, jotka olet ohita. DAVID MALAN: Joo. Joten vaikka en päästä lähemmäs. Mitä jos hän vain vahingossa huono onnea, välissä kaksi sivua että olen lentäminen? Niinpä tarvitsemme korjauksen tähän. Meidän itse tarvitse sitten sanoa, odota hetki, Ehkä jos me mennä liian pitkälle, ehkä jos osuma T §, T tulossa jälkeen Smith, silloin meidän pitäisi vähintään kaksinkertainen takaisin ainakin yhdellä sivulla. Joten korjattavissa, mutta on ehdollisen asia siellä. Joten se on kaksi kertaa niin nopeasti, mutta saatat on kaksinkertainen takaisin vain vähän. Mutta kukaan hänen huoneessaan, vaikka eivät oikeastaan ​​käytä puhelinluetteloita enää, aikoo aloittaa alusta. Mitä aiot tehdä etsivät Mike Smith? Olet menossa mennä suunnilleen S: n. Tai jos ei oikeastaan ​​ole lunttilappua paperille, aiot mennä ainakin suunnilleen keskelle. Eikä varsinkaan edessä kirjan. Olet menossa katsomaan alas. Ja matemaattisesti olet todennäköisesti menossa katsomaan M jakso, joka on suunnilleen keskellä. Ja sitten olet menossa ymmärtää, mikä on totta? Missä Mike? OPISKELIJA: [tahtiimme] DAVID MALAN: Joo. Hän on ohi tällä puolella. Ja niin mitä voit tehdä? No, sekä kuvaannollisesti ja kirjaimellisesti voit repiä ongelman kahtia kerran? Ja sitten tietää, että voit heittää Tämän puolet ongelman pois. Ja nyt olemme jää pohjimmiltaan sama ongelma, mutta se on puolta suurempi. Ja niin nyt mikä on joukko ohjeet? Mikä algoritmi löytää Mike Smith? Se on täsmälleen sama asia. Nyt tämä sattuu olemaan M osa ja tämä on Z jakso, mutta perustavaa laatua kaava on edelleen sama. Mene suunnilleen keskelle, katso alas, OH, Hiivatti. Nyt olen T- osassa, Olen mennyt liian pitkälle. Mutta tässäkin voitte soveltaa samaa logiikkaa. Heitä puoli ongelma pois ja nyt olemme vasemman ongelma, joka on neljännes koko. Ja voimme toistaa, ja voimme toistaa, ja voimme toistaa kunnes teoreettisesti on olemassa vain yksi sivu jäljellä joka Mike joko on tai ei ole. Joten mikä on niin voimakas tästä ajatuksesta? Siis onhan se ihan intuitiivista. Kukaan menee alkavat alussa puhelinluettelosta ja läppä 1000 sivua löytää Mike Smith. Useimmat jokainen tässä huoneessa on menossa tehdä suunnilleen sellainen algoritmi paitsi repiminen. Ja niin miksi me teemme sen? No, harkitse tehokkuutta. Mieti, kuinka paljon paremmin tämä algoritmi oli murtamalla alas osaksi sen osiin. Joten mitä tein ensin tehdä? Otin puhelinluettelosta. Ja tietojenkäsittelytieteessä, ja ohjelmoija, yleisemmin se kääntyy pois, on menossa aloittaa laskenta kaikkea yhdellä 0. Miksi? No, se on vähän outoa että me ihmiset laskea, yleensä, yhdestä alkaen. Koska mikä on pienin määrä Voimme selvästi edustavat perustuvat jopa meidän vanhan alakoulussa matematiikka? No, se on 0, onko se on desimaali- tai binary. Ja niin näet maailmassa tietokone- ja ohjelmointi, Erityisesti, aloitamme laskenta kaiken 0. Joten Otin puhelinluettelosta vaihe 0. Aion avautua Keskellä puhelinluettelosta. Ja se todellakin ilmaus mitä tein. Ja sitten toinen vaihe oli tarkastella nimiä. Vaihe kolme on hieman eri käsitteellisesti. Kysyn itseltäni kysymys. Jos Smith on yksi nimistä, Aion tehdä päätös. Jos hän on joukossa nimet, Sitten aion soittaa Mike. Ja aion tehdä päätös perustuu siihen, että tieto. Kuitenkin, jos näin ei ole, jos Smith on aikaisemmin kirjassa vasemmalle, Aion avata keskelle vasemman puolen kirjan. Ja sitten tässä on nokkeluutta, Aion palata vaiheeseen kaksi. Aion tavallaan seistä omasta hartiat ja vain toista menneisyyden työtä tein. Mutta työ olen jättänyt on vähemmän ja vähemmän ja vähemmän. Mutta se on silti menossa töihin. Mutta jos Mike, sen sijaan, on myöhemmin kirjan oikealle, Aion avata keskelle oikean puoliskon kirja, palaa vaiheeseen kaksi. Mutta on todella neljäs skenaario. Mike joko täällä, tai täällä tai täällä, or-- OPISKELIJA: Ei siellä. DAVID MALAN: Ei siellä. Ja todellakin, jos emme ennakoida Tämä neljäs ja viimeinen skenaarioon meidän ohjelma saattaa olla buginen tai jotain vikaa. Else, lopeta siinä tapauksessa, että emme ole löytäneet Mike ollenkaan. Ja todellakin, jos olet joskus huomannut tietokoneen roikkuu, tai kaikki äkillinen sanan tai jonkin muun Ohjelma vain sulkeutuu odottamatta, ja joskus sinun virhe viesti on kirjaimellisesti että. Tämä ohjelma sulkeutuu odottamatta. Se voi olla mikä tahansa useista syistä. Mutta joskus se on jotain niin yksinkertaista kuin tämä. Ihmisen ohjelmoija joka kirjoitti, että ohjelmisto ei ymmärrä, että, oi, siellä esiin asia, joka voi todella tapahtua. Ja jos et kirjoita koodia kaapata että neljäs skenaario, se on todellakin odottamaton joskus mitä tietokone voi itse tehdä. Nyt soittaa ulos Muutama näistä asioista. Joten keltainen täällä, I on korostettu termejä että tästä lähtien olemme vain menossa soittaa toimintoja. Toiminnot maailmassa ohjelmointi ovat aivan kuten toimia, lausuntoja toimista. Joten poimia, avoin, katso at, soita, avoin, avoinna, lopeta. Se on toiminto, menettely, kanteen, minkä tahansa määrän synonyymejä toimisi samoin. Nyt mitä ovat nämä asiat nyt keltainen? Jos muuta, jos muu, jos muuten, nämä ovat mitä aiomme soittaa olosuhteet ohjelmointi, tai oksat, päätös kohdat, jos haluatte. Mutta mistä tiedät mikä haarukka tien ryhtyä, niin sanotusti? Meidän täytyy korostaa termit oikealle siellä, jotka ovat nämä kyllä ​​ei kysymyksiä. Nämä tosi false kysymyksiin. Smith joukossa nimet? Smith aikaisemmin kirjan? Smith myöhemmin kirjan? Näihin kysymyksiin joka on kyllä ​​tai ei, tai vastaavasti tosi, tai epätosi, tai yhtäpitävästi, yksi tai nolla vastaus. Ja sillä välin siellä vain yksi viimeinen pala. Tämä tässä on millainen vaikutus? Vai et ohjelmoi ennen, miten sinä kuvailla mikä vaihe Seitsemän ja 10 tekevät? Mitä sanoit? OPISKELIJAN: Rekursiivinen askel. DAVID MALAN: Rekursiivinen askel. Kyllä, lähinnä. Se on teknisesti iteratiivista täällä jos olet tuttua. Mutta palaamme siihen. Mutta se tekee jotain selvästi. Jälleen se indusoi sykli, silmukka, oikea. Sinä kirjaimellisesti menossa takaisin joitakin aiemmin vaiheeseen. Ja niin tosiaan, tämä on menossa toteuttaa jonkinlainen sykli. Mutta et tule saamaan jumissa tässä loputtomasti, oikea. Koska jos olet jatkuvasti tarkkailun on Mike täällä, tai vasemmalle, tai ei ole paikalla, lopulta hän ei aio olla siellä. Ja voit vain lopettaa kokonaan kuten per että viimeinen rivi. Niin, että se sanastoa. Ja tämä oli mitä olisimme yleensä soittaa pseudokoodilla koodia. Se ei ole todellinen kieli. Se on vain hyvin niukkasanainen Englanti, mutta se viestii piste. Ei ole virallista rakennetta täällä. Sinä vain käyttää sen muutaman sanoja, mutta koska selkeitä sanoja kuin voit kommunikoida ideasi. Nyt kuinka hyvä on, että algoritmi ja kuinka paljon parempi se on? No, meidän ei tarvitse päästä yksityiskohtien numeroita tai mitään niin. Mutta me voimme tarkastella muokkaavat tätä liuosta. Joten jos me vain vetää joitakin xy juoni tässä vaaka-akselilla tässä. Katsotaan vain soittaa koko ongelman. Ja tietojenkäsittelytieteessä olisi käyttävät tavallisesti n kuin muuttuja täällä. Joten n sivuja, tai n henkilöä huoneessa, tai mitä se on yrität laskea. Ja sitten pystysuoralla akselilla on vasemmalle, että olisi aika ratkaista. Joten kuinka monta sekuntia tekee sen ota minut löytää Mike Smith? Tai kuinka monta askelta se kestää? Kuinka monta sivua kierrosta kestää? Niin, että kuinka paljon se maksaa minulle aikaa ratkaista ongelma. Ja voisimme tehdä ensimmäinen algoritmit rinne, jos haluatte, koska juuri tämä suora viiva punaisena. Ja minä kutsun sitä n. Miksi n? Miksi vain tämä yksi Yhden suhde? No, jos Verizon tai mikä puhelin yhtiö tuo yksi sivu puhelinluettelosta ensi vuonna, joka voisi työntää Mike yksi askeleen lähemmäksi loppua, riippuen siitä, missä kyseinen sivu on. Ja niin vaikutus voi vain olla vielä yhden toisen. Tai yksi sivunkääntö. Yksi yhteen-suhde. Sitä vastoin toinen algoritmi. Kuinka paljon nopeammin oli intuitiivisesti? Missä menin kaksi sivua kerrallaan? Joo. OPISKELIJA: [tahtiimme] DAVID MALAN: Joo. Joten se tulee olemaan kaksi kertaa niin nopeasti. Ja me kiinnittää että täällä laajuudesta riippuen. Se kuitenkin on suora viiva, mutta pienempi kuin punainen viiva. Koska jostain numero sivuja, jos se kestää sinulle tämän monta askelta kanssa ensimmäinen algoritmi, se vie sinut puoli niin monta askelta toisen. Ja niin keltainen viiva kuvaava toinen algoritmi on vain olemaan alle sen. Mutta mikä on todella voimakas on ajatella kolmannen ja viimeisen, ja hämmästyttävän intuitiivinen algoritmi, joka on tämän muodon. Teknisesti kutsuisimme Tämä logaritminen käyrä. Log pohja 2 n tässä tapauksessa. Mutta se ei ole väliä. Ratkaisevaa on todellakin pohjimmiltaan eri muotoisia, että se on. Ja voit harkita, kuinka paljon lyhyempi tämä linja todella on pitkällä aikavälillä. Se kasvaa jatkuvasti. Se ei tasoittaa täydellisesti. Mutta se kasvaa yhä niin paljon hitaammin sillä ongelma saa suurempia ja suurempia. Ja voit ajatella sitä tämän way-- jos Verizon ei ole vain lisätään yksi sivu ensi vuonna, mutta tuplaa sivujen määrä puhelinluettelosta, ensimmäinen algoritmi voisi ottaa kaksi kertaa niin monta askelta. Jos se on 1000 sivua tätä Vuoden 2000 sivua ensi vuonna, Mike voisi olla paljon kauempana. Joten se 1000 lisätoimien löytää hänet. Toinen algoritmi saattaa olla vain 500 enemmän vaiheet löytää hänet, koska uudelleen, Lennän läpi kaksi kerrallaan. Mutta entä kolmas algoritmi? Jos Verizon kaksinkertaistaa koko puhelinluettelon ensi vuonna 1000 ja 2000 sivut, kuinka monta askelta on kolmas algoritmi vie? Joo, se on vain yksi. Ja se on voimakas idea. Voit ottaa 1000 sivu purra pois, että ongelman kerralla. Ja nyt jos ajatellaan typerä skenaario, mutta se eräänlainen puhuu voima tällainen intuition-- jos puhelinluettelo oli, kuten neljään miljardiin sivut, tuntuu todella suuri ongelma. Ja todellakin, se voisi ota minut neljän miljardin sivun kääntyy löytää Mike Smith kyseisessä kotelo ensimmäisen algoritmin. Mutta kuinka monta askelta olisi se toteuttaa kolmannen algoritmi löytää Mike neljälle miljardia kappaletta paperia? Joten neljän miljardin te repiä kahtia. Saat kaksi miljardia. Sitten miljardi sitten 500 miljoonaa, 250 miljoonaa, 125 million-- mutta se tuntuu tämä on vie jonkin aikaa. En ehkä 32 sormia laskea ylös että korkea. Mutta se on todellakin niin vähän kuin 32 sivun kyyneleitä. Voit siirtyä neljän miljardista yhden sivun jakava alkuperäistä määrää on sivut puoli 32 kertaa kunnes olet jäänyt vain, että yhdellä sivulla. Nyt tietenkin olen huijaaminen täällä. Se ei ole, että me vain on eräänlainen tyhmä täysin kaksi ensimmäistä algoritmeja. Olen huijaaminen jossain mielessä, tai oikeastaan ​​olen hyödyntämällä oletukseen. Mikä oli totta noin puhelinluettelosta alkuperäisessä muodossaan, joka mahdollisti minua edes käyttää, että kolmas algoritmi? Joo? Yleisö: Se oli aakkosjärjestykseen. DAVID MALAN: Se alphabetized, eikö? Jos se olisi vain satunnaisesti Jotta tämä on jätettä aikaa, tämä koko keskustelu. Minun täytyy katsoa jokaisen sivu, jos se on satunnaisessa järjestyksessä löytää Mike Smith ennen I voidaan päätellä hän sinne vai ei. Ja niin kulman me leikannut on, että olen olettaa, että joku muu Tällöin teki työtä minulle. Ja jotta lopulta kutsuja kysymykseen, hyvin, odota hetki. Miten lajitella 1000 sivua nimiä ja numeroita? Se on itse asiassa erilainen ongelma, jotain me palaamme tulevaisuudessa. Mutta kun ajattelee sivustot kuten Facebook ja Google Gmail ja asioita, kuten Googlen oma hakuindeksien, kun on miljoonia tai miljardeja kappaletta ollessa tallennettu näinä päivinä, searching-- ja puhumattakaan lajittelu ne problems-- on lopulta haaste itseensä. Ja todellakin, tämä on sitten vain yksi niistä haasteista että me tarkastelemme. Joten nyt Otetaan hetki ja katsomaan CS50 itse ja antaa sinulle tunteen mitä varastossa tällä lukukaudella. Todellakin, jos et ole jo, do katsomaan tätä URL. Ja Patrick viitattu että tänä vuonna olemme merkittävällä investointi kaikki enemmän kurssin tuki rakenteen kannalta avustajat ja CA, virka, kohdat saatavuus, ja digitaalista aineistoa verkossa, samoin. Itse kannalta kurssin luento, olemme täällä tänään. Ja odotukset tähän vuosi virallisesti kurssin ovat läsnä tänään, kurssin Viimeinen luento, ja kurssi suunnilleen keskellä ohjausjakson jokainen luento välillä saataville yleisesti perjantai iltapäivällä verkossa, sekä Yalen opiskelijoiden ja Harvardin opiskelijoille tänä vuonna. Todellakin, yksi perusteellisia muutoksia on että olemme hyväksyä at Harvard kaivattiin kovasti kuten teimme täällä viime vuosi ja nyt tänä vuonna, niin että samalla, vielä elokuva eniten Kurssin luennot Cambridge mutta ne aikaisemmin saatavilla kuin olemme aikaisemmin niin että ne sinä-- jos haluaisi esimerkiksi varaslähdön materiaaleista sen ensimmäisenä viikonloppuna melko kuin toisena viikonloppuna, sinun on pääsy näihin materiaaleista, haettavissa, upotettavia, hyperlinkable eri aloilta kaikki aikaisemmin. Mitä tulee aiheisiin, antaa sinulle tunteen kurssin trajectory-- ja osa tästä voisi olla slangia nyt, mutta ei kauan, varma. Aloitamme tänään, lopulta, tarkastelemalla yhden ohjelma kieli nimeltään Scratch. Me siirtyminen sen jälkeen ensi viikolla niin sanotun C ja sitten katsomalla muut rakennukset lohkot ongelmien ratkaisemiseksi, asioita kutsutaan taulukot ja algoritmeja, miten käytämme muistia eduksemme ja haitta, ja asioita, kuten tietorakenteita, ja sitten kohti takapäässä luokka katsomalla koneoppimisen ja katsomalla toisen kieli kutsutaan Python, miten web toimii, miten internetin enemmän yleensä toimii, protokollia, kuten HTTP, kielet tietokannat, kuten SQL, JavaScript web, ja lopulta sitominen kaikkia näitä pyyntöjä. Ja niin todellakin kello Lopussa päivän, olet ei opi tässä luokassa Scratch tai C tai Python tai SQL tai JavaScript. Sinä sen sijaan yleisemmin oppia tietotekniikassa ja perustukset sen, ja tulet oppia ohjelman in tahansa näistä kielet matkan varrella. Joten todellakin, yksi tavoitteista kurssin lopussa on ottaa pois kaikki kurssin apupyörät näiden viimeisten viikkojen niin että tämän jälkeen, voit palata omaan fields-- onko näin vai ei ei tietojenkäsittelytiede tai tekniikan, luonnon tieteiden, taiteiden, humanististen tai beyond-- ja tuoda joitakin tämän Tietenkin ajatukset ja tämän kentän ideoita ja käytännön taitoja oma domain jotta ongelmien ratkaisemiseksi siinä. Mitä me voidaan tehdä tässä välin Useimmissa torstaisin jälkeen tänään on kurssin päät johtava mitä me kutsumme walkthroughs kurssin ongelma sarjaa. Joten joka viikko, kun me ovat ongelma asetettu käymme olla kävelevän paikkaan näin kurssin haasteita, tarjoaa sinulle vinkkejä ja temppuja ja suunnittelu tekniikoita. Mutta jos et pysty tehdä nämä henkilökohtaisesti, ymmärtävät nämä samat resursseja upotettu yksi kurssin opetusavustajat että ongelma asettaa itsensä, samoin. Ongelmana asettaa tänä vuonna, toisin kuin viime vuonna, palautteen perusteella, edelleen julkaistaan ​​perjantaisin. Mutta sen sijaan johtui myöhemmin perjantaina mikä antaa sinulle vain seitsemän päivää, tehokkaasti olemaan johtuu 10 päivää myöhemmin. Ja todellakin, tämä tarkoittaa, että he päällekkäin viikonlopun. Mutta toivomme tänä vuonna erityisesti tämä tulee opiskelijat voivat paremmin mukautumaan ebb niiden aikataulut, onko se tutkijoita tai extracurriculars voimailua tai puolivälin kausi. Voit joko etu-kuorma tai back-kuorma viikko keskittyen CS50 perustuvat oman viikon varsinaisen kurssin kuormitusta. Ongelma asettaa itsensä kattaa useita kieliä, vaikka me keskitymme pääasiassa varhain on C ennen keskitymme sen jälkeen korkeammat taso, lisää web-keskeinen kieliä. Ja sitten pari FAQ here-- sinun pitäisi ottaa luokan kuten CS50 koska ensimmäisen vuoden? Joten ehdottomasti. Ja todellakin, se ei ole väistämättä jotain sinun pitäisi lykätä kunnes olet leikata hampaat muuntyyppisiin luokkiin. Vaan pikemminkin harkita että monille opiskelijoille, minä mukaan lukien takaisin seuraavana päivänä, tämä on erittäin tuntematon kenttä, varsinkin jos ei koskaan ota AP CSA tai jotain lukiossa. Mutta ymmärtää, että varhain, onko se tämän kurssin tai jokin muu peruskurssia, Nyt on todellakin parasta aikaa, Luulen, löytää uutta polkua tai joitakin uusia akateemista kiinnostusta, samoin. Ja sitten kun muiden courses-- niin yksi tärkeimmistä eroista täällä vs. Harvard on, että me vain kestää neljä kurssia per lukukausi Harvard jostain syystä. Ja te todella vetää pois noin 36 kursseja yhteensä aikana oman neljän vuoden joka tarkoittaa yleensä neljä tai viisi luokat. Ja en usko, että se on melko reilua sanoa ja kiistävät CS50, suunnittelun, on luultavasti ole tyyppinen luokka että sinun pitäisi yleensä ottaa neljän muun kursseja yhteensä viisi koska psets ovat by suunnitella melko intensiivinen. Todellakin, minäkin oppinut Tämän takaisin seuraavana päivänä. En kuvaisi CS50 ja Computer Science, ohjelmointi koska niin paljon kovaa kuin se on vain aikaa vievää. Se ei ole sellainen asia jossa päivällisen jälkeen, olet voi mennä takaisin asuntolan huone, istua alas, ja aloita keskittyen pset ajattelu, kaikki hyvin, Aion Bang tätä tänään ja sitten liikkua on minun seuraava aihe seuraavana päivänä. Joskus vain osui seinään. Sinulla on vikoja koodissa. Et välttämättä tiedä miten ratkaista joitakin ongelmia. Ja yksi tärkeimmistä piirteistä ohjelmointi itse tähän päivään on juuri sellainen otettava askel taaksepäin joskus nukkua se tai ajatella sitä aikana of lenkille tai muuta toimintaa, ja sitten palata sen tuoreena. Ja sinun tarvitsee vain nämä ikkunat aikaa. Ja todellakin, siksi olemme pidentyneet aikaa käytettävissä ongelma sarjaa tänä vuonna ja myös per että URL Laitoin aikaisemmin siitä mitä uutta tämän lukukauden, lohkottu ongelma asettaa niin, että he pohjimmiltaan ole vähemmän tiukkoja, ja takeaways ovat yhtä, mutta siellä on paljon vähemmän edessä väliä, paljon vähemmän legwork että sinun do edessä jokaisen ongelman asettaa, kuten näet, ennen kuin voit todella sukeltavat liha sitä. Niin ymmärtää, että nämä ja muut muutokset ovat näköpiirissä kattaa paremmin opiskelijoita, mutta lopulta varmistaa että noutoruokapaikkoja todellakin niin korkealle kuin mahdollista. Joten vaikka enemmän työtä kuin se voisi olla tyypillisessä luokan, me toivomme, että tuotto te ja takeaways sinulle ja taitoja ja ideoita jolla poistut ovat sitäkin pakottavia seurauksena. Ja saada sinut there-- ja tämän on yksi tärkeimmistä takeaways, kuten Patrick viittasi earlier-- on kurssin tukirakenne. Joten ei ainoastaan ​​CS50 on yksi suurin kurssin esikunnat kampuksella. Se on myös yksi useimmat perustutkintoa. Todellakin, CS50 viime vuonna oli ensimmäinen luokka on perustutkintoa opetushenkilökuntaa. Ja osoitus että menestys tehdä nyt monia muita kursseja Yale CS on se, samoin. Ja opiskelijoille, erityisesti, nämä tulevat avustajat ja tietenkin assistentit olla tukevat koko tukiverkkoa resursseja, joukossa osat tai recitations, viikoittain mahdollisuuksia saada intiimimpi keskusteluja ja arvostelut materiaalin kohdennettujen eri kappaleita, opiskelijoille vähemmän mukava, mukavampaa, tai jotakin siltä väliltä. Nämä seuraa saatavuutta Luentojen useita päiviä viikossa maanantaisin ja tiistaisin. Ja sitten toimisto hours-- one-on-one mahdollisuuksia apua kurssin varmenteiden ja avustajat on keskiviikkoisin ja torstaisin ja sunnuntaisin useilla aikoina, jotka kaikki julkaistaan ​​kurssin verkkosivuilla, jopa enemmän kuin viime vuonna, samoin. Mutta mikä avain CS50, jos ei tosin hieman epätavallinen, on kurssin kulttuuri olemme yrittäneet viljellä, niin Cambridge monta vuotta ja nyt viimeksi New Haven. Ja itse asiassa, tulossa tämä Lauantaina jos et ole kuullut, on CS50 palapeli Day, joka on mitään tekemistä tietojenkäsittelytieteen mutta on täysin suunniteltu lähettämään viestin, että tietojenkäsittelyn on noin ongelmanratkaisu. Ja todellakin, jos haluat kumppani joissa on yksi tai kaksi tai kolme ystävät ja muodostavat joukkueen CS50 Puzzle Day, katsomaan at mainokset, jotka ovat matkalla ulos. Ja kolmen tunnin pizzaa ja pulmia ja palkinnot odottavat. Ja todellakin, että ensimmäistä kertaa tänä vuonna, se ei pidetä yhdessä Harvard. Se on täällä itsenäisesti Yalen. Joten pitää silmällä ne, jos et ole. Useimmat joka perjantai lukukauden me yrittää tehdä iso luokka tuntuu pieni ja tuoda noin 50 opiskelijoille lounaalle kurssin henkilökunta, alumni, ystävien teollisuudesta puhua mitä elämä on kuin jälkeen luokan kuten CS50 ja yli kesät ja valmistumisen jälkeen. Joten pitää silmällä kutsuja että. Ensimmäistä kertaa koskaan jää tänä vuonna me Pidä ensimmäinen CS50 koodaus kilpailu, valinnainen opt-in mahdollisuus Syyslukukauden, kun kaikki meistä on ollut noin kuusi tai seitsemän viikon ohjelmointi C vyötään kilpailla, Jos olisi niin choose-- uudelleen on teams-- yrittää ratkaisemaan niin monia haasteita kuin pystyt ohjelmoinnista ystävät omasi muita vastaan. Ja kantaa kohti lukukauden mekin charter joitakin linja, todella viettää aikaa Cambridge, jos olisit haluavat liittyä meihin, että niin kutsuttu CS50 hackathon. Klo yhdeksäntoista aloitamme. Noin kaksikymmentäyksi, meillä on pizza. Noin 01:00, meillä on burritos. Ja joku vielä hereillä annetun bussimatkan kotiin noin 05:00, me pysähtyä lettuja IHOP matkalla home-- 12 tunnin tilaisuus upottaa itse luokkatovereiden ja henkilökunnan in kurssin opinnäytetyö, joka on mahdollisuus mennä kauas Tietenkin ongelma sarjaa ja suunnitella ja toteuttaa kaikkein mitään kiinnostaa sinua, jotka lopulta esillä täällä Commons. Aikojen ensimmäinen CS50 oikeudenmukainen viimeksi Vuoden, end-of-lukukauden näyttely tai juhla mitä kaikki luokassa oli suoritettu, etenkin, jälleen, joka meni mitään jotain, nollasta 60, joilla ei ole aikaisempaa taustaa ja näytteille, lopulta, jotain koko kampuksen ja, jos verkossa, maailman nähtäväksi, samoin. Nyt nämä tässä ovat vain muutamia TA ja varmenteiden joka tekee CS50 mahdollista. Saanen kutsua Näiden henkilöstön jäsenten jotka ovat täällä keksiä lavalle, sekä kurssin päätä, tarjota joitakin sanoja inspiraation, samoin. ANDI: Hei, kaverit. Voisitteko kuulla minua? Kiitos liittyä meitä tässä kaunis, sateinen torstaina iltapäivällä. Nimeni on Andi. Olen nuorempi Berkeley. Ja yhdessä Stelios ja kesä, meillä tulee olemaan kolme päätä opetus avustajat tämän tulevan vuoden. Niin kai, show hands-- kuinka moni teistä ei ole aikomusta ollessa CS suuret eikä oikeastaan ​​sukellus syvälle osaksi tietojenkäsittelytieteen merkittävänä täällä? Mahtava. Se on loistava. Joten olen todella globaalipolitiikka ja kognitiotieteen suuria. Olen kirjaimellisesti tuli Yale tarkoituksenaan koskaan tarvitse katsoa numero ikinä elämässäni. Kun tulin Yale, tämä oli jotain, joka ei ollut koskaan minun tutkalla. Halusin oppia runoutta. Halusin oppia kansainväliset asiat. Halusin oppia vesiväri piirustuksia. Kyllä, tarjoamme luokka on akvarelli piirustuksia. Mutta en koskaan todella oli kiinnostunut mihinkään STEM liittyvä. Mutta sitten vanhemmat I sai, sitä enemmän tajusin että jokainen kenttä todella joissakin sense työllistää tietojenkäsittelytiede, tai jos ei tietojenkäsittelytiede, laskenta. Itse asiassa minun maailmanlaajuinen asioiden huippukivi projekti, käytämme tietoja analytiikan analysoida terrori-iskujen for Boko Haram Nigeriassa. Ja niin näette, riippumatta mitä suuret päädyt jatkaa tai mitä etuja täällä Yale ovat, ohjelmointi ja perustukset riippumatta taidot ovat erittäin hyödyllisiä. Ja CS50 todella on hyvin varusteltu Tällainen lainata paljon resurssejaan teille, riippumatta kuinka mukava olet tai miten kiinnostunut olet pyrkiessään luokassa. Kesän aio puhua hieman vähän siitä, mitä te olette menossa oppia tänä vuonna. KESÄ: Hei kaikki. Olen Summer Wu. Olen juniori Morse. Ja olen itse aloittanut kuten CS50 opiskelija itse. Joten kolme vuotta sitten, olin välivuoden. En ollut koskaan tehnyt CS luokan lukiossa, mutta ajattelin, että vapaa-ajallani, se olis siistiä oppia koodia. Joten tein nopean Google-haun, etsinyt mitä oli saatavilla verkossa, ja nähnyt tämän videon Maali ja DJ ja viileä verkkosivuilla. Olin kuin, haluan oppia tekemään se. Otin tietenkin, ja minä Ihastuin siihen. Mutta muistan on niin kateellinen lapset, jotka voisivat osallistua hackathon, osallistua Puzzle Day, käydä office tuntia, saada apua TA henkilökohtaisesti. Ja niin en koskaan kuvitellut että saisin mahdollisuuden olla täällä mukana tietenkin, että ensimmäinen sai minua kiinnostaa tietokoneessa tiede ja syystä Olen tietojenkäsittelyopin suuri tänään. Niin minä varoitan, tämä luokka aikoo venyttää teille. Se tulee haastaa sinut. Mutta se myös menossa opettaa kuinka tehdä asioita että et koskaan kuvitellut voit. Stelios: Hei kaikki. Nimeni on Stelios. Olen nuorempi Branford College ja CS merkittävä. Olen myös Ateenassa. Olen innolla täyttämään kaikki te, jutella kanssasi osiosta osoitteesta virka, perjantaina lounaita. Olen todella innoissani, koska Olemme laittaa niin paljon vaivaa luomiseen ainutlaatuisen tuki rakenne kaikille teille tehdä kokemusta kurssin paras mahdollinen. Ja toivon, että vaikka suurin osa olet todennäköisesti ole ottanut CS Tietenkin ennen, toivon, että se CS50 sinulle on mitä kipinöitä edun jatkamaan edelleen tietokoneeseen tiede tulevaisuudessa, kuten se on tehnyt niin monet aiemmin. Joten kiitos siitä, täällä, innoissaan nähdä. Jason Hirschhorn. JASON HIRSCHHORN: Hei kaikki. Nimeni on Jason Hirschhorn. Asun Silliman. Ja menin Harvard kuin undergrad ja keskittyi social studies ja minored tietotekniikassa. Ja eräs pääasiallinen roolien täällä on tukea tätä hienoa henkilöstö koska ne tukevat teitä kaikkia. Itse asiassa, tämä ei ole niitä kaikkia. On 55 opiskelijaa ja valmistuneet tukenasi kaikille. Ja rohkenen sanoa yksi parhaista osat kurssi sinulle kaikki on tulossa toimimaan niitä, oppia tuntemaan heidät, saada nähdä niitä niin CS50 ja ulkopuolella CS50 tämän lukukauden ja monille lukukautta tulla. Joten toivottavasti otamme Tietenkin, koska toivottavasti päästä vuorovaikutuksessa ihana henkilökunta olemme lavalla. SPEAKER: No, anna minun lopettaa sanomalla se on hauskaa. DAVID MALAN: Well, kiitos koko tiimille. Saanen himmentää valoja ja sallia lisää tiimimme, Sekä Cambridge ja New Haven, tervehtimään koska nämä kaverit viilaa. Ja sen jälkeen me siirtymistä ensimmäinen ohjelmointitiimimme engagements Tämän kielen nimeltään Scratch. Joten kiitos joukkueen. Oletetaan himmentää valoja ja kuulla muutamia muita. [SUOSIONOSOITUKSET] [VIDEOTOISTOSTA] -The Tehtävänä CS50 on tehdä mieluummin aivan uudella tavalla ajattelu, tämä laskennallinen ajattelutapa. -Se Tehty tietojenkäsittelytiede mielenkiintoisia, joka on jotain En todellakaan ymmärrä oli mahdollista vasta otin luokan. -I Oli kuin, huh. Olen todella kääntää ajatukseni tietokoneelle juuri nyt. -Jopa Jos sinulla ei ole mitään tausta tietojenkäsittelyopin tai mitään kokemusta, tämä on todella luokka sinulle. -Niin Haluan ehdottomasti oppilaitani vain innostuvat tietotekniikassa. Ei vain ohjelmoinnin, mutta ajattelua kuin tietojenkäsittelytieteessä on todella mitä haluan yrittävät opettaa minun fuksi. -CS50 On kova ja palkitsevaa. -Kokemus. -Fantasia. -Se Tuo meidät seuraavalle tasolle. [MUSIIKKIA] -The TF: t ovat, uskoakseni elinehto kurssin. -Olen Saadessamme oppilaani Autan on, että aha hetki ymmärtää mitä he itse yrittää tehdä, selvittää, miten tehdä pset. -CS50 On ehdottomasti kova kurssi. Mutta toisin kuin kaikki muut Tietenkin todella Yalen, se on niin suuri, yhteisön tukevilla. -Sinä Ehdottomasti eivät tarvitse tietää mitään koodaus pystyä ottamaan kurssin. -Se Mahtavaa katsella kuinka pitkälle ihmiset tulevat yhden lukukauden. -Et Ei yksin istumassa huoneeseen oppiminen koodia, mutta se oli enemmän kuin pelkkä luokkaa. Se oli kokemus. -The Paras tapa oppia käsitteitä ja käsitellä niitä on opettamalla muita. Mikä on puhelin jaettu? [MUSIIKKIA] -ja Tämä on CS50. [MUSIIKKIA] -Tämä On CS50. -Got Ongelma? Repiä sen kahtia. [MUSIIKKIA] Heitä se pois. DAVID MALAN: Selvä. Joten tackle-- hieman bittinen, muuten se on ollut tämä perinne Jostain syystä 10 vuotta palvella kakun aloittaa ja loppuun CS50. Joten odottaa teitä lopussa tänään, lisäksi opetussuunnitelmien, on kakkua samoin, ja kurssin henkilökunta tervehtimään. Mutta nyt, nyt siirtyminen Ensimmäinen kielemme, jossa vietämme oikeastaan ​​vain viikko ja yksi Ongelmana asetettu tällä alalla, Scratch. Ja huomaat, jos olet ohjelmoitu ennen, monet ajatuksia ja mahdollisuudet ovat tuttu. Mutta huomaat, että se on hauskaa matkan varrella selvittää, miten kääntää joitakin ajatuksia jo tiedät tähän tiettyyn ympäristöön todella vaikutuksen perheen ja ystäviä työsi, joka voi mennä verkossa, jos niin haluavat, jälkeenpäin. Ja jos sinulla ei ole aikaisempi kokemus ja ovat joukossa suurin osa opiskelijoille vähemmän mukava, ymmärtää, että monia ajatuksia me vain pohditiin reality-- asioita kuten puhelinluetteloista ja läsnäoloa ja niin forth-- kääntää melko mukavasti tietokoneeseen, mutta ei jos käytät, aluksi, kieli näin. Joten tämä on kirjoitettu ohjelma kielellä nimeltään C. Ja me viettää melkoisesti aikaa C, lopulta. Mutta kertoimet ovat, tämä näyttää hieman arvoituksellinen teille ensi silmäyksellä. Itse asiassa siellä on paljon outoja syntaksi, sulkuja, kulmakiinnikkeitä, aaltosulkei-, lainauksia, ja puolipisteitä. Ja todellakin, jos sukeltaa ohjelmointi ensimmäistä kertaa katsomalla ja yrittää luoda tavaraa näin, rehellisesti, saat niin ajautunut niin usein vain tyhmä minutia, että ei ole mitään älyllisesti mielenkiintoinen siitä. Mutta kuvitella, jos voit luoda tämä sama program--, joka kuten ehkä sellainen päätellä, luultavasti tulostaa "Hello, world" tavalla tai toisella. Voimme tislata saman idean vain kaksi palapelin palaset, jos haluatte. Todellakin, Scratch on mielenkiintoinen koska se on tällä graafinen kieli. Voit vetää ja pudottaa näitä palapelin palaset vain interlock jos se tekee loogista tehdä niin. Ja niin Scratch, me pian nähdä, tämä on miten voit toteuttaa saman ohjelma, jossa vain kaksi palapelin palaset että melko paljon, mitä he sanovat. Mutta näemme vain hetken, että jotkut rakennuspalikoita, että me viittasi aikaisempiin ja muutama ovat kaikki, jotka lopulta ovat menossa muodostavat joitakin pian ohjelmia. Aiomme olla asioita kuten functions-- vain toimet, tehdä jotain, kuten tervehtimään, maailma. Aiomme olla silmukoita, asioita, jotka indusoivat syklit uudestaan ​​ja uudestaan, aivan kuten me teki hetki sitten etsimistä Mike Smith. Muuttujia, kuten algebran, jos on x tai y, joka voi tallentaa useita. No, ohjelmassa, voit itse tallentaa enemmän kuin vain numeroita. Voit tallentaa sanoja ja lauseita ja grafiikkaa ja muita asioita edelleen. Boolen operaattoreilla, vain questions-- kyllä ​​tai ei, tosi tai epätosi. Ehdot, päätöksenteossa perustuvat niihin kyllä ​​/ ei vastauksia. Ja sitten harrastaja asioita, kuten array ja kierteet ja tapahtumia ja useita muita ominaisuuksia, mutta jotka kaikki kartta hienosti hyvin ystävällinen lohkojen näin. Tämä tulee olemaan funktio, joka on violetti palapelin pala, joka sanoo vain mitä sen nimi is-- tässä tapauksessa sanoa. Ja sitten usein, siellä valkoinen laatikko, että olet voi kirjoittaa tai vetää jotain arvoa osaksi. Ja se mitä yleensä kutsutaan väite tai parametri. Se on tapa muuttaa oletustoimintatapaa palapeli pala tai toimii niin, että se jotain tapana pidät sanomalla, hei, maailma tai hei, Andy tai hei, Jason tai muun rangaistuksen sijaan. Jos haluat sanoa, että lot-- kirjaimellisesti forever-- voit ottaa toisen palapelin pala kutsutaan ikuisesti ja juuri alumiinifoliota kaksi yhdessä näin. Ja että silmukka, kuten kuva osoittaa, tarkoittaa vain tervehtimään, maailman ikuisesti, uudestaan ​​ja uudestaan ​​ja uudestaan. Tai, jos haluat vain tehdä sen äärellinen määrä kertoja, kuten 50 kertaa, siellä tulee olemaan toinen puzzle pala that-- toista 50 kertaa. Sillä välin, jos haluat että siinä on vaihteleva tällä kielellä olemme noin pelata, voit käyttää oranssi lohko näin. Ja tämä muuttuja I mielivaltaisesti nimeltään i kokonaisluku. Ja minä vain asettaa sen yhtä suuri kuin 0. Ja niin ehkä olen, tässä case-- tämä variable-- edustaa jonkun pisteet pelissä. Sinä alkavat nollasta, ja joka kerta kun tehdä maali tai jotain, saat yhden ylimääräisen pisteen. Voit esittää kysymyksiä Scratch. Jos me vetää ja pudottaa puzzle kappaletta hetken näin, voit kysyä kysymyksiä kuten, hyvin, on i alle 50? Ehkä sinun 50 pistettä voittaa. Ja niin tämä olisi kysymys haluat kysyä. Tai yleisemmin, et Voisi sanoa on x alle y, missä on kaksi muuttujaa mukana? Nyt tämä on paljon isompi ensi silmäyksellä, mutta ei todellakaan ole kaikki, että monimutkaisempia. Tämä on vain yhdistelmä ehtoja ja muuttujien ja Boolen ilmaisuja kysyä kolme questions-- on x alle y? Jos näin on, niin sanoa. Sano, x on pienempi kuin y. Else, jos x on suurempi kuin y, muuten x on yhtä kuin y. Ja että Mike Smith, oli neljä skenaariota, tässä maailmassa numeroita, x on joko alle, yli tai yhtä suuri kuin. Meidän tarvitsee kolme haarukat tie. Ja sitten on hienompaa palapelin palaset näin asioita, kuten paneelit, missä olemme menossa voi tallentaa tietoja. Aiomme nähdä lohkoja, jotka mahdollistavat voimme toteuttaa useita säikeitä, toinen ominaisuus käytämme, ja Sitten myös jotain kutsutaan tapahtumia. Mutta ennen kuin saamme, että kohta ja luoda jopa, lopulta, meidän omia palapelin palat, katsotaanpa todella avata itse ohjelmaan. Joten tämä on Scratch. Se on saatavilla osoitteessa scratch.mit.edu. Ja olet tervetullut pelaamaan nyt tai myöhemmin, samoin. Tämä sattuu olemaan offline version. Ihmisille, jotka eivät välttämättä ole suuri internet, voit ladata sama ohjelmisto, samoin. Ja siellä oikeastaan ​​vain kolme komponenttien tätä ohjelmistoa. Ylhäällä vasemmalla yläkulmassa näyttö on sellainen vaihe että Scratch, joka oletusarvoisesti näyttää kissa asuu sisällä. Hän voi liikkua ylös, alas, vasemmalle ja oikealle ja tehdä useita muita asioita, ja katsoa monin tavoin perustuvat pukuja, että annat hänelle. Mutta tämä on mitä me kutsumme sprite, eräänlainen merkki. Ja voit olla useita merkkejä, kuten tulemme pian nähdä. Keskellä ovat nyt kaikki nämä palapelin kappaletta ja näistä ryhmistä tai kuormalavojen viipymättä. Joten nyt, olen napsautti Motion. Ja niin minä näen kaikki motion liittyvät palapelin palat tai lohkoja, niin toiminnot, jotka ovat tekemistä nousevat, alas, vasemmalle tai oikealle tai jonkin muun toimenpiteen. Mutta jos napsautti odottaa, et voisi nähdä asioita, kuten vaikkapa lohko että näimme hetki sitten. Ja jos minä klikkaa ohjaus, näet asioita, kuten toista ja ikuisesti ja jos lohko, näimme hetki sitten. Ja niin huomaat että me vain naarmuttaa pinnan joidenkin palapelin palaset yhteen, mutta se kaikki melko intuitiivinen ja piste ja klikkaa. Todellakin, Scratch suunniteltiin nuoremmille opiskelijoille auttaa antaa heille ulostulo luovaa ajattelua. Ja silti ihanan, se on hieno ensivaiheen täsmälleen ideoita aiomme tutkia C ja Python ja JavaScript, yhtä hyvin. Oikealla puolella, vihdoin täällä tämä on, niin sanottu skriptejä alueella. Ja tämä on vain tyhjä liuskekivi joka alatte kirjoittaa ohjelma. Ja minä juuri näin. Nyt satun tietää, missä asiat ovat koska olen tehnyt tämän muutaman kerran. Mutta tiedän, että alle Tapahtumat luokka, on tämä lohko here-- Kun vihreä lippu napsautetaan. Ja huomaa, jos minä loitontaa ja takaisin tänne lavalla, Scratch elämää tässä pieni suorakulmainen maailmassa, huipulla joka on vihreä lippu ja punainen stop-merkki. Joten mene ja pysäyttää, vastaavasti. Ja niin mitä minä haluan tehdä kun se vihreä lippu napsautetaan? No, anna minun mennä, että Näyttää ryhmään. Ja anna minun mennä eteenpäin ja vedä ja pudota tämä. Ja huomaa heti, kun se saa lähellä, he tavallaan magneettisia. Jos siis nyt päästää irti, se napsahtaa yhdessä mukava ja siististi. Ja aion mennä eteenpäin ja sanoa jotain hei, maailma kaksi sekuntia. Saanen loitontaa ja klikkaa nyt Vihreä lippu, ja sanoa, hei, maailma. Selvä. Niin, että kaikki hyvä ja hieno. Ei kaikki, että jännittävä. Tehdään siitä hieman söpömpi. Ja tiedän, että etukäteen, Scratch tapahtuu on tullut joitakin söpö asioita, kuten tämä. Joten pelata äänen miau kypsäksi. Joten tehdään tämä. [MIAU] Aw, se on ihana. Ja jos minä klikkaa sitä again-- [MIAU] Ja uudelleen. [MIAU] Mutta minun pitää ottaa reanimate Scratch. Mutta voin tehdä paremmin kuin tämä. Miksi en vain vetää kolme. Ja nyt on kolme kertaa niin ihana. [Meowing] OK, oikeastaan, se on hieman kammottava. Tarvitsemme siis jotain siltä väliltä siellä. Jos menen ohjaus, se näyttää siellä on todella odotus lohko. Ja niin huomaa, jos en vie hiiri there-- ja haluan tehdä tämän hieman suurempi. Jos minä leijuvat, se menee napsahtaa paikalleen. Joten odota yksi sekunti, odota sekunti. Täältä tullaan vihreä lippu uudelleen. [Meowing] OK, hieman enemmän luonnollinen, mutta ei ole kovin tehokasta. Joten tämä on oikea, jos ohjelman Tavoitteena oli miau kolme kertaa. Mutta se ei ole kovin hyvin suunniteltu. Olen sellainen leikata joitakin kulmat. Sain vähän laiska. Mikä tuntuu like-- mitä en näytä tehneen huonosti, sanoisit? Joo? Joo, keskellä. Yleisö: Käytetty enemmän muistia kuin tarvitset koska käytät niin monia eri linja. DAVID MALAN: Joo, niin enemmän rivejä. Ja se ei olisi välttämättä muistia, vaikka se voitaisiin nähdä, että tapa. Mutta se on definitely-- siellä irtisanominen. Ja minä kirjaimellisesti sellainen vetää ja putosi samoja asioita. Ja jos sellainen extrapolate-- jos se ei ole selvää here-- hyvin, miten olisi Olen miau 30 kertaa? Haluan vetää ja pudottaa, kuten, 30 enemmän paria palapelin palaset. Ja varmasti, on olemassa parempi tapa. Ja olemme nähneet paremmin. Mitä intuitiivisesti olisi on parempi tapa? Niin, vain käyttää silmukka. Ei kopioi ja liitä. Ja todellakin, milloin tämä lukukausi jos alkaa löytää itsesi vetämällä ja pudottamalla, tai oikeastaan ​​kopioimalla, vaarallinen tapa päästä, koska Tämä ei vain ole kovin ylläpidettävissä. Esimerkiksi, jos haluan muuttaa äänen jotain muuta, Minun vaihtaa nyt kolmessa sijainnit yhden sijasta. Sillä todellakin, jos olen murtaa away-- olen juuri menossa irrottamaan sitä niin. Saanen napata toista lohko, ja valitse kolme, kirjoita kolme, heittää joitakin näistä pois vain päästämällä irti. Ja sitten huomaa ei näyttämään se sopii, mutta magneettisesti, se menee paitsi snap paikallaan mutta kasvaa sopivaksi muotoon. Niin se on hyvä. Ja nyt jos minä sitten pelata. [Meowing] Erittäin kiva. Selvä. Ja nyt se on erittäin helppo muututtava, koska en voi vain muuttaa yksi numero yhdessä paikassa. Mutta tämäkin ei ole kaiken mielenkiintoinen. Katsotaan oikeastaan Scratch ei meow, vaan liikkuvat. Anna minun mennä Motion ja siirtää 10 askelmaa sisällä soita näin oho, haluan korjata. Anna minulle se siirtää 10 steps-- itse asiassa, älkäämme tehdä toista. Saanen napata ohjauslohkon, ja toimi seuraavasti ikuisesti. Ikuisesti, siirtää 10 askelmaa. Ja valitse Toista. OK. Joten onneksi hän pysähtyy. Muutoin lapset saisi hyvin järkyttynyt kun he tavallaan menettävät kissa. Mutta ainakin voin vetää hänet takaisin näyttöön. Mutta tämä ei ole kovin suuri peliä tai animaatiota. Olisi mukavaa, jos ehkä hän suistui reunan. Joten mitä me teemme? Mitä konstruktio meidän täytyy olla Scratch päättää toipua, luuletko, vaikka et ole koskaan nähnyt Scratch ennen? Joo, takana. Yleisö: Tarvitset jos lohko tai jos-sitten. DAVID MALAN: Joo, niin jotkut Tällainen jos lohkon tai jos-sitten. Joten itse asiassa, meillä on yksi näistä täällä. Joten if-- joten anna minun päästä eroon liikkeen. Saanen zoomata niin se on isompi. Miten tästä. Ikuisesti, jos Sensing-- olemme ole nähnyt tätä ennen. Tarvitsen Boolen lauseke. Ja se osoittautuu jos koskettaa mitä? Jos koskettaa reuna, Mitä haluan tehdä? No, jos menen takaisin Motion, osoittautuu, oi, en voi kääntyä ympäri. Saanen vetää tämän tänne. Miksi en mene eteenpäin ja kääntyä ympäri 180 astetta? Nyt haluan vain siirtää lopussa. Voisin laittaa liikkeen alussa tai lopussa. Mutta loogisesti, joka kerta kun liikkua, I haluat tarkistaa, minä koskettaa reunalla? Olenko koskettaa reunalla? Olenko koskettaa reunalla? Niin että loogisesti minä kääntyä ympäri, jos niin. Joten osuma pelata. OK. Joten se on hieman buginen, niin sanotusti. Ja vika on vain virhe tietokoneohjelmaan. Mutta ainakin se toimii. Ja itse en voi mennä tänne. Ja haluan tehdä ei 10 askelta klo aikaa, mutta tämä on kaikki animaatio on. Tämä kaikki on piirretty tai jopa elokuva on. Siirryn 20 askelta kerrallaan. Joten 20 kertaa niin paljon asioita tapahtuu kerran tai kaksi kertaa niin paljon, tässä tapauksessa. Hän liikkuu nopeammin. Saanen muuttuu 30. 100. 1000. Ja se tulee todella nopeasti. Ja tämä is-- joo, OK. Nyt me vain Messing kanssa. OK, niin buginen. Mutta voimme vetää hänet pois tieltä täällä. Mutta voimme tehdä enemmän hauskaa tämäkin. Entä this-- hän ylösalaisin. Mutta näyttää siltä Scratch-- ja siellä on todella, Minun täytyy kieltää, ei akateemista arvo, mitä aion tehdä. Mutta jos minä avata mikrofonin, katsotaanpa pysäyttää hänet ja tehdä jotain. Auts! [NAURAA] Se oli ihana. Kiitos. Nyt tämä on mitä minun ääneni näyttää, kun minä huutaa Auts. En usko, saimme naurusi. Se on okei. Saanen tallentaa tämän "Auts." Säästetään tätä "Auts". Ja nyt me palata skriptejä. Ja nyt need-- katsotaanpas, Sound. Voi toistaa ääntä auts. Joten jos olen koskettaa reunaan, haluan ensimmäinen pelata auts, ja sitten kääntyä ympäri. Nyt oletetaan hänet keskelle. [Sanomalla "OUCH"] Kaksi kertaa niin nopeasti. OK. Mutta se on kirjaimellisesti tekee mitä sanon. Joten se on itse asiassa oikeassa, se on vain vähän ärsyttävää nopeasti. Joten lisätä jotain mielenkiintoisempaa tähän. Saanen todella avata joka tein etukäteen, osuvasti sanottu lemmikkieläinten Kissa, joka ei tätä. Tässä käsikirjoitus täällä. Mitä tämä tulee do in Englanti suhteen? Mitä tämä tarkoitus tehdä? Joo, mennään some-- joo? Yleisö: Kun lemmikkieläinten kissa, se meows. DAVID MALAN: Joo, joten kun lemmikkieläinten kissa, se tulee miau. Eli toisin sanoen, siellä on nyt ikuisesti silmukka vielä yhdistettynä tila, yhdistettynä jossa Boolen lausekkeen, yhdistettynä pari Toimintojen vaikutus joista kerran pelaan tämä ohjelma, ei ole mitään tapahtuu kunnes siirtää kohdistinta lähemmäs ja lähemmäs ja lähemmäs and-- [MIAU] Sitten se on kuin hyväily kissa. [MIAU] Vasta kun itse siirrä kursori häntä. Nyt olen myös lyöty jopa eivät lemmikkieläinten kissa, joka tekee tämän sijaan. [Meowing] Niinpä hän vain jatkuvasti meowing. [Meowing] Mutta jos saan liian close-- [Meowing] [KARJAISU] Joten miten tämä toimii? Nyt vain on kaksisuuntainen tienhaaraan. Jos koskematta hiiren osoitin, sitten pelata leijona äänen. Else vain toistaa meow ääni, ja sitten odottaa kolme sekuntia niin että se on tavallaan tekee se hyvin rauhallisesti. Selvä. Niin, että yhdistämällä joitakin ideoita edelleen. Katsotaanpa katsomaan tätä esimerkkiä Olen lyöty jopa nimeltään kierteet. Ja tämä on pohjimmiltaan erilainen, että se vipusuhteita piirre monissa ohjelmointikieli nimeltään langat, kyky ohjelman kirjaimellisesti tehdä kaksi asiaa samanaikaisesti. Itse asiassa nämä päivää, jos käytät Google Docs tai Microsoft Word, ja dokumentin jatkuvasti tarkistettavaksi niinkuin te type-- tai olet osuma Komento-P tai Control-P ja tulostaa jotain, se tulostetaan, kun jatkaa kirjoittamista. Ohjelmat tänään voi todellakin tehdä useita asiaa kerralla, aivan kuten Scratch tässä. Joten tässä, minulla on kaksi sprites Nyt, lintu ja kissa. Ja jos minä klikkaa kutakin ne merkit yksi kerrallaan, Näen nyt linnun skriptejä ylhäällä oikealla. Nyt näen kissan. Bird, kissan. Joten jokainen niistä on oma kirjoitus. Mutta ilmoitusta, mikä palapelin pala ne molemmat alkavat? Kun vihreä lippu napsautetaan. Ja lintu, kun vihreä lippu napsautetaan. Joten kun klikkaa vihreää lippua, molemmat näistä skriptejä tai ohjelmia tulevat rinnakkain. Ja huomaat, että lintu on aivan järjettömästi terhakka reunan. Kissa selvästi on ohjelmoitu kanssa strategisen edun. Ja-- [KARJAISU] Selvä. Joten kissa kiinni lintu tässä tapauksessa. Miksi niin? No, ilmoitus ensin meidän on vain lintu juuri mindlessly menossa tähän ensimmäiseen sijainti, ja sitten ikuisesti, jos ei kosketa kissa, vain siirtää. Ja jos olet reunalla, pomppia. Ja vain siirtää. Ja jos olet reunalla, pomppia. Mutta kissa puolestaan on joitakin muita logiikka joka sanoo this-- ensimmäinen, juuri niin että tämä ei ole täysin puolueellinen vastaan ​​lintu, huomaa, että olen käytetyt vihreä palapelin pala siellä että todella poimii satunnaisen numeron. Piirre monille kielille on antaa te satunnaisia ​​tai näennäissatunnaisia ​​numeroita. Joten tässä tapauksessa kissa aluksi valitsee satunnaisen numeron välillä, kuten, 90 astetta ja 180 astetta, lähinnä, niin että siellä on hieman varianssia. Ja sitten ikuisesti, jos koskettava lintu, pelata leijona äänen. Muussa tapauksessa osoitettava kohti lintu. Suuntaa kohti lintu. Kohta kohti lintu, joka on palapelin pala itseensä tässä tapauksessa. No, voimme tehdä yksi asia täällä. Saanen avata tapahtumien ohjelmasta täältä. Ja tässä meillä on jälleen kaksi sprite, jotka näyttävät nämä kaksi nuket täällä. Ja mikä mielenkiintoista täällä on tämä. Oranssi kaveri on tätä asettaa palapelin palaset täällä. Ikuisesti tehdä following-- jos välilyöntiä painetaan, sitten sanoa, Marco, ja sitten lähettää tapahtuman. Ja sillä välin, sininen kaveri täällä on this-- kun saat tapahtuman, sanoa Polo. Joten se kääntyy pois Scratch ja muilla kielillä, on olemassa keinoja kahdesta ohjelmasta tai kaksi skriptit, tässä tapauksessa, sen yhteydessä toisiinsa siten, että kun välilyöntiä, hän sanoo Marco. Ja toinen kuulee, että niin puhua, ja sanoo Polo vastauksena. Voit siis kirjoittaa ohjelmia, todellinen suhde tällä tavalla. Ja jos en tee tätä yhden sijaan, Voin jopa lisätä muuttujia, vain yhdellä sprite tässä tapauksessa. Tämä on erityisen ärsyttävää. [SEAL BARKING] Nyt ilmoitus oikealla meillä joitakin muita logiikka tänne. Miten voin lopettaa tämän sinetin haukkuu? [SEAL BARKING] Se näyttää oikealla kädellä puoli on mitä pelaaminen äänen. Mutta se vain pelaa ääni jos mikä on totta? Jos variable-- oranssi block-- vaimennettu on nolla. Miten muutan vaimennettu olla 1, tarkoittaa totta, että tämä vaimennettu? Ilmeisesti toinen käsikirjoitus, voin välilyöntiä, ja nyt hän pysähtyy. Voimme siis olla tämän kerrostenvälinen poikki skriptejä, samoin, jonka vain jakamalla muuttuja poikki kaksi näin. Nyt tämä ei ole kovin kiinnostava. Mennään eteenpäin ja tehdä sitä ja yhdistää paljon näitä ajatuksia tämän ohjelman tässä. Ennen teemme sen, vaikka, miten noin yksi vapaaehtoinen? Otan paineita of löin eivät varsinaisesti pelata tätä peliä. Seuraavaksi on joku me ole ennen nähneet. Sinun täytyy olla mukava tulossa lavalle täällä, kamera. OK, tule ylös. Erittäin rohkea. Mikä sinun nimesi on? IDRIS: Idris. DAVID MALAN: Anteeksi? IDRIS: Idris. DAVID MALAN: Idris, mukava tavata. Tule ylös. Ja nyt, oman mobile puhelin, pelaat Pokemon GO? IDRIS: Ei. DAVID MALAN: Todellako? IDRIS: Joo. DAVID MALAN: OK. Selvä. No, hauska tavata. Tule tänne. En myöskään. Joten me selvittää yhdessä, miten pelata tätä, jossa joku todella meni ja toteutetaan Scratch muuttamalla kissa olennaisesti eri merkkiä kaikki yhdessä. Ja jos minä fullscreen täällä, aiomme nähdä seuraavaa peliä yhdessä. Lataus kesken, ladataan yhä. Tule. Anna minun tehdä tätä. Tule. Tämä peli on niin iso, että se kaatui. Valmiustila. Kokeile kerran. Tule. Selvä. Siellä mennään. OK. Vihreä lippu. Joten tässä sitä mennään. [MUSIIKKIA] Valitse keskitasolle täällä. Klikkaa sinistä kaveri siellä. Selvä. Ja voit käyttää nuoli keys-- ylös, alas, vasemmalle, oikealle. Nyt, harkitse kuin me this-- ja sitten mennä sen jälkeen merkki siellä. Jep. Nyt klikkaa häntä hiirellä. Todellakin. Liikkua. Missä nuoli? Ole hyvä. Joten klikkaa siellä. Joo. Selvä. Joten nyt olen kertonut olet säkissä pallo, että jos klikkaa sitä, se tekee sen. Oikein hyvä. Vuonna harjoitellaan tänään, I löytyi tämä versio pelin oikeastaan ​​ole kovin vaikeaa. Joten jos haluat mennä uudestaan ​​täällä, kävellä tämän Poke pallo. Ja sitten käänny oikealle. Kokeile klikkaamalla sitä. Voi, itse asiassa, se on tallentaa, ilmeisesti. OK niin lähellä, että. Koskaan tehnyt sitä aiemmin. Ehkä mennä jopa tämä asia täällä. Voi, siellä mennään. Odota, on olemassa yksi tuolla. Voi, on toinen. OK. Alas. Joo, valitse. OK, se on erittäin söpö. OK, hyvin tehty. Tämä peli ei ole kovin vaikeaa. OK. Onneksi olkoon. Tässä meillä on CS50 stressipallo sinulle. Ajatelkaa vain hetken, mitä jotkut takeaways ovat siellä. Helpompi kuin todellinen peli, ilmeisesti. Mutta kaikki olemme menossa täällä on merkki että on todennäköisesti jonkinlainen loop liittyy siihen. Se ei ole kissa. Se on tämä merkki sijaan. Ja että silmukka on vain jatkuvasti sanomalla, jos nuoli ylös painettuna, jos nuoli alas painettuna, jos vasen nuoli painettu tai oikealle nuoli painettuna, siirrä ylös tai alaspäin tai vasemmalle tai oikealle. Tai jos on toinen palapelin pala siellä joka sanoo, kun koskettaa toista sprite, koskettaessa yksi merkkiä että Poke pallo, jos koskettava, tee tätä. Joten kaikki ideat olemme käyttänyt toistaiseksi todella jonka se voi soveltaa tässä nimenomaisessa yhteydessä pelata tätä peliä, samoin. Anna minun mennä eteenpäin ja vedä yhden muun täällä, itse asiassa. Anna minun mennä eteenpäin ja vedä up, sanokaamme, tämä. Tätä me miksattu. Made by yksi opiskelijoiden Cambridge, ja sitten menin läpi ja muuttunut melko paljon joka esiintymä Harvard Yalen tällä kertaa. Onko joku haluaisi kilpailla Ivies tässä toisessa kertymistä Kaikkien näiden ideoita? Tule alas, kyllä. Mikä sinun nimesi on? DINA: Dina. DAVID MALAN: Adina? DINA: Dina. DAVID MALAN: Dina, tule alas. Selvä, Dina. Joten tämä peli saa kovemmin ja vaikeampaa, koska tässä pelissä, siellä muuttujia käytetään samoin jotka ovat jatkuvasti pitää kirjaa mitä tasolla olet pelissä. Niin mukava tavata. Come täällä. Ja niin tavoitteemme on lajitella of tee läpi sokkelo että tämä opiskelija täytäntöön. Ja vain asettaa vaiheessa, kukin Näiden kuvien näytöllä on oma sprite, omanlaisensa. Niinpä nämä olivat oletusarvoisesti kissojen, mutta opiskelija muutti heidät eri Ivies logoja tässä. Ja sitten näet, että vain käyttämällä olosuhteet ja silmukoita ja toiminnot ja enemmän, saat tämän. [MUSIIKKIA] [MUSIC - MC Hammer, "U voi koskettaa  TÄMÄ"] Joo, OK. Joo, jatka. Ensimmäinen taso on hyvin helppoa. Olet juuri saanut mennä sinne. Mutta jälleen kerran, harkitse, tämä on vain loop kuuntelee nuolta keys-- ylös, alas, vasemmalle, oikealle. Ja nyt tunnistava lohko. Erittäin kiva. [MUSIC - MC Hammer, "U voi koskettaa  TÄMÄ"] Erittäin kiva. [MUSIC - MC Hammer, "U voi koskettaa  TÄMÄ"] Erittäin kiva. Melko helppo, Crimson. Selvä. Levels-- uh-oh. [MUSIC - MC Hammer, "U voi koskettaa  TÄMÄ"] Ja vielä, näiden kolme Harvard vaakunat, sinun täytyy vain logiikka sanomalla, jos reuna, bounce. [MUSIC - MC Hammer, "U voi koskettaa  TÄMÄ"] OK, mitä teet on kiinnostavampi kuin miksi. Erittäin kiva. Erittäin kiva. Voi ei. [MUSIC - MC Hammer, "U voi koskettaa  TÄMÄ"] Mielestäni sinun täytyy uhrata itse. [MUSIC - MC Hammer, "U voi koskettaa  TÄMÄ"] Nopea! [MUSIC - MC Hammer, "U voi koskettaa  TÄMÄ"] Kiva. Se on okei. Saat sen. Kyllä kyllä! Erittäin kiva. [Hurraavat] [MUSIC - MC Hammer, "U voi koskettaa  TÄMÄ"] Kiva! [MUSIC - MC Hammer, "U voi koskettaa  TÄMÄ"] Sain sen. Tulla! Toiseksi viimeinen tasolle. [MUSIC - MC Hammer, "U voi koskettaa  TÄMÄ"] Selvä. [MUSIC - MC Hammer, "U voi koskettaa  TÄMÄ"] Kyllä. Hyvä käyttää muuttujia täällä. [MUSIC - MC Hammer, "U voi koskettaa  TÄMÄ"] Kyllä. [MUSIC - MC Hammer, "U voi koskettaa  TÄMÄ"] Kiva. [MUSIC - MC Hammer, "U voi koskettaa  TÄMÄ"] Se on okei. Meidän täytyy päästä loppuun. Siellä. Vai niin! [MUSIC - MC Hammer, "U voi koskettaa  TÄMÄ"] Saattavat toimia myöhään tänään, mutta se tulee olemaan sen arvoista. [MUSIC - MC Hammer, "U voi koskettaa  TÄMÄ"] Sinä voit tehdä sen! Joo! [Hurraavat] [MUSIC - MC Hammer, "U voi koskettaa  TÄMÄ"] Tämä on todella vaikea. [MUSIC - MC Hammer, "U voi koskettaa  TÄMÄ"] Annamme sinulle kaksi enemmän ihmishenkiä. Voitko tehdä sen? [MUSIC - MC Hammer, "U voi koskettaa  TÄMÄ"] Selvä. Entä iso pyöreä suosionosoitukset kuitenkin. Sait toiseksi viimeinen tasolle. Kiitos. [SUOSIONOSOITUKSET] Joten tämä on vain sanoa kuinka paljon voi tehdä tällaisia ​​asioita. Ja ymmärtää myös, että kun palapelin palaset eivät exist-- ja todellakin, tämä tulee olemaan yksi n valtuuksia ensimmäinen ongelma asetetaan ja beyond-- on itse luoda omia. Ja tämä on vain pätkä yksi esimerkeistä voit pelata online, missä jos et ole rakennettu Scratch jotain yskä palapelin pala, voit itse tehdä sen itse. Ja niin kaikki tämä ja paljon muuta odottaa. Ja vain maalata lopulliseen kuva todellakin mitä eteenpäin luvassa luokan teille, perustuvat muutamia kuvia luokkakaverit Aiemmin saanen himmentää valoja viimeisen kerran ja näyttää CS50. [MUSIIKKIA] Selvä. Se on siinä CS50. Kakku on nyt tarjolla. [MUSIIKKIA]