Spreker: OK, so jy sal dit nie glo nie, Maar verlede week, op Maandag, in Pierce, het ek was in die kelder. Ek het nog nooit gaan Pierce. En ek nooit weer terug gaan nie, want Ek het my dinge alleen, soos vyf minute en iemand my rekenaar en my gesteel selfoon uit my rugsak. Wat beteken dat ek het dit terug, en dan minder as 'n week later dit het weer gesteel. En dan het dit geblyk op - Vind My iPhone voort te help nie wees nie. So ek bly aan te moedig jy nie om dit te gebruik. Dit het op 'n keer, en dit was in MIT, soos 15 minute later, en die persoon noem hierdie telefoonnommer wat gewys in my AT & T oproep log. So het ek aanlyn is, genoem dat selfoon nommer, en dit reguit na hierdie antwoordmasjien in Spaans. En ek het nog nie gehoor van dit sedert. So ek het 'n nuwe te kry rekenaar en selfoon. Ek weet. Ja. Maar as jy ouens wil om te chip in vir my rekenaar fonds na dit, dit is die rede waarom Ek het u gevra hier. Net 'n grap. Maar dit was regtig hartseer en traumaties. Maar dit is nou al terug, en dit was die rede waarom die p-set 8 so lank geneem het, want Ek het nie 'n rekenaar. En iemand gesteel het. En ek per e-pos, vra of hulle sou Graad jou p-set 8. Maar hulle het gesê nee. En ek was soos, kan ek my rekenaar terug? En hulle is soos, no. Net 'n grap. OK. Dit is ons laaste artikel, en ek het 'n paar van die - ons het net drie dinge op die agenda. Ons gaan 'n bietjie om te praat oor die Q gids. Dan gaan ons spandeer 15 minute op 'n koel demo. Dan gaan ons sê almal totsiens vir mekaar. Jy het nie regtig jou rekenaars nodig nie of 'n pen of papier notas te neem, of volg saam. So ek neem as jy jou rekenaar up is, dan is jy op Facebook. Net gesê. Tensy jy vul die Q gids, wat vir die eerste keer. Die Q gids oop is. Jy het 'n e-pos daaroor. Sodra al die Q dinge word aan die einde van die jaar, ek kry al die Q kommentaar in die tellings van almal wat kies om terugvoer My gee. En so wanneer jy gaan in die Q - Ek weet nie of jy dit kan doen, Jeff, omdat jy en die uitbreiding student. Maar wanneer jy gaan in die Q, as jy nie het nie voor jy klaar is, kies jou Meester, wat is David Malan. Jy moet hom te doen. En dan kan jy kies TFS. En jy kan soveel pluk TFS as wat jy wil. Maar daar is 60 van ons. Jy hoef nie almal te haal. Jy kan net kies my, of kies 'n paar ander mense, as jy wil, te gee hulle terugvoer as well. En dan kry jy tellings op al hierdie verskillende asse, en dan kan jy laat hulle terugvoer. En dan, soos 'n maand later, Ek kry alles wat terugvoer. En net soos die terugvoer wat jy het al gee my die hele semester, ek lees al van daardie. En dit is regtig nuttig, en dit help my groei as 'n onderwyser en as 'n individu. So, asseblief, enige tyd neem om dit te doen. Ons gaan net om hier te wees Want soos 30 minute. So as jy wil, aan die einde van hierdie, te vyf minute, en net vul die Q, want dit neem nie enige meer tyd as dit. Dit sou ook wonderlik wees, en jy kry jou grade terug vinniger as jy vul die V. So die meeste van julle het wat voor gedoen - of nee, ongeveer die helfte van julle het dit gedoen voor. Maar as jy 'n groentjie, dit is wat dit is. Dit sal dieselfde wees vir al die klasse. Doen dit. Dit neem vyf minute. Maar ook, as jy dit doen 'n bietjie ernstig, dit is nie die ergste ding in die wêreld, want ek het beslis neem dit ernstig op. So as jy laat my 'n smiley face, Ek sal dit waardeer dit. Maar ek wil ook waardeer as jy het my meer as 'n smiley face. Maar dit is aan jou. Ek kan nie vertel - of soos 'n groot gesiggie in die gesig staar, met 'n kapitaal D. Dit wil selfs beter. OK, dis al wat ek het vir die V. As jy enige vrae het, kan jy vra my, maar redelik selfverduidelikend. Net, asseblief, vul dit uit. Ek sal dit baie waardeer, en dit beteken baie vir my. OK, dit is wat ons gaan om te bestee 15 minute gaan deur. Ek gaan aan u verskeie code. Ek dink dit is werklik 'n koel, en dit het my meer opgewonde in Rekenaarwetenskap. So ek hoop dit sal doen om die Dieselfde geld vir julle almal. Ons gaan om oop te maak - en dit alles kode Ek sal later aan u stuur. Maar ons is maar net gaan om oop te maak - Ek is in my terminale - ons gaan om oop te maak van hierdie program genoem [? MySum. ?] Kan almal lees dat, of moet ek maak dit groter? Kan iemand my vertel wat hierdie kode sal doen wanneer ek dit loop, of wat dit program sal doen as ek loop dit? [? Avi,?] Wat dink jy dit gaan doen? Afwerking kou. Jy moet nie met praat jou mond oop te maak. Publiek: Is dit neem om 'n klomp van die argumente, vind som van hulle terugkeer som, en dan druk dit uit? Of neem dit in twee argumente en dan doen dit [onhoorbaar]. En dan is dit druk uit wat ookal die resultate is. Spreker: Close, baie naby. Enigiemand wil byvoeg [? wat Avi?] sê? Het jy behoefte aan hierdie program te gee enige opdrag-lyn argumente? Publiek: No Spreker: No Wat gebeur as jy nie gee nie enige opdrag-lyn argumente? Ek skryf net dot streep MySum. Publiek: 1 plus 2 is gelyk aan 3. Spreker: 1 plus 2 is gelyk aan 3. En dit sal druk wat uit. Dit is presies reg. Jy sal dat druk f sien lyn aan die onderkant. Dit sal druk 'n, b, en dan is die som van a en b. En ek dink jy aanvaar dat som werk korrek. Goeie aanname. OK, en wat gebeur as ek gee dit wat argument? [? Manu? ?] Publiek: Dit sal voeg net die eerste argument is om te b. Of 2 nie, jammer. Spreker: Right, 2. Het enige iemand weet wat strtol doen? Dit is basies atoi. Atoi is eintlik 'n fancy weergawe van - of 'n eenvoudiger weergawe van strtol. Maar dit eintlik gebruik strtol. En ek het gevind dat uit, want ek wou iets soos atoi, en dan wanneer ek het atoi, ek lees hier. En ek het gevind dat "hierdie gedrag is dieselfde as "strtol. So dit is basies atoi vir alle praktiese doeleindes. En jy sien ek selfs van nul en 10 gebruik. Dit laat eintlik neem jy 'n string, en draai dit in 'n aantal, en kies wat basis wat jy wil om dit te doen in So dit is base 10 hier. Ek kon gedoen het basis vir twee desimale, basis vir 16 heksadesimale. Dit is nogal cool. Maar lang storie kort, dit neem twee getalle en voeg hulle saam. So laat dit loop. En jy sal ook sien, is daar is 'n paar dinge - so ek het 'n makefile reg hier, en As jy dit oop te maak, 'n paar dinge jy sal sien is anders. In die besonder, hierdie argument reg hier, het jy waarskynlik het nie gesien dat voor. Die algemeen, ons stel dinge met Dash nul, nul. Dash nul, zero, beteken dit nie doen nie enige optimalisaties, samesteller. Moenie probeer om enigiets fancy, of maak niks meer vinnig hardloop, of kry ontslae te raak van veranderlikes wat nodig is. Moenie hierdie kode optimaliseer nie, Ek vra vir die derde-vlak optimalisering. So ek vra vertaler te doen 'n baie optimalisaties. Jy kan dit verander wat in die makefile wanneer jy het hierdie kode as jy wil verskillende dinge te sien. Wat ons sal wys in 'n tweede. So loop ons my som 1 plus 2 plus 3. Iemand gee my twee argumente. Publiek: 4 en 5. Spreker: 4 en 5. Dankie. Groot, dit werk. Wat is 'n paar ander goeie argumente om te probeer om seker te maak dit werk nie? Enigiemand? Publiek: 0. Spreker: 0 en? Publiek: Negatief 3. Spreker: Dit werk. Maar dit was 'n goeie keuse. OK, so laat ons gaan terug hier. Dit is mysum.c. Jy sal sien daar is ook iets genoem sumfunction.c. En dit sê, o, daar is iets omskryf in sumfunction.c. Ek sluit nie die lêer hier omdat ek nie hoef te. Maar ek skakel dit in toe ek stel, wat jy opgemerk. Kom ons blaai up. Ons het toe ons saamgestel mysum, reg daar, ons gekoppel in die binêre uit sumfunction.o. En ek het die kop lêer hoef nie want, natuurlik, is daar die funksie verklaring. So skerp sluit gewoonlik net, plaas in 'n funksie verklaring. Hier het ek net sit dit reguit in die kode. En so het ek nodig het om te doen is skakel in die binêre, wat ek doen. Enige raaiskote vir wat in sumfunction.c? Wat code ek geskryf in sumfunction.c? Publiek: [onhoorbaar]. Spreker: Enige raaiskote? Ja? Publiek: Ek dink, definieer sommige [onhoorbaar]. Spreker: Ja. So ek doen, skryf int som int a. Ek skryf hierdie lyn, en dan het ek oop krullerige stut, gesluit krullerige stut. Wat dink jy ek skryf in die krulhakies, binne daardie funksie? Ja? Publiek: Return gelyk aan a. Verwerker: Dit is 'n baie goeie raaiskoot. Wie dink [? Manu?] Reg is nie? Dit sê terugkeer 'n plus b. OK, nie almal. [? Akshar,?] jy doen, ook? Jy seker? OK. Wat? Publiek: Jy dit verkeerd gespel. Spreker: Nee, ek het nie. Ja, net 'n grap. Jy is reg. Dit is presies wat dit sê. Dit is weer 'n plus b. Dit maak 'n baie sin. OK, laat ons gaan terug hier. Ons sien hoe die kop - dit is die terugkeer tipe. Onthou, het ons gesien dat dag een, die Stuur tipe van die funksie, maar gaan voor die naam van die int funksie. Hier, ek het geskryf int. Wat dink jy sal gebeur as in hierdie funksie, ek int skryf nie, maar Ek skryf unsigned? Die verskil, natuurlik, is dat unsigned verteenwoordig slegs positiewe heelgetalle, en int kan wees positief of negatief. So ek het die opbrengs verander tipe van hierdie funksie. Hierdie kode kom nie ooreen hierdie terugkeer tik hier. Wat dink jy sal gebeur toe ek stel? Jy moet op my skreeu. Geen skree. Wat oor wanneer ek die program? Kom ons doen voordat 0 negatiewe 3, of negatief 1. Dit werk nog steeds, selfs al is ek sê dit is die terugkeer van 'n ongetekende heelgetal. Dit is duidelik dat dit nie terug 'n ongetekende heelgetal. Dit is die terugkeer van 'n getekende heelgetal. Dit is die terugkeer van negatiewe 1. OK, dit is vreemd. Wat van as ek gaan hier en dit doen? So ek het alles verander van int te unsigned. Dit kan net unsigned heelgetalle. Maar nog steeds dink dat ons nie dit sal loop? Gehoor: Ja. Spreker: Dit sal. Dit is mal. En ons slaag in 'n duidelik wat integer, kan ons slaag twee onderteken integer, dit werk nog steeds. OK, enige idees hoekom dit nog steeds werk, of wat gaan aan? Ja, Jeff. Publiek: Dit het iets te doen met jou optimalisering dat jy uitgelig. Spreker: No Ons kon die optimalisering verander, sou dit nog steeds werk. Ek kan doen wat vir jou, maar - Publiek: Ek sal jou woord vir dit. Spreker: Ja. As jy die makefile hier oop te maak, Ek het die optimalisering. Sodat jy kan stamp nul, nul te doen. Dit sal nog steeds werk. Ander gedagtes? Julle almal verwag om te werk, so Hoekom is jy verwag om dit te werk? Nee? Stilte. OK. Ek het sewe sekondes om te wag, want ek het 'n vraag. So die koel ding oor C, en jy het waarskynlik ervaar voor - jy miskien nie, is dit dalk wees die eerste keer. Maar soos julle almal weet, wanneer ek skryf iets in C, beteken dit nie soos red dit op die rekenaar. Dit is gered as kinders en nulle. Dit gaan van C-kode te vergadering kode. Het iemand gesien vergadering kode voor, masjien vergadering kode? Ons sal kyk na in 'n tweede. Dit gaan van C-kode te vergadering kode. En julle weet dat die fases van die samestelling. Jy het om te onthou vir die toets een, en skryf dit dan op quiz nul. Die meeste mense het dit verkeerd. Ek dink jy ouens gespyker nie. Maar, julle is die beste artikel vir vasvrae, op die pad. Wat is awesome. Dit sal nie seermaak nie. Moenie bekommerd wees nie. Maar dit is regtig cool. Goeie werk. So dit gaan om saamsteltaal, en dan gaan dit te ene en nulle. En die kinders en nulle is op die gered rekenaar, en dit is wat gered in die a.out, of in hierdie geval, die uitvoerbare lêer. En die rekenaar loop kinders en nulle. Reg? Ons het dit voor geleer. So het die cool ding is, hierdie unsigned idee, die idee van die tipes ints unsigned, ensovoorts, ensovoorts, wat hier in die C-taal. Diegene bestaan ​​nie. Maar tipes nie op nie bestaan ​​nie die kinders en nulle. Tipes nie eens werklik bestaan ​​by die vergadering vlak van die taal. So dit is iets wat bestaan ​​in C wêreld, maar nie in die rekenaar bestaan wêreld of verwerker wêreld. Dit is 'n paar onttrekking dat die C taal ingesluit, om ons lewens makliker maak. So aan die einde van die dag, kan ek skryf baie verskillende dinge hier, en dit nie 'n verskil maak. Omdat wat net bestaan in die C wêreld. Dit maak nie in die bestaan kinders en nulle wêreld. En ons program se uitvoering in die kinders en nulle wêreld. So jou gedagtes duidelik is nie geblaas nie. Maar ek dink dit is cool. Ja, Jeff. Publiek: So, as in plaas van doen int, jy doen kar. En jy was - Spreker: Kom ons doen dit in 'n sek. Publiek: Want dan kry jy 'n unsigned gaan van negatiewe 128 te 127 of 0-255. Spreker: So kar is problematies. Het enige iemand weet waarom kar sou wees problematies, en dit sou eintlik dinge verander in dié en haakt wêreld? Publiek: As gevolg van die grootte van kar. Spreker: Grootte van kar is 1. So unsigned is ook 4 grepe. So kar dinge sou skroef. Maar wat is 4 grepe wat verband met 'n kar? Of by dat voeg 'n ekstra - jy kan 'n mens meer karakter sit ná kar. Publiek: Char ster. Spreker: Char ster het 4 grepe. So laat ons iets doen dit is 'n kar ster. So dit sal waarskynlik werk, maar ons is gaan om iets te doen, selfs crazier as dit. In my opinie, crazier. Ek het nou geskryf om 'n funksie wat terugkeer 'n wyser, en dit neem 'n wyser en 'n ongetekende waarde - ons sal dit terug verander na int so ons is nie maak te veel veranderinge op een slag. En dit het 'n skikking met die naam 'n, indekse in die skikking, en opbrengste die adres van. Ons het gesien dat hierdie operateurs voor. Hierdie, doen wat jy dink dit gaan te doen, in ruil, toe ek loop dit? Wat dink jy dit gaan doen? Enige raaiskote? Publiek: Segfault. Spreker: Wat? Segfault? Dit is 'n goeie raaiskoot. Tom sê dieselfde ding. Enige ander raaiskote? Wat dink dit gaan doen dieselfde ding? Wat dink dit gaan segfault? Dit doen dieselfde ding. Jammer. Maar, natuurlik, ons sit in 1 en 2. En dit is beide geldig, reg? Kom ons kyk, kan ons na die tweede plek van 'n skikking. Maar wat as ons het b 'n negatiewe getal? Dit is waarskynlik 'n beter raaiskoot vir iets segfaulting. Dit werk nog steeds. OK, dit is nou mal. Dit is ewe geldig som-funksie. Dit beteken presies dieselfde ding as opbrengs a en b. Kan iemand verduidelik hoekom dit 'n goeie die som-funksie, of hoekom dit werk? Wat hier gebeur? Waarom het hierdie presies dieselfde doen ding as ons ou som-funksie? [? Akshar,?] wat gaan aan? Publiek: Want as jy 'n 'n dis 'n adres die plek geheue - en wanneer jy dit doen die ampersand, is dit gaan dat die geheue adres. En wanneer jy na B, jy soort beweeg stappe van daardie geheue adres, jy terugkeer nie. So jy is eintlik, in werklikheid, toevoeging van a en b [onhoorbaar]. Waar is die standaard bedrywighede op daardie terugkeer? Soos waar die hakies val? Is die terugkeer van die adres op 'n voor of na [onhoorbaar]? Spreker: Dit gaan na die indeks in b - of indeks in 'n - en dan terugkeer die adres. OK, so het almal verstaan wat [? Akshar?] gesê, en verduidelik hoekom dit werk? Ek het nie die eerste keer dat iemand verduidelik dit vir my. Sou iemand graag 'n foto om dit te verduidelik? Ons gaan 'n prentjie te teken, met Geen merkers, dit is groot. Het 'n paar. So ons het 'n skikking wat 'n reeks van bokse. Die eerste een is 'n indeks van 0, indeks 1, 2, 3, 4, dot, dot, dot. 'N Tipiese skikking. En bykomend tot met indekse, hulle almal het geheue adresse. So kom ons gee die geheue adres 13, 14, 15, 16, 17, ensovoorts. Almal is hier so ver. So 'n is 'n adres. Die naam van 'n skikking, 'n wyser Is daar gered. Dit is 'n muis, dit is 'n geheue plek, aan die begin van die skikking. So as dit was die skikking, 'n 'n waarde van 13 wees. En, natuurlik, kan ons 'n enige waarde wat ons wil hê. Char ster a, kan ons 'n enige gee geheue adres wat ons wil hê. Ons kan dit 0, kan ons dit gee negatiewe 1 - negatiewe 1 bestaan ​​nie, so dit is waarskynlik problematies nie, maar jy sien dat dit steeds gewerk. So kan ons 'n enige getal wat ons wil gee, 'n geheue adres wat ons wil hê. Dan, int b sê, OK, gaan hierdie nommer stappe in die skikking. So as b is gelyk aan 2, en 'n gelyk 13, ons is by geheue adres 13. En ons gaan twee stappe in, en so het ons hier is. En die ampersand beteken terugkeer die adres van hierdie plek. En die adres is, natuurlik, 15. So kry ons 13 plus 2 of 'n plus b, wat 15. Die vraag is egter - Ek is jammer. Maak dat dinge verduidelik waarom dit werk? Publiek: Hoekom sou dit werk gaan - sodat jy kan 'n skikking en het gaan na 'n negatiewe indeks? Spreker: Right. So ons het negatiewe getalle, So wat is die - Maak dit sin al is, eerste, [? Avi,?] vir jou? Publiek: Ja, ek is net [Onhoorbaar], maar - Spreker: Ja, dit sou terugkeer 15. As 'n 13 was, en b was 2, dit sou terugkeer 15. Publiek: So het die nul kruip nie 'n probleem geword het, reg? Omdat jy beweeg van 0. Spreker: Right. So jy beweeg - so as b was 0, sou jy nie enige plek beweeg. En jy wil net terug die adres - As b was 0, dit is in wese terugkeer die adres van 'n. Slaag in kar ster a en die terugkeer van die adres van 'n net 'n terugkeer, wese. OK, die vraag is hoekom doen negatiewe getalle te werk? En dit is die regtig cool ding oor hierdie, want dit moet segfault. En dit sou segfault as ons het iets soos hierdie. Kom ons sê, int. So hierdie kode lyk identies en moet identies optree. In wese, x is 'n gemors veranderlike, en so moet dit identies optree. Kom ons maak dit - oops - in ster. OK, ons is reeds om foute hier, want dit is reeds gaan kwaad te wees na my, want dit het reeds weet wat kom. In die besonder, die tweede een. Adres van gestapel geheue verband hou met 'n plaaslike veranderlike. In wese, ek gaan nie saam te stel hierdie, en dan gaan ek ongedaan te maak nie wat ons nou net gedoen het. Maar omdat ons nooit werklik toegang tot wat is op die geheue plek, dit is nie van plan om segfault. Ons het nooit eintlik op soek na wat is in die tweede boks of wat is in 'n boks van hierdie reeks. Ons is net te sê, hier is die adres van die ding wat ons soek en terug dat adres. Ons het nooit eintlik gaan in die skikking te kyk na die plek. En omdat ons nooit raak die geheue, ons nie in die moeilikheid. Ons kry nie 'n segfault. As ons probeer om weer raak wat geheue, raak wat by A of B - of 'n bracket b, en die aanvaarding van 'n was 0 en - As 'n was 0, selfs, sou dit redelik wees sleg, want ons kan nie gaan af al die pad daar. As A en B is albei 0, en ons probeer om te raak wat daar was, dan sou ons kry in die moeilikheid. Maar as ons raak nie wat daar is, Ons het net die standaard van die adres, is dit eintlik nie van plan om segfault omdat dit kan jy die bedrywighede voer. Dit raak net kwaad vir jou, en kry super kwaad, wanneer jy probeer en raak die werklike geheue en terugkeer wat is op daardie geheue plek. Is wat sin maak? Dit is net 'n gek deel van C. So, ons het een meer van hierdie. Wat dink dit is cool? Meer mense. Dis goed. OK, dit is ons laaste een. En ek wil julle vir my vertel of of jy nie dink dit gaan presies dieselfde ding te doen. Ek het hierdie afgeskryf iewers. Ek is nie te memoriseer nie. Kom ons kyk, 8, b 4, 4, 2, 4, 0, 8, 0, 3, 4, 4, 2, 4, 0, 4. So, dit is 'n skikking, nou, nie 'n funksie. En dit is 'n skikking, want ons het vierkante hakies, nie krullerige draadjies. En dit is 'n verskeidenheid van watter tipe? Enigiemand, hmm? Publiek: Hulle heksadesimale getalle? Spreker: Maar wat is die C tipe? Hulle het almal heksadesimale getalle. Wat is die C tipe? Dit vertel jou. Publiek: Dit is unsigned karakters. Spreker: Right, unsigned karakters. En twee heksadesimale getalle is een byte. So hierdie is 1, 2, 3, 4, 5, 6, 7, 8, 9 grepe. Dit is 'n verskeidenheid van 9 grepe. OK, jy waarskynlik reeds weet Die antwoord op hierdie vraag. Maar, wat dink jy sal gebeur wanneer ek loop dit? Ek sê weer, in mysum.c, Ek verwag 'n funksie dit neem twee heelgetalle. En ek sê dat in plaas som is 'n verskeidenheid van die karakters. Wat gaan gebeur wanneer Ek hardloop. / Mysum en maak? Wel, die eerste, die meeste van julle sal waarskynlik saamstem dat make - O nee, net 'n grap. Wat het ek verkeerd gedoen? Uh oh. Dit moet wees krullerige draadjies. Dit is hoe jy inisialiseer 'n skikking. My sleg. So het ons reeds voor daardie tipes sien is 'n C-vlak onttrekking, nie 'n rekenaar vlak onttrekking. So die meeste van julle seker verwag dat dit maak, of die veronderstelling dat dit sou maak. Maar wat as ek hardloop. / Mysum? Wat gaan gebeur? Enige raaiskote? Publiek: Dit gaan druk 'n woord. Spreker: Dit gaan druk 'n woord. Watter woord? Publiek: [onhoorbaar]. Spreker: Enige ander raaiskote? OK, druk 'n frase. Jy kan enige frase. Dit sal jou kant wees. Enigiemand wat 'n ander raaiskoot het? Anna, wat is jou raaiskoot? Publiek: Dit sal druk - twee briewe, of [onhoorbaar] een letter. Spreker: Een brief. Publiek: Kan ek tel hoeveel baie [onhoorbaar]? Spreker: Nine. Wel, ek gaan dit uit te voer. Dit doen presies dieselfde ding. Dit voeg twee getalle bymekaar. Wel, laat ons verby die twee argumente. Dit maak nie argumente neem. So ek weet nie waar dit dalk kry hierdie argumente. Maar laat ons slaag op 100 en 0. En dit dra by 100 en 0. Dit is gek. Ek dink nie so nie. Negatiewe 4, dat daar te werk. Jy kan enigiets wat jy wil doen. Dit is 'n ewe geldig som-funksie. Dit is 'n som-funksie. Maar nee, jy sê dit is 'n verskeidenheid van grepe. So, wat gaan hier aan? So, weer, laat ons gaan terug na hierdie idee dat ons gesê aan die begin. Jy gaan van C-vlak kode, te vergadering taal, te ene en nulle. Dit is heksadesimale. Maar dit is regtig net 'n baie kinders en nulle. Dit is 72 kinders en nulle, reg? 72 kinders en nulle. 9 grepe. Elke byte het 8 stukkies. Elke bietjie is 'n een of 'n nul. So 72 mense of nulle. Ek het net geskryf het om hulle soos hierdie - eerder as skryf dit uit as 'n baie kinders en nulle. Maar dit gaan van C-vlak taal, te vergadering taal, die kode. En dit sal druk in die kode, iewers, hierdie 72 kinders en nulle wat ek hier geskryf het. So iewers in dat - laat ons gaan hier - iewers in mysum, die program, is daar is hierdie 72 kinders en nulle wat ek geskryf en vertel om dit te skryf. Nou, enige raaiskote vir wat hulle 72 kinders en nulle beteken? Publiek: Waarskynlik dieselfde iets soos 'n terugkeer plus b. Spreker: Waarskynlik dieselfde iets soos 'n terugkeer plus b. Kom ons bevestig dat. Kom ons vind uit hoe ek dit gedoen het. So as jy gaan terug hier, sê ek jou hierdie opdrag uit te voer, objdump-S sumfunction.o. Kom ons gaan hardloop nie. objdump - obj, stort. Eintlik kan dit vir my gee wat ek wil om te sien. Dit kan aan my die saamsteltaal. Dit kan ek gee die kinders en nulle. Dit het 'n ton van vlae. Dit is die een wat ons gaan te gebruik vir nou. Dot - as jy sien in die skyfies - Dash kapitaal S sê, deurspek, bron-kode - hierdie lyn is van C - met die gemeente kode en met die mense en nulle. En ons gaan om te hardloop dit op sumfunction.o. Want dit sal makliker wees om te sien. Weereens - hmm? Publiek: Jy dit verkeerd gespel. Spreker: Maar ek is eintlik gaan dit skoon te maak vir 'n tweede. Ek gaan eers oop te maak net sumfuntion.o. Publiek: Jy gespel dit verkeerd om die eerste keer. Spreker: Classic. Som - dit is 'n harde werk, al is. Jy sal verbaas wees. OK, so dit is sumfunction.o. Ek kon nie eens vertel. Daar is 'n baie nulle, duidelik 'n baie van nulle, en daar is 'n paar ander dinge wat nie nulpunte. Maar meestal nulpunte. Lyk asof daar 'n paar mense. So duidelik, dit is moeilik om te lees. Dit is die binêre taal. Kom ons nou maak dit - wat? Wat doen ek verkeerd? Het ek spel dit reg? OK, dit is moeilik. Ek moet 'n sekonde te vind uit te vind wat ek doen verkeerd. Dit is een fout. Dit is vreemd. Ag, dit is hoekom. Ek gaan terug om te gaan na ons eerste een, sodat ons kan kyk na die voorwerp-kode van hierdie. Want daar is nie regtig gaan wees nie wanneer ons net die kinders en nulle in Daar gaan ons. OK, so almal kan dit sien. Hierdie funksie, soos ek gesê het, hy het die C lyne - bronkode lyne - met 'n paar gemeente instruksies. Hier is ons bron-kode lyn. Hier is een, hier is 'n ander. Hier is die vergadering onderrig. Dit is hoe hulle lyk. Vergadering instruksies - jy meer van hierdie kan leer as jy ander CS klasse nie, maar hulle is algemeen 'n opdrag. En dan 'n bron en 'n bestemming. En dan hier is die binêre kode wat ooreenstem met dié vergadering onderrig. So soos jy kan sien, is hierdie som-funksie, aan die einde van die dag, is drie gemeente instruksies. Slegs drie. Een mov - hierdie m-o-V staan ​​vir 'n skuif. Voeg staan ​​vir Voeg. En r-e-t staan ​​vir Return. So 'n mov, een byvoeging, een terugkeer. En dit, hier, is die nulpunte en Diegene wat ooreenstem met die kode. So diegene nulpunte en kinders, as jy weet wat, kan jy net sit diegene reguit in En dan sal dit doen die presies dieselfde ding. Omdat, aan die einde van die dag, al jy is die uitvoering van 'n lang reeks van nulle en ene. En dit is wat jou kode werklik is. En die rede - laat ons kyk na een ding. Het ek die makefile oop? So as ons gaan terug te stamp nul, nul hier - Jammer, kapitaal o, kapitaal o nul, nie zero, zero. En ons het maak, sou dit nog dieselfde werk. Maar nou is jy agterkom dat daar 'n baie meer die gemeente instruksies. Dit is omdat, weereens, ek het die vertaler word nie enige optimalisering te doen. So ek kan nog steeds te neem al hierdie nulle en ene, en gooi dit in, en wat sal werk. Ek het net die optimalisaties, want dit is 'n bietjie makliker te maak, dan dat skikking te skryf. Maar dit sal net so goed werk. OK, ons gaan 'n laaste ding om te doen, want ek dink is die koelste deel. Alhoewel almal is duidelik reeds geblaas en sprakeloos. Ons gedagtes is geblaas. [Onhoorbaar] So, dit is van 'n ander klas CS, wat is super interessante, dat ek geneem het - CS61. Ek raai u aan om dit te neem. Maar die beste deel van hierdie feit, wat dinge is net nulpunte en kinders, is dat alles nulle en ene. So kan jy 'n lêer wat neem om die korrekte nulpunte en wat jy wil iewers in dit, en gebruik daardie gedeelte van nulle en ene as 'n som-funksie. Wat bedoel ek daarmee? Ek bedoel jy kan 'n beeld lêer te neem wat het die korrekte reeks nulpunte en kinders, dat daar iets druk uit te beeld. En een program kan interpreteer is 'n beeld nie, maar jy kan dit interpreteer as wat jy wil, as 'n som-funksie. So as ons wou oopmaak, vir Byvoorbeeld, die beeld. Kom ons gaan, Hello Kitty. Wonderlike klein beeld. In hier is dat die snaar van nulle en ene. Diegene 72 nulle en ene bestaan ​​in hierdie beeld. So, wat ek kan doen, dan is skryf - Ek moet onthou waar hulle is. Ek vind dat in 'n sekonde. Maar ons doen - laat my uit te vind waar hulle is. Een sek. Kom ons doen - Publiek: [onhoorbaar]. Spreker: Dankie. So as ons hierdie program uit te voer, wat plaas lees in 'n lêer, dan gaan dit hierdie indeks in die lêer. En dan, weer, net soos mysum, neem twee getalle. Ons kan getalle presies dieselfde as by ons voor te doen, wat gaan aan wys hoe die feit dat, aan die einde van die dag, is al hierdie dinge nulle en ene. En dit is net hoe jy kies om dit te interpreteer. En as jy eintlik kyk op die beeld - laat se zoom in 'n bietjie. Kan almal dit sien? Jy sal hier sien, is daar 'n paar vreemde smet. Kom ons gaan - dit is die oorspronklike beeld. Jy sal sien hier is daar geen smet. Dit is die kode vir die som-funksie, is dat daar min smet reg daar. En eintlik, weer, as jy leer meer oor hierdie, sal jy besef dat hierdie Hello Kitty, wat selfs 'n groter smet, het kode wat oor 'n kan rekenaar as dit nie beskerm gepas. So kan jy self hierdie. Ek is nie van plan om dit uit te voer op die oomblik. Maar jy kan hierdie Hello Kitty beeld, en dit kan oor te neem jou rekenaar. So dit is al wat vir die demo. Het enige iemand enige vrae het, kommentaar, bekommernisse? Ek dink hierdie dinge is fassinerend. Dit het my geïnspireer om meer te leer. Ek raai, as jy belangstel Glad op CS, praat met my. Selfs al het ek is 'n sosiale wetenskap Concentrator, ek is 'n CS, sekondêre, so Ek weet nog 'n bietjie. Maar ek weet beslis wat klasse wat jy moet neem. Ek dink dit is alles baie interessant, en ek u aanmoedig om seker te meer te leer as jy belangstel. OK, ek het 'n finale ding. Jammer. Enige vrae? Ek het nie breek om te wag as iemand het enige vrae oor dat. Is daar gaan wees 'n CS Concentrator? Of dink oor dit? Een, twee, drie, vier. Een - net een. Anna se is die enigste hand wat opgewek gesag. OK, dis cool. Assam, wat gaan jy doen? Publiek: [onhoorbaar]. Spreker: Konstantyn? Publiek: fisika. Spreker: Whoa, dit was vinnig. Jy het 'n slegte ervaring in CS50? [Onhoorbaar], wat gaan jy doen? Publiek: Ek het geen idee nie. Spreker: Curt? Publiek: Econ of CS. Spreker: Econ of CS. Tom? Publiek: Ek is besig met Rom. Spreker: Rom? OK. Wat is jy? Publiek: My? Spreker: Ja. Publiek: Rom. Spreker: Rom. Ag, daar gaan jy. Tom, praat met Alden. Emily, wat is jy? Publiek: Biomediese - Spreker: Is jy in hierdie gedeelte? Publiek: No Spreker: OK, dis Emily. Sy is my vriend. Dit is duidelik dat dit nie 'n goeie van 'n vriend, want sy gee my 'n harde tyd. Jy kan mooier vir my voor te wees van almal, my student - Publiek: ek doen jou Q gids. Spreker: Regtig? Uh oh. OK, jy is amazing. Ek is lief vir jou so baie. Oh boy. In elk geval, ek het verlede nag, soos alles - Ek is seker dat almal lyk regtig beklemtoon nou. Ek weet nie, is eerstejaars - is julle gevoel beklemtoon? Ek voel beklemtoon. Dit was soos jy gaan huis toe vir Thanksgiving. Jy is soos, ek gaan al hierdie dinge doen. Publiek: Dit is so anders. Spreker: Ja, en jy kom terug. Jeff, het jy nie so voel nie? Publiek: Ek het net gedink Ek wil nie 'n bietjie. Spreker: OK, groot. So ek terugkom, en ek het nie iets gedoen nie. En dit is alles super stresvolle. En ek is bekommerd, werklik betrokke, oor of ek gaan alles wat ek het om te voltooi. Maar gisteraand was ek nie beklemtoon, Ek was net 'n bietjie hartseer. So het ek in my joernaal oor wat ek was hartseer oor. En ek was baie hartseer oor hierdie artikel in hierdie klas kom tot 'n einde. So ek was net gaan om te lees vir julle 'n bietjie uittreksel van my joernaal, uit die vorige nag. Kan ek 'n paar servette, Sommige weefsel van Tom? Nee, ek gaan om te huil. Ek huil nie. Nie dat jy nie kan huil, Ek het net nie huil nie. Ek weet nie eens of my traan kliere gewerk - traankliere. Ek het nog nie in 'n lang tyd gehuil. Publiek: [onhoorbaar]. Spreker: OK, dankie. OK, daar is 'n bietjie voorwoord - daar is 'n paar ander dele van my joernaal inskrywing, omdat ek probeer om te joernaal elke aand voor ek in die bed. Ek raai joernaal. Dit help jy dinge te verwerk, en ook baie dankbaar vir jou dag. En dit maak dit 'n baie makliker om te kyk terug op jou dag en besef dat daar was 'n baie goeie dinge wat gebeur het. Selfs as jy voel regtig beklemtoon in die nag of baie ontsteld, of regtig hartseer of moeg. O, my God. Ek weet nie eens of dit geskryf is dat goed, want ek het nie proeflees nie. Maar ons sal dit lees. Ek lees gewoonlik nie my joernaal, natuurlik. "Môre, ek sal my finale leer CS50 gedeelte van die jaar. Dit is mal hoe vinnig die tyd vlieg. Tog, ek getref deur hoe verskillende my ervaring onderrig van hierdie jaar was as toe ek 'n stage. Om mee te begin, ek het beslis die materiaal beter te leer ken. Maar my eerste groep vertel nie studente wat. Meer belangrik, egter, het ek besef dat die vreugde wat kom van staande in die voorkant van 'n kamer wat begin uit as vreemdelinge nie, maar eindig as op minste, Facebook vriende, is nie 'n eerstejaar gelukskoot. Inteendeel, dit is uit die wete dat, in 'n klein manier, jy help talentvolle, bedagsaam, heerlik, en passievolle mense leer 'n bietjie meer oor die rekenaar wetenskap. Jy is die verskuiwing wat gloeilamp net 'n bietjie in sy kas, sodat dit in staat is om om te skyn helderder as jy, of hulle is, kon dink aan semester begin. Jy help om die frons onderstebo af en vra vrae wat ondersteuning bied, maar nog steeds toelaat studente om op te staan ​​op hul eie. Dit is beslis nie 'n oordrywing om te sê dat hierdie artikel is my gunsteling deel van die week. Of selfs dat ek huiwer om te sê, dit is al op 05:30 elke week, met die wete dat dit te lank sal wees Tot ons weer ontmoet. Tog, ek is ongelooflik dankbaar vir almal wat hierdie is aan my gegee, geleentheid terug te gee aan ander. Aan Dawid, vir sy geduld en vertroue. Om die film en produksie span, vir maak my ietwat ordentlike. En, die belangrikste, om my studente, sonder wie ek geen rede te hê spandeer 10 ure uitzoeken die beste manier wysers te trek, of lê 'n tafel van die dolfyne, via JavaScript. Soos altyd, is dit 'n seën. " So met dit, dankie ouens. Ek sien julle almal by die CS50 billike en die hackathon, as jy daar is. En as jy vrae het, sal ek bly rond totdat daar nie meer nie. Maar ek dank julle vir 'n wonderlike jaar. [Applous] Spreker: Ek kan huil.