1 00:00:00,000 --> 00:00:07,700 2 00:00:07,700 --> 00:00:15,180 >> ALTAVEU: OK, així, vostè no ho cregui, però la setmana passada, dilluns, a Pierce, em 3 00:00:15,180 --> 00:00:16,090 era al soterrani. 4 00:00:16,090 --> 00:00:17,010 Mai vaig a Pierce. 5 00:00:17,010 --> 00:00:20,530 I jo mai vaig a tornar de nou, perquè Vaig deixar les meves coses només per, 6 00:00:20,530 --> 00:00:23,950 com, cinc minuts i algú van robar el meu ordinador i la meva 7 00:00:23,950 --> 00:00:26,050 telèfon de la meva motxilla. 8 00:00:26,050 --> 00:00:28,780 El que significa que he de tornar, i a continuació, a menys d'una setmana més tard 9 00:00:28,780 --> 00:00:30,220 que ens van robar una altra vegada. 10 00:00:30,220 --> 00:00:31,570 >> I llavors s'excitava - 11 00:00:31,570 --> 00:00:34,540 Cerca meu iPhone segueix ser de poca ajuda. 12 00:00:34,540 --> 00:00:37,340 Així que segueixo encoratjant no ho facis servir. 13 00:00:37,340 --> 00:00:42,270 S'encén una vegada, i va ser al MIT, com 15 minuts més tard, i la persona 14 00:00:42,270 --> 00:00:45,770 cridat a aquest número de telèfon que va mostrar en el meu registre de trucades AT & T. 15 00:00:45,770 --> 00:00:48,830 >> Així que em vaig anar en línia, anomenat el telèfon nombre, i se'n va anar directament a aquesta 16 00:00:48,830 --> 00:00:50,540 contestador automàtic en espanyol. 17 00:00:50,540 --> 00:00:52,520 I no he sentit parlar d'ell des de llavors. 18 00:00:52,520 --> 00:00:54,800 Així que vaig haver de aconseguir un nou ordinador i el telèfon. 19 00:00:54,800 --> 00:00:55,150 Ho sé. 20 00:00:55,150 --> 00:00:56,326 Sí 21 00:00:56,326 --> 00:01:00,110 Però si vostès volen fer efecte en la meva Fons d'equip després d'això, és per això que 22 00:01:00,110 --> 00:01:01,030 T'he demanat aquí. 23 00:01:01,030 --> 00:01:02,280 És broma. 24 00:01:02,280 --> 00:01:04,239 25 00:01:04,239 --> 00:01:07,420 Però això era molt trist i traumàtic. 26 00:01:07,420 --> 00:01:10,700 >> Però és tot de nou ara, i que per això el p-8 set va prendre tant de temps, perquè 27 00:01:10,700 --> 00:01:12,480 Jo no tinc un ordinador. 28 00:01:12,480 --> 00:01:13,730 I algú l'hi va robar. 29 00:01:13,730 --> 00:01:16,940 I li vaig enviar un correu, preguntant si li posaria la seva p-8 set. 30 00:01:16,940 --> 00:01:18,790 Però ells van dir que no. 31 00:01:18,790 --> 00:01:20,000 I jo estava com, puc tenir el meu equip de nou? 32 00:01:20,000 --> 00:01:21,270 I són com, no. 33 00:01:21,270 --> 00:01:22,130 És broma. 34 00:01:22,130 --> 00:01:22,930 >> D'acord. 35 00:01:22,930 --> 00:01:28,140 Aquesta és la nostra última secció, i no tinc un parell de - només tenim tres 36 00:01:28,140 --> 00:01:29,790 coses en l'ordre del dia. 37 00:01:29,790 --> 00:01:31,330 Anem a parlar una mica Sobre la guia Q. 38 00:01:31,330 --> 00:01:33,900 Després ens anem a gastar 15 minuts en una demostració fresca. 39 00:01:33,900 --> 00:01:36,890 Llavors direm tot adéu a un altre. 40 00:01:36,890 --> 00:01:41,460 Segur que no necessita els equips o una ploma o un paper per prendre notes, o 41 00:01:41,460 --> 00:01:42,410 seguir al llarg. 42 00:01:42,410 --> 00:01:45,620 Així que suposo que si tens el teu ordinador , Llavors vostè és al Facebook. 43 00:01:45,620 --> 00:01:46,530 Només dic. 44 00:01:46,530 --> 00:01:49,650 A menys que estiguis omplint les dades del Guia de Q, que és primer. 45 00:01:49,650 --> 00:01:50,690 >> La guia de Q està oberta. 46 00:01:50,690 --> 00:01:53,520 Vostè ha tingut un correu electrònic sobre ell. 47 00:01:53,520 --> 00:01:56,930 Una vegada que tot el material Q es presenta al final de l'any, em surt tot el 48 00:01:56,930 --> 00:02:03,710 Q comentaris a les puntuacions de tot el món que opta per donar-me retroalimentació. 49 00:02:03,710 --> 00:02:04,810 I així, quan vas al Q - 50 00:02:04,810 --> 00:02:07,440 No sé si es pot fer això, Jeff, perquè vostè és estudiant i extensió. 51 00:02:07,440 --> 00:02:12,730 Però quan vas al Q, si no ho ha fet abans, vostè escull el seu 52 00:02:12,730 --> 00:02:14,020 mestre, que és David Malan. 53 00:02:14,020 --> 00:02:14,970 Vostè ha de fer ell. 54 00:02:14,970 --> 00:02:15,690 >> I llavors vostè pot escollir TFS. 55 00:02:15,690 --> 00:02:17,750 I vostè pot recollir la major quantitat TFS com vulgui. 56 00:02:17,750 --> 00:02:18,990 No obstant això, hi ha 60 de nosaltres. 57 00:02:18,990 --> 00:02:20,350 No ha de recollir tots. 58 00:02:20,350 --> 00:02:23,090 Em pots recollir, o simplement triar un parell d'altres persones, si ho desitja, a 59 00:02:23,090 --> 00:02:24,470 donar-los retroalimentació. 60 00:02:24,470 --> 00:02:27,595 I llavors vostè aconsegueix les puntuacions en totes aquestes diferents eixos, i llavors vostè pot deixar 61 00:02:27,595 --> 00:02:28,570 ells retroalimentació. 62 00:02:28,570 --> 00:02:31,520 >> I llavors, com un mes després, Vaig a tots els que la retroalimentació. 63 00:02:31,520 --> 00:02:34,570 I igual que els comentaris que ha estat donar-me al llarg del semestre, em 64 00:02:34,570 --> 00:02:35,790 llegir tot això. 65 00:02:35,790 --> 00:02:39,620 I és molt útil, i ajuda a a créixer com un mestre i com un 66 00:02:39,620 --> 00:02:40,680 individu. 67 00:02:40,680 --> 00:02:43,360 Així que, si us plau, preneu-vos un temps per fer-ho. 68 00:02:43,360 --> 00:02:45,020 Només estarem aquí per com 30 minuts. 69 00:02:45,020 --> 00:02:48,090 Així que si vols, al final d'això, per prendre cinc minuts, i només ha d'omplir 70 00:02:48,090 --> 00:02:49,960 la Q, ja que no pren més temps que això. 71 00:02:49,960 --> 00:02:53,410 Això seria meravellós, i també obtenir els seus graus de fa més ràpidament si 72 00:02:53,410 --> 00:02:54,620 a omplir la Q. 73 00:02:54,620 --> 00:02:56,580 >> Així que la majoria de vosaltres heu fet això abans - 74 00:02:56,580 --> 00:02:58,240 o no, al voltant de la meitat de vostès han fet això abans. 75 00:02:58,240 --> 00:03:00,060 Però si vostè és un estudiant de primer any, això és el que és. 76 00:03:00,060 --> 00:03:01,910 Serà el mateix per a totes les classes. 77 00:03:01,910 --> 00:03:02,270 Fes-ho. 78 00:03:02,270 --> 00:03:02,900 Es triga cinc minuts. 79 00:03:02,900 --> 00:03:07,610 Però també, si ho fas una mica de debò, això no és el pitjor 80 00:03:07,610 --> 00:03:10,270 al món, perquè sens dubte prendre seriosament. 81 00:03:10,270 --> 00:03:13,000 >> Així que si vostè em deixa una cara somrient, Vaig a apreciar això. 82 00:03:13,000 --> 00:03:17,550 Però també li agrairia si vostè em va deixar més d'una cara somrient. 83 00:03:17,550 --> 00:03:18,270 Però li toca a vostè. 84 00:03:18,270 --> 00:03:21,540 Jo no et puc dir - o com un gran smiley cara, amb un capital D. Això 85 00:03:21,540 --> 00:03:23,060 serà encara millor. 86 00:03:23,060 --> 00:03:27,860 >> OK, això és tot el que tinc per el P. Si té alguna pregunta, pot demanar 87 00:03:27,860 --> 00:03:29,370 mi, però bastant auto-explicatiu. 88 00:03:29,370 --> 00:03:31,090 Així, si us plau, ompliu-lo. 89 00:03:31,090 --> 00:03:34,390 Jo ho agrairia moltíssim, i això significa molt per a mi. 90 00:03:34,390 --> 00:03:38,910 >> OK, això és el que anem a gastar 15 minuts passant. 91 00:03:38,910 --> 00:03:39,800 Jo et vaig a mostrar una mica de codi. 92 00:03:39,800 --> 00:03:42,080 Crec que això és realment genial, i això em va fer més 93 00:03:42,080 --> 00:03:43,810 excitat en ciències de la computació. 94 00:03:43,810 --> 00:03:46,480 Així que espero que farà el igual per a tots vostès. 95 00:03:46,480 --> 00:03:51,760 >> Obrirem - i tot això Codi vaig a enviar a vostè més tard. 96 00:03:51,760 --> 00:03:52,680 Però només obrirem - 97 00:03:52,680 --> 00:03:54,310 Estic en el meu terminal - 98 00:03:54,310 --> 00:03:56,810 anem a obrir aquest programa anomenat [? MySum. ?] 99 00:03:56,810 --> 00:04:01,290 100 00:04:01,290 --> 00:04:02,540 >> Tots poden llegir això, o ho hauria de fer més gran? 101 00:04:02,540 --> 00:04:07,670 102 00:04:07,670 --> 00:04:13,040 Algú pot dir-me el que aquest codi es fer-ho quan ho executo, o el que aquesta 103 00:04:13,040 --> 00:04:14,320 programa ho farà quan ho executo? 104 00:04:14,320 --> 00:04:30,710 105 00:04:30,710 --> 00:04:32,400 >> [? Avi,?] Què et sembla que farà? 106 00:04:32,400 --> 00:04:33,335 Mastegar Finalitzar. 107 00:04:33,335 --> 00:04:35,033 No ha de parlar amb la boca oberta. 108 00:04:35,033 --> 00:04:38,330 109 00:04:38,330 --> 00:04:42,860 >> AUDIÈNCIA: Es necessita un munt de arguments, troba la suma d'ells tornen 110 00:04:42,860 --> 00:04:45,285 suma i, a continuació, imprimir-ho? 111 00:04:45,285 --> 00:04:53,045 O que es necessita en dos arguments, i llavors ho fa [inaudible]. 112 00:04:53,045 --> 00:04:56,460 I després imprimeix el que sigui els resultats són. 113 00:04:56,460 --> 00:04:58,100 >> ALTAVEU: Close, molt a prop. 114 00:04:58,100 --> 00:04:59,840 Algú vol afegir a la [? el Avi?] va dir? 115 00:04:59,840 --> 00:05:04,830 116 00:05:04,830 --> 00:05:07,293 És necessari donar a aquest programa qualsevol argument de línia d'ordres? 117 00:05:07,293 --> 00:05:09,145 >> AUDIÈNCIA: No 118 00:05:09,145 --> 00:05:09,610 >> ALTAVEU: No 119 00:05:09,610 --> 00:05:11,250 Què passa si vostè no li dóna qualsevol argument de línia d'ordres? 120 00:05:11,250 --> 00:05:12,500 Jo només escric MySum slash dot. 121 00:05:12,500 --> 00:05:15,145 122 00:05:15,145 --> 00:05:16,630 >> AUDIÈNCIA 1 més 2 és igual a 3. 123 00:05:16,630 --> 00:05:17,250 >> ALTAVEU 1 més 2 és igual a 3. 124 00:05:17,250 --> 00:05:18,570 I voleu imprimir això. 125 00:05:18,570 --> 00:05:19,450 Això és exactament correcte. 126 00:05:19,450 --> 00:05:21,370 Vas a veure que la impressió f línia a la part inferior. 127 00:05:21,370 --> 00:05:23,450 Es va a imprimir a, b, i llavors la suma de a i b. 128 00:05:23,450 --> 00:05:26,360 I suposo que vostè assumeix que suma funciona correctament. 129 00:05:26,360 --> 00:05:28,120 Bona suposició. 130 00:05:28,120 --> 00:05:32,250 >> Bé, i el que passa si em donar-li quin argument? 131 00:05:32,250 --> 00:05:33,010 [? Manu? ?] 132 00:05:33,010 --> 00:05:36,230 >> AUDIÈNCIA: Va a afegir el que sigui el primer argument és b. 133 00:05:36,230 --> 00:05:37,150 O a 2, ho sento. 134 00:05:37,150 --> 00:05:38,480 >> ALTAVEU: Dret, a 2. 135 00:05:38,480 --> 00:05:42,470 Algú sap el que strtol fa? 136 00:05:42,470 --> 00:05:43,960 Es tracta bàsicament d'atoi. 137 00:05:43,960 --> 00:05:47,240 Atoi és en realitat una versió de luxe de - 138 00:05:47,240 --> 00:05:49,600 o una versió més simple de strtol. 139 00:05:49,600 --> 00:05:51,790 Però el que realment utilitza strtol. 140 00:05:51,790 --> 00:05:54,610 141 00:05:54,610 --> 00:05:58,010 I em vaig trobar que fos perquè volia una mena atoi, i després, quan em 142 00:05:58,010 --> 00:06:01,110 em atoi, vaig llegir aquí. 143 00:06:01,110 --> 00:06:04,380 I em vaig trobar amb "aquest comportament és el mateix que "strtol. 144 00:06:04,380 --> 00:06:06,850 Així que és bàsicament atoi per tots els efectes. 145 00:06:06,850 --> 00:06:09,320 I ja veus, fins i tot jo faig servir nul i 10. 146 00:06:09,320 --> 00:06:14,390 >> En realitat, això li permet prendre una cadena, i convertir-lo en un nombre, i seleccioneu 147 00:06:14,390 --> 00:06:15,970 quina base que desitja fer-ho polz 148 00:06:15,970 --> 00:06:17,370 Així que aquesta és la base 10 aquí. 149 00:06:17,370 --> 00:06:20,455 Jo podria haver fet en base dos decimals, base 16 per hexadecimal. 150 00:06:20,455 --> 00:06:22,090 És molt bo. 151 00:06:22,090 --> 00:06:25,860 Però conte llarg, això té dues nombres i els suma. 152 00:06:25,860 --> 00:06:29,260 >> Així que anem a executar-lo. 153 00:06:29,260 --> 00:06:32,560 I també es donarà compte, no són algunes de les coses - 154 00:06:32,560 --> 00:06:37,830 així que tinc un makefile aquí, i Si obriu això, algunes coses 155 00:06:37,830 --> 00:06:39,270 t'adonaràs són diferents. 156 00:06:39,270 --> 00:06:42,370 En particular, aquest argument aquí, vostè probablement 157 00:06:42,370 --> 00:06:43,010 no he vist això abans. 158 00:06:43,010 --> 00:06:45,770 Generalment, compilem coses amb guió zero, zero. 159 00:06:45,770 --> 00:06:51,500 Dash zero, zero, vol dir que no ho fan qualsevol optimitzacions, compilador. 160 00:06:51,500 --> 00:06:54,950 No tractar de fer una mica de fantasia, o fer que alguna cosa funcioni més ràpidament, o aconseguir 161 00:06:54,950 --> 00:06:56,530 desfer-se de variables que són necessàries. 162 00:06:56,530 --> 00:06:58,080 No optimitzar el codi en absolut, 163 00:06:58,080 --> 00:07:00,110 >> Estic demanant de tercer nivell optimització. 164 00:07:00,110 --> 00:07:02,580 Així que el que estic demanant compilador per fer una gran quantitat d'optimitzacions. 165 00:07:02,580 --> 00:07:05,870 Vostè pot canviar això en l'arxiu MAKE quan vostè té aquest codi, si vols 166 00:07:05,870 --> 00:07:07,190 per veure coses diferents. 167 00:07:07,190 --> 00:07:08,660 Què anem a mostrar en un segon. 168 00:07:08,660 --> 00:07:12,080 Així correm el meu suma 1 més 2 més 3. 169 00:07:12,080 --> 00:07:13,445 Algú em fa dos arguments. 170 00:07:13,445 --> 00:07:17,221 171 00:07:17,221 --> 00:07:18,210 >> AUDIÈNCIA: 4 i 5. 172 00:07:18,210 --> 00:07:18,966 >> ALTAVEU: 4 i 5. 173 00:07:18,966 --> 00:07:19,900 Gràcies. 174 00:07:19,900 --> 00:07:20,860 Gran, funciona. 175 00:07:20,860 --> 00:07:25,700 Quins són alguns altres bons arguments per provar, per assegurar-se que funciona? 176 00:07:25,700 --> 00:07:27,050 Algú? 177 00:07:27,050 --> 00:07:27,430 >> AUDIÈNCIA: 0. 178 00:07:27,430 --> 00:07:29,210 >> ALTAVEU: 0 i? 179 00:07:29,210 --> 00:07:31,010 >> AUDIÈNCIA: Negatiu 3. 180 00:07:31,010 --> 00:07:32,040 >> ALTAVEU: Funciona. 181 00:07:32,040 --> 00:07:33,670 Però aquests eren bones opcions. 182 00:07:33,670 --> 00:07:36,600 OK, així que anem a tornar aquí. 183 00:07:36,600 --> 00:07:38,540 Aquest és mysum.c. 184 00:07:38,540 --> 00:07:42,440 Es donarà compte de que hi ha també alguna cosa anomenat sumfunction.c. 185 00:07:42,440 --> 00:07:48,110 I això diu, oh, hi ha alguna cosa definit en sumfunction.c. 186 00:07:48,110 --> 00:07:51,480 No incloc aquest fitxer aquí perquè jo no necessito. 187 00:07:51,480 --> 00:07:54,840 Però puc enllaçar en tant compilar, que t'has adonat. 188 00:07:54,840 --> 00:07:57,380 >> Anem a desplaçar-se cap amunt. 189 00:07:57,380 --> 00:08:02,880 Vam veure quan compilem MySum, dret allà, ens vinculem al binari de 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 I jo no necessito l'arxiu de capçalera perquè, és clar, hi ha el 193 00:08:08,470 --> 00:08:09,240 declaració de la funció. 194 00:08:09,240 --> 00:08:12,200 Així aguda inclouen normalment només posa en una declaració de la funció. 195 00:08:12,200 --> 00:08:13,730 Aquí acabo de posar-recte en el codi. 196 00:08:13,730 --> 00:08:16,370 Així que he de fer és enllaç en el binari, el que jo faig. 197 00:08:16,370 --> 00:08:19,950 >> Alguna idea del que és en sumfunction.c? 198 00:08:19,950 --> 00:08:21,950 Quin codi que he escrit en sumfunction.c? 199 00:08:21,950 --> 00:08:25,445 200 00:08:25,445 --> 00:08:26,695 >> AUDIÈNCIA: [inaudible]. 201 00:08:26,695 --> 00:08:29,460 202 00:08:29,460 --> 00:08:30,630 >> ALTAVEU: Alguna idea? 203 00:08:30,630 --> 00:08:30,940 Sí? 204 00:08:30,940 --> 00:08:33,710 >> AUDIÈNCIA: Crec, defineix alguns [inaudible]. 205 00:08:33,710 --> 00:08:33,975 >> ALTAVEU: Si. 206 00:08:33,975 --> 00:08:37,650 Així que faig escriptura int suma int a. 207 00:08:37,650 --> 00:08:41,120 Escric aquesta línia, i després tinc oberta clau de tancament, tancat claudàtor. 208 00:08:41,120 --> 00:08:46,160 Què creus que jo escric a l'interior dels claus, dins d'aquesta funció? 209 00:08:46,160 --> 00:08:46,600 Sí? 210 00:08:46,600 --> 00:08:48,150 >> AUDIÈNCIA: Retorn és igual a. 211 00:08:48,150 --> 00:08:50,010 >> PROCESSADOR: Aquesta és una molt bona opció. 212 00:08:50,010 --> 00:08:51,720 Qui pensa [? Manu?] Té raó? 213 00:08:51,720 --> 00:08:54,122 Diu tornar a més b. 214 00:08:54,122 --> 00:08:55,860 Bé, no tothom. 215 00:08:55,860 --> 00:08:56,520 [? Akshar,?] 216 00:08:56,520 --> 00:08:57,390 tu també? 217 00:08:57,390 --> 00:09:00,430 Esteu segur? 218 00:09:00,430 --> 00:09:01,680 D'acord. 219 00:09:01,680 --> 00:09:09,551 220 00:09:09,551 --> 00:09:10,050 Què? 221 00:09:10,050 --> 00:09:11,662 >> AUDIÈNCIA: Vostè lletrejar malament. 222 00:09:11,662 --> 00:09:13,000 >> ALTAVEU: No, no ho vaig fer. 223 00:09:13,000 --> 00:09:13,966 Sí, és broma. 224 00:09:13,966 --> 00:09:15,300 Tens raó. 225 00:09:15,300 --> 00:09:15,930 Això és exactament el que diu. 226 00:09:15,930 --> 00:09:17,110 És tornar a més b. 227 00:09:17,110 --> 00:09:18,570 Això té molt sentit. 228 00:09:18,570 --> 00:09:20,240 >> OK, anem a tornar aquí. 229 00:09:20,240 --> 00:09:21,490 Veiem com la capçalera - 230 00:09:21,490 --> 00:09:24,540 231 00:09:24,540 --> 00:09:25,660 aquest és el tipus de retorn. 232 00:09:25,660 --> 00:09:29,100 Recordeu, hem vist que el primer dia, la tipus de la funció de tornar, però va 233 00:09:29,100 --> 00:09:30,160 abans que el nom de la funció int. 234 00:09:30,160 --> 00:09:31,560 Aquí, he escrit int. 235 00:09:31,560 --> 00:09:35,680 Què creus que passarà si en aquest funció, no escric int, però 236 00:09:35,680 --> 00:09:38,270 Escric sense signar? 237 00:09:38,270 --> 00:09:41,050 La diferència, per descomptat, és que sense signe representa única cosa positiva 238 00:09:41,050 --> 00:09:43,620 sencers i poden ser int positiva o negativa. 239 00:09:43,620 --> 00:09:45,450 >> Així que he canviat el retorn tipus d'aquesta funció. 240 00:09:45,450 --> 00:09:49,370 Aquest codi no coincideix aquest retorn aquí. 241 00:09:49,370 --> 00:09:50,925 Què creus que passarà quan va compilar? 242 00:09:50,925 --> 00:09:53,840 243 00:09:53,840 --> 00:09:56,240 Vostè ha cridar. 244 00:09:56,240 --> 00:09:57,700 Sense crits. 245 00:09:57,700 --> 00:10:00,050 >> Què passa quan executo el programa? 246 00:10:00,050 --> 00:10:05,810 Anem a fer-ho abans de 0 negatiu 3, o negatiu gener. 247 00:10:05,810 --> 00:10:10,180 Encara funciona, tot i que estic dient que ha de tornar un enter sense signe. 248 00:10:10,180 --> 00:10:12,060 És clar que no em torna les un enter sense signe. 249 00:10:12,060 --> 00:10:13,520 Es retorna un enter amb signe. 250 00:10:13,520 --> 00:10:16,130 Està tornant negatiu gener. 251 00:10:16,130 --> 00:10:17,830 OK, això és rar. 252 00:10:17,830 --> 00:10:27,030 >> Què passa si em vaig a aquí i fer això? 253 00:10:27,030 --> 00:10:29,700 Així que he canviat tot de int a signar. 254 00:10:29,700 --> 00:10:31,590 Només pot prendre sencers sense signe. 255 00:10:31,590 --> 00:10:33,840 Però, seguim pensant que funcionarà? 256 00:10:33,840 --> 00:10:35,652 >> AUDIÈNCIA: Si. 257 00:10:35,652 --> 00:10:37,270 >> ALTAVEU: Ho farà. 258 00:10:37,270 --> 00:10:39,410 Això és una bogeria. 259 00:10:39,410 --> 00:10:43,140 I passem de manera clarament assignat nombre enter, podem passar dues signat 260 00:10:43,140 --> 00:10:46,280 nombre sencer, que encara funciona. 261 00:10:46,280 --> 00:10:52,150 >> OK, alguna idea de per què segueix funciona, o el que està passant? 262 00:10:52,150 --> 00:10:53,368 Sí, Jeff. 263 00:10:53,368 --> 00:10:56,296 >> AUDIÈNCIA: Té alguna cosa a veure amb la seva optimització que 264 00:10:56,296 --> 00:10:57,760 ressaltat. 265 00:10:57,760 --> 00:10:58,210 >> ALTAVEU: No 266 00:10:58,210 --> 00:11:00,570 Podríem canviar l'optimització, no per això deixa treballar. 267 00:11:00,570 --> 00:11:02,240 Jo puc fer això per a vostè, però - 268 00:11:02,240 --> 00:11:02,930 >> AUDIÈNCIA: Vaig a prendre la seva paraula per a ella. 269 00:11:02,930 --> 00:11:03,690 >> ALTAVEU: Si. 270 00:11:03,690 --> 00:11:09,690 Si obriu l'arxiu MAKE aquí, Vaig canviar l'optimització. 271 00:11:09,690 --> 00:11:11,570 Així que vostè pot fer el tauler zero, zero. 272 00:11:11,570 --> 00:11:12,820 Encara funcionarà. 273 00:11:12,820 --> 00:11:16,839 274 00:11:16,839 --> 00:11:20,280 Altres pensaments? 275 00:11:20,280 --> 00:11:22,600 >> Vostès tots esperàvem per treballar, de manera que Per què esperes que funcioni? 276 00:11:22,600 --> 00:11:31,210 277 00:11:31,210 --> 00:11:32,150 No? 278 00:11:32,150 --> 00:11:33,660 Silenci. 279 00:11:33,660 --> 00:11:34,910 D'acord. 280 00:11:34,910 --> 00:11:39,271 281 00:11:39,271 --> 00:11:41,650 He d'esperar set segons perquè he fet una pregunta. 282 00:11:41,650 --> 00:11:44,190 283 00:11:44,190 --> 00:11:48,660 >> Així que el bo de C, i que ha probablement experimentat abans - 284 00:11:48,660 --> 00:11:50,260 podria no tenir, això podria la primera vegada. 285 00:11:50,260 --> 00:11:57,030 Però com tots vostès saben, quan escric alguna cosa en C, no es guarda com 286 00:11:57,030 --> 00:11:57,760 aquest a l'ordinador. 287 00:11:57,760 --> 00:11:59,440 Es guarda com uns i zeros. 288 00:11:59,440 --> 00:12:02,970 Va de codi C a codi assemblador. 289 00:12:02,970 --> 00:12:09,460 >> Algú ha vist codi assemblador abans, Codi de muntatge de la màquina? 290 00:12:09,460 --> 00:12:10,630 Veurem en un segon. 291 00:12:10,630 --> 00:12:12,040 Va de codi C a codi assemblador. 292 00:12:12,040 --> 00:12:13,755 I vostès saben les etapes de compilació. 293 00:12:13,755 --> 00:12:17,410 Calia memoritzar que per concurs una, i després escriure-ho en concurs zero. 294 00:12:17,410 --> 00:12:18,240 La majoria de les persones es van equivocar. 295 00:12:18,240 --> 00:12:19,760 Crec que vostès ho va clavar. 296 00:12:19,760 --> 00:12:22,880 >> Però, vostès són la millor secció per a les proves, per cert. 297 00:12:22,880 --> 00:12:25,210 Quin és impressionant. 298 00:12:25,210 --> 00:12:25,910 No et farà mal. 299 00:12:25,910 --> 00:12:26,900 No es preocupi. 300 00:12:26,900 --> 00:12:28,800 Però és realment genial. 301 00:12:28,800 --> 00:12:29,660 Bon treball. 302 00:12:29,660 --> 00:12:32,870 >> Així que va a llenguatge assemblador, i després passa a uns i zeros. 303 00:12:32,870 --> 00:12:35,500 I els uns i zeros es guarden en el ordinador, i això és el que guarda en 304 00:12:35,500 --> 00:12:38,340 la a.out, o en aquest cas, l'arxiu executable. 305 00:12:38,340 --> 00:12:41,040 I l'equip funciona amb uns i zeros. 306 00:12:41,040 --> 00:12:41,670 Cert? 307 00:12:41,670 --> 00:12:43,890 Hem après això abans. 308 00:12:43,890 --> 00:12:47,490 >> Així que el millor és que això no signat idea, la idea dels tipus de ints sense signar, 309 00:12:47,490 --> 00:12:50,490 etcètera, etcètera, això és aquí al llenguatge C. 310 00:12:50,490 --> 00:12:51,110 Aquells existeix. 311 00:12:51,110 --> 00:12:53,770 Però no hi ha tipus de els uns i zeros. 312 00:12:53,770 --> 00:12:57,110 Tipus ni tan sols existeixen realment en el nivell de llenguatge assemblador. 313 00:12:57,110 --> 00:13:00,075 Així que això és una cosa que existeix en C món, però no hi ha a l'ordinador 314 00:13:00,075 --> 00:13:01,640 món o del món del processador. 315 00:13:01,640 --> 00:13:04,660 Això és una abstracció que el C idioma ha inclòs, perquè la nostra 316 00:13:04,660 --> 00:13:06,240 la vida més fàcil. 317 00:13:06,240 --> 00:13:09,990 >> Així que al final del dia, puc escriure moltes coses diferents aquí, i és 318 00:13:09,990 --> 00:13:10,700 no fa una diferència. 319 00:13:10,700 --> 00:13:12,060 Com que només hi ha en el món C. 320 00:13:12,060 --> 00:13:14,100 No existeix en el uns i zeros món. 321 00:13:14,100 --> 00:13:17,310 I el nostre programa d'execució en els uns i zeros món. 322 00:13:17,310 --> 00:13:21,170 Així que clarament no ha volat de la seva ment. 323 00:13:21,170 --> 00:13:22,740 Però crec que això és genial. 324 00:13:22,740 --> 00:13:23,530 Sí, Jeff. 325 00:13:23,530 --> 00:13:27,298 >> AUDIÈNCIA: Així que, si en lloc de fent int, ho fas caràcters. 326 00:13:27,298 --> 00:13:27,770 I tu estaves - 327 00:13:27,770 --> 00:13:29,311 >> ALTAVEU: Anem a fer-ho en un segon. 328 00:13:29,311 --> 00:13:32,583 >> AUDIÈNCIA: Perquè llavors s'obté una sense signe al passar de 128 a negatiu 329 00:13:32,583 --> 00:13:34,720 127 o de 0 a 255. 330 00:13:34,720 --> 00:13:36,760 >> ALTAVEU: Així char és problemàtic. 331 00:13:36,760 --> 00:13:39,460 Algú sap per què carbó seria problemàtica, i que ho faria en realitat 332 00:13:39,460 --> 00:13:42,930 canviar les coses en què i zeros món? 333 00:13:42,930 --> 00:13:44,370 >> AUDIÈNCIA: causa de la grandària dels caràcters. 334 00:13:44,370 --> 00:13:46,200 >> ALTAVEU: Mida de char és 1. 335 00:13:46,200 --> 00:13:48,260 Així que sense signe també és de 4 bytes. 336 00:13:48,260 --> 00:13:50,080 Així carbó seria arruïnar les coses. 337 00:13:50,080 --> 00:13:55,660 Però el que és 4 bytes que està en relacionada amb un char? 338 00:13:55,660 --> 00:13:57,820 O, al qual se suma un més - 339 00:13:57,820 --> 00:13:59,760 vostè pot posar un caràcter més després de caràcters. 340 00:13:59,760 --> 00:14:00,200 >> AUDIÈNCIA: Car estrelles. 341 00:14:00,200 --> 00:14:01,220 >> ALTAVEU: Caràcter estrelles disposa de 4 bytes. 342 00:14:01,220 --> 00:14:02,490 Així que anem a fer alguna cosa això és una estrella de carbó. 343 00:14:02,490 --> 00:14:05,470 344 00:14:05,470 --> 00:14:07,240 >> Així que això probablement funcionaria, però estem farà alguna cosa, fins i tot 345 00:14:07,240 --> 00:14:09,710 més boig que això. 346 00:14:09,710 --> 00:14:10,960 Al meu entendre, més boig. 347 00:14:10,960 --> 00:14:21,060 348 00:14:21,060 --> 00:14:24,570 >> Ara que he escrit una funció que retorna un punter, i es necessita un 349 00:14:24,570 --> 00:14:29,480 punter i un valor sense signe - anem a canviar això a int així que no estem 350 00:14:29,480 --> 00:14:31,250 fer massa canvis al mateix temps. 351 00:14:31,250 --> 00:14:35,370 I té un arranjament crida, els índexs en la matriu, i torna la 352 00:14:35,370 --> 00:14:35,850 direcció. 353 00:14:35,850 --> 00:14:37,470 Hem vist aquests operadors abans. 354 00:14:37,470 --> 00:14:43,340 Això, què creus que això va a fer, a canvi, quan ho executo? 355 00:14:43,340 --> 00:14:48,280 356 00:14:48,280 --> 00:14:49,070 Què pensa vostè que farà? 357 00:14:49,070 --> 00:14:50,320 Alguna idea? 358 00:14:50,320 --> 00:14:54,220 359 00:14:54,220 --> 00:14:55,320 >> AUDIÈNCIA: violació de segment. 360 00:14:55,320 --> 00:14:55,600 >> ALTAVEU: Què? 361 00:14:55,600 --> 00:14:56,660 Segfault? 362 00:14:56,660 --> 00:14:58,520 Això és una bona suposició. 363 00:14:58,520 --> 00:14:59,430 Tom diu el mateix. 364 00:14:59,430 --> 00:15:02,240 Qualssevol altres conjectures? 365 00:15:02,240 --> 00:15:05,260 >> Qui pensa que va a fer el mateix? 366 00:15:05,260 --> 00:15:06,510 Qui pensa que va a segfault? 367 00:15:06,510 --> 00:15:09,350 368 00:15:09,350 --> 00:15:10,230 Es fa el mateix. 369 00:15:10,230 --> 00:15:11,880 Ho sento. 370 00:15:11,880 --> 00:15:13,860 >> Però, és clar, posem en 1 i 2. 371 00:15:13,860 --> 00:15:16,470 I aquests són els dos vàlids, oi? 372 00:15:16,470 --> 00:15:19,420 Anem a veure, podem anar a la el segon lloc d'una matriu. 373 00:15:19,420 --> 00:15:24,010 Però el que si vam fer b un nombre negatiu? 374 00:15:24,010 --> 00:15:26,380 Aquesta és probablement una millor conjectura per alguna cosa en violació de segment. 375 00:15:26,380 --> 00:15:30,310 376 00:15:30,310 --> 00:15:32,260 Encara funciona. 377 00:15:32,260 --> 00:15:35,020 >> OK, això ja és una bogeria. 378 00:15:35,020 --> 00:15:38,350 Aquesta és la funció de suma igualment vàlides. 379 00:15:38,350 --> 00:15:40,470 Això fa exactament el mateix com el retorn a i b. 380 00:15:40,470 --> 00:15:44,600 Algú pot explicar per què això és una bona funció de resumir, o per què això funciona? 381 00:15:44,600 --> 00:15:45,850 Què està passant aquí? 382 00:15:45,850 --> 00:15:49,360 383 00:15:49,360 --> 00:15:55,750 Per què fa això exactament el mateix cosa com nostra antiga funció suma? 384 00:15:55,750 --> 00:15:56,890 [? Akshar,?] 385 00:15:56,890 --> 00:15:58,155 Què està passant? 386 00:15:58,155 --> 00:16:01,540 >> AUDIÈNCIA: Perquè quan vostè té 1 que és una direcció a 387 00:16:01,540 --> 00:16:03,950 la memòria de localització - 388 00:16:03,950 --> 00:16:07,910 i quan ho fa el signe, que va a l'adreça de memòria. 389 00:16:07,910 --> 00:16:13,610 I quan vas a la b, ets una mica passos d'aquesta adreça de memòria en moviment, 390 00:16:13,610 --> 00:16:15,550 vostè està tornant això. 391 00:16:15,550 --> 00:16:20,083 Així que vostè és en realitat, de fet, afegint a i b [inaudible]. 392 00:16:20,083 --> 00:16:23,300 393 00:16:23,300 --> 00:16:26,222 On són les operacions estàndard en aquesta declaració? 394 00:16:26,222 --> 00:16:27,683 Igual que, d'on cauen els parèntesis? 395 00:16:27,683 --> 00:16:30,610 El retorn de la direcció en un abans o després de [inaudible]? 396 00:16:30,610 --> 00:16:32,380 >> ALTAVEU: Es va a indexar en b - 397 00:16:32,380 --> 00:16:34,430 o un índex en un - i després tornar la direcció. 398 00:16:34,430 --> 00:16:38,800 399 00:16:38,800 --> 00:16:41,340 OK, així que entenia tot el món el que [? Akshar?] 400 00:16:41,340 --> 00:16:45,830 va dir, i va explicar per què això funciona? 401 00:16:45,830 --> 00:16:49,430 Jo no ho vaig fer, la primera vegada que algú explicat això a mi. 402 00:16:49,430 --> 00:16:51,900 Algú vol una foto per explicar això? 403 00:16:51,900 --> 00:16:55,320 Farem un dibuix, amb cap marcador, això és genial. 404 00:16:55,320 --> 00:16:57,920 Trobat alguna. 405 00:16:57,920 --> 00:17:03,390 >> Així que tenim una matriu que és una sèrie de caixes. 406 00:17:03,390 --> 00:17:07,160 407 00:17:07,160 --> 00:17:13,710 El primer és un índex de 0, índex 1, 2, 3, 4, punt, punt, punt. 408 00:17:13,710 --> 00:17:15,609 Un arranjament típic. 409 00:17:15,609 --> 00:17:19,540 I a més de tenir índexs, tots ells tenen adreces de memòria. 410 00:17:19,540 --> 00:17:30,190 Així que anem a donar a aquesta adreça de memòria 13, 14, 15, 16, 17, etc. 411 00:17:30,190 --> 00:17:32,490 Tothom està aquí fins ara. 412 00:17:32,490 --> 00:17:35,810 >> Així que a és una direcció. 413 00:17:35,810 --> 00:17:38,850 El nom d'una matriu, un punter es guarda allà. 414 00:17:38,850 --> 00:17:42,730 És un punter, és una ubicació de memòria, l'inici de la matriu. 415 00:17:42,730 --> 00:17:45,910 Així que si es tractés de la matriu, 1 seria un valor de 13. 416 00:17:45,910 --> 00:17:49,110 I, per descomptat, podem donar un valor que volem. 417 00:17:49,110 --> 00:17:52,450 Caràcter de luxe A, podem donar una qualsevol direcció de memòria que volem. 418 00:17:52,450 --> 00:17:55,940 Podem donar-li 0, podem donar-li negatiu 1 - negatiu no existeix 1, 419 00:17:55,940 --> 00:17:58,820 de manera que és probable que hi hagi un problema, però vas veure que encara funcionava. 420 00:17:58,820 --> 00:18:03,070 Així que podem donar-li un qualsevol nombre que vulguem, qualsevol adreça de memòria que volem. 421 00:18:03,070 --> 00:18:08,720 >> Llavors, int b diu, OK, vagi aquest número dels passos en la matriu. 422 00:18:08,720 --> 00:18:13,150 Així que si b és igual a 2, i a és igual a 13, estem en la direcció de memòria 13. 423 00:18:13,150 --> 00:18:17,330 I anem dos passos, i pel que estem aquí. 424 00:18:17,330 --> 00:18:21,150 I el signe significa retorn la direcció d'aquest lloc. 425 00:18:21,150 --> 00:18:23,990 I la direcció és, per descomptat, 15. 426 00:18:23,990 --> 00:18:28,710 Així que tenim 13 més 2 o A més B, que és de 15. 427 00:18:28,710 --> 00:18:29,590 >> La qüestió és, però - 428 00:18:29,590 --> 00:18:30,250 Ho sento. 429 00:18:30,250 --> 00:18:34,324 Això aclarir les coses per què això funciona? 430 00:18:34,324 --> 00:18:36,300 >> AUDIÈNCIA: Per què seria treballar va - 431 00:18:36,300 --> 00:18:38,770 perquè pugui tenir una matriu i anar a un índex negatiu? 432 00:18:38,770 --> 00:18:39,050 >> ALTAVEU: així. 433 00:18:39,050 --> 00:18:40,870 Així que vam fer els números negatius, així que això és el - 434 00:18:40,870 --> 00:18:42,770 ¿Això té sentit, però, primer, [? Avi,?] 435 00:18:42,770 --> 00:18:43,120 per a vostè? 436 00:18:43,120 --> 00:18:48,840 >> AUDIÈNCIA: Sí, estic sol [Inaudible], però - 437 00:18:48,840 --> 00:18:50,440 >> ALTAVEU: Sí, això seria tornar 15. 438 00:18:50,440 --> 00:18:53,523 Si una tenia 13 anys, i b era 2, això seria tornar 15. 439 00:18:53,523 --> 00:18:58,160 >> AUDIÈNCIA: Així que la indexació de zero no convertit en un problema, oi? 440 00:18:58,160 --> 00:19:00,160 Com que vostè s'està movent des de 0. 441 00:19:00,160 --> 00:19:00,470 >> ALTAVEU: així. 442 00:19:00,470 --> 00:19:05,000 Així que vostè està en moviment - així que si b va ser de 0, no desplaçar-se a qualsevol lloc. 443 00:19:05,000 --> 00:19:06,330 I vostè acaba de tornar de la direcció - 444 00:19:06,330 --> 00:19:10,830 si b és 0, això és essencialment retornant aquesta direcció d'una. 445 00:19:10,830 --> 00:19:13,960 En passar en una xerrada d'una estrella i tornar el direcció d'una s'acaba tornant a, 446 00:19:13,960 --> 00:19:15,860 essencialment. 447 00:19:15,860 --> 00:19:18,280 >> Bé, la pregunta és per què nombres negatius funcionen? 448 00:19:18,280 --> 00:19:21,670 I això és el realment bo de això, perquè això ha segfault. 449 00:19:21,670 --> 00:19:25,110 I seria segfault si va fer alguna cosa com això. 450 00:19:25,110 --> 00:19:28,050 451 00:19:28,050 --> 00:19:29,300 Diguem, int. 452 00:19:29,300 --> 00:19:34,390 453 00:19:34,390 --> 00:19:39,810 Així que aquest codi és idèntic i ha de comportar de forma idèntica. 454 00:19:39,810 --> 00:19:44,550 Essencialment, x és una variable d'escombraries, de manera que aquest ha de comportar-se de forma idèntica. 455 00:19:44,550 --> 00:19:46,370 >> Farem això - 456 00:19:46,370 --> 00:19:47,620 ups - 457 00:19:47,620 --> 00:19:54,790 458 00:19:54,790 --> 00:19:56,040 en estrella. 459 00:19:56,040 --> 00:19:59,160 460 00:19:59,160 --> 00:20:02,733 Bé, ja estem rebent errors aquí, perquè ja estarà enutjat 461 00:20:02,733 --> 00:20:04,610 a mi, perquè ja sap el que ve. 462 00:20:04,610 --> 00:20:07,060 En particular, el segon un. 463 00:20:07,060 --> 00:20:09,800 Direcció de memòria apilats associat amb una variable local. 464 00:20:09,800 --> 00:20:14,220 >> Essencialment, jo no vaig a compilar això, i després em vaig a desfer fer 465 00:20:14,220 --> 00:20:14,920 el que acabem de fer. 466 00:20:14,920 --> 00:20:19,130 Però com que mai estem realment accedir al que està en la memòria 467 00:20:19,130 --> 00:20:21,930 ubicació, no va a segfault. 468 00:20:21,930 --> 00:20:26,450 Estem en realitat mai mirar al que és en el segon quadre, o el que hi ha a qualsevol caixa 469 00:20:26,450 --> 00:20:28,340 d'aquesta matriu. 470 00:20:28,340 --> 00:20:30,980 Nosaltres només estem dient, aquí hi ha la direcció del que estem buscant i 471 00:20:30,980 --> 00:20:32,410 tornar aquesta direcció. 472 00:20:32,410 --> 00:20:35,700 Estem en realitat mai entrar al matriu a mirar en aquesta ubicació. 473 00:20:35,700 --> 00:20:39,140 I perquè mai ens toquem la memòria, no ens fiquem en problemes. 474 00:20:39,140 --> 00:20:40,760 No aconseguim una violació de segment. 475 00:20:40,760 --> 00:20:46,225 >> Si intentem, de nou, toc que memòria, toc el que estava en un ob - 476 00:20:46,225 --> 00:20:49,940 o un suport de b, i suposant un 0 i - 477 00:20:49,940 --> 00:20:53,040 si una de 0, fins i tot, que seria bastant dolent, perquè no podem anar 478 00:20:53,040 --> 00:20:54,090 baix tot el camí. 479 00:20:54,090 --> 00:20:58,250 Si A i B són dos 0, i tractem de tocar el que hi era, llavors ho faríem 480 00:20:58,250 --> 00:20:59,110 ficar en problemes. 481 00:20:59,110 --> 00:21:02,160 Però si no toquem el que hi ha, simplement tornem la direcció, és 482 00:21:02,160 --> 00:21:08,300 en realitat no va a segfault perquè que li permet realitzar aquestes operacions. 483 00:21:08,300 --> 00:21:11,920 Només s'enfada amb vostè, i es posa molt enutjat, quan tractes de tocar 484 00:21:11,920 --> 00:21:15,740 la memòria real i tornar el que és en aquesta ubicació de memòria. 485 00:21:15,740 --> 00:21:17,690 >> Això té sentit? 486 00:21:17,690 --> 00:21:24,820 Això és només una part boja de C. Així, tenim un més d'aquests. 487 00:21:24,820 --> 00:21:27,760 488 00:21:27,760 --> 00:21:29,700 >> Qui creu que és genial? 489 00:21:29,700 --> 00:21:30,280 Més persones. 490 00:21:30,280 --> 00:21:31,070 Això és bo. 491 00:21:31,070 --> 00:21:34,860 D'acord, aquest és el nostre últim. 492 00:21:34,860 --> 00:21:37,314 I m'agradaria que em digués si o no creus que això va 493 00:21:37,314 --> 00:21:38,564 fer exactament el mateix. 494 00:21:38,564 --> 00:22:06,050 495 00:22:06,050 --> 00:22:07,390 >> Això ho he escrit en algun lloc. 496 00:22:07,390 --> 00:22:08,640 No vaig a memoritzar. 497 00:22:08,640 --> 00:22:33,350 498 00:22:33,350 --> 00:22:42,900 >> Anem a veure, 8, b 4, 4, 2, 4, 0, 8, 0, 3, 4, 4, 2, 4, 0, 4. 499 00:22:42,900 --> 00:22:46,670 Així que aquesta és una matriu, ara, no una funció. 500 00:22:46,670 --> 00:22:49,640 I és una matriu perquè tenim quadrat suports, abraçadores no arrissat. 501 00:22:49,640 --> 00:22:52,360 I és una matriu de quin tipus? 502 00:22:52,360 --> 00:22:55,540 503 00:22:55,540 --> 00:22:56,862 Qualsevol persona, no? 504 00:22:56,862 --> 00:22:57,694 >> AUDIÈNCIA: Els seus números hexadecimals? 505 00:22:57,694 --> 00:22:59,650 >> ALTAVEU: Però quin és el tipus C? 506 00:22:59,650 --> 00:23:00,710 Tots ells tenen números hexadecimals. 507 00:23:00,710 --> 00:23:01,960 Quin és el tipus C? 508 00:23:01,960 --> 00:23:04,730 509 00:23:04,730 --> 00:23:05,480 Et diu. 510 00:23:05,480 --> 00:23:07,350 >> AUDIÈNCIA: És caràcters sense signe. 511 00:23:07,350 --> 00:23:09,170 >> ALTAVEU: Dreta, caràcters sense signe. 512 00:23:09,170 --> 00:23:13,050 I dos nombres hexadecimals és d'un byte. 513 00:23:13,050 --> 00:23:18,540 Així que aquests són 1, 2, 3, 4, 5, 6, 7, 8, 9 bytes. 514 00:23:18,540 --> 00:23:21,360 És un conjunt de 9 bytes. 515 00:23:21,360 --> 00:23:25,530 >> Bé, vostè probablement ja sap la resposta a aquesta pregunta. 516 00:23:25,530 --> 00:23:29,840 Però, ¿què creus que va a succeir quan executo això? 517 00:23:29,840 --> 00:23:34,110 Dic, de nou, en mysum.c, Estic esperant una funció 518 00:23:34,110 --> 00:23:36,280 que pren dos nombres enters. 519 00:23:36,280 --> 00:23:40,265 I jo estic en el seu lloc dient que suma és una sèrie de caràcters. 520 00:23:40,265 --> 00:23:42,780 521 00:23:42,780 --> 00:23:48,070 ¿Què passarà quan Corro. / MySum i fer? 522 00:23:48,070 --> 00:23:53,230 >> Bé, en primer lloc, la majoria de vostès probablement d'acord que fer - oh no, és broma. 523 00:23:53,230 --> 00:23:54,746 Què vaig fer malament? 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 Això hauria de ser claus. 527 00:24:01,160 --> 00:24:02,790 Així com s'inicialitza una matriu. 528 00:24:02,790 --> 00:24:04,040 El meu mal. 529 00:24:04,040 --> 00:24:07,530 530 00:24:07,530 --> 00:24:11,670 >> Així que ja vam veure abans que els tipus de són una abstracció de nivell C, no una 531 00:24:11,670 --> 00:24:12,610 abstracció nivell d'equip. 532 00:24:12,610 --> 00:24:16,360 Així que la majoria de vostès probablement esperava que fer, o assumir que faria. 533 00:24:16,360 --> 00:24:18,680 Però el que quan corro. / MySum? 534 00:24:18,680 --> 00:24:19,930 ¿Què passarà? 535 00:24:19,930 --> 00:24:21,790 536 00:24:21,790 --> 00:24:23,422 Alguna idea? 537 00:24:23,422 --> 00:24:25,270 >> AUDIÈNCIA: Es va a imprimir una paraula. 538 00:24:25,270 --> 00:24:26,310 >> ALTAVEU: Es va a imprimir una paraula. 539 00:24:26,310 --> 00:24:29,335 Quina paraula? 540 00:24:29,335 --> 00:24:32,200 >> AUDIÈNCIA: [inaudible]. 541 00:24:32,200 --> 00:24:33,240 >> ALTAVEU: Alguna altra conjectures? 542 00:24:33,240 --> 00:24:34,000 Acceptar, imprimiu una frase. 543 00:24:34,000 --> 00:24:35,130 Vostè pot tenir qualsevol frase. 544 00:24:35,130 --> 00:24:36,240 Aquesta serà teu costat. 545 00:24:36,240 --> 00:24:38,480 Qualsevol que tingui una suposició diferent? 546 00:24:38,480 --> 00:24:39,730 Anna, quina és la seva resposta? 547 00:24:39,730 --> 00:24:42,675 548 00:24:42,675 --> 00:24:44,615 >> AUDIÈNCIA: Es va a imprimir - 549 00:24:44,615 --> 00:24:47,525 550 00:24:47,525 --> 00:24:49,480 dues lletres, o [inaudible] una lletra. 551 00:24:49,480 --> 00:24:51,460 >> ALTAVEU: Una carta. 552 00:24:51,460 --> 00:24:53,260 >> AUDIÈNCIA: Puc explicar com molts [inaudible]? 553 00:24:53,260 --> 00:24:55,426 >> ALTAVEU: Nou. 554 00:24:55,426 --> 00:24:56,640 Bé, jo vaig a executar-lo. 555 00:24:56,640 --> 00:24:58,650 Fa exactament el mateix. 556 00:24:58,650 --> 00:25:00,190 Afegeix dos nombres junts. 557 00:25:00,190 --> 00:25:02,740 Bé, anem a passar els dos arguments. 558 00:25:02,740 --> 00:25:03,710 No pren arguments. 559 00:25:03,710 --> 00:25:06,080 Així que no sé d'on va poder possiblement obtenir aquests arguments. 560 00:25:06,080 --> 00:25:07,710 Però anem a passar a 100 i 0. 561 00:25:07,710 --> 00:25:09,200 I afegeix 100 i 0. 562 00:25:09,200 --> 00:25:10,220 Això és una bogeria. 563 00:25:10,220 --> 00:25:12,280 Crec que sí. 564 00:25:12,280 --> 00:25:14,480 >> Negatiu 4, que funciona també. 565 00:25:14,480 --> 00:25:15,650 Pots fer el que vulguis. 566 00:25:15,650 --> 00:25:17,920 Aquesta és una funció de suma igualment vàlides. 567 00:25:17,920 --> 00:25:19,640 Aquesta és una funció de suma. 568 00:25:19,640 --> 00:25:21,510 Però, no, vostè està dient que és una matriu de bytes. 569 00:25:21,510 --> 00:25:23,570 Llavors, què està passant aquí? 570 00:25:23,570 --> 00:25:27,240 >> Així que, de nou, tornarem a aquesta idea que dèiem al principi. 571 00:25:27,240 --> 00:25:32,050 Es passa de codi de nivell C, per al muntatge llenguatge, a uns i zeros. 572 00:25:32,050 --> 00:25:33,050 Aquest és hexadecimal. 573 00:25:33,050 --> 00:25:35,780 Però això és només una munt d'uns i zeros. 574 00:25:35,780 --> 00:25:39,230 Això és 72 uns i zeros, oi? 575 00:25:39,230 --> 00:25:40,550 72 uns i zeros. 576 00:25:40,550 --> 00:25:42,160 9 bytes. 577 00:25:42,160 --> 00:25:43,740 Cada byte té 8 bits. 578 00:25:43,740 --> 00:25:44,760 Cada bit és un un o un zero. 579 00:25:44,760 --> 00:25:45,920 Així que 72 uns o zeros. 580 00:25:45,920 --> 00:25:48,780 Acabo d'ells escrits com aquest - en lloc d'escriure com una gran quantitat de 581 00:25:48,780 --> 00:25:49,730 uns i zeros. 582 00:25:49,730 --> 00:25:53,560 >> Però això passarà de nivell C idioma, per al muntatge 583 00:25:53,560 --> 00:25:54,620 idioma, a codi. 584 00:25:54,620 --> 00:25:59,020 I això mostrés en el codi, en algun lloc, aquests 72 uns i zeros 585 00:25:59,020 --> 00:26:00,910 que he escrit aquí. 586 00:26:00,910 --> 00:26:03,610 Així en algun lloc en què - 587 00:26:03,610 --> 00:26:04,850 anirem aquí - 588 00:26:04,850 --> 00:26:11,240 en algun lloc de MySum, el programa, hi ha són aquests 72 uns i zeros que he 589 00:26:11,240 --> 00:26:14,930 per escrit i li va dir que per escriure. 590 00:26:14,930 --> 00:26:19,331 >> Ara, qualsevol conjectura sobre el que els 72 uns i zeros signifiquen? 591 00:26:19,331 --> 00:26:21,240 >> AUDIÈNCIA: Probablement el mateix cosa que tornar a més b. 592 00:26:21,240 --> 00:26:22,890 >> ALTAVEU: Probablement el mateix cosa que tornar a més b. 593 00:26:22,890 --> 00:26:23,730 Anem a verificar això. 594 00:26:23,730 --> 00:26:25,210 Anem a esbrinar com vaig fer això. 595 00:26:25,210 --> 00:26:31,840 >> Així que si vas de tornada aquí, et dic per executar aquesta comanda, objdump-S 596 00:26:31,840 --> 00:26:34,290 sumfunction.o. 597 00:26:34,290 --> 00:26:36,230 Anem a executar-lo. objdump - 598 00:26:36,230 --> 00:26:37,990 obj, bolcar. 599 00:26:37,990 --> 00:26:39,840 Bàsicament es em pot donar el que jo vull veure. 600 00:26:39,840 --> 00:26:40,840 Em pot donar el llenguatge assemblador. 601 00:26:40,840 --> 00:26:42,730 Em pot donar els uns i zeros. 602 00:26:42,730 --> 00:26:43,840 Té un munt de banderes. 603 00:26:43,840 --> 00:26:45,860 Aquest és el que anem per utilitzar de moment. 604 00:26:45,860 --> 00:26:46,980 Dot - 605 00:26:46,980 --> 00:26:48,810 com podeu veure en les diapositives - 606 00:26:48,810 --> 00:26:53,840 capital de l'ruixada S diu, intersperse, codi font - 607 00:26:53,840 --> 00:26:58,410 aquesta línia és de C - amb el conjunt codi i amb els uns i zeros. 608 00:26:58,410 --> 00:27:00,350 I anem a córrer en sumfunction.o. 609 00:27:00,350 --> 00:27:01,410 Com que serà més fàcil de veure. 610 00:27:01,410 --> 00:27:02,670 Un cop més - hmm? 611 00:27:02,670 --> 00:27:04,700 >> AUDIÈNCIA: Vostè lletrejar malament. 612 00:27:04,700 --> 00:27:05,930 >> ALTAVEU: Però de fet vaig per desactivar per un segon. 613 00:27:05,930 --> 00:27:09,160 Estic primer va a obrir només sumfuntion.o. 614 00:27:09,160 --> 00:27:11,170 >> AUDIÈNCIA: Vostè lletrejar malament la primera vegada. 615 00:27:11,170 --> 00:27:12,420 >> ALTAVEU: Classic. 616 00:27:12,420 --> 00:27:14,790 617 00:27:14,790 --> 00:27:15,480 Suma - 618 00:27:15,480 --> 00:27:16,680 que és una paraula difícil, però. 619 00:27:16,680 --> 00:27:19,050 Us sorprendria. 620 00:27:19,050 --> 00:27:21,560 OK, així que això és sumfunction.o. 621 00:27:21,560 --> 00:27:24,494 622 00:27:24,494 --> 00:27:26,220 Ni tan sols vaig poder dir-li. 623 00:27:26,220 --> 00:27:30,250 Hi ha un munt de zeros, clarament molt de zeros, i no hi ha altra 624 00:27:30,250 --> 00:27:31,930 coses que no són zeros. 625 00:27:31,930 --> 00:27:33,220 Però tot zeros. 626 00:27:33,220 --> 00:27:35,120 Sembla que hi ha alguns més. 627 00:27:35,120 --> 00:27:36,810 Així que, clarament, això és difícil de llegir. 628 00:27:36,810 --> 00:27:39,320 Aquest és el llenguatge binari. 629 00:27:39,320 --> 00:27:40,710 >> Ara anem a obrir-lo - 630 00:27:40,710 --> 00:27:50,190 631 00:27:50,190 --> 00:27:52,350 ¿Què? 632 00:27:52,350 --> 00:27:53,600 Què estic fent malament? 633 00:27:53,600 --> 00:27:56,955 634 00:27:56,955 --> 00:27:58,434 ¿Vaig escriure correctament? 635 00:27:58,434 --> 00:28:09,865 636 00:28:09,865 --> 00:28:11,120 OK, això és incòmode. 637 00:28:11,120 --> 00:28:37,560 638 00:28:37,560 --> 00:28:40,158 Necessito un segon per entendre el que estic fent malament. 639 00:28:40,158 --> 00:28:46,030 640 00:28:46,030 --> 00:28:49,310 Aquesta és una error. 641 00:28:49,310 --> 00:28:50,560 Això és estrany. 642 00:28:50,560 --> 00:28:58,080 643 00:28:58,080 --> 00:29:01,800 Oh, és per això. 644 00:29:01,800 --> 00:29:09,880 >> Vaig a tornar a la nostra inicial un, perquè puguem mirar el 645 00:29:09,880 --> 00:29:10,560 codi objecte d'aquest. 646 00:29:10,560 --> 00:29:13,390 Perquè no hi ha realment va a ser qualsevol cosa quan només cal posar el 647 00:29:13,390 --> 00:29:14,640 uns i zeros polz 648 00:29:14,640 --> 00:29:29,000 649 00:29:29,000 --> 00:29:30,200 Això és. 650 00:29:30,200 --> 00:29:32,425 OK, així que tothom pot veure això. 651 00:29:32,425 --> 00:29:38,130 Aquesta funció, com ja he dit, apagar les línies C - 652 00:29:38,130 --> 00:29:39,060 línies de codi font - 653 00:29:39,060 --> 00:29:41,000 amb unes instruccions de muntatge. 654 00:29:41,000 --> 00:29:42,760 >> Aquí està la nostra línia de codi font. 655 00:29:42,760 --> 00:29:44,910 Aquí hi ha un, aquí és una altra. 656 00:29:44,910 --> 00:29:46,540 Heus aquí les instruccions de muntatge. 657 00:29:46,540 --> 00:29:47,820 Això és el que semblen. 658 00:29:47,820 --> 00:29:49,010 Instruccions de muntatge - 659 00:29:49,010 --> 00:29:51,530 vostè pot aprendre més d'ells si es pren altres classes de CS, però són 660 00:29:51,530 --> 00:29:53,500 en general, una instrucció. 661 00:29:53,500 --> 00:29:57,940 I a continuació, una font i un destí. 662 00:29:57,940 --> 00:30:02,740 >> I llavors aquí està el codi binari que correspon a l'assemblea 663 00:30:02,740 --> 00:30:04,940 instruccions. 664 00:30:04,940 --> 00:30:09,760 Així com vostè pot veure, aquesta funció suma, al final del dia, és de tres 665 00:30:09,760 --> 00:30:10,950 instruccions de muntatge. 666 00:30:10,950 --> 00:30:12,870 Només tres. 667 00:30:12,870 --> 00:30:14,180 Un mov - 668 00:30:14,180 --> 00:30:16,740 aquest m-o-v representa Move. 669 00:30:16,740 --> 00:30:17,780 Afegir estands per Afegeix. 670 00:30:17,780 --> 00:30:20,440 I r-i-t vol dir retorn. 671 00:30:20,440 --> 00:30:22,540 Així que un mov, un add, una devolució. 672 00:30:22,540 --> 00:30:27,970 I aquests, per aquí, són els zeros i els que corresponen a aquest codi. 673 00:30:27,970 --> 00:30:31,100 >> Així que aquests zeros i uns, si es vol Saps aquests, només pot posar 674 00:30:31,100 --> 00:30:32,140 aquells directament in 675 00:30:32,140 --> 00:30:34,130 I després va a fer el exactament el mateix. 676 00:30:34,130 --> 00:30:37,260 Com que, al final del dia, tots que està executant és una llarga sèrie de 677 00:30:37,260 --> 00:30:38,480 zeros i uns. 678 00:30:38,480 --> 00:30:40,700 I això és el que el seu codi és en realitat. 679 00:30:40,700 --> 00:30:41,770 >> I la raó - 680 00:30:41,770 --> 00:30:43,680 anem a veure una cosa. 681 00:30:43,680 --> 00:30:45,440 Tenia obert el makefile? 682 00:30:45,440 --> 00:30:48,510 Així que si ens vam anar de nou a llançar- zero, zero fins aquí - 683 00:30:48,510 --> 00:30:52,220 684 00:30:52,220 --> 00:30:57,300 ho sento, el capital o el capital o zero, no és zero, zero. 685 00:30:57,300 --> 00:31:01,810 I VA ACONSEGUIR, seria seguirà funcionant igual. 686 00:31:01,810 --> 00:31:05,420 Però ara t'adones que hi ha una molt més instruccions de muntatge. 687 00:31:05,420 --> 00:31:09,090 Això és perquè, de nou, li vaig preguntar a la compilador que no faci cap optimització. 688 00:31:09,090 --> 00:31:12,800 >> Així que encara podia prendre tots aquests zeros i uns, i llençar-los a, 689 00:31:12,800 --> 00:31:13,390 i que anava a funcionar. 690 00:31:13,390 --> 00:31:15,850 Acabo de fer les optimitzacions, perquè que és una mica més fàcil, llavors, 691 00:31:15,850 --> 00:31:17,310 per escriure la matriu. 692 00:31:17,310 --> 00:31:19,730 Però això havia de funcionar igual de bé. 693 00:31:19,730 --> 00:31:24,460 >> Bé, farem una última cosa, perquè crec que és la part més fresca. 694 00:31:24,460 --> 00:31:27,410 Tot i que tothom està clarament Ja bufat i sense paraules. 695 00:31:27,410 --> 00:31:30,520 696 00:31:30,520 --> 00:31:31,670 Les nostres ments s'han apagat. 697 00:31:31,670 --> 00:31:32,920 [Inaudible] 698 00:31:32,920 --> 00:31:47,580 699 00:31:47,580 --> 00:31:51,520 >> Així, aquests són d'una classe diferent de CS, que és molt interessant, 700 00:31:51,520 --> 00:31:52,970 que he pres - 701 00:31:52,970 --> 00:31:54,140 CS61. 702 00:31:54,140 --> 00:31:55,910 Jo us animo a prendre-ho. 703 00:31:55,910 --> 00:31:58,990 Però el millor d'aquest fet, que les coses són només zeros i uns, 704 00:31:58,990 --> 00:32:01,270 són que tot està zeros i uns. 705 00:32:01,270 --> 00:32:05,330 >> Així que vostè pot prendre un arxiu que té el zeros correctes i que vol 706 00:32:05,330 --> 00:32:10,390 en algun lloc en el mateix, i l'ús d'aquesta secció de zeros i uns en funció suma. 707 00:32:10,390 --> 00:32:11,480 >> Què vull dir amb això? 708 00:32:11,480 --> 00:32:15,755 Vull dir que pots tenir un arxiu d'imatge té la sèrie correcta de zeros i 709 00:32:15,755 --> 00:32:17,120 estimats, que imprimeixen una mica a una imatge. 710 00:32:17,120 --> 00:32:20,070 I un programa podria interpretar és un imatge, però ets capaç d'interpretar, si 711 00:32:20,070 --> 00:32:22,040 que vols, com una funció de suma. 712 00:32:22,040 --> 00:32:27,010 >> Així que si volíem obrir, per exemple, aquesta imatge. 713 00:32:27,010 --> 00:32:37,440 Anem, Hello Kitty. 714 00:32:37,440 --> 00:32:38,810 Wonderful little imatge. 715 00:32:38,810 --> 00:32:42,260 Aquí hi ha aquesta cadena de zeros i uns. 716 00:32:42,260 --> 00:32:45,500 Aquests 72 zeros i uns existir en aquesta imatge. 717 00:32:45,500 --> 00:32:47,695 >> Així que el que puc fer, llavors, és escriure - 718 00:32:47,695 --> 00:32:50,510 719 00:32:50,510 --> 00:32:51,760 He de recordar on són. 720 00:32:51,760 --> 00:32:54,550 721 00:32:54,550 --> 00:32:55,720 Vaig a trobar això en un segon. 722 00:32:55,720 --> 00:32:57,840 Però ho fem - 723 00:32:57,840 --> 00:32:59,440 m'ho dius a mi esbrinar on són. 724 00:32:59,440 --> 00:33:00,020 Un seg. 725 00:33:00,020 --> 00:33:01,270 Farem - 726 00:33:01,270 --> 00:33:05,800 727 00:33:05,800 --> 00:33:07,240 >> AUDIÈNCIA: [inaudible]. 728 00:33:07,240 --> 00:33:08,490 >> ALTAVEU: Gràcies. 729 00:33:08,490 --> 00:33:24,240 730 00:33:24,240 --> 00:33:28,740 Així que si executem aquest programa, que en canvi llegeix en un arxiu, llavors es va 731 00:33:28,740 --> 00:33:33,160 a aquest índex a l'arxiu. 732 00:33:33,160 --> 00:33:35,500 I llavors, de nou, igual que MySum, pren dos nombres. 733 00:33:35,500 --> 00:33:41,410 Podem afegir números exactament igual que que estàvem fent abans, el que va a 734 00:33:41,410 --> 00:33:44,850 mostrar com el fet que, al final del dia, totes aquestes coses són 735 00:33:44,850 --> 00:33:45,350 zeros i uns. 736 00:33:45,350 --> 00:33:48,170 I és només la forma en què vostè triï interpretar-los. 737 00:33:48,170 --> 00:33:50,770 >> I si realment es veuen en aquesta imatge - 738 00:33:50,770 --> 00:33:52,930 anem a ampliar una mica. 739 00:33:52,930 --> 00:33:53,720 Tots poden veure-ho? 740 00:33:53,720 --> 00:33:57,570 Es donarà compte d'aquí, hi ha alguna taca estranya. 741 00:33:57,570 --> 00:34:00,130 742 00:34:00,130 --> 00:34:02,290 Anirem - aquesta és la imatge original. 743 00:34:02,290 --> 00:34:04,540 Es donarà compte de que aquí no hi ha taca. 744 00:34:04,540 --> 00:34:08,420 Aquest és el codi de la funció suma, és aquesta petita taca aquí. 745 00:34:08,420 --> 00:34:13,449 >> I, de fet, un cop més, si vostè aprèn més sobre això, t'adonaràs que aquest 746 00:34:13,449 --> 00:34:18,270 Hello Kitty, que té fins i tot una major taca, ha codi que pot fer-se càrrec d'un 747 00:34:18,270 --> 00:34:21,800 ordinador si no està protegida apropiadament. 748 00:34:21,800 --> 00:34:23,920 Així que en realitat es pot executar aquest. 749 00:34:23,920 --> 00:34:25,380 Jo no vaig a córrer ara mateix. 750 00:34:25,380 --> 00:34:30,600 Però es pot executar aquest Hola Imatge del gatet, i que pot 751 00:34:30,600 --> 00:34:32,429 fer-se càrrec del seu equip. 752 00:34:32,429 --> 00:34:35,159 >> Així que això és tot per la demostració. 753 00:34:35,159 --> 00:34:38,560 Algú té alguna pregunta, comentaris, inquietuds? 754 00:34:38,560 --> 00:34:39,515 Crec que això és fascinant. 755 00:34:39,515 --> 00:34:41,500 Això em va inspirar a aprendre més. 756 00:34:41,500 --> 00:34:44,980 Li recomano, si estàs interessat en absolut en CS, parla amb mi. 757 00:34:44,980 --> 00:34:50,250 Tot i que sóc un Estudis Socials Concentrador, sóc un CS, secundària, de manera que 758 00:34:50,250 --> 00:34:52,340 Encara sé una mica. 759 00:34:52,340 --> 00:34:53,810 Però jo sé el que sens dubte classes que ha de prendre. 760 00:34:53,810 --> 00:34:57,940 Crec que és tot molt interessant, i animo a vostè, sens dubte, a 761 00:34:57,940 --> 00:35:00,330 obtenir més informació si està interessat. 762 00:35:00,330 --> 00:35:02,090 >> Està bé, tinc una última cosa. 763 00:35:02,090 --> 00:35:05,530 764 00:35:05,530 --> 00:35:05,870 Ho sento. 765 00:35:05,870 --> 00:35:06,460 Alguna pregunta? 766 00:35:06,460 --> 00:35:10,010 No em vaig aturar a esperar si algú tenia alguna pregunta sobre això. 767 00:35:10,010 --> 00:35:13,220 768 00:35:13,220 --> 00:35:16,900 >> Algú serà un concentrador d'CS? 769 00:35:16,900 --> 00:35:18,580 O pensar-hi? 770 00:35:18,580 --> 00:35:20,730 Un, dos, tres, quatre. 771 00:35:20,730 --> 00:35:21,620 Un - només un. 772 00:35:21,620 --> 00:35:24,680 Anna és l'única part que és plantejat amb autoritat. 773 00:35:24,680 --> 00:35:27,640 774 00:35:27,640 --> 00:35:29,390 OK, això és genial. 775 00:35:29,390 --> 00:35:30,110 Assam, què faràs? 776 00:35:30,110 --> 00:35:33,220 >> AUDIÈNCIA: [inaudible]. 777 00:35:33,220 --> 00:35:33,910 >> ALTAVEU: Constantino? 778 00:35:33,910 --> 00:35:34,990 >> AUDIÈNCIA: Física. 779 00:35:34,990 --> 00:35:36,720 >> ALTAVEU: Whoa, això va ser ràpid. 780 00:35:36,720 --> 00:35:40,770 Vostè va tenir una mala experiència en CS50? 781 00:35:40,770 --> 00:35:42,015 [Inaudible], què faràs? 782 00:35:42,015 --> 00:35:42,980 >> AUDIÈNCIA: No tinc ni idea. 783 00:35:42,980 --> 00:35:43,924 >> ALTAVEU: Curt? 784 00:35:43,924 --> 00:35:45,900 >> AUDIÈNCIA: Econ o CS. 785 00:35:45,900 --> 00:35:46,910 >> ALTAVEU: Econ o CS. 786 00:35:46,910 --> 00:35:47,840 Tom? 787 00:35:47,840 --> 00:35:48,385 >> AUDIÈNCIA: Estic fent Stat. 788 00:35:48,385 --> 00:35:48,950 >> ALTAVEU: Stat? 789 00:35:48,950 --> 00:35:50,100 D'acord. 790 00:35:50,100 --> 00:35:51,000 Què ets? 791 00:35:51,000 --> 00:35:51,310 >> AUDIÈNCIA: Em? 792 00:35:51,310 --> 00:35:51,750 >> ALTAVEU: Si. 793 00:35:51,750 --> 00:35:52,190 >> AUDIÈNCIA: Stat. 794 00:35:52,190 --> 00:35:52,520 >> ALTAVEU: Stat. 795 00:35:52,520 --> 00:35:53,500 Oh, aquí ho tens. 796 00:35:53,500 --> 00:35:55,200 Tom, parla amb Alden. 797 00:35:55,200 --> 00:35:56,932 Emily, què ets? 798 00:35:56,932 --> 00:35:57,396 >> AUDIÈNCIA: Biomèdica - 799 00:35:57,396 --> 00:36:00,178 >> ALTAVEU: Està vostè en aquesta secció? 800 00:36:00,178 --> 00:36:03,040 >> AUDIÈNCIA: No 801 00:36:03,040 --> 00:36:04,530 >> ALTAVEU: OK, això és Emily. 802 00:36:04,530 --> 00:36:05,670 Ella és la meva amiga. 803 00:36:05,670 --> 00:36:10,080 És evident que no és tan bo d'un amic, perquè ella em fa una mala estona. 804 00:36:10,080 --> 00:36:13,223 Vostè podria ser més amable amb mi davant de tots, el meu estudiant - 805 00:36:13,223 --> 00:36:14,580 >> AUDIÈNCIA: Estic fent la teva guia Q. 806 00:36:14,580 --> 00:36:14,870 >> ALTAVEU: De debò? 807 00:36:14,870 --> 00:36:15,510 Uh oh. 808 00:36:15,510 --> 00:36:17,224 Bé, ets increïble. 809 00:36:17,224 --> 00:36:19,380 T'estimo tant. 810 00:36:19,380 --> 00:36:20,600 Oh boy. 811 00:36:20,600 --> 00:36:28,320 >> De totes maneres, jo, ahir a la nit, com tot - 812 00:36:28,320 --> 00:36:32,220 Estic segur que tothom sembla realment subratllat en aquests moments. 813 00:36:32,220 --> 00:36:35,970 No sé, són de primer any - són vostès sent estressat? 814 00:36:35,970 --> 00:36:36,855 Em sento estressat. 815 00:36:36,855 --> 00:36:37,980 Era com, et vas a casa Acció de Gràcies. 816 00:36:37,980 --> 00:36:40,660 Ets com, vaig a fer totes aquestes coses. 817 00:36:40,660 --> 00:36:41,530 >> AUDIÈNCIA: És molt diferent. 818 00:36:41,530 --> 00:36:42,560 >> ALTAVEU: Sí, i torna. 819 00:36:42,560 --> 00:36:45,290 Jeff, que no et sents d'aquesta manera? 820 00:36:45,290 --> 00:36:46,610 >> AUDIÈNCIA: Acabo de pensar Jo faria una mica. 821 00:36:46,610 --> 00:36:48,660 >> ALTAVEU: OK, molt bé. 822 00:36:48,660 --> 00:36:51,650 Així que tornar, i no tinc fet res. 823 00:36:51,650 --> 00:36:53,260 I tot és molt estressant. 824 00:36:53,260 --> 00:36:55,640 I a mi es refereix, genuïnament interessat, sobre si sóc o no 825 00:36:55,640 --> 00:36:57,380 va a acabar tot el que he de fer. 826 00:36:57,380 --> 00:37:01,750 Però ahir a la nit, no es va destacar, Jo estava una mica trist. 827 00:37:01,750 --> 00:37:04,520 Així que vaig escriure al meu diari sobre el que jo estava trist per. 828 00:37:04,520 --> 00:37:08,020 I jo estava trist per aquesta secció en aquesta classe arriba a la seva fi. 829 00:37:08,020 --> 00:37:11,100 >> Així que jo només anava a llegir per vosaltres un petit fragment del meu diari, 830 00:37:11,100 --> 00:37:12,950 de la nit anterior. 831 00:37:12,950 --> 00:37:17,400 Puc obtenir algunes tovallons, alguns teixits de Tom? 832 00:37:17,400 --> 00:37:18,040 No, vaig a plorar. 833 00:37:18,040 --> 00:37:19,720 Jo no ploro. 834 00:37:19,720 --> 00:37:22,030 No és que no pots plorar, És només que no ploro. 835 00:37:22,030 --> 00:37:24,040 Ni tan sols sé si el meu llàgrima glàndules treballades - els conductes lacrimals. 836 00:37:24,040 --> 00:37:25,630 No he plorat en molt de temps. 837 00:37:25,630 --> 00:37:26,510 >> AUDIÈNCIA: [inaudible]. 838 00:37:26,510 --> 00:37:28,920 >> ALTAVEU: OK, gràcies. 839 00:37:28,920 --> 00:37:30,070 Bé, hi ha un petit pròleg - 840 00:37:30,070 --> 00:37:32,480 hi ha altres parts del meu diari entrada, perquè intento diari cada 841 00:37:32,480 --> 00:37:33,600 nit abans d'arribar al llit. 842 00:37:33,600 --> 00:37:34,900 Li recomano un diari. 843 00:37:34,900 --> 00:37:38,600 Se li ajuda a processar les coses, i també ser molt agraïts per la seva dia. 844 00:37:38,600 --> 00:37:43,063 I això fa que sigui molt més fàcil mirar de tornada al seu dia i adonar-se que 845 00:37:43,063 --> 00:37:44,240 hi havia un munt de bones coses que van succeir. 846 00:37:44,240 --> 00:37:47,240 Encara que vostè se senti molt estressat en la nit o molt molest, o 847 00:37:47,240 --> 00:37:49,022 realment trist o cansada. 848 00:37:49,022 --> 00:37:50,272 >> Oh, Déu meu. 849 00:37:50,272 --> 00:37:52,546 850 00:37:52,546 --> 00:37:54,400 Ni tan sols sé si està escrit que bé perquè jo no el corregeixi. 851 00:37:54,400 --> 00:37:55,780 Però anem a llegir-lo. 852 00:37:55,780 --> 00:37:59,950 En general no llegeixo la meva revista, òbviament. 853 00:37:59,950 --> 00:38:03,720 >> "Demà em vaig a ensenyar el meu últim Secció CS50 de l'any. 854 00:38:03,720 --> 00:38:05,860 És una bogeria la rapidesa amb què vola. 855 00:38:05,860 --> 00:38:09,900 No obstant això, em sorprèn el diferent la meva experiència en l'ensenyament d'aquest any va ser 856 00:38:09,900 --> 00:38:11,365 que quan jo era un estudiant de segon any. 857 00:38:11,365 --> 00:38:14,120 Per començar, jo definitivament conèixer millor el material. 858 00:38:14,120 --> 00:38:16,820 Però no li diguis a la meva primera cohort dels estudiants que. 859 00:38:16,820 --> 00:38:20,030 Més important, però, em vaig adonar que l'alegria que ve de peu 860 00:38:20,030 --> 00:38:23,160 al davant d'una habitació del que comença com estranys, però acaba sent, en 861 00:38:23,160 --> 00:38:27,150 menys, amics de Facebook, és no és un cop de sort de primer any. 862 00:38:27,150 --> 00:38:29,970 Més aviat, és de saber que, en alguna manera, vostè està ajudant a 863 00:38:29,970 --> 00:38:32,980 talentós, pensatiu, agradable, i persones apassionades aprenen una mica més 864 00:38:32,980 --> 00:38:34,750 sobre la informàtica. 865 00:38:34,750 --> 00:38:37,480 >> Estàs canviant la bombeta que només un poc en la seva conca, de manera que és capaç 866 00:38:37,480 --> 00:38:42,120 a brillar més que tu, o ells, podria haver imaginat l'inici del semestre. 867 00:38:42,120 --> 00:38:45,390 Estàs ajudant a convertir els celles arrufades de cap cap avall i fent preguntes que 868 00:38:45,390 --> 00:38:49,240 proporcionar suport, però encara permeten els estudiants a posar-se dret pel seu compte. 869 00:38:49,240 --> 00:38:52,190 >> Certament, no és una exageració dir que aquesta secció és el meu favorit 870 00:38:52,190 --> 00:38:53,190 part de la setmana. 871 00:38:53,190 --> 00:38:57,930 O fins i tot que no m'atreveixo a dir, això és tot, a les 5:30 cada setmana, sabent 872 00:38:57,930 --> 00:39:00,640 que serà massa llarg fins que ens trobem de nou. 873 00:39:00,640 --> 00:39:02,740 >> No obstant això, estic molt agraït a tot el que m'ha donat aquesta 874 00:39:02,740 --> 00:39:05,010 oportunitat de tornar alguna cosa als altres. 875 00:39:05,010 --> 00:39:07,340 Per David, per la seva paciència i confiança. 876 00:39:07,340 --> 00:39:11,040 Per a l'equip de filmació i producció, per fer-me veure una cosa respectable. 877 00:39:11,040 --> 00:39:15,380 I, el més important, als meus alumnes, sense els quals no tindria cap motiu per 878 00:39:15,380 --> 00:39:17,890 passar 10 hores per esbrinar la millor manera de dibuixar els punters, o dissenyar un 879 00:39:17,890 --> 00:39:20,330 taula dels dofins, a través de JavaScript. 880 00:39:20,330 --> 00:39:22,620 Com sempre, ha estat una benedicció. " 881 00:39:22,620 --> 00:39:25,420 >> Així que amb això, gràcies nois. 882 00:39:25,420 --> 00:39:29,000 Ens veiem tots a la fira CS50, i el hackathon, si hi ets. 883 00:39:29,000 --> 00:39:32,020 I si vostè té alguna pregunta, vaig a pegar voltant fins que no hi hagi més. 884 00:39:32,020 --> 00:39:33,760 Però li dono les gràcies nois per un any meravellós. 885 00:39:33,760 --> 00:39:37,290 >> [Aplaudiments] 886 00:39:37,290 --> 00:39:38,540 >> ALTAVEU: Podria plorar. 887 00:39:38,540 --> 00:39:40,800