1 00:00:00,000 --> 00:00:07,700 2 00:00:07,700 --> 00:00:15,180 >> SPEAKER: OK, dus je zult het niet geloven, maar vorige week, op maandag, in Pierce, I 3 00:00:15,180 --> 00:00:16,090 was in de kelder. 4 00:00:16,090 --> 00:00:17,010 Ik heb nooit naar Pierce. 5 00:00:17,010 --> 00:00:20,530 En ik ben nooit meer terug te gaan, omdat Ik liet mijn spullen alleen voor, 6 00:00:20,530 --> 00:00:23,950 zoals, vijf minuten en iemand stal mijn computer en mijn 7 00:00:23,950 --> 00:00:26,050 telefoon uit mijn rugzak. 8 00:00:26,050 --> 00:00:28,780 Wat betekent dat ik kreeg het terug, en dan minder dan een week later 9 00:00:28,780 --> 00:00:30,220 het werd weer gestolen. 10 00:00:30,220 --> 00:00:31,570 >> En toen het werd aangezet - 11 00:00:31,570 --> 00:00:34,540 Zoek mijn iPhone blijft te zijn nutteloos. 12 00:00:34,540 --> 00:00:37,340 Dus ik blijven aanmoedigen niet te gebruiken. 13 00:00:37,340 --> 00:00:42,270 Het ingeschakeld keer en het was in MIT, als 15 minuten later, en de persoon 14 00:00:42,270 --> 00:00:45,770 noemde dit telefoonnummer dat aantoonde in mijn AT & T bellijst. 15 00:00:45,770 --> 00:00:48,830 >> Dus ik online ging, belde die telefoon nummer, en ging recht op deze 16 00:00:48,830 --> 00:00:50,540 antwoordapparaat in het Spaans. 17 00:00:50,540 --> 00:00:52,520 En ik heb sindsdien niet van gehoord. 18 00:00:52,520 --> 00:00:54,800 Dus moest ik een nieuwe krijgen computer en telefoon. 19 00:00:54,800 --> 00:00:55,150 Ik weet het. 20 00:00:55,150 --> 00:00:56,326 Yeah. 21 00:00:56,326 --> 00:01:00,110 Maar als jullie willen chip in mijn computer fonds na deze, dat is waarom 22 00:01:00,110 --> 00:01:01,030 Ik heb je hier gevraagd. 23 00:01:01,030 --> 00:01:02,280 Grapje. 24 00:01:02,280 --> 00:01:04,239 25 00:01:04,239 --> 00:01:07,420 Maar dat was echt triest en traumatisch. 26 00:01:07,420 --> 00:01:10,700 >> Maar het is nu allemaal terug, en dat was de reden waarom de p-set 8 duurde zo lang, omdat 27 00:01:10,700 --> 00:01:12,480 Ik heb geen computer. 28 00:01:12,480 --> 00:01:13,730 En iemand heeft hem gestolen. 29 00:01:13,730 --> 00:01:16,940 En ik gemaild met de vraag of zij zou graad uw-p set 8. 30 00:01:16,940 --> 00:01:18,790 Maar ze zei nee. 31 00:01:18,790 --> 00:01:20,000 En ik was als, kan ik mijn computer terug? 32 00:01:20,000 --> 00:01:21,270 En ze zijn als, nee. 33 00:01:21,270 --> 00:01:22,130 Grapje. 34 00:01:22,130 --> 00:01:22,930 >> OK. 35 00:01:22,930 --> 00:01:28,140 Dit is onze laatste deel, en ik heb een paar - we hebben maar drie 36 00:01:28,140 --> 00:01:29,790 dingen op de agenda. 37 00:01:29,790 --> 00:01:31,330 We gaan een beetje praten over de Q-gids. 38 00:01:31,330 --> 00:01:33,900 Dan gaan we besteden 15 minuten op een koele demo. 39 00:01:33,900 --> 00:01:36,890 Dan gaan we allemaal zeggen afscheid van elkaar. 40 00:01:36,890 --> 00:01:41,460 Je hoeft niet echt uw computers nodig of een pen of papier om aantekeningen te maken, of 41 00:01:41,460 --> 00:01:42,410 volgen langs. 42 00:01:42,410 --> 00:01:45,620 Dus ik neem aan dat als u uw computer up, dan ben je op Facebook. 43 00:01:45,620 --> 00:01:46,530 Gewoon zeggen. 44 00:01:46,530 --> 00:01:49,650 Tenzij je het invullen van de Q gids, die voor het eerst is. 45 00:01:49,650 --> 00:01:50,690 >> De Q gids is geopend. 46 00:01:50,690 --> 00:01:53,520 Je hebt een e-mail over het had. 47 00:01:53,520 --> 00:01:56,930 Zodra alle Q spullen bij de wordt ingediend einde van het jaar, krijg ik alle 48 00:01:56,930 --> 00:02:03,710 Q commentaren in de scores van iedereen die ervoor kiest om mij feedback te geven. 49 00:02:03,710 --> 00:02:04,810 En dus als je in de Q - 50 00:02:04,810 --> 00:02:07,440 Ik weet niet of je dit kunt doen, Jeff, want je bent en uitbreiding student. 51 00:02:07,440 --> 00:02:12,730 Maar als je in de Q, als je niet het al eerder gedaan, u kiest uw 52 00:02:12,730 --> 00:02:14,020 leraar, dat is David Malan. 53 00:02:14,020 --> 00:02:14,970 Je moet hem doen. 54 00:02:14,970 --> 00:02:15,690 >> En dan kun je kiezen TFS. 55 00:02:15,690 --> 00:02:17,750 En u kunt kiezen zo veel TFs als u wilt. 56 00:02:17,750 --> 00:02:18,990 Maar er zijn 60 van ons. 57 00:02:18,990 --> 00:02:20,350 Je hoeft niet iedereen te plukken. 58 00:02:20,350 --> 00:02:23,090 Je kunt me gewoon kiezen, of kies gewoon een paar andere mensen, als je wilt, om 59 00:02:23,090 --> 00:02:24,470 geef ze feedback ook. 60 00:02:24,470 --> 00:02:27,595 En dan krijg je scores op al deze verschillende assen, en dan kun je vertrekken 61 00:02:27,595 --> 00:02:28,570 hen feedback. 62 00:02:28,570 --> 00:02:31,520 >> En dan, net als een maand later, Ik zal alles wat feedback te krijgen. 63 00:02:31,520 --> 00:02:34,570 En net als de feedback die je bent geweest geeft me het hele semester, ik 64 00:02:34,570 --> 00:02:35,790 lezen dat alles. 65 00:02:35,790 --> 00:02:39,620 En het is erg behulpzaam, en het helpt me groeien als leerkracht en als een 66 00:02:39,620 --> 00:02:40,680 individu. 67 00:02:40,680 --> 00:02:43,360 Dus, alstublieft, neem de tijd om het te doen. 68 00:02:43,360 --> 00:02:45,020 We gaan alleen om hier te zijn voor, zoals, 30 minuten. 69 00:02:45,020 --> 00:02:48,090 Dus als je wilt, aan het einde van deze, tot nemen vijf minuten, en vul gewoon 70 00:02:48,090 --> 00:02:49,960 Q, omdat het geen rekening meer tijd dan dat. 71 00:02:49,960 --> 00:02:53,410 Dat zou ook geweldig zijn, en u krijg je cijfers terug sneller als 72 00:02:53,410 --> 00:02:54,620 u vult het Q. 73 00:02:54,620 --> 00:02:56,580 >> Dus de meeste van jullie hebben dat gedaan - 74 00:02:56,580 --> 00:02:58,240 of geen, ongeveer de helft van je al eerder gedaan. 75 00:02:58,240 --> 00:03:00,060 Maar als je een eerstejaars, dat is wat dat is. 76 00:03:00,060 --> 00:03:01,910 Het zal hetzelfde zijn voor alle klassen. 77 00:03:01,910 --> 00:03:02,270 Doe het. 78 00:03:02,270 --> 00:03:02,900 Het duurt vijf minuten. 79 00:03:02,900 --> 00:03:07,610 Maar ook, als je het een beetje serieus, dat is niet het ergste 80 00:03:07,610 --> 00:03:10,270 in de wereld, omdat ik zeker serieus te nemen. 81 00:03:10,270 --> 00:03:13,000 >> Dus als u mij een smiley gezicht, Ik zal waarderen dat. 82 00:03:13,000 --> 00:03:17,550 Maar ik zou ook op prijs stellen als u liet me meer dan een smiley. 83 00:03:17,550 --> 00:03:18,270 Maar het is aan jou. 84 00:03:18,270 --> 00:03:21,540 Ik kan je niet vertellen - of als een grote smiley geconfronteerd, met een hoofdletter D. Dat zou 85 00:03:21,540 --> 00:03:23,060 nog beter. 86 00:03:23,060 --> 00:03:27,860 >> OK, dat is alles wat ik heb voor de Q. Als je vragen hebt, kunt u vragen 87 00:03:27,860 --> 00:03:29,370 me, maar vrij vanzelfsprekend. 88 00:03:29,370 --> 00:03:31,090 Gewoon, alsjeblieft, vul het in. 89 00:03:31,090 --> 00:03:34,390 Ik zou het werkelijk waarderen, en het betekent veel voor me. 90 00:03:34,390 --> 00:03:38,910 >> OK, dit is wat we gaan besteden 15 minuten gaan door. 91 00:03:38,910 --> 00:03:39,800 Ik ga je laten zien wat code. 92 00:03:39,800 --> 00:03:42,080 Ik denk dat dit is echt cool, en dit heeft me meer 93 00:03:42,080 --> 00:03:43,810 opgewonden in de informatica. 94 00:03:43,810 --> 00:03:46,480 Dus ik hoop dat het zal doen de hetzelfde voor jullie allemaal. 95 00:03:46,480 --> 00:03:51,760 >> We gaan openen - en dit alles code ik je later te verzenden. 96 00:03:51,760 --> 00:03:52,680 Maar we gaan gewoon open te stellen - 97 00:03:52,680 --> 00:03:54,310 Ik ben in mijn terminal - 98 00:03:54,310 --> 00:03:56,810 we gaan dit programma open genaamd [? MySum. ?] 99 00:03:56,810 --> 00:04:01,290 100 00:04:01,290 --> 00:04:02,540 >> Kan iedereen lezen dat, of moet ik het groter maken? 101 00:04:02,540 --> 00:04:07,670 102 00:04:07,670 --> 00:04:13,040 Kan iemand mij vertellen wat deze code wil doen wanneer ik het, of wat dit 103 00:04:13,040 --> 00:04:14,320 programma zal doen wanneer ik het? 104 00:04:14,320 --> 00:04:30,710 105 00:04:30,710 --> 00:04:32,400 >> [? Avi,?] Wat denk je het gaat doen? 106 00:04:32,400 --> 00:04:33,335 Finish kauwen. 107 00:04:33,335 --> 00:04:35,033 Je moet niet met praten je mond open. 108 00:04:35,033 --> 00:04:38,330 109 00:04:38,330 --> 00:04:42,860 >> PUBLIEK: Duurt het een stelletje argumenten, vinden som van hen terug te keren 110 00:04:42,860 --> 00:04:45,285 sum, en print het dan uit? 111 00:04:45,285 --> 00:04:53,045 Of duurt het in twee argumenten, en dan doet het [onverstaanbaar]. 112 00:04:53,045 --> 00:04:56,460 En dan drukt wat de resultaten zijn. 113 00:04:56,460 --> 00:04:58,100 >> SPEAKER: Close, heel dichtbij. 114 00:04:58,100 --> 00:04:59,840 Iemand wilt toevoegen aan [? wat Avi?] gezegd heeft? 115 00:04:59,840 --> 00:05:04,830 116 00:05:04,830 --> 00:05:07,293 Heb je nodig om dit programma te geven elke command-line argumenten? 117 00:05:07,293 --> 00:05:09,145 >> PUBLIEK: Nee 118 00:05:09,145 --> 00:05:09,610 >> SPEAKER: Nee. 119 00:05:09,610 --> 00:05:11,250 Wat gebeurt er als je het niet geven elke command-line argumenten? 120 00:05:11,250 --> 00:05:12,500 Ik schrijf gewoon dot slash MySum. 121 00:05:12,500 --> 00:05:15,145 122 00:05:15,145 --> 00:05:16,630 >> Publiek: 1 plus 2 is gelijk aan 3. 123 00:05:16,630 --> 00:05:17,250 >> SPEAKER: 1 plus 2 is gelijk aan 3. 124 00:05:17,250 --> 00:05:18,570 En het zal drukken dat uit. 125 00:05:18,570 --> 00:05:19,450 Zo is het precies. 126 00:05:19,450 --> 00:05:21,370 Je zult zien dat de afdruk f lijn aan de onderkant. 127 00:05:21,370 --> 00:05:23,450 Het zal uitprinten a, b, en dan de som van a en b. 128 00:05:23,450 --> 00:05:26,360 En ik denk dat je ervan uit dat som correct werkt. 129 00:05:26,360 --> 00:05:28,120 Goede aanname. 130 00:05:28,120 --> 00:05:32,250 >> OK, en wat gebeurt er als ik geef het wat argument? 131 00:05:32,250 --> 00:05:33,010 [? Manu? ?] 132 00:05:33,010 --> 00:05:36,230 >> PUBLIEK: Het zal toevoegen wat het eerste argument is om b. 133 00:05:36,230 --> 00:05:37,150 Of 2, sorry. 134 00:05:37,150 --> 00:05:38,480 >> SPEAKER: Rechts, 2. 135 00:05:38,480 --> 00:05:42,470 Weet iemand wat strtol doet? 136 00:05:42,470 --> 00:05:43,960 Het is eigenlijk atoi. 137 00:05:43,960 --> 00:05:47,240 Atoi is eigenlijk een mooie versie van - 138 00:05:47,240 --> 00:05:49,600 of een eenvoudiger versie van strtol. 139 00:05:49,600 --> 00:05:51,790 Maar het daadwerkelijk gebruikt strtol. 140 00:05:51,790 --> 00:05:54,610 141 00:05:54,610 --> 00:05:58,010 En ik vond dat omdat ik wilde iets als atoi, en toen ik 142 00:05:58,010 --> 00:06:01,110 heeft atoi, hier lees ik beneden. 143 00:06:01,110 --> 00:06:04,380 En ik vond 'dit gedrag is hetzelfde als "strtol. 144 00:06:04,380 --> 00:06:06,850 Dus het is eigenlijk atoi voor alle doeleinden. 145 00:06:06,850 --> 00:06:09,320 En ik zie je zelfs nul en 10 gebruiken. 146 00:06:09,320 --> 00:06:14,390 >> Hiermee kunt u eigenlijk een string te nemen, en zet hem in een nummer en kies 147 00:06:14,390 --> 00:06:15,970 wat basis wilt u het erin doen 148 00:06:15,970 --> 00:06:17,370 Dus dit is basis 10 hier. 149 00:06:17,370 --> 00:06:20,455 Ik kon base twee hebben gedaan voor decimaal, basis 16 voor hexadecimaal. 150 00:06:20,455 --> 00:06:22,090 Het is wel cool. 151 00:06:22,090 --> 00:06:25,860 Maar lang verhaal kort, dit duurt twee nummers en voegt ze samen. 152 00:06:25,860 --> 00:06:29,260 >> Dus laten draaien. 153 00:06:29,260 --> 00:06:32,560 En je zult ook merken, is er zijn een aantal dingen - 154 00:06:32,560 --> 00:06:37,830 dus ik heb een makefile hier, en als je die open te stellen, sommige dingen 155 00:06:37,830 --> 00:06:39,270 u zult merken zijn verschillend. 156 00:06:39,270 --> 00:06:42,370 Met name dit argument hier, je waarschijnlijk 157 00:06:42,370 --> 00:06:43,010 nog niet eerder gezien dat. 158 00:06:43,010 --> 00:06:45,770 In het algemeen, dingen verzamelen we met streepje nul, nul. 159 00:06:45,770 --> 00:06:51,500 Dash nul, nul, betekent dat niet doen eventuele optimalisaties, compiler. 160 00:06:51,500 --> 00:06:54,950 Probeer niet en maken iets bijzonders, of maken iets sneller lopen, of krijgen 161 00:06:54,950 --> 00:06:56,530 ontdoen van variabelen die nodig zijn. 162 00:06:56,530 --> 00:06:58,080 Gebruik deze code niet te optimaliseren op alle, 163 00:06:58,080 --> 00:07:00,110 >> Ik vraag voor het derde niveau optimalisatie. 164 00:07:00,110 --> 00:07:02,580 Dus ik vraag compiler te doen veel optimalisaties. 165 00:07:02,580 --> 00:07:05,870 Je kan dat veranderen in de makefile wanneer je moet deze code, als je wilt 166 00:07:05,870 --> 00:07:07,190 om verschillende dingen te zien. 167 00:07:07,190 --> 00:07:08,660 Die we zullen laten zien in een tweede. 168 00:07:08,660 --> 00:07:12,080 Dus lopen we mijn som 1 plus 2 plus 3. 169 00:07:12,080 --> 00:07:13,445 Iemand mij twee argumenten. 170 00:07:13,445 --> 00:07:17,221 171 00:07:17,221 --> 00:07:18,210 >> PUBLIEK: 4 en 5. 172 00:07:18,210 --> 00:07:18,966 >> SPEAKER: 4 en 5. 173 00:07:18,966 --> 00:07:19,900 Dank u. 174 00:07:19,900 --> 00:07:20,860 Geweldig, het werkt. 175 00:07:20,860 --> 00:07:25,700 Wat zijn enkele andere goede argumenten om te proberen, om ervoor te zorgen dat dit werkt? 176 00:07:25,700 --> 00:07:27,050 Iedereen? 177 00:07:27,050 --> 00:07:27,430 >> PUBLIEK: 0. 178 00:07:27,430 --> 00:07:29,210 >> SPEAKER: 0 en? 179 00:07:29,210 --> 00:07:31,010 >> PUBLIEK: Negatief 3. 180 00:07:31,010 --> 00:07:32,040 >> SPEAKER: Het werkt. 181 00:07:32,040 --> 00:07:33,670 Maar dat waren goede keuzes. 182 00:07:33,670 --> 00:07:36,600 OK, dus laten we hier terug te gaan. 183 00:07:36,600 --> 00:07:38,540 Dit is mysum.c. 184 00:07:38,540 --> 00:07:42,440 U zult merken dat er ook iets genoemd sumfunction.c. 185 00:07:42,440 --> 00:07:48,110 En dit zegt, oh, er is iets gedefinieerd in sumfunction.c. 186 00:07:48,110 --> 00:07:51,480 Ik denk niet dit bestand opnemen in hier omdat ik het niet nodig is. 187 00:07:51,480 --> 00:07:54,840 Maar ik koppelen in toen ik compileren, die je opgevallen. 188 00:07:54,840 --> 00:07:57,380 >> Laten we omhoog. 189 00:07:57,380 --> 00:08:02,880 We zagen toen we samengesteld mysum, rechts daar wij verbonden in het binaire van 190 00:08:02,880 --> 00:08:04,130 sumfunction.o. 191 00:08:04,130 --> 00:08:05,780 192 00:08:05,780 --> 00:08:08,470 En ik wil niet de header bestand nodig omdat, natuurlijk, is er de 193 00:08:08,470 --> 00:08:09,240 functie verklaring. 194 00:08:09,240 --> 00:08:12,200 Zo scherp omvatten normaal gesproken gewoon puts in een functie verklaring. 195 00:08:12,200 --> 00:08:13,730 Hier heb ik zet ze gewoon rechtdoor in de code. 196 00:08:13,730 --> 00:08:16,370 En dus ik moet doen is link in de binaire, dat doe ik. 197 00:08:16,370 --> 00:08:19,950 >> Elke gissingen voor wat in sumfunction.c? 198 00:08:19,950 --> 00:08:21,950 Welke code die ik heb geschreven in sumfunction.c? 199 00:08:21,950 --> 00:08:25,445 200 00:08:25,445 --> 00:08:26,695 >> PUBLIEK: [onverstaanbaar]. 201 00:08:26,695 --> 00:08:29,460 202 00:08:29,460 --> 00:08:30,630 >> SPEAKER: Elke gissingen? 203 00:08:30,630 --> 00:08:30,940 Yeah? 204 00:08:30,940 --> 00:08:33,710 >> Publiek: Ik denk, definieert sommige [onverstaanbaar]. 205 00:08:33,710 --> 00:08:33,975 >> SPEAKER: Ja. 206 00:08:33,975 --> 00:08:37,650 Dus ik doe schrijven int som int a. 207 00:08:37,650 --> 00:08:41,120 Ik schrijf deze lijn, en dan heb ik geopend accolade, gesloten accolade. 208 00:08:41,120 --> 00:08:46,160 Wat denk je dat ik schrijf binnen die accolades, in die functie? 209 00:08:46,160 --> 00:08:46,600 Yeah? 210 00:08:46,600 --> 00:08:48,150 >> PUBLIEK: Return gelijk aan een. 211 00:08:48,150 --> 00:08:50,010 >> Processor: Dat is echt een goede gok. 212 00:08:50,010 --> 00:08:51,720 Wie denkt [? Manu?] Heeft er gelijk? 213 00:08:51,720 --> 00:08:54,122 Het zegt weer een plus b. 214 00:08:54,122 --> 00:08:55,860 OK, niet iedereen. 215 00:08:55,860 --> 00:08:56,520 [? Akshar,?] 216 00:08:56,520 --> 00:08:57,390 jij ook? 217 00:08:57,390 --> 00:09:00,430 Weet je het zeker? 218 00:09:00,430 --> 00:09:01,680 OK. 219 00:09:01,680 --> 00:09:09,551 220 00:09:09,551 --> 00:09:10,050 Wat? 221 00:09:10,050 --> 00:09:11,662 >> PUBLIEK: U het verkeerd gespeld. 222 00:09:11,662 --> 00:09:13,000 >> SPEAKER: Nee, dat deed ik niet. 223 00:09:13,000 --> 00:09:13,966 Yeah, just kidding. 224 00:09:13,966 --> 00:09:15,300 Je hebt gelijk. 225 00:09:15,300 --> 00:09:15,930 Dat is precies wat het zegt. 226 00:09:15,930 --> 00:09:17,110 Het is weer een plus b. 227 00:09:17,110 --> 00:09:18,570 Dat maakt veel zin. 228 00:09:18,570 --> 00:09:20,240 >> OK, laten we hier terug te gaan. 229 00:09:20,240 --> 00:09:21,490 We zien hoe de header - 230 00:09:21,490 --> 00:09:24,540 231 00:09:24,540 --> 00:09:25,660 dat is de return type. 232 00:09:25,660 --> 00:09:29,100 Vergeet niet, we hebben die dag een gezien, de terug type van de functie, maar gaat 233 00:09:29,100 --> 00:09:30,160 voor de naam van de functie int. 234 00:09:30,160 --> 00:09:31,560 Hier heb ik geschreven int. 235 00:09:31,560 --> 00:09:35,680 Wat denk je dat er zal gebeuren als in deze functie, ik schrijf niet int, maar 236 00:09:35,680 --> 00:09:38,270 Ik schrijf niet ondertekend? 237 00:09:38,270 --> 00:09:41,050 Het verschil is natuurlijk, is dat unsigned vertegenwoordigt alleen positieve 238 00:09:41,050 --> 00:09:43,620 getallen en int kan positief of negatief. 239 00:09:43,620 --> 00:09:45,450 >> Dus ik heb de terugkeer veranderd type van deze functie. 240 00:09:45,450 --> 00:09:49,370 Deze code komt niet overeen deze terugkeer te typen hier. 241 00:09:49,370 --> 00:09:50,925 Wat denk je dat er zal gebeuren toen ik compileren? 242 00:09:50,925 --> 00:09:53,840 243 00:09:53,840 --> 00:09:56,240 Je moet tegen me schreeuwen. 244 00:09:56,240 --> 00:09:57,700 Geen geschreeuw. 245 00:09:57,700 --> 00:10:00,050 >> Hoe zit het wanneer ik het programma? 246 00:10:00,050 --> 00:10:05,810 Laten we het doen voordat 0 negatief 3, of negatief 1. 247 00:10:05,810 --> 00:10:10,180 Het werkt nog steeds, hoewel ik zeg het is terug een unsigned integer. 248 00:10:10,180 --> 00:10:12,060 Het is duidelijk dat het niet terugkeren een unsigned integer. 249 00:10:12,060 --> 00:10:13,520 Het stuurt een integer. 250 00:10:13,520 --> 00:10:16,130 Het terugkerende negatieve 1. 251 00:10:16,130 --> 00:10:17,830 OK, dat is raar. 252 00:10:17,830 --> 00:10:27,030 >> Hoe zit het als ik ga in hier en dat doen? 253 00:10:27,030 --> 00:10:29,700 Dus ik heb alles veranderd van int naar unsigned. 254 00:10:29,700 --> 00:10:31,590 Het kan alleen gehele getallen zonder teken. 255 00:10:31,590 --> 00:10:33,840 Maar denken we nog steeds dat het zal lopen? 256 00:10:33,840 --> 00:10:35,652 >> PUBLIEK: Ja. 257 00:10:35,652 --> 00:10:37,270 >> SPEAKER: Het zal. 258 00:10:37,270 --> 00:10:39,410 Dat is te gek. 259 00:10:39,410 --> 00:10:43,140 En we gaan in een duidelijk toegewezen integer, kunnen we twee passeren ondertekend 260 00:10:43,140 --> 00:10:46,280 integer, het werkt nog steeds. 261 00:10:46,280 --> 00:10:52,150 >> OK, geen ideeën waarom het nog steeds werkt, of wat gebeurt er? 262 00:10:52,150 --> 00:10:53,368 Ja, Jeff. 263 00:10:53,368 --> 00:10:56,296 >> Publiek: Het heeft iets te maken met uw optimalisatie die u 264 00:10:56,296 --> 00:10:57,760 gemarkeerd. 265 00:10:57,760 --> 00:10:58,210 >> SPEAKER: Nee. 266 00:10:58,210 --> 00:11:00,570 We konden de optimalisatie veranderen, het zou nog steeds werken. 267 00:11:00,570 --> 00:11:02,240 Ik kan dat voor je doen, maar - 268 00:11:02,240 --> 00:11:02,930 >> Publiek: Ik zal uw woord te geloven. 269 00:11:02,930 --> 00:11:03,690 >> SPEAKER: Ja. 270 00:11:03,690 --> 00:11:09,690 Als je de makefile hier te openen, Ik veranderde de optimalisatie. 271 00:11:09,690 --> 00:11:11,570 Dus je kunt dash nul, nul doen. 272 00:11:11,570 --> 00:11:12,820 Het werkt nog steeds. 273 00:11:12,820 --> 00:11:16,839 274 00:11:16,839 --> 00:11:20,280 Andere gedachten? 275 00:11:20,280 --> 00:11:22,600 >> Jullie allemaal verwacht om te werken, zodat Waarom heb je verwacht dat het werkt? 276 00:11:22,600 --> 00:11:31,210 277 00:11:31,210 --> 00:11:32,150 Nee? 278 00:11:32,150 --> 00:11:33,660 Stilte. 279 00:11:33,660 --> 00:11:34,910 OK. 280 00:11:34,910 --> 00:11:39,271 281 00:11:39,271 --> 00:11:41,650 Ik moet zeven seconden te wachten, omdat ik een vraag. 282 00:11:41,650 --> 00:11:44,190 283 00:11:44,190 --> 00:11:48,660 >> Zodat de koele ding over C, en je hebt waarschijnlijk meegemaakt - u 284 00:11:48,660 --> 00:11:50,260 misschien niet, deze macht de eerste keer zijn. 285 00:11:50,260 --> 00:11:57,030 Maar zoals u allen weet, als ik schrijf iets in C, is het niet op te slaan als 286 00:11:57,030 --> 00:11:57,760 deze op de computer. 287 00:11:57,760 --> 00:11:59,440 Het is opgeslagen als enen en nullen. 288 00:11:59,440 --> 00:12:02,970 Het gaat van C-code naar assembly code. 289 00:12:02,970 --> 00:12:09,460 >> Heeft iemand gezien montagecode voor, machineassemblage code? 290 00:12:09,460 --> 00:12:10,630 We kijken naar een tweede. 291 00:12:10,630 --> 00:12:12,040 Het gaat van C-code naar assembly code. 292 00:12:12,040 --> 00:12:13,755 En jullie weten de fasen van compilatie. 293 00:12:13,755 --> 00:12:17,410 Je moest onthouden dat voor een quiz, en dan schrijf het op quiz nul. 294 00:12:17,410 --> 00:12:18,240 De meeste mensen hebben het mis. 295 00:12:18,240 --> 00:12:19,760 Ik denk dat jullie vastgespijkerd. 296 00:12:19,760 --> 00:12:22,880 >> Maar, jullie zijn de beste sectie voor quizzen, trouwens. 297 00:12:22,880 --> 00:12:25,210 Wat geweldig is. 298 00:12:25,210 --> 00:12:25,910 Het zal je geen kwaad doen. 299 00:12:25,910 --> 00:12:26,900 Wees niet ongerust. 300 00:12:26,900 --> 00:12:28,800 Maar het is echt cool. 301 00:12:28,800 --> 00:12:29,660 Goed gedaan. 302 00:12:29,660 --> 00:12:32,870 >> Dus het gaat om assembler, en dan gaat enen en nullen. 303 00:12:32,870 --> 00:12:35,500 En de enen en nullen worden opgeslagen op de computer, en dat is wat opgeslagen in 304 00:12:35,500 --> 00:12:38,340 de a.out, of in dit geval, het uitvoerbare bestand. 305 00:12:38,340 --> 00:12:41,040 En de computer draait enen en nullen. 306 00:12:41,040 --> 00:12:41,670 Rechts? 307 00:12:41,670 --> 00:12:43,890 We hebben dit eerder geleerd. 308 00:12:43,890 --> 00:12:47,490 >> Zodat de koele ding is, deze niet ondertekend idee, het idee van de soorten ints unsigned, 309 00:12:47,490 --> 00:12:50,490 et cetera, et cetera, dat is hier in de C taal. 310 00:12:50,490 --> 00:12:51,110 Deze bestaan. 311 00:12:51,110 --> 00:12:53,770 Maar types niet bestaan de enen en nullen. 312 00:12:53,770 --> 00:12:57,110 Types niet eens echt bestaan de assemblage taalniveau. 313 00:12:57,110 --> 00:13:00,075 Dus dat is iets dat bestaat in C wereld, maar bestaat niet in de computer 314 00:13:00,075 --> 00:13:01,640 wereld of processor wereld. 315 00:13:01,640 --> 00:13:04,660 Dat is een abstractie die de C taal heeft opgenomen, om onze 316 00:13:04,660 --> 00:13:06,240 leven gemakkelijker. 317 00:13:06,240 --> 00:13:09,990 >> Dus aan het eind van de dag, kan ik schrijven veel verschillende dingen hier, en het 318 00:13:09,990 --> 00:13:10,700 maakt niet het verschil maken. 319 00:13:10,700 --> 00:13:12,060 Want dat alleen bestaat in de C wereld. 320 00:13:12,060 --> 00:13:14,100 Het bestaat niet in de enen en nullen wereld. 321 00:13:14,100 --> 00:13:17,310 En onze programma's uitvoeren in de enen en nullen wereld. 322 00:13:17,310 --> 00:13:21,170 Dus je geest duidelijk nog niet geblazen. 323 00:13:21,170 --> 00:13:22,740 Maar ik denk dat dat is cool. 324 00:13:22,740 --> 00:13:23,530 Ja, Jeff. 325 00:13:23,530 --> 00:13:27,298 >> PUBLIEK: Dus, als in plaats van doen int, je char doen. 326 00:13:27,298 --> 00:13:27,770 En je was - 327 00:13:27,770 --> 00:13:29,311 >> SPEAKER: Laten we het doen in een sec. 328 00:13:29,311 --> 00:13:32,583 >> PUBLIEK: Want dan krijg je een unsigned gaande van negatieve 128 tot 329 00:13:32,583 --> 00:13:34,720 127 of 0 tot 255. 330 00:13:34,720 --> 00:13:36,760 >> SPEAKER: Dus char is problematisch. 331 00:13:36,760 --> 00:13:39,460 Weet iemand waarom char zou zijn problematisch, en het zou eigenlijk 332 00:13:39,460 --> 00:13:42,930 dingen veranderen in degene en nullen wereld? 333 00:13:42,930 --> 00:13:44,370 >> PUBLIEK: Vanwege de omvang van de char. 334 00:13:44,370 --> 00:13:46,200 >> SPEAKER: Grootte van char is 1. 335 00:13:46,200 --> 00:13:48,260 Dus unsigned is 4 bytes. 336 00:13:48,260 --> 00:13:50,080 Dus zou char dingen verpesten. 337 00:13:50,080 --> 00:13:55,660 Maar wat is 4 bytes dat is gerelateerd aan een char? 338 00:13:55,660 --> 00:13:57,820 Of op dat voegt een extra - 339 00:13:57,820 --> 00:13:59,760 kunt u een meer karakter zetten na char. 340 00:13:59,760 --> 00:14:00,200 >> PUBLIEK: Char ster. 341 00:14:00,200 --> 00:14:01,220 >> SPEAKER: Char ster heeft 4 bytes. 342 00:14:01,220 --> 00:14:02,490 Dus laten we iets doen dat is een char ster. 343 00:14:02,490 --> 00:14:05,470 344 00:14:05,470 --> 00:14:07,240 >> Dus dit zou waarschijnlijk werken, maar we zijn gaat nog iets te doen 345 00:14:07,240 --> 00:14:09,710 gekker dan dit. 346 00:14:09,710 --> 00:14:10,960 In mijn mening, gekker. 347 00:14:10,960 --> 00:14:21,060 348 00:14:21,060 --> 00:14:24,570 >> Ik heb nu geschreven een functie die terugkeert een pointer, en het duurt een 349 00:14:24,570 --> 00:14:29,480 pointer en een unsigned waarde - we zullen Wijzig deze terug naar int dus we zijn niet 350 00:14:29,480 --> 00:14:31,250 het maken van te veel veranderingen tegelijk. 351 00:14:31,250 --> 00:14:35,370 En het heeft een array genoemd, indexen in de array, en keert de 352 00:14:35,370 --> 00:14:35,850 adres van. 353 00:14:35,850 --> 00:14:37,470 We hebben deze operatoren eerder gezien. 354 00:14:37,470 --> 00:14:43,340 Dit, wat denk je dat dit gaat te doen, in ruil daarvoor, wanneer ik het? 355 00:14:43,340 --> 00:14:48,280 356 00:14:48,280 --> 00:14:49,070 Wat denk je dat het gaat doen? 357 00:14:49,070 --> 00:14:50,320 Elke gissingen? 358 00:14:50,320 --> 00:14:54,220 359 00:14:54,220 --> 00:14:55,320 >> PUBLIEK: Segfault. 360 00:14:55,320 --> 00:14:55,600 >> SPEAKER: Wat? 361 00:14:55,600 --> 00:14:56,660 Segfault? 362 00:14:56,660 --> 00:14:58,520 Dat is een goede gok. 363 00:14:58,520 --> 00:14:59,430 Tom zegt hetzelfde. 364 00:14:59,430 --> 00:15:02,240 Eventuele andere gissingen? 365 00:15:02,240 --> 00:15:05,260 >> Wie denkt dat het gaat om hetzelfde doen? 366 00:15:05,260 --> 00:15:06,510 Wie denkt dat het gaat om segfault? 367 00:15:06,510 --> 00:15:09,350 368 00:15:09,350 --> 00:15:10,230 Het doet hetzelfde. 369 00:15:10,230 --> 00:15:11,880 Sorry. 370 00:15:11,880 --> 00:15:13,860 >> Maar natuurlijk hebben we in 1 en 2. 371 00:15:13,860 --> 00:15:16,470 En die zijn beide geldig, toch? 372 00:15:16,470 --> 00:15:19,420 Laten we eens kijken, kunnen we naar de tweede plaats van een array. 373 00:15:19,420 --> 00:15:24,010 Maar wat als we b een negatief getal? 374 00:15:24,010 --> 00:15:26,380 Dat is waarschijnlijk een betere schatting voor iets segfaulting. 375 00:15:26,380 --> 00:15:30,310 376 00:15:30,310 --> 00:15:32,260 Het werkt nog steeds. 377 00:15:32,260 --> 00:15:35,020 >> OK, dit is nu gek. 378 00:15:35,020 --> 00:15:38,350 Dit is even geldig som functie. 379 00:15:38,350 --> 00:15:40,470 Dit doet precies hetzelfde als return a en b. 380 00:15:40,470 --> 00:15:44,600 Kan iemand uitleggen waarom dit een goede Kortom functie, of waarom dit werkt? 381 00:15:44,600 --> 00:15:45,850 Wat hier gebeurt? 382 00:15:45,850 --> 00:15:49,360 383 00:15:49,360 --> 00:15:55,750 Waarom heeft deze doen precies hetzelfde zoiets als onze oude som functie? 384 00:15:55,750 --> 00:15:56,890 [? Akshar,?] 385 00:15:56,890 --> 00:15:58,155 wat er aan de hand? 386 00:15:58,155 --> 00:16:01,540 >> PUBLIEK: Want als je een een dat is een adres aan 387 00:16:01,540 --> 00:16:03,950 de locatie geheugen - 388 00:16:03,950 --> 00:16:07,910 en wanneer je de ampersand doen, gaat naar dat geheugen adres. 389 00:16:07,910 --> 00:16:13,610 En als je naar B, je bent een soort van bewegende stappen uit dat het geheugen adres, 390 00:16:13,610 --> 00:16:15,550 je terug bent dat. 391 00:16:15,550 --> 00:16:20,083 Dus je bent eigenlijk, in feite, het toevoegen van a en b [onverstaanbaar]. 392 00:16:20,083 --> 00:16:23,300 393 00:16:23,300 --> 00:16:26,222 Waar zijn standaard bewerkingen op die terugkeer? 394 00:16:26,222 --> 00:16:27,683 Zoals, waar komen de haakjes vallen? 395 00:16:27,683 --> 00:16:30,610 Is de terugkeer van het adres op een voor of na [onverstaanbaar]? 396 00:16:30,610 --> 00:16:32,380 >> SPEAKER: Het gaat om index in b - 397 00:16:32,380 --> 00:16:34,430 of index in een - en dan terug het adres. 398 00:16:34,430 --> 00:16:38,800 399 00:16:38,800 --> 00:16:41,340 OK, dus is iedereen begrijpen Wat [? Akshar?] 400 00:16:41,340 --> 00:16:45,830 zei, en legde uit, waarom dit werkt? 401 00:16:45,830 --> 00:16:49,430 Dat deed ik niet, de eerste keer dat iemand verklaarde dit voor mij. 402 00:16:49,430 --> 00:16:51,900 Zou iemand graag een foto om dit te verklaren? 403 00:16:51,900 --> 00:16:55,320 We gaan een tekening, met geen markers, dat is geweldig. 404 00:16:55,320 --> 00:16:57,920 Vond een aantal. 405 00:16:57,920 --> 00:17:03,390 >> Dus we hebben een scala dat is een reeks dozen. 406 00:17:03,390 --> 00:17:07,160 407 00:17:07,160 --> 00:17:13,710 De eerste is een index 0, index 1, 2, 3, 4, punt, punt, punt. 408 00:17:13,710 --> 00:17:15,609 Een typische array. 409 00:17:15,609 --> 00:17:19,540 En naast het hebben indices, ze hebben allemaal geheugenadressen. 410 00:17:19,540 --> 00:17:30,190 Dus laten we dit geheugen adres 13, 14, 15, 16, 17 et cetera. 411 00:17:30,190 --> 00:17:32,490 Iedereen is hier zo ver. 412 00:17:32,490 --> 00:17:35,810 >> Dus een is een adres. 413 00:17:35,810 --> 00:17:38,850 De naam van een array, een pointer wordt daar opgeslagen. 414 00:17:38,850 --> 00:17:42,730 Het is een pointer, het is een geheugenlocatie het begin van de matrix. 415 00:17:42,730 --> 00:17:45,910 Als dit het array een zou een waarde van 13 zijn. 416 00:17:45,910 --> 00:17:49,110 En natuurlijk, we kunnen geven een willekeurige waarde die we willen. 417 00:17:49,110 --> 00:17:52,450 Char ster een, kunnen we een geven elke geheugenadres we willen. 418 00:17:52,450 --> 00:17:55,940 We kunnen het geven 0, kunnen we het geven negatieve 1 - negatief 1 bestaat niet, 419 00:17:55,940 --> 00:17:58,820 dus dat is waarschijnlijk problematisch, maar je zag dat het nog werkte. 420 00:17:58,820 --> 00:18:03,070 Dus we kunnen een willekeurig aantal die we willen geven, alle vormen van geheugen adres dat we willen. 421 00:18:03,070 --> 00:18:08,720 >> Dan, int b zegt: OK, ga dit nummer van stappen in de array. 422 00:18:08,720 --> 00:18:13,150 Als b gelijk is aan 2, en gelijk aan 13, we zijn op geheugenadres 13. 423 00:18:13,150 --> 00:18:17,330 En we gaan twee stappen, en zo zijn we hier. 424 00:18:17,330 --> 00:18:21,150 En de ampersand betekent terugkeer het adres van deze locatie. 425 00:18:21,150 --> 00:18:23,990 En dit adres is uiteraard 15. 426 00:18:23,990 --> 00:18:28,710 Dus krijgen we 13 plus 2, of a plus b, die 15. 427 00:18:28,710 --> 00:18:29,590 >> De vraag is echter - 428 00:18:29,590 --> 00:18:30,250 Het spijt me. 429 00:18:30,250 --> 00:18:34,324 Betekent dat de dingen verduidelijken waarom dit werkt? 430 00:18:34,324 --> 00:18:36,300 >> PUBLIEK: Waarom zou het werk gaan - 431 00:18:36,300 --> 00:18:38,770 dus je kunt een array en hebben naar een negatieve index? 432 00:18:38,770 --> 00:18:39,050 >> SPEAKER: Juist. 433 00:18:39,050 --> 00:18:40,870 Dus deden we negatieve getallen, dus dat is het - 434 00:18:40,870 --> 00:18:42,770 maakt dit gevoel wel, eerste, [? Avi,?] 435 00:18:42,770 --> 00:18:43,120 voor u? 436 00:18:43,120 --> 00:18:48,840 >> Publiek: Ja, ik ben gewoon [Onverstaanbaar], maar - 437 00:18:48,840 --> 00:18:50,440 >> SPEAKER: Ja, dit zou 15 terugkeren. 438 00:18:50,440 --> 00:18:53,523 Als een was 13, en b is 2, Dit zou 15 terugkeren. 439 00:18:53,523 --> 00:18:58,160 >> PUBLIEK: Dus de nul indexering niet uitgegroeid tot een probleem, toch? 440 00:18:58,160 --> 00:19:00,160 Omdat je beweegt van 0. 441 00:19:00,160 --> 00:19:00,470 >> SPEAKER: Juist. 442 00:19:00,470 --> 00:19:05,000 Dus je beweegt - dus als b is 0, je zou nergens bewegen. 443 00:19:05,000 --> 00:19:06,330 En je zou net terug het adres - 444 00:19:06,330 --> 00:19:10,830 als b is 0, dat is in wezen terug dat adres van een. 445 00:19:10,830 --> 00:19:13,960 Passeren in char ster een en terugzending van het adres van een is net terug van een, 446 00:19:13,960 --> 00:19:15,860 wezen. 447 00:19:15,860 --> 00:19:18,280 >> OK, de vraag is waarom doen negatieve getallen werken? 448 00:19:18,280 --> 00:19:21,670 En dat is het leuke aan dit, want dit moet segfault. 449 00:19:21,670 --> 00:19:25,110 En het zou een segmentatie fout geeft als we zoiets deed. 450 00:19:25,110 --> 00:19:28,050 451 00:19:28,050 --> 00:19:29,300 Laten we zeggen, int. 452 00:19:29,300 --> 00:19:34,390 453 00:19:34,390 --> 00:19:39,810 Dus deze code ziet er identiek en moet identiek gedragen. 454 00:19:39,810 --> 00:19:44,550 Wezen, x is een vuilnis variabel, en dus moet deze identiek gedragen. 455 00:19:44,550 --> 00:19:46,370 >> Laten we dit - 456 00:19:46,370 --> 00:19:47,620 oops - 457 00:19:47,620 --> 00:19:54,790 458 00:19:54,790 --> 00:19:56,040 in ster. 459 00:19:56,040 --> 00:19:59,160 460 00:19:59,160 --> 00:20:02,733 OK, we zijn al fouten krijgt hier, omdat het al gaat om boos te zijn 461 00:20:02,733 --> 00:20:04,610 bij mij, omdat het al weet wat er gaat komen. 462 00:20:04,610 --> 00:20:07,060 Vooral de tweede. 463 00:20:07,060 --> 00:20:09,800 Adres van gestapelde geheugen geassocieerd een lokale variabele. 464 00:20:09,800 --> 00:20:14,220 >> Wezen, ik ga niet te compileren dit, en dan ga ik om ongedaan te maken doen 465 00:20:14,220 --> 00:20:14,920 wat we net deden. 466 00:20:14,920 --> 00:20:19,130 Maar omdat we eigenlijk nooit toegang tot wat er op het geheugen 467 00:20:19,130 --> 00:20:21,930 locatie, het gaat niet om segfault. 468 00:20:21,930 --> 00:20:26,450 We zijn nooit eigenlijk op zoek naar wat er in de tweede doos of wat zit er in elke doos 469 00:20:26,450 --> 00:20:28,340 van deze array. 470 00:20:28,340 --> 00:20:30,980 We zeggen alleen, hier is het adres van het ding die we zoeken en 471 00:20:30,980 --> 00:20:32,410 terug dat adres. 472 00:20:32,410 --> 00:20:35,700 We zijn eigenlijk nooit in te gaan op de array om te kijken naar die locatie. 473 00:20:35,700 --> 00:20:39,140 En omdat we nooit het geheugen aanraakt, krijgen we niet in de problemen. 474 00:20:39,140 --> 00:20:40,760 We hebben geen een segfault krijgen. 475 00:20:40,760 --> 00:20:46,225 >> Als we geprobeerd om, opnieuw, raakt dat geheugen, raakt wat er op a of b - 476 00:20:46,225 --> 00:20:49,940 of een beugel B en uitgaande a is 0 en - 477 00:20:49,940 --> 00:20:53,040 als er een is 0, zelfs, dat zou mooi zijn slecht, omdat we niet kunnen gaan 478 00:20:53,040 --> 00:20:54,090 helemaal naar beneden daar. 479 00:20:54,090 --> 00:20:58,250 Indien a en b zijn beide 0, en we probeerden raken wat er was, dan zouden we 480 00:20:58,250 --> 00:20:59,110 krijgen in de problemen. 481 00:20:59,110 --> 00:21:02,160 Maar als we niet aan wat er is, we hebben net weer het adres, het is 482 00:21:02,160 --> 00:21:08,300 eigenlijk niet van plan om segfault omdat het laat je die handelingen uitvoeren. 483 00:21:08,300 --> 00:21:11,920 Het wordt alleen maar boos op je, en krijgt super boos, wanneer u probeert en raak 484 00:21:11,920 --> 00:21:15,740 de werkelijke geheugen en terug wat op die geheugenplaats. 485 00:21:15,740 --> 00:21:17,690 >> Is dat logisch? 486 00:21:17,690 --> 00:21:24,820 Dat is gewoon een gek deel van C. Dus, we hebben nog een van deze. 487 00:21:24,820 --> 00:21:27,760 488 00:21:27,760 --> 00:21:29,700 >> Wie denkt dat dit cool? 489 00:21:29,700 --> 00:21:30,280 Meer mensen. 490 00:21:30,280 --> 00:21:31,070 Dat is goed. 491 00:21:31,070 --> 00:21:34,860 OK, dit is onze laatste. 492 00:21:34,860 --> 00:21:37,314 En ik zou graag willen dat u mij zeggen of of je niet dat dit gaat 493 00:21:37,314 --> 00:21:38,564 om precies dezelfde dingen doen. 494 00:21:38,564 --> 00:22:06,050 495 00:22:06,050 --> 00:22:07,390 >> Ik heb deze opgeschreven ergens. 496 00:22:07,390 --> 00:22:08,640 Ik ga ze niet onthouden. 497 00:22:08,640 --> 00:22:33,350 498 00:22:33,350 --> 00:22:42,900 >> Laten we eens kijken, 8, 4 b, 4, 2, 4, 0, 8, 0, 3, 4, 4, 2, 4, 0, 4. 499 00:22:42,900 --> 00:22:46,670 Dus dit is een array nu, geen functie. 500 00:22:46,670 --> 00:22:49,640 En het is een array omdat we vierkant haakjes, niet accolades. 501 00:22:49,640 --> 00:22:52,360 En het is een array van welk type? 502 00:22:52,360 --> 00:22:55,540 503 00:22:55,540 --> 00:22:56,862 Iedereen, hmm? 504 00:22:56,862 --> 00:22:57,694 >> PUBLIEK: Hun hexadecimale getallen? 505 00:22:57,694 --> 00:22:59,650 >> SPEAKER: Maar wat is het type C? 506 00:22:59,650 --> 00:23:00,710 Ze hebben allemaal hexadecimale getallen. 507 00:23:00,710 --> 00:23:01,960 Wat is het type C? 508 00:23:01,960 --> 00:23:04,730 509 00:23:04,730 --> 00:23:05,480 Het vertelt u. 510 00:23:05,480 --> 00:23:07,350 >> PUBLIEK: Het is unsigned chars. 511 00:23:07,350 --> 00:23:09,170 >> SPEAKER: Rechts, unsigned chars. 512 00:23:09,170 --> 00:23:13,050 En twee hexadecimale getallen een byte. 513 00:23:13,050 --> 00:23:18,540 Dit zijn 1, 2, 3, 4, 5, 6, 7, 8, 9 bytes. 514 00:23:18,540 --> 00:23:21,360 Het is een array van bytes 9. 515 00:23:21,360 --> 00:23:25,530 >> OK, u waarschijnlijk al weet het antwoord op deze vraag. 516 00:23:25,530 --> 00:23:29,840 Maar, wat denk je zal gebeuren als ik dit uitvoeren? 517 00:23:29,840 --> 00:23:34,110 Ik zeg nogmaals, in mysum.c, Ik verwacht een functie 518 00:23:34,110 --> 00:23:36,280 dat duurt twee gehele getallen. 519 00:23:36,280 --> 00:23:40,265 En ik plaats zeggen dat som is een array van karakters. 520 00:23:40,265 --> 00:23:42,780 521 00:23:42,780 --> 00:23:48,070 Wat gaat er gebeuren wanneer Ik run. / Mysum en maken? 522 00:23:48,070 --> 00:23:53,230 >> Nou, ten eerste, de meeste van jullie zullen waarschijnlijk het erover eens dat make - oh nee, just kidding. 523 00:23:53,230 --> 00:23:54,746 Wat heb ik verkeerd gedaan? 524 00:23:54,746 --> 00:23:55,996 Uh oh. 525 00:23:55,996 --> 00:23:59,220 526 00:23:59,220 --> 00:24:01,160 Dat moet accolades. 527 00:24:01,160 --> 00:24:02,790 Dat is hoe je een array initialiseren. 528 00:24:02,790 --> 00:24:04,040 My bad. 529 00:24:04,040 --> 00:24:07,530 530 00:24:07,530 --> 00:24:11,670 >> Dus we al eerder dat types zag zijn een C-niveau abstractie, geen 531 00:24:11,670 --> 00:24:12,610 computer niveau abstractie. 532 00:24:12,610 --> 00:24:16,360 Dus de meeste van u verwacht dat het waarschijnlijk om maken, of de veronderstelling dat het zou maken. 533 00:24:16,360 --> 00:24:18,680 Maar wat als ik run. / Mysum? 534 00:24:18,680 --> 00:24:19,930 Wat gaat er gebeuren? 535 00:24:19,930 --> 00:24:21,790 536 00:24:21,790 --> 00:24:23,422 Elke gissingen? 537 00:24:23,422 --> 00:24:25,270 >> PUBLIEK: Het gaat om afdrukken van een woord. 538 00:24:25,270 --> 00:24:26,310 >> SPEAKER: Het gaat om afdrukken van een woord. 539 00:24:26,310 --> 00:24:29,335 Welk woord? 540 00:24:29,335 --> 00:24:32,200 >> PUBLIEK: [onverstaanbaar]. 541 00:24:32,200 --> 00:24:33,240 >> SPEAKER: Alle andere gissingen? 542 00:24:33,240 --> 00:24:34,000 OK, afdrukken van een frase. 543 00:24:34,000 --> 00:24:35,130 U kunt elke zin hebben. 544 00:24:35,130 --> 00:24:36,240 Dat zal uw zijde. 545 00:24:36,240 --> 00:24:38,480 Iedereen die een andere schatting heeft? 546 00:24:38,480 --> 00:24:39,730 Anna, wat is je gok? 547 00:24:39,730 --> 00:24:42,675 548 00:24:42,675 --> 00:24:44,615 >> PUBLIEK: Het zal afdrukken - 549 00:24:44,615 --> 00:24:47,525 550 00:24:47,525 --> 00:24:49,480 twee letters, of [onverstaanbaar] een letter. 551 00:24:49,480 --> 00:24:51,460 >> SPEAKER: Een brief. 552 00:24:51,460 --> 00:24:53,260 >> PUBLIEK: Kan ik tellen hoe veel [onverstaanbaar]? 553 00:24:53,260 --> 00:24:55,426 >> SPEAKER: Nine. 554 00:24:55,426 --> 00:24:56,640 Nou, ik ga het uit te voeren. 555 00:24:56,640 --> 00:24:58,650 Het doet precies hetzelfde. 556 00:24:58,650 --> 00:25:00,190 Het voegt twee getallen met elkaar. 557 00:25:00,190 --> 00:25:02,740 Nou, laten we passeren de twee argumenten. 558 00:25:02,740 --> 00:25:03,710 Het heeft geen argumenten hebben. 559 00:25:03,710 --> 00:25:06,080 Dus ik weet niet waar het zou kunnen eventueel je deze argumenten. 560 00:25:06,080 --> 00:25:07,710 Maar laten we overgaan op 100 en 0. 561 00:25:07,710 --> 00:25:09,200 En het voegt 100 en 0. 562 00:25:09,200 --> 00:25:10,220 Dat is krankzinnig. 563 00:25:10,220 --> 00:25:12,280 Ik denk het wel. 564 00:25:12,280 --> 00:25:14,480 >> Negatieve 4, dat ook werkt. 565 00:25:14,480 --> 00:25:15,650 Je kunt doen wat je wilt. 566 00:25:15,650 --> 00:25:17,920 Dit is een even geldig som functie. 567 00:25:17,920 --> 00:25:19,640 Dit is een bedrag functie. 568 00:25:19,640 --> 00:25:21,510 Maar nee, je zegt het is een array van bytes. 569 00:25:21,510 --> 00:25:23,570 Dus wat is hier aan de hand? 570 00:25:23,570 --> 00:25:27,240 >> Dus nogmaals, laten we teruggaan naar dit idee dat we zeiden aan het begin. 571 00:25:27,240 --> 00:25:32,050 Je gaat van C-level code, om de montage taal, om enen en nullen. 572 00:25:32,050 --> 00:25:33,050 Dit is hexadecimaal. 573 00:25:33,050 --> 00:25:35,780 Maar dit is eigenlijk gewoon een veel enen en nullen. 574 00:25:35,780 --> 00:25:39,230 Dit is 72 enen en nullen, toch? 575 00:25:39,230 --> 00:25:40,550 72 enen en nullen. 576 00:25:40,550 --> 00:25:42,160 9 bytes. 577 00:25:42,160 --> 00:25:43,740 Elke byte is 8 bits. 578 00:25:43,740 --> 00:25:44,760 Elke bit is een of nul. 579 00:25:44,760 --> 00:25:45,920 Dus 72 degenen of nullen. 580 00:25:45,920 --> 00:25:48,780 Ik heb ze net geschreven als dit - in plaats van het uit te schrijven als veel 581 00:25:48,780 --> 00:25:49,730 enen en nullen. 582 00:25:49,730 --> 00:25:53,560 >> Maar dit zal gaan van C-niveau taal, montage 583 00:25:53,560 --> 00:25:54,620 taal, naar code. 584 00:25:54,620 --> 00:25:59,020 En dit zal uit te printen in de code, ergens, deze 72 enen en nullen 585 00:25:59,020 --> 00:26:00,910 dat ik hier heb geschreven. 586 00:26:00,910 --> 00:26:03,610 Zo ergens, dat - 587 00:26:03,610 --> 00:26:04,850 laten we gaan hier - 588 00:26:04,850 --> 00:26:11,240 ergens in mysum het programma er zijn deze 72 enen en nullen die ik heb 589 00:26:11,240 --> 00:26:14,930 geschreven en vertelde het aan te schrijven. 590 00:26:14,930 --> 00:26:19,331 >> Nu, elke gissingen voor wat die 72 enen en nullen betekenen? 591 00:26:19,331 --> 00:26:21,240 >> PUBLIEK: Waarschijnlijk hetzelfde zoiets als terug een plus b. 592 00:26:21,240 --> 00:26:22,890 >> SPEAKER: Waarschijnlijk hetzelfde zoiets als terug een plus b. 593 00:26:22,890 --> 00:26:23,730 Laten we controleren dat. 594 00:26:23,730 --> 00:26:25,210 Laten we eens uitzoeken hoe ik dit deed. 595 00:26:25,210 --> 00:26:31,840 >> Dus als je hier terug gaan, ik zeg je om deze opdracht uit te voeren, objdump-S 596 00:26:31,840 --> 00:26:34,290 sumfunction.o. 597 00:26:34,290 --> 00:26:36,230 Laten we gaan draaien. objdump - 598 00:26:36,230 --> 00:26:37,990 obj, dumpen. 599 00:26:37,990 --> 00:26:39,840 In principe kan mij wat ik wil zien. 600 00:26:39,840 --> 00:26:40,840 Het kan mij de assembler. 601 00:26:40,840 --> 00:26:42,730 Het kan mij de enen en nullen. 602 00:26:42,730 --> 00:26:43,840 Het heeft een ton van de vlaggen. 603 00:26:43,840 --> 00:26:45,860 Dit is degene die we gaan om voor nu. 604 00:26:45,860 --> 00:26:46,980 Dot - 605 00:26:46,980 --> 00:26:48,810 zoals je ziet in de dia's - 606 00:26:48,810 --> 00:26:53,840 dash hoofdletter S zegt intersperse, broncode - 607 00:26:53,840 --> 00:26:58,410 deze lijn is uit C - met de montage code en met de enen en nullen. 608 00:26:58,410 --> 00:27:00,350 En we gaan lopen het op sumfunction.o. 609 00:27:00,350 --> 00:27:01,410 Want het zal makkelijker zijn om te zien. 610 00:27:01,410 --> 00:27:02,670 Again - hmm? 611 00:27:02,670 --> 00:27:04,700 >> PUBLIEK: U het verkeerd gespeld. 612 00:27:04,700 --> 00:27:05,930 >> SPEAKER: Maar ik ben eigenlijk aan de hand om het vrij te maken voor een tweede. 613 00:27:05,930 --> 00:27:09,160 Ik ga eerst naar openen gewoon sumfuntion.o. 614 00:27:09,160 --> 00:27:11,170 >> Publiek: Je verwoord het de eerste keer fout. 615 00:27:11,170 --> 00:27:12,420 >> SPEAKER: Classic. 616 00:27:12,420 --> 00:27:14,790 617 00:27:14,790 --> 00:27:15,480 Som - 618 00:27:15,480 --> 00:27:16,680 dat is een moeilijk woord, dat wel. 619 00:27:16,680 --> 00:27:19,050 Je zou verbaasd zijn. 620 00:27:19,050 --> 00:27:21,560 OK, dus dit is sumfunction.o. 621 00:27:21,560 --> 00:27:24,494 622 00:27:24,494 --> 00:27:26,220 Ik kon niet eens vertellen. 623 00:27:26,220 --> 00:27:30,250 Er is een heleboel nullen, duidelijk veel nullen, en er is een aantal andere 624 00:27:30,250 --> 00:27:31,930 spul dat niet nullen. 625 00:27:31,930 --> 00:27:33,220 Maar meestal nullen. 626 00:27:33,220 --> 00:27:35,120 Lijkt alsof er wat degenen. 627 00:27:35,120 --> 00:27:36,810 Zo duidelijk, dit is moeilijk te lezen. 628 00:27:36,810 --> 00:27:39,320 Dat is de binaire taal. 629 00:27:39,320 --> 00:27:40,710 >> Laten we nu open - 630 00:27:40,710 --> 00:27:50,190 631 00:27:50,190 --> 00:27:52,350 wat? 632 00:27:52,350 --> 00:27:53,600 Wat doe ik verkeerd? 633 00:27:53,600 --> 00:27:56,955 634 00:27:56,955 --> 00:27:58,434 Heb ik correct te spellen het? 635 00:27:58,434 --> 00:28:09,865 636 00:28:09,865 --> 00:28:11,120 OK, dit is onhandig. 637 00:28:11,120 --> 00:28:37,560 638 00:28:37,560 --> 00:28:40,158 Ik moet een seconde te achterhalen wat ik verkeerd doe. 639 00:28:40,158 --> 00:28:46,030 640 00:28:46,030 --> 00:28:49,310 Dat is een fout. 641 00:28:49,310 --> 00:28:50,560 Dat is raar. 642 00:28:50,560 --> 00:28:58,080 643 00:28:58,080 --> 00:29:01,800 Oh, dat is waarom. 644 00:29:01,800 --> 00:29:09,880 >> Ik ga terug naar onze eerste een, dus kunnen we kijken naar de 645 00:29:09,880 --> 00:29:10,560 objectcode van dit. 646 00:29:10,560 --> 00:29:13,390 Omdat er niet echt van plan om van alles zijn als we gewoon de 647 00:29:13,390 --> 00:29:14,640 enen en nullen in 648 00:29:14,640 --> 00:29:29,000 649 00:29:29,000 --> 00:29:30,200 Daar gaan we. 650 00:29:30,200 --> 00:29:32,425 OK, dus iedereen kan dit zien. 651 00:29:32,425 --> 00:29:38,130 Deze functie, zoals ik al zei, het blussen van de C lijnen - 652 00:29:38,130 --> 00:29:39,060 broncode lijnen - 653 00:29:39,060 --> 00:29:41,000 met enkele montage-instructies. 654 00:29:41,000 --> 00:29:42,760 >> Hier is onze broncode lijn. 655 00:29:42,760 --> 00:29:44,910 Hier is er een, hier is een andere. 656 00:29:44,910 --> 00:29:46,540 Hier is de handleidingen. 657 00:29:46,540 --> 00:29:47,820 Dat is hoe ze eruit zien. 658 00:29:47,820 --> 00:29:49,010 Montagevoorschrift - 659 00:29:49,010 --> 00:29:51,530 U kunt meer van deze leren als je nemen andere CS klassen, maar ze zijn 660 00:29:51,530 --> 00:29:53,500 over het algemeen een instructie. 661 00:29:53,500 --> 00:29:57,940 En dan een bron en een bestemming. 662 00:29:57,940 --> 00:30:02,740 >> En dan hier is de binaire code die overeenkomt met het verzamelcentrum 663 00:30:02,740 --> 00:30:04,940 instructie. 664 00:30:04,940 --> 00:30:09,760 Dus zoals je kunt zien, dit bedrag functie, aan het eind van de dag, drie 665 00:30:09,760 --> 00:30:10,950 montage-instructies. 666 00:30:10,950 --> 00:30:12,870 Slechts drie. 667 00:30:12,870 --> 00:30:14,180 Een mov - 668 00:30:14,180 --> 00:30:16,740 Dit m-o-v staat voor een verhuizing. 669 00:30:16,740 --> 00:30:17,780 Staat voor Toevoeg. 670 00:30:17,780 --> 00:30:20,440 En r-e-t staat voor Return. 671 00:30:20,440 --> 00:30:22,540 Dus een mov, een add, een terugkeer. 672 00:30:22,540 --> 00:30:27,970 En deze, hier, zijn de nullen en degenen die overeenkomen met die code. 673 00:30:27,970 --> 00:30:31,100 >> Dus die nullen en enen, als je ken die, kunt u gewoon 674 00:30:31,100 --> 00:30:32,140 die recht naar binnen 675 00:30:32,140 --> 00:30:34,130 En dan zal het op de precies hetzelfde. 676 00:30:34,130 --> 00:30:37,260 Omdat aan het einde van de dag, alle je bent het uitvoeren van een lange reeks van 677 00:30:37,260 --> 00:30:38,480 nullen en enen. 678 00:30:38,480 --> 00:30:40,700 En dat is wat de code echt is. 679 00:30:40,700 --> 00:30:41,770 >> En de reden - 680 00:30:41,770 --> 00:30:43,680 laten we eens kijken naar een ding. 681 00:30:43,680 --> 00:30:45,440 Had ik de makefile geopend? 682 00:30:45,440 --> 00:30:48,510 Dus als we gingen terug naar dash nul, nul hier - 683 00:30:48,510 --> 00:30:52,220 684 00:30:52,220 --> 00:30:57,300 sorry, kapitaal o, hoofdstad o nul niet nul nul. 685 00:30:57,300 --> 00:31:01,810 En we hebben te maken, het zou werken nog steeds hetzelfde. 686 00:31:01,810 --> 00:31:05,420 Maar nu merk je dat er een veel meer montage-instructies. 687 00:31:05,420 --> 00:31:09,090 Dat komt omdat, nogmaals, vroeg ik de compiler elke optimalisatie niet te doen. 688 00:31:09,090 --> 00:31:12,800 >> Dus kon ik nog steeds al deze nemen nullen en enen, en gooi ze in, 689 00:31:12,800 --> 00:31:13,390 en dat zou werken. 690 00:31:13,390 --> 00:31:15,850 Ik deed gewoon de optimalisaties, omdat het is een beetje makkelijker, dan, 691 00:31:15,850 --> 00:31:17,310 die matrix te schrijven. 692 00:31:17,310 --> 00:31:19,730 Maar dit zou net zo goed werken. 693 00:31:19,730 --> 00:31:24,460 >> OK, we gaan nog een laatste ding te doen, omdat ik denk dat is de coolste onderdeel. 694 00:31:24,460 --> 00:31:27,410 Ook al is iedereen duidelijk reeds geblazen en sprakeloos. 695 00:31:27,410 --> 00:31:30,520 696 00:31:30,520 --> 00:31:31,670 Onze geest wordt geblazen. 697 00:31:31,670 --> 00:31:32,920 [Onverstaanbaar] 698 00:31:32,920 --> 00:31:47,580 699 00:31:47,580 --> 00:31:51,520 >> Dus, dit zijn uit een andere CS klasse, die super interessant, 700 00:31:51,520 --> 00:31:52,970 die ik heb genomen - 701 00:31:52,970 --> 00:31:54,140 CS61. 702 00:31:54,140 --> 00:31:55,910 Ik je ten zeerste aan te moedigen om het te nemen. 703 00:31:55,910 --> 00:31:58,990 Maar het leuke gedeelte over dit feit, dat dingen zijn gewoon nullen en enen, 704 00:31:58,990 --> 00:32:01,270 zijn dat alles nullen en enen. 705 00:32:01,270 --> 00:32:05,330 >> Zo kunt u een dossier waarvan nemen de juiste nullen en enen die u wilt 706 00:32:05,330 --> 00:32:10,390 ergens in, en gebruik dat deel van nullen en enen als een som functie. 707 00:32:10,390 --> 00:32:11,480 >> Wat bedoel ik daarmee? 708 00:32:11,480 --> 00:32:15,755 Ik bedoel, je kan een image-bestand te nemen dat de juiste reeks nullen en 709 00:32:15,755 --> 00:32:17,120 degenen, die iets af te drukken naar een beeld. 710 00:32:17,120 --> 00:32:20,070 En een programma zou kunnen interpreteren is een afbeelding, maar je kunt het interpreteren als 711 00:32:20,070 --> 00:32:22,040 je wilt, als som-functie. 712 00:32:22,040 --> 00:32:27,010 >> Dus als we wilden openen, Bijvoorbeeld, deze afbeelding. 713 00:32:27,010 --> 00:32:37,440 Laten we gaan, Hello Kitty. 714 00:32:37,440 --> 00:32:38,810 Prachtige kleine afbeelding. 715 00:32:38,810 --> 00:32:42,260 Hier is die string van nullen en enen. 716 00:32:42,260 --> 00:32:45,500 Die 72 nullen en enen bestaan ​​in deze afbeelding. 717 00:32:45,500 --> 00:32:47,695 >> Dus wat ik kan doen, is dus te schrijven - 718 00:32:47,695 --> 00:32:50,510 719 00:32:50,510 --> 00:32:51,760 Ik moet niet vergeten waar ze zijn. 720 00:32:51,760 --> 00:32:54,550 721 00:32:54,550 --> 00:32:55,720 Ik vind dat in een tweede. 722 00:32:55,720 --> 00:32:57,840 Maar we doen - 723 00:32:57,840 --> 00:32:59,440 laat me weten waar ze zijn. 724 00:32:59,440 --> 00:33:00,020 Een sec. 725 00:33:00,020 --> 00:33:01,270 Laten we het doen - 726 00:33:01,270 --> 00:33:05,800 727 00:33:05,800 --> 00:33:07,240 >> PUBLIEK: [onverstaanbaar]. 728 00:33:07,240 --> 00:33:08,490 >> SPEAKER: Thanks. 729 00:33:08,490 --> 00:33:24,240 730 00:33:24,240 --> 00:33:28,740 Dus als we dit programma uit te voeren, die in plaats daarvan leest in een bestand, dan gaat het 731 00:33:28,740 --> 00:33:33,160 om deze index in het bestand. 732 00:33:33,160 --> 00:33:35,500 En dan, nogmaals, net als mysum, neemt twee getallen. 733 00:33:35,500 --> 00:33:41,410 We kunnen nummers dezelfde als commentaar we eerder deden, die gaat naar 734 00:33:41,410 --> 00:33:44,850 laten zien hoe het feit dat, op het einde van de dag, al deze dingen zijn 735 00:33:44,850 --> 00:33:45,350 nullen en enen. 736 00:33:45,350 --> 00:33:48,170 En het is maar hoe je ervoor kiest te interpreteren. 737 00:33:48,170 --> 00:33:50,770 >> En als je er eigenlijk uit bij deze afbeelding - 738 00:33:50,770 --> 00:33:52,930 laten we inzoomen in een beetje. 739 00:33:52,930 --> 00:33:53,720 Kan iedereen het zien? 740 00:33:53,720 --> 00:33:57,570 U zult hier opmerken, is er wat rare vlekken. 741 00:33:57,570 --> 00:34:00,130 742 00:34:00,130 --> 00:34:02,290 Laten we gaan - dit is het originele beeld. 743 00:34:02,290 --> 00:34:04,540 U zult merken hier dat er geen vlekken. 744 00:34:04,540 --> 00:34:08,420 Dat is de code voor de functie sum, is dat vlekje daar. 745 00:34:08,420 --> 00:34:13,449 >> En eigenlijk, nogmaals, als je meer informatie over dit, zult u beseffen dat dit 746 00:34:13,449 --> 00:34:18,270 Hello Kitty, die nog groter is smudge, heeft code die meer dan een kan nemen 747 00:34:18,270 --> 00:34:21,800 computer als het niet beschermd gepast. 748 00:34:21,800 --> 00:34:23,920 Dus je kunt eigenlijk dit uitvoeren. 749 00:34:23,920 --> 00:34:25,380 Ik ben niet van plan om het nu uit te voeren. 750 00:34:25,380 --> 00:34:30,600 Maar je kunt dit uitvoeren Hallo Afbeelding Kitty, en het kan 751 00:34:30,600 --> 00:34:32,429 nemen over uw computer. 752 00:34:32,429 --> 00:34:35,159 >> Dus dat is allemaal voor de demo. 753 00:34:35,159 --> 00:34:38,560 Heeft iemand nog vragen hebben, commentaar, zorgen? 754 00:34:38,560 --> 00:34:39,515 Ik denk dat dit spul is fascinerend. 755 00:34:39,515 --> 00:34:41,500 Het inspireerde mij om meer te leren. 756 00:34:41,500 --> 00:34:44,980 Ik beveel, als je geïnteresseerd bent op alle op CS, praat tegen me. 757 00:34:44,980 --> 00:34:50,250 Ook al ben ik een Social Studies Concentrator, ik ben een CS, secundaire, dus 758 00:34:50,250 --> 00:34:52,340 Ik weet nog steeds een beetje. 759 00:34:52,340 --> 00:34:53,810 Maar ik weet zeker wat klassen die u moet nemen. 760 00:34:53,810 --> 00:34:57,940 Ik vind het allemaal erg interessant, en ik moedig u, zeker, om 761 00:34:57,940 --> 00:35:00,330 Meer informatie Indien u geïnteresseerd bent. 762 00:35:00,330 --> 00:35:02,090 >> OK, ik heb nog een laatste ding. 763 00:35:02,090 --> 00:35:05,530 764 00:35:05,530 --> 00:35:05,870 Sorry. 765 00:35:05,870 --> 00:35:06,460 Heeft u nog vragen? 766 00:35:06,460 --> 00:35:10,010 Ik heb geen pauze te wachten als iemand vragen hadden over. 767 00:35:10,010 --> 00:35:13,220 768 00:35:13,220 --> 00:35:16,900 >> Is er iemand gaat worden een CS Concentrator? 769 00:35:16,900 --> 00:35:18,580 Of over te denken? 770 00:35:18,580 --> 00:35:20,730 Een, twee, drie, vier. 771 00:35:20,730 --> 00:35:21,620 Een - slechts een. 772 00:35:21,620 --> 00:35:24,680 Anna's is de enige hand die is autoritair opgevoed. 773 00:35:24,680 --> 00:35:27,640 774 00:35:27,640 --> 00:35:29,390 OK, dat is cool. 775 00:35:29,390 --> 00:35:30,110 Assam, wat ga je doen? 776 00:35:30,110 --> 00:35:33,220 >> PUBLIEK: [onverstaanbaar]. 777 00:35:33,220 --> 00:35:33,910 >> SPEAKER: Constantine? 778 00:35:33,910 --> 00:35:34,990 >> PUBLIEK: Physics. 779 00:35:34,990 --> 00:35:36,720 >> SPEAKER: Whoa, dat was snel. 780 00:35:36,720 --> 00:35:40,770 Je had een slechte ervaring in CS50? 781 00:35:40,770 --> 00:35:42,015 [Onverstaanbaar], wat ga je doen? 782 00:35:42,015 --> 00:35:42,980 >> Publiek: Ik heb geen idee. 783 00:35:42,980 --> 00:35:43,924 >> SPEAKER: Curt? 784 00:35:43,924 --> 00:35:45,900 >> PUBLIEK: Econ of CS. 785 00:35:45,900 --> 00:35:46,910 >> SPEAKER: Econ of CS. 786 00:35:46,910 --> 00:35:47,840 Tom? 787 00:35:47,840 --> 00:35:48,385 >> Publiek: Ik doe Stat. 788 00:35:48,385 --> 00:35:48,950 >> SPEAKER: Stat? 789 00:35:48,950 --> 00:35:50,100 OK. 790 00:35:50,100 --> 00:35:51,000 Wat ben je? 791 00:35:51,000 --> 00:35:51,310 >> PUBLIEK: Me? 792 00:35:51,310 --> 00:35:51,750 >> SPEAKER: Ja. 793 00:35:51,750 --> 00:35:52,190 >> PUBLIEK: Stat. 794 00:35:52,190 --> 00:35:52,520 >> SPEAKER: Stat. 795 00:35:52,520 --> 00:35:53,500 Oh, daar ga je. 796 00:35:53,500 --> 00:35:55,200 Tom, praat met Alden. 797 00:35:55,200 --> 00:35:56,932 Emily, wat ben je? 798 00:35:56,932 --> 00:35:57,396 >> PUBLIEK: Biomedische - 799 00:35:57,396 --> 00:36:00,178 >> SPEAKER: Bent u in dit gedeelte? 800 00:36:00,178 --> 00:36:03,040 >> PUBLIEK: Nee 801 00:36:03,040 --> 00:36:04,530 >> SPEAKER: OK, dat is Emily. 802 00:36:04,530 --> 00:36:05,670 Ze is mijn vriendin. 803 00:36:05,670 --> 00:36:10,080 Duidelijk niet zo goed van een vriend, want ze geeft me een harde tijd. 804 00:36:10,080 --> 00:36:13,223 Je zou aardiger tegen me in front van iedereen, mijn student - 805 00:36:13,223 --> 00:36:14,580 >> Publiek: Ik doe uw Q gids. 806 00:36:14,580 --> 00:36:14,870 >> SPEAKER: Echt? 807 00:36:14,870 --> 00:36:15,510 Uh oh. 808 00:36:15,510 --> 00:36:17,224 OK, je bent geweldig. 809 00:36:17,224 --> 00:36:19,380 Ik hou zoveel van je. 810 00:36:19,380 --> 00:36:20,600 Oh boy. 811 00:36:20,600 --> 00:36:28,320 >> Anyway, ik, gisteravond, zoals alles - 812 00:36:28,320 --> 00:36:32,220 Ik weet zeker dat iedereen lijkt echt nu benadrukt. 813 00:36:32,220 --> 00:36:35,970 Ik weet het niet, zijn eerstejaars - zijn jullie gevoel gestrest? 814 00:36:35,970 --> 00:36:36,855 Ik voel me gestrest. 815 00:36:36,855 --> 00:36:37,980 Het was alsof je naar huis voor Thanksgiving. 816 00:36:37,980 --> 00:36:40,660 Je bent als, ik ga doe al deze dingen. 817 00:36:40,660 --> 00:36:41,530 >> Publiek: Het is zo anders. 818 00:36:41,530 --> 00:36:42,560 >> SPEAKER: Ja, en je komt terug. 819 00:36:42,560 --> 00:36:45,290 Jeff, je voelt je niet op die manier? 820 00:36:45,290 --> 00:36:46,610 >> Publiek: Ik dacht Ik zou een beetje te doen. 821 00:36:46,610 --> 00:36:48,660 >> SPEAKER: OK, geweldig. 822 00:36:48,660 --> 00:36:51,650 Dus ik kom terug, en ik heb niet iets gedaan. 823 00:36:51,650 --> 00:36:53,260 En het is allemaal super stressvol. 824 00:36:53,260 --> 00:36:55,640 En ik ben bezorgd, oprecht betrokken, over het wel of niet ik ben 825 00:36:55,640 --> 00:36:57,380 gaat alles wat ik moet afmaken. 826 00:36:57,380 --> 00:37:01,750 Maar gisteravond, ik was niet gestrest, Ik was gewoon een beetje triest. 827 00:37:01,750 --> 00:37:04,520 Dus schreef ik in mijn dagboek over wat ik was verdrietig over. 828 00:37:04,520 --> 00:37:08,020 En ik was verdrietig over dit gedeelte in deze klasse komt een einde. 829 00:37:08,020 --> 00:37:11,100 >> Dus ik was net gaan om te lezen voor jullie een klein stukje van mijn dagboek, 830 00:37:11,100 --> 00:37:12,950 van gisteravond. 831 00:37:12,950 --> 00:37:17,400 Kan ik wat servetten, sommige weefsels van Tom? 832 00:37:17,400 --> 00:37:18,040 Nee, ik ga huilen. 833 00:37:18,040 --> 00:37:19,720 Ik huil niet. 834 00:37:19,720 --> 00:37:22,030 Niet dat je niet kunt huilen, Ik huil niet. 835 00:37:22,030 --> 00:37:24,040 Ik weet niet eens of mijn traan klieren werkte - traanbuisjes. 836 00:37:24,040 --> 00:37:25,630 Ik heb niet gehuild in een lange tijd. 837 00:37:25,630 --> 00:37:26,510 >> PUBLIEK: [onverstaanbaar]. 838 00:37:26,510 --> 00:37:28,920 >> SPEAKER: OK, bedankt. 839 00:37:28,920 --> 00:37:30,070 OK, er is een klein voorwoord - 840 00:37:30,070 --> 00:37:32,480 is er een aantal andere delen van mijn dagboek binnenkomst, want ik probeer tijdschrift elke 841 00:37:32,480 --> 00:37:33,600 avond voordat ik naar bed. 842 00:37:33,600 --> 00:37:34,900 Ik beveel journaling. 843 00:37:34,900 --> 00:37:38,600 Het helpt je dingen te verwerken, en ook zijn zeer dankbaar voor uw dag. 844 00:37:38,600 --> 00:37:43,063 En het maakt het een stuk makkelijker om te kijken terug op de dag en beseffen dat 845 00:37:43,063 --> 00:37:44,240 er waren veel goede dingen die gebeurden. 846 00:37:44,240 --> 00:37:47,240 Zelfs als je het gevoel echt gestresst 's nachts of echt boos, of 847 00:37:47,240 --> 00:37:49,022 echt verdrietig of moe. 848 00:37:49,022 --> 00:37:50,272 >> O, mijn god. 849 00:37:50,272 --> 00:37:52,546 850 00:37:52,546 --> 00:37:54,400 Ik weet niet eens of het is geschreven dat goed omdat ik niet nagelezen. 851 00:37:54,400 --> 00:37:55,780 Maar we zullen het lezen. 852 00:37:55,780 --> 00:37:59,950 Meestal doe ik niet lees mijn tijdschrift, natuurlijk. 853 00:37:59,950 --> 00:38:03,720 >> "Morgen zal ik mijn laatste les CS50 deel van het jaar. 854 00:38:03,720 --> 00:38:05,860 Het is gek hoe snel de tijd vliegt. 855 00:38:05,860 --> 00:38:09,900 Toch ben ik getroffen door hoe verschillend mijn ervaring in het lesgeven van dit jaar was 856 00:38:09,900 --> 00:38:11,365 dan toen ik was een tweedejaars. 857 00:38:11,365 --> 00:38:14,120 Om te beginnen, ik zeker weten het materiaal beter. 858 00:38:14,120 --> 00:38:16,820 Maar niet mijn eerste cohort vertellen studenten dat. 859 00:38:16,820 --> 00:38:20,030 Belangrijker is echter, realiseerde ik me dat de vreugde die uit staan 860 00:38:20,030 --> 00:38:23,160 aan de voorkant van een kamer van wat begint als vreemden, maar eindigt als bij 861 00:38:23,160 --> 00:38:27,150 Tenminste, Facebook vrienden, is geen eerste jaar toevalstreffer. 862 00:38:27,150 --> 00:38:29,970 Integendeel, het is uit de wetenschap dat, in een bescheiden manier, je helpt 863 00:38:29,970 --> 00:38:32,980 talentvolle, nadenkend, verrukkelijk, en gepassioneerde mensen leren een beetje meer 864 00:38:32,980 --> 00:38:34,750 over informatica. 865 00:38:34,750 --> 00:38:37,480 >> Je verschuift dat gloeilamp slechts een bit in zijn voetje, zodat het in staat 866 00:38:37,480 --> 00:38:42,120 te schijnen helderder dan u, of zij, had kunnen voorstellen bij semester start. 867 00:38:42,120 --> 00:38:45,390 Je helpt draai die fronsen ondersteboven naar beneden en vragen te stellen die 868 00:38:45,390 --> 00:38:49,240 ondersteuning bieden, maar nog steeds mogelijk studenten om op te staan ​​op hun eigen. 869 00:38:49,240 --> 00:38:52,190 >> Het is zeker niet overdreven om te zeggen dat dit gedeelte is mijn favoriet 870 00:38:52,190 --> 00:38:53,190 deel van de week. 871 00:38:53,190 --> 00:38:57,930 Of zelfs dat ik aarzel om te zeggen, dat is alle, op 5:30 per week, wetende 872 00:38:57,930 --> 00:39:00,640 dat het veel te lang zal zijn totdat we elkaar weer ontmoeten. 873 00:39:00,640 --> 00:39:02,740 >> Maar toch, ik ben ongelooflijk dankbaar iedereen die mij dit heeft gegeven 874 00:39:02,740 --> 00:39:05,010 gelegenheid om terug te geven aan anderen. 875 00:39:05,010 --> 00:39:07,340 David, voor zijn geduld en vertrouwen. 876 00:39:07,340 --> 00:39:11,040 Om de film en de productie bemanning, voor maakt me er enigszins respectabel. 877 00:39:11,040 --> 00:39:15,380 En, belangrijker nog, aan mijn studenten, zonder wie ik geen reden om zou moeten 878 00:39:15,380 --> 00:39:17,890 besteden 10 uur het uitzoeken van de beste manier om pointers te tekenen, of leg een 879 00:39:17,890 --> 00:39:20,330 tafel van dolfijnen, via JavaScript. 880 00:39:20,330 --> 00:39:22,620 Zoals altijd, het is een zegen. " 881 00:39:22,620 --> 00:39:25,420 >> Dus met dat, dank jullie. 882 00:39:25,420 --> 00:39:29,000 Ik zie jullie bij de CS50 beurs, en de Hackathon, als je er bent. 883 00:39:29,000 --> 00:39:32,020 En als u vragen hebt, zal ik vasthouden rond totdat er niet meer. 884 00:39:32,020 --> 00:39:33,760 Maar ik dank jullie voor een prachtig jaar. 885 00:39:33,760 --> 00:39:37,290 >> [Applaus] 886 00:39:37,290 --> 00:39:38,540 >> SPEAKER: ik zou kunnen huilen. 887 00:39:38,540 --> 00:39:40,800