1 00:00:00,000 --> 00:00:15,059 >> [MÚSICA] 2 00:00:15,059 --> 00:00:19,170 >> Això és CS50-- Harvard La introducció de la Universitat 3 00:00:19,170 --> 00:00:22,070 a l'intel·lectual empreses de ciències de la computació 4 00:00:22,070 --> 00:00:23,800 i la tècnica de la programació. 5 00:00:23,800 --> 00:00:27,020 I el meu nom és David Malan, i Estava pensant aquest matí, 6 00:00:27,020 --> 00:00:33,120 que ha estat sorprenentment 20 anys avui des de l'última vegada vaig asseure al que vostès fan ara. 7 00:00:33,120 --> 00:00:33,840 >> Era el 1996. 8 00:00:33,840 --> 00:00:37,550 Jo era un estudiant de segon any, i jo estava prenent CS50 per primera vegada. 9 00:00:37,550 --> 00:00:40,890 I ni tan sols m'havia reunit el valor prendre jo mateix el primer any, 10 00:00:40,890 --> 00:00:42,500 en part a causa del temps. 11 00:00:42,500 --> 00:00:44,782 la informàtica per a mi Era una mica com, meh. 12 00:00:44,782 --> 00:00:46,990 Jo era una mica d'un geek de creixement dalt, però no ho vaig fer de veritat 13 00:00:46,990 --> 00:00:49,180 tenir cap intel·lectual interès en el que semblava 14 00:00:49,180 --> 00:00:51,920 ser només un munt de la gent tot el temps de programació. 15 00:00:51,920 --> 00:00:53,904 >> I jo tenia por de ser honest. 16 00:00:53,904 --> 00:00:56,820 El curs i la informàtica més generalment tingut i en certa mesura, 17 00:00:56,820 --> 00:01:01,230 encara té aquesta reputació d'un camp de vés amb compte, si més no perquè molts de nosaltres 18 00:01:01,230 --> 00:01:04,410 no estan familiaritzats amb ella i no està segur d'això. 19 00:01:04,410 --> 00:01:08,480 I realment no va ser fins que busquessis aquesta classe de segon any que fall-- 20 00:01:08,480 --> 00:01:10,880 i fins i tot llavors, només vaig matricular perquè el professor-- 21 00:01:10,880 --> 00:01:13,950 un dels meus primers mentors, Brian Kernighan ara en Princeton-- 22 00:01:13,950 --> 00:01:15,700 em va permetre prendre la passada de classe falli. 23 00:01:15,700 --> 00:01:18,020 I, de fet, és per això Avui ens permeti i animi 24 00:01:18,020 --> 00:01:20,030 estudiants per prendre aquesta classe van seure / unsat. 25 00:01:20,030 --> 00:01:22,040 >> I només llavors, per la final del semestre 26 00:01:22,040 --> 00:01:24,870 No m'adonava com, wow, això No era un camp tan poc familiar. 27 00:01:24,870 --> 00:01:26,850 De fet, aquesta va ser una molt enriquidor camp, 28 00:01:26,850 --> 00:01:28,970 i més emocionant, especialment més endavant, 29 00:01:28,970 --> 00:01:32,809 mentre prenia cursos de Art Dramàtic i Amèrica 101 A 30 00:01:32,809 --> 00:01:34,600 i després, eventualment l'arqueologia de postgrau, 31 00:01:34,600 --> 00:01:37,860 ¿Realment començar a veure el interseccions d'aquest camp, ordinador 32 00:01:37,860 --> 00:01:41,979 la ciència, amb les humanitats, ciències naturals, les arts, la medicina, 33 00:01:41,979 --> 00:01:42,520 i similars. 34 00:01:42,520 --> 00:01:44,420 I això és el que és tan plau de la informàtica 35 00:01:44,420 --> 00:01:46,930 en última instància, com esperem que primer veure-- és la seva aplicabilitat 36 00:01:46,930 --> 00:01:50,280 a aquests altres camps, i com es pot prendre alguna cosa d'avui i el semestre de 37 00:01:50,280 --> 00:01:53,070 idees i habilitats pràctiques de nou al seu propi domini, 38 00:01:53,070 --> 00:01:58,200 i, de fet explorar aquesta intersecció de les arts liberals i les ciències. 39 00:01:58,200 --> 00:02:02,690 >> Així el 73% que, si l'última any és una indicació, 40 00:02:02,690 --> 00:02:04,390 mai han pres un curs de CS abans. 41 00:02:04,390 --> 00:02:06,389 Així que si, com jo, ets sentint una mica 42 00:02:06,389 --> 00:02:09,190 por, o francament no estàs entenem per què estàs fins i tot en aquest cas. 43 00:02:09,190 --> 00:02:11,510 Potser només alguns seguit amics a través de Sanders ara mateix. 44 00:02:11,510 --> 00:02:12,490 Això és totalment bé. 45 00:02:12,490 --> 00:02:15,059 L'objectiu aquí és per enganxar vostè i assegurar-los 46 00:02:15,059 --> 00:02:17,100 que si mires a l'esquerra i a la dreta, 47 00:02:17,100 --> 00:02:21,480 vas a veure amb els companys de classe tan poc o molta experiència 48 00:02:21,480 --> 00:02:22,890 que vostè mateix pugui tenir. 49 00:02:22,890 --> 00:02:25,280 I, de fet, anem a compartir algunes estadístiques més tard avui 50 00:02:25,280 --> 00:02:28,120 pel que fa al de la demografia la classe tenen l'aparença típica. 51 00:02:28,120 --> 00:02:31,440 >> I com afegeix reassurance-- i això ens Vol dir des que vaig prendre durant el curs 52 00:02:31,440 --> 00:02:33,252 alguns anys ago-- a programa del curs 53 00:02:33,252 --> 00:02:35,460 és això- que el que en última instància matèria en aquest curs 54 00:02:35,460 --> 00:02:38,040 no és tant on acaben amunt en relació amb els seus companys de classe, 55 00:02:38,040 --> 00:02:43,110 però on en setmana 11, al final de la semestre, acaben amb relació a si mateix 56 00:02:43,110 --> 00:02:46,280 en la setmana 0, el que és on som avui aquí. 57 00:02:46,280 --> 00:02:48,704 I això és el que em vaig adonar fa tots aquests anys. 58 00:02:48,704 --> 00:02:50,620 I sé que un munt de classes diuen això, però és 59 00:02:50,620 --> 00:02:52,450 especialment cert en la informàtica. 60 00:02:52,450 --> 00:02:55,320 Al final de la dia, aquest camp és desconeguda, ja que era per a mi 61 00:02:55,320 --> 00:02:58,590 i podria ser per a vostè, és realment només de la resolució de problemes. 62 00:02:58,590 --> 00:03:01,324 I, com a tal, té això aplicabilitat a aconseguir altres camps. 63 00:03:01,324 --> 00:03:03,490 I de fet, si ho intentem per destil·lar el que això significa, 64 00:03:03,490 --> 00:03:06,897 aquesta és la resolució de problemes en la seva essència, m'atreviria a dir. 65 00:03:06,897 --> 00:03:09,480 Hi ha input-- així que el que es és que estem tractant de resoldre. 66 00:03:09,480 --> 00:03:12,264 No hi ha sortida, que és d'esperar la solució a aquest problema. 67 00:03:12,264 --> 00:03:14,180 I llavors, com ho faríem dir en informàtica, 68 00:03:14,180 --> 00:03:17,310 hi ha aquest quadre negre en el mitjana que no necessàriament 69 00:03:17,310 --> 00:03:19,450 han de preocupar per la forma en què funciona. 70 00:03:19,450 --> 00:03:22,230 Vostè mateix podria eventualment posar en pràctica el que hi ha dins d'aquesta caixa. 71 00:03:22,230 --> 00:03:25,194 No obstant això, per als propòsits de l'actualitat i més en general, en la vida, tot el que importa 72 00:03:25,194 --> 00:03:26,610 és que aquests problemes es resolen. 73 00:03:26,610 --> 00:03:29,340 >> I el que és aquest curs en última instància, sobre el qual s'explora 74 00:03:29,340 --> 00:03:31,700 la intersecció de aquestes entrades i sortides, 75 00:03:31,700 --> 00:03:34,410 i aquests anomenats algoritmes, com aviat veurem, 76 00:03:34,410 --> 00:03:37,450 que implementen el que és sota hi ha, el capó. 77 00:03:37,450 --> 00:03:40,487 Però aquestes entrades i aquests outputs-- el que significa realment? 78 00:03:40,487 --> 00:03:43,570 Bé, al final del dia, necessitem alguna manera de representar la informació. 79 00:03:43,570 --> 00:03:46,660 Això és especialment cert en un ordinador, la qual és tan elegant i complex, ja que 80 00:03:46,660 --> 00:03:48,160 podria semblar, és un dispositiu bastant ximple. 81 00:03:48,160 --> 00:03:52,240 Es necessita electricity-- ja sigui de un cable o una bateria com input-- 82 00:03:52,240 --> 00:03:55,820 i llavors es produeix alguna respostes preprogramats a la pantalla. 83 00:03:55,820 --> 00:03:57,970 >> Però, com podem obtenir a partir de principi a fi allà? 84 00:03:57,970 --> 00:03:59,470 Doncs bé, què és un problema a resoldre? 85 00:03:59,470 --> 00:04:01,050 Bé, potser podríem, per la qual l'inici d'un semestre, 86 00:04:01,050 --> 00:04:02,841 tractar de prendre l'assistència en una habitació com aquesta. 87 00:04:02,841 --> 00:04:04,750 Pel que podria fer com una, dues, tres. 88 00:04:04,750 --> 00:04:07,060 O potser, si ho fes al tipus de seguiment 89 00:04:07,060 --> 00:04:10,560 myself-- de fer un seguiment de les coses-- Podria córrer ràpidament dels dits. 90 00:04:10,560 --> 00:04:14,650 Així que jo podria fer hash d'una marks-- persona, dues, tres, quatre, cinc, sis, 91 00:04:14,650 --> 00:04:15,431 set, vuit. 92 00:04:15,431 --> 00:04:17,930 I tots nosaltres tenim probablement fet això, ja sigui a les seves mans 93 00:04:17,930 --> 00:04:19,680 o en un tros de paper. 94 00:04:19,680 --> 00:04:22,140 I això és en realitat cosa que es diu notation-- unari 95 00:04:22,140 --> 00:04:26,130 on si només té una lletra en el seu alfabet, un o haixix 96 00:04:26,130 --> 00:04:29,440 marca en aquest cas, per a cada d'entrada que desitja comptar, 97 00:04:29,440 --> 00:04:32,330 que necessita per acabar amb un d'aquests letters-- d'aquestes marques. 98 00:04:32,330 --> 00:04:32,510 >> Tot bé. 99 00:04:32,510 --> 00:04:34,790 Això és tot bé i bo i no tan complicat. 100 00:04:34,790 --> 00:04:37,800 Però els ordinadors no són tots que molt més complicat. 101 00:04:37,800 --> 00:04:40,770 De fet, la majoria de vostès probablement saber fins i tot si no tens realment 102 00:04:40,770 --> 00:04:44,080 considera el que això significa, que ordinadors només entenen zeros 103 00:04:44,080 --> 00:04:45,870 i ones-- l'anomenat sistema binari. 104 00:04:45,870 --> 00:04:49,390 Els éssers humans, per contra, són tan molt més sofisticat en la mesura 105 00:04:49,390 --> 00:04:51,770 tal com l'entenem zeros a través de nous. 106 00:04:51,770 --> 00:04:55,740 >> Però fins i tot si binari és, en primera vista, no tot el que coneix, 107 00:04:55,740 --> 00:05:00,330 Resulta que és igual que els sistemes i les idees que ja coneixen. 108 00:05:00,330 --> 00:05:02,420 Així, per exemple, consideri això. 109 00:05:02,420 --> 00:05:03,896 Això és només una seqüència de símbols. 110 00:05:03,896 --> 00:05:05,770 I tots vostès, quan mirant a aquesta, normalment 111 00:05:05,770 --> 00:05:09,380 pensar en res 123-- realment interessant allà. 112 00:05:09,380 --> 00:05:11,940 Però per què és aquest número, 123? 113 00:05:11,940 --> 00:05:14,440 Aquests són només glifos en la screen-- només patrons 114 00:05:14,440 --> 00:05:16,387 que algú podria haver dibuixat o escrit. 115 00:05:16,387 --> 00:05:18,970 Però si vostè és com jo, Probablement recordi des de l'escola primària 116 00:05:18,970 --> 00:05:21,610 que hi ha una mena de columnes o llocs aquí. 117 00:05:21,610 --> 00:05:25,340 Hi ha lloc i el de la el lloc de deu i el lloc dels cent. 118 00:05:25,340 --> 00:05:29,820 I la raó per la qual això és 123 i no només un patró de tres símbols 119 00:05:29,820 --> 00:05:33,090 és perquè, és clar, si tenir un un al lloc de les centenes, 120 00:05:33,090 --> 00:05:36,610 es fan els comptes de 100 vegades un, i després dos en lloc de les desenes. 121 00:05:36,610 --> 00:05:41,390 Així que això és 10 vegades 2, i després tres a lloc de les unitats i això es 1 Temps març. 122 00:05:41,390 --> 00:05:45,670 I quan s'agrega a tots els de dalt, de Per descomptat, s'obté el 100 més 20 més de 3. 123 00:05:45,670 --> 00:05:48,220 >> Així que vam començar amb només un patró symbols-- d'un alphabet-- 124 00:05:48,220 --> 00:05:51,670 però després hem mapejat en sentit que per mitjà d'aquestes columnes. 125 00:05:51,670 --> 00:05:54,450 Doncs bé, resulta que els ordinadors no són realment 126 00:05:54,450 --> 00:05:56,300 tan diferent de tu i de mi. 127 00:05:56,300 --> 00:06:01,840 Però en lloc d'utilitzar potències de 10, així speak-- 1, 10, 100, 1000, 128 00:06:01,840 --> 00:06:04,330 10,000 lloc i així forth-- que realment 129 00:06:04,330 --> 00:06:08,930 només ha d'utilitzar els poders de 2-- pel que un, 2, 4, i després 130 00:06:08,930 --> 00:06:12,810 si posem més dígits, 8, 16, 32, 64, 128, i així successivament. 131 00:06:12,810 --> 00:06:16,050 I així és com un ordinador representaria el nombre 0, 132 00:06:16,050 --> 00:06:17,300 de la mateixa manera que els humans. 133 00:06:17,300 --> 00:06:21,660 >> 0, 0, 0-- i que és fàcil endevinar Què patró de zeros i uns, 134 00:06:21,660 --> 00:06:24,610 si només pot un ordinador 0 parlar o el 1-- 135 00:06:24,610 --> 00:06:29,110 patró es va a representar els números dels éssers humans coneixen com 1? 136 00:06:29,110 --> 00:06:30,590 Yeah-- 0, 0, 1. 137 00:06:30,590 --> 00:06:31,090 Tot bé. 138 00:06:31,090 --> 00:06:35,900 Pel que 0, 0, 1 és la forma en què representem 1, per la qual cosa podria estar inclinat a continuació, 139 00:06:35,900 --> 00:06:39,510 per representar el número 2, si vostè té el lloc dels quatre i el lloc dels dos 140 00:06:39,510 --> 00:06:48,290 com un sol lloc, es podria dir, bé, si tinguéssim un 1 en lloc de les unitats, 141 00:06:48,290 --> 00:06:50,430 i ara volem comptar fins a 2, és possible que 142 00:06:50,430 --> 00:06:53,310 fer això i deixar que es tracta d'un zero. 143 00:06:53,310 --> 00:06:56,397 Però per descomptat això no és com el sistema decimal funciona bé. 144 00:06:56,397 --> 00:06:58,230 Si poses un dígit en tant d'aquestes columnes, 145 00:06:58,230 --> 00:06:59,563 vostè ha de fer l'aritmètica. 146 00:06:59,563 --> 00:07:01,930 Llavors, quin nombre em va fer accidentalment acaba de representar? 147 00:07:01,930 --> 00:07:06,710 >> Així que és 3, ja que 2 vegades 1 més 1 1 vegades, és clar, ens dona tres. 148 00:07:06,710 --> 00:07:08,340 Així que això seria dues. 149 00:07:08,340 --> 00:07:12,730 El bit espècie de llança, per així dir-ho, com 0 es converteix en un ésser, igual que un nen de 9 papers més 150 00:07:12,730 --> 00:07:14,840 i es converteix en un 0 quan transport a la 1. 151 00:07:14,840 --> 00:07:16,510 Això llavors seria de tres per descomptat. 152 00:07:16,510 --> 00:07:20,170 Four-- altra cosa interessant succeeix, on els roden sobre 153 00:07:20,170 --> 00:07:21,750 i transporta la 1, per així dir-ho. 154 00:07:21,750 --> 00:07:23,320 Així que això, per descomptat, és 4. 155 00:07:23,320 --> 00:07:25,160 >> Però si l'avanç ràpid ara, Quin és el nombre més gran que va 156 00:07:25,160 --> 00:07:26,660 sent que un ordinador pot representar? 157 00:07:26,660 --> 00:07:30,420 158 00:07:30,420 --> 00:07:32,380 Així que és només set en aquest cas, oi? 159 00:07:32,380 --> 00:07:35,570 A causa que té un un en el quatre, un dels dos, un u en un. 160 00:07:35,570 --> 00:07:36,900 Així que això és 4 més 2 més 1. 161 00:07:36,900 --> 00:07:37,972 Així que li dóna 7. 162 00:07:37,972 --> 00:07:39,680 I, en efecte, que el faria semblar a primera vista 163 00:07:39,680 --> 00:07:43,750 que els ordinadors poden comptar no més que això. 164 00:07:43,750 --> 00:07:45,210 >> Però això per descomptat no és cert. 165 00:07:45,210 --> 00:07:48,243 Què fan els humans quan volem comptar més enllà de com 999? 166 00:07:48,243 --> 00:07:51,000 167 00:07:51,000 --> 00:07:53,900 Només portar a la una i acaba afegir un quart dígit a l'esquerra. 168 00:07:53,900 --> 00:07:55,070 I així, de fet, hem pogut. 169 00:07:55,070 --> 00:07:57,900 Podríem tenir un vuit de lloc i el lloc de la 16a, 170 00:07:57,900 --> 00:08:02,000 i el lloc d'una de 32, 64, i 128-- simplement pot seguir endavant fins a l'infinit. 171 00:08:02,000 --> 00:08:04,640 Pel que aquests zeros i ones-- l'anomenat system-- binari 172 00:08:04,640 --> 00:08:10,290 són el que ho faria un científic de la computació en general, trucar a un bit o dígit binari. 173 00:08:10,290 --> 00:08:13,590 >> Però ara, com aconseguir que des del concepte o els gràfics d'aquestes coses 174 00:08:13,590 --> 00:08:14,620 a un equip real? 175 00:08:14,620 --> 00:08:17,170 Sembla que estem saltar-se un pas aquí. 176 00:08:17,170 --> 00:08:20,210 Bé, l'única entrada al final del dia, al meu ordinador portàtil aquí 177 00:08:20,210 --> 00:08:22,060 És aquest flux d'electricitat. 178 00:08:22,060 --> 00:08:24,560 Fins i tot si ha passat un llarg temps des que has pensat 179 00:08:24,560 --> 00:08:26,580 o mai pensat Com funciona l'electricitat, 180 00:08:26,580 --> 00:08:30,909 no hi ha electrons que flueixen en o cap a fora, i això és el meu tipus d'entrada. 181 00:08:30,909 --> 00:08:34,659 >> Així que si això és tot el que som rebent com a entrada aquí, 182 00:08:34,659 --> 00:08:36,830 ¿Què podem fer amb aquesta informació? 183 00:08:36,830 --> 00:08:40,040 Bé, podríem pensar en un zero com només una absència d'electricitat. 184 00:08:40,040 --> 00:08:42,540 Res és flowinw, res és en moviment, no passa res. 185 00:08:42,540 --> 00:08:44,690 Això és només el valor per defecte Estat-- zero. 186 00:08:44,690 --> 00:08:48,200 Però si no hi ha electricitat que flueix, per què no acabem de forma arbitrària, sinó a nivell mundial 187 00:08:48,200 --> 00:08:50,250 consistentment, truqui que un u. 188 00:08:50,250 --> 00:08:54,760 >> Per tant, simplement per tenir cap poder, tenim, sí potència d'un zero, 189 00:08:54,760 --> 00:08:57,520 tenim una, si el poder un-- cap poder. 190 00:08:57,520 --> 00:09:01,520 I d'aquesta forma, l'ús d'alguna cosa més físic o electrònic 191 00:09:01,520 --> 00:09:05,340 vam començar a posar en pràctica aquesta noció de cosa que és ja sigui un o un zero. 192 00:09:05,340 --> 00:09:07,230 De fet, podríem fer-ho aquí. 193 00:09:07,230 --> 00:09:10,590 No aquí, tinc tres, però vuit focus de llum, cada un dels quals 194 00:09:10,590 --> 00:09:11,810 té el seu propi interruptor. 195 00:09:11,810 --> 00:09:15,760 >> I pel que si volia representar el número set aquí, 196 00:09:15,760 --> 00:09:18,510 Jo podria activar aquestes tres bombetes. 197 00:09:18,510 --> 00:09:21,470 I, en efecte, a l'interior de el meu equip és de milions, 198 00:09:21,470 --> 00:09:25,650 milers de milions de coses que són simplement menor que, anomenats transistors, 199 00:09:25,650 --> 00:09:27,330 interruptors, que acaba d'encendre i apagar. 200 00:09:27,330 --> 00:09:30,420 Així que aquests són relativament big-- interruptors big-- dins del meu laptop-- 201 00:09:30,420 --> 00:09:32,150 són molts, molts, molts, molts més interruptors. 202 00:09:32,150 --> 00:09:35,160 Però l'únic que fan és exactament això-- convertir una cosa en, convertir una cosa fora. 203 00:09:35,160 --> 00:09:38,076 I, com a tal, un ordinador pot representar, amb aquests milions o bilions 204 00:09:38,076 --> 00:09:40,480 de transistors, lots i un munt de zeros i uns. 205 00:09:40,480 --> 00:09:43,160 I hi ha altres equips que encara li permet emmagatzemar informació a llarg termini, 206 00:09:43,160 --> 00:09:45,243 de manera que quan es tiri de la endoll, que no es perdi. 207 00:09:45,243 --> 00:09:46,900 Però aquesta és una història per a un altre dia. 208 00:09:46,900 --> 00:09:51,170 >> Llavors, què podem fer amb aquests bits? 209 00:09:51,170 --> 00:09:54,309 Podríem només per prendre la pressió de me-- 210 00:09:54,309 --> 00:09:56,600 és que algú pot voler venir aquí i oferir una demostració? 211 00:09:56,600 --> 00:09:57,516 Vaig veure per primera vegada aquest costat. 212 00:09:57,516 --> 00:09:58,709 Com et dius? 213 00:09:58,709 --> 00:09:59,250 Madai: Madai. 214 00:09:59,250 --> 00:10:00,542 DAVID Malan: Madai, anem a dalt. 215 00:10:00,542 --> 00:10:01,250 Encantat de conèixer-te. 216 00:10:01,250 --> 00:10:02,390 Madai: Gust a conèixer-te. 217 00:10:02,390 --> 00:10:02,930 >> DAVID Malan: Vine aquesta manera. 218 00:10:02,930 --> 00:10:04,182 No vaig a tenir a l'llavi cap amunt. 219 00:10:04,182 --> 00:10:04,682 Tot bé. 220 00:10:04,682 --> 00:10:11,090 Així que aquí tenim, notice-- un, dos-- editarem que out-- un, dos, quatre, 221 00:10:11,090 --> 00:10:13,350 08:00, 16, 32, 64, 128. 222 00:10:13,350 --> 00:10:14,220 Això és deliberat. 223 00:10:14,220 --> 00:10:17,370 Hi ha vuit bits aquí-- binari de zeros i uns digits--. 224 00:10:17,370 --> 00:10:21,460 I una mica és una unitat útil de measure-- no és tan útil una unitat de mesura 225 00:10:21,460 --> 00:10:21,999 sobre si mateixa. 226 00:10:21,999 --> 00:10:24,290 En general, vostè vol almenys vuit d'aquestes coses, també anomenat 227 00:10:24,290 --> 00:10:24,790 un byte. 228 00:10:24,790 --> 00:10:26,230 Així que tenim un byte de bits aquí. 229 00:10:26,230 --> 00:10:31,130 >> Així que si volíem que desafiar amb, per exemple, explicant, en binari, 230 00:10:31,130 --> 00:10:33,230 aquest valor aquí-- 42. 231 00:10:33,230 --> 00:10:35,140 Vols prendre una punyalada en això? 232 00:10:35,140 --> 00:10:36,034 >> Madai: [inaudible]. 233 00:10:36,034 --> 00:10:38,700 DAVID Malan: Sí, només empènyer el petits interruptors blancs davant. 234 00:10:38,700 --> 00:10:41,290 I vol lletrejar cap de 42 anys, i en joc 235 00:10:41,290 --> 00:10:44,061 És aquesta tensió CS50 bola si vostè aconsegueix això. 236 00:10:44,061 --> 00:10:44,560 Tot bé. 237 00:10:44,560 --> 00:10:46,420 Pel que té 32. 238 00:10:46,420 --> 00:10:48,430 Necessitarem 42. 239 00:10:48,430 --> 00:10:51,410 Així que és un vuit, així que això és 40. 240 00:10:51,410 --> 00:10:54,160 I excelente-- molt ben fet. 241 00:10:54,160 --> 00:10:55,186 Gràcies. 242 00:10:55,186 --> 00:10:58,790 >> [Aplaudiments] 243 00:10:58,790 --> 00:10:59,290 Tot bé. 244 00:10:59,290 --> 00:11:00,623 Així que tenim una bola de la tensió més. 245 00:11:00,623 --> 00:11:03,595 Anem a fer això un cop més si pot. 246 00:11:03,595 --> 00:11:05,368 Un altre voluntari? 247 00:11:05,368 --> 00:11:07,970 La bola lliure d'estrès, bola de la tensió lliure. 248 00:11:07,970 --> 00:11:08,470 D'ACORD. 249 00:11:08,470 --> 00:11:11,640 Aquí al mig, ¿Vols baixar? 250 00:11:11,640 --> 00:11:14,100 Tot bé. 251 00:11:14,100 --> 00:11:15,552 Ho sé. 252 00:11:15,552 --> 00:11:16,360 Allà anem. 253 00:11:16,360 --> 00:11:20,818 >> Així que els números aquí-- anem cap avall. 254 00:11:20,818 --> 00:11:21,567 Com et dius? 255 00:11:21,567 --> 00:11:21,984 >> Davey: Davey. 256 00:11:21,984 --> 00:11:22,820 >> DAVID Malan: Davey. 257 00:11:22,820 --> 00:11:23,320 D'ACORD. 258 00:11:23,320 --> 00:11:24,810 Anem a dalt, Davey. 259 00:11:24,810 --> 00:11:25,890 Encantat de conèixer-te. 260 00:11:25,890 --> 00:11:28,639 I el que anem a haver de spell-- si pogués quedar-s'hi 261 00:11:28,639 --> 00:11:32,810 per només una moment-- és el número 50. 262 00:11:32,810 --> 00:11:36,293 Però, però, però, però, però, aquests són imants de l'escola primària per una raó. 263 00:11:36,293 --> 00:11:39,370 264 00:11:39,370 --> 00:11:43,327 Ha fet una mica més difícil, ¿d'acord? 265 00:11:43,327 --> 00:11:44,160 Encara hi ha vuit. 266 00:11:44,160 --> 00:11:46,820 267 00:11:46,820 --> 00:11:47,320 Tot bé. 268 00:11:47,320 --> 00:11:48,486 Llavors, què tenim allà? 269 00:11:48,486 --> 00:11:51,356 Tenim 32. 270 00:11:51,356 --> 00:11:54,344 Niça. 271 00:11:54,344 --> 00:11:58,610 32 més el 16 ens dóna 48-- tan a prop. 272 00:11:58,610 --> 00:12:00,390 I meravellosa. 273 00:12:00,390 --> 00:12:02,831 Felicitacions a Davey també. 274 00:12:02,831 --> 00:12:05,720 >> [Aplaudiments] 275 00:12:05,720 --> 00:12:06,516 >> Tot bé. 276 00:12:06,516 --> 00:12:09,390 Pel que podem fer això tot el dia, i que no rep tot el que molt més 277 00:12:09,390 --> 00:12:10,800 interessant i més difícil. 278 00:12:10,800 --> 00:12:13,250 Però això és realment el point-- és la forma relativament simple 279 00:12:13,250 --> 00:12:16,930 que és, al final del dia, el que és una ordinador fa per emmagatzemar informació, 280 00:12:16,930 --> 00:12:21,740 per emmagatzemar entrades i en última instància emmagatzemar o representar aquestes sortides. 281 00:12:21,740 --> 00:12:23,750 Però els números per si sols no són tan interessant. 282 00:12:23,750 --> 00:12:26,069 >> Així que els éssers humans, fa uns anys, decidit, saps què? 283 00:12:26,069 --> 00:12:27,860 Seria bo si els ordinadors no eren només 284 00:12:27,860 --> 00:12:31,030 calculadores per l'aritmètica operacions, però en realitat es podria 285 00:12:31,030 --> 00:12:35,209 fer coses com processament de textos, o correu electrònic, o encarnacions més moderns 286 00:12:35,209 --> 00:12:36,500 d'aquest tipus de tecnologies. 287 00:12:36,500 --> 00:12:40,680 I així el món va decidir arbitràriament, sinó universalment, 288 00:12:40,680 --> 00:12:44,380 que si es desitja emmagatzemar la capital lletra A en un ordinador, saps què? 289 00:12:44,380 --> 00:12:47,730 Anem a tots d'acord per emmagatzemar un patró de zeros i ones-- 290 00:12:47,730 --> 00:12:52,422 bits-- que en última instància representa el nombre decimal 65. 291 00:12:52,422 --> 00:12:53,630 Només haurem de tots estem d'acord en això. 292 00:12:53,630 --> 00:12:56,620 >> 66 representaria B, 67 representaria C, 293 00:12:56,620 --> 00:13:00,210 i hi ha munts d'altres patrons de zeros i uns, o números subjacents, 294 00:13:00,210 --> 00:13:02,224 que representaria altres cartes fixes. 295 00:13:02,224 --> 00:13:04,390 Així que si vostè tipus de mental absorbir això per un moment, 296 00:13:04,390 --> 00:13:10,900 Deliberadament posar un mitjà I, on H a 72 i és 73. 297 00:13:10,900 --> 00:13:15,830 Si un equip a continuació, en el context de un processador de text o un correu electrònic, 298 00:13:15,830 --> 00:13:19,620 revelar sota de la campana tenir aquests patrons de patró bits-- 299 00:13:19,620 --> 00:13:22,500 de bits que representen 72, a continuació 73, a continuació, 33-- 300 00:13:22,500 --> 00:13:26,640 el que això podria significar en aquest programa? 301 00:13:26,640 --> 00:13:28,150 >> Així hola, i després alguna cosa. 302 00:13:28,150 --> 00:13:31,460 Nosaltres no necessàriament sabem, però de fet 33-- no en el gràfic abans els he parlat 303 00:13:31,460 --> 00:13:33,170 era simplement un signe d'exclamació. 304 00:13:33,170 --> 00:13:38,870 Així va ser 72 H, 73 és I, 33 succeeix ser un punt d'exclamació encara. 305 00:13:38,870 --> 00:13:41,719 Però això és tot bé i bo, i, de fet, avui en dia, en lloc de 306 00:13:41,719 --> 00:13:43,760 només ha d'utilitzar set o vuit bits, gràcies a alguna cosa 307 00:13:43,760 --> 00:13:46,530 anomenat Unicode en oposició a ASCII tornada al dia, 308 00:13:46,530 --> 00:13:50,010 en realitat podem representar encara més personatges interessants que només 309 00:13:50,010 --> 00:13:52,980 aquests Anglès originals esbiaixada lletres. 310 00:13:52,980 --> 00:13:56,030 Però també podem representar fins i tot coses més ordenades com els colors. 311 00:13:56,030 --> 00:13:59,750 >> Si alguna vegada has escoltat l'acrònim RGB, vermell, verd, blau, que 312 00:13:59,750 --> 00:14:03,510 només significa que un ordinador normalment utilitza tres conjunts de bits-- 313 00:14:03,510 --> 00:14:06,760 cert nombre de bits que representen un nombre per la quantitat de vermell que desitgi, 314 00:14:06,760 --> 00:14:08,940 un altre conjunt de bits per la quantitat de verd que desitgi, 315 00:14:08,940 --> 00:14:11,430 i un altre grup de nombre la quantitat de blau que desitja. 316 00:14:11,430 --> 00:14:14,457 Pel que un gran nombre significa un munt de , Nombre petit de color vermell vol dir que no hi ha vermell. 317 00:14:14,457 --> 00:14:16,290 I pel que aquests són una espècie dels valors mitjans aquí. 318 00:14:16,290 --> 00:14:20,180 >> Així que em fa una mica de vermell, dóna'm una mica verd, i em fa una mica de blau. 319 00:14:20,180 --> 00:14:24,260 I si es barregen els tres tons del color junts, en aquest cas, 320 00:14:24,260 --> 00:14:26,850 s'obté aquesta ombra tèrbola de color groc o marró. 321 00:14:26,850 --> 00:14:32,330 Però aquest model de vuit més 08:00 més eight-- de manera 24 bits-- 322 00:14:32,330 --> 00:14:36,550 d'esquerra a dreta, és com un ordinador representaria aquest color en particular. 323 00:14:36,550 --> 00:14:38,090 Ara bé, això és només un punt en una pantalla. 324 00:14:38,090 --> 00:14:42,230 Si es mira molt de prop a la seva TV de la seva ordinador, veurà punts o píxels. 325 00:14:42,230 --> 00:14:45,420 I si vostè té tota una xarxa de píxels, horitzontal i verticalment, 326 00:14:45,420 --> 00:14:46,630 Té imatges. 327 00:14:46,630 --> 00:14:49,029 I a continuació, si es pren una imatge i després rentar 328 00:14:49,029 --> 00:14:52,070 a si mateix mostrar una altra imatge, una altra imatge, una altra imatge, una altra imatge, 329 00:14:52,070 --> 00:14:54,760 molt ràpid, que per descomptat té pel·lícules. 330 00:14:54,760 --> 00:14:56,109 >> I així notar al punt de partida. 331 00:14:56,109 --> 00:14:57,650 Vam començar amb aquests zeros i uns. 332 00:14:57,650 --> 00:15:00,570 Es va treballar a partir d'aquí a decimal nombres, la forma en que ells representen. 333 00:15:00,570 --> 00:15:02,070 Ara tenim lletres de l'alfabet. 334 00:15:02,070 --> 00:15:05,664 Però en altres contextos esperen, podem utilitzar uns quants més bits i representar colors. 335 00:15:05,664 --> 00:15:07,830 Tan aviat com vostè té la capacitat per representar els colors, 336 00:15:07,830 --> 00:15:11,200 vostè té la capacitat de representar fotografies i gifs animats 337 00:15:11,200 --> 00:15:13,780 i altres tals personatges a la pantalla. 338 00:15:13,780 --> 00:15:17,160 I quan vostè té un munt de imatges que volen per l'ésser humà alhora, 339 00:15:17,160 --> 00:15:21,480 sembla que les imatges en moviment, i perquè pugui obtenir vídeos també. 340 00:15:21,480 --> 00:15:23,460 >> Així, utilitzant aquests mateixos primitives simples que fan 341 00:15:23,460 --> 00:15:28,070 tenir la forma de representar en última instància, totes aquestes formes de mitjans de comunicació. 342 00:15:28,070 --> 00:15:30,450 I hem van resumir nou i una altra vegada i una altra, fins que 343 00:15:30,450 --> 00:15:33,467 arribar des del nivell més baix a aquest nivell més alt. 344 00:15:33,467 --> 00:15:35,550 El que ens dóna aquest idea general de l'abstracció. 345 00:15:35,550 --> 00:15:36,990 Però comencem aquí. 346 00:15:36,990 --> 00:15:38,790 >> Aquí ara, podríem representar en un ordinador 347 00:15:38,790 --> 00:15:41,920 les nostres entrades amb zeros i uns, les nostres sortides en zeros i uns, 348 00:15:41,920 --> 00:15:43,640 però el que passa dins de la caixa? 349 00:15:43,640 --> 00:15:46,080 Aquí és on l'ordinador la ciència es posa interessant. 350 00:15:46,080 --> 00:15:49,770 Això és on realment portar la seva pròpia ment a carregar per resoldre problemes. 351 00:15:49,770 --> 00:15:52,590 Ara podem estipular, per la resta del semestre, si. 352 00:15:52,590 --> 00:15:53,870 Sé com funciona binaris. 353 00:15:53,870 --> 00:15:57,942 Recordo com ASCII o Unicode-- l'assignació a letters-- obres. 354 00:15:57,942 --> 00:15:59,650 I sens dubte es destaca la raó que ens 355 00:15:59,650 --> 00:16:03,470 podria representar vermell i verd i blau, i representen multimèdia també. 356 00:16:03,470 --> 00:16:05,390 Però aquesta és la matèria interessant. 357 00:16:05,390 --> 00:16:09,790 Això és el que fa que algú capaç de resoldre els problemes. 358 00:16:09,790 --> 00:16:11,980 >> I un d'aquests problemes ens agrada fer, de fet, 359 00:16:11,980 --> 00:16:15,345 s'està portant a l'assistència, o fent això algorítmicament. 360 00:16:15,345 --> 00:16:16,470 I de nou, podria fer això. 361 00:16:16,470 --> 00:16:19,580 Jo podria fer una, dues, tres, quatre cinc, sis, set, vuit i nou. 362 00:16:19,580 --> 00:16:21,520 I vaig poder escriure- cap avall per fer un seguiment de la mateixa. 363 00:16:21,520 --> 00:16:23,769 Però això és només la forma en què ho faria representar la informació. 364 00:16:23,769 --> 00:16:27,550 O podria fer això faster-- dos, quatre, 6, vuit, deu, 12, 14, 16, 18, 20, 365 00:16:27,550 --> 00:16:30,380 22-- se sent com dues vegades tan ràpid però segueix sent 366 00:16:30,380 --> 00:16:32,050 va a prendre un munt de temps. 367 00:16:32,050 --> 00:16:35,990 >> Però resulta que, però, si aprofitem resource-- altres ordinadors i, de fet 368 00:16:35,990 --> 00:16:38,940 en aquests dies tenen diverses CPU o el cervell. 369 00:16:38,940 --> 00:16:41,970 Resulta que els ordinadors poden fer moltes coses alhora, 370 00:16:41,970 --> 00:16:44,460 i de fet, en aquesta sala, podria representar exactament això. 371 00:16:44,460 --> 00:16:47,130 >> Així que és una mica de vista social maldestre, però si ho faria amb el meu humor 372 00:16:47,130 --> 00:16:51,550 per només un procés de tres passos, i molt Em pregunto a cada un en el seu lloc allà només 373 00:16:51,550 --> 00:16:54,640 de posar-se dempeus per un moment. 374 00:16:54,640 --> 00:16:57,380 Aixeca't. 375 00:16:57,380 --> 00:17:01,580 Així pensa a si mateix, el nombre de un-- perquè tots en aquesta sala, 376 00:17:01,580 --> 00:17:05,010 excepte la gent que no ho van fer oblige, estan pensant en el número u. 377 00:17:05,010 --> 00:17:06,510 De manera que sigui el seu nombre en aquest moment. 378 00:17:06,510 --> 00:17:09,399 Aquesta és la primera etapa, o com una científic de la computació o un programador 379 00:17:09,399 --> 00:17:11,827 normalment ho faria, anem per començar a comptar des de zero. 380 00:17:11,827 --> 00:17:14,410 Si el nombre més petit que puguem representar amb aquestes bombetes 381 00:17:14,410 --> 00:17:17,410 és zero, per la qual cosa els deixa sol fos poc, pot ser que també acaba 382 00:17:17,410 --> 00:17:19,271 començarà a comptar a partir zero és lloc d'un. 383 00:17:19,271 --> 00:17:21,020 I el que és el Els informàtics. 384 00:17:21,020 --> 00:17:23,750 Així que pas a zero, posar-se dempeus i pensar en el número u. 385 00:17:23,750 --> 00:17:26,339 El següent pas és això- parell amb algú de peu 386 00:17:26,339 --> 00:17:27,660 i afegir els seus números. 387 00:17:27,660 --> 00:17:30,660 388 00:17:30,660 --> 00:17:32,850 Meravellosa. 389 00:17:32,850 --> 00:17:37,640 >> Així que en aquest moment en el temps, literalment, tots els participants 390 00:17:37,640 --> 00:17:41,930 està pensant en el nombre 2, excepte per a una persona estranya si tenim 391 00:17:41,930 --> 00:17:43,450 un nombre imparell de persones a l'habitació. 392 00:17:43,450 --> 00:17:50,640 I ara el tercer pas aquí va a això- ser un de vosaltres ha de seure. 393 00:17:50,640 --> 00:17:54,490 Un de vosaltres ha de seure, i si vostè està encara en peu, 394 00:17:54,490 --> 00:17:56,590 tornar al pas un. 395 00:17:56,590 --> 00:18:44,799 396 00:18:44,799 --> 00:18:45,790 Tot bé. 397 00:18:45,790 --> 00:19:00,760 398 00:19:00,760 --> 00:19:01,650 Tot bé. 399 00:19:01,650 --> 00:19:03,880 Pel que cada vegada més persones ha d'estar assegut sota. 400 00:19:03,880 --> 00:19:08,280 Observi que això ha induït 1 loop-- algun tipus de cicle. 401 00:19:08,280 --> 00:19:11,983 Alguns de vostès ha d'haver pegat amb poca traça, anant i venint entre el pas un 402 00:19:11,983 --> 00:19:14,180 i dos, un i dos, un-dos. 403 00:19:14,180 --> 00:19:21,190 404 00:19:21,190 --> 00:19:21,810 Està bé. 405 00:19:21,810 --> 00:19:22,630 El nostre primer error. 406 00:19:22,630 --> 00:19:24,740 Ens ocuparem d'això. 407 00:19:24,740 --> 00:19:25,320 Tot bé. 408 00:19:25,320 --> 00:19:27,370 Vaig a tractar d'impulsar les coses. 409 00:19:27,370 --> 00:19:31,454 >> En teoria, només una persona està de peu com tothom segueix aparellar-se. 410 00:19:31,454 --> 00:19:33,870 Però permetin-me accelerar les coses amb la gent que segueix en peu. 411 00:19:33,870 --> 00:19:35,480 Quin nombre està pensant? 412 00:19:35,480 --> 00:19:36,070 46. 413 00:19:36,070 --> 00:19:36,570 D'ACORD. 414 00:19:36,570 --> 00:19:37,820 Vagi per davant i seure. 415 00:19:37,820 --> 00:19:39,190 Vostès es mantenen en peu. 416 00:19:39,190 --> 00:19:42,130 Que encara està dempeus? 417 00:19:42,130 --> 00:19:45,240 Quin nombre està pensant? 418 00:19:45,240 --> 00:19:46,160 D'ACORD. 419 00:19:46,160 --> 00:19:47,900 >> Així que anem a tornar a vostè. 420 00:19:47,900 --> 00:19:49,630 Al darrera? 421 00:19:49,630 --> 00:19:50,790 Què és això? 422 00:19:50,790 --> 00:19:53,100 22. 423 00:19:53,100 --> 00:19:56,540 Acceptar a algú més top-- si? 424 00:19:56,540 --> 00:19:57,720 34. 425 00:19:57,720 --> 00:19:58,300 D'ACORD. 426 00:19:58,300 --> 00:20:02,780 Per aquí al meu dreta- aquí dalt? 427 00:20:02,780 --> 00:20:06,820 132, molt agradable. 428 00:20:06,820 --> 00:20:08,380 22? 429 00:20:08,380 --> 00:20:08,990 >> D'ACORD. 430 00:20:08,990 --> 00:20:10,031 I que encara està dempeus? 431 00:20:10,031 --> 00:20:11,000 Per aquí? 432 00:20:11,000 --> 00:20:14,520 46, molt agradable. 433 00:20:14,520 --> 00:20:16,890 72. 434 00:20:16,890 --> 00:20:18,220 No puc aturar molt més temps. 435 00:20:18,220 --> 00:20:20,520 Sí? 436 00:20:20,520 --> 00:20:22,490 30, agradable. 437 00:20:22,490 --> 00:20:24,120 Per aquí? 438 00:20:24,120 --> 00:20:26,200 23? 439 00:20:26,200 --> 00:20:27,270 23. 440 00:20:27,270 --> 00:20:30,920 >> I crec que això és tot el món excepte vostès, no hi ha pressió. 441 00:20:30,920 --> 00:20:32,860 Oh, espera. 442 00:20:32,860 --> 00:20:33,360 28? 443 00:20:33,360 --> 00:20:37,500 444 00:20:37,500 --> 00:20:38,281 Només vuit. 445 00:20:38,281 --> 00:20:38,780 D'ACORD. 446 00:20:38,780 --> 00:20:41,030 Només vuit. 447 00:20:41,030 --> 00:20:42,580 Aquí sota? 448 00:20:42,580 --> 00:20:44,570 30. 449 00:20:44,570 --> 00:20:47,344 23. 450 00:20:47,344 --> 00:20:47,843 24. 451 00:20:47,843 --> 00:20:50,810 452 00:20:50,810 --> 00:20:52,310 18. 453 00:20:52,310 --> 00:20:54,690 Aquest és el pitjor execució d'aquest algoritme mai. 454 00:20:54,690 --> 00:20:55,190 D'ACORD. 455 00:20:55,190 --> 00:20:59,760 Així que qualsevol altra persona? 456 00:20:59,760 --> 00:21:00,421 Algú més? 457 00:21:00,421 --> 00:21:00,920 D'ACORD. 458 00:21:00,920 --> 00:21:03,300 Un més. 459 00:21:03,300 --> 00:21:04,400 16? 460 00:21:04,400 --> 00:21:04,900 D'ACORD. 461 00:21:04,900 --> 00:21:05,510 16. 462 00:21:05,510 --> 00:21:06,010 Tot bé. 463 00:21:06,010 --> 00:21:09,070 Així que si no m'he perdut a ningú en la resplendor aquí, quan pols Intro, 464 00:21:09,070 --> 00:21:13,091 anem a veure, de forma algorítmica, el nombre total de persones en Sanders. 465 00:21:13,091 --> 00:21:16,340 Perquè, de nou, és com si tothom com seies, passat el seu nombre fos 466 00:21:16,340 --> 00:21:19,215 a una altra persona, una altra persona, a una altra persona, de manera que, en teoria, 467 00:21:19,215 --> 00:21:22,304 Al final, només una incòmoda persona ha de deixar-se de peu. 468 00:21:22,304 --> 00:21:22,970 Però això està bé. 469 00:21:22,970 --> 00:21:24,290 Accelerem les coses manualment. 470 00:21:24,290 --> 00:21:27,590 És especialment difícil de veure en aquest espai particular. 471 00:21:27,590 --> 00:21:34,200 >> I el nombre total de persones creiem que hi ha aquí és 546. 472 00:21:34,200 --> 00:21:37,330 El nombre total em van lliurar pels becaris d'ensenyament, 473 00:21:37,330 --> 00:21:40,660 qui ho va fer el vell de manera lenta l'escola, era de 820. 474 00:21:40,660 --> 00:21:43,660 >> [El] 475 00:21:43,660 --> 00:21:47,170 >> [Aplaudiments] 476 00:21:47,170 --> 00:21:48,670 >> Està bé. 477 00:21:48,670 --> 00:21:50,740 Pel que segurament llavors, hi ha aquests insectes. 478 00:21:50,740 --> 00:21:51,460 I això està bé. 479 00:21:51,460 --> 00:21:53,810 I pel que pensar de nou en aquest la primera vegada que alguna cosa 480 00:21:53,810 --> 00:21:55,420 s'escriu no necessàriament ha de funcionar. 481 00:21:55,420 --> 00:21:57,620 Això m'ha passat aquí també. 482 00:21:57,620 --> 00:22:00,844 Però ara considerarem com podria aplicar aquesta mateixa idea a alguna cosa 483 00:22:00,844 --> 00:22:03,760 que podria haver vist abans, la qual cosa és aquesta vella tecnologia de l'escola aquí-- 484 00:22:03,760 --> 00:22:05,130 una llibreta de telèfons molt gran. 485 00:22:05,130 --> 00:22:09,380 I suposem que aquesta llibreta de telèfons té 1.000 pàgines i 1.000 noms 486 00:22:09,380 --> 00:22:11,360 i els números alfabèticament dins d'ella. 487 00:22:11,360 --> 00:22:14,860 >> Bé, podríem tipus d'aplicar un similars idea per a aquest problema molt físic, 488 00:22:14,860 --> 00:22:16,270 simplement usant mi. 489 00:22:16,270 --> 00:22:18,810 Jo només tipus de trampa mitjançant l'aprofitament de tots vostès 490 00:22:18,810 --> 00:22:23,240 amb munts i munts de diferents CPU o cervells executar algun algoritme. 491 00:22:23,240 --> 00:22:25,440 Però si és només poc vell jo, encara puc 492 00:22:25,440 --> 00:22:29,630 aprofitar aquesta mateixa essència d'una idea de dividir i conquerir aquest problema 493 00:22:29,630 --> 00:22:32,970 cop i un altre, de manera que la meitat de vostès, la meitat de vostès, la meitat de vostès, la meitat de vostès, 494 00:22:32,970 --> 00:22:35,830 teòricament mantenir-se assegut, fins que ens vam anar, en teoria, 495 00:22:35,830 --> 00:22:36,990 amb una sola persona. 496 00:22:36,990 --> 00:22:39,810 >> Així que en aquesta vella escola la tecnologia, com no ho fem 497 00:22:39,810 --> 00:22:43,030 necessita aquesta map-- aquest La tecnologia de la vella escola, 498 00:22:43,030 --> 00:22:47,300 podríem començar a buscar algú com Mike Smith, una pàgina alhora. 499 00:22:47,300 --> 00:22:49,410 I veig que no, Mike no és aquí. 500 00:22:49,410 --> 00:22:51,110 Encara estic a la secció A. 501 00:22:51,110 --> 00:22:53,900 Amb el temps, em sembla a mi mateix en la secció B. 502 00:22:53,900 --> 00:22:56,910 I això és un algorithm-- pas a pas la instrucció. 503 00:22:56,910 --> 00:22:59,890 Comenceu a la pàgina d'inici i un alhora, buscar Mike Smith. 504 00:22:59,890 --> 00:23:03,410 És aquesta correct-- aquest algoritme o mètode? 505 00:23:03,410 --> 00:23:04,550 >> Sí, és correcte. 506 00:23:04,550 --> 00:23:06,840 Si Mike és aquí, amb el temps Vaig a arribar-hi. 507 00:23:06,840 --> 00:23:08,139 Però no és eficient. 508 00:23:08,139 --> 00:23:09,180 És obvi que és molt lent. 509 00:23:09,180 --> 00:23:11,340 Així que es pot aprofitar la twosies mateixes s'aproximen. 510 00:23:11,340 --> 00:23:15,350 Puc fer una mena de dos, quatre, sis, vuit, 10, 12. 511 00:23:15,350 --> 00:23:16,330 És dues vegades més ràpid. 512 00:23:16,330 --> 00:23:18,290 Vaig a arribar a Mike més ràpid si està allà. 513 00:23:18,290 --> 00:23:20,770 És correcte? 514 00:23:20,770 --> 00:23:22,320 Sí, però no vaig sentir un poc--. 515 00:23:22,320 --> 00:23:24,200 Ara vaig sentir un no. 516 00:23:24,200 --> 00:23:24,700 Sí. 517 00:23:24,700 --> 00:23:26,190 Hi ha un insecte potencialment. 518 00:23:26,190 --> 00:23:29,374 Potser Mike aconsegueix simplement per accident intercalada entre dues pàgines, 519 00:23:29,374 --> 00:23:31,290 perquè jo estic volant a través aquesta dos alhora. 520 00:23:31,290 --> 00:23:33,580 Així, almenys, ens cal una mica de tipus de solució condicional. 521 00:23:33,580 --> 00:23:35,330 Necessito dir, hey, si colpeig a algú la 522 00:23:35,330 --> 00:23:39,190 nom comença amb una T en lloc d'una S, Serà millor doble volta almenys una pàgina. 523 00:23:39,190 --> 00:23:40,767 Així que amb errors al principi, però pot arreglar. 524 00:23:40,767 --> 00:23:43,850 Però cap de nosaltres va a buscar Mike Smith a través d'un telèfon de 1.000 pàgines 525 00:23:43,850 --> 00:23:45,290 reservar una pàgina alhora. 526 00:23:45,290 --> 00:23:48,486 Què és una persona normal va a fer? 527 00:23:48,486 --> 00:23:50,860 Vas a anar a la dècada de S, si sabia on era el del S. 528 00:23:50,860 --> 00:23:54,230 Vostè pot anar més o menys a la meitat o lleugerament esbiaixat cap al final. 529 00:23:54,230 --> 00:23:56,850 I miro aquí i Sóc a la secció M. 530 00:23:56,850 --> 00:23:58,952 Però ¿què és el que saps sobre aquest problema ara, 531 00:23:58,952 --> 00:24:02,160 que no necessàriament saber abans amb tots nosaltres simplement explicant a nosaltres mateixos 532 00:24:02,160 --> 00:24:03,030 equivalentment? 533 00:24:03,030 --> 00:24:06,010 Bé, Mike va clarament estar en aquesta part del llibre 534 00:24:06,010 --> 00:24:07,920 si aquí en absolut perquè està ordenada. 535 00:24:07,920 --> 00:24:10,160 >> I pel que pot molt dramatically-- 536 00:24:10,160 --> 00:24:11,250 >> [Amb fatiga] 537 00:24:11,250 --> 00:24:12,300 >> Ho sé. 538 00:24:12,300 --> 00:24:16,940 >> [Aplaudiments] 539 00:24:16,940 --> 00:24:19,450 >> En realitat és molt fàcil si ho fa en l'espina dorsal allà. 540 00:24:19,450 --> 00:24:22,070 Però a continuació, pot tirar la meitat del problema de distància. 541 00:24:22,070 --> 00:24:25,950 Ara, em quedo amb el mateix problema-- Mike Smith a trobar un telèfon book-- 542 00:24:25,950 --> 00:24:29,610 però ara la guia telefònica comença a M i va a la Z, però és la meitat de gran. 543 00:24:29,610 --> 00:24:30,890 >> Però això és el que és impressionant. 544 00:24:30,890 --> 00:24:34,170 Igual que en la teoria, nois, quan que tots es van asseure només la meitat a la vegada, 545 00:24:34,170 --> 00:24:37,150 el problema té la meitat de la grandària, la meitat de gran, una i altra vegada. 546 00:24:37,150 --> 00:24:40,260 Per tant s'ha convertit en el problema de la mateix problema, però la meitat de gran. 547 00:24:40,260 --> 00:24:42,670 Ara es tracta d'un problema de 250 pàgines. 548 00:24:42,670 --> 00:24:45,340 Tan aviat com em vaig adonar, oh, estic en la secció T accidentalment. 549 00:24:45,340 --> 00:24:46,590 He anat massa lluny. 550 00:24:46,590 --> 00:24:48,500 Puc llençar que la meitat de la guia telefònica de distància. 551 00:24:48,500 --> 00:24:50,410 Ara, estic a baix a una trimestre del problema. 552 00:24:50,410 --> 00:24:53,910 >> I es pot repetir, repetir, repetir fins que, en teoria, estàs 553 00:24:53,910 --> 00:24:55,460 l'esquerra amb una sola pàgina. 554 00:24:55,460 --> 00:24:59,010 I si Mike és en aquesta pàgina, Ara puc resoldre aquest problema. 555 00:24:59,010 --> 00:25:00,810 Però la rapidesa amb la qual soluciono? 556 00:25:00,810 --> 00:25:05,420 En el primer cas, em va prendre com potser 1.000 passos per trobar Mike Smith. 557 00:25:05,420 --> 00:25:09,260 Podria haver pres me-- Vaig agafar la guia telefònica 558 00:25:09,260 --> 00:25:11,440 i vaig començar a buscar una pàgina a la vegada, 559 00:25:11,440 --> 00:25:13,480 i Mike podria ser de 1.000 pàgines més endavant. 560 00:25:13,480 --> 00:25:16,020 >> Segon enfocament potser em porta 500 passos, 561 00:25:16,020 --> 00:25:17,960 perquè jo estic volant a través de dos en dos. 562 00:25:17,960 --> 00:25:21,082 I el tercer enfocament, però, és especialment potent. 563 00:25:21,082 --> 00:25:23,790 Però considerarem el que en realitat va fer amb aquest tercer enfocament. 564 00:25:23,790 --> 00:25:27,590 Vaig a tenir el que anomenaré només aquests declaracions aquí, un a la vegada. 565 00:25:27,590 --> 00:25:28,560 Recollir una guia de telèfons. 566 00:25:28,560 --> 00:25:30,130 Obrir a la meitat de la guia telefònica. 567 00:25:30,130 --> 00:25:31,419 Mira noms. 568 00:25:31,419 --> 00:25:33,960 I llavors les coses es posen una mica intel·lectualment més interessant, 569 00:25:33,960 --> 00:25:35,170 si segueix senzilla. 570 00:25:35,170 --> 00:25:38,350 Si Smith es troba entre la noms en aquesta pàgina actual, 571 00:25:38,350 --> 00:25:40,170 a continuació, fer una mica de forma condicional. 572 00:25:40,170 --> 00:25:41,840 És com una forquilla a la carretera. 573 00:25:41,840 --> 00:25:42,660 Truqui a Mike. 574 00:25:42,660 --> 00:25:44,930 Si Mike és un dels noms en aquesta pàgina, anomenat Mike. 575 00:25:44,930 --> 00:25:49,720 Però només ho fan si la línia línia de quatre arbre, si es vol, és cert. 576 00:25:49,720 --> 00:25:51,590 La resposta a aquesta pregunta és si. 577 00:25:51,590 --> 00:25:55,520 >> Perquè si Smith és més d'hora en el book-- en altres paraules, si estic a la secció H 578 00:25:55,520 --> 00:25:58,540 i estic buscant algú per l'esquerra, a continuació, el que ha de fer 579 00:25:58,540 --> 00:26:00,300 és una cosa molt semblant. 580 00:26:00,300 --> 00:26:03,440 Llavors hauria d'obrir a la meitat de la meitat esquerra del llibre. 581 00:26:03,440 --> 00:26:07,930 Així que anar a l'esquerra, i després torni al pas dos. 582 00:26:07,930 --> 00:26:09,290 Miri els noms allà. 583 00:26:09,290 --> 00:26:12,779 >> Així, en altres paraules, fer el mateix, però en un problema que s'ha reduït a la meitat. 584 00:26:12,779 --> 00:26:13,570 Saps què més? 585 00:26:13,570 --> 00:26:16,470 Si Smith és tard en el llibre sobre la base de la pàgina que estic mirant, 586 00:26:16,470 --> 00:26:18,790 obert a la meitat de la la meitat dreta del llibre 587 00:26:18,790 --> 00:26:22,050 i després tornar de nou al pas 2, else-- 588 00:26:22,050 --> 00:26:24,000 hi ha una quarta possibilitat aquí. 589 00:26:24,000 --> 00:26:28,830 Mike ja sigui aquí o cap a l'esquerra o cap a la dreta o no. 590 00:26:28,830 --> 00:26:30,570 I aquí és millor que considerem això. 591 00:26:30,570 --> 00:26:33,360 I de fet, si vostè ha tingut alguna vegada l'equip acaba d'estavellar a vostè, 592 00:26:33,360 --> 00:26:36,822 que és de vegades, però no sempre, el resultat de només un programador humà no 593 00:26:36,822 --> 00:26:39,280 adonar-se, oh disparar, hi ha En realitat aquest quart escenari. 594 00:26:39,280 --> 00:26:41,650 I si vostè no escriu codi per gestionar aquest escenari, 595 00:26:41,650 --> 00:26:43,220 de vegades no se sap el que l'equip pot fer. 596 00:26:43,220 --> 00:26:44,770 I de fet un programa podria bloquejar-se. 597 00:26:44,770 --> 00:26:47,550 >> Però en aquest cas, vaig pensar sobre ell, i li vaig dir, en cas contrari deixar de fumar, 598 00:26:47,550 --> 00:26:49,850 perquè aquesta és la quarta escenari lògica possible. 599 00:26:49,850 --> 00:26:51,950 Ara, anem a afegir una mica de vocabulari, així que 600 00:26:51,950 --> 00:26:55,320 pot començar a girar al voltant dels termes que són d'altra banda bastant intuïtiva. 601 00:26:55,320 --> 00:26:57,870 Totes les coses que acabem de ressaltat en groc aquí, 602 00:26:57,870 --> 00:27:00,140 Només vaig a la funcions o procediments. 603 00:27:00,140 --> 00:27:01,590 Són només tipus d'accions. 604 00:27:01,590 --> 00:27:04,900 Així que recollir, obert a, mira a, trucar, oberta, oberta, 605 00:27:04,900 --> 00:27:09,170 quit-- aquests són només les accions, o el cridar-los de manera més formal, funcions. 606 00:27:09,170 --> 00:27:11,410 >> Mentrestant, ara en groc, He destacat coses 607 00:27:11,410 --> 00:27:14,084 que- començarem a cridar ells condicions o branques. 608 00:27:14,084 --> 00:27:16,750 Aquests són els punts de decisió on vostè pot anar per aquest camí, d'aquesta manera, 609 00:27:16,750 --> 00:27:18,100 o alguna altra direcció encara. 610 00:27:18,100 --> 00:27:19,430 Així que els hi haurà condicions. 611 00:27:19,430 --> 00:27:20,930 I ara aquest és una mica més elegant. 612 00:27:20,930 --> 00:27:24,600 Anem a trucar a aquestes preguntes Les expressions booleanes, 613 00:27:24,600 --> 00:27:26,530 després que algú amb un cognom Bool. 614 00:27:26,530 --> 00:27:28,340 >> I una expressió booleana és només una cosa 615 00:27:28,340 --> 00:27:30,290 això és veritable o fals, sí o no. 616 00:27:30,290 --> 00:27:35,870 Pel que és la pregunta la resposta es preocupar-se, de manera que en una condició 617 00:27:35,870 --> 00:27:39,210 fer una volta en decisió aconseguir una resposta, i després anar a l'esquerra oa la dreta, o alguna cosa 618 00:27:39,210 --> 00:27:40,450 més en conjunt. 619 00:27:40,450 --> 00:27:42,860 >> I a continuació, finalment, aquests línies aquí-- es remunten 620 00:27:42,860 --> 00:27:44,737 al pas 2, tornar al pas que podria dos-- 621 00:27:44,737 --> 00:27:46,320 posar en pràctica aquesta idea de diferents maneres. 622 00:27:46,320 --> 00:27:49,028 I a continuació, els que tingueu experiència en programació podria haver fet 623 00:27:49,028 --> 00:27:50,670 o es pot imaginar fent això de manera diferent. 624 00:27:50,670 --> 00:27:53,170 No obstant això, per als propòsits de l'actualitat, és només la idea que importa. 625 00:27:53,170 --> 00:27:55,400 Aquesta és la inducció del que que anomenarem general 626 00:27:55,400 --> 00:28:00,110 1 loop-- algun tipus de cicle, perquè m'està fent fer alguna cosa nova. 627 00:28:00,110 --> 00:28:03,340 >> Així que ara, considerarem el bo que aquest algoritme és. 628 00:28:03,340 --> 00:28:03,899 És correcte. 629 00:28:03,899 --> 00:28:06,940 Si Mike està en el llibre, que és una de els quatre scenarios-- cop i un altre 630 00:28:06,940 --> 00:28:08,023 i una altra, el trobarem. 631 00:28:08,023 --> 00:28:08,890 Però el millor és? 632 00:28:08,890 --> 00:28:10,150 Bé, no tenim ser massa formal aquí. 633 00:28:10,150 --> 00:28:12,066 Però anem a traçar alguna cosa, X i Y, per aconseguir 634 00:28:12,066 --> 00:28:14,470 un sentit de la forma d'aquest problema. 635 00:28:14,470 --> 00:28:17,160 >> A l'eix x és aquí la mida del meu problema. 636 00:28:17,160 --> 00:28:20,256 I un eix I aquí serà el moment de resoldre. 637 00:28:20,256 --> 00:28:21,630 Així que potser aquest és el nombre de pàgines. 638 00:28:21,630 --> 00:28:24,400 Potser això és qüestió de segons o La pàgina d'turns-- el que sigui. 639 00:28:24,400 --> 00:28:27,290 No obstant això desitja comptar és el que aquesta imatge representarà. 640 00:28:27,290 --> 00:28:30,630 I aquest primer algoritme, vaig per descriure simplement com una línia recta. 641 00:28:30,630 --> 00:28:33,120 Si hi ha n pàgines en la guia telefònica, llavors 642 00:28:33,120 --> 00:28:36,010 Em podria prendre fins com n passos per trobar Mike. 643 00:28:36,010 --> 00:28:38,930 Si Verizon o la companyia telefònica afegeix una pàgina més el proper any, 644 00:28:38,930 --> 00:28:42,170 em podria prendre una més step-- una unitat més de temps per trobar Mike. 645 00:28:42,170 --> 00:28:44,230 Així que no només aquesta relació un a un. 646 00:28:44,230 --> 00:28:45,970 És un pendent recta. 647 00:28:45,970 --> 00:28:49,110 >> Mentrestant, aquest segon algorithm-- si estic 648 00:28:49,110 --> 00:28:51,570 anar de dos en dos en dos temps--, quatre, sis, vuit, o double-- 649 00:28:51,570 --> 00:28:54,550 passant per les pàgines dues vegades a la vegada, de dos en dos, 650 00:28:54,550 --> 00:28:55,710 tot i així és la línia recta. 651 00:28:55,710 --> 00:28:58,720 Ara hi ha d'un a dos relació, però una mica més baix. 652 00:28:58,720 --> 00:29:02,240 Així que si hi ha aquesta quantitat de pàgines a la taula d'aquí en groc, 653 00:29:02,240 --> 00:29:04,800 que em podria aprofitar aquesta molts passos o segons, 654 00:29:04,800 --> 00:29:07,980 en cas contrari, em va a prendre el doble que a la línia vermella. 655 00:29:07,980 --> 00:29:10,190 >> Però la línia verda és el menjar per emportar real. 656 00:29:10,190 --> 00:29:12,290 Això és el que generalment trucar a un registre de logorithm-- 657 00:29:12,290 --> 00:29:13,840 de n, on n és el nombre de pàgines. 658 00:29:13,840 --> 00:29:16,450 Però és la forma el que importa avui en dia, perquè no tenim 659 00:29:16,450 --> 00:29:17,950 per pensar en el traçat de punts. 660 00:29:17,950 --> 00:29:19,830 >> Penseu en un escenari extrem. 661 00:29:19,830 --> 00:29:23,070 Suposem Verizon duplica el matí nombre de pàgines d'aquest directori, 662 00:29:23,070 --> 00:29:24,900 de 1.000 a 2.000. 663 00:29:24,900 --> 00:29:28,440 En el primer algoritme, I podria perdre un extra de 1.000 664 00:29:28,440 --> 00:29:32,080 passos a la recerca de Mike, només perquè Verizon va duplicar la mida del llibre. 665 00:29:32,080 --> 00:29:34,740 El segon algorithm-- que podria portar un extra de 500 passos. 666 00:29:34,740 --> 00:29:38,370 1.000 pàgines més, que van de dos en dos temps-- 500 passos més per trobar Mike. 667 00:29:38,370 --> 00:29:41,020 >> Però això tercera algoritme és una espècie de màgic. 668 00:29:41,020 --> 00:29:44,270 Verizon duplica el nombre de pàgines de 1.000 a 2.000, 669 00:29:44,270 --> 00:29:47,730 Però, quants més passos fa que em porten a buscar a Mike? 670 00:29:47,730 --> 00:29:51,220 És només un, perquè només puc esquinçar el directori telefònic un cop més 671 00:29:51,220 --> 00:29:55,280 d'un problema de 2000 pàgina a un 1.000 problema de la pàgina, i llest. 672 00:29:55,280 --> 00:29:57,030 M'he pres un mos massiva fora d'ell. 673 00:29:57,030 --> 00:29:59,405 >> I si vas realment extrem, suposar que la guia telefònica 674 00:29:59,405 --> 00:30:03,600 companyia tenia alguna cosa boig com un directori telefònic de 4 mil millons pàgina. 675 00:30:03,600 --> 00:30:07,020 Així la quantitat de passos que pot prendre per trobar Mike Smith en un 4000000000 676 00:30:07,020 --> 00:30:09,990 La pàgina de la guia telefònica? 677 00:30:09,990 --> 00:30:16,450 És un nombre gran, però només 4 milions de dòlars per 2000000000-1000000000 a la 500 milions, 678 00:30:16,450 --> 00:30:18,720 250 milions-- encara sona com a grans nombres, 679 00:30:18,720 --> 00:30:20,980 però sóc molt ràpidament arribar a valors més petits. 680 00:30:20,980 --> 00:30:24,790 >> I de fet, si no faig la matemàtiques dret, només puc dividir 4000000000 681 00:30:24,790 --> 00:30:28,750 per aproximadament 32 vegades abans Em poso a només un. 682 00:30:28,750 --> 00:30:31,640 Així que si aquest llibre de telèfon eren 4 milers de milions de pàgines, no és gran cosa. 683 00:30:31,640 --> 00:30:35,270 Al cap d'uns segons, potser 32 segon, que podrien dividir per la meitat 684 00:30:35,270 --> 00:30:39,560 i, finalment, trobar o Mike la conclusió que ell no hi és. 685 00:30:39,560 --> 00:30:42,219 I aquesta és l'essència d'una algorithm-- una bona algoritme. 686 00:30:42,219 --> 00:30:44,260 I això és una de les objectius d'una classe com aquesta, 687 00:30:44,260 --> 00:30:47,350 està tractant d'esbrinar com puc resoldre el problema no només correctament, 688 00:30:47,350 --> 00:30:52,360 com sempre vaig saber com fer-ho un pàgina a la temps-- però correctament i bé. 689 00:30:52,360 --> 00:30:55,034 Com disseny bona solucions als problemes? 690 00:30:55,034 --> 00:30:57,200 Així que prenguem un moment aquí i donar-li un sentit ara 691 00:30:57,200 --> 00:31:00,260 de CS50 el curs itself-- introduir membres del personal d'alguns de golf. 692 00:31:00,260 --> 00:31:02,010 Just abans de les 02:00, anem a prendre un breu descans 693 00:31:02,010 --> 00:31:03,520 de manera que aquells de vostès que es pot anar de compres 694 00:31:03,520 --> 00:31:05,130 ànec i prendre una mirar a alguna altra classe 695 00:31:05,130 --> 00:31:06,580 i veure la resta d'aquesta línia. 696 00:31:06,580 --> 00:31:09,250 Però per ara, presentaré CS50, la mateixa classe, 697 00:31:09,250 --> 00:31:11,330 i sobretot el que és nou. 698 00:31:11,330 --> 00:31:13,960 >> Pel que la primavera passada, ens passat una mica de temps-- 699 00:31:13,960 --> 00:31:17,911 El personal del curs i jo-- pensar sobre què és el que volem que sigui CS50, 700 00:31:17,911 --> 00:31:19,910 i tornar a la primera principis, per així dir-ho, 701 00:31:19,910 --> 00:31:22,760 considerar què és el que volem aquest curs perquè sembli i sigui 702 00:31:22,760 --> 00:31:23,740 de la mateixa manera que per als seus estudiants. 703 00:31:23,740 --> 00:31:26,480 I pel que veurà en el problema establir un nivell zero, una invitació 704 00:31:26,480 --> 00:31:28,780 per fer una ullada a aquesta URL que resumeix 705 00:31:28,780 --> 00:31:33,270 algunes de les motivacions darrere de la seguint les característiques de caiguda de 2016. 706 00:31:33,270 --> 00:31:35,570 >> Així com pot haver recollit Del TL: DR fullet, 707 00:31:35,570 --> 00:31:39,060 el programa d'avui, així com de el catàleg de cursos, aquest any en CS50, 708 00:31:39,060 --> 00:31:42,540 només s'espera que assisteixin avui-- pel treball ben done-- 709 00:31:42,540 --> 00:31:45,960 i l'última conferència el 21 de novembre. 710 00:31:45,960 --> 00:31:49,150 I de res, però no s'espera que assistir a les conferències en el medi, 711 00:31:49,150 --> 00:31:51,180 perquè el que estem fent aquest any, està disparant 712 00:31:51,180 --> 00:31:52,661 en temps real el material del curs. 713 00:31:52,661 --> 00:31:54,660 Així que tot es quedarà actual i incorporat 714 00:31:54,660 --> 00:31:57,410 el millor que can-- esdeveniments actuals i converses que la gent podria 715 00:31:57,410 --> 00:32:00,400 estar tenint en la indústria de la món, però fer que el material 716 00:32:00,400 --> 00:32:03,892 disponible, com a resultat, fins i tot abans els vaig parlar complet amb les transcripcions de text complet 717 00:32:03,892 --> 00:32:05,850 i capacitat de recerca i enllaços a altres recursos. 718 00:32:05,850 --> 00:32:07,930 >> I, de fet, hem estat reclamant algun temps 719 00:32:07,930 --> 00:32:10,830 i que fem ara creiem això, que podem crear, digitalment, 720 00:32:10,830 --> 00:32:15,170 una major immersió, una més convincent experiència educativa, en contraposició 721 00:32:15,170 --> 00:32:19,110 per reunir aquí unes 23 vegades en persona, escoltar a algú com jo 722 00:32:19,110 --> 00:32:22,925 parlar simplement de la informàtica, en oposició a participar més activament. 723 00:32:22,925 --> 00:32:25,800 Pel que veurà en el curs del pla d'estudis 01:00 esbós del semestre aquí, 724 00:32:25,800 --> 00:32:27,840 juntament amb conferències quan es ser filmat, a la que estàs 725 00:32:27,840 --> 00:32:29,710 benvinguts, però no s'espera, i quan es 726 00:32:29,710 --> 00:32:31,640 ser llançat el lloc web del curs. 727 00:32:31,640 --> 00:32:34,300 >> I el que farem aquí a Els dimecres a partir la setmana que ve, 728 00:32:34,300 --> 00:32:37,362 és molt més íntimament, amb l'única aquelles persones que vulguin participar, 729 00:32:37,362 --> 00:32:39,820 és una crida a peu a través, on jo i caps del curs 730 00:32:39,820 --> 00:32:41,730 en realitat fer les coses una mica més íntim 731 00:32:41,730 --> 00:32:44,313 aquí baix, en l'orquestra secció, encara té una mica de tecnologia 732 00:32:44,313 --> 00:32:46,365 i caminar a través de la conjunt de problemes de la setmana en curs, 733 00:32:46,365 --> 00:32:50,020 i li ofereixen principalment: si entre els menys comfortable-- tant més 734 00:32:50,020 --> 00:32:52,790 orientació que és possible que vulgueu o necessitarà per al desafiament de la setmana. 735 00:32:52,790 --> 00:32:55,820 I de la mateixa manera, per als que no poden assistir als de la persona, no és gran cosa. 736 00:32:55,820 --> 00:32:58,486 No seran conduïts de manera similar per un dels alts funcionaris de l'assignatura, 737 00:32:58,486 --> 00:33:02,650 Zamalya, la mateixa oportunitat incrustat en el problema configura a si mateixos. 738 00:33:02,650 --> 00:33:04,960 >> Problema estableix aquest any serà llançat el divendres 739 00:33:04,960 --> 00:33:08,080 i ja no ho fan set dies més tard, però 10 dies tard-- deliberadament 740 00:33:08,080 --> 00:33:10,910 superposició amb cada problema establir, a fi d'acomodar millor, 741 00:33:10,910 --> 00:33:13,050 esperem, flux i reflux en horaris dels estudiants, 742 00:33:13,050 --> 00:33:16,550 especialment quan els exàmens parcials o atletisme o acadèmics o extracurriculars 743 00:33:16,550 --> 00:33:18,465 tendeixen a aparèixer i desaparèixer especialment de meitat de semestre. 744 00:33:18,465 --> 00:33:21,340 Això et donarà una mica més discreció quant a si vostè davant 745 00:33:21,340 --> 00:33:25,690 carregar la seva setmana amb CS50 o la càrrega de nou que en el cap de setmana següent al seu lloc. 746 00:33:25,690 --> 00:33:28,817 Així que mira al programa del curs aquí per la programació del mateix. 747 00:33:28,817 --> 00:33:30,900 I s'adonarà també entre els canvis aquest any, 748 00:33:30,900 --> 00:33:34,082 per a aquells més familiaritzats amb programació en el passat, 749 00:33:34,082 --> 00:33:36,290 anem a començar el semestre com ho farem avui en Scratch, 750 00:33:36,290 --> 00:33:39,730 centrar-se especialment en la llengua anomenada C, i després no la transició 751 00:33:39,730 --> 00:33:43,430 a PHP, sinó a un llenguatge anomenat Python cap al final del semestre 752 00:33:43,430 --> 00:33:46,565 en el context de la programació web, juntament amb SQL i JavaScript, 753 00:33:46,565 --> 00:33:48,930 HTML, CSS, i encara més. 754 00:33:48,930 --> 00:33:51,790 >> I en resposta a una pregunta més freqüent, és de fet el cas 755 00:33:51,790 --> 00:33:55,520 que el CS no és tan temible com un cop va pensar que era, però és tanta feina 756 00:33:55,520 --> 00:33:57,280 ja que havia sentit que podria ser. 757 00:33:57,280 --> 00:34:03,210 Però aquest és l'exemple que aquí estan alguns estadístiques de la caiguda 2015 alumnat, 758 00:34:03,210 --> 00:34:06,460 de manera que les línies blaves horitzontals representar el nombre mitjà d'hores 759 00:34:06,460 --> 00:34:06,960 reportat. 760 00:34:06,960 --> 00:34:10,570 I veurà una mitjana de sis a 10 a 12-- potser 16 761 00:34:10,570 --> 00:34:14,580 o així, i així successivament, però amb alta variància per ser clars. 762 00:34:14,580 --> 00:34:18,570 I així es dóna compte que no només hi ha estudiants més còmode i menys 763 00:34:18,570 --> 00:34:22,150 còmode en el curs, però un suport corresponent 764 00:34:22,150 --> 00:34:25,699 estructura per aconseguir aquests estudiants fins al semestre amb èxit. 765 00:34:25,699 --> 00:34:29,409 >> En efecte, en resposta a una pregunta més freqüent, ha de CS50 es pren com a primer any? 766 00:34:29,409 --> 00:34:30,139 Absolutament. 767 00:34:30,139 --> 00:34:32,690 I, de fet, em penedeixo no haver trobat el camí 768 00:34:32,690 --> 00:34:35,170 o trobat un nou camp aquest primer any també. 769 00:34:35,170 --> 00:34:39,149 I s'ha de prendre amb CS50 altres cursos, com sens dubte bé-- 770 00:34:39,149 --> 00:34:41,940 i els consells generals que podríem donar als estudiants, que és probablement CS50 771 00:34:41,940 --> 00:34:44,929 no el tipus de classe o classe d'introducció que vostè ha de prendre amb tres 772 00:34:44,929 --> 00:34:47,199 una altra o altres quatre classes de p-set. 773 00:34:47,199 --> 00:34:50,583 Però si vostè està prenent altres dos p-setembre classes, una mica més, i CS50, 774 00:34:50,583 --> 00:34:51,499 absolutament manejable. 775 00:34:51,499 --> 00:34:54,900 He tingut molts estudiants en el passat fet amb força èxit. 776 00:34:54,900 --> 00:34:57,490 >> I per arribar cap a aquest la línia de meta amb èxit, 777 00:34:57,490 --> 00:35:00,260 ¿El curs té les Categorías-- diferents pistes per als estudiants 778 00:35:00,260 --> 00:35:03,100 menys còmode, més còmode, i en algun lloc en el medi, 779 00:35:03,100 --> 00:35:04,850 pel que en el curs de Conjunt primer problema, 780 00:35:04,850 --> 00:35:06,360 se li demanarà que descrius. 781 00:35:06,360 --> 00:35:09,151 I si vostè està entre els menys còmoda, que és el tipus de cosa 782 00:35:09,151 --> 00:35:10,420 que acaba bé sap. 783 00:35:10,420 --> 00:35:13,010 I, de fet, que ha estat el creixement demogràfic en CS50 784 00:35:13,010 --> 00:35:14,090 des de fa uns anys. 785 00:35:14,090 --> 00:35:17,680 >> Des de l'última caiguda de exemple, el 58% de la classe 786 00:35:17,680 --> 00:35:20,560 es descriu a si mateixos com entre els que menys còmode, 787 00:35:20,560 --> 00:35:23,210 amb un 9% entre els més còmoda, i després 788 00:35:23,210 --> 00:35:25,900 els altres estudiants allà a vermell descriuen a si mateixos 789 00:35:25,900 --> 00:35:27,890 com en algun punt intermedi. 790 00:35:27,890 --> 00:35:31,980 I veurà aquí els temes en general i l'horari de les seccions, totes les quals 791 00:35:31,980 --> 00:35:34,820 s'ofereixen en persona, en en temps real, amb el curs de 792 00:35:34,820 --> 00:35:38,320 increïble personal de becaris d'ensenyament i els assistents del curs, alguns dels quals 793 00:35:38,320 --> 00:35:39,660 va a coincidir en un moment. 794 00:35:39,660 --> 00:35:42,993 >> Seccions si mateixos, com es veurà, la voluntat serà els dilluns i dimarts i dimecres, 795 00:35:42,993 --> 00:35:45,910 a fi de permetre a bussejar després de participar en, si així ho 796 00:35:45,910 --> 00:35:48,110 triar, en el curs de donar una conferència a principis d'aquesta setmana. 797 00:35:48,110 --> 00:35:51,420 I després d'hores d'oficina, els quals Certament, amb cada any que passa, 798 00:35:51,420 --> 00:35:54,110 no han estat menys d'una lluitar pel curs. 799 00:35:54,110 --> 00:35:57,040 I aquest any, no estem planejant Només en el càrrec un hores-- 800 00:35:57,040 --> 00:36:00,300 en un oportunitats d'ajuda per estudiants els dimecres els dijous 801 00:36:00,300 --> 00:36:03,790 i els diumenges, l'últim dels estar a la tarda pel disseny 802 00:36:03,790 --> 00:36:06,910 per reduir una mica de la tensió que es invariablement sorgeix amb la nit 803 00:36:06,910 --> 00:36:10,180 p-settting amb un termini looming-- sinó que també s'oferiran hores d'oficina 804 00:36:10,180 --> 00:36:14,920 els dilluns i dimarts i Els dimecres i els divendres i dissabtes, 805 00:36:14,920 --> 00:36:17,080 Gràcies als nostres amics de HSA. 806 00:36:17,080 --> 00:36:20,330 >> CS50 té ara el seu propi espai per a estudiants i personal CS50, 807 00:36:20,330 --> 00:36:23,070 67 a la part alta carrer Mount Auburn, allà mateix, a Harvard Square. 808 00:36:23,070 --> 00:36:26,340 La visió dels quals és que CS50 de TFS i les CA durant tota la setmana, 809 00:36:26,340 --> 00:36:29,052 més o menys en la major part dies, estaran allà per acompanyar-lo. 810 00:36:29,052 --> 00:36:30,760 Així que si vostè té un cert pregunta en un p-setembre 811 00:36:30,760 --> 00:36:33,093 o et sents una mica bloquejada o una mica confós, 812 00:36:33,093 --> 00:36:35,640 i diables, tens una hora o mitja hora entre les classes, 813 00:36:35,640 --> 00:36:38,920 especialment en el square-- pot vostè entrar i fer a aquesta pregunta va respondre 814 00:36:38,920 --> 00:36:41,720 de tenir aquesta confusió clarified-- molt en l'esperit, 815 00:36:41,720 --> 00:36:45,490 vostè està familiaritzat, de la matemàtiques propi centre de les preguntes de matemàtiques del departament, 816 00:36:45,490 --> 00:36:49,300 però gairebé tot el dia per [? Gcal?] Que anem a publicar en línia. 817 00:36:49,300 --> 00:36:52,400 >> Tutoria també està disponible per a aquells estudiants, lliurement des del curs de 818 00:36:52,400 --> 00:36:54,750 personal propi si ho desitja més íntim d'un a un, 819 00:36:54,750 --> 00:36:58,940 o únicament dos o tres companys de classe, treballant amb un dels membres del personal del curs. 820 00:36:58,940 --> 00:37:02,320 I, de fet, aquests aquí són només alguns dels membres del personal del curs, 821 00:37:02,320 --> 00:37:04,120 alguns dels quals podràs reunir-se en un moment. 822 00:37:04,120 --> 00:37:07,440 De fet, la mateixa CS50 company de l'ensenyament cap, 823 00:37:07,440 --> 00:37:09,790 i el curs del cap ajudant, i el preceptor, 824 00:37:09,790 --> 00:37:12,998 podria arribar a un màxim, permetre ells dir hola. 825 00:37:12,998 --> 00:37:22,498 >> [Aplaudiments] 826 00:37:22,498 --> 00:37:23,456 ALTAVEU 1: [inaudible]. 827 00:37:23,456 --> 00:37:51,842 828 00:37:51,842 --> 00:37:57,856 >> [Aplaudiments] 829 00:37:57,856 --> 00:37:58,814 ALTAVEU 2: [inaudible]. 830 00:37:58,814 --> 00:38:17,240 831 00:38:17,240 --> 00:38:27,238 >> [Aplaudiments] 832 00:38:27,238 --> 00:38:28,196 ALTAVEU 3: [inaudible]. 833 00:38:28,196 --> 00:38:58,951 834 00:38:58,951 --> 00:39:03,120 >> [Aplaudiments] 835 00:39:03,120 --> 00:39:06,740 >> DAVID Malan: I ens permeten portar a bord dos CS50 de la majoria 836 00:39:06,740 --> 00:39:09,730 el personal directiu, Rob i Zamayla també. 837 00:39:09,730 --> 00:39:15,120 >> [Aplaudiments] 838 00:39:15,120 --> 00:39:17,226 >> De fet, tant Rob i Zamayla han estat amb nosaltres 839 00:39:17,226 --> 00:39:19,940 durant tant de temps, que jo era capaç per entrar en els arxius de l'CS50 840 00:39:19,940 --> 00:39:22,470 i trobar aquest mateix SD metratge d'ells participant 841 00:39:22,470 --> 00:39:25,402 en si mateixos escenaris fa alguns anys. 842 00:39:25,402 --> 00:39:26,110 ROB: [inaudible]. 843 00:39:26,110 --> 00:39:53,660 844 00:39:53,660 --> 00:39:59,247 >> [Aplaudiments] 845 00:39:59,247 --> 00:40:00,080 ZAMAYLA: [inaudible] 846 00:40:00,080 --> 00:40:50,888 847 00:40:50,888 --> 00:40:52,467 >> [Aplaudiments] 848 00:40:52,467 --> 00:40:53,425 DAVID Malan: Gràcies. 849 00:40:53,425 --> 00:40:56,160 850 00:40:56,160 --> 00:40:58,030 Així que a més d'aquests els membres de l'equip aquí, 851 00:40:58,030 --> 00:41:01,662 CS50 compta amb un equip de gairebé 100 tots els membres del personal, dels quals 852 00:41:01,662 --> 00:41:04,370 estarà disponible per a les seccions i les hores d'oficina i molt més. 853 00:41:04,370 --> 00:41:06,920 I com diu Rob també, això és la reforma més significativa 854 00:41:06,920 --> 00:41:09,534 de CS50 en els 10 anys que He estat en [inaudible]. 855 00:41:09,534 --> 00:41:12,200 [Inaudible] centrat especialment en la provisió d'una estructura de suport, 856 00:41:12,200 --> 00:41:14,050 la retallada de distància una gran quantitat de el gruix que ha estat 857 00:41:14,050 --> 00:41:16,870 acumulat en 10 anys desenvolupaments de iteratius 858 00:41:16,870 --> 00:41:18,120 en els butlletins de problemes del curs. 859 00:41:18,120 --> 00:41:21,470 >> Així que aquest any, no només a classe, però també en la forma del problema del curs 860 00:41:21,470 --> 00:41:24,800 conjunts, que han de descobrir propostes ser més àgil, condensador d'ajust, tant 861 00:41:24,800 --> 00:41:26,700 més manejable que en els últims anys, a mesura que 862 00:41:26,700 --> 00:41:31,330 llançar una mica de l'equipatge que és desenvolupat per naturalesa d'any en evolució 863 00:41:31,330 --> 00:41:32,970 rere any i la iteració. 864 00:41:32,970 --> 00:41:35,110 Pel que el nou i millorat comença avui. 865 00:41:35,110 --> 00:41:37,860 >> Et trobaràs amb una mica més de la El personal del curs al [inaudible] 866 00:41:37,860 --> 00:41:40,186 a les 2:30, on se serveix, com una tradició, la coca. 867 00:41:40,186 --> 00:41:42,060 Hi ha una mica més de la coca que això, però vostè 868 00:41:42,060 --> 00:41:44,690 Erin es reuneixen i Tobias i altres encara. 869 00:41:44,690 --> 00:41:46,470 I et vaig a donar un recorregut abans de sentir 870 00:41:46,470 --> 00:41:49,600 d'alguns dels altres membres del personal a la classe, del que espera també. 871 00:41:49,600 --> 00:41:52,730 De fet, sempre comencem de CS50 semestre dissabte que ve, 872 00:41:52,730 --> 00:41:54,330 amb el que es diu CS50 Trencaclosques dia. 873 00:41:54,330 --> 00:41:56,710 >> No té res a veure amb ciències de la computació per se, 874 00:41:56,710 --> 00:41:58,669 però amb aproximadament problema resoldre de manera més general. 875 00:41:58,669 --> 00:42:01,210 I si així ho desitja participar, per algunes de les invitacions, 876 00:42:01,210 --> 00:42:03,460 que podria haver vist porta caigut oa l'escenari aquí, 877 00:42:03,460 --> 00:42:05,830 que és una oportunitat en equips de dos o tres o quatre, 878 00:42:05,830 --> 00:42:10,680 per participar pels trencaclosques i pizzes i els premis i més-- aquest dissabte, 879 00:42:10,680 --> 00:42:12,560 Estiguin atents per més. 880 00:42:12,560 --> 00:42:15,082 >> Trobarà també que cada Divendres, a foc i gel, 881 00:42:15,082 --> 00:42:16,790 porta una CS50 Gran quantitat dels estudiants 882 00:42:16,790 --> 00:42:19,100 per dinar, per fer un gran la classe se senti més íntim, 883 00:42:19,100 --> 00:42:21,820 i, en general reunirà exalumnes i amics de la indústria 884 00:42:21,820 --> 00:42:24,710 per parlar del que han estat fent des que es va graduar. 885 00:42:24,710 --> 00:42:27,820 De la mateixa manera, aquest any, se'ns inaugurar el primer CS50 50 886 00:42:27,820 --> 00:42:31,390 contest-- codificació d'una meitat de semestre oportunitat perquè tots 887 00:42:31,390 --> 00:42:35,430 en una opció a la base, per tenir una desafiament d'enginy contra els seus companys de classe, 888 00:42:35,430 --> 00:42:39,250 de nou en equips de dos o tres o 4, utilitzant només que la programació 889 00:42:39,250 --> 00:42:41,920 coneixedors que, a continuació tens sota el cinturó després de només sis o set 890 00:42:41,920 --> 00:42:44,710 setmanes de la classe, i participar en aquest tipus de competència 891 00:42:44,710 --> 00:42:50,261 online-- si desitja perfeccionar la seva pròpia habilitats encara més en aquest desafiament. 892 00:42:50,261 --> 00:42:52,760 Al final del semestre és l'anomenat CS50 Hackathon-- 893 00:42:52,760 --> 00:42:56,970 una oportunitat que comença a les 7:00 PM acaba a les 7:00 del matí, i en el camí 894 00:42:56,970 --> 00:43:01,900 Són 12 hores de la nit en què a bussejar en projecte- final del curs 895 00:43:01,900 --> 00:43:04,820 l'oportunitat de dissenyar i aplicar la major part de res d'interès 896 00:43:04,820 --> 00:43:06,980 a vostè amb el seu ensenyament la guia del company. 897 00:43:06,980 --> 00:43:09,600 Al voltant de les 9:00 AM de que normalment serveixen pizza, la 1:00 AM, 898 00:43:09,600 --> 00:43:13,210 Philippe, i els pocs de nosaltres que encara estan desperts a les 5:00 del matí, 899 00:43:13,210 --> 00:43:16,310 són de transport, va ordenar el trasllat per la camí a IHOP per esmorzar. 900 00:43:16,310 --> 00:43:19,340 >> I després uns dies més tard és l'anomenat CS50 fare-- 901 00:43:19,340 --> 00:43:23,450 un cap de semestre a l'exposició celebració de com de lluny tants 902 00:43:23,450 --> 00:43:28,200 CS50 d'estudiants han vingut de la setmana zero fins al final a la setmana, 903 00:43:28,200 --> 00:43:32,610 i tenint en compte que el 73% de les persones companys i la seva aquest any han 904 00:43:32,610 --> 00:43:34,840 Mai pres una classe de CS abans. 905 00:43:34,840 --> 00:43:39,226 De fet, per emfatitzar tant, aquí és una poques cares més del personal de l'CS50. 906 00:43:39,226 --> 00:43:40,184 ALTAVEU 4: [inaudible]. 907 00:43:40,184 --> 00:43:45,909 908 00:43:45,909 --> 00:43:46,867 ALTAVEU 5: [inaudible]. 909 00:43:46,867 --> 00:43:51,332 910 00:43:51,332 --> 00:43:52,290 ALTAVEU 6: [inaudible]. 911 00:43:52,290 --> 00:43:55,276 912 00:43:55,276 --> 00:43:56,234 ALTAVEU 7: [inaudible]. 913 00:43:56,234 --> 00:44:01,727 914 00:44:01,727 --> 00:44:02,643 ALTAVEU 8: [inaudible] 915 00:44:02,643 --> 00:44:10,066 916 00:44:10,066 --> 00:44:11,024 ALTAVEU 9: [inaudible]. 917 00:44:11,024 --> 00:44:14,475 918 00:44:14,475 --> 00:44:15,461 >> ALTAVEU 4: [inaudible]. 919 00:44:15,461 --> 00:44:16,461 >> ALTAVEU 10: [inaudible]. 920 00:44:16,461 --> 00:44:21,456 921 00:44:21,456 --> 00:44:23,438 ALTAVEU 11: [inaudible]. 922 00:44:23,438 --> 00:44:24,438 ALTAVEU 12: [inaudible]. 923 00:44:24,438 --> 00:44:30,438 924 00:44:30,438 --> 00:44:31,396 L'altaveu 13: [inaudible] 925 00:44:31,396 --> 00:44:37,360 926 00:44:37,360 --> 00:44:40,342 >> ALTAVEU 14: [inaudible]. 927 00:44:40,342 --> 00:44:42,863 >> L'altaveu 13: [inaudible]. 928 00:44:42,863 --> 00:44:43,821 ALTAVEU 15: [inaudible] 929 00:44:43,821 --> 00:44:48,785 930 00:44:48,785 --> 00:44:49,785 ALTAVEU 16: [inaudible]. 931 00:44:49,785 --> 00:44:53,761 932 00:44:53,761 --> 00:44:55,252 >> ALTAVEU 11: [inaudible] 933 00:44:55,252 --> 00:44:57,773 934 00:44:57,773 --> 00:44:58,731 ALTAVEU 5: [inaudible]. 935 00:44:58,731 --> 00:45:11,250 936 00:45:11,250 --> 00:45:15,130 DAVID Malan: Alguns l'equip són ells mateixos fent compres classes. 937 00:45:15,130 --> 00:45:17,760 Però si els membres CS50 del personal són aquí, 938 00:45:17,760 --> 00:45:19,230 podria arribar a un màxim d'un moment. 939 00:45:19,230 --> 00:45:23,450 TFS del CS50 i AC i [? el personal?] membres aquí-- aquests són només alguns 940 00:45:23,450 --> 00:45:28,880 del faces-- un dels quals acaba serra, i uns pocs altre-- i alguns altres 941 00:45:28,880 --> 00:45:30,020 encara. 942 00:45:30,020 --> 00:45:33,242 Per què no anem endavant i permetem vostès un descans de cinc minuts. 943 00:45:33,242 --> 00:45:35,450 Si necessita ànec a classes de taller, això està bé. 944 00:45:35,450 --> 00:45:38,900 I en cinc minuts, anem a reprendre, fer una ullada a la primera Scratch-- 945 00:45:38,900 --> 00:45:42,420 del nostre llenguatge de programació, conèixer el personal del curs aquí una mica més, 946 00:45:42,420 --> 00:45:45,020 i se centren en última instància, el problema plantejat zero. 947 00:45:45,020 --> 00:45:46,710 Així que estarem de tornada en cinc minuts. 1 00:45:46,864 --> 00:45:47,370 >> Tot bé. 2 00:45:47,370 --> 00:45:48,590 Així que estem de tornada. 3 00:45:48,590 --> 00:45:51,330 I en el nostre restant temps d'avui en dia, l'objectiu 4 00:45:51,330 --> 00:45:54,320 és per anivellar el camp de joc pel que fa a la terminologia, 5 00:45:54,320 --> 00:45:55,297 en termes d'algunes idees. 6 00:45:55,297 --> 00:45:57,380 A causa que de fet, com per algunes de les taules anteriors, 7 00:45:57,380 --> 00:46:00,130 no hi haurà un seguit de nivells d'experiència a la classe, 8 00:46:00,130 --> 00:46:03,210 alguns dels alumnes han pres una mica de programació abans, 9 00:46:03,210 --> 00:46:04,200 alguns dels quals no tenen. 10 00:46:04,200 --> 00:46:07,430 I així, amb aquest primer problema establir i amb aquesta primera llengua 11 00:46:07,430 --> 00:46:10,830 tenim l'oportunitat de començar a donar per fet després d'avui 12 00:46:10,830 --> 00:46:12,960 una mica de vocabulari i la idea comuna. 13 00:46:12,960 --> 00:46:15,590 >> I ho farem a través de Les Llengües primera del curs 14 00:46:15,590 --> 00:46:21,070 a més de C i Python i JavaScript i SQL i HTML i CSS, 15 00:46:21,070 --> 00:46:24,450 ens centrarem inicialment i només per un problema assigna el valor zero 16 00:46:24,450 --> 00:46:28,160 en aquest llenguatge gràfic, anomenat Scratch, desenvolupat pel MIT Media Lab 17 00:46:28,160 --> 00:46:30,880 pel camí, per ajudar estudiants i nens, especialment 18 00:46:30,880 --> 00:46:35,070 expressar-algorithmically-- d'una forma més consistent amb el que 19 00:46:35,070 --> 00:46:37,300 que podríem anomenar el pensament computacional. 20 00:46:37,300 --> 00:46:40,985 >> I és una llengua útil perquè molt ràpidament la propera setmana a la setmana un, 21 00:46:40,985 --> 00:46:44,360 Per què fem la transició a una major llenguatge tradicional i arcà anomenat 22 00:46:44,360 --> 00:46:46,370 C, que és purament textual. 23 00:46:46,370 --> 00:46:48,930 Només s'utilitza en el seu teclat Per escriure instruccions 24 00:46:48,930 --> 00:46:50,230 com aquests a la pantalla. 25 00:46:50,230 --> 00:46:52,840 Però fins i tot si vostè mai ha vist un llenguatge de programació abans, 26 00:46:52,840 --> 00:46:55,170 en tan sols fer una ullada a això, tot sigui críptic, 27 00:46:55,170 --> 00:47:00,010 que és fàcil endevinar que Probablement imprimeix Hello World. 28 00:47:00,010 --> 00:47:02,050 Però hi ha una gran quantitat de sobrecàrrega sintàctica allà. 29 00:47:02,050 --> 00:47:05,770 No és estrany el hash símbol o etiqueta de hash sobre de la tapa. 30 00:47:05,770 --> 00:47:08,900 Hi ha els parèntesis angulars, alguns parèntesis, claudàtors, semi-colon-- 31 00:47:08,900 --> 00:47:11,880 només hi ha tant visual sintaxi que s'interposa en el camí. 32 00:47:11,880 --> 00:47:13,940 Comencem el curs amb De zero a fi d'obtenir 33 00:47:13,940 --> 00:47:17,600 passat tots els intel·lectualment distraccions, sense interès 34 00:47:17,600 --> 00:47:20,290 i centrar-se en les idees. 35 00:47:20,290 --> 00:47:22,540 >> De fet, això podria ser abans. 36 00:47:22,540 --> 00:47:24,830 Això, per això, la setmana serà després. 37 00:47:24,830 --> 00:47:26,760 Això, en aquesta gràfica Esgarrinxada de la llengua, 38 00:47:26,760 --> 00:47:29,870 és com es duria a terme aquest mateix program-- un programa que quan s'executa, 39 00:47:29,870 --> 00:47:31,340 Simplement diu hola món. 40 00:47:31,340 --> 00:47:34,740 I el que és bo d'Scratch és que és aquesta programació gràfica 41 00:47:34,740 --> 00:47:38,780 entorn que utilitza les peces del trencaclosques o blocs, que només s'acoblen per acoblament 42 00:47:38,780 --> 00:47:40,440 si té sentit lògic per fer-ho. 43 00:47:40,440 --> 00:47:43,810 I amb les ratllades es pot desenvolupar animacions i jocs interactius 44 00:47:43,810 --> 00:47:47,270 i l'art, i qualsevol nombre de coses que es pot imaginar en la seva pròpia ment, 45 00:47:47,270 --> 00:47:51,200 i posar-les en pràctica simplement arrossegar i deixar anar les peces del trencaclosques. 46 00:47:51,200 --> 00:47:54,265 >> I, de fet, tindrem la capacitat per expressar algunes de les mateixes idees 47 00:47:54,265 --> 00:47:56,890 que acabo d'esmentar un moment fa en el context de Mike Smith 48 00:47:56,890 --> 00:48:00,670 i buscant coses que un telèfon book-- que les funcions, només les accions, 49 00:48:00,670 --> 00:48:03,070 coses com bucles que fan coses una i altra vegada, 50 00:48:03,070 --> 00:48:05,170 variables, que és cosa que anem a introduir, 51 00:48:05,170 --> 00:48:08,086 però és coneguda potser de algebra-- només una mena de marcador de posició 52 00:48:08,086 --> 00:48:10,840 per emmagatzemar un valor que podria necessitarà expressions booleanes tarda-, 53 00:48:10,840 --> 00:48:13,720 on aquells que sí no o veritable falses preguntes d'abans. 54 00:48:13,720 --> 00:48:17,117 Les condicions són aquestes bifurcacions en el road-- aquelles branques per dir-ho. 55 00:48:17,117 --> 00:48:19,700 I després hi ha alguns més elegant característiques que veurem encara avui en dia, 56 00:48:19,700 --> 00:48:22,850 anomenats matrius i les discussions i esdeveniments, que a continuació Tornarem al llarg 57 00:48:22,850 --> 00:48:24,460 temps en diferents idiomes. 58 00:48:24,460 --> 00:48:26,790 Però les ratllades ens permet per explorar tots aquests. 59 00:48:26,790 --> 00:48:30,779 Així que aquí a Scratch, aquest porpra bloc és una funció del que és típicament 60 00:48:30,779 --> 00:48:31,570 va a semblar. 61 00:48:31,570 --> 00:48:35,620 Aquesta peça de trencaclosques de color porpra que té algun paraula com per exemple, que és l'acció, 62 00:48:35,620 --> 00:48:38,490 i llavors podria tenir una argument o una parameter-- alguna manera 63 00:48:38,490 --> 00:48:41,140 del tipus de personalització el que fa que el bloc 64 00:48:41,140 --> 00:48:45,182 pel que no està predeterminat per MIT el que diu aquest bloc de color porpra. 65 00:48:45,182 --> 00:48:47,390 De fet, es veurà en una moment en què sóc capaç d'escriure 66 00:48:47,390 --> 00:48:49,931 les paraules com hola món, o hola David, o hola Zamayla, 67 00:48:49,931 --> 00:48:53,750 o el que vulgui, en l'argument a aquest trencaclosques piece-- la caixa blanca 68 00:48:53,750 --> 00:48:54,251 allà. 69 00:48:54,251 --> 00:48:57,166 Mentrestant, si vull un bucle, anem a veure que hi ha peces d'un trencaclosques que 70 00:48:57,166 --> 00:48:58,640 mirar una mica de color taronja com aquest. 71 00:48:58,640 --> 00:49:01,690 I la seva forma tipus d'suggereix que cosa que succeeix una i altra vegada 72 00:49:01,690 --> 00:49:02,680 en un cicle. 73 00:49:02,680 --> 00:49:06,800 >> Així que si jo embolico un bloc saludar món amb un bloc per sempre en Scratch, 74 00:49:06,800 --> 00:49:10,307 que només seguirà dient hola món per sempre, literalment. 75 00:49:10,307 --> 00:49:12,390 Mentrestant, hi ha un altre tipus de bucle en Scratch 76 00:49:12,390 --> 00:49:14,348 que anem a veure-- una repetició block-- on, si es 77 00:49:14,348 --> 00:49:17,940 saber per endavant quantes vegades vol que el bucle per executar 78 00:49:17,940 --> 00:49:21,850 un nombre finit de vegades en què fact-- pot especificar que escrivint en una sèrie 79 00:49:21,850 --> 00:49:25,380 o fins i tot endollar en una variable, com X o I, com veurem. 80 00:49:25,380 --> 00:49:27,690 >> De fet, igual que les variables I en aquest cas, que 81 00:49:27,690 --> 00:49:30,109 és un nom comú per a una variable sencera que 82 00:49:30,109 --> 00:49:31,900 simplement emmagatzema una number-- un nombre sencer podria ser, 83 00:49:31,900 --> 00:49:35,470 utilitzar aquest bloc de taronja aquí per establir una variable igual a zero i. 84 00:49:35,470 --> 00:49:38,900 Heus aquí un exemple en el verd d'un expressió booleana en Scratch. 85 00:49:38,900 --> 00:49:43,700 Tot i que això sembla una matemàtiques fórmula, les desigualtats matemàtiques com aquest 86 00:49:43,700 --> 00:49:45,320 Realment són expressions booleanes. 87 00:49:45,320 --> 00:49:46,570 Això és veritable o fals. 88 00:49:46,570 --> 00:49:48,300 I és menys de 50. 89 00:49:48,300 --> 00:49:51,815 És un sí o un no o resposta veritable o falsa. 90 00:49:51,815 --> 00:49:53,940 I que anomenarem general aquestes expressions booleanes. 91 00:49:53,940 --> 00:49:55,148 I no té per què ser 50. 92 00:49:55,148 --> 00:49:57,970 Pot ser x menor que i, més gran que i, igual a I- 93 00:49:57,970 --> 00:50:00,020 qualsevol nombre d'una altra podrien fer preguntes. 94 00:50:00,020 --> 00:50:03,250 >> Ara, a primera vista, això pot semblar Tot d'una força audaç aquí, i ho és. 95 00:50:03,250 --> 00:50:06,540 Però el concepte racional, és bastant familiar d'abans. 96 00:50:06,540 --> 00:50:09,370 Si x és menor que i, que, per exemple com a molt. 97 00:50:09,370 --> 00:50:12,230 Perquè si x és més gran que i, a continuació, dir el mateix. 98 00:50:12,230 --> 00:50:14,260 Un altre dir de x és igual a i. 99 00:50:14,260 --> 00:50:17,220 Així que tenim un exemple no d'una tercera scenario-- 100 00:50:17,220 --> 00:50:20,600 l'única possibility-- tercera x és o bé major que, menor que, o igual a. 101 00:50:20,600 --> 00:50:22,420 Així que tenim una forquilla de tres vies a la carretera. 102 00:50:22,420 --> 00:50:26,290 >> I notar el que és esgarrinxada fresc aquí--, pel que sembla, té només un trencaclosques 103 00:50:26,290 --> 00:50:28,840 peça, en aquest cas, en si el bloc més. 104 00:50:28,840 --> 00:50:32,090 I no obstant això, això semblaria implicar que es pot només tenen una forquilla de dues vies a la carretera. 105 00:50:32,090 --> 00:50:34,631 Pot anar cap a l'esquerra o cap a la dreta, però ¿Què passa amb aquest tercer escenari? 106 00:50:34,631 --> 00:50:35,760 Què passa si x és igual a i? 107 00:50:35,760 --> 00:50:36,500 No és gran cosa. 108 00:50:36,500 --> 00:50:39,640 Prendre una peça del trencaclosques, ja una altra dins d'ella 109 00:50:39,640 --> 00:50:45,759 per crear l'equivalent semàntic de si, en cas contrari si, else-- i ara 110 00:50:45,759 --> 00:50:47,300 tenir la seva forquilla de tres vies a la carretera. 111 00:50:47,300 --> 00:50:49,091 I com veurem, la peces del trencaclosques de zero 112 00:50:49,091 --> 00:50:51,820 es pot estirar i créixer, per la qual com de ficar més coses en ells. 113 00:50:51,820 --> 00:50:54,420 Vostè no ha d'ajustar tot al seu mida per defecte. 114 00:50:54,420 --> 00:50:56,690 >> Això és una cosa que anem a aviat veurà que s'anomena una matriu. 115 00:50:56,690 --> 00:51:00,880 És com un pel·lícules-- alguna forma de l'emmagatzematge de diverses peces d'informació 116 00:51:00,880 --> 00:51:02,886 en una variable, no només un número. 117 00:51:02,886 --> 00:51:05,760 Aquests veurem un representant de cosa que es diu multi-threading. 118 00:51:05,760 --> 00:51:08,280 De fet, la totalitat del seu Mac i PC en aquests dies 119 00:51:08,280 --> 00:51:10,810 suport multi-threading, el que significa que pot, literalment, 120 00:51:10,810 --> 00:51:12,390 fer diverses coses alhora. 121 00:51:12,390 --> 00:51:15,390 Vostè pot tenir Microsoft Word al primer pla, treballant en algun assaig. 122 00:51:15,390 --> 00:51:17,160 És possible que tingui un navegador en l'obertura de fons 123 00:51:17,160 --> 00:51:18,720 G-mail o Facebook o similars. 124 00:51:18,720 --> 00:51:22,730 L'ordinador pot fer diverses coses avui en dia, ja que és multi-fil, 125 00:51:22,730 --> 00:51:26,390 i els programes que estan en en en particular també són multi-fil. 126 00:51:26,390 --> 00:51:28,970 >> Hi ha coses que es diuen esdeveniments com bé en el món de les ratllades, 127 00:51:28,970 --> 00:51:32,640 i després hi ha una manera també, per fer les nostres pròpies peces del trencaclosques a mida, si les coses 128 00:51:32,640 --> 00:51:34,810 en realitat no existeix per endavant. 129 00:51:34,810 --> 00:51:38,260 Així que anem a motivar això de la següent manera. 130 00:51:38,260 --> 00:51:40,580 Fa alguns anys, quan va descobrir per primera vegada Scratch, 131 00:51:40,580 --> 00:51:43,530 quan jo era en realitat una estudiant de doctorat en el MIT, ens 132 00:51:43,530 --> 00:51:45,640 nosaltres mateixos es van encarregar de fer els deures. 133 00:51:45,640 --> 00:51:47,614 I implemented-- el que, en retrospectiva, 134 00:51:47,614 --> 00:51:50,780 Va ser una decisió molt dolenta perquè és la cançó més irritant en el món 135 00:51:50,780 --> 00:51:53,321 per escoltar durant vuit hores mentre treballa en el seu homework-- 136 00:51:53,321 --> 00:51:57,180 però alguna cosa havia anomenat Oscar Temps, que és potser una cançó familiar. 137 00:51:57,180 --> 00:51:59,820 >> CS50s posseeixen Jordan Hayashi, una de nostre personal més alts, 138 00:51:59,820 --> 00:52:03,920 ha actualitzat per al 2015 i Ara l'any 2016, ja de tornada al dia, 139 00:52:03,920 --> 00:52:06,610 Tenia tot el que acaba d'anar en una galleda d'escombraries d'Oscar. 140 00:52:06,610 --> 00:52:09,320 Ara donem suport al reciclatge i el compostatge. 141 00:52:09,320 --> 00:52:12,050 >> No obstant això, per pintar el quadre del que podem fer aquí 142 00:52:12,050 --> 00:52:14,130 i per motivar alguns els exemples de nivell inferior, 143 00:52:14,130 --> 00:52:16,400 podríem aconseguir un altre voluntari que acaba d'arribar a un màxim 144 00:52:16,400 --> 00:52:18,331 i jugar la meva primera tasca mai? 145 00:52:18,331 --> 00:52:18,830 Anem amunt. 146 00:52:18,830 --> 00:52:19,250 Com et dius? 147 00:52:19,250 --> 00:52:20,030 >> HENRY: Henry. 148 00:52:20,030 --> 00:52:22,660 >> DAVID Malan: Henry, anem a dalt. 149 00:52:22,660 --> 00:52:24,190 Anem amunt. 150 00:52:24,190 --> 00:52:27,070 El cap de qualsevol manera, i es veurà en un moment, 151 00:52:27,070 --> 00:52:29,870 Vaig a seguir endavant i colpejar la bandera verda a la part superior dreta 152 00:52:29,870 --> 00:52:31,100 cantonada, el que significa anar. 153 00:52:31,100 --> 00:52:33,320 La icona de la mostra petita parada dirà prou, 154 00:52:33,320 --> 00:52:35,490 i això és quan s'inicia i aturar el programa. 155 00:52:35,490 --> 00:52:36,450 Encantat de conèixer-te. 156 00:52:36,450 --> 00:52:36,950 Tot bé. 157 00:52:36,950 --> 00:52:39,100 Així que anem a veure les instruccions a la pantalla en un moment. 158 00:52:39,100 --> 00:52:41,450 I només per jugar aquest joc per a uns pocs seconds-- confia en mi, 159 00:52:41,450 --> 00:52:43,670 no anem a voler jugar tot el camí a la end-- es vol 160 00:52:43,670 --> 00:52:45,470 tenir una idea del que fa el programa. 161 00:52:45,470 --> 00:52:49,170 I més que només se centren en Henry ser bo o dolent en aquest joc, l'enfocament 162 00:52:49,170 --> 00:52:52,600 i com s'implementa per mi inicialment i després per Jordan. 163 00:52:52,600 --> 00:52:54,640 En altres paraules, ¿on són les variables? 164 00:52:54,640 --> 00:52:55,520 On són els bucles? 165 00:52:55,520 --> 00:52:56,520 On són les funcions? 166 00:52:56,520 --> 00:53:00,700 I ja veurem si no veiem els que sota la campana. 167 00:53:00,700 --> 00:53:03,660 >> Només cal que feu clic i arrossegar les escombraries a la safata adequada. 168 00:53:03,660 --> 00:54:02,100 >> [MÚSICA] 169 00:54:02,100 --> 00:54:02,600 Tot bé. 170 00:54:02,600 --> 00:54:03,160 Això està molt bé. 171 00:54:03,160 --> 00:54:04,286 Per què no ens aturem aquí. 172 00:54:04,286 --> 00:54:04,786 Gràcies. 173 00:54:04,786 --> 00:54:05,830 Felicitacions a Henry. 174 00:54:05,830 --> 00:54:07,002 Gràcies. 175 00:54:07,002 --> 00:54:10,690 >> [Aplaudiments] 176 00:54:10,690 --> 00:54:12,450 >> Imagineu que la depuració del programa. 177 00:54:12,450 --> 00:54:15,880 Si hi ha un problema de dos al song-- però fins minuts 178 00:54:15,880 --> 00:54:17,430 el que està passant aquí realment? 179 00:54:17,430 --> 00:54:20,900 Tan complicat com podria començarà a semblar aconseguir a través del temps, 180 00:54:20,900 --> 00:54:22,910 de fet més i més coses van començar a caure, 181 00:54:22,910 --> 00:54:25,370 l'interessant de aquest tipus de exemple-- 182 00:54:25,370 --> 00:54:27,270 i veurem uns quants altres- és que si 183 00:54:27,270 --> 00:54:30,416 mirar més enllà de la complexitat o la sofisticació del joc, 184 00:54:30,416 --> 00:54:33,040 hi ha un edifici molt senzill blocs que play-- tots els quals, 185 00:54:33,040 --> 00:54:35,840 si els destil·lar a les blocs de construcció, són molt accessibles 186 00:54:35,840 --> 00:54:37,401 i aplicables en si mateixos. 187 00:54:37,401 --> 00:54:39,150 Per exemple, és passat algun temps, però estic 188 00:54:39,150 --> 00:54:42,900 bastant segur del que inicialment vaig fer quan fent d'aquest joc per primera vegada 189 00:54:42,900 --> 00:54:44,787 Jo estava completament com demorat. 190 00:54:44,787 --> 00:54:47,120 No em concentro en absolut en el la lògica o les peces del trencaclosques, 191 00:54:47,120 --> 00:54:50,810 Em vaig concentrar en els gràfics i la troballa el pal del carrer i el pot d'escombraries 192 00:54:50,810 --> 00:54:51,540 i tot això. 193 00:54:51,540 --> 00:54:53,456 Però aquests eren necessaris ingredients en un principi. 194 00:54:53,456 --> 00:54:57,220 I una vegada que he acabat de dilatar i traçar el marc general, 195 00:54:57,220 --> 00:55:00,337 Vaig decidir, em van deixar de fer-ne un tros d'escombraries caiguda del cel. 196 00:55:00,337 --> 00:55:02,170 I veurem les ratllades dóna suport coses trucades 197 00:55:02,170 --> 00:55:06,386 sprites-- caràcters que poden tenir diferents vestits en el que 198 00:55:06,386 --> 00:55:07,010 un aspecte diferent. 199 00:55:07,010 --> 00:55:09,660 >> I pel que posar una galleda d'escombraries vestuari en un d'aquests sprites. 200 00:55:09,660 --> 00:55:12,007 I jo només necessitava a caure del cel. 201 00:55:12,007 --> 00:55:14,590 I així resulta que, Scratch, com la majoria dels llenguatges de programació, 202 00:55:14,590 --> 00:55:18,099 utilitzant nombres aleatoris o nombres aleatoris tècnicament pseudocodi, 203 00:55:18,099 --> 00:55:20,390 de manera que arrossegant i deixant caure algunes peces d'un trencaclosques, 204 00:55:20,390 --> 00:55:22,890 Jo era capaç de tenir les escombraries vingut de l'esquerra en un primer moment. 205 00:55:22,890 --> 00:55:25,580 I llavors la propera vegada que va caure, des la dreta i després des de la meitat. 206 00:55:25,580 --> 00:55:28,060 I tot el joc no era només tenir les escombraries que cau del cel. 207 00:55:28,060 --> 00:55:29,770 No es podia apuntar a aquesta o faci clic. 208 00:55:29,770 --> 00:55:31,103 No es podia obrir el pot d'escombraries. 209 00:55:31,103 --> 00:55:32,160 No es podia fer res. 210 00:55:32,160 --> 00:55:34,450 Però va ser un pas de nadó cap a la meva última visió. 211 00:55:34,450 --> 00:55:36,720 >> I després d'això, en realitat implementat algun tipus 212 00:55:36,720 --> 00:55:41,230 de detecció de manera que si es va fer clic i arrossegament en la peça d'escombraries 213 00:55:41,230 --> 00:55:44,350 sobre la galleda de les escombraries, Oscar tapa seria obrir i tancar. 214 00:55:44,350 --> 00:55:47,650 No passaria res a les escombraries, però almenys la tapa seria obrir i tancar. 215 00:55:47,650 --> 00:55:49,642 Així que a continuació, comprovar, pas dos de dos. 216 00:55:49,642 --> 00:55:52,100 I això és el que va a ser clau tant problema assigna el valor zero 217 00:55:52,100 --> 00:55:55,970 i en la programació de manera més general, és prendre aquests petits passos molt deliberats. 218 00:55:55,970 --> 00:55:59,390 A causa de que no només se li permet sentir sincerament aconseguit molt més 219 00:55:59,390 --> 00:56:01,250 quickly-- és la El pitjor en el món 220 00:56:01,250 --> 00:56:06,149 per tractar de posar en pràctica totes Oscar Temps, a continuació, hores més tard va colpejar la bandera verda, 221 00:56:06,149 --> 00:56:08,440 i res funciona com s'esperava perquè on es pot fins i tot 222 00:56:08,440 --> 00:56:11,150 començar a depurar o de solucionar aquest programa? 223 00:56:11,150 --> 00:56:12,470 És simplement aclaparadora. 224 00:56:12,470 --> 00:56:16,792 >> I així, erigint-se en aquesta idea de prendre passos de nadó steps-- nou 225 00:56:16,792 --> 00:56:19,000 i la construcció d'una altra vegada-- cosa que és, al final, 226 00:56:19,000 --> 00:56:23,672 realment impressionant i complex, però al principi, no és tan és així. 227 00:56:23,672 --> 00:56:24,630 De fet, farem això. 228 00:56:24,630 --> 00:56:28,989 Déjame anar per davant i- gratar existeix en el web en Scratch.MIT.edu, 229 00:56:28,989 --> 00:56:30,780 i se li va dir que un altre tant en el problema 230 00:56:30,780 --> 00:56:34,200 establir zero, el plec de condicions de que ja està en el lloc web del CS50. 231 00:56:34,200 --> 00:56:35,725 >> Però això és el que és gratar-se. 232 00:56:35,725 --> 00:56:38,210 I no hi ha realment només tres àrees principals. 233 00:56:38,210 --> 00:56:40,980 A la part superior esquerra hi ha és l'etapa trucada. 234 00:56:40,980 --> 00:56:41,810 Es tracta d'Scratch. 235 00:56:41,810 --> 00:56:43,710 El vestit per defecte és un gat. 236 00:56:43,710 --> 00:56:46,950 I aquest és el món rectangular que es pot move-- amunt, avall, esquerra, 237 00:56:46,950 --> 00:56:48,130 dret i algunes altres coses. 238 00:56:48,130 --> 00:56:51,839 A mitjans aquí estan les nostres categories o els nostres palets de peces d'un trencaclosques, 239 00:56:51,839 --> 00:56:53,630 i colors diferents significar coses diferents. 240 00:56:53,630 --> 00:56:56,520 I si furgar, veurà coses com bucles i condicions 241 00:56:56,520 --> 00:56:58,160 i les variables i altres ingredients. 242 00:56:58,160 --> 00:57:00,060 >> I llavors aquí és l'àrea de scripts. 243 00:57:00,060 --> 00:57:03,020 Aquí és on pot arrossegar i deixar anar aquestes peces del trencaclosques per fer les coses. 244 00:57:03,020 --> 00:57:04,690 Així que anem a fer una cosa de tal. 245 00:57:04,690 --> 00:57:06,630 Déjame anar per davant i- i sé on està. 246 00:57:06,630 --> 00:57:10,110 Així que vaig a fer clic immediatament en on sé que les coses estan preparats per ser, 247 00:57:10,110 --> 00:57:13,140 però assenyalant i fent clic ai furgant són inevitables. 248 00:57:13,140 --> 00:57:15,320 Per això, quan fa clic a bandera verda, Què vull fer? 249 00:57:15,320 --> 00:57:17,100 Vaig a fer això. 250 00:57:17,100 --> 00:57:20,699 Vaig a arrossegar aquest trencaclosques de color porpra peça, saluda durant dos segons, 251 00:57:20,699 --> 00:57:21,490 i deixa que el zoom. 252 00:57:21,490 --> 00:57:23,865 >> I vaig a canviar aquesta a ser el que jo vull que ser-- 253 00:57:23,865 --> 00:57:26,471 hola món durant dos segons està molt bé. 254 00:57:26,471 --> 00:57:28,970 Ara, vaig a fer clic al bandera verda, o si realment vull, 255 00:57:28,970 --> 00:57:31,820 Puc pantalla completa i després tornar. 256 00:57:31,820 --> 00:57:34,060 S'acaba de mantenir tot en una sola finestra. 257 00:57:34,060 --> 00:57:36,141 hola món flag-- verd. 258 00:57:36,141 --> 00:57:36,640 Tot bé. 259 00:57:36,640 --> 00:57:38,789 No tot el que interessant. 260 00:57:38,789 --> 00:57:40,080 Així que permetin-me seguir endavant i fer això. 261 00:57:40,080 --> 00:57:41,038 Déjame intentar-altra. 262 00:57:41,038 --> 00:57:44,740 Quan la bandera verda clicked-- anem fer alguna cosa com un so. 263 00:57:44,740 --> 00:57:46,880 I notar que de la caixa de forma gratuïta s'obté 264 00:57:46,880 --> 00:57:49,910 un so de gat, com és el sprite predeterminat. 265 00:57:49,910 --> 00:57:52,380 Així que ara me n'aniré endavant i colpejar la bandera verda ara. 266 00:57:52,380 --> 00:57:53,224 >> [Meowing] 267 00:57:53,224 --> 00:57:54,490 >> Aw. 268 00:57:54,490 --> 00:57:55,370 Això és adorable. 269 00:57:55,370 --> 00:57:57,040 Estic programant. 270 00:57:57,040 --> 00:57:58,550 Llavors, què he fet? 271 00:57:58,550 --> 00:58:00,430 Aquest és l'equivalent d'un programa. 272 00:58:00,430 --> 00:58:01,600 És obvi que és super simple. 273 00:58:01,600 --> 00:58:05,300 En realitat no prendre tot el que molt esforç i el MIT van fer la major part de l'obra, 274 00:58:05,300 --> 00:58:07,890 però us he dit una funció. 275 00:58:07,890 --> 00:58:08,940 He utilitzat una funció. 276 00:58:08,940 --> 00:58:12,480 He fet una mica d'acció, utilitzant només que una peça del trencaclosques de color porpra. 277 00:58:12,480 --> 00:58:15,960 >> Bé, si jo vull fer miols tres en una fila? 278 00:58:15,960 --> 00:58:18,570 Déjame seguir endavant i fer dos i tres. 279 00:58:18,570 --> 00:58:20,910 I notar que quan es poseu a prop d'una peça del trencaclosques, 280 00:58:20,910 --> 00:58:22,970 apareix una petita línia blanca tipus de magnèticament, 281 00:58:22,970 --> 00:58:25,190 i s'encaixarà junts quan es deixa anar. 282 00:58:25,190 --> 00:58:26,600 Anem a veure el que passa aquí. 283 00:58:26,600 --> 00:58:27,920 >> [Meowing] 284 00:58:27,920 --> 00:58:32,390 285 00:58:32,390 --> 00:58:34,510 >> Hi ha un insecte. 286 00:58:34,510 --> 00:58:35,650 Només sento un miol. 287 00:58:35,650 --> 00:58:37,440 Per què podria ser? 288 00:58:37,440 --> 00:58:39,001 Sí? 289 00:58:39,001 --> 00:58:39,500 Sí. 290 00:58:39,500 --> 00:58:41,650 En realitat, no sentir, a fi però això és una bona intuïció. 291 00:58:41,650 --> 00:58:43,400 Tots ells estan jugant al mateix temps. 292 00:58:43,400 --> 00:58:44,000 Per què? 293 00:58:44,000 --> 00:58:46,587 Doncs bé, l'ordinador és només va per fer el que digui que faci. 294 00:58:46,587 --> 00:58:48,670 Així que si vostè diu, el joc de so, reproduir so, so, 295 00:58:48,670 --> 00:58:52,887 però no li diu a jugar fins En acabar, el joc fins que hagi acabat, 296 00:58:52,887 --> 00:58:54,970 que va a bufar a través d' el programa molt ràpid 297 00:58:54,970 --> 00:58:56,830 i no només el que es digui que faci. 298 00:58:56,830 --> 00:58:59,040 >> Així que realment es necessita per arreglar això en un parell de maneres. 299 00:58:59,040 --> 00:59:00,623 Jo només podia fer això, desfer-se d'aquest. 300 00:59:00,623 --> 00:59:04,180 Permetin-me tractar aquest altre trencaclosques piece-- jugar miol so fins que estigui fet, 301 00:59:04,180 --> 00:59:07,072 a continuació, arrossegament tres aquests i feu clic a Reproduir. 302 00:59:07,072 --> 00:59:09,430 >> [Meowing] 303 00:59:09,430 --> 00:59:13,350 >> En realitat no és very-- gràcies usted-- molt natural. 304 00:59:13,350 --> 00:59:16,590 Així que per què no deixar que jo-- em vagi a controlar aquí. 305 00:59:16,590 --> 00:59:17,090 Niça. 306 00:59:17,090 --> 00:59:22,230 Espera un segon, i ara m'ho dius a mi tornar als sons, i el so de joc fins que estigui fet, 307 00:59:22,230 --> 00:59:24,620 i després vaig a buscar esperi un segon. 308 00:59:24,620 --> 00:59:28,692 I llavors m'ho dius a mi anar a buscar un més sòlida, i aquí anem. 309 00:59:28,692 --> 00:59:31,350 >> [Meowing] 310 00:59:31,350 --> 00:59:35,930 >> Una mica més natural, però això no és molt eficient. 311 00:59:35,930 --> 00:59:39,830 Com estava avorrint, ser tots en poques paraules, en fer clic anada i tornada 312 00:59:39,830 --> 00:59:42,724 i realment duplicar la meva treball-- més o menys copiar i enganxar. 313 00:59:42,724 --> 00:59:44,640 De fet, si jo controlo clic o es fa clic dret, 314 00:59:44,640 --> 00:59:46,500 Em podria haver copiat i pegat. 315 00:59:46,500 --> 00:59:49,870 Quin seria una millor construir utilitzar? 316 00:59:49,870 --> 00:59:51,090 Quina idea d'abans? 317 00:59:51,090 --> 00:59:51,990 >> Sí, de manera que un bucle. 318 00:59:51,990 --> 00:59:54,580 I de fet, si ens clavaven voltant, podríem trobar exactament això. 319 00:59:54,580 --> 00:59:57,730 Déjame anar a esdeveniments o millor dit control. 320 00:59:57,730 --> 00:59:59,650 Així que jo no repeat-- vull que sigui 10 vegades. 321 00:59:59,650 --> 01:00:01,370 Això va a ser molest ràpidament. 322 01:00:01,370 --> 01:00:03,380 Però repetiré tres vegades. 323 01:00:03,380 --> 01:00:06,355 Déjame tornar al so i reproduir el so fins que es fa. 324 01:00:06,355 --> 01:00:08,480 Déjame tornar al Control i només ha d'esperar un segon. 325 01:00:08,480 --> 01:00:10,271 I l'avís, és possible que crec que no encaixa, 326 01:00:10,271 --> 01:00:13,520 però de nou, si es deixa que magnèticament fermall de pressió en el seu lloc, que creixerà per omplir. 327 01:00:13,520 --> 01:00:14,971 Què es juga ara? 328 01:00:14,971 --> 01:00:18,500 >> [Meowing] 329 01:00:18,500 --> 01:00:19,000 D'ACORD. 330 01:00:19,000 --> 01:00:19,660 Niça. 331 01:00:19,660 --> 01:00:22,540 I això és el que s'anomenaria un programa que també és correcte. 332 01:00:22,540 --> 01:00:27,590 Es maulló tres vegades bastant naturalment, però és millor dissenyat. 333 01:00:27,590 --> 01:00:29,580 Estic usant menys redundància. 334 01:00:29,580 --> 01:00:30,970 No copiar i enganxar qualsevol cosa. 335 01:00:30,970 --> 01:00:32,470 Acabo d'utilitzar una idea millor. 336 01:00:32,470 --> 01:00:35,340 >> Ara, això encara no és tan interessant amb esgarrapades no fer 337 01:00:35,340 --> 01:00:35,930 res. 338 01:00:35,930 --> 01:00:37,388 Així que farem alguna cosa més al seu lloc. 339 01:00:37,388 --> 01:00:38,670 Anem a fer alguna cosa per sempre. 340 01:00:38,670 --> 01:00:39,420 I saps què? 341 01:00:39,420 --> 01:00:40,470 El moviment sembla interessant. 342 01:00:40,470 --> 01:00:45,760 Tinguem que es mogui 10 passos i prémer el botó Reproduir ara. 343 01:00:45,760 --> 01:00:46,570 >> D'ACORD. 344 01:00:46,570 --> 01:00:49,300 Així que podem tipus d'arrossegament portar-ho de tornada, i ell segueix sent 345 01:00:49,300 --> 01:00:51,250 córrer perquè ell està fent això per sempre. 346 01:00:51,250 --> 01:00:53,150 Així que el bucle està fent el que està dient que fer, 347 01:00:53,150 --> 01:00:54,650 però això no és tan interessant. 348 01:00:54,650 --> 01:00:55,310 Anem a fer-ho. 349 01:00:55,310 --> 01:00:59,870 Permetin-me afegir un bloc de control, i utilitzar una d'aquestes condicions per primera vegada. 350 01:00:59,870 --> 01:01:03,119 >> Pel que va a passar 10 steps-- 10 punts, 10 píxels a la screen-- 351 01:01:03,119 --> 01:01:04,660 a continuació, es va a fer aquesta pregunta. 352 01:01:04,660 --> 01:01:09,340 Si alguna cosa és cert, i després fer alguna cosa dins d'aquest bloc. 353 01:01:09,340 --> 01:01:13,060 Així que resulta de detecció té la seva totalitat manat de expressions-- booleana 354 01:01:13,060 --> 01:01:16,580 preguntes del sí no o veritable falsa form-- deixar-me fer això. 355 01:01:16,580 --> 01:01:19,260 >> Si touching-- i després hi aquest petit menú desplegable. 356 01:01:19,260 --> 01:01:20,410 Puc parametritzar ella. 357 01:01:20,410 --> 01:01:23,010 Si tocar la edge-- anem fer alguna cosa així. 358 01:01:23,010 --> 01:01:27,310 Així que si tocar edge-- deixeu-me tornar al moviment. 359 01:01:27,310 --> 01:01:32,281 ¿I per què no ens donar la volta 180 graus? 360 01:01:32,281 --> 01:01:32,780 Tot bé. 361 01:01:32,780 --> 01:01:35,070 Així que sempre, moure 10 passos. 362 01:01:35,070 --> 01:01:37,670 Si vostè està tocant el vora, un gir de 180 graus. 363 01:01:37,670 --> 01:01:39,720 I aquest no és el final del programa perquè estàs en un bloc per sempre, 364 01:01:39,720 --> 01:01:42,053 així que va a anar una vegada i una una i altra vegada i una altra. 365 01:01:42,053 --> 01:01:43,980 Així que anem a veure què passa. 366 01:01:43,980 --> 01:01:44,785 D'ACORD. 367 01:01:44,785 --> 01:01:48,270 Una mica amb errors, però una mica de fresc. 368 01:01:48,270 --> 01:01:51,710 >> I podem afegir a això algunes coses tontes que no són tot el que intel·lectualment 369 01:01:51,710 --> 01:01:52,270 interessant. 370 01:01:52,270 --> 01:01:57,210 Però si arribem a aquesta petita micròfon button-- ai. 371 01:01:57,210 --> 01:01:58,480 Déjame netejar això. 372 01:01:58,480 --> 01:02:01,540 Permetin-me com millorar aquest deien a la televisió. 373 01:02:01,540 --> 01:02:05,400 Netejar això, Desa i ara puja als guions. 374 01:02:05,400 --> 01:02:07,500 >> I ara, deixa anar a sonar. 375 01:02:07,500 --> 01:02:09,002 Deixin-me donar-los un nom. 376 01:02:09,002 --> 01:02:12,440 Vaig a trucar a aquest ai. 377 01:02:12,440 --> 01:02:13,840 I ara jugar ai so. 378 01:02:13,840 --> 01:02:16,520 Observi que apareix en el petit menú desplegable. 379 01:02:16,520 --> 01:02:17,612 Anem a veure. 380 01:02:17,612 --> 01:02:20,444 >> [AI] 381 01:02:20,444 --> 01:02:24,377 >> [El] 382 01:02:24,377 --> 01:02:25,835 Però podem canviar la seva samarreta sobre la marxa. 383 01:02:25,835 --> 01:02:28,106 Podem ser dues vegades tan molest. 384 01:02:28,106 --> 01:02:31,760 >> [AI] 385 01:02:31,760 --> 01:02:35,332 >> O si ho fem com 1.000 passos a la vegada-- 386 01:02:35,332 --> 01:02:39,900 387 01:02:39,900 --> 01:02:40,670 >> D'ACORD. 388 01:02:40,670 --> 01:02:42,295 Així que anem a deixar que un de sol. 389 01:02:42,295 --> 01:02:45,290 Així que de nou, l'edifici I blocks-- començat amb una cosa molt simple, 390 01:02:45,290 --> 01:02:47,930 i després he afegit una característica, afegit una característica, una característica afegida. 391 01:02:47,930 --> 01:02:50,721 I ja no ha de preocupar per la forma en la primera d'aquestes característiques 392 01:02:50,721 --> 01:02:53,690 es va posar en pràctica a mesura que continuo coses a la capa a la part superior. 393 01:02:53,690 --> 01:02:55,430 Així que, de fet, em deixa fer una altra aquí. 394 01:02:55,430 --> 01:03:00,580 Déjame anar endavant i obrir un arxiu que Vestit per endavant, anomenat ovelles. 395 01:03:00,580 --> 01:03:03,970 >> Per tant, té una mica diferent personatge que s'assembla a això. 396 01:03:03,970 --> 01:03:07,370 I veurem si no puc fer alguna cosa utilitzant un comptador 397 01:03:07,370 --> 01:03:09,310 en aquest cas-- una variable anomenada. 398 01:03:09,310 --> 01:03:15,540 Vaig a seguir endavant i sota sigui el cas: vaig a buscar una bandera verda ha fet clic. 399 01:03:15,540 --> 01:03:19,030 Llavors me n'aniré a les dades, que sé des de simplement jugant abans, 400 01:03:19,030 --> 01:03:20,214 és on les variables són. 401 01:03:20,214 --> 01:03:21,880 I vaig a seguir endavant i arrossegar aquest. 402 01:03:21,880 --> 01:03:25,144 >> Així que una variable anomenada comptador, i Vaig a inicialitzar a zero. 403 01:03:25,144 --> 01:03:27,560 Puc dir-qualsevol cosa-- xo I o z-- però en la programació, 404 01:03:27,560 --> 01:03:30,410 trucar a alguna cosa en un semànticament forma útil, com comptador, 405 01:03:30,410 --> 01:03:34,540 que descriu el que és, es tracta d'una molt més fàcil de llegir el seu codi més tard. 406 01:03:34,540 --> 01:03:37,460 Déjame seguir endavant i aconseguir un bloc per sempre aquí. 407 01:03:37,460 --> 01:03:41,289 I em va deixar anar a les mirades pàgina i fer un bloc de Say. 408 01:03:41,289 --> 01:03:44,330 Però el millor de les variables és el no ha de només ha d'escriure alguna cosa 409 01:03:44,330 --> 01:03:47,850 com hola món, que ja hem fet, jo puc anar al seu lloc de Dades 410 01:03:47,850 --> 01:03:50,690 i arrossegament el meu variables, i fins i tot encara que la forma no prou 411 01:03:50,690 --> 01:03:53,000 semblar que s'ha d'ajustar, que creixerà per omplir. 412 01:03:53,000 --> 01:03:58,396 I només vaig a dir el comptador per a una spoiler-- second-- que va a explicar. 413 01:03:58,396 --> 01:04:00,380 Direm que durant un segon. 414 01:04:00,380 --> 01:04:02,840 A continuació, vaig a anar i faci-ho esperar durant un segon, 415 01:04:02,840 --> 01:04:04,650 per la qual cosa no compta massa ràpid. 416 01:04:04,650 --> 01:04:08,430 I a continuació, finalment, canviar comptador per un-- en altres paraules, 417 01:04:08,430 --> 01:04:13,520 incrementar el comptador per un un valor addicional i fer això per sempre. 418 01:04:13,520 --> 01:04:16,129 >> Així les ovelles també, com una programador, compta des de 0. 419 01:04:16,129 --> 01:04:20,350 420 01:04:20,350 --> 01:04:23,740 I si esperem prou, que va a fer això per sempre. 421 01:04:23,740 --> 01:04:27,740 Però això no és del tot cert, perquè de fet, com anem a descobrir en la setmana un, 422 01:04:27,740 --> 01:04:31,871 sencers i els ordinadors, més en general, tècnicament només tenen un finite-- així, 423 01:04:31,871 --> 01:04:33,829 més aviat, quan els ordinadors que representen nombres enters, 424 01:04:33,829 --> 01:04:35,670 només tenen un nombre finit de bits. 425 01:04:35,670 --> 01:04:37,860 Aquestes bombetes allà només pot comptar tan alt 426 01:04:37,860 --> 01:04:39,239 abans que estigui fora de les bombetes. 427 01:04:39,239 --> 01:04:41,590 I un ordinador també, Només té tanta memòria, 428 01:04:41,590 --> 01:04:44,640 Només ha tants transistors, de manera que només pot comptar tan alt. 429 01:04:44,640 --> 01:04:47,409 >> Així resulta que les ovelles, Crec, compti fins 2000000000 430 01:04:47,409 --> 01:04:48,409 o alguna cosa bastant gran. 431 01:04:48,409 --> 01:04:50,325 Pel que no anem a esperar que això passi. 432 01:04:50,325 --> 01:04:54,850 Però amb el temps alguns errors succeirà que pot tenir un món molt real 433 01:04:54,850 --> 01:04:55,970 ramificacions. 434 01:04:55,970 --> 01:04:58,861 Però més enllà de les ovelles, que simplement introdueix una variable. 435 01:04:58,861 --> 01:05:01,110 Seguirem endavant i obrir cosa que vaig fer amb antelació 436 01:05:01,110 --> 01:05:07,430 aquí es diu Pet el Cat-- Acariciar al gat per aquí. 437 01:05:07,430 --> 01:05:10,420 I noti aquí és uns pocs blocs, però quan la bandera verda 438 01:05:10,420 --> 01:05:12,474 es fa clic, sempre fent el següent. 439 01:05:12,474 --> 01:05:15,265 Si tocarà el ratolí pointer-- pel que el cursor a la pantalla, 440 01:05:15,265 --> 01:05:18,529 el joc arrow-- miol so i després esperar dos segons. 441 01:05:18,529 --> 01:05:19,570 I just fer això per sempre. 442 01:05:19,570 --> 01:05:22,619 Només ha d'esperar constantment per veure si el pointer-- 443 01:05:22,619 --> 01:05:24,710 si el gat està en contacte amb el punter. 444 01:05:24,710 --> 01:05:26,060 >> Així que prémer el botó Reproduir. 445 01:05:26,060 --> 01:05:26,920 No passa res. 446 01:05:26,920 --> 01:05:28,980 Però a mesura que moc el cursor sobre el gat, 447 01:05:28,980 --> 01:05:31,960 >> [Meowing] 448 01:05:31,960 --> 01:05:34,750 >> I si em mut a les escombraries, no acariciar el gat més. 449 01:05:34,750 --> 01:05:38,090 Així que una mica de lògica condicional niat dins d'un bucle. 450 01:05:38,090 --> 01:05:43,070 Què hi ha d'aquest exemple, deliberadament No es diu acariciar al gat? 451 01:05:43,070 --> 01:05:45,253 Què és això va a fer? 452 01:05:45,253 --> 01:05:47,880 >> [Meowing] 453 01:05:47,880 --> 01:05:50,215 >> Per què no acariciar al gat? 454 01:05:50,215 --> 01:05:59,440 >> [Meowing] 455 01:05:59,440 --> 01:06:00,699 >> D'ACORD. 456 01:06:00,699 --> 01:06:03,880 Així que aquest és un exemple d'un cas d'una altra cosa. 457 01:06:03,880 --> 01:06:06,482 És un punt de decisió i perquè està assegut al bucle, 458 01:06:06,482 --> 01:06:07,690 els dos estan sent marcada. 459 01:06:07,690 --> 01:06:08,280 És això cert? 460 01:06:08,280 --> 01:06:08,760 És això cert? 461 01:06:08,760 --> 01:06:09,250 És això cert? 462 01:06:09,250 --> 01:06:09,791 És això cert? 463 01:06:09,791 --> 01:06:11,880 I, finalment, una de els que es va a aplicar 464 01:06:11,880 --> 01:06:16,480 i el que s'escolta ja sigui el miol o el rugit del lleó en aquest cas. 465 01:06:16,480 --> 01:06:21,400 >> Bé, anem a fer una mica més d'un de luxe que vaig fer amb antelació demasiado-- fils. 466 01:06:21,400 --> 01:06:25,210 Així que un fil és només un cosa que un ordinador pot fer. 467 01:06:25,210 --> 01:06:29,349 Així, un programa multi-roscat és un programa que pot fer diverses coses alhora. 468 01:06:29,349 --> 01:06:31,140 I tots aquests exemples fins ara han tingut 469 01:06:31,140 --> 01:06:35,980 només un script, pel que speak-- un programa com aquest aquí. 470 01:06:35,980 --> 01:06:38,810 Però cal notar que aquest programa té 2 sprites, dos caràcters. 471 01:06:38,810 --> 01:06:40,020 Un d'ells és un ocell. 472 01:06:40,020 --> 01:06:40,870 Un d'ells és un gat. 473 01:06:40,870 --> 01:06:45,080 >> I adonar-se quan faig clic en aquestes baix esquerra, cadascun té les seves pròpies seqüències d'ordres 474 01:06:45,080 --> 01:06:47,120 o programes associats amb ells. 475 01:06:47,120 --> 01:06:49,420 I totes dues coses programes, avís, començament 476 01:06:49,420 --> 01:06:52,600 amb la bandera quan està verd clicked-- anem a veure el cat-- 477 01:06:52,600 --> 01:06:54,030 quan es fa clic a bandera verda. 478 01:06:54,030 --> 01:06:58,220 I així, de fet, quan em va colpejar el joc ara, dues coses van a succeir alhora. 479 01:06:58,220 --> 01:07:01,750 El gat i l'ocell són alhora funcionarà alhora 480 01:07:01,750 --> 01:07:03,815 per crear aquest efecte. 481 01:07:03,815 --> 01:07:05,440 I es pot imaginar el que està passant. 482 01:07:05,440 --> 01:07:08,340 Hi ha un llaç i l'ocell i el gat estan en un bucle. 483 01:07:08,340 --> 01:07:11,270 L'au s'acaba rebotant com Que era abans quan vaig dir ai. 484 01:07:11,270 --> 01:07:13,040 Però el gat té clarament un avantatge. 485 01:07:13,040 --> 01:07:16,040 Hi ha un altre bloc de detecció assenyala que el gat deliberadament 486 01:07:16,040 --> 01:07:19,836 l'ocell en aquest cas aquí. 487 01:07:19,836 --> 01:07:22,960 Així que podríem esmicolar, mirant a través d'aquests blocs, el que està succeint. 488 01:07:22,960 --> 01:07:25,460 Però l'ingredient clau aquí és un. 489 01:07:25,460 --> 01:07:28,520 L'ocell, de manera que aquest joc no és completament o boring-- aquest animation-- 490 01:07:28,520 --> 01:07:30,060 comença a una adreça aleatòria. 491 01:07:30,060 --> 01:07:32,890 I l'equip s'està recuperant un nombre entre 90 i 180 492 01:07:32,890 --> 01:07:36,110 en essència, pel que és una mica animació diferent cada vegada. 493 01:07:36,110 --> 01:07:39,480 >> I després notar aquí, si el gat està en contacte amb l'au, a continuació, 494 01:07:39,480 --> 01:07:42,030 reproduir el lleó de quatre sound-- el rugit. 495 01:07:42,030 --> 01:07:46,330 Però mentrestant a l'au de paleta, tenim aquest. 496 01:07:46,330 --> 01:07:49,229 Per sempre, si no es toca el gat, simplement mantenir-se en moviment tres passos. 497 01:07:49,229 --> 01:07:50,770 I llavors aquí és una altra peça del trencaclosques. 498 01:07:50,770 --> 01:07:52,030 Si es troba a la vora, rebotar. 499 01:07:52,030 --> 01:07:54,840 Pel que l'au és només una mica ocupant-se del seu propi negoci, 500 01:07:54,840 --> 01:07:57,330 simplement volar al voltant i rebotant, i és realment 501 01:07:57,330 --> 01:08:01,780 el gat que tenia la lògica condicional per determinar si s'havia assolit l'au. 502 01:08:01,780 --> 01:08:02,280 Tot bé. 503 01:08:02,280 --> 01:08:08,800 Així que farem una altra aquí, aquest es diu hi hi hi. 504 01:08:08,800 --> 01:08:15,100 I aquesta d'aquí només fa això en un bucle infinit. 505 01:08:15,100 --> 01:08:18,925 Però notice-- Com aturem aquest programa molt molest? 506 01:08:18,925 --> 01:08:21,600 507 01:08:21,600 --> 01:08:22,640 Prem la barra d'espai. 508 01:08:22,640 --> 01:08:27,990 Perquè si ho faig, program-- la mà esquerra 509 01:08:27,990 --> 01:08:31,550 notarà que està en constant listening-- és l'espai de premsa tecla. 510 01:08:31,550 --> 01:08:34,090 Si prem la barra d'espai, i si és així, què fer? 511 01:08:34,090 --> 01:08:35,980 Es fa una tècnica molt comuna. 512 01:08:35,980 --> 01:08:38,590 S'estableix una variable igual a algun valor. 513 01:08:38,590 --> 01:08:39,741 Però canvia aquest valor. 514 01:08:39,741 --> 01:08:41,490 [? Així aparença?] basat en el I shape-- 515 01:08:41,490 --> 01:08:43,160 tenir una variable que escriure amb antelació anomenada 516 01:08:43,160 --> 01:08:44,770 Silenciat, que es limita a dir sí o no. 517 01:08:44,770 --> 01:08:45,880 Es silencia el so o no? 518 01:08:45,880 --> 01:08:46,990 Cert o fals? 519 01:08:46,990 --> 01:08:51,580 I l'avís, el que dic això- si silenciat és zero, a continuació, canviar a un, 520 01:08:51,580 --> 01:08:53,840 un altre conjunt de silenci a zero. 521 01:08:53,840 --> 01:08:55,540 Així que només tapa el valor de zero a un. 522 01:08:55,540 --> 01:08:58,320 Podria haver de canviar done-- de dos a tres i 01:57 523 01:08:58,320 --> 01:09:00,162 o quatre cinc o quatre a sis. 524 01:09:00,162 --> 01:09:01,870 Però no importa el que els números que faig servir, 525 01:09:01,870 --> 01:09:04,090 sempre que segueixo canviant-el contrari. 526 01:09:04,090 --> 01:09:07,290 >> I la majoria ho faria qualsevol programador només triar zero i un-- fals i vertader, 527 01:09:07,290 --> 01:09:09,510 apagat i en-- per representar a aquest. 528 01:09:09,510 --> 01:09:10,930 I això encara està en marxa. 529 01:09:10,930 --> 01:09:12,190 Si el colpeig la barra d'espai de nou 530 01:09:12,190 --> 01:09:13,590 >> [SEGELL SONS] 531 01:09:13,590 --> 01:09:15,440 >> El programa encara s'està executant. 532 01:09:15,440 --> 01:09:18,400 A causa de que hi ha aquest altre script que diu, sempre feu el següent. 533 01:09:18,400 --> 01:09:21,390 534 01:09:21,390 --> 01:09:24,770 Si la variable és igual a silenciat zero-- pel que si vostè no està silenciat 535 01:09:24,770 --> 01:09:29,609 és la lògica-- si és falsa o no, a continuació, reproduir el so, 536 01:09:29,609 --> 01:09:30,650 perquè vostè no està silenciat. 537 01:09:30,650 --> 01:09:33,358 Vostè ha de reproduir el so i després pensar hi hi hi durant dos segons 538 01:09:33,358 --> 01:09:35,790 i després esperar, i fer-ho una i altra vegada i una altra. 539 01:09:35,790 --> 01:09:40,760 >> I així, d'aquesta manera tenim una forma de A-- persones per als programes per interactuar. 540 01:09:40,760 --> 01:09:43,120 I no han de ser com a data com d'altres. 541 01:09:43,120 --> 01:09:46,280 De fet, apuntant around-- sense joc de paraules intended-- 542 01:09:46,280 --> 01:09:49,250 algú gasta una enorme quantitat de temps a l'Internet implementació 543 01:09:49,250 --> 01:09:51,580 PokemonGo en Scratch. 544 01:09:51,580 --> 01:09:55,440 Fins i tot li geolocates en Cambridge o Allston aquí. 545 01:09:55,440 --> 01:10:03,120 Així que si vols veure el que la gent massa pot fer és això- menú molt elegant. 546 01:10:03,120 --> 01:10:04,780 Feu clic a aquí. 547 01:10:04,780 --> 01:10:07,430 >> Aquest sóc jo amb els meus tecles de fletxa ara. 548 01:10:07,430 --> 01:10:09,446 Vaig a anar després d'això. 549 01:10:09,446 --> 01:10:09,946 Feu clic. 550 01:10:09,946 --> 01:10:12,949 551 01:10:12,949 --> 01:10:14,240 I ara fa clic al Pokeball. 552 01:10:14,240 --> 01:10:17,130 553 01:10:17,130 --> 01:10:20,260 És a dir, jo crec que ets se suposa que feu clic al Pokeball. 554 01:10:20,260 --> 01:10:20,760 Tot bé. 555 01:10:20,760 --> 01:10:22,680 Així que ho vaig fer. 556 01:10:22,680 --> 01:10:23,950 Puc anar per aquí. 557 01:10:23,950 --> 01:10:27,790 I aquesta persona implementat alguns més Pokéballs més de tres aquí-- Pokéballs. 558 01:10:27,790 --> 01:10:29,950 >> Anem a publicar un enllaç a aquesta en línia perquè pugui jugar. 559 01:10:29,950 --> 01:10:32,364 Però notificació no és només alguns blocs de construcció bàsics. 560 01:10:32,364 --> 01:10:33,780 S'assembla molt més elegant, i ho és. 561 01:10:33,780 --> 01:10:35,905 Això és impressionant i més del que ho faria normalment 562 01:10:35,905 --> 01:10:37,740 esperar, sens dubte per a un problema d'ajust a zero. 563 01:10:37,740 --> 01:10:40,809 No tinc ni idea de quant temps aquesta persona va passar en línia. 564 01:10:40,809 --> 01:10:41,850 Però tot és només un bucle. 565 01:10:41,850 --> 01:10:43,180 Hi ha un joc de so. 566 01:10:43,180 --> 01:10:44,850 Hi ha una mena de bucle l'escolta de si estic 567 01:10:44,850 --> 01:10:47,558 colpejar la fletxa cap amunt o cap avall el fletxa oa l'esquerra ia la dreta, 568 01:10:47,558 --> 01:10:49,834 i després, si és així, s'està movent que cert nombre de píxels. 569 01:10:49,834 --> 01:10:51,750 I després, si faig clic a un altre element sprite, hi ha 570 01:10:51,750 --> 01:10:53,390 algun tipus de condició si existeix. 571 01:10:53,390 --> 01:10:54,806 Sí, això s'està posant massa intens. 572 01:10:54,806 --> 01:10:56,100 Anem a parar. 573 01:10:56,100 --> 01:10:57,750 És tots aquests blocs de construcció bàsics. 574 01:10:57,750 --> 01:11:01,530 No hi ha altres ingredients diferents que les que hem vist ja. 575 01:11:01,530 --> 01:11:04,670 >> I no obstant això, aquí, deixa fer un últim conjunt d'exemples 576 01:11:04,670 --> 01:11:06,960 que pinta un quadre massa del que es pot fer aquí. 577 01:11:06,960 --> 01:11:10,481 Heus aquí un programa molt simple que simplement fa això- la tos, la tos, la tos. 578 01:11:10,481 --> 01:11:12,480 Es basa exclusivament en el hem vist fins ara, 579 01:11:12,480 --> 01:11:14,570 On està l'òbvia oportunitat de millora. 580 01:11:14,570 --> 01:11:15,570 Aquest programa és correcte. 581 01:11:15,570 --> 01:11:17,980 Es tus tres vegades, que és el que pretenia. 582 01:11:17,980 --> 01:11:19,650 Però està ben aplicada. 583 01:11:19,650 --> 01:11:20,600 Està mal dissenyat. 584 01:11:20,600 --> 01:11:22,000 Per què? 585 01:11:22,000 --> 01:11:22,500 Sí. 586 01:11:22,500 --> 01:11:23,230 No és un bucle. 587 01:11:23,230 --> 01:11:24,610 I no és tant que no és un bucle, 588 01:11:24,610 --> 01:11:26,400 és que hi ha una gran quantitat de redundància. 589 01:11:26,400 --> 01:11:28,830 No es copia i es codi pegat, per dir-ho. 590 01:11:28,830 --> 01:11:31,830 I la solució probablement és de fet un bucle. 591 01:11:31,830 --> 01:11:34,350 Així que permetin-me anar per davant i millorar en aquest aspecte. 592 01:11:34,350 --> 01:11:36,250 I vaig a arrossegar aquests per aquí. 593 01:11:36,250 --> 01:11:39,986 Déjame seguir endavant i aconseguir una repetició bloc, canviï això a tres. 594 01:11:39,986 --> 01:11:41,860 Vaig a llençar a les escombraries alguns d'aquests blocs. 595 01:11:41,860 --> 01:11:43,150 >> I s'adonarà que és bastant intuïtiva. 596 01:11:43,150 --> 01:11:45,691 Vostè arrossegar i deixar anar i coses apareixen i desapareixen amb el temps. 597 01:11:45,691 --> 01:11:49,170 I jo només puc arrossegar això aquí, i ara tinc encara una versió més neta. 598 01:11:49,170 --> 01:11:50,730 Però saps què? 599 01:11:50,730 --> 01:11:52,940 Hi ha aquesta oportunitat ara per abstraction-- 600 01:11:52,940 --> 01:11:56,350 per començar a definir un nou vocabulari que el MIT no va anticipar. 601 01:11:56,350 --> 01:11:59,110 Hi ha esperar i repetir i sempre i si, 602 01:11:59,110 --> 01:12:02,590 però el que si vull introduir la paraula tos com un bloc? 603 01:12:02,590 --> 01:12:06,230 I si vull una peça del trencaclosques el propòsit a la vida és la tos? 604 01:12:06,230 --> 01:12:10,720 >> Bé, anem a veure aquesta versió aquí, el qual vaig fer com segueix. 605 01:12:10,720 --> 01:12:13,579 Per art de màgia, he creat aquesta peça del trencaclosques aquí, 606 01:12:13,579 --> 01:12:14,870 el qual les ratllades li permet fer. 607 01:12:14,870 --> 01:12:16,787 I, en efecte C i Python i JavaScript són 608 01:12:16,787 --> 01:12:18,370 va a permetre fer això també. 609 01:12:18,370 --> 01:12:21,830 Podeu crear la seva pròpia peces que crida amb el que vol. 610 01:12:21,830 --> 01:12:24,890 En aquest cas, la tos se sent com una definició raonable. 611 01:12:24,890 --> 01:12:27,880 I després, amb aquestes peces a baix aquí es pot definir el que significa. 612 01:12:27,880 --> 01:12:30,290 >> Em arrossegament o les caigudes de aquesta gamma de colors més aquí-- 613 01:12:30,290 --> 01:12:33,500 blocks-- aquesta gran porpra bloc, on he escrit en la tos 614 01:12:33,500 --> 01:12:35,290 com el nom de la meva nova peça del trencaclosques. 615 01:12:35,290 --> 01:12:39,920 I llavors jo estic dient cada vegada que un usuari crida a aquesta nova peça del trencaclosques de la tos, 616 01:12:39,920 --> 01:12:41,770 fer alguna cosa que dir i una espera. 617 01:12:41,770 --> 01:12:46,160 I així fins aquí al meu bloc de repetició, Jo només puc tossir tres vegades. 618 01:12:46,160 --> 01:12:49,972 >> I jo diria, sobretot Si ara s'oculta aquest detall. 619 01:12:49,972 --> 01:12:51,430 A qui li importa com s'implementa la tos? 620 01:12:51,430 --> 01:12:54,390 Tot el que importa com programador que pugui tossir. 621 01:12:54,390 --> 01:12:56,280 No m'importa com dir és implementat. 622 01:12:56,280 --> 01:12:58,620 Jo només importa que la gat pot dir alguna cosa. 623 01:12:58,620 --> 01:13:02,720 Que pugui abstreure aquest detall i només se centren en el que està a la pantalla aquí. 624 01:13:02,720 --> 01:13:04,400 Però puc portar això un pas més enllà. 625 01:13:04,400 --> 01:13:08,070 >> Recordeu que aquí, tinc implementat el bucle tres vegades. 626 01:13:08,070 --> 01:13:11,560 Però el que si enlloc agafo aquesta versió? 627 01:13:11,560 --> 01:13:14,640 ¿I si en comptes en aquesta versió aquí, 628 01:13:14,640 --> 01:13:18,730 Acabo de canviar la meva peça del trencaclosques per prendre un argument i l'entrada en si mateix? 629 01:13:18,730 --> 01:13:21,100 I que l'entrada pot ser igual nombre tres. 630 01:13:21,100 --> 01:13:24,580 Així que ara, si jo escric un programa i vull que el gat per a la tos, 631 01:13:24,580 --> 01:13:28,270 De fet, em puc dir el trencaclosques piece quantes vegades al tossir, 632 01:13:28,270 --> 01:13:31,990 perquè en el fons aquí, una columbòfil versió d'aquestes peces del trencaclosques d'encàrrec 633 01:13:31,990 --> 01:13:34,500 em permet especificar que ments presa realitat 634 01:13:34,500 --> 01:13:36,951 1 input-- pren un argument com aquest. 635 01:13:36,951 --> 01:13:37,700 I saps què? 636 01:13:37,700 --> 01:13:38,890 Potser m'adono, espera un minut. 637 01:13:38,890 --> 01:13:40,680 La tos és el same-- és fonamentalment 638 01:13:40,680 --> 01:13:42,120 la mateixa idea que l'esternut. 639 01:13:42,120 --> 01:13:44,040 És només una diferent paraula a la pantalla. 640 01:13:44,040 --> 01:13:46,550 Que pugui abstreure i aplicant 641 01:13:46,550 --> 01:13:48,750 aquesta versió final d'un tos, que a primera vista 642 01:13:48,750 --> 01:13:50,660 és molt més complexa que mira. 643 01:13:50,660 --> 01:13:52,140 Però Recordeu el que he fet. 644 01:13:52,140 --> 01:13:55,930 Tinc ara generalized-- genericized realmente-- aquesta peça del trencaclosques 645 01:13:55,930 --> 01:13:59,900 a dir-dir paraula n vegades. 646 01:13:59,900 --> 01:14:04,410 >> I ara tinc dues noves peces del trencaclosques aquí baix definir la tos n vegades. 647 01:14:04,410 --> 01:14:06,790 I què fa la funció de la tos? 648 01:14:06,790 --> 01:14:08,420 Què fa el meu peça del trencaclosques d'encàrrec? 649 01:14:08,420 --> 01:14:11,996 Simplement truca al bloc diguem, passant per la paraula que vull dir, 650 01:14:11,996 --> 01:14:13,870 passant en el nombre de vegades que vull dir. 651 01:14:13,870 --> 01:14:18,210 Perquè ara puc posar en pràctica esternudar, simplement dient achoo, 652 01:14:18,210 --> 01:14:20,320 en aquest cas, un nombre de vegades. 653 01:14:20,320 --> 01:14:22,360 >> I, llavors, capes i capes. 654 01:14:22,360 --> 01:14:25,690 I de nou, la clau aquí no és la forma en què he implementat, però el fet 655 01:14:25,690 --> 01:14:28,070 que si jo només, literalment, moure fora de la pantalla, 656 01:14:28,070 --> 01:14:31,280 mira que si no simples bastant el meu programa ara es veu. 657 01:14:31,280 --> 01:14:33,930 Perquè fa el que diu, he abstret 658 01:14:33,930 --> 01:14:37,640 lluny del que és dins d'aquesta caixa negre. que passa a ser una caixa porpra aquí, 659 01:14:37,640 --> 01:14:41,430 però he obstruïda de distància que hi ha dins perquè no m'importa com funciona. 660 01:14:41,430 --> 01:14:43,650 Jo només importa ara que funciona. 661 01:14:43,650 --> 01:14:46,375 >> I, en efecte, en el problema assigna el valor zero, això és exactament 662 01:14:46,375 --> 01:14:49,250 el tipus d'estratificació de les idees aneu tenir l'oportunitat d'explorar. 663 01:14:49,250 --> 01:14:53,510 És exactament l'oportunitat de aplicar tècniques de resolució de problemes, 664 01:14:53,510 --> 01:14:55,550 al que és, probablement, una ambient desconegut. 665 01:14:55,550 --> 01:14:57,890 I si no s'ha programat abans o programada abans, 666 01:14:57,890 --> 01:14:59,500 trobareu que hi ha una mica d'alguna cosa 667 01:14:59,500 --> 01:15:00,874 en aquest entorn per a tothom. 668 01:15:00,874 --> 01:15:02,770 I amb conjunt de problemes un en el termini d'una setmana, 669 01:15:02,770 --> 01:15:06,630 realitzarem la transició de centrar en un llenguatge d'alt nivell anomenat 670 01:15:06,630 --> 01:15:09,290 C-- o més aviat una menor llenguatge d'alt nivell anomenat 671 01:15:09,290 --> 01:15:11,347 C-- això és encara més poderosa, tot i que és 672 01:15:11,347 --> 01:15:12,930 una mica més críptica a primera vista. 673 01:15:12,930 --> 01:15:16,740 >> I es donarà compte per TL d'avui: DR, que aquest problema té un set més curt 674 01:15:16,740 --> 01:15:19,880 finestra de temps que els futurs, simplement perquè hauria de buscar que sigui relativament 675 01:15:19,880 --> 01:15:20,420 accessibles. 676 01:15:20,420 --> 01:15:22,211 I no cal preocupar-se si afegir la classe de retard. 677 01:15:22,211 --> 01:15:23,920 Tractarem que en poc temps. 678 01:15:23,920 --> 01:15:28,480 I abans d'aixecar la sessió per a la coca, anem a acabar amb només una mirada de dos minuts 679 01:15:28,480 --> 01:15:30,500 al que li espera aquí a CS50. 680 01:15:30,500 --> 01:15:40,950 681 01:15:40,950 --> 01:17:20,803 [MÚSICA] 682 01:17:20,803 --> 01:17:21,302 Tot bé. 683 01:17:21,302 --> 01:17:22,690 Això és tot per CS50. 684 01:17:22,690 --> 01:17:23,650 Ens veurem aviat. 685 01:17:23,650 --> 01:17:25,526 Coca ara se serveix. 686 01:17:25,526 --> 01:17:28,998 687 01:17:28,998 --> 01:18:14,267 [MÚSICA] 688 01:18:14,267 --> 01:18:16,350 ALTAVEU 17: Ha sentit d'un any sabàtic, cap? 689 01:18:16,350 --> 01:18:29,490 690 01:18:29,490 --> 01:18:31,920 ALTAVEU 18: Potser hi ha més sota el capó. 691 01:18:31,920 --> 01:18:38,279