Ettekandja: OK, nii, et sa ei suuda seda uskuda, Kuid eelmisel nädalal, esmaspäeval, Pierce, I oli alla keldrisse. Ma ei lähe kunagi Pierce. Ja ma ei saa kunagi tagasi, sest Ma jätsin oma asjad üksi, nagu viis minutit ja keegi varastas mu arvuti ja minu telefon mu seljakott. Mis tähendab, et ma sain selle tagasi, ja siis vähemalt nädal hiljem see varastati taas. Ja siis ta sai sisse lülitatud - Leia My iPhone jätkub olema hea. Nii et ma jätkuvalt julgustama te ei kasuta seda. Selgus üks kord ja see oli MIT nagu 15 minutit hiljem ja isiku nimetatakse seda telefoni number, mis näitas, up minu AT & T kõne samamoodi. Nii et ma läksin online, nimetatakse, et telefon number, ja see läks otse selle automaatvastaja Hispaania. Ja ma ei ole kuulnud seda, sest. Nii et ma pidin uue arvuti ja telefon. Ma tean. Jah. Aga kui te tahate kiip minu arvuti fondi pärast seda, sellepärast Ma palusin sind siia. Lihtsalt nalja. Aga see oli tõesti kurb ja traumeeriv. Aga see kõik on nüüd tagasi, ja see oli põhjus, miks p-set 8 võttis nii kaua aega, sest Ma ei ole arvutit. Ja keegi varastas selle. Ja ma saatsin, küsitakse, kas nad oleks hinne oma p-set 8. Aga nad ütlesid ei. Ja ma olin nagu, kas ma saaksin minu arvuti tagasi? Ja nad on nagu, ei. Lihtsalt nalja. OK. See on meie viimane lõik, ja mul paar - meil on ainult kolm asjad päevakorras. Me räägime veidi umbes Q guide. Siis lähed kulutada 15 minutit jahtuda demo. Siis me kõik öelda hüvasti üksteisega. Sa tõesti ei pea oma arvuteid või pliiatsi ja paberi teha märkmeid või jälgida mööda. Nii et ma oletada, kui teil on arvuti üles, siis oled Facebookis. Lihtsalt öeldes. Kui sa oled täites Q juhend, mis on esimene. Q juhend on avatud. Olete olnud talle midagi. Kui kõik Q kraami esitada aasta lõpuks, ma saan kõik Q kommentaaride skoori kõik kes valib mulle tagasisidet. Ja kui te lähete Q - Ma ei tea, kas sa suudad seda, Jeff, sest sa oled ja laiendamine õpilane. Aga kui te lähete Q, kui sa ei ole seda varem teinud, siis vali Õpetaja, kes on David Malan. Sa pead tegema teda. Ja siis saab valida TF. Ja saab valida nii palju TF, kui soovite. Aga seal on 60 meist. Sa ei pea valima kõigile. Sa võid mulle järgi, või lihtsalt valida Paar teisi inimesi, kui soovite, et anda neile tagasisidet samuti. Ja siis saad hinded kõik need erinevate suundade ja siis võid jätta neile tagasisidet. Ja seejärel, nagu kuu hiljem Ma saan kõik, et tagasiside. Ja just nagu tagasisidet olete olnud annab mulle kogu semestri, I Loe kõike seda. Ja see on tõesti kasulik ja see aitab mul kasvab õpetaja ja individuaalne. Niisiis, palun võtta aega, et seda teha. Me ainult kavatse olla siin nagu, näiteks 30 minutit. Nii et kui sa tahad, lõpus see, et võtab viis minutit, ja siis täitke Q, sest see ei võta enam aega kui. See oleks suurepärane, ja sa ka saada oma klassi tagasi kiiremini kui täidad Q. Nii et enamik teist on seda teinud enne - või ei, umbes pooled teist seda teinud enne. Aga kui sa oled rebane, see on, mis see on. See saab olema sama kõigile klassidele. Tee seda. See võtab viis minutit. Aga ka, kui sa seda veidi tõsiselt, see ei ole kõige hullem, maailmas, sest ma kindlasti võta seda tõsiselt. Nii et kui sa ei jäta mulle naerusuu Ma hindan seda. Aga ma oleks ka tänulik, kui te jättis mind üle naerusuu. Aga see on sinust. Ma ei saa teile öelda - või nagu suur smiley nägu, koos pealinna D. See oleks olla isegi parem. OK, see on kõik, mul on Q. Kui on küsimusi, võite küsida mind, kuid üsna selgituseta. Lihtsalt, palun, täitke see läbi. Ma tõesti hindan seda, ja see tähendab mulle palju. OK, see on see, mida me ei kavatse kulutada 15 minuti läbimas. Ma näitan sulle mõned koodi. Ma arvan, et see on väga lahe, ja see sai mulle rohkem põnevil arvutiteaduses. Nii et ma loodan, et ta teeb sama teile kõigile. Me avada - ja kõik see kood Ma saadan sulle hiljem. Aga me lihtsalt avada - Ma olen oma terminal - me avada seda programmi nimetatakse [? MySum. ?] Kas igaüks lugeda, et või ma selle suuremaks? Kas keegi oskab mulle öelda, mida see kood mida teha, kui ma saan seda või mida see Programm teha, kui ma saan seda? [? Avi,?] Mis sa arvad ta tegema hakkab? Finish närimine. Te ei tohi rääkida oma suu lahti. Publik: Kas see võtab kamp argumente leida summa neile naasmist summa, ja siis välja printida? Või see võtab kaks argumenti, ja siis see [kuuldamatu]. Ja siis ta trükib välja mida iganes Tulemused. Ettekandja: Close, tõesti lähedal. Kas keegi tahab lisada [? mida Avi?] ütles? Kas teil on vaja anda seda programmi iga käsurea argumendid? Publik: Ei. SPEAKER: Ei Mis juhtub, kui sa ei anna see iga käsurea argumendid? Ma lihtsalt kirjutan dot kaldkriipsuga MySum. Publik: 1 pluss 2 võrdub 3. Ettekandja: 1 pluss 2 võrdub 3. Ja see saab printida selle välja. See on täpselt õige. Sa näed, et print f line allosas. Seda saad välja printida, b, ja Seejärel summa ja b. Ja ma arvan, et sa eeldada, et summa toimib. Hea oletus. OK, mis siis juhtub, kui ma anna see mida argument? [? Manu? ?] Publik: See saab lisada mida iganes Esimene argument on b. Või 2, vabandust. Ettekandja: Right, et 2. Kas keegi teab, mida strtol teeb? See on põhimõtteliselt atoi. Atoi on tegelikult väljamõeldud versiooni - või lihtsama versiooni strtol. Aga tegelikult kasutab strtol. Ja ma leidsin selle, sest ma tahtsin midagi atoi, ja siis, kui ma ei atoi Lugesin siin. Ja ma leidsin "Selline käitumine on sama nagu "strtol. Nii et see on põhimõtteliselt atoi eest kõik kavatsused ja eesmärkidel. Ja näed ma isegi kasutada null ja 10. See tegelikult võimaldab teil võtta string, ja muuta see number ja valige Mis alus sa tahad seda sisse Nii et see on alus 10 siin. Ma oleks võinud teha baasi kaks koma, base 16 Heksadesimaaliarvon. See on päris lahe. Aga pikk lugu lühike, see võtab kaks numbrid ja lisab need kokku. Teeme käivitada. Ja võite ka teate, et on mõned asjad - nii et mul on Makefile siin, ja kui sa selle lahti, mõned asjad märkad on erinevad. Eriti puudutab see argument siin, siis ilmselt ei ole näinud, et enne. Üldiselt oleme kompileerida asjad kriips null, null. Dash null, null, mis ei tee iga optimeerimine, tõlkija. Ärge proovige ja teha midagi väljamõeldud, või teha midagi joosta kiiremini või saada lahti muutujad, mis on vajalik. Ärge optimeerida seda koodi üldse, Ma küsin kolmanda taseme optimeerimine. Nii et ma olen palunud koostaja teha palju optimeerimisest. Teil on võimalik muuta, et Makefile kui sul on see kood, kui soovite näha erinevaid asju. Milline näitame teine. Nii võtame minu summa 1 pluss 2 pluss 3. Keegi mulle kaks argumenti. Publik: 4 ja 5. Ettekandja: 4 ja 5. Aitäh. Hea, et see töötab. Millised on mõned muud head argumendid proovida, et veenduda, et see töötab? Keegi? Publik: 0. Ettekandja: 0? Publik: Negatiivne 3. Ettekandja: see toimib. Aga need olid head valikud. OK, nii et lähme tagasi siia. See on mysum.c. Märkad, seal on ka midagi nimetatakse sumfunction.c. Ja see ütleb, oh, pole midagi määratletud sumfunction.c. Ma ei sisalda see fail siin sest ma ei pea. Aga ma siduda seda kui ma kompileerida, mis sa märganud. Olgem liikuge üles. Me nägime, kui koostasime mysum, õigus seal on meil seotud binaarne alates sumfunction.o. Ja ma ei pea Failipäises sest muidugi, seal on funktsiooni deklaratsiooni. Nii terav sisaldavad tavaliselt lihtsalt paneb aastal funktsiooni deklaratsiooni. Siin ma olen lihtsalt pane see otse koodi. Ja nii ma pean tegema, on link binaarne, mis ma teen. Kõik oletused, mida on aastal sumfunction.c? Mis koodi ma olen kirjutanud aastal sumfunction.c? Publik: [kuuldamatu]. SPEAKER: Kõik oletused? Jah? Publik: Ma arvan, määratleb mõned [kuuldamatu]. Ettekandja: Jah. Nii et ma ei kirjuta int summa int. Ma kirjutan seda joont, ja siis mul on avatud lokkis traksidega, suletud lokkis traksidega. Mis sa arvad, et ma kirjutan sees need lokkis traksid, sees, et funktsioon? Jah? Publik: Tagasi võrdne. PROTSESSOR: See on tõesti hea oletus. Kes arvab, [? Manu?] On õige? Ta ütleb, tagasi pluss b. OK, mitte kõik. [? Akshar,?] sina ka? Oled sa kindel? OK. Mida? Publik: Sa kirjutatud valesti. Ettekandja: Ei, ma ei teinud seda. Jah, lihtsalt nalja. Sul on õigus. See on täpselt, mida ta ütleb. See on tagasi pluss b. See teeb palju mõistust. OK, lähme tagasi. Me näeme, kuidas päises - see tagasipöördumine tüüp. Pea meeles, et me oleme näinud, et päevast, tagasi tüüpi funktsiooni, kuid läheb Enne nime int funktsiooni. Siin ma olen kirjutanud int. Mis te arvate, mis juhtub siis, kui selles funktsioon, ma ei kirjuta int, kuid Ma kirjutan allkirjastamata? Erinevus muidugi on see, et allkirjastamata esindab ainult positiivne täisarvud ja int saab positiivne või negatiivne. Nii et ma olen muutunud tagasipöördumist tüüp seda funktsiooni. See kood ei sobi see tagasipöördumine kirjuta siia. Mis te arvate, mis juhtub kui ma kompileerida? Sa peaksid minu peale karjuda. No karjuma. Aga kui ma saan programmi? Teeme enne 0 negatiivne 3 või negatiivne 1. See töötab, kuigi ma räägin ta naasis allkirjastamata täisarv. On selge, et see ei tule allkirjastamata täisarv. Ta naasis allkirjastatud täisarv. Ta naasis negatiivne 1. OK, see on imelik. Aga kui ma lähen sisse siin ja ei tee seda? Nii et ma olen muutunud kõik alates int et signeerimata. See on võimalik vaid siis allkirjastamata täisarvud. Aga kas me ikka arvan, et see kestab? Publik: Jah. Ettekandja: ta. See on hullumeelne. Ja võtame selgelt määratud täisarv, saame läbida kaks allkirjastatud täisarv, see ikka töötab. OK, mis tahes ideid, miks see ikka töötab, või mis toimub? Jah, Jeff. Publik: See on midagi pistmist Teie optimeerimine, et sa esile. SPEAKER: Ei Me võiksime muuta optimeerimine, see ikkagi tööle. Ma võin seda teile, kuid - Publik: Ma viin oma sõna. Ettekandja: Jah. Kui avate Makefile siin, Muutsin optimeerimine. Niisiis, mida saate teha kriips null, null. See on siiski töö. Muud mõtted? Te kõik peab töötama nii, Miks sa loota, et see toimib? Ei? Silence. OK. Ma pean ootama seitse sekundit, sest ma küsisin küsimuse. Nii lahe asi C ja olete ilmselt varem kogenud - sa ei pruugi olla, võib see olla esmakordselt. Aga nagu te kõik teate, kui ma kirjutan midagi C, see ei päästa, nagu seda arvuti. See salvestatakse ühtesid ja nulle. See läheb C koodi koost koodi. Kas keegi on näinud montaaž kood enne, masin koost koodi? Me vaatame ka teine. See läheb C koodi koost koodi. Ja te teate, etapid koostamise. Sa pidid meelde, et viktoriini üks, ja siis kirjutada see läbi viktoriin null. Enamik inimesi sai valesti aru. Ma arvan, et te naelutatud ta. Aga te olete parimad jagu jaoks viktoriinid, muide. Mis on fantastiline. See ei tee sulle haiget. Ära ole mures. Aga see on väga lahe. Hea töö. Nii see läheb Assembly, ja siis läheb see ühtede ja nullidega. Ja need, ja nullidega salvestatakse arvuti, ja see on see, mis on salvestatud a.out, või antud juhul, käivitatava faili. Ja arvuti töötab ühtede ja nullidega. Eks ole? Me oleme õppinud seda enne. Nii lahe asi on, selle allkirjastamata mõte, idee tüüpi ints allkirjastamata jne, jne, mis on siin on C keeles. Need on olemas. Aga liigid ei eksisteeri ühtede ja nullidega. Tüübid isegi ei tõesti olemas Assembly tasandil. Nii et midagi, mis on olemas C maailmas, kuid ei eksisteeri arvuti maailmas või töötleja maailmas. See on mingi abstraktsioon, et C keel on lisatud, et meie elu lihtsamaks. Nii et lõpuks, ma ei kirjuta palju erinevaid asju siin, ja see ei tee vahet. Sest et on olemas ainult aastal C maailmas. See ei eksisteeri ühtede ja nullidega maailmas. Ja meie programmi täidesaatva ühtede ja nullidega maailmas. Nii oma vaimusilmas selgelt ei puhutud veel. Aga ma arvan, et see on lahe. Jah, Jeff. Publik: Niisiis, kui selle asemel, et teeme int, sa char. Ja sa olid - Ettekandja: Teeme seda sec. Publik: Sest siis saad allkirjastamata läheb negatiivne 128 127 või 0-255. Ettekandja: Nii char on problemaatiline. Kas keegi teab, miks char oleks problemaatiline, ja see ei ole tegelikult asju muuta need ja nullidega maailmas? Publik: Kuna suurus char. Ettekandja: Size of char on 1. Nii allkirjastamata on 4 baiti. Nii char keeraks asju. Aga milline on 4 baiti, mis on seotud paalia? Või mis lisab veel ühe - võid panna veel üks märk pärast char. Publik: Char star. Ettekandja: Char täht on 4 baiti. Teeme midagi see char star. Nii et see oleks ilmselt tööd, kuid me oleme teeme midagi isegi hullem kui see. Minu arvates on segasem. Olen nüüd kirjutatud funktsioon, mis tagastab pointer, ja see võtab pointer ja unsigned väärtus - me muuta see tagasi int nii, et me ei teeks liiga palju muudatusi korraga. Ja see on massiiv nimega, indeksid arvesse array, ja naaseb aadress. Me oleme näinud need ettevõtjad enne. See, mis sa arvad, et see saab teha, vastutasuks kui ma saan seda? Mis sa arvad, et see saab teha? Kõik oletused? Publik: Segfault. Ettekandja: Mis on? Segfault? See on hea oletus. Tom ütleb sama asja. Muid oletused? Kes arvab, et see saab teha sama asi? Kes arvab, et see läheb segfault? See teeb sama asja. Vabandust. Aga muidugi, me paneme 1 ja 2. Ja need on nii kehtiv, eks? Vaatame, saame minna Teine koht massiivi. Aga mis siis, kui me teinud b negatiivne arv? See on ilmselt parem vist midagi segfaulting. See ikka töötab. OK, see on nüüd hull. See on võrdselt kehtiv summa funktsioon. See teeb täpselt sama asi tagasivoolu ja b. Kas keegi oskab selgitada, miks see on hea Kokkuvõttes funktsioon, või miks see töötab? Mis siin toimub? Miks see teeb täpselt sama asi nagu meie vana summa funktsioon? [? Akshar,?] mis toimub? Publik: Sest kui sul on see aadress asukoha mälu - ja kui sa ampersand, siis läheb, et mälu aadressi. Ja kui te lähete B sa oled omamoodi liigub sammu kaugusel, et mälu aadressi, naasete seda. Nii et sa oled tegelikult, tegelikult lisades A ja B [kuuldamatu]. Kus toimingutega selle vastutasuks? Like, kui ei sulgudes langevad? Kas tagasipöördumise aadressi enne või pärast [kuuldamatu]? Ettekandja: See saab indeks b - või indeks - ja siis tagasi aadress. OK, nii ei igaüks aru mida [? Akshar?] ütles, ja selgitas, miks see töötab? Ma ei ole, esimene kord, kui keegi seda mulle selgitas. Kas keegi meeldib pilt seda seletada? Me joonistada pilt, millel ei markerid, mis on suurepärane. Leitud mõned. Nii et meil on massiiv, mis on seeria kastid. Esimene neist on indeks 0, indeks 1, 2, 3, 4, dot, dot, dot. Tüüpiline massiivi. Ja lisaks, mille indeksid, neil kõigil on mälu aadresse. Nii anname seda mälu aadress 13, 14, 15, 16, 17, jne. Kõik on siin nii palju. Nii on aadress. Nimi massiivi osuti salvestatakse sinna. See on pointer, see mälukohta Lisa algust massiivi. Nii et kui see oli massiiv, oleks väärtus 13. Ja muidugi, me ei saa anda mingit väärtust tahame. Char täht, saame anda mistahes mälu aadress tahame. Me ei saa anda see 0, saame anda sellele negatiivne 1 - negatiivne 1 ei ole olemas, nii et ilmselt problemaatiline, kuid nägid, et see ikka töötas. Nii et me ei saa anda mingeid number tahame, iga mälu aadress tahame. Siis, int b ütleb, OK, mine selle number ning astub massiiv. Nii et kui b on võrdne 2 ja võrdub 13, me oleme mälu aadress 13. Ja me läheme kahe samme, ja nii me siin oleme. Ja ampersand tähendab tagasipöördumist aadress on seotud selle asukoha. Ja aadress on muidugi 15. Nii saame 13 pluss 2, või pluss b, mis on 15. Küsimus on, kuigi - Vabandust. Kas see selgitada asju miks see töötab? Publik: Miks see töö läheb - , siis võite olla massiivi ja minna negatiivne indeks? Ettekandja: Õigus. Nii tegime negatiivsed arvud, nii see on - see loogiline küll, esimene, [? Avi,?] sa oled? Publik: Jah, ma olen lihtsalt [Kuuldamatu], aga - Ettekandja: Jah, see tuleb tagasi 15. Kui oli 13, ja b oli 2, see tagasi 15. Publik: Nii null indekseerimine ei saada probleem, eks? Kuna olete liigub 0. Ettekandja: Õigus. Nii et sa kolid - nii et kui b oli 0, sa ei liigu kuhugi. Ja sa just tagasi aadress - kui b oli 0, mis on sisuliselt naasmist, et aadress. Sööte char star ja tagastamisega aadress on lihtsalt tagastamise, sisuliselt. OK, küsimus on miks negatiivsed arvud toimib? Ja see on tõesti lahe asi seda, sest see peaks segfault. Ja see oleks segfault kui me tegin midagi sellist. Oletame, int. Nii et see kood näeb välja samasugune ja peaks käituma samamoodi. Sisuliselt x on prügi muutuja, ja nii see peaks käituma samamoodi. Teeme seda - oops - täht. OK, me oleme juba saada vigu siin, sest see on juba saab olema vihane mind, sest see on juba teab, mis on tulemas. Eriti teine. Aadress laotud mälu seotud koos kohalike muutuja. Sisuliselt ma ei kavatse koostada seda, ja siis ma lähen undo teha mida me tegime. Aga sellepärast, et me pole kunagi tegelikult juurdepääsu mis on mälu asukoht, see ei kavatse segfault. Me ei ole kunagi tegelikult vaadata, mida on Teises kastis või mis tahes box Selle massiivi. Me ainult öelda, et siin on aadress asja, mida me otsime ja tagasi, et aadress. Me ei ole tegelikult kunagi laskumist array otsida selles kohas. Ja kuna me ei puutu mälu me ei saa hätta. Me ei saa segfault. Kui üritasime jälle puutu mälu, puudutage mis oli või b - või sulg b, ja eeldades, oli 0 ja - kui oli 0, isegi, et oleks päris halb, sest me ei saa minna alla kõik viis seal. Kui ja b mõlemad 0 ning püüdsime touch, mis oli seal, siis me pahandusi. Aga kui me ei puutu, mis seal on, me lihtsalt tagasi aadress, see on tegelikult ei kavatse segfault sest see võimaldab teil sooritada neid toiminguid. See ainult saab vihane ja saab super vihane, kui sa püüad ja puudutage tegelik mälu ja tagasi mis sel mälukohta. Kas see on mõtet? See on lihtsalt hull osa C. Seega meil veel üks neist. Kes arvab, et see on lahe? Üha rohkem inimesi. See on hea. OK, see on meie viimane. Ja ma tahaksin teile öelda, kas või sa ei arva, et see saab teha täpselt sama asi. Olen neid kuhugi kirja pandud. Ma ei meelde neid. Vaatame, 8, b 4, 4, 2, 4, 0, 8, 0, 3, 4, 4, 2, 4, 0, 4. Nii et see on massiiv, nüüd, mitte funktsioon. Ja see on massiiv, sest meil on kandiline sulgudes, mitte lokkis traksid. Ja see on massiiv, millist tüüpi? Igaüks, hmm? Publik: Nende kuuteistkümnendnumbriga? Ettekandja: Aga mis on C tüüpi? Neil kõigil on kuuteistkümnendnumbriga. Mis on C tüüpi? Ta ütleb teile. Publik: See on allkirjastamata tähemärki. Ettekandja: Right, unsigned tähemärki. Ja kaks kuuteistkümnendnumbriga on üks bait. Nii et need on 1, 2, 3, 4, 5, 6, 7, 8, 9 baiti. See on rida 9 baiti. OK, siis ilmselt juba teavad Vastus sellele küsimusele. Aga mis te arvate, mis juhtuda, kui ma saan seda? Ma ütlen veel kord, et mysum.c, Ma ootan funktsioon , mis võtab kaks täisarvu. Ja ma vaid öelda, et summa on array tähemärki. Mis juhtub siis, kui Ma saan. / Mysum ja teha? Noh, esiteks on enamik te ilmselt nõus, et mark - oh ei, lihtsalt nalja. Mida ma tegin valesti? Uh oh. See peaks olema lokkis traksid. See, kuidas sa initsialiseerida massiiv. Minu viga. Nii nägime juba enne seda tüüpi on C-tase võtmiseks, ei Arvuti tase võtmiseks. Nii et enamik teist ilmselt oodata seda teha, või eeldusel, et ta teeks. Aga mis siis, kui ma saan. / Mysum? Mis juhtub? Kõik oletused? Publik: See saab trükkida sõna. Ettekandja: See saab trükkida sõna. Mis sõna? Publik: [kuuldamatu]. SPEAKER: Muud oletused? OK, printida välja fraas. Sul võib olla lause. See on sinu poolel. Igaüks, kes on teistsugune arvamus? Anna, mis on teie arvamus? Publik: See saab välja trükkida - kaks tähte, või [kuuldamatu] ühe kirja. Ettekandja: ühe kirja. Publik: Kas ma saan loota, kui palju [kuuldamatu]? Ettekandja: Üheksa. Noh, ma lähen, et kasutada seda. Ta teeb täpselt sama asja. Ta lisab kaks numbrit kokku. Noh, lähme edasi kahe argumendiga. See ei võta argumenti. Nii et ma ei tea, kus see võiks võimaluse saada need argumendid. Kuid olgem läbida 100 ja 0. Ja ta lisab 100 ja 0. See on hullumeelsus. Ma arvan küll. Negatiivne 4, mis töötab ka. Seda saab teha kõike, mida sa tahad. See on võrdselt kehtiv summa funktsioon. See on summa funktsioon. Aga ei, sa ütlesid et see on baidimassiiv. Mis siis siin toimub? Niisiis, jälle, lähme tagasi selle idee et me ütlesime alguses. Lähed C-taseme kood, kokkupanek keelt, et ühtede ja nullidega. See on kuueteistkümnendsüsteemis. Aga see on tõesti ainult palju ühtesid ja nulle. See on 72 ühtesid ja nulle, eks? 72 ühtede ja nullidega. 9 baiti. Iga bait on 8 bitti. Iga bitt on üks või null. Nii 72 ones või nullidega. Ma olen lihtsalt kirjutanud neile meeldib see - mitte kirjutamist läbi palju ühtede ja nullidega. Aga see läheb alates C-tase keel, kokkupanek keele koodi. Ja see prinditakse välja kood, kuskil need 72 ühtede ja nullide et ma olen kirjutanud siin. Niisiis kusagil et - lähme siit - kusagil mysum programm, seal need 72 ühtesid ja nulle, et ma olen kirjutanud ja rääkinud seda kirjutada. Nüüd iga oletused, mida need 72 ühtede ja nullidega tähendab? Publik: Tõenäoliselt sama asi nagu tagasi pluss b. Ettekandja: Tõenäoliselt sama asi nagu tagasi pluss b. Olgem kontrollida seda. Lähme välja mõtlema, kuidas ma tegin seda. Nii et kui te lähete tagasi, ma ütlen teile, käivitada käsk objdump-S sumfunction.o. Lähme käivitada. objdump - obj, prügila. Põhimõtteliselt ta ei anna mulle mida ma tahan näha. See ei anna mulle Assembly. See ei anna mulle need ja nullidega. See on ton lippe. See on üks me kasutada kohe. Dot - nagu näete slaidid - kriips kapitali S ütleb Lomittaa, lähtekoodi - see liin on pärit C - koost kood ja ühtede ja nullidega. Ja me ei kavatse joosta see sumfunction.o. Sest see saab olema lihtsam näha. Uuesti - Hmm? Publik: Sa kirjutatud valesti. Ettekandja: Aga ma tegelikult toimub selge see teine. Ma kõigepealt läheb avama lihtsalt sumfuntion.o. Publik: Sa kirjutatud see vale esmakordselt. Ettekandja: Classic. Summa - mis on kõva sõna, kuigi. Sa oleks üllatunud. OK, nii et see on sumfunction.o. Ma ei saanud isegi öelda. Seal on palju nulle, selgelt palju nulle, ja seal on mõned muud asju, mis ei nullita. Aga enamasti nullidega. Paistab, et on mingi ones. Nii selgelt, et seda on raske lugeda. See on binaarne keeles. Olgem nüüd avada - mida? Mida ma teen valesti? Kas ma kirjutada seda õigesti? OK, see on ebamugav. Mul on vaja üks teine ​​aru välja, mida ma teen valesti. See on üks viga. See on imelik. Oh, sellepärast. Ma lähen tagasi oma esialgse üks, et me saaksime vaadata objekti kood selle. Sest seal ei ole tõesti olla midagi, kui me lihtsalt panna ühtede ja nullidega sisse Niimoodi. OK, nii et igaüks võib seda näha. See funktsioon, nagu ma ütlesin, välja pandud C sarjad - lähtekoodi read - mõned paigaldusjuhendid. Siin on meie lähtekoodi rida. Siin on üks, siin on teine. Siin on koost juhendamine. Nii nad välja näevad. Monteerimisjuhised - saate teada rohkem neist, kui te võtate muu CS klassidesse, kuid nad üldiselt juhendamine. Ja siis allika ja sihtkoha. Ja siis siin on kahendkoodi mis vastab kokkupanek juhendamine. Nii et nagu näete, see summa funktsioon, lõpus päevas, kolm paigaldusjuhendid. Ainult kolm. Üks mov - Selle m-o-v tähistab Move. Lisa tähistab Add. Ja r-e-t tähistab Return. Nii et üks mov, üks add, üks tagasi. Ja need, siia on nullid ja need, mis vastavad selle koodi. Nii need nullid ja need, kui te tunnen neid, saate lihtsalt panna need kohe sisse Ja siis teen täpselt sama asi. Sest lõpus päev, kõik sa täidesaatva on pikk rida nullidega ja ones. Ja see, mida teie kood on tõesti. Ja põhjus - Vaatame ühte asja. Kas mul on Makefile avatud? Nii et kui me läksime tagasi kriips null, null siin - sorry, kapitali o, kapitali o null, mitte null, null. Ja me ei tee, oleks töötavad endiselt sama. Aga nüüd te teate, et seal on palju paigaldusjuhendid. Ongi, sest jällegi, ma küsisin kompilaatoritele mitte teha mingeid optimeerimise. Nii et ma võiks ikka kõiki neid nullidega ja need, ja visata neid, ja et oleks tööd. Tegin optimeerimine, sest see on natuke lihtsam siis, kirjutada, et massiivi. Aga see on sama hästi. OK, me teeme ühe viimase asja, sest minu arvates on kõige lahedam osa. Kuigi kõik on selgelt juba puhutud ja sõnatu. Meie meeled on läbi põlenud. [Kuuldamatu] Niisiis, need on pärit erinevatest CS klassi mis on super huvitav, et olen võtnud - CS61. Ma väga soovitame teil võtta seda. Aga lahe asi see tegelikult, et asjad on lihtsalt nullide ja need, on, et kõik on nullidega ja ones. Nii saate faili, millel on õige nullidega ja need, mida soovite kusagil, ja kasutada seda osa nullidega ja need summana funktsioon. Mida ma sellega mõtlen? Ma mõtlen võite võtta pildifaili on õige rea nullide ja need, et printida midagi välja pilt. Ja üks programm võib tõlgendada on pilt, kuid võite seda tõlgendada kui sa tahad, kui summa funktsioon. Nii et kui me tahame, et avada, sest Näiteks see pilt. Lähme, Hello Kitty. Imeline väike pilt. Siin on see string nullide ja need. Need 72 nullidega ja need olemas see pilt. Niisiis, mida ma teha saan, siis on kirjutada - Mul on meeles pidada, kus nad on. Ma leian, et teine. Aga me teeme - andke mulle teada, kus nad on. Üks sek. Teeme - Publik: [kuuldamatu]. Ettekandja: Aitäh. Nii et kui me käivitada see programm, mille asemel loeb faili, siis läheb Selle indeksi faili. Ja siis jälle, just nagu mysum, võtab kaks arvu. Võime lisada numbreid täpselt sama me tegime enne, mis läheb näitame teile, kuidas asjaolu, et aasta lõpus päev, kõik need asjad on nullidega ja ones. Ja see, kuidas sa valida neid tõlgendada. Ja kui vaadata selles pilti - olgem suurendada natuke. Kas kõik võivad seda näha? Märkad siin, seal mingi imelik plekk. Lähme - see on originaal pilt. Märkad siin pole plekk. See on kood summa funktsioon, on see, et väike plekk seal. Ja tegelikult, samas, kui sa rohkem teada sellest, siis saad aru, et see Hello Kitty, mis on isegi suurem plekk, on kood, mis on võimalik üle võtta arvuti, kui see ei ole kaitstud asjakohaselt. Nii saab tegelikult teha selle. Ma ei kavatse kasutada seda just nüüd. Aga sa võid kasutada seda Tere Kitty pilt ja see võib võtta üle arvuti. Nii et see kõik demo. Kas kellelgi on küsimusi, kommentaarid, mured? Ma arvan, et see kraam on paeluv. See inspireeris mind rohkem teada saada. Ma väga soovitada, kui oled huvitatud üldse CS, räägi minuga. Kuigi ma olen Ühiskonnaõpetus Koondaja, ma olen CS-, kesk-, nii Ma ikka tean natuke. Aga ma kindlasti tean, mida klasside peate võtma. Ma arvan, et see kõik on väga huvitav, ja ma kutsun teid kindlasti, et aastad, kui olete huvitatud. OK, mul on üks viimane asi. Vabandust. Kas on küsimusi? Ma ei peatanud ootama, kui keegi oli küsimusi selle kohta. Kas keegi läheb CS koondaja? Või mõtled seda? Üks, kaks, kolm, neli. One - ainult üks. Anna on ainult käsi, mis on tõstatatud autoriteetselt. OK, see on lahe. Assam, mida sa kavatsed teha? Publik: [kuuldamatu]. Ettekandja: Constantine? Publik: Physics. Ettekandja: Vau, see oli kiire. Sul oli halb kogemus CS50? [Kuuldamatu], mida sa kavatsed teha? Publik: Mul pole õrna aimugi. Ettekandja: Curt? Publik: Econ või CS. Ettekandja: Econ või CS. Tom? Publik: teen Stat. Ettekandja: Stat? OK. Mis sa oled? Publik: Me? Ettekandja: Jah. Publik: Stat. Ettekandja: Stat. Oh, ole lahke. Tom, räägi Alden. Emily, mida sa oled? Publik: biomeditsiinitehnika - Ettekandja: Oled sa selles rubriigis? Publik: Ei. Ettekandja: OK, see on Emily. Ta on minu sõber. Ilmselgelt ei ole, et hea sõber, sest ta annab mulle raske aeg. Sa võiksid olla kenam mind ees kõigile, minu õpilane - Publik: Ma teen oma Q guide. Ettekandja: Tõesti? Uh oh. OK, sa oled imeline. Ma armastan sind nii väga. Oh boy. Igatahes, eile õhtul, nagu kõik - Olen kindel, et kõik tundub tõesti rõhutas kohe. Ma ei tea, on uustulnuk - on te tunnete stressi? Ma olen vist stressis. See oli nagu, sa lähed koju Thanksgiving. Sa oled nagu, ma lähen teha kõiki neid asju. Publik: See on nii erinevad. Ettekandja: Jah, ja sa tuled tagasi. Jeff, sa ei tunne, et kuidas? Publik: Ma lihtsalt mõtlesin, Ma teeksin natuke. Ettekandja: OK, tore. Nii et ma tulen tagasi, ja ma ei ole midagi teinud. Ja see on kõik super stressi. Ja ma olen mures, tõeliselt mures, selle kohta, kas ma olen lähen lõpuni kõike ma pean. Aga eile, ma ei rõhutanud, Ma olin natuke kurb. Ma kirjutasin oma ajakiri mida ma olin kurb. Ja ma olin kurb käesoleva paragrahvi Selle klassi lõppemas. Nii et ma lihtsalt loen teile poisid väike väljavõte minu päevik, eilsest. Kas ma saaksin salvrätikud, mõned kudede Tom? Ei, ma lähen nutma. Ma ei nuta. Mitte, et sa ei saa nutta, Ma ei nuta. Ma isegi ei tea, kas mu pisar näärmed töötanud - pisarajuhade. Ma pole nutnud pikka aega. Publik: [kuuldamatu]. Ettekandja: OK, thanks. OK, seal on vähe eessõna - seal on mõned teised osad minu ajakiri kanne, sest ma püüan ajakirja iga Ööl sain magama. Ma väga soovitada journaling. See aitab teil töödelda asju ja ka väga tänulik oma päeva. Ja see muudab palju lihtsam vaadata tagasi oma päev ja mõistma, et seal oli palju head asju, mis juhtus. Isegi kui tunnete end tõesti rõhutas öösel või väga häiritud, või tõesti kurb või väsinud. Oh, mu jumal. Ma isegi ei tea, kas see on kirjutatud, et hästi, sest ma ei korrektuuri ta. Aga me lugeda. Ma tavaliselt ei loe minu ajakiri, ilmselt. "Homme, ma õpetan minu lõplik CS50 jagu aastas. See on hull, kui kiiresti aeg lendab. Ometi ma rabatud, kuidas erinevad minu kogemus õpetamine oli sel aastal kui siis, kui olin üliõpilane. Alustuseks kindlasti tean materjal paremini. Aga ei saa öelda, minu esimene kohort üliõpilastega. Veelgi olulisem on aga, mõistsin et rõõm, mis pärineb alaline up ees ruumi, mida hakkab läbi nagu võõrad, kuid jõuab nagu kell Vähemalt, Facebook sõbrad, on mitte esimene aasta juhus. Pigem on see teades, et mõned väikesed teed, sa oled aidates andekas, mõtlik, veetlev, ja kirglik inimesed õppida veidi rohkem arvutiteaduse. Sa suunates et lamp lihtsalt natuke oma pesa, nii et see on võimalik sära heledam kui sina, või need, arvata võis at semestri algust. Sa aidates omakorda nende frowns tagurpidi alla ja küsimusi, mis toetada, kuid siiski võimaldab õpilased püsti oma. See kindlasti ei ole liialdus öelda, et see osa on mu lemmik osa nädalas. Või isegi, et ma julgesti öelda, et see on kõik, kell 05:30 iga nädal, teades et see saab olema liiga pikk kuni me kohtume taas. Kuid ma olen väga tänulik, et kõigile, kes on andnud mulle seda võimalus anda tagasi teised. David, tema kannatlikkust ja usaldust. Et film ja tootmise meeskond, sest paned mind mõnevõrra auväärne. Ja mis kõige tähtsam, et minu õpilased, kelleta ma ei ole mingit põhjust 10 tundi figuring parim kuidas juhtida vihjeid või panema tabel delfiine kaudu JavaScript. Nagu alati, on see olnud õnnistust. " Nii et tänan teid. Näeme kõik on CS50 õiglane ja hackathon, kui sa oled seal. Ja kui teil on küsimusi, ma jään ümber kuni ei ole enam. Aga ma tänan teid ette imeline aasta. [APLAUS] Ettekandja: ma võin nutta.