SPEAKER: OK, niin, et usko sitä, mutta viime viikolla, maanantaina, Pierce, I oli alas kellariin. En koskaan mene Pierce. Enkä aio koskaan takaisin, koska Jätin juttuja yksin, kuten viisi minuuttia ja joku varasti minun tietokone ja minun puhelin pois minun reppu. Mikä tarkoittaa sain sen takaisin, ja sitten alle viikkoa myöhemmin se varastettiin uudelleen. Ja sitten se sai päällä - Find My iPhone jatkuu olla hyödytön. Joten olen edelleen kannustettava voit olla käyttämättä sitä. Se päällä kerran, ja se oli MIT, kuten 15 minuuttia myöhemmin, ja henkilö kutsui tätä puhelinnumeroa, jotka osoittivat jopa minun AT & T puhelujen loki. Joten menin verkossa, nimeltään että puhelin numero, ja se meni suoraan tähän puhelinvastaaja espanjaksi. Ja en ole kuullut siitä lähtien. Joten minun piti saada uusi tietokoneen ja puhelimen. Tiedän. Joo. Mutta jos te haluatte siru minun tietokone rahaston tämän jälkeen, siksi Olen pyytänyt sinua tänne. Vain leikkiä. Mutta se oli todella surullinen ja traumaattinen. Mutta se kaikki takaisin nyt, ja että siksi p-set 8 kesti niin kauan, koska Minulla ei ollut tietokonetta. Ja joku varasti sen. Ja I sähköpostitse, pyytää, jos ne olisi grade sinun p-set 8. Mutta he sanoivat ei. Ja olin kuin, saanko minun tietokone takaisin? Ja he ovat kuin, no. Vain leikkiä. OK. Tämä on meidän viimeisessä osassa, ja minulla on pari - meillä on vain kolme asioita esityslistalle. Me aiomme puhua vähän noin Q opas. Sitten aiomme viettää 15 minuuttia viileä demo. Sitten aiomme kaikki sanovat hyvästit toisiaan. Sinun ei todellakaan tarvitse tietokoneiden tai kynän ja paperia on syytä tehdä muistiinpanoja, tai seurata mukana. Joten oletan, jos sinulla on tietokone ylös, niin olet Facebookissa. Vain sanomalla. Ellet täyttämällä Q opas, joka on ensimmäisenä. Q opas on auki. Olet ollut sähköpostia siitä. Kun kaikki Q jutut on toimitettava vuoden loppuun mennessä, saan kaikki Q kommentit pisteiden kaikille joka haluaa antaa minulle palautetta. Ja niin kun menet Q - En tiedä, jos voit tehdä tämän, Jeff, koska olet ja laajennus opiskelija. Mutta kun menet Q, jos et ole tehnyt sen ennenkin, voit valita oman opettaja, joka on David Malan. Sinun täytyy tehdä hänelle. Ja sitten voit valita TFs. Ja voit valita niin monta TF: t kuin haluat. Mutta on olemassa 60 meistä. Sinun ei tarvitse valita kaikille. Voit vain hakemaan minut, tai vain poimia pari muita ihmisiä, jos haluat, että antaa heille palautetta samoin. Ja sitten saat pisteet kaikissa näissä eri tavoitteisiin, ja sitten voit lähteä niistä palautetta. Ja sitten, kuten kuukautta myöhemmin, Haen kaikkeen palautetta. Ja aivan kuten palautetta olet ollut antaa minulle koko lukukauden, minä Lue kaikki tämä. Ja se on todella hyödyllinen, ja se auttaa minua kasvamaan opettajana ja yksittäisiä. Joten, kiitos, kestää jonkin aikaa tehdä se. Olemme vain olemaan täällä varten, kuten 30 minuuttia. Joten jos haluat, lopussa tämän, jotta kestää viisi minuuttia, ja vain täyttää Q, koska se ei ota enempää aikaa kuin. Se olisi hienoa, ja voit myös saat laadut takaisin nopeammin, jos täytät Q. Joten useimmat teistä ovat tehneet, että ennen - tai ei, noin puolet teistä tehnyt sen ennenkin. Mutta jos olet fuksi, sitähän se on. Se tulee olemaan sama kaikille luokissa. Tee se. Se kestää viisi minuuttia. Mutta myös, jos teet sen hieman vakavasti, se ei ole pahinta maailmassa, koska en todellakaan ota sitä vakavasti. Joten jos jätät minut hymiö kasvot, Minä arvostan sitä. Mutta olisin myös kiitollinen, jos jätti minut enemmän kuin hymiö kasvot. Mutta se on sinun. En voi kertoa teille - tai kuten iso hymiö kasvot, isolla D. Se olisi vielä parempi. OK, siinä kaikki minulla on Q. Jos on kysyttävää, voit kysyä minua, mutta melko itsestään selvä. , Pyydän, täytä se. Olisin todella kiitollinen, ja se merkitsee minulle paljon. OK, tämä on mitä aiomme viettää 15 minuuttia läpi. Aion näyttää sinulle joitakin koodin. Mielestäni tämä on todella siistiä, ja tämä sai minut enemmän innoissaan tietotekniikassa. Joten toivon, että se tekee sama teille kaikille. Aiomme avata - ja kaikki tämä koodi Lähetän sinulle myöhemmin. Mutta olemme vain avaakaan - Olen minun terminaali - aiomme tämän ohjelman avaamista nimeltään [? MySum. ?] Voivatko kaikki lukea niin, tai minun pitäisi tehdä se isompi? Voiko joku kertoa minulle, mitä tämä koodi tehdä, kun käytän sitä, tai mitä tämä ohjelma tekee kun käytän sitä? [? Avi,?] Mitä luulet se tulee tehdä? Maali pureskelematta. Sinun ei pitäisi puhua suu auki. Yleisö: Kestääkö joukko argumentteja, löytää heistä päälukua palaavat summa, ja sitten tulostaa sen? Tai se vie kaksi argumenttia, ja niin se tekee [kuultavissa]. Ja se tulostaa ulos riippumatta tulokset ovat. SPEAKER: Close, todella lähellä. Joku haluaa lisätä [? mitä Avi?] sanoi? Sinun ei tarvitse antaa tätä ohjelmaa tahansa komentorivin argumentteja? Yleisö: Ei. SPEAKER: Ei. Mitä tapahtuu, jos et anna sitä tahansa komentorivin argumentteja? Minä vain kirjoitan dot slash MySum. Yleisö: 1 plus 2 vastaa 3. Kaiutin: 1 plus 2 vastaa 3. Ja se tulee tulostaa, että ulos. Se on aivan oikein. Huomaat, että tulosta f alalaidassa. Se tulostaa, b, ja sitten summa a ja b. Ja kai olettaa, että summa toimii oikein. Hyvä oletus. OK, ja mitä tapahtuu, jos antaa sille mitä argumentti? [? Manu? ?] Yleisö: Se lisätä mitä Ensimmäinen argumentti on b. Tai 2, sorry. SPEAKER: Aivan, 2. Tietääkö kukaan, mitä strtol tekee? Se on pohjimmiltaan atoi. Atoi on todella hieno versio - tai yksinkertaisempi versio strtol. Mutta tosiasiassa se käyttää strtol. Ja huomasin, että ulos, koska halusin jotain atoi, ja sitten kun minä ei atoi, luin tänne. Ja löysin "tämän ongelman on sama kuin "strtol. Joten se on periaatteessa atoi varten katsoen. Ja näet olen jopa käyttää null ja 10. Tämä itse asiassa voit ottaa merkkijono, ja muuttaa sen numero ja valitse mitä pohja haluat tehdä sen sisään Joten tämä on 10. täällä. Olisin voinut tehdä pohjan kaksi desimaalin, 16-kantainen heksadesimaaliluvussa. Se on aika siistiä. Mutta pitkän tarinan lyhyesti, tämä vie kaksi numeroita ja lisää ne yhteen. Joten suorita se. Ja huomaat myös, siellä joitakin asioita - joten minulla on makefile täällä, ja jos avaat että jopa jotkut asiat huomaat ovat erilaisia. Erityisesti tämä väite täällä, luultavasti ole nähnyt, että ennen. Yleensä meidän kääntää asiat pistekat nolla, nolla. Dash nolla, nolla, tarkoittaa älä tee mitään optimointeja, kääntäjä. Älä yritä tehdä mitään fancy, tai tehdä mitään ajaa nopeammin, tai saada eroon muuttujia, jotka ovat tarpeen. Älä optimoida tätä koodia lainkaan, Pyydän kolmannen tason optimointi. Joten pyydän kääntäjä tehdä paljon optimointeja. Voit muuttaa että makefile kun sinulla on tunnus, jos haluat nähdä erilaisia ​​juttuja. Jotka näytämme toisessa. Joten me ajaa minun summa 1 plus 2 plus 3. Joku antaa minulle kaksi argumenttia. Yleisö: 4 ja 5.. SPEAKER: 4 ja 5.. Kiitos. Hienoa, se toimii. Mitä muita hyviä perusteluja kokeilla, varmistaa, että tämä toimii? Kukaan? Yleisö: 0. SPEAKER: 0 ja? Yleisö: Negatiivinen 3. SPEAKER: Se toimii. Mutta ne olivat hyviä valintoja. OK, niin mennään takaisin tänne. Tämä on mysum.c. Huomaat siellä on myös jotain nimeltään sumfunction.c. Ja tämä kertoo, oh, jotain määritellään sumfunction.c. En ole tätä tiedostoa täällä koska en tarvitse. Mutta liitän sen kun kääntää, jonka olet huomannut. Katsotaanpa selaamalla ylöspäin. Näimme kun kokosimme mysum, oikea siellä, me linkitetty binary sumfunction.o. Ja en tarvitse otsikkotiedosto koska, tietenkin, siellä toiminto julkilausumaan. Niin terävä sisältävät yleensä vain tuo funktion ilmoituksen. Täällä olen vain laittaa se suoraan koodissa. Ja niin minun täytyy tehdä on linkki binary, jota en. Arvauksia siitä, mitä on vuonna sumfunction.c? Mikä koodi olen kirjoittanut vuonna sumfunction.c? Yleisö: [kuultavissa]. SPEAKER: Arvauksia? Joo? Yleisö: Luulen, määrittelee noin [äänetön]. SPEAKER: Kyllä. Joten en kirjoita int summa int. Kirjoitan tätä linjaa, ja sitten minulla on auki kihara ahdin, suljettu kihara ahdin. Mitä luulet kirjoitan sisällä näitä aaltosulkeita sisällä että toiminto? Joo? Yleisö: Return vastaa. Prosessori: Se on todella hyvä arvaus. Joka ajattelee [? Manu?] On oikeassa? Siinä sanotaan palata plus b. OK, kaikki eivät. [? Akshar,?] teet, too? Oletko varma? OK. Mitä? Yleisö: Sinä kirjoitettu väärin. SPEAKER: Ei, en. Joo, vain leikkiä. Olet oikeassa. Se mitä se sanoo. Se palauttaa plus b. Se tekee paljon järkeä. OK, mennään takaisin tänne. Näemme kuinka header - se on palautuva. Muista, olemme nähneet, että päivä yksi, palata tyyppi toiminto, mutta menee ennen nimi int-funktio. Täällä olen kirjoittanut int. Mitä luulet tapahtuvan, jos tässä toiminto, en kirjoita int, mutta Kirjoitan allekirjoittamaton? Ero, tietenkin, on se, että allekirjoittamaton edustaa vain positiivisia kokonaislukuja, ja int voi olla positiivinen tai negatiivinen. Joten olen muuttanut tuotto tyyppi tätä toimintoa. Tämä koodi ei vastaa Tämän palautuva täällä. Mitä luulet tapahtuvan kun kääntää? Sinun pitäisi huutaa minulle. Ei huutamista. Entä kun ajaa ohjelman? Tehdään ennen 0 kielteisiä 3 tai negatiivinen 1. Se toimii edelleen, vaikka en sano se palaa allekirjoittamaton kokonaisluku. Selvää ei ole tulossa takaisin allekirjoittamaton kokonaisluku. Se on palaamassa allekirjoitettu kokonaisluku. Se palaa negatiivinen 1. OK, se on outoa. Entä jos menen täällä ja tehdä sitä? Joten olen muuttanut kaiken INT allekirjoittamaton. Se voi tapahtua vain unsigned kokonaislukuja. Mutta onko meillä edelleen sitä mieltä, se tulee ajaa? Yleisö: Kyllä. SPEAKER: se. Se on hullua. Ja me kulkea selkeästi valittu kokonaisluku, voimme välittää kaksi allekirjoitettu kokonaisluku, se toimii edelleen. OK, mitään ideoita siitä, miksi se on edelleen toimii, tai mitä on tekeillä? Joo, Jeff. Yleisö: Se on jotain tekemistä kanssa optimointi, että olet korostettuna. SPEAKER: Ei. Voisimme muuttaa optimointi, se silti toimi. Voin tehdä sen sinulle, mutta - Yleisö: Otan sanaansa. SPEAKER: Joo. Jos avaat makefile täällä, Vaihdoin optimointi. Joten voit tehdä viiva nolla nolla. Se toimii edelleen. Muita ajatuksia? Te kaikki odotetaan toimi, joten Miksi odottaa sen toimimaan? Ei? Hiljaisuus. OK. Minun on odotettava seitsemän sekuntia, koska kysyin kysymyksen. Niin cool juttu C, ja olet luultavasti ollut ennen - sinun ei ehkä ole, tämä saattaa on ensimmäinen kerta. Mutta kuten kaikki tiedätte, kun kirjoitan jotain C, se ei pelasta kuin tämä tietokone. Se tallennetaan ykkösiä ja nollia. Se menee C-koodia assembly. Onko kukaan nähnyt kokoonpano koodi ennen, koneen kokoonpano koodi? Me tarkastelemme toisessa. Se menee C-koodia assembly. Ja te tiedätte vaiheissa kokoamisesta. Sinun piti muistaa, että tietokilpailu yksi, ja sitten kirjoittaa se ulos tietovisa nolla. Useimmat ihmiset väärässä. Mielestäni te naulattu sitä. Mutta te olette paras jakso varten tietokilpailuja, muuten. Joka on mahtava. Se ei satuta sinua. Älä ole huolissasi. Mutta se on todella siistiä. Hyvää työtä. Niin se menee konekielellä, ja sitten se menee ykkösiksi ja nollia. Ja ykkösiä ja nollia tallennetaan tietokone, ja sitähän tallennettu a.out, tai tässä tapauksessa, exe-tiedoston. Ja tietokone toimii ykkösiä ja nollia. Oikea? Olemme oppineet tämän ennenkin. Niin cool juttu on tämä unsigned idea, ajatus tyypit ints allekirjoitettu, jne., jne., se on täällä ylhäällä C-kielellä. Nämä olemassa. Mutta tyypeille ei ole olemassa ykkösiä ja nollia. Tyypit eivät edes oikeasti olemassa konekielellä tasolla. Niin, että on jotain, joka on olemassa C maailmaa, mutta ei ole olemassa tietokonetta maailma tai prosessorin maailman. Se on joitakin abstraktio, joka C kieli on mukana, jotta meidän elämästä helpompaa. Joten lopussa päivä, voin kirjoittaa monia eri asioita täällä, ja se ei tee eroa. Sillä, että on olemassa vain C-maailmassa. Se ei ole olemassa ykkösiä ja nollia maailmassa. Ja ohjelman täytäntöönpanosta vuonna ykkösiä ja nollia maailmassa. Joten mielesi selvästikään ole palanut vielä. Uskon kuitenkin, että on siistiä. Joo, Jeff. Yleisö: Niin, jos sen sijaan tekee int, et char. Ja olit - SPEAKER: Tehdään se sec. Yleisö: Koska silloin saat allekirjoittamaton menee negatiivinen 128 127 tai 0-255. SPEAKER: Eli merkki on ongelmallista. Tietääkö kukaan miksi char olisi ongelmallista, ja se olisi todella muuttaa asioita itse ja nollat ​​maailmassa? Yleisö: Koska koko nieriää. SPEAKER: koko merkki on 1.. Joten allekirjoittamaton on myös 4 tavua. Joten char olisi ruuvi asioita. Mutta mikä on 4 tavua, joka on liittyvät char? Tai että tuo yksi ylimääräinen - voit laittaa yhden merkin jälkeen char. Yleisö: Char tähti. SPEAKER: Char tähti on 4 tavua. Tehdäänpä jotain se char tähti. Joten tämä olisi todennäköisesti toimi, mutta olemme aikoo tehdä jotain vielä hullumpi kuin tämä. Mielestäni hullumpi. Olen nyt kirjoittanut funktio, joka palauttaa osoitin, ja se kestää osoitin ja allekirjoittamaton arvo - me muuttaa takaisin int joten emme ole tekee liikaa muutoksia kerralla. Ja se on array nimeltään, hakemistot array, ja palaa osoite. Olemme nähneet nämä toimijat ennen. Tämä, mitä luulet tämä on menossa tehdä, vastineeksi, kun käytän sitä? Mitä luulette, että se aikoo tehdä? Arvauksia? Yleisö: Segfault. SPEAKER: Mitä? Segfault? Se on hyvä arvaus. Tom sanoo samaa. Muita arvauksia? Joka ajattelee se tulee tehdä sama asia? Joka ajattelee se tulee Segfault? Se ei sama asia. Anteeksi. Mutta tietenkin, panemme 1 ja 2. Ja ne ovat molemmat voimassa, eikö? Katsotaanpa, voimme mennä Toinen paikka array. Mutta entä jos olemme tehneet b negatiivinen luku? Tämä on luultavasti parempi arvaus jotain segfaulting. Se toimii edelleen. OK, tämä on nyt hullu. Tämä on yhtä pätevä summa toimintoa. Tämä tekee täsmälleen sama asia Palautus-ja b. Voiko joku selittää, miksi tämä on hyvä Yhteenvetona toiminto, tai miksi tämä toimii? Mitä täällä tapahtuu? Miksi tämä tehdä täsmälleen sama asia kuin meidän vanha summa toiminto? [? Akshar,?] mitä tapahtuu? Yleisö: Koska kun olet joka on osoitteen sijainti muisti - ja kun teet ampersand, se menee, että muisti osoite. Ja kun menet b, olet aika siirtymässä askeleen päässä että muisti osoite, palaat että. Joten olet todella, itse asiassa, lisäämällä ja b [äänetön]. Missä ovat vakiotoimenpiteen siitä, että paluu? Like, mistä suluissa kuulu? Onko paluu osoitteen ennen tai jälkeen [kuultavissa]? SPEAKER: Se tulee indeksinä b - tai indeksinä - ja sitten palata osoite. OK, joten ei kaikki ymmärrä mitä [? Akshar?] sanoi ja selitti, miksi tämä toimii? En, ensimmäistä kertaa joku selitti tämän minulle. Kukaan pidä kuva selittää tämän? Aiomme piirtää kuvan, jossa no markkereita, hienoa. Havainnut. Joten meillä on joukko, joka on sarjan laatikot. Ensimmäinen on indeksi 0, indeksi 1, 2, 3, 4, piste, piste, piste. Tyypillinen array. Ja sen lisäksi että indeksit, niillä kaikilla on muisti osoitteita. Joten annetaan tämä muisti osoite 13, 14, 15, 16, 17, ja niin edelleen. Kaikki ovat täällä tähän mennessä. Joten on osoite. Nimi array, osoitin tallennetaan siellä. Se on osoitin, se muistipaikka, alkua array. Joten jos tämä jono, olisi arvo 13. Ja tietenkin, voimme antaa mitään arvoa haluamme. Char tähden, voimme antaa mitään muisti osoite haluamme. Voimme antaa sen 0, voimme antaa sen negatiivinen 1 - negatiivinen 1 ei ole olemassa, niin se on luultavasti ongelmallista, mutta näit, että se vielä toimi. Jotta voimme antaa minkä tahansa määrän haluamme, mitään muistikuvaa osoite haluamme. Sitten, int b sanoo, OK, mene tämän numeron ja astuu array. Joten jos b = 2, ja vastaa 13, Olemme muistipaikassa 13. Ja menemme kaksi vaihetta, ja niin olemme täällä. Ja et-merkki tarkoittaa paluuta osoite tämän sijainnin. Ja osoite on tietenkin 15. Joten saamme 13 plus 2 tai plus b, joka on 15. Kysymys kuuluu, vaikka - Olen pahoillani. Tarkoittaako tämä selventää asioita miksi tämä toimii? Yleisö: Miksi se toimii menossa - joten voit olla array ja Siirry negatiivinen indeksi? SPEAKER: Oikea. Joten teimme negatiivisia lukuja, niin se on - tämä järkeä vaikka, Ensimmäinen, [? Avi,?] sinulle? Yleisö: Joo olen vain [Äänetön], mutta - SPEAKER: Joo, tämä palaisi 15. Jos oli 13, ja b oli 2, tämä palaisi 15. Yleisö: Eli nolla indeksointi ei tulla ongelma, eikö? Koska olet siirtymässä 0. SPEAKER: Oikea. Joten olet siirtymässä - joten jos b on 0, et liiku minnekään. Ja olisit juuri palannut osoite - jos b on 0, se on pohjimmiltaan palautettaessa osoite. Ohimennen char tähden ja palaa osoite on juuri palaamassa, olennaisesti. OK, kysymys on miksi negatiiviset numerot toimivat? Ja se on todella cool juttu tämä, koska tämä olisi Segfault. Ja se Segfault jos me teki jotain tällaista. Sanotaan, int. Joten tämä koodi näyttää sama ja pitäisi käyttäytyä samalla tavalla. Pohjimmiltaan x on roskaa muuttuja, ja niin tämä pitäisi käyttäytyä samalla tavalla. Tehdään tästä - oho - tähti. OK, olemme jo saada virheet täällä, koska se on jo olemaan vihainen minua, koska se on jo tietää mitä on tulossa. Erityisesti toinen. Osoite pinottu liittyvä muisti jossa paikallinen muuttuja. Pohjimmiltaan, en aio laatia Tämän, ja sitten aion kumoa tehdä mitä me vain teimme. Mutta koska emme koskaan oikeastaan saatavuuden mitä muistolle sijainti, se ei tule Segfault. Emme koskaan itse katsot mitä toisesta ruudusta tai mitä missään laatikossa Tämän array. Olemme vain sanomalla, tässä on osoite on asia, jota etsit ja palata kyseiseen osoitteeseen. Emme koskaan todella menee array katsomaan kyseisessä paikassa. Ja koska emme koskaan kosketa muistin, emme joudu vaikeuksiin. Emme saa segfault. Jos yritimme jälleen koske siihen muistiin, kosketa mitä oli tai b - tai kiinnike b, ja olettaen oli 0 ja - jos oli 0, jopa, että olisi aika huono, koska emme voi mennä alas aina siellä. Jos a ja b ovat molemmat 0, ja olemme yrittäneet kosketa, mitä siellä oli, niin olisimme pulaan. Mutta jos emme kosketa mitä siellä, me vain palata osoite, se on oikeastaan ​​aio Segfault koska sen avulla voit suorittaa nämä toimet. Se vain suuttuu sinulle, ja saa Super vihainen, kun yrität ja kosketa todellisen muistin ja palauttaa mitä tuohon muistipaikka. Onko järkeä? Se on vain hullu osa C: Niin, meillä on yksi näistä. Joka ajattelee tämä on siistiä? Enemmän ihmisiä. Se on hyvä. OK, tämä on meidän viimeinen. Ja haluan sinun kertovan minulle, onko tai et usko, että tämä on menossa tehdä täsmälleen sama asia. Olen nämä kirjalliset alas jonnekin. En ulkoa niitä. Katsotaanpa, 8, b 4, 4, 2, 4, 0, 8, 0, 3, 4, 4, 2, 4, 0, 4. Joten tämä on array, nyt ei toimintoa. Ja se joukko, koska meillä on neliö suluissa, ei aaltosulkeita. Ja se joukko minkälaista? Kuka tahansa, hmm? Yleisö: Heidän Heksadesimaaliluvut? SPEAKER: Mutta mitä C-tyypin? He kaikki ovat heksadesimaalilukuina. Mikä on C-tyypin? Se kertoo. Yleisö: Se on allekirjoittamaton merkkiä. SPEAKER: Oikea, unsigned merkkiä. Ja kaksi heksadesimaaliluvut on yksi tavu. Joten nämä ovat 1, 2, 3, 4, 5, 6, 7, 8, 9 tavua. Se on joukko 9 tavua. OK, varmasti tiedät vastaus tähän kysymykseen. Mutta mitä luulette tapahtuu, kun juoksen tämän? Sanon jälleen, vuonna mysum.c, Odotan toiminto joka ottaa kaksi kokonaislukuja. Ja olen sen sijaan sanomalla, että summa on joukko merkkiä. Mitä tulee tapahtumaan, kun Juoksen. / Mysum ja tehdä? No, ensinnäkin, useimmat teistä luultavasti samaa mieltä siitä, make - Voi ei, vain leikkiä. Mitä tein väärin? Uh oh. Tämän pitäisi olla aaltosulkeita. Se miten alustaa array. My bad. Joten me näki jo ennen kyseistä tyyppiä ovat C-tason abstraktio, ei tietokone tason abstraktio. Joten useimmat teistä varmaan odotettavissa sen tehdä, tai olettaen, että se tekisi. Mutta mitä kun ajaa. / Mysum? Mitä tulee tapahtumaan? Arvauksia? Yleisö: Se tulee tulostaa sana. SPEAKER: Se tulee tulostaa sana. Mikä sana? Yleisö: [kuultavissa]. SPEAKER: Kaikki muut arvauksia? OK, tulostaa lause. Sinulla voi olla mikä tahansa lause. Se on teidän puolellanne. Jokainen, joka on erilainen arvaus? Anna, mikä on sinun arvaus? Yleisö: Se tulostaa - kaksi kirjainta, tai [äänetön] yksi kirjain. SPEAKER: Yksi kirje. Yleisö: Voinko luottaa, miten monet [äänetön]? SPEAKER: Nine. No, aion käyttää sitä. Se tekee täsmälleen sama asia. Se lisää kaksi numeroa yhteen. No, siirtää kaksi argumenttia. Se ei ota argumentteja. Joten en tiedä, missä se voisi mahdollisesti saada nämä väitteet. Mutta katsotaanpa kulkea 100 ja 0. Ja se lisää 100 ja 0. Se on hullua. Luulen niin. Negatiivinen 4, joka toimii myös. Voit tehdä mitä haluat. Tämä on yhtä pätevä summa toimintoa. Tämä on summa toiminto. Mutta ei, sanot se on tavuvektoriksi. Joten mitä täällä tapahtuu? Joten, jälleen, mennään takaisin tähän ajatukseen että sanoimme aivan alussa. Menet C-tason koodia, kokoonpano kieli, ykkösiksi ja nollia. Tämä on heksadesimaali. Mutta tämä on oikeastaan ​​vain paljon ykkösiä ja nollia. Tämä on 72 ykkösiä ja nollia, eikö? 72 ykkösiä ja nollia. 9. tavua. Jokainen tavu on 8 bittiä. Jokainen bitti on ykkönen tai nolla. Joten 72 niistä tai nollia. Olen juuri kirjoittanut ne näin - kirjoittamisen sijasta se niin paljon ykkösiä ja nollia. Mutta tämä menee C-tason kielen, kokoonpanoon kieli, koodin. Ja tämä tulostaa koodin, jonnekin, nämä 72 ykkösiä ja nollia että olen kirjoittanut täällä. Niin jossain, että - mennään täällä - jossain mysum, ohjelma ei nämä 72 ykkösiä ja nollia, että olen kirjoitettu ja kertoi sen kirjoittaa. Nyt arvauksia siitä, mitä niille 72 ykkösiä ja nollia tarkoittaa? Yleisö: Luultavasti sama asia kuin palata plus b. SPEAKER: Luultavasti sama asia kuin palata plus b. Katsotaanpa tarkistaa, että. Katsotaanpa selvittää, miten tein tämän. Joten jos menet takaisin tänne, minä sanon teille: tämän komennon, objdump-S sumfunction.o. Mennään käyttää sitä. objdump - obj, dump. Periaatteessa se voi antaa minulle mitä haluan nähdä. Se voi antaa minulle konekielellä. Se voi antaa minulle ykkösiä ja nollia. Se on ton lippuja. Tämä on yksi aiomme käyttää nyt. Dot - kuten näet dioja - Dash pääoman S sanoo, lomittaa, lähdekoodi - tämä linja on kotoisin C - kokoonpanon kanssa koodi ja ykkösiä ja nollia. Ja aiomme ajaa se sumfunction.o. Koska se tulee olemaan helpompi nähdä. Again - hmm? Yleisö: Sinä kirjoitettu väärin. SPEAKER: Mutta olen todella menossa tyhjentää sitä toista. Olen ensimmäinen aikoo avata vain sumfuntion.o. Yleisö: Sinä kirjoitettu se väärä ensimmäistä kertaa. SPEAKER: Classic. Sum - että on kova sana, vaikka. Sinun on yllättynyt. OK, joten tämä on sumfunction.o. En voinut edes kertoa. Siellä on paljon nollia, selvästi paljon nollia, ja siellä on joitakin muita kamaa, että ei ole nollia. Mutta enimmäkseen nollilla. Näyttää siltä, ​​että joitakin niistä. Niin selvästi, tämä on vaikea lukea. Se on binary kielellä. Katsotaanpa nyt avata - mitä? Mitä teen väärin? Teinkö kirjoittaa sen oikein? OK, tämä on kiusallista. Tarvitsen yhden sekunnin selvittää mitä teen väärin. Se on yksi virhe. Outoa. Ai, siksi. Aion mennä takaisin meidän alkuperäiseen yksi, joten voimme tarkastella kohdekoodia tämän. Koska siellä ei ole oikeastaan ​​tule olla mitään, kun me vain laittaa ykkösiä ja nollia sisään Siellä mennään. OK, joten jokainen voi nähdä tämän. Tämä toiminto, kuten sanoin, ojensi C linjat - lähdekoodin linjat - joidenkin asennusohjeet. Tässä on meidän lähdekoodia rivi. Tässä yksi, tässä on toinen. Tässä on asennusohje. Sitähän ne näyttävät. Asennusohjeet - voit oppia lisää näistä jos otat muut CS luokkiin, mutta ne ovat yleensä opetusta. Ja sitten lähde ja kohde. Ja sitten täällä on binaarikoodistasi joka vastaa, että kokoonpano opetusta. Joten kuten näette, tämä summa toiminto, lopussa päivä, on kolme asennusohjeet. Vain kolme. Yksi mov - tämä m-o-v tarkoittaa Move. Lisää sanoista Lisää. Ja r-e-t sanoista Return. Joten yksi mov, yksi add, yksi edestakainen. Ja nämä, tänne, ovat nollia ja ne, jotka vastaavat kyseisen koodin. Joten ne nollia ja ykkösiä, jos Tiedätkö ne, voit vain laittaa niitä suoraan sisään Ja sitten se tulee tehdä täsmälleen sama asia. Koska lopussa päivä, kaikki olet täytäntöönpanosta on pitkä sarja nollia ja ykkösiä. Ja se mitä koodi todella on. Ja syy - Katsotaanpa yksi asia. Oliko minulla makefile auki? Joten jos menimme takaisin viiva nolla, nolla täällä - pahoillani, pääoman o, pääoman o nolla, ei nolla, nolla. Ja me ei tehdä, se olisi toimivat edelleen sama. Mutta nyt huomaat, että on olemassa paljon enemmän asennusohjeet. Tämä johtuu siitä, taas, kysyin kääntäjää ei tehdä mitään optimointia. Niin voisin silti ottaa kaikki nämä nollia ja ykkösiä, ja heittää ne, ja joka toimisi. Tein optimointeja, koska se on vähän helpompaa sitten, kirjoittaa, että jono. Mutta tämä toimisi yhtä hyvin. OK, aiomme tehdä yksi asia, koska mielestäni on tyylikkäin osa. Vaikka kaikki ovat selvästi jo palanut ja sanaton. Mielemme on palanut. [Äänetön] Niin, nämä ovat eri CS luokka, joka on erittäin mielenkiintoinen, että olen pannut - CS61. Olen erittäin rohkaista sinua ottamaan sitä. Mutta viileä osa tästä tosiasia, että asiat ovat vain nollia ja ykkösiä, on, että kaikki on nollia ja ykkösiä. Joten voit ottaa tiedoston, oikea nollia ja ykkösiä haluat jossain sen, ja käyttää sitä osa nollia ja ykkösiä kuin summafunktio. Mitä tarkoitan tällä? Siis voit ottaa kuvatiedosto, jonka on oikea sarja nollia ja ystävät, että painan jotain ulos kuvan. Ja yksi ohjelma voisi tulkita on kuva, mutta voit tulkita sitä, jos haluat, niin summa toimintoa. Joten jos halusimme avata, sillä Esimerkiksi tämä kuva. Mennään, Hello Kitty. Ihana pikku kuva. Täällä on, että jono nollia ja ykkösiä. Nämä 72 nollia ja ykkösiä olemassa tässä kuva. Joten mitä voin tehdä, on siis kirjoittaa - Täytyy muistaa, missä ne ovat. Löydän että toisen. Mutta me - haluan selvittää, missä ne ovat. Yksi sek. Tehdään - Yleisö: [kuultavissa]. SPEAKER: Kiitos. Jos siis Ohjelman toteutuksen, joka sen sijaan lukee tiedoston, sitten se menee Tämän indeksin tiedoston. Ja sitten taas, aivan kuten mysum, kestää kaksi numeroa. Voimme lisätä numeroita täsmälleen sama kuin teimme ennen, mikä menee näyttää, miten se, että lopussa päivä, kaikki nämä asiat ovat nollia ja ykkösiä. Ja se on vain miten haluat tulkita niitä. Ja jos todella näyttävät Tämän kuvan - Katsotaanpa zoomata vähän. Voivatko kaikki nähdä sen? Huomaat täällä, siellä outoja tuhrata. Mennään - tämä on alkuperäisen kuvan. Huomaat tässä ei ole tahroja. Se on koodi summa toiminto, on se pieni tahra tuolla. Ja oikeastaan ​​uudelleen, jos voit oppia lisää tästä, huomaat että tämä Hello Kitty, joka on jopa suurempi tuhrata, on koodi, joka voi ottaa tietokoneelle, jos sitä ei ole suojattu asianmukaisesti. Joten voit itse suorittaa tämän. En aio käyttää sitä juuri nyt. Mutta voit suorittaa tämän Hei Kitty kuva, ja se voi ottaa tietokoneesi haltuunsa. Niin, että kaikki demo. Onko kellään mitään kysyttävää, kommentteja, huolenaiheita? Mielestäni tätä tavaraa on kiehtova. Se innoitti minua oppimaan lisää. Suosittelen, jos olet kiinnostunut lainkaan CS, puhu minulle. Vaikka olen Social Studies Rikastamo, olen CS, toissijainen, joten En vieläkään tiedä hieman. Mutta en todellakaan tiedä, mitä luokat sinun pitäisi tehdä. Minusta se on kaikki todella mielenkiintoinen, ja kehotan teitä, varmasti, että lisätietoja jos olet kiinnostunut. OK, Minulla on vielä yksi asia. Anteeksi. Kaikki kysymykset? En pysähdy odottamaan, jos joku oli kysyttävää siitä. Onko kukaan olemaan CS keskitin? Tai ajatellut sitä? Yksi, kaksi, kolme, neljä. Yksi - vain yksi. Annan on ainoa käsi, joka on esille arvovaltaisesti. OK, ei se mitään. Assam, mitä aiot tehdä? Yleisö: [kuultavissa]. SPEAKER: Constantine? Yleisö: Physics. SPEAKER: Vau, se oli nopea. Sinulla oli huonoja kokemuksia CS50? [Äänetön], mitä aiot tehdä? Yleisö: Minulla ei ole aavistustakaan. SPEAKER: Curt? Yleisö: Econ tai CS. SPEAKER: Econ tai CS. Tom? Yleisö: Teen Stat. SPEAKER: Stat? OK. Mikä sinä olet? Yleisö: Me? SPEAKER: Joo. Yleisö: Stat. SPEAKER: Stat. Voi, siellä mennään. Tom, puhua Alden. Emily, mitä olet? Yleisö: Biomedical - SPEAKER: Oletko tässä osiossa? Yleisö: Ei. SPEAKER: OK, se on Emily. Hän on ystäväni. Selvästikään ole niin hyvä ystävä, koska hän antaa minulle vaikea. Voisit olla mukavampaa minulle edessä kaikille, oppilaani - Yleisö: Teen Q opas. SPEAKER: Todellako? Uh oh. OK, olet uskomaton. Rakastan sinua niin paljon. Oh boy. Joka tapauksessa olen, viime yönä, kuten kaikki - Olen varma, että kaikki tuntuu todella korosti juuri nyt. En tiedä, ovat fuksi - ovat te tunne korosti? En tunne korosti. Se oli kuin, menet kotiin kiitollisena. Olet kuin, aion tehdä kaikki nämä asiat. Yleisö: Se on niin erilaista. SPEAKER: Joo, ja tulet takaisin. Jeff, et tuntuu siltä? Yleisö: Ajattelin vain Tekisin vähän. SPEAKER: OK, hyvä. Joten tulen takaisin, enkä ole tehnyt mitään. Ja kaikki erittäin stressaavaa. Ja olen huolestunut, aidosti huolissaan, siitä tai ei Olen menee kaiken valmiiksi minun täytyy. Mutta viime yönä, en ollut stressaantunut, Olin vain hieman surullinen. Niinpä kirjoitin päiväkirjaani noin mitä olin surullinen. Ja olin surullinen tästä osiosta tässä luokassa päättymässä. Joten olin juuri menossa lukea teille pieni pätkä päiväkirjaani, viime yönä. Saisinko lautasliinat, nenäliinoja Tom? Ei, aion itkeä. En itke. Ei siksi, että et voi itkeä, En vain itkeä. En edes tiedä, onko minun kyynel rauhaset toimi - kyynelkanavansa. En ole itkenyt pitkään aikaan. Yleisö: [kuultavissa]. SPEAKER: OK, kiitos. OK, siellä on vähän esipuhe - siellä on joissakin muissa osissa päiväkirjaani merkintä, koska yritän lehden jokaisessa iltana sain nukkumaan. Suosittelen kirjaaminen. Se auttaa käsittelemään asioita, ja myös olla hyvin kiitollisia teidän päivä. Ja se tekee siitä paljon helpompi etsiä selkääsi päivä ja ymmärtää, että siellä oli paljon hyviä asioita, joita tapahtui. Vaikka sinusta tuntuu todella stressaantunut yöllä tai todella järkyttynyt, tai todella surullinen tai väsynyt. Voi luoja. En edes tiedä, jos se on kirjoitettu, että hyvin, koska en oikolukea sitä. Mutta me lukea sitä. En yleensä lue minun lehdessä, ilmeisesti. "Huomenna, minä opetan viimeinen CS50 osa vuoden. Se on hullua kuinka nopeasti aika rientää. Silti olen yllättynyt, kuinka eri Kokemukseni opetus oli tänä vuonna kuin silloin, kun olin toisen vuoden opiskelija. Ensinnäkin, olen ehdottomasti tietää materiaalia paremmin. Mutta älä kerro minun ensimmäinen kohortti opiskelijoita, jotka. Tärkeintä on kuitenkin, tajusin että ilosta, jota pysyvän ylös edessä huone, mitä lähtee vieraina, mutta päätyy kello ainakin, Facebook-kavereita, on ei ensimmäisen vuoden onnenpotku. Pikemminkin se saa tietää, että joissakin pienissä tavalla, autat lahjakas, huomaavainen, ihana, ja intohimoisia ihmisiä oppia hieman lisää noin tietotekniikassa. Olet siirtymässä että lamppu vain vähän sen pistorasiaan, niin että se on pystynyt loistaa kirkkaampana kuin sinä, tai ne, olisi voinut kuvitella klo lukukauden alussa. Autat muuttaa näitä frowns ylösalaisin alas ja kyselemällä, että tukea, mutta silti sallia opiskelijat seisomaan omilla. Se ei todellakaan ole liioiteltua sanoa, että tämä jakso on suosikkini osan viikosta. Tai edes, että olen epäröi sanoa, että se kaikki kello 17:30 viikoittain, tietäen että se tulee olemaan aivan liian kauan kunnes jälleen kohtaamme. Silti olen uskomattoman kiitollinen jokainen, joka on antanut minulle tämän tilaisuus antaa takaisin muille. David, hänen kärsivällisyyttä ja luottamusta. Elokuva-ja tuotantoryhmän varten minut näyttämään hieman kunnioitettavia. Ja, mikä tärkeintä, minun opiskelijoita, joita ilman olisin mitään syytä viettää 10 tuntia mietitään paras tapa kiinnittää osoittimia tai lay out taulukko delfiinejä, JavaScriptin kautta. Kuten aina, se on ollut siunaus. " Niin, että, kiitos kaverit. Nähdään kaikki CS50 oikeudenmukainen, ja hackathon, jos olet siellä. Ja jos sinulla on kysyttävää, minä kiinni ympäriinsä, kunnes ei enää ole. Mutta kiitän teitä varten ihana vuosi. [APPLAUSE] SPEAKER: voisin itkeä.