1 00:00:00,000 --> 00:00:15,059 >> [Reprodución de música] 2 00:00:15,059 --> 00:00:19,170 >> Este é CS50-- Harvard introdución da universidade 3 00:00:19,170 --> 00:00:22,070 ao intelectual empresas de informática 4 00:00:22,070 --> 00:00:23,800 ea arte da programación. 5 00:00:23,800 --> 00:00:27,020 E o meu nome é David Malan, e Eu só estaba a pensar nesta mañá, 6 00:00:27,020 --> 00:00:33,120 foi sorprendentemente 20 anos hoxe desde a última vez que sentou no que vostedes fan agora. 7 00:00:33,120 --> 00:00:33,840 >> Foi 1996. 8 00:00:33,840 --> 00:00:37,550 Eu estaba no segundo ano, e eu estaba tomando CS50 por primeira vez. 9 00:00:37,550 --> 00:00:40,890 E eu aínda non chegara ata o nervio para levalo a min mesmo primeiro ano, 10 00:00:40,890 --> 00:00:42,500 en parte por mor do tempo. 11 00:00:42,500 --> 00:00:44,782 ciencia da computación para min era unha especie de gusto, meh. 12 00:00:44,782 --> 00:00:46,990 Eu estaba un pouco de un geek que crece -Se, pero eu realmente non 13 00:00:46,990 --> 00:00:49,180 ter calquera intelectual interese en que parecía 14 00:00:49,180 --> 00:00:51,920 para ser só unha morea de persoas programando o tempo. 15 00:00:51,920 --> 00:00:53,904 >> E eu estaba con medo de ser honesto. 16 00:00:53,904 --> 00:00:56,820 O curso e ciencia da computación máis xeralmente tiñan e, en certa medida, 17 00:00:56,820 --> 00:01:01,230 aínda ten esa reputación dun campo para coidado, mesmo porque tantos de nós 18 00:01:01,230 --> 00:01:04,410 non está familiarizado con el e non está seguro diso. 19 00:01:04,410 --> 00:01:08,480 E realmente non foi ata que eu compras esta clase que segundo ano fall-- 20 00:01:08,480 --> 00:01:10,880 e, aínda así, eu só inscritos porque o professor-- 21 00:01:10,880 --> 00:01:13,950 un dos meus primeiros mentores, Brian Kernighan agora Princeton-- 22 00:01:13,950 --> 00:01:15,700 permitiume tomar o pase clase falla. 23 00:01:15,700 --> 00:01:18,020 E, de feito, é por iso hoxe permitir e alentar 24 00:01:18,020 --> 00:01:20,030 os alumnos a tomar esta clase sentouse / unsat. 25 00:01:20,030 --> 00:01:22,040 >> E só entón, por final do semestre 26 00:01:22,040 --> 00:01:24,870 deime conta de como, uau, iso non era un campo tan descoñecido. 27 00:01:24,870 --> 00:01:26,850 De feito, este foi un moi estimulante campo, 28 00:01:26,850 --> 00:01:28,970 e máis excitante, especialmente despois 29 00:01:28,970 --> 00:01:32,809 como eu fixo cursos de Artes Dramáticas 101 e latino-A 30 00:01:32,809 --> 00:01:34,600 e, finalmente, arqueoloxía escola do graduado, 31 00:01:34,600 --> 00:01:37,860 realmente comezar a ver a interseccións deste campo, ordenador 32 00:01:37,860 --> 00:01:41,979 ciencia, coas ciencias humanas, ciencias naturais, artes, medicina, 33 00:01:41,979 --> 00:01:42,520 e similares. 34 00:01:42,520 --> 00:01:44,420 E iso é o que é tan interesante sobre ciencia da computación 35 00:01:44,420 --> 00:01:46,930 en última instancia, como esperamos que vai see-- é a súa aplicabilidade 36 00:01:46,930 --> 00:01:50,280 a eses outros campos, e como pode tomar un pouco do hoxe e do semestre de 37 00:01:50,280 --> 00:01:53,070 ideas e habilidades prácticas de volta para o seu propio dominio, 38 00:01:53,070 --> 00:01:58,200 e realmente explotar esta intersección das artes liberais e ciencias. 39 00:01:58,200 --> 00:02:02,690 >> Así, o 73% de ti, se o último ano é calquera indicación, 40 00:02:02,690 --> 00:02:04,390 nunca tomou un curso de CS antes. 41 00:02:04,390 --> 00:02:06,389 Entón, se, como eu, está sentindo un pouco 42 00:02:06,389 --> 00:02:09,190 medo, ou francamente non está realmente seguro porque está mesmo aquí. 43 00:02:09,190 --> 00:02:11,510 Quizais só seguiu algúns amigos para Sanders agora mesmo. 44 00:02:11,510 --> 00:02:12,490 Isto é totalmente ben. 45 00:02:12,490 --> 00:02:15,059 O obxectivo aquí é conectar vostede e para tranquilizalo lo 46 00:02:15,059 --> 00:02:17,100 que se ollar para á esquerda e á dereita, 47 00:02:17,100 --> 00:02:21,480 vai ver compañeiros con tan pouco ou moita experiencia 48 00:02:21,480 --> 00:02:22,890 que mesmo poida ter. 49 00:02:22,890 --> 00:02:25,280 E, de feito, imos compartir algunhas estatísticas máis tarde hoxe 50 00:02:25,280 --> 00:02:28,120 en canto ao que a demografía de a clase normalmente se parecen. 51 00:02:28,120 --> 00:02:31,440 >> E como engadido reassurance-- e iso nós quero dicir sempre que asumín o curso 52 00:02:31,440 --> 00:02:33,252 algúns anos en ago-- Syllabus do curso 53 00:02:33,252 --> 00:02:35,460 é isto-- que o que en definitiva, asuntos neste curso 54 00:02:35,460 --> 00:02:38,040 non é tanto onde remata -se en relación aos seus compañeiros, 55 00:02:38,040 --> 00:02:43,110 pero onde a semana 11, a fin de a semestre, acaban en relación ao mesmo 56 00:02:43,110 --> 00:02:46,280 a semana 0, que é onde estamos hoxe aquí. 57 00:02:46,280 --> 00:02:48,704 E iso é o que eu entendín todos estes anos. 58 00:02:48,704 --> 00:02:50,620 E eu coñezo unha morea de clases de dicir isto, pero é 59 00:02:50,620 --> 00:02:52,450 especialmente certo en ciencia da computación. 60 00:02:52,450 --> 00:02:55,320 Ao final do día, este campo non é familiar como foi para min 61 00:02:55,320 --> 00:02:58,590 e pode ser para ti, é realmente sobre a resolución de problemas. 62 00:02:58,590 --> 00:03:01,324 E como tal, non teñen este aplicabilidade para outros campos. 63 00:03:01,324 --> 00:03:03,490 E, de feito, se tentásemos para destilar o que iso significa, 64 00:03:03,490 --> 00:03:06,897 esta é a resolución de problemas en esencia, atrévome a dicir. 65 00:03:06,897 --> 00:03:09,480 Hai input-- así que sexa é que está intentando resolver. 66 00:03:09,480 --> 00:03:12,264 Non hai saída, que é esperanza a solución para este problema. 67 00:03:12,264 --> 00:03:14,180 E entón, como sería dicir en ciencia da computación, 68 00:03:14,180 --> 00:03:17,310 hai esa caixa negra no media que non necesariamente 69 00:03:17,310 --> 00:03:19,450 ten que se preocupan o xeito no que funciona. 70 00:03:19,450 --> 00:03:22,230 Vostede mesmo, finalmente, pode aplicar o que está dentro desa caixa. 71 00:03:22,230 --> 00:03:25,194 Pero para fins de hoxe e máis xeralmente na vida, todo o que importa 72 00:03:25,194 --> 00:03:26,610 é que estes problemas son resoltos. 73 00:03:26,610 --> 00:03:29,340 >> E o que esta disciplina é en definitiva, sobre está explotando 74 00:03:29,340 --> 00:03:31,700 a intersección de estas entradas e saídas, 75 00:03:31,700 --> 00:03:34,410 e os chamados algoritmos, como veremos en breve, 76 00:03:34,410 --> 00:03:37,450 que aplican o que é debaixo alí, o capó. 77 00:03:37,450 --> 00:03:40,487 Pero estas entradas e estes outputs-- o que iso realmente significa? 78 00:03:40,487 --> 00:03:43,570 Ben, ao final do día, cómpre dalgún xeito de representar información. 79 00:03:43,570 --> 00:03:46,660 Isto é especialmente certo en un ordenador, que tan extravagante e complexa, xa que 80 00:03:46,660 --> 00:03:48,160 pode parecer, é un dispositivo moi burro. 81 00:03:48,160 --> 00:03:52,240 Leva electricity-- a partir un cable ou unha batería como input-- 82 00:03:52,240 --> 00:03:55,820 e logo, que produce algún respostas pre-programados na pantalla. 83 00:03:55,820 --> 00:03:57,970 >> Pero como é que imos comezar a partir de do principio ao final alí? 84 00:03:57,970 --> 00:03:59,470 Ben, o que é un problema a ser resolto? 85 00:03:59,470 --> 00:04:01,050 Ben, quizais nós pode, en do inicio de calquera parte, 86 00:04:01,050 --> 00:04:02,841 tentar levar atención nunha sala como esta. 87 00:04:02,841 --> 00:04:04,750 Entón eu podería facer como un, dous, tres. 88 00:04:04,750 --> 00:04:07,060 Ou que, se eu fixen iso a sorte de seguir 89 00:04:07,060 --> 00:04:10,560 de myself-- manter o control de coisas- Podería rapidamente quedar sen dedos. 90 00:04:10,560 --> 00:04:14,650 Entón, eu só podería facer hash dun marks-- persoa, dous, tres, catro, cinco, seis, 91 00:04:14,650 --> 00:04:15,431 sete, oito. 92 00:04:15,431 --> 00:04:17,930 E todos temos probablemente feito isto, sexa nas súas mans 93 00:04:17,930 --> 00:04:19,680 ou sobre un anaco de papel. 94 00:04:19,680 --> 00:04:22,140 E iso é realmente só algo chamado notation-- unário 95 00:04:22,140 --> 00:04:26,130 onde se só ten unha letra no seu alfabeto, un ou haxix 96 00:04:26,130 --> 00:04:29,440 marca neste caso, para cada entrada que quere contar, 97 00:04:29,440 --> 00:04:32,330 ten que poñer para abaixo unha delas letters-- destas marcas. 98 00:04:32,330 --> 00:04:32,510 >> Todo ben. 99 00:04:32,510 --> 00:04:34,790 Isto é todo moi ben e bo e non tan complicado. 100 00:04:34,790 --> 00:04:37,800 Pero os ordenadores non son todos que moito máis complicada. 101 00:04:37,800 --> 00:04:40,770 En realidade, a maioría de vostedes probablemente sei aínda se non teño realmente 102 00:04:40,770 --> 00:04:44,080 considerou que iso significa, que ordenadores só entenden ceros 103 00:04:44,080 --> 00:04:45,870 e ones-- o chamado sistema binario. 104 00:04:45,870 --> 00:04:49,390 Nós, seres humanos, por contraste, son tan máis sofisticado na medida 105 00:04:49,390 --> 00:04:51,770 tal como a entendemos ceros mediante noves. 106 00:04:51,770 --> 00:04:55,740 >> Pero aínda se binario é, en primeiro lugar vista, non tan familiarizado, 107 00:04:55,740 --> 00:05:00,330 verifícase que é como os sistemas e as ideas que xa sabemos. 108 00:05:00,330 --> 00:05:02,420 Así, por exemplo, considerar isto. 109 00:05:02,420 --> 00:05:03,896 Esta é só unha secuencia de símbolos. 110 00:05:03,896 --> 00:05:05,770 E todos vós, cando mirando para el, probablemente, 111 00:05:05,770 --> 00:05:09,380 creo 123-- nada realmente interesante alí. 112 00:05:09,380 --> 00:05:11,940 Pero por que é ese número, 123? 113 00:05:11,940 --> 00:05:14,440 Estes son só glyphs en o screen-- só estándares 114 00:05:14,440 --> 00:05:16,387 que alguén podería deseñado ou ingresaran. 115 00:05:16,387 --> 00:05:18,970 Pero se vostede é como eu, vostede probablemente se lembra de escola 116 00:05:18,970 --> 00:05:21,610 que hai unha especie de columnas ou lugares aquí. 117 00:05:21,610 --> 00:05:25,340 Non hai lugar eo do un lugar ten e lugar a centos de. 118 00:05:25,340 --> 00:05:29,820 E a razón que este é 123 e non só un estándar de tres símbolos 119 00:05:29,820 --> 00:05:33,090 é porque, por suposto, se teñen unha na casa dos centos, 120 00:05:33,090 --> 00:05:36,610 fai as contas de 100 veces un, e logo dous no lugar dos dez. 121 00:05:36,610 --> 00:05:41,390 Entón, iso é 10 veces 2, e logo, de tres en o lugar do un e que é 1 veces 3. 122 00:05:41,390 --> 00:05:45,670 E cando engade todos os anteriores, de Por suposto, ten 100 máis 20 máis 3. 123 00:05:45,670 --> 00:05:48,220 >> Entón comezamos con só un nivel de symbols-- un alphabet-- 124 00:05:48,220 --> 00:05:51,670 pero, a continuación, mapeamos significado para que por medio destas columnas. 125 00:05:51,670 --> 00:05:54,450 Ben, parece que ordenadores non son realmente 126 00:05:54,450 --> 00:05:56,300 tan diferente de ti e eu. 127 00:05:56,300 --> 00:06:01,840 Pero en vez de usar potencias de 10, para speak-- 1, 10, 100, 1000, 128 00:06:01,840 --> 00:06:04,330 10.000 lugar e así forth-- realmente 129 00:06:04,330 --> 00:06:08,930 só tes que usar poderes de 2-- así unha, dúas, catro, e logo 130 00:06:08,930 --> 00:06:12,810 se colocarmos máis díxitos, 8, 16, 32, 64, 128, e así por diante. 131 00:06:12,810 --> 00:06:16,050 E así é dicir como un ordenador representaría o número 0, 132 00:06:16,050 --> 00:06:17,300 Así como nos seres humanos. 133 00:06:17,300 --> 00:06:21,660 >> 0, 0, 0-- e probablemente pode adiviñar o patrón de ceros e uns, 134 00:06:21,660 --> 00:06:24,610 Un ordenador só pode falar 0 ou 1-- o 135 00:06:24,610 --> 00:06:29,110 patrón vai representar o número que seres humanos saben 1? 136 00:06:29,110 --> 00:06:30,590 Yeah-- 0, 0, 1. 137 00:06:30,590 --> 00:06:31,090 Todo ben. 138 00:06:31,090 --> 00:06:35,900 Así, 0, 0, 1 é como nós representamos 1, de modo que pode estar inclinado logo 139 00:06:35,900 --> 00:06:39,510 para representar o número 2, se ten lugar a catro do lugar e os dous de 140 00:06:39,510 --> 00:06:48,290 como a un lugar, pode dicir, ben, se tivésemos un 1 no lugar do un, 141 00:06:48,290 --> 00:06:50,430 e agora queremos cóntanse a 2, pode 142 00:06:50,430 --> 00:06:53,310 facelo e deixar que este é un cero. 143 00:06:53,310 --> 00:06:56,397 Pero está claro que iso non é así o sistema decimal funciona tanto. 144 00:06:56,397 --> 00:06:58,230 Se pór un díxito ambas as columnas, 145 00:06:58,230 --> 00:06:59,563 ten que facer a aritmética. 146 00:06:59,563 --> 00:07:01,930 Entón, o número fixo I accidentalmente só representan? 147 00:07:01,930 --> 00:07:06,710 >> Entón é 3, porque 2 veces 1 máis 1 1 veces, por suposto, ofrécenos tres. 148 00:07:06,710 --> 00:07:08,340 Polo tanto, este sería dous. 149 00:07:08,340 --> 00:07:12,730 O bit tipo de aletas, por así dicir, como 0 convértese nun, moi parecido un 9 papeis máis 150 00:07:12,730 --> 00:07:14,840 e se fai un 0 cando levar a 1. 151 00:07:14,840 --> 00:07:16,510 Este sería, entón, tres claro. 152 00:07:16,510 --> 00:07:20,170 Four-- algo interesante acontece, onde os rolar 153 00:07:20,170 --> 00:07:21,750 e transportar a 1, por así dicir. 154 00:07:21,750 --> 00:07:23,320 Entón, iso, por suposto, é de 4. 155 00:07:23,320 --> 00:07:25,160 >> Pero se avance rápido agora, Cal é o maior número vai 156 00:07:25,160 --> 00:07:26,660 ser un equipo que pode representar? 157 00:07:26,660 --> 00:07:30,420 158 00:07:30,420 --> 00:07:32,380 Entón é só sete neste caso, non? 159 00:07:32,380 --> 00:07:35,570 Porque ten unha en catro, un en dous, un a un, nun. 160 00:07:35,570 --> 00:07:36,900 Entón, iso é 4 máis 2 máis 1. 161 00:07:36,900 --> 00:07:37,972 Así que lle dá sete. 162 00:07:37,972 --> 00:07:39,680 E, de feito, sería parecer a primeira vista 163 00:07:39,680 --> 00:07:43,750 que os ordenadores poden contar non superior a esta. 164 00:07:43,750 --> 00:07:45,210 >> Pero iso, claro, non é verdade. 165 00:07:45,210 --> 00:07:48,243 O que nós humanos facemos cando quere a conta máis elevada do que como 999? 166 00:07:48,243 --> 00:07:51,000 167 00:07:51,000 --> 00:07:53,900 Só ten que levar a un e só engadir un cuarto díxito á esquerda. 168 00:07:53,900 --> 00:07:55,070 E así, en realidade poderiamos. 169 00:07:55,070 --> 00:07:57,900 Poderiamos ter un oito de lugar e un lugar de un día 16, 170 00:07:57,900 --> 00:08:02,000 e lugar a 32 de 64, 128-- e pode só ter en curso ata o infinito. 171 00:08:02,000 --> 00:08:04,640 Entón, eses ceros e ones-- o chamado binario system-- 172 00:08:04,640 --> 00:08:10,290 son o que un científico da computación sería xeralmente chamamos un pouco, ou díxito binario. 173 00:08:10,290 --> 00:08:13,590 >> Pero agora, como é que imos comezar a partir do concepto ou os gráficos destas cousas 174 00:08:13,590 --> 00:08:14,620 a un ordenador real? 175 00:08:14,620 --> 00:08:17,170 Parece que estamos a saltar unha etapa aquí. 176 00:08:17,170 --> 00:08:20,210 Ben, a única entrada ao final do día, para o meu portátil aquí 177 00:08:20,210 --> 00:08:22,060 é este fluxo de electricidade. 178 00:08:22,060 --> 00:08:24,560 Mesmo se foi un longo tempo dende que penso sobre 179 00:08:24,560 --> 00:08:26,580 ou nunca pensou en como a electricidade funciona, 180 00:08:26,580 --> 00:08:30,909 hai electróns que flúen dentro ou a fóra, e ese é o meu tipo de entrada. 181 00:08:30,909 --> 00:08:34,659 >> Entón, se isto é todo o que somos recibindo como entrada aquí, 182 00:08:34,659 --> 00:08:36,830 o que podemos facer con esa información? 183 00:08:36,830 --> 00:08:40,040 Así, poderiamos pensar nun cero como só unha ausencia de electricidade. 184 00:08:40,040 --> 00:08:42,540 Nada é flowinw, nada é en movemento, nada está a suceder. 185 00:08:42,540 --> 00:08:44,690 Isto é só o patrón state-- cero. 186 00:08:44,690 --> 00:08:48,200 Pero se hai electricidade fluíndo, por que non só arbitrariamente, senón global 187 00:08:48,200 --> 00:08:50,250 consistente, chama iso dun. 188 00:08:50,250 --> 00:08:54,760 >> Entón, simplemente por ter ningún poder, temos un cero, si poder, 189 00:08:54,760 --> 00:08:57,520 temos unha um-- ningún poder, si poder. 190 00:08:57,520 --> 00:09:01,520 E deste xeito, usando algo máis físico ou electrónico 191 00:09:01,520 --> 00:09:05,340 comezamos a aplicar esa noción de algo, quere ser un ou cero. 192 00:09:05,340 --> 00:09:07,230 De feito, poderiamos só facelo aquí. 193 00:09:07,230 --> 00:09:10,590 non aquí, eu teño tres, pero oito lámpadas, cada unha das cales 194 00:09:10,590 --> 00:09:11,810 ten a súa propia chave. 195 00:09:11,810 --> 00:09:15,760 >> E entón se eu quería representar o número sete aquí, 196 00:09:15,760 --> 00:09:18,510 Podería chamar estes tres lámpadas. 197 00:09:18,510 --> 00:09:21,470 E, de feito, dentro meu ordenador é de millóns, 198 00:09:21,470 --> 00:09:25,650 millóns de cousas que son só menor que, chamados transistores, 199 00:09:25,650 --> 00:09:27,330 switches, que acaba de activar e desactivar. 200 00:09:27,330 --> 00:09:30,420 Entón, estas son big-- relativamente interruptores big-- dentro da miña laptop-- 201 00:09:30,420 --> 00:09:32,150 moitos, moitos, moitos, moitos máis interruptores. 202 00:09:32,150 --> 00:09:35,160 Pero todos eles fan é exactamente isso-- transformar algo, chame algo fóra. 203 00:09:35,160 --> 00:09:38,076 E, como tal, un ordenador pode representar, cos millóns ou billóns 204 00:09:38,076 --> 00:09:40,480 de transistores, lotes e lotes de ceros e uns. 205 00:09:40,480 --> 00:09:43,160 E non hai outro hardware aínda que permite gardar información de longo prazo, 206 00:09:43,160 --> 00:09:45,243 de xeito que cando tira o conectar, non perde-lo. 207 00:09:45,243 --> 00:09:46,900 Pero iso é unha historia para outro día. 208 00:09:46,900 --> 00:09:51,170 >> Entón o que podemos facer con eses bits? 209 00:09:51,170 --> 00:09:54,309 Poderiamos só para sacar a presión fóra de me-- 210 00:09:54,309 --> 00:09:56,600 Pode alguén quere vir ata aquí e ofrecer unha demo? 211 00:09:56,600 --> 00:09:57,516 Vin iso de primeira man. 212 00:09:57,516 --> 00:09:58,709 Como te chamas? 213 00:09:58,709 --> 00:09:59,250 Maday: Maday. 214 00:09:59,250 --> 00:10:00,542 DAVID Malan: Maday, imos para arriba. 215 00:10:00,542 --> 00:10:01,250 Encantado de coñecerte. 216 00:10:01,250 --> 00:10:02,390 Maday: Pracer en coñece-lo. 217 00:10:02,390 --> 00:10:02,930 >> DAVID Malan: Ven aquí. 218 00:10:02,930 --> 00:10:04,182 Non terán que lip-lo. 219 00:10:04,182 --> 00:10:04,682 Todo ben. 220 00:10:04,682 --> 00:10:11,090 Entón, aquí temos, notice-- un, dois-- imos editar este out-- un, dous, catro, 221 00:10:11,090 --> 00:10:13,350 oito, 16, 32, 64, 128. 222 00:10:13,350 --> 00:10:14,220 Isto é deliberado. 223 00:10:14,220 --> 00:10:17,370 Hai oito bits aqui-- binario ceros digits-- e uns. 224 00:10:17,370 --> 00:10:21,460 E é algo útil unha unidade de measure-- non é tan útil unha unidade de medida 225 00:10:21,460 --> 00:10:21,999 sobre si propia. 226 00:10:21,999 --> 00:10:24,290 Normalmente quere, polo menos, oito destas cousas, a.k.a. 227 00:10:24,290 --> 00:10:24,790 un byte. 228 00:10:24,790 --> 00:10:26,230 Polo tanto, temos un byte de bits aquí. 229 00:10:26,230 --> 00:10:31,130 >> Entón, se nós quería desafia-lo con, por exemplo, soletrado, en binario, 230 00:10:31,130 --> 00:10:33,230 este valor aqui-- 42. 231 00:10:33,230 --> 00:10:35,140 Quere tomar unha facada en que? 232 00:10:35,140 --> 00:10:36,034 >> Maday: [inaudível]. 233 00:10:36,034 --> 00:10:38,700 DAVID Malan: Si, só tes que premer o pequenos interruptores brancos diante. 234 00:10:38,700 --> 00:10:41,290 E quere deletrear a 42, e para gañar 235 00:10:41,290 --> 00:10:44,061 é ese estrés CS50 bola, se conseguir isto. 236 00:10:44,061 --> 00:10:44,560 Todo ben. 237 00:10:44,560 --> 00:10:46,420 Entón tes 32. 238 00:10:46,420 --> 00:10:48,430 Nós imos ter que 42. 239 00:10:48,430 --> 00:10:51,410 Entón, iso é un oito, de xeito que é 40. 240 00:10:51,410 --> 00:10:54,160 E excelente-- moi ben feito. 241 00:10:54,160 --> 00:10:55,186 Grazas. 242 00:10:55,186 --> 00:10:58,790 >> [Aplausos] 243 00:10:58,790 --> 00:10:59,290 Todo ben. 244 00:10:59,290 --> 00:11:00,623 Polo tanto, temos unha bola antiestrés. 245 00:11:00,623 --> 00:11:03,595 Imos facelo unha vez máis, se pudermos. 246 00:11:03,595 --> 00:11:05,368 Outro voluntario? 247 00:11:05,368 --> 00:11:07,970 balón sen estrés, balón sen estrés. 248 00:11:07,970 --> 00:11:08,470 OK. 249 00:11:08,470 --> 00:11:11,640 Durante aquí no medio, quere baixar? 250 00:11:11,640 --> 00:11:14,100 Todo ben. 251 00:11:14,100 --> 00:11:15,552 Sei. 252 00:11:15,552 --> 00:11:16,360 Alí imos nós. 253 00:11:16,360 --> 00:11:20,818 >> Así, os números aqui-- imos para abaixo. 254 00:11:20,818 --> 00:11:21,567 Como te chamas? 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 OK. 258 00:11:23,320 --> 00:11:24,810 Imos cara arriba, Davey. 259 00:11:24,810 --> 00:11:25,890 Encantado de coñecerte. 260 00:11:25,890 --> 00:11:28,639 E o que nós imos ter que spell-- se podería estar alí 261 00:11:28,639 --> 00:11:32,810 para só un moment-- é o número 50. 262 00:11:32,810 --> 00:11:36,293 Pero, pero, pero, pero, pero, son escola primaria imáns por unha razón. 263 00:11:36,293 --> 00:11:39,370 264 00:11:39,370 --> 00:11:43,327 Quedou un pouco máis difícil, non? 265 00:11:43,327 --> 00:11:44,160 Aínda hai oito. 266 00:11:44,160 --> 00:11:46,820 267 00:11:46,820 --> 00:11:47,320 Todo ben. 268 00:11:47,320 --> 00:11:48,486 Entón o que temos alí? 269 00:11:48,486 --> 00:11:51,356 Temos 32. 270 00:11:51,356 --> 00:11:54,344 Niza. 271 00:11:54,344 --> 00:11:58,610 32 máis 16 dános 48-- tan preto. 272 00:11:58,610 --> 00:12:00,390 E marabilloso. 273 00:12:00,390 --> 00:12:02,831 Parabéns a Davey ben. 274 00:12:02,831 --> 00:12:05,720 >> [Aplausos] 275 00:12:05,720 --> 00:12:06,516 >> Todo ben. 276 00:12:06,516 --> 00:12:09,390 Así, podemos facelo durante todo o día, e non queda todo moito máis 277 00:12:09,390 --> 00:12:10,800 interesante e máis reto. 278 00:12:10,800 --> 00:12:13,250 Pero iso é realmente o ponto-- É así relativamente simple 279 00:12:13,250 --> 00:12:16,930 é, ao final do día, o que é un ordenador fai para almacenar información, 280 00:12:16,930 --> 00:12:21,740 para almacenar as entradas e finalmente almacenar ou representar esas saídas. 281 00:12:21,740 --> 00:12:23,750 Pero números por si só non son todo o que interesante. 282 00:12:23,750 --> 00:12:26,069 >> Así, os seres humanos, hai uns anos, decidido, vostede sabe o que? 283 00:12:26,069 --> 00:12:27,860 Sería bo que ordenadores non eran só 284 00:12:27,860 --> 00:12:31,030 calculadoras para a aritmética operacións, pero, en realidade, podería 285 00:12:31,030 --> 00:12:35,209 facer cousas como procesamento de texto, ou correo electrónico, ou encarnações máis modernos 286 00:12:35,209 --> 00:12:36,500 destes tipos de tecnoloxías. 287 00:12:36,500 --> 00:12:40,680 E así o mundo decidiu arbitrariamente, senón universalmente, 288 00:12:40,680 --> 00:12:44,380 que se quere almacenar a capital letra A en un ordenador, vostede sabe o que? 289 00:12:44,380 --> 00:12:47,730 Nós só todos coinciden para almacenar algún defecto de ceros e ones-- 290 00:12:47,730 --> 00:12:52,422 bits-- que en definitiva representa o número decimal 65. 291 00:12:52,422 --> 00:12:53,630 Imos todos de acordo con iso. 292 00:12:53,630 --> 00:12:56,620 >> 66 representaría B, 67 representaría C, 293 00:12:56,620 --> 00:13:00,210 e non hai acios doutros patróns de ceros e uns, ou os números subxacentes, 294 00:13:00,210 --> 00:13:02,224 que representaría outras letras estáticas. 295 00:13:02,224 --> 00:13:04,390 Entón, se tipo de mental absorber iso por un momento, 296 00:13:04,390 --> 00:13:10,900 Eu deliberadamente poñer-se da a I, onde H a 72 e I é de 73. 297 00:13:10,900 --> 00:13:15,830 Un ordenador, a continuación, no contexto un programa de procesamento de texto ou un correo electrónico, 298 00:13:15,830 --> 00:13:19,620 revelado por baixo do capuz ter eses patróns de patrón bits-- 299 00:13:19,620 --> 00:13:22,500 de bits que representan 72, despois 73, despois 33-- 300 00:13:22,500 --> 00:13:26,640 o que podería esta máxica nese programa? 301 00:13:26,640 --> 00:13:28,150 >> Entón, ola, e despois algo. 302 00:13:28,150 --> 00:13:31,460 Non necesariamente saben, pero en realidade, 33-- non no gráfico earlier-- 303 00:13:31,460 --> 00:13:33,170 era simplemente un signo de admiración. 304 00:13:33,170 --> 00:13:38,870 Entón 72 foi H, 73 e I, 33 acontece para ser un punto de exclamación aínda. 305 00:13:38,870 --> 00:13:41,719 Pero iso é todo moi ben e bo, e, de feito, hoxe en día, en vez de 306 00:13:41,719 --> 00:13:43,760 usar só sete ou oito bits, grazas a algo 307 00:13:43,760 --> 00:13:46,530 chamado Unicode en oposición para ASCII de volta ao día, 308 00:13:46,530 --> 00:13:50,010 realmente pode representar máis aínda personaxes interesantes que 309 00:13:50,010 --> 00:13:52,980 estes orixinal en inglés tendenciosa letras. 310 00:13:52,980 --> 00:13:56,030 Pero tamén pode representar ata cousas máis puro como cores. 311 00:13:56,030 --> 00:13:59,750 >> Se vostede xa escoitou a sigla RGB, vermello, verde, azul, que 312 00:13:59,750 --> 00:14:03,510 Significa só que un ordenador xeralmente usa tres conxuntos de bits-- 313 00:14:03,510 --> 00:14:06,760 algún número de bits que representan un número para a cantidade de vermello que quere, 314 00:14:06,760 --> 00:14:08,940 outro conxunto de bits para canto verde que quere, 315 00:14:08,940 --> 00:14:11,430 e outro número establecido para a cantidade de azul que quere. 316 00:14:11,430 --> 00:14:14,457 Así, un gran número significa lotes de vermello número, pequeno non significa ningún vermello. 317 00:14:14,457 --> 00:14:16,290 E así estes son o tipo dos valores medios aquí. 318 00:14:16,290 --> 00:14:20,180 >> Entón me dea un pouco de vermello, me dea un pouco verde, e me dar un pouco de azul. 319 00:14:20,180 --> 00:14:24,260 E se mesturar estas tres máscaras de cor xuntos, neste caso, 320 00:14:24,260 --> 00:14:26,850 recibe esa sombra escura de amarelo ou marrón. 321 00:14:26,850 --> 00:14:32,330 Pero este estándar de oito máis oito máis eight-- así 24 bits-- 322 00:14:32,330 --> 00:14:36,550 esquerda a dereita, é como un ordenador representaría esta cor particular. 323 00:14:36,550 --> 00:14:38,090 Agora, este é só un punto nunha pantalla. 324 00:14:38,090 --> 00:14:42,230 Se ollar moi de preto o seu televisor seu ordenador, verá puntos ou píxeles. 325 00:14:42,230 --> 00:14:45,420 E se ten unha reixa enteira de píxeles, horizontal e vertical, 326 00:14:45,420 --> 00:14:46,630 ten imaxes. 327 00:14:46,630 --> 00:14:49,029 E entón se tomar unha imaxe e, a continuación, lavado 328 00:14:49,029 --> 00:14:52,070 amosar-se outra imaxe, outra imaxe, outra imaxe, outra imaxe, 329 00:14:52,070 --> 00:14:54,760 moi rápido, naturalmente teñen películas. 330 00:14:54,760 --> 00:14:56,109 >> E así entender onde comezamos. 331 00:14:56,109 --> 00:14:57,650 Comezamos con eses ceros e uns. 332 00:14:57,650 --> 00:15:00,570 Traballamos de alí para decimal números, como podemos representa-los. 333 00:15:00,570 --> 00:15:02,070 Agora temos letras do alfabeto. 334 00:15:02,070 --> 00:15:05,664 Pero noutros contextos esperar, podemos usar algúns anacos e representan as cores. 335 00:15:05,664 --> 00:15:07,830 Así que ten a capacidade de representar as cores, 336 00:15:07,830 --> 00:15:11,200 ten a capacidade de representar fotos e gifs animados 337 00:15:11,200 --> 00:15:13,780 e outros tales personaxes na pantalla. 338 00:15:13,780 --> 00:15:17,160 E cando ten unha morea de imaxes voando polo ser humano dunha soa vez, 339 00:15:17,160 --> 00:15:21,480 parece que imaxes en movemento, e para obter vídeos tamén. 340 00:15:21,480 --> 00:15:23,460 >> Entón, usando estes moi primitivas sinxelas nós 341 00:15:23,460 --> 00:15:28,070 ten a forma de representar en definitiva, todas estas formas de comunicación. 342 00:15:28,070 --> 00:15:30,450 E nós captada de novo e de novo e de novo, ata que 343 00:15:30,450 --> 00:15:33,467 comezar dende o nivel máis baixo a ese nivel. 344 00:15:33,467 --> 00:15:35,550 De xeito que nos dá esta vista xeral de abstracción. 345 00:15:35,550 --> 00:15:36,990 Pero comezan aquí. 346 00:15:36,990 --> 00:15:38,790 >> Aquí, agora, poderiamos representan nun ordenador 347 00:15:38,790 --> 00:15:41,920 nosos entradas con ceros e uns, nosas saídas en ceros e uns, 348 00:15:41,920 --> 00:15:43,640 pero o que pasa dentro da caixa? 349 00:15:43,640 --> 00:15:46,080 É aí que ordenador ciencia queda interesante. 350 00:15:46,080 --> 00:15:49,770 É aí que realmente traer o seu mentes propias de soportar para resolver problemas. 351 00:15:49,770 --> 00:15:52,590 agora podemos predicir, ao resto do semestre, si. 352 00:15:52,590 --> 00:15:53,870 Sei como funciona o binarios. 353 00:15:53,870 --> 00:15:57,942 Lembro como ASCII ou Unicode-- o mapeamento para letters-- obras. 354 00:15:57,942 --> 00:15:59,650 E certamente para razoar que 355 00:15:59,650 --> 00:16:03,470 podería representar vermello e verde e azul, e representan multimedia tamén. 356 00:16:03,470 --> 00:16:05,390 Pero esta é a cousa interesante. 357 00:16:05,390 --> 00:16:09,790 Isto é o que fai alguén capaz de resolver os problemas. 358 00:16:09,790 --> 00:16:11,980 >> E un tal problema que gusta de facer, de feito, 359 00:16:11,980 --> 00:16:15,345 está levando atención, ou facelo a través de algoritmos. 360 00:16:15,345 --> 00:16:16,470 E de novo, eu podería facelo. 361 00:16:16,470 --> 00:16:19,580 Eu podería facer un, dous, tres, catro cinco, seis, sete, oito e nove. 362 00:16:19,580 --> 00:16:21,520 E eu podería escribir-lo abaixo para manter o control do mesmo. 363 00:16:21,520 --> 00:16:23,769 Pero iso é só como eu faría representan a información. 364 00:16:23,769 --> 00:16:27,550 Ou eu podería facelo faster-- dous, catro, seis, oito, dez, 12, 14, 16, 18, 20, 365 00:16:27,550 --> 00:16:30,380 22-- parece que o dobre tan rápido, pero aínda é 366 00:16:30,380 --> 00:16:32,050 vai levar moito tempo. 367 00:16:32,050 --> 00:16:35,990 >> Pero resulta que, se alavancar aínda outros ordenadores resource-- e de feito 368 00:16:35,990 --> 00:16:38,940 estes días teñen múltiples CPUs ou cerebros. 369 00:16:38,940 --> 00:16:41,970 Acontece que computadores poden facer moitas cousas á vez, 370 00:16:41,970 --> 00:16:44,460 e, de feito, nós, nesta sala, pode representar exactamente isto. 371 00:16:44,460 --> 00:16:47,130 >> Polo tanto, é un pouco socialmente raro, pero se faría humor me 372 00:16:47,130 --> 00:16:51,550 por só un proceso de tres pasos, imos me pedir a todos no lugar hai só 373 00:16:51,550 --> 00:16:54,640 a levantar-se por un momento. 374 00:16:54,640 --> 00:16:57,380 Levantarse. 375 00:16:57,380 --> 00:17:01,580 Entón, pensar a si mesmo, o número de um-- para que todos nesta sala, 376 00:17:01,580 --> 00:17:05,010 excepto as persoas que non fixeron oblige, están a pensar número un. 377 00:17:05,010 --> 00:17:06,510 Entón este é o seu número no momento. 378 00:17:06,510 --> 00:17:09,399 Este é o primeiro paso, ou como unha científico da computación ou un programador 379 00:17:09,399 --> 00:17:11,827 normalmente faría, imos para comezar a contar desde cero. 380 00:17:11,827 --> 00:17:14,410 Se o menor número que pudermos representar estas lámpadas 381 00:17:14,410 --> 00:17:17,410 é cero, por só deixando- todo isto, así como eu podería só 382 00:17:17,410 --> 00:17:19,271 comezar a contar desde cero é, en vez de un. 383 00:17:19,271 --> 00:17:21,020 E iso é o que Científicos de ordenador. 384 00:17:21,020 --> 00:17:23,750 Entón, paso cero, levantarse e pensar no número un. 385 00:17:23,750 --> 00:17:26,339 O seguinte paso é isto-- par fóra con alguén de pé 386 00:17:26,339 --> 00:17:27,660 e engadir os seus números. 387 00:17:27,660 --> 00:17:30,660 388 00:17:30,660 --> 00:17:32,850 Marabilloso. 389 00:17:32,850 --> 00:17:37,640 >> Polo tanto, neste momento no tempo, literalmente todos os participantes 390 00:17:37,640 --> 00:17:41,930 Está a pensar do número 2, con excepción para unha persoa estraña se temos 391 00:17:41,930 --> 00:17:43,450 un número impar de persoas na sala. 392 00:17:43,450 --> 00:17:50,640 E agora o terceiro paso aquí vai ser isto-- un de vós debe sentir-se. 393 00:17:50,640 --> 00:17:54,490 Un de vós debe sentir-se, e se aínda está de pé, 394 00:17:54,490 --> 00:17:56,590 volva ao paso dun. 395 00:17:56,590 --> 00:18:44,799 396 00:18:44,799 --> 00:18:45,790 Todo ben. 397 00:18:45,790 --> 00:19:00,760 398 00:19:00,760 --> 00:19:01,650 Todo ben. 399 00:19:01,650 --> 00:19:03,880 Así, máis e máis xente debería estar sentado abaixo. 400 00:19:03,880 --> 00:19:08,280 Teña en conta que este ten inducido un loop-- algún tipo de ciclo. 401 00:19:08,280 --> 00:19:11,983 Algúns de vostedes deben estar sen xeito detido, indo e volvendo entre o primeiro paso 402 00:19:11,983 --> 00:19:14,180 e dous, un e dous, un e dous. 403 00:19:14,180 --> 00:19:21,190 404 00:19:21,190 --> 00:19:21,810 Está ben. 405 00:19:21,810 --> 00:19:22,630 O noso primeiro erro. 406 00:19:22,630 --> 00:19:24,740 Nós imos tratar con isto. 407 00:19:24,740 --> 00:19:25,320 Todo ben. 408 00:19:25,320 --> 00:19:27,370 Déixeme probar estimular as cousas. 409 00:19:27,370 --> 00:19:31,454 >> En teoría, só unha persoa está de pé como todos continúa par fóra. 410 00:19:31,454 --> 00:19:33,870 Pero déixeme apresurar as cousas co pobo aínda está de pé. 411 00:19:33,870 --> 00:19:35,480 Que número está a pensar? 412 00:19:35,480 --> 00:19:36,070 46. 413 00:19:36,070 --> 00:19:36,570 OK. 414 00:19:36,570 --> 00:19:37,820 Dalle sentir-se. 415 00:19:37,820 --> 00:19:39,190 Vós aínda están de pé. 416 00:19:39,190 --> 00:19:42,130 Que aínda está de pé? 417 00:19:42,130 --> 00:19:45,240 Que número está a pensar? 418 00:19:45,240 --> 00:19:46,160 OK. 419 00:19:46,160 --> 00:19:47,900 >> Entón, imos voltar a vostede. 420 00:19:47,900 --> 00:19:49,630 Na parte de atrás? 421 00:19:49,630 --> 00:19:50,790 Qué e iso? 422 00:19:50,790 --> 00:19:53,100 22. 423 00:19:53,100 --> 00:19:56,540 OK alguén se top-- si? 424 00:19:56,540 --> 00:19:57,720 34. 425 00:19:57,720 --> 00:19:58,300 OK. 426 00:19:58,300 --> 00:20:02,780 Aquí no meu direita-- aquí enriba? 427 00:20:02,780 --> 00:20:06,820 132, moi bo. 428 00:20:06,820 --> 00:20:08,380 22? 429 00:20:08,380 --> 00:20:08,990 >> OK. 430 00:20:08,990 --> 00:20:10,031 E que aínda está de pé? 431 00:20:10,031 --> 00:20:11,000 Por aquí? 432 00:20:11,000 --> 00:20:14,520 46, moi agradable. 433 00:20:14,520 --> 00:20:16,890 72. 434 00:20:16,890 --> 00:20:18,220 Non podo deixar por moito máis tempo. 435 00:20:18,220 --> 00:20:20,520 Si? 436 00:20:20,520 --> 00:20:22,490 30, agradable. 437 00:20:22,490 --> 00:20:24,120 Por 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 >> E eu creo que iso é todo excepto vós, ningunha presión. 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 Só oito. 445 00:20:38,281 --> 00:20:38,780 OK. 446 00:20:38,780 --> 00:20:41,030 Só oito. 447 00:20:41,030 --> 00:20:42,580 Aquí abaixo? 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 Este é o peor implementación deste algoritmo nunca. 454 00:20:54,690 --> 00:20:55,190 OK. 455 00:20:55,190 --> 00:20:59,760 Entón, alguén? 456 00:20:59,760 --> 00:21:00,421 Alguén? 457 00:21:00,421 --> 00:21:00,920 OK. 458 00:21:00,920 --> 00:21:03,300 Un máis. 459 00:21:03,300 --> 00:21:04,400 16? 460 00:21:04,400 --> 00:21:04,900 OK. 461 00:21:04,900 --> 00:21:05,510 16. 462 00:21:05,510 --> 00:21:06,010 Todo ben. 463 00:21:06,010 --> 00:21:09,070 Entón, se eu non perdín ninguén en o brillo aquí, cando prema Intro, 464 00:21:09,070 --> 00:21:13,091 veremos, mediante algoritmos, o número total de persoas en Sanders. 465 00:21:13,091 --> 00:21:16,340 Porque unha vez máis, é como se todo como sentou-se, pasou o seu número off 466 00:21:16,340 --> 00:21:19,215 a outra persoa, a outra persoa, a outra persoa, de xeito que, en teoría, 467 00:21:19,215 --> 00:21:22,304 Ao final, só un estraño persoa debe estar de pé. 468 00:21:22,304 --> 00:21:22,970 Pero iso é bo. 469 00:21:22,970 --> 00:21:24,290 Nós acelerou as cousas a man. 470 00:21:24,290 --> 00:21:27,590 É especialmente difícil de ver neste espazo particular. 471 00:21:27,590 --> 00:21:34,200 >> E o número total de persoas cremos que hai aquí é 546. 472 00:21:34,200 --> 00:21:37,330 O número total I foi entregada polos compañeiros de ensino, 473 00:21:37,330 --> 00:21:40,660 quen fixo iso o vello forma lenta escola, era 820. 474 00:21:40,660 --> 00:21:43,660 >> [Risas] 475 00:21:43,660 --> 00:21:47,170 >> [Aplausos] 476 00:21:47,170 --> 00:21:48,670 >> Está ben. 477 00:21:48,670 --> 00:21:50,740 Así, por suposto, a continuación, hai eses erros. 478 00:21:50,740 --> 00:21:51,460 E iso é bo. 479 00:21:51,460 --> 00:21:53,810 E así creo que volta nesta a primeira vez que algo 480 00:21:53,810 --> 00:21:55,420 escribe non necesariamente funcionar. 481 00:21:55,420 --> 00:21:57,620 Isto aconteceu-me aquí tamén. 482 00:21:57,620 --> 00:22:00,844 Pero imos agora considerar como podemos aplicar esta mesma idea para algo 483 00:22:00,844 --> 00:22:03,760 pode ter visto antes, o que É esta tecnoloxía antiga escola aqui-- 484 00:22:03,760 --> 00:22:05,130 un libro de teléfono realmente grande. 485 00:22:05,130 --> 00:22:09,380 E supoña que este libro de teléfono ten 1.000 páxinas e 1.000 nomes 486 00:22:09,380 --> 00:22:11,360 e os números en orde alfabética dentro del. 487 00:22:11,360 --> 00:22:14,860 >> Ben, poderíamos tipo de aplicar un semellante idea a este problema moi físico, 488 00:22:14,860 --> 00:22:16,270 só me a usar. 489 00:22:16,270 --> 00:22:18,810 Só tipo de erro aproveitando todo de ti 490 00:22:18,810 --> 00:22:23,240 con lotes e lotes de CPUs diferentes ou cerebros realizar algún algoritmo. 491 00:22:23,240 --> 00:22:25,440 Pero se é só algo vello min, eu poida 492 00:22:25,440 --> 00:22:29,630 aproveitar esa mesma esencia dunha idea de dividir e conquistar este problema 493 00:22:29,630 --> 00:22:32,970 unha e outra vez, en que a metade de vós, metade de vós, metade de vós, metade de vós, 494 00:22:32,970 --> 00:22:35,830 teoricamente mantivo sentado, ata que foron, en teoría, 495 00:22:35,830 --> 00:22:36,990 con só unha persoa. 496 00:22:36,990 --> 00:22:39,810 >> Polo tanto, neste vella escola technology-- non 497 00:22:39,810 --> 00:22:43,030 Debe deste map-- este tecnoloxía da vella escola, 498 00:22:43,030 --> 00:22:47,300 podemos comezar a ollar para alguén como Mike Smith, unha páxina de cada vez. 499 00:22:47,300 --> 00:22:49,410 E vexo que non, Mike non está aquí. 500 00:22:49,410 --> 00:22:51,110 Eu aínda estou na sección A. 501 00:22:51,110 --> 00:22:53,900 Finalmente, eu creo me na sección B. 502 00:22:53,900 --> 00:22:56,910 E esta é unha algorithm-- paso a paso instrución. 503 00:22:56,910 --> 00:22:59,890 Comezar na páxina de inicio e un á vez, mirar para Mike Smith. 504 00:22:59,890 --> 00:23:03,410 Este correct-- este algoritmo ou visión? 505 00:23:03,410 --> 00:23:04,550 >> Si, é correcto. 506 00:23:04,550 --> 00:23:06,840 Se Mike está aquí, finalmente, Vou chegar ata el. 507 00:23:06,840 --> 00:23:08,139 Pero non é eficiente. 508 00:23:08,139 --> 00:23:09,180 É evidente que é moi lento. 509 00:23:09,180 --> 00:23:11,340 Para que eu poida aproveitar o mesmos twosies achegar. 510 00:23:11,340 --> 00:23:15,350 Podo facer unha especie de dous, catro, seis, oito, 10, 12. 511 00:23:15,350 --> 00:23:16,330 É dúas veces máis rápido. 512 00:23:16,330 --> 00:23:18,290 Eu vou chegar a Mike máis rápido se está alí. 513 00:23:18,290 --> 00:23:20,770 É correcto? 514 00:23:20,770 --> 00:23:22,320 Si, pero eu oín un non little--. 515 00:23:22,320 --> 00:23:24,200 Agora eu oín un non. 516 00:23:24,200 --> 00:23:24,700 Si. 517 00:23:24,700 --> 00:23:26,190 Hai un erro potencialmente. 518 00:23:26,190 --> 00:23:29,374 Quizais Mike fica só accidentalmente ensanduichada entre dúas páxinas, 519 00:23:29,374 --> 00:23:31,290 porque eu estou voando a través este dous de cada vez. 520 00:23:31,290 --> 00:23:33,580 Así, polo menos necesitamos algún tipo de corrección condicional. 521 00:23:33,580 --> 00:23:35,330 Eu teño que dicir, hey, se eu acertar alguén cuxa 522 00:23:35,330 --> 00:23:39,190 nome comeza cun T en vez de un S, É mellor eu dobre volta polo menos unha páxina. 523 00:23:39,190 --> 00:23:40,767 Entón, de buggy en principio, pero solucionáveis. 524 00:23:40,767 --> 00:23:43,850 Pero ningún de nós están indo buscar Mike Smith a través dun teléfono con 1.000 páxinas 525 00:23:43,850 --> 00:23:45,290 reservar unha páxina de cada vez. 526 00:23:45,290 --> 00:23:48,486 ¿Que é unha persoa normal vai facer? 527 00:23:48,486 --> 00:23:50,860 Está indo a ir ao S do, se sabía onde o S do. 528 00:23:50,860 --> 00:23:54,230 Pode ir máis ou menos para o medio ou lixeiramente inclinado cara ao final. 529 00:23:54,230 --> 00:23:56,850 E eu ollo para abaixo aquí e Estou na sección M. 530 00:23:56,850 --> 00:23:58,952 Pero o que sabe sobre este problema, 531 00:23:58,952 --> 00:24:02,160 que non necesariamente saber antes con todos nós só contando connosco 532 00:24:02,160 --> 00:24:03,030 equivalentemente? 533 00:24:03,030 --> 00:24:06,010 Ben, Mike vai claramente estar nesta metade do libro 534 00:24:06,010 --> 00:24:07,920 se está aquí en todo, porque é clasificado. 535 00:24:07,920 --> 00:24:10,160 >> E así pode moi dramatically-- 536 00:24:10,160 --> 00:24:11,250 >> [Ofegante] 537 00:24:11,250 --> 00:24:12,300 >> Sei. 538 00:24:12,300 --> 00:24:16,940 >> [Aplausos] 539 00:24:16,940 --> 00:24:19,450 >> É realmente moi fácil facelo na espiña alí. 540 00:24:19,450 --> 00:24:22,070 Pero pode a continuación, xoga metade do problema de distancia. 541 00:24:22,070 --> 00:24:25,950 Agora, eu estou á esquerda coa mesma problema-- atopar Mike Smith nun teléfono book-- 542 00:24:25,950 --> 00:24:29,610 pero agora o libro de teléfono comeza en M e vai ata Z, pero é a metade do tamaño. 543 00:24:29,610 --> 00:24:30,890 >> Pero iso é o que é impresionante. 544 00:24:30,890 --> 00:24:34,170 Así como na teoría, rapaces, cando todos vostedes sentou-se só a metade de cada vez, 545 00:24:34,170 --> 00:24:37,150 o problema ten a metade do tamaño, metade do tamaño, unha e outra vez. 546 00:24:37,150 --> 00:24:40,260 Entón, ten este problema facer o mesmo problema, pero a metade do tamaño. 547 00:24:40,260 --> 00:24:42,670 Agora é un problema de 250 páxinas. 548 00:24:42,670 --> 00:24:45,340 Así que eu entendo, oh, eu son na sección T accidentalmente. 549 00:24:45,340 --> 00:24:46,590 Teño demasiado lonxe. 550 00:24:46,590 --> 00:24:48,500 Podo xogar que a metade do libro de teléfono de distancia. 551 00:24:48,500 --> 00:24:50,410 Agora, eu estou disposto a un trimestre do problema. 552 00:24:50,410 --> 00:24:53,910 >> E pode repetir, repetir, repetir ata que, en teoría, está 553 00:24:53,910 --> 00:24:55,460 deixou con só unha páxina. 554 00:24:55,460 --> 00:24:59,010 E se Mike está nesa páxina, agora podo solucionar este problema. 555 00:24:59,010 --> 00:25:00,810 Pero a rapidez con que solucionar isto? 556 00:25:00,810 --> 00:25:05,420 No primeiro caso, el me levou como quizais 1.000 pasos para atopar Mike Smith. 557 00:25:05,420 --> 00:25:09,260 Podería ter tomado me-- Peguei o libro de teléfono 558 00:25:09,260 --> 00:25:11,440 e eu comece a ollar unha páxina de cada vez, 559 00:25:11,440 --> 00:25:13,480 e Mike poderían 1.000 páxinas máis tarde. 560 00:25:13,480 --> 00:25:16,020 >> Segunda visión, quizais me leva 500 pasos, 561 00:25:16,020 --> 00:25:17,960 porque eu estou voando a través de dous de cada vez. 562 00:25:17,960 --> 00:25:21,082 E a terceira visión, porén, é especialmente potente. 563 00:25:21,082 --> 00:25:23,790 Pero imos considerar o que realmente fixo que esa terceira vía. 564 00:25:23,790 --> 00:25:27,590 Vou ter o que eu vou chamar só estes demostracións aquí, un de cada vez. 565 00:25:27,590 --> 00:25:28,560 Pegar un libro de teléfono. 566 00:25:28,560 --> 00:25:30,130 Abre a través do libro de teléfono. 567 00:25:30,130 --> 00:25:31,419 Olle para os nomes. 568 00:25:31,419 --> 00:25:33,960 E entón as cousas están un pouco intelectualmente máis interesante, 569 00:25:33,960 --> 00:25:35,170 aínda simple. 570 00:25:35,170 --> 00:25:38,350 Se Smith está entre os nomes nesta páxina actual, 571 00:25:38,350 --> 00:25:40,170 a continuación, facer algo condicional. 572 00:25:40,170 --> 00:25:41,840 É como unha bifurcación na estrada. 573 00:25:41,840 --> 00:25:42,660 Chame Mike. 574 00:25:42,660 --> 00:25:44,930 Se Mike está entre os nomes Na páxina chamada Mike. 575 00:25:44,930 --> 00:25:49,720 Pero só faga liña catro a liña árbore, se é verdade. 576 00:25:49,720 --> 00:25:51,590 A resposta a esta pregunta é si. 577 00:25:51,590 --> 00:25:55,520 >> Else if Smith é o inicio do book-- noutras palabras, se eu está na sección M 578 00:25:55,520 --> 00:25:58,540 e eu estou buscando alguén para a esquerda, entón o que debo facer 579 00:25:58,540 --> 00:26:00,300 é algo moi semellante. 580 00:26:00,300 --> 00:26:03,440 Entón eu debería abrir para o medio da metade esquerda do libro. 581 00:26:03,440 --> 00:26:07,930 Entón vai cara á esquerda e logo volva para a etapa dous. 582 00:26:07,930 --> 00:26:09,290 Olle para os nomes alí. 583 00:26:09,290 --> 00:26:12,779 >> Polo tanto, noutras palabras, facer o mesmo, pero nun problema que foi reducida a metade. 584 00:26:12,779 --> 00:26:13,570 Sabe o que máis? 585 00:26:13,570 --> 00:26:16,470 Se Smith é máis tarde no libro con base na páxina que eu estou ollando, 586 00:26:16,470 --> 00:26:18,790 aberta ao medio da metade dereita do libro 587 00:26:18,790 --> 00:26:22,050 e, a continuación, volver de novo a etapa dous, else-- 588 00:26:22,050 --> 00:26:24,000 hai unha cuarta posibilidade aquí. 589 00:26:24,000 --> 00:26:28,830 Mike aquí ou á esquerda ou á dereita ou non existe. 590 00:26:28,830 --> 00:26:30,570 E aquí é mellor considerar isto. 591 00:26:30,570 --> 00:26:33,360 E, de feito, se xa tivo computador só bater en ti, 592 00:26:33,360 --> 00:26:36,822 que é, por veces, pero non sempre, a resultado de só un programador humano non 593 00:26:36,822 --> 00:26:39,280 entendendo, oh disparar, hai Realmente este cuarto escenario. 594 00:26:39,280 --> 00:26:41,650 E se non escribir o código para xestionar este escenario, 595 00:26:41,650 --> 00:26:43,220 ás veces non sabe o que o ordenador pode facer. 596 00:26:43,220 --> 00:26:44,770 E, de feito un programa pode fallar. 597 00:26:44,770 --> 00:26:47,550 >> Pero, neste caso, eu penso sobre el, e eu dixen, senón saír, 598 00:26:47,550 --> 00:26:49,850 porque esa é a cuarta lóxica escenario posible. 599 00:26:49,850 --> 00:26:51,950 Agora, imos engadir algún vocabulario para que 600 00:26:51,950 --> 00:26:55,320 Pode comezar a tirar en torno de termos que son doutro xeito moi intuitiva. 601 00:26:55,320 --> 00:26:57,870 Todas as cousas que eu só destacadas en amarelo aquí, 602 00:26:57,870 --> 00:27:00,140 Eu estou indo só para o funcións ou procedementos. 603 00:27:00,140 --> 00:27:01,590 Son só un tipo de accións. 604 00:27:01,590 --> 00:27:04,900 Entón tome, aberto a, ollar a chamada, aberto, aberto, 605 00:27:04,900 --> 00:27:09,170 quit-- estes son só accións, ou nós imos chamalos de xeito máis formal, funcións. 606 00:27:09,170 --> 00:27:11,410 >> Mentres tanto, agora en amarelo, Eu destacou as cousas 607 00:27:11,410 --> 00:27:14,084 isso-- imos comezar a chamar -lhes condicións ou ramas. 608 00:27:14,084 --> 00:27:16,750 Estes son os puntos de decisión onde que pode ir por este camiño, deste xeito, 609 00:27:16,750 --> 00:27:18,100 ou algunha outra dirección aínda. 610 00:27:18,100 --> 00:27:19,430 Polo tanto, aqueles estarán condicións. 611 00:27:19,430 --> 00:27:20,930 E agora esta é algo afeccionado. 612 00:27:20,930 --> 00:27:24,600 Imos chamar esas preguntas expresións booleanas, 613 00:27:24,600 --> 00:27:26,530 despois de que alguén con un apelido bool. 614 00:27:26,530 --> 00:27:28,340 >> E unha expresión booleana é só algo 615 00:27:28,340 --> 00:27:30,290 isto é certo ou falso, si ou non. 616 00:27:30,290 --> 00:27:35,870 Polo tanto, é a pregunta cuxa resposta vostede se preocupan, para nunha condición 617 00:27:35,870 --> 00:27:39,210 facer unha decision-- volver unha resposta, e despois ir á esquerda ou á dereita, ou algo 618 00:27:39,210 --> 00:27:40,450 algo completamente. 619 00:27:40,450 --> 00:27:42,860 >> E, a continuación, por último, estes liñas aqui-- volver 620 00:27:42,860 --> 00:27:44,737 a etapa dous, volva mentres que podería dois-- 621 00:27:44,737 --> 00:27:46,320 aplicar esta idea de xeitos diferentes. 622 00:27:46,320 --> 00:27:49,028 E entón aqueles de vostedes con experiencia en programación podería ter feito 623 00:27:49,028 --> 00:27:50,670 ou pode imaxinar facendo iso de forma diferente. 624 00:27:50,670 --> 00:27:53,170 Pero para fins de hoxe, é só a idea que importa. 625 00:27:53,170 --> 00:27:55,400 Isto é o que inducir imos xeralmente chamamos 626 00:27:55,400 --> 00:28:00,110 un loop-- algún tipo de ciclo, porque Isto está me facendo facer algo novo. 627 00:28:00,110 --> 00:28:03,340 >> Entón, agora, imos considerar só como é bo este algoritmo é. 628 00:28:03,340 --> 00:28:03,899 É correcto. 629 00:28:03,899 --> 00:28:06,940 Se Mike no libro, é un dos os catro scenarios-- novo e de novo 630 00:28:06,940 --> 00:28:08,023 e de novo, imos atopalo. 631 00:28:08,023 --> 00:28:08,890 Pero como é que é bo? 632 00:28:08,890 --> 00:28:10,150 Ben, non temos ser demasiado formal aquí. 633 00:28:10,150 --> 00:28:12,066 Pero imos trazar algo, x e y, para obter 634 00:28:12,066 --> 00:28:14,470 un sentido da forma deste problema. 635 00:28:14,470 --> 00:28:17,160 >> No eixo x é aquí o tamaño do meu problema. 636 00:28:17,160 --> 00:28:20,256 E un eixe y aquí será o tempo para resolver. 637 00:28:20,256 --> 00:28:21,630 Entón, talvez este é o número de páxinas. 638 00:28:21,630 --> 00:28:24,400 Quizais esta sexa segundos ou A páxina turns-- o que quere. 639 00:28:24,400 --> 00:28:27,290 Con todo, quere contar é o que esta imaxe vai representar. 640 00:28:27,290 --> 00:28:30,630 E que primeiro algoritmo, eu vou para describir como só unha liña recta. 641 00:28:30,630 --> 00:28:33,120 Se hai n páxinas o libro de teléfono, el 642 00:28:33,120 --> 00:28:36,010 me pode levar como moitos como n pasos para atopar Mike. 643 00:28:36,010 --> 00:28:38,930 Se Verizon ou a empresa de telefonía engade unha páxina o próximo ano, 644 00:28:38,930 --> 00:28:42,170 isto pode levar-me unha step-- unha unidade de tempo para atopar Mike. 645 00:28:42,170 --> 00:28:44,230 Polo tanto, hai só iso 12:59 ratio. 646 00:28:44,230 --> 00:28:45,970 É un declive liña recta. 647 00:28:45,970 --> 00:28:49,110 >> Mentres tanto, que a segunda algorithm-- se eu son 648 00:28:49,110 --> 00:28:51,570 indo de dous en dous dous tempo--, catro, seis, oito, ou double-- 649 00:28:51,570 --> 00:28:54,550 pasando as páxinas dúas veces á vez, dúas de cada vez, 650 00:28:54,550 --> 00:28:55,710 aínda é lineal. 651 00:28:55,710 --> 00:28:58,720 Hai agora un 1-2 ratio, pero un pouco máis baixa. 652 00:28:58,720 --> 00:29:02,240 Polo tanto, se hai que moitas páxinas no gráfico aquí en amarelo, 653 00:29:02,240 --> 00:29:04,800 que poida me aproveitar esta moitos pasos ou segundos, 654 00:29:04,800 --> 00:29:07,980 se non me vai levar o dobre na liña vermella. 655 00:29:07,980 --> 00:29:10,190 >> Pero a liña verde é o takeaway real. 656 00:29:10,190 --> 00:29:12,290 Isto é o que normalmente chamar un rexistro logorithm-- 657 00:29:12,290 --> 00:29:13,840 n, onde n é o número de páxinas. 658 00:29:13,840 --> 00:29:16,450 Pero é o xeito que importa hoxe, porque non temos 659 00:29:16,450 --> 00:29:17,950 para sequera pensar en Plot puntos. 660 00:29:17,950 --> 00:29:19,830 >> Debería un escenario extremo. 661 00:29:19,830 --> 00:29:23,070 Supoña Verizon mañá dobra o número de páxinas en que o libro de teléfono, 662 00:29:23,070 --> 00:29:24,900 de 1.000 a 2.000. 663 00:29:24,900 --> 00:29:28,440 No primeiro algoritmo, I Pode perder un extra de 1000 664 00:29:28,440 --> 00:29:32,080 etapas buscando Mike, só porque Verizon duplicou o tamaño do libro. 665 00:29:32,080 --> 00:29:34,740 A segunda algorithm-- que podería leve-me un extra de 500 pasos. 666 00:29:34,740 --> 00:29:38,370 máis de 1.000 páxinas, eu vou de dous en dous tempo-- 500 pasos para atopar Mike. 667 00:29:38,370 --> 00:29:41,020 >> Pero ese terceiro algoritmo é unha especie de maxia. 668 00:29:41,020 --> 00:29:44,270 Verizon duplica o número de páxinas de 1000 a 2000, 669 00:29:44,270 --> 00:29:47,730 Pero cantos máis pasos fai me levar para buscar Mike? 670 00:29:47,730 --> 00:29:51,220 É só un, porque eu podo só rasgar o libro de teléfono unha vez 671 00:29:51,220 --> 00:29:55,280 dun problema de 2.000 páxina a un 1.000 problema páxina, e listo. 672 00:29:55,280 --> 00:29:57,030 Eu tomei unha mordida enorme fóra del. 673 00:29:57,030 --> 00:29:59,405 >> E se é realmente extremo, supoñer que o libro de teléfono 674 00:29:59,405 --> 00:30:03,600 empresa tiña algo tolo como un libro de teléfono 4 millóns páxina. 675 00:30:03,600 --> 00:30:07,020 Ben cantos pasos que pode tomar para atopar Mike Smith nun 4000000000 676 00:30:07,020 --> 00:30:09,990 libro de teléfono páxina? 677 00:30:09,990 --> 00:30:16,450 É un gran número, pero só 4 millóns para 2000-1000 millóns a 500 millóns, 678 00:30:16,450 --> 00:30:18,720 250 milhões-- aínda soa como grandes números, 679 00:30:18,720 --> 00:30:20,980 pero eu son moi rapidamente chegando a valores menores. 680 00:30:20,980 --> 00:30:24,790 >> E, de feito, se eu fai as contas dereito, só podo dividir 4 millóns 681 00:30:24,790 --> 00:30:28,750 por preto de 32 veces antes Eu baixar para só un. 682 00:30:28,750 --> 00:30:31,640 Polo tanto, se ese libro de teléfono foron 4 mil millóns de páxinas, non é gran cousa. 683 00:30:31,640 --> 00:30:35,270 Dentro de poucos segundos, quizais 32 segundo, eu podería división lo ao medio 684 00:30:35,270 --> 00:30:39,560 e, finalmente, atopar Mike ou concluír que el non está alí. 685 00:30:39,560 --> 00:30:42,219 E esa é a esencia dun algorithm-- un bo algoritmo. 686 00:30:42,219 --> 00:30:44,260 E iso é unha das obxectivos dunha clase como este, 687 00:30:44,260 --> 00:30:47,350 está intentando descubrir como fago resolver o problema non só correctamente, 688 00:30:47,350 --> 00:30:52,360 como sempre sabía como facelo un páxina de cada vez-- pero correctamente e ben. 689 00:30:52,360 --> 00:30:55,034 Cómo creo boa solucións aos problemas? 690 00:30:55,034 --> 00:30:57,200 Polo tanto, imos ter un momento aquí e darlle un sentido agora 691 00:30:57,200 --> 00:31:00,260 de CS50 o curso itself-- introducir membros do equipo a poucos curso. 692 00:31:00,260 --> 00:31:02,010 Pouco antes de 02:00, imos facer unha pequena pausa 693 00:31:02,010 --> 00:31:03,520 de xeito que aqueles de vostedes que están a mercar pode 694 00:31:03,520 --> 00:31:05,130 Duck para fóra, e dar un mirar algunha outra clase 695 00:31:05,130 --> 00:31:06,580 e ver o resto deste liña. 696 00:31:06,580 --> 00:31:09,250 Pero, por agora, deixe-me presentar CS50, a clase en si, 697 00:31:09,250 --> 00:31:11,330 e, en particular, o que é novo. 698 00:31:11,330 --> 00:31:13,960 >> Así, a primavera pasado, nós pasei un pouco de tempo-- 699 00:31:13,960 --> 00:31:17,911 o persoal do curso e eu- pensar sobre o que é que queremos CS50 sendo, 700 00:31:17,911 --> 00:31:19,910 e voltar á primeira principios, por así dicir, 701 00:31:19,910 --> 00:31:22,760 considerando que é o que queremos este curso para parecer e ser 702 00:31:22,760 --> 00:31:23,740 como polos seus alumnos. 703 00:31:23,740 --> 00:31:26,480 E entón verás no problema definir a cero, así como, unha invitación 704 00:31:26,480 --> 00:31:28,780 para dar un ollo ao que URL que resume 705 00:31:28,780 --> 00:31:33,270 algunhas das motivacións detrás do seguintes características de caída de 2016. 706 00:31:33,270 --> 00:31:35,570 >> Entón, como pode ter recollido do TL: apostila DR, 707 00:31:35,570 --> 00:31:39,060 o programa de hoxe, así como de o catálogo de cursos, este ano, en CS50, 708 00:31:39,060 --> 00:31:42,540 vostede se espera só para participar today-- así traballo ben done-- 709 00:31:42,540 --> 00:31:45,960 ea última charla en 21 de novembro. 710 00:31:45,960 --> 00:31:49,150 E é benvido, pero non se espera que ver esas charlas no medio, 711 00:31:49,150 --> 00:31:51,180 porque o que estamos facendo este ano, está tirando 712 00:31:51,180 --> 00:31:52,661 en tempo real o material do curso. 713 00:31:52,661 --> 00:31:54,660 Entón, todo vai estar corrente e incorporada 714 00:31:54,660 --> 00:31:57,410 o mellor que can-- eventos actuais e conversacións que persoas poden 715 00:31:57,410 --> 00:32:00,400 ter na industria no mundo, pero facendo que o material 716 00:32:00,400 --> 00:32:03,892 dispoñible, como un resultado, mesmo earlier-- completo con transcricións de texto completo 717 00:32:03,892 --> 00:32:05,850 e investigación ea ligazóns a outros recursos. 718 00:32:05,850 --> 00:32:07,930 >> E, de feito, fomos reivindicando por algún tempo 719 00:32:07,930 --> 00:32:10,830 e nós agora crer, que podemos crear, dixitalmente, 720 00:32:10,830 --> 00:32:15,170 un máis envolvente, a máis atractiva experiencia educativa, en oposición 721 00:32:15,170 --> 00:32:19,110 para a reunir aquí preto de 23 veces en persoa, escoitando alguén como eu 722 00:32:19,110 --> 00:32:22,925 simplemente falar ciencia da computación, en oposición ao compromiso de forma máis activa. 723 00:32:22,925 --> 00:32:25,800 Entón verás no currículo do curso un esbozo do semestre aquí, 724 00:32:25,800 --> 00:32:27,840 xunto con cando conferencias ser filmado, para o cal está 725 00:32:27,840 --> 00:32:29,710 Benvido, pero non esperaba, e cando eles van 726 00:32:29,710 --> 00:32:31,640 ser lanzado na web do curso. 727 00:32:31,640 --> 00:32:34,300 >> E o que imos facer aquí en Mércores a partir da próxima semana, 728 00:32:34,300 --> 00:32:37,362 é moito máis intimamente, con só aquelas persoas que queiran participar, 729 00:32:37,362 --> 00:32:39,820 é un chamado camiña a través, onde e as cabezas do curso 730 00:32:39,820 --> 00:32:41,730 vai realmente facer as cousas un pouco máis íntima 731 00:32:41,730 --> 00:32:44,313 aquí abaixo na orquestra sección, aínda teñen algunha tecnoloxía 732 00:32:44,313 --> 00:32:46,365 e percorrer o conxunto de problemas semana en curso, 733 00:32:46,365 --> 00:32:50,020 e ofrecer-lle particularly-- entre Os menos comfortable-- aínda máis 734 00:32:50,020 --> 00:32:52,790 orientación que pode querer ou precisa para o reto da semana. 735 00:32:52,790 --> 00:32:55,820 E do mesmo xeito, para os que non poden ver aqueles en persoa, non é gran cousa. 736 00:32:55,820 --> 00:32:58,486 Non será semellante conducido por un dos cadros superiores do curso, 737 00:32:58,486 --> 00:33:02,650 Zamalya, a mesma oportunidade incorporado no problema define-se. 738 00:33:02,650 --> 00:33:04,960 >> Problema define este ano será lanzado en venres 739 00:33:04,960 --> 00:33:08,080 e xa non fan sete días despois, pero 10 días later-- deliberadamente 740 00:33:08,080 --> 00:33:10,910 superposición con cada problema definido, para mellor acomodar, 741 00:33:10,910 --> 00:33:13,050 Esperamos, fluxo e refluxo en horarios de estudantes, 742 00:33:13,050 --> 00:33:16,550 especialmente cando midterms ou atletismo ou académicos ou extracurriculars 743 00:33:16,550 --> 00:33:18,465 tenden a ir e vir especialmente na metade do semestre. 744 00:33:18,465 --> 00:33:21,340 Isto debe darlle un pouco máis criterio para saber se adiante 745 00:33:21,340 --> 00:33:25,690 Cargando o semana con CS50 ou carga de volta Lo na fin de semana seguinte no seu lugar. 746 00:33:25,690 --> 00:33:28,817 Entón mire para Syllabus do curso aquí para a programación do mesmo. 747 00:33:28,817 --> 00:33:30,900 E vai notar tamén entre os cambios que este ano, 748 00:33:30,900 --> 00:33:34,082 para aqueles máis familiarizado con programación no pasado, 749 00:33:34,082 --> 00:33:36,290 imos comezar o semestre como imos hoxe en perigo, 750 00:33:36,290 --> 00:33:39,730 concentrarse especialmente na linguaxe chamado C, e despois non transición 751 00:33:39,730 --> 00:33:43,430 para PHP, pero para unha linguaxe chamada Python para o fin do semestre 752 00:33:43,430 --> 00:33:46,565 no contexto de programación web, xunto con SQL e JavaScript, 753 00:33:46,565 --> 00:33:48,930 HTML, CSS, e aínda máis. 754 00:33:48,930 --> 00:33:51,790 >> E, en resposta a unha FAQ, que é realmente o caso 755 00:33:51,790 --> 00:33:55,520 que o CS non é tan asustado como eu xa pensei que era, pero é tanto traballo 756 00:33:55,520 --> 00:33:57,280 como eu tiña oído falar que podería ser. 757 00:33:57,280 --> 00:34:03,210 Pero esta é a palabra que aquí están algúns estatísticas do outono de 2015 alumnado, 758 00:34:03,210 --> 00:34:06,460 en que as liñas azuis horizontais representa o número medio de horas 759 00:34:06,460 --> 00:34:06,960 informar. 760 00:34:06,960 --> 00:34:10,570 E vai ver unha media de seis a 10 a 16 12-- quizais 761 00:34:10,570 --> 00:34:14,580 ou así e así por diante, pero con alta varianza para ser claro. 762 00:34:14,580 --> 00:34:18,570 E así entender que non hai só alumnos máis cómodo e menos 763 00:34:18,570 --> 00:34:22,150 cómodo no curso, pero un soporte correspondente 764 00:34:22,150 --> 00:34:25,699 estrutura para estes alumnos por medio do semestre correctamente. 765 00:34:25,699 --> 00:34:29,409 >> Efectivamente, en resposta a unha FAQ, debe tomar CS50 como un primeiro ano? 766 00:34:29,409 --> 00:34:30,139 Absolutamente. 767 00:34:30,139 --> 00:34:32,690 E, de feito, eu me arrepinto Non tendo atopado meu camiño 768 00:34:32,690 --> 00:34:35,170 ou atopar un novo campo que o primeiro ano tamén. 769 00:34:35,170 --> 00:34:39,149 E ten que tomar CS50 con outros cursos, certamente como bem-- 770 00:34:39,149 --> 00:34:41,940 eo Consello Xeral poderiamos dar aos alumnos, que CS50 é probablemente 771 00:34:41,940 --> 00:34:44,929 non o tipo de clase ou clase de introdución que ten que tomar con tres 772 00:34:44,929 --> 00:34:47,199 Outro ou outros catro clases de set-p. 773 00:34:47,199 --> 00:34:50,583 Pero se está tomando dous outros p-set clases, outra cousa, e CS50, 774 00:34:50,583 --> 00:34:51,499 absolutamente controlable. 775 00:34:51,499 --> 00:34:54,900 Tiven moitos alumnos en pasado fixo iso con bastante éxito. 776 00:34:54,900 --> 00:34:57,490 >> E para chegar cara a ese rematar liña con éxito, 777 00:34:57,490 --> 00:35:00,260 O curso ten sections-- diferentes grupos para estudantes 778 00:35:00,260 --> 00:35:03,100 menos cómodo, máis cómodo, e nalgún lugar no medio, 779 00:35:03,100 --> 00:35:04,850 polo que no transcurso da primeiro conxunto de problemas, 780 00:35:04,850 --> 00:35:06,360 lle será solicitada a describir a si mesmo. 781 00:35:06,360 --> 00:35:09,151 E se está entre os menos cómodo, é o tipo de cousas 782 00:35:09,151 --> 00:35:10,420 que acaba de vez sei. 783 00:35:10,420 --> 00:35:13,010 E, de feito, esta foi a crecemento demográfico no CS50 784 00:35:13,010 --> 00:35:14,090 hai moi poucos anos. 785 00:35:14,090 --> 00:35:17,680 >> A partir de finais do ano pasado para exemplo, o 58% da clase 786 00:35:17,680 --> 00:35:20,560 Describíronse como entre aqueles menos cómodo, 787 00:35:20,560 --> 00:35:23,210 con 9% entre aqueles máis cómodo, e, a continuación, 788 00:35:23,210 --> 00:35:25,900 os outros alumnos alí vermello se describen 789 00:35:25,900 --> 00:35:27,890 como algures no medio. 790 00:35:27,890 --> 00:35:31,980 E vai ver aquí os temas xeral e programación de seccións, as cales 791 00:35:31,980 --> 00:35:34,820 son ofrecidos en persoa, en tempo real, co curso de 792 00:35:34,820 --> 00:35:38,320 incrible equipo de bolseiros de ensino e os asistentes do curso, algúns dos cales 793 00:35:38,320 --> 00:35:39,660 vai atopar en só un momento. 794 00:35:39,660 --> 00:35:42,993 >> Seccións si, como podes ver, a vontade ser luns e martes e mércores, 795 00:35:42,993 --> 00:35:45,910 para permitir-lle mergullo en despois de se implican, así 796 00:35:45,910 --> 00:35:48,110 escoller, durante o charla no inicio daquela semana. 797 00:35:48,110 --> 00:35:51,420 E despois do expediente, que Certamente, cada ano que pasa, 798 00:35:51,420 --> 00:35:54,110 non foron menos dun desafiar ao curso. 799 00:35:54,110 --> 00:35:57,040 E este ano, non estamos a planear só para exercer o cargo horas-- un 800 00:35:57,040 --> 00:36:00,300 nun oportunidades de axuda para alumnos os mércores ás xoves 801 00:36:00,300 --> 00:36:03,790 e os domingos, a última destas sendo pola tarde por deseño 802 00:36:03,790 --> 00:36:06,910 para reducir algún do esforzo que invariabelmente xorde con altas horas da noite 803 00:36:06,910 --> 00:36:10,180 p-settting cun prazo looming-- pero tamén será ofrecido o horario de expediente 804 00:36:10,180 --> 00:36:14,920 ás segundas e martes e Cuartas e venres e sábados, 805 00:36:14,920 --> 00:36:17,080 grazas aos nosos amigos no HSA. 806 00:36:17,080 --> 00:36:20,330 >> CS50 agora ten o seu propio espazo para estudantes e persoal CS50, 807 00:36:20,330 --> 00:36:23,070 na parte superior de 67 Mount Auburn Street, alí mesmo na Harvard Square. 808 00:36:23,070 --> 00:36:26,340 A visión para o que é que CS50 de TFS e CAS ao longo da semana, 809 00:36:26,340 --> 00:36:29,052 practicamente durante a maior días, vai estar alí para o apoio. 810 00:36:29,052 --> 00:36:30,760 Entón, se ten algún pregunta nun p-set 811 00:36:30,760 --> 00:36:33,093 ou se está sentindo un pouco bloqueadas ou un pouco confuso, 812 00:36:33,093 --> 00:36:35,640 e diaños, ten unha hora ou media hora entre as clases, 813 00:36:35,640 --> 00:36:38,920 especialmente no square-- podes pop e ter esa pregunta contestada 814 00:36:38,920 --> 00:36:41,720 de ter esa confusión clarified-- moi no espírito, 815 00:36:41,720 --> 00:36:45,490 está familiarizado, da matemática propio centro de preguntas de matemáticas do departamento, 816 00:36:45,490 --> 00:36:49,300 pero practicamente todo o día por [? Gcal?] Que poremos en liña. 817 00:36:49,300 --> 00:36:52,400 >> Explicacións tamén está dispoñible para os estudantes, libremente do curso de 818 00:36:52,400 --> 00:36:54,750 propio persoal se quere máis íntima dun nun, 819 00:36:54,750 --> 00:36:58,940 ou dous ou tres compañeiros de clase única, traballando cun dos membros do equipo do curso. 820 00:36:58,940 --> 00:37:02,320 E, de feito, estas aquí son só algúns dos membros do equipo do curso, 821 00:37:02,320 --> 00:37:04,120 algúns dos cales vai reunir-se en só un momento. 822 00:37:04,120 --> 00:37:07,440 De feito, CS50 propia cabeza de ensino compañeiro, 823 00:37:07,440 --> 00:37:09,790 e claro cabeza asistente e preceptor, 824 00:37:09,790 --> 00:37:12,998 podería vir enriba, permiten Los para dicir Hola. 825 00:37:12,998 --> 00:37:22,498 >> [Aplausos] 826 00:37:22,498 --> 00:37:23,456 COLUMNA 1: [inaudível]. 827 00:37:23,456 --> 00:37:51,842 828 00:37:51,842 --> 00:37:57,856 >> [Aplausos] 829 00:37:57,856 --> 00:37:58,814 COLUMNA 2: [inaudível]. 830 00:37:58,814 --> 00:38:17,240 831 00:38:17,240 --> 00:38:27,238 >> [Aplausos] 832 00:38:27,238 --> 00:38:28,196 COLUMNA 3: [inaudível]. 833 00:38:28,196 --> 00:38:58,951 834 00:38:58,951 --> 00:39:03,120 >> [Aplausos] 835 00:39:03,120 --> 00:39:06,740 >> DAVID Malan: E nos permiten levar a bordo dous dos CS50 da maioría 836 00:39:06,740 --> 00:39:09,730 altos funcionarios, Rob e Zamayla tamén. 837 00:39:09,730 --> 00:39:15,120 >> [Aplausos] 838 00:39:15,120 --> 00:39:17,226 >> Efectivamente, tanto Rob e Zamayla estiveron connosco 839 00:39:17,226 --> 00:39:19,940 por tanto tempo, que eu era capaz para entrar en arquivos do CS50 840 00:39:19,940 --> 00:39:22,470 e creo que moi SD metragem deles participando 841 00:39:22,470 --> 00:39:25,402 no escenario se hai uns anos. 842 00:39:25,402 --> 00:39:26,110 ROB: [inaudível]. 843 00:39:26,110 --> 00:39:53,660 844 00:39:53,660 --> 00:39:59,247 >> [Aplausos] 845 00:39:59,247 --> 00:40:00,080 ZAMAYLA: [inaudível] 846 00:40:00,080 --> 00:40:50,888 847 00:40:50,888 --> 00:40:52,467 >> [Aplausos] 848 00:40:52,467 --> 00:40:53,425 DAVID Malan: Grazas. 849 00:40:53,425 --> 00:40:56,160 850 00:40:56,160 --> 00:40:58,030 Así, ademais destas os membros do equipo aquí, 851 00:40:58,030 --> 00:41:01,662 CS50 ten un equipo de case 100 os funcionarios, os cales 852 00:41:01,662 --> 00:41:04,370 estará dispoñible para seccións e horas de oficina e moito máis. 853 00:41:04,370 --> 00:41:06,920 E, como Rob di tamén, este é a revisión máis significativa 854 00:41:06,920 --> 00:41:09,534 de CS50 nos 10 anos que Eu estiven no [inaudível]. 855 00:41:09,534 --> 00:41:12,200 [Inaudível] centrado especialmente na subministración dunha estrutura de soporte, 856 00:41:12,200 --> 00:41:14,050 aparar fóra unha morea de a maior que foi 857 00:41:14,050 --> 00:41:16,870 acumulada en 10 anos desenvolvementos de iterativos 858 00:41:16,870 --> 00:41:18,120 en conxuntos de problemas do curso. 859 00:41:18,120 --> 00:41:21,470 >> Polo tanto, este ano, non só en clase, pero Tamén baixo a forma do problema do curso 860 00:41:21,470 --> 00:41:24,800 conxuntos, ten que atopar as cousas para ser máis racionalizado, Trimmer, moi 861 00:41:24,800 --> 00:41:26,700 máis manexable que o ano pasado, como nós 862 00:41:26,700 --> 00:41:31,330 publicar algunha da equipaxe que é desenvolvido pola natureza do ano en evolución 863 00:41:31,330 --> 00:41:32,970 tras ano e iteración. 864 00:41:32,970 --> 00:41:35,110 Así, o novo e mellorado comeza hoxe. 865 00:41:35,110 --> 00:41:37,860 >> Vai coñecer un pouco máis da equipo fóra do curso no [inaudível] 866 00:41:37,860 --> 00:41:40,186 ás 2:30, onde serviu, como unha tradición, bolo. 867 00:41:40,186 --> 00:41:42,060 Hai algo máis bolo que iso, pero vai 868 00:41:42,060 --> 00:41:44,690 meet Erin e Tobias e outros aínda. 869 00:41:44,690 --> 00:41:46,470 E deixe-me dar-lle un paseo antes de escoitar 870 00:41:46,470 --> 00:41:49,600 dalgúns dos outros membros do equipo na clase, que espera tamén. 871 00:41:49,600 --> 00:41:52,730 En realidade, sempre comezar CS50 de semestre do próximo sábado, 872 00:41:52,730 --> 00:41:54,330 co que se chama Día CS50 Puzzles. 873 00:41:54,330 --> 00:41:56,710 >> Non ten nada que ver con ciencia da computación, por si só, 874 00:41:56,710 --> 00:41:58,669 pero con preto de problema resolvendo de forma máis xeral. 875 00:41:58,669 --> 00:42:01,210 E, se o decide participar, por algúns dos convites, 876 00:42:01,210 --> 00:42:03,460 podes ver porta caeu ou na fase aquí, 877 00:42:03,460 --> 00:42:05,830 é unha oportunidade en equipos de dous ou tres ou catro, 878 00:42:05,830 --> 00:42:10,680 para participar de puzzles e pizza e premios e more-- hoxe, 879 00:42:10,680 --> 00:42:12,560 Sexa conectado para máis. 880 00:42:12,560 --> 00:42:15,082 >> Atoparás tamén que todo Venres, en Fire and Ice, 881 00:42:15,082 --> 00:42:16,790 O CS50 traer un todo grupo de estudantes 882 00:42:16,790 --> 00:42:19,100 para o xantar, para facer un gran clase sentirse máis íntimo, 883 00:42:19,100 --> 00:42:21,820 e, xeralmente, achegar ex-alumnos e amigos da industria 884 00:42:21,820 --> 00:42:24,710 para falar do que eles teñen foi ata desde a graduación. 885 00:42:24,710 --> 00:42:27,820 Do mesmo xeito, este ano, será que inaugurar a primeira CS50 50 886 00:42:27,820 --> 00:42:31,390 codificación contest-- a medio do semestre oportunidade de permitir que todos 887 00:42:31,390 --> 00:42:35,430 nunha opción na base, para ter un desafío de xuízo contra os compañeiros, 888 00:42:35,430 --> 00:42:39,250 de novo en equipos de dous, tres ou catro, usando só que a programación 889 00:42:39,250 --> 00:42:41,920 savvy que entón baixo o cinto despois de só seis ou sete 890 00:42:41,920 --> 00:42:44,710 semanas de clase, e participando neste tipo de competición 891 00:42:44,710 --> 00:42:50,261 online-- se desexa mellorar o seu propio habilidades aínda máis nese desafío. 892 00:42:50,261 --> 00:42:52,760 Ao final do semestre é o chamado CS50 Hackathon-- 893 00:42:52,760 --> 00:42:56,970 unha oportunidade que comeza ás 7:00 PM remata ás 07h00, e ao longo do camiño 894 00:42:56,970 --> 00:43:01,900 Son 12 horas da noite en que a mergullo en project-- final da Claro 895 00:43:01,900 --> 00:43:04,820 unha oportunidade para proxectar e aplicar a maioría calquera cousa de interese 896 00:43:04,820 --> 00:43:06,980 para ti co seu ensino a dirección de compañeiros. 897 00:43:06,980 --> 00:43:09,600 Ao redor de 09:00 nós normalmente serven pizza, 1:00 AM, 898 00:43:09,600 --> 00:43:13,210 Philippe de, e os poucos de nós que aínda están acordados ás 5:00 AM, 899 00:43:13,210 --> 00:43:16,310 son shuttle bussed abaixo da estrada para IHOP no almorzo. 900 00:43:16,310 --> 00:43:19,340 >> E despois de algúns días máis tarde é o chamado CS50 fare-- 901 00:43:19,340 --> 00:43:23,450 un fin de exposición semestre en celebración de quão lonxe tantos 902 00:43:23,450 --> 00:43:28,200 de CS50 estudantes viñeron de semana de cero ata a semana pasada, 903 00:43:28,200 --> 00:43:32,610 e tendo en conta que o 73% dos compañeiros e seu este ano 904 00:43:32,610 --> 00:43:34,840 Nunca fixo un curso de CS antes. 905 00:43:34,840 --> 00:43:39,226 De feito, para enfatizar que logo, aquí É máis algúns rostros do persoal do CS50. 906 00:43:39,226 --> 00:43:40,184 COLUMNA 4: [inaudível]. 907 00:43:40,184 --> 00:43:45,909 908 00:43:45,909 --> 00:43:46,867 COLUMNA 5: [inaudível]. 909 00:43:46,867 --> 00:43:51,332 910 00:43:51,332 --> 00:43:52,290 COLUMNA 6: [inaudível]. 911 00:43:52,290 --> 00:43:55,276 912 00:43:55,276 --> 00:43:56,234 COLUMNA 7: [inaudível]. 913 00:43:56,234 --> 00:44:01,727 914 00:44:01,727 --> 00:44:02,643 COLUMNA 8: [inaudível] 915 00:44:02,643 --> 00:44:10,066 916 00:44:10,066 --> 00:44:11,024 COLUMNA 9: [inaudível]. 917 00:44:11,024 --> 00:44:14,475 918 00:44:14,475 --> 00:44:15,461 >> COLUMNA 4: [inaudível]. 919 00:44:15,461 --> 00:44:16,461 >> COLUMNA 10: [inaudível]. 920 00:44:16,461 --> 00:44:21,456 921 00:44:21,456 --> 00:44:23,438 COLUMNA 11: [inaudível]. 922 00:44:23,438 --> 00:44:24,438 COLUMNA 12: [inaudível]. 923 00:44:24,438 --> 00:44:30,438 924 00:44:30,438 --> 00:44:31,396 COLUMNA 13: [inaudível] 925 00:44:31,396 --> 00:44:37,360 926 00:44:37,360 --> 00:44:40,342 >> COLUMNA 14: [inaudível]. 927 00:44:40,342 --> 00:44:42,863 >> COLUMNA 13: [inaudível]. 928 00:44:42,863 --> 00:44:43,821 COLUMNA 15: [inaudível] 929 00:44:43,821 --> 00:44:48,785 930 00:44:48,785 --> 00:44:49,785 COLUMNA 16: [inaudível]. 931 00:44:49,785 --> 00:44:53,761 932 00:44:53,761 --> 00:44:55,252 >> COLUMNA 11: [inaudível] 933 00:44:55,252 --> 00:44:57,773 934 00:44:57,773 --> 00:44:58,731 COLUMNA 5: [inaudível]. 935 00:44:58,731 --> 00:45:11,250 936 00:45:11,250 --> 00:45:15,130 DAVID Malan: Algúns do equipo son eles mesmos compras clases. 937 00:45:15,130 --> 00:45:17,760 Pero se eses membros do persoal CS50 está aquí, 938 00:45:17,760 --> 00:45:19,230 podería vir enriba por só un momento. 939 00:45:19,230 --> 00:45:23,450 TFS do CS50 e CAs e [? equipo?] membros aqui-- estes son só algúns 940 00:45:23,450 --> 00:45:28,880 do faces-- un dos cales só vin, e algúns outro-- e algúns outros 941 00:45:28,880 --> 00:45:30,020 aínda. 942 00:45:30,020 --> 00:45:33,242 Por que non podemos ir adiante e facer vós unha pausa de cinco minutos. 943 00:45:33,242 --> 00:45:35,450 Se precisa de pato para clases de tenda, todo ben. 944 00:45:35,450 --> 00:45:38,900 E en cinco minutos, imos retomar, tendo un ollar para o primeiro Scratch-- 945 00:45:38,900 --> 00:45:42,420 da nosa linguaxe de programación, atender o persoal do curso aquí un pouco máis, 946 00:45:42,420 --> 00:45:45,020 e en definitiva, concentrar no conxunto de problemas cero. 947 00:45:45,020 --> 00:45:46,710 Entón, imos estar de volta en cinco minutos. 1 00:45:46,864 --> 00:45:47,370 >> Todo ben. 2 00:45:47,370 --> 00:45:48,590 Entón, estamos de volta. 3 00:45:48,590 --> 00:45:51,330 E no noso restantes xa hoxe, o obxectivo 4 00:45:51,330 --> 00:45:54,320 é nivelar o terreo de xogo en termos dalgunha terminoloxía, 5 00:45:54,320 --> 00:45:55,297 en termos de algunhas ideas. 6 00:45:55,297 --> 00:45:57,380 Xa que, de feito, segundo algúns dos gráficos anteriores, 7 00:45:57,380 --> 00:46:00,130 alí vai ser unha serie de niveis de experiencia na clase, 8 00:46:00,130 --> 00:46:03,210 algúns de cuxos alumnos teñen tomado algunha programación antes, 9 00:46:03,210 --> 00:46:04,200 algúns dos cales non teñen. 10 00:46:04,200 --> 00:46:07,430 E así, con este primeiro problema e establecer con este primeiro idioma 11 00:46:07,430 --> 00:46:10,830 temos unha oportunidade para comezar tomando para concedida a partir de hoxe 12 00:46:10,830 --> 00:46:12,960 algún vocabulario ea idea común. 13 00:46:12,960 --> 00:46:15,590 >> E nós imos facelo por medio de primeira languages-- do curso 14 00:46:15,590 --> 00:46:21,070 Ademais de C e Python e JavaScript e SQL e HTML e CSS, 15 00:46:21,070 --> 00:46:24,450 imos concentrar inicialmente e só para o problema de definir a cero 16 00:46:24,450 --> 00:46:28,160 nesta linguaxe gráfica, chamada Cero, desenvolvido polo Laboratorio de Medios do MIT 17 00:46:28,160 --> 00:46:30,880 por debaixo da estrada, para axudar estudantes e nenos especialmente 18 00:46:30,880 --> 00:46:35,070 expresar-se algorithmically-- dun modo máis consistente co que 19 00:46:35,070 --> 00:46:37,300 podemos chamar de pensamento computacional. 20 00:46:37,300 --> 00:46:40,985 >> E é unha lingua útil porque moi rapidamente a próxima semana nunha semana, 21 00:46:40,985 --> 00:46:44,360 é que imos facer a transición cara a unha forma máis linguaxe tradicional e misteriosa chamada 22 00:46:44,360 --> 00:46:46,370 C, que é puramente textual. 23 00:46:46,370 --> 00:46:48,930 Só pode usar o teclado en Para escribir instrucións 24 00:46:48,930 --> 00:46:50,230 como estes en pantalla. 25 00:46:50,230 --> 00:46:52,840 Pero aínda que nunca viu unha linguaxe de programación antes, 26 00:46:52,840 --> 00:46:55,170 en só mirando para tanto, todos sexa enigmático, 27 00:46:55,170 --> 00:47:00,010 probablemente pode adiviñar que probablemente imprime Ola Mundo. 28 00:47:00,010 --> 00:47:02,050 Pero hai unha morea de sobrecarga sintáctica alí. 29 00:47:02,050 --> 00:47:05,770 Non é o hash estraño símbolo ou hash tag enriba. 30 00:47:05,770 --> 00:47:08,900 Hai o ángulo entre parénteses, algúns parénteses, corchetes, semi-colon-- 31 00:47:08,900 --> 00:47:11,880 hai tanta cousa visuais sintaxe que queda no camiño. 32 00:47:11,880 --> 00:47:13,940 Comezamos o curso con Cero para obter 33 00:47:13,940 --> 00:47:17,600 pasado todo intelectualmente distraccións desinteressante, 34 00:47:17,600 --> 00:47:20,290 e concentrar-se nas ideas. 35 00:47:20,290 --> 00:47:22,540 >> En realidade, iso se pode antes. 36 00:47:22,540 --> 00:47:24,830 Este, por iso, a semana será despois. 37 00:47:24,830 --> 00:47:26,760 Isto, neste gráfico Risco linguaxe, 38 00:47:26,760 --> 00:47:29,870 é como podería aplicar esa mesma program-- un programa que, cando se executa, 39 00:47:29,870 --> 00:47:31,340 simplemente di Ola mundo. 40 00:47:31,340 --> 00:47:34,740 E o que é agradable sobre Scratch é que é esta programación gráfica 41 00:47:34,740 --> 00:47:38,780 ambiente que usa pezas do puzzle é bloques, que só en conxunto interbloquear 42 00:47:38,780 --> 00:47:40,440 se ten sentido lóxico para facelo. 43 00:47:40,440 --> 00:47:43,810 E co Scratch pode desenvolver animacións e xogos interactivos 44 00:47:43,810 --> 00:47:47,270 e arte, e calquera número de cousas que que vostede pode imaxinar na súa propia mente, 45 00:47:47,270 --> 00:47:51,200 e implementar las simplemente arrastrando e soltando pezas do puzzle. 46 00:47:51,200 --> 00:47:54,265 >> E, de feito, teremos a posibilidade para expresar algunhas das mesmas ideas 47 00:47:54,265 --> 00:47:56,890 que eu acabo de mencionar un momento atrás no contexto Mike Smith 48 00:47:56,890 --> 00:48:00,670 e buscar as cousas un teléfono book-- como funcións, só a accións, 49 00:48:00,670 --> 00:48:03,070 cousas como loops que facer cousas de novo e de novo, 50 00:48:03,070 --> 00:48:05,170 variables, que é algo que imos presentar, 51 00:48:05,170 --> 00:48:08,086 pero é familiarizado quizais desde algebra-- só algún tipo de espazo reservado 52 00:48:08,086 --> 00:48:10,840 para almacenar un valor que podes Debe expresións booleanas later--, 53 00:48:10,840 --> 00:48:13,720 onde aqueles si non é certo falsas cuestións de antes. 54 00:48:13,720 --> 00:48:17,117 As condicións son aqueles garfos na road-- as ramas por así dicir. 55 00:48:17,117 --> 00:48:19,700 E despois hai algúns columbófilo características que veremos aínda hoxe, 56 00:48:19,700 --> 00:48:22,850 chamados matrices e fíos e eventos, que imos, a continuación, volver máis 57 00:48:22,850 --> 00:48:24,460 tempo en distintos idiomas. 58 00:48:24,460 --> 00:48:26,790 Pero cero permítenos para explorar todos estes. 59 00:48:26,790 --> 00:48:30,779 Entón, aquí en cero, este vermello bloque é o que unha función é tipicamente 60 00:48:30,779 --> 00:48:31,570 vai parecer. 61 00:48:31,570 --> 00:48:35,620 Esta peza de puzzle roxa que ten algún palabra como por exemplo, que é a acción, 62 00:48:35,620 --> 00:48:38,490 e logo, pode ter un argumento ou parameter-- algún 63 00:48:38,490 --> 00:48:41,140 do tipo de personalización o que o bloque fai 64 00:48:41,140 --> 00:48:45,182 de xeito que non está pre-determinada pola MIT que este bloque vermello di. 65 00:48:45,182 --> 00:48:47,390 De feito, poderás ver nun momento que eu son capaz de escribir 66 00:48:47,390 --> 00:48:49,931 as palabras como Ola mundo, ou Ola David, ou ola Zamayla, 67 00:48:49,931 --> 00:48:53,750 ou o que quero, no argumento para ese enigma piece-- a caixa branca 68 00:48:53,750 --> 00:48:54,251 alí. 69 00:48:54,251 --> 00:48:57,166 Mentres tanto, se quero un loop, imos ver que non hai pezas do puzzle que 70 00:48:57,166 --> 00:48:58,640 mirar un pouco de laranxa como este. 71 00:48:58,640 --> 00:49:01,690 E a súa forma de tipo que suxire algo pasa unha e outra vez 72 00:49:01,690 --> 00:49:02,680 nun ciclo. 73 00:49:02,680 --> 00:49:06,800 >> Entón, se eu romper un bloque mundo dicir Hola cun bloque para sempre en perigo, 74 00:49:06,800 --> 00:49:10,307 el só vai continuar a dicir Hola mundo para sempre, literalmente. 75 00:49:10,307 --> 00:49:12,390 Mentres tanto, non hai outra tipo de loop en risco 76 00:49:12,390 --> 00:49:14,348 que imos see-- unha repetición block-- onde, se 77 00:49:14,348 --> 00:49:17,940 saber con antelación as veces quere que o loop para realizar 78 00:49:17,940 --> 00:49:21,850 un número finito de veces en fact-- vostede Pode especificar que, escribindo un número 79 00:49:21,850 --> 00:49:25,380 ou incluso chamar unha variable, como x ou y, como veremos. 80 00:49:25,380 --> 00:49:27,690 >> De feito, variables como I neste caso, que 81 00:49:27,690 --> 00:49:30,109 é un nome común para unha variable enteira que 82 00:49:30,109 --> 00:49:31,900 só almacena unha number-- un completo pode ser, 83 00:49:31,900 --> 00:49:35,470 usar este bloque de laranxa aquí para definir unha variable como a cero. 84 00:49:35,470 --> 00:49:38,900 Aquí está un exemplo no verde dun expresión booleana en perigo. 85 00:49:38,900 --> 00:49:43,700 Aínda que esta parece ser unha matemática fórmula, as desigualdades de matemáticas como este 86 00:49:43,700 --> 00:49:45,320 Realmente son expresións booleanas. 87 00:49:45,320 --> 00:49:46,570 Isto é verdadeiro ou falso. 88 00:49:46,570 --> 00:49:48,300 I é inferior a 50. 89 00:49:48,300 --> 00:49:51,815 É tanto unha resposta si ou non ou resposta certa ou falsa. 90 00:49:51,815 --> 00:49:53,940 E nós imos xeralmente chamamos esas expresións booleana. 91 00:49:53,940 --> 00:49:55,148 E non ten que ser 50. 92 00:49:55,148 --> 00:49:57,970 Pode ser x menos que Y, maior que Y, igual a y-- 93 00:49:57,970 --> 00:50:00,020 calquera número de outras preguntas poden ser feitas. 94 00:50:00,020 --> 00:50:03,250 >> Agora, a primeira vista, isto pode parecer de súpeto moi ousada aquí, e é. 95 00:50:03,250 --> 00:50:06,540 Pero o concepto sabio, é moi familiar de antes. 96 00:50:06,540 --> 00:50:09,370 Se x é menor que y, que dicir o mesmo. 97 00:50:09,370 --> 00:50:12,230 Senón, se x é maior de y, a continuación, dicir o mesmo. 98 00:50:12,230 --> 00:50:14,260 Outro dicir x é igual a y. 99 00:50:14,260 --> 00:50:17,220 Polo tanto, temos un exemplo Hai unha terceira scenario-- 100 00:50:17,220 --> 00:50:20,600 a única terceira possibility-- x é ou maior que, menos, o igual a. 101 00:50:20,600 --> 00:50:22,420 Polo tanto, temos un garfo de tres vías no camiño. 102 00:50:22,420 --> 00:50:26,290 >> E entender o que é legal cero aqui--, ao parecer, ten só un puzzle 103 00:50:26,290 --> 00:50:28,840 peza, neste caso, en que bloque else. 104 00:50:28,840 --> 00:50:32,090 E, con todo, que parece implicar que podes só ten un garfo de dúas vías no camiño. 105 00:50:32,090 --> 00:50:34,631 Pode ir á esquerda ou á dereita, pero que sobre ese terceiro escenario? 106 00:50:34,631 --> 00:50:35,760 E se x é igual a y? 107 00:50:35,760 --> 00:50:36,500 Non é gran cousa. 108 00:50:36,500 --> 00:50:39,640 Tome unha peza de puzzle, puxo outra dentro del 109 00:50:39,640 --> 00:50:45,759 para crear o equivalente semántico de if, else se, else-- e agora 110 00:50:45,759 --> 00:50:47,300 ten o seu garfo de tres vías no camiño. 111 00:50:47,300 --> 00:50:49,091 E, como veremos, o pezas de puzzle do cero 112 00:50:49,091 --> 00:50:51,820 pode ser estirado e medrar, así como empinar máis cousas neles. 113 00:50:51,820 --> 00:50:54,420 Non ten que se encaixan todo no seu tamaño estándar. 114 00:50:54,420 --> 00:50:56,690 >> Isto é algo que vai ver pronto é chamada dunha matriz. 115 00:50:56,690 --> 00:51:00,880 É como un lista-- algún tipo de almacenamento de múltiples pezas de información 116 00:51:00,880 --> 00:51:02,886 nunha variable, non só un número. 117 00:51:02,886 --> 00:51:05,760 Estes veremos un representante da algo chamado multi-Threading. 118 00:51:05,760 --> 00:51:08,280 En realidade, todo o seu Macs e PCs estes días 119 00:51:08,280 --> 00:51:10,810 soporte multi-Threading, que significa que pode literalmente 120 00:51:10,810 --> 00:51:12,390 facer varias cousas á vez. 121 00:51:12,390 --> 00:51:15,390 Pode que o Microsoft Word para arriba no primeiro plano, a traballar nalgún ensaio. 122 00:51:15,390 --> 00:51:17,160 Pode que un navegador na apertura de fondo 123 00:51:17,160 --> 00:51:18,720 G electrónico ou Facebook ou similar. 124 00:51:18,720 --> 00:51:22,730 O seu ordenador pode facer moitas cousas hoxe porque é multi-threaded, 125 00:51:22,730 --> 00:51:26,390 e os programas que están en en particular tamén son multi-threaded. 126 00:51:26,390 --> 00:51:28,970 >> Hai cousas chamadas eventos como ben no mundo do scratch, 127 00:51:28,970 --> 00:51:32,640 e despois hai un xeito tamén, para facer nosas propias pezas do puzzle costume as cousas 128 00:51:32,640 --> 00:51:34,810 en realidade non existen con antelación. 129 00:51:34,810 --> 00:51:38,260 Entón, imos motivar iso do seguinte xeito. 130 00:51:38,260 --> 00:51:40,580 Hai uns anos, cando eu descuberto por primeira vez Scratch 131 00:51:40,580 --> 00:51:43,530 cando eu era en realidade un estudante de graduación no MIT, nós 132 00:51:43,530 --> 00:51:45,640 nos foron designados de facer a lección de casa. 133 00:51:45,640 --> 00:51:47,614 E eu implemented-- que, en retrospectiva, 134 00:51:47,614 --> 00:51:50,780 Foi unha decisión moi pobre porque é a música máis irritante do mundo 135 00:51:50,780 --> 00:51:53,321 para escoitar durante oito horas mentres traballaba no seu homework-- 136 00:51:53,321 --> 00:51:57,180 pero algo que eu chamara Oscar Equipo, que é, se cadra, unha canción familiar. 137 00:51:57,180 --> 00:51:59,820 >> CS50s posúe Jordan Hayashi, un dos nosos empregados máis seniores, 138 00:51:59,820 --> 00:52:03,920 elevouse a para 2015 e agora 2016, xa de volta ao día, 139 00:52:03,920 --> 00:52:06,610 Eu tiña todo indo só en lata de lixo do Oscar. 140 00:52:06,610 --> 00:52:09,320 Agora imos apoiar a reciclaxe e compostaxe. 141 00:52:09,320 --> 00:52:12,050 >> Pero, para pintar o cadro do que podemos facer aquí 142 00:52:12,050 --> 00:52:14,130 e motivar algúns dos os exemplos de nivel máis baixo, 143 00:52:14,130 --> 00:52:16,400 poderiamos obter outro voluntario para só veñen-se 144 00:52:16,400 --> 00:52:18,331 e xogar o meu primeiro deberes sempre? 145 00:52:18,331 --> 00:52:18,830 Imos cara arriba. 146 00:52:18,830 --> 00:52:19,250 Como te chamas? 147 00:52:19,250 --> 00:52:20,030 >> HENRY: Henry. 148 00:52:20,030 --> 00:52:22,660 >> DAVID Malan: Henry, imos para arriba. 149 00:52:22,660 --> 00:52:24,190 Imos cara arriba. 150 00:52:24,190 --> 00:52:27,070 Cabeza de calquera xeito, e verás nun momento, 151 00:52:27,070 --> 00:52:29,870 Eu estou indo a ir adiante e bateu no bandeira verde na man superior dereito 152 00:52:29,870 --> 00:52:31,100 canto, o que significa ir. 153 00:52:31,100 --> 00:52:33,320 A icona de sinal pequena parada vai dicir stop, 154 00:52:33,320 --> 00:52:35,490 e iso é cando comeza e deixar o programa. 155 00:52:35,490 --> 00:52:36,450 Encantado de coñecerte. 156 00:52:36,450 --> 00:52:36,950 Todo ben. 157 00:52:36,950 --> 00:52:39,100 Entón, nós estamos indo a ver as instrucións na pantalla en só un momento. 158 00:52:39,100 --> 00:52:41,450 E só por xogar este xogo para algúns seconds-- confía en min, 159 00:52:41,450 --> 00:52:43,670 Non imos querer xogar todo o camiño para o end-- vai 160 00:52:43,670 --> 00:52:45,470 ter unha noción do que o programa fai. 161 00:52:45,470 --> 00:52:49,170 E máis que centrarse Henry sendo bo ou malo nese xogo, foco 162 00:52:49,170 --> 00:52:52,600 E como foi aplicado por min inicialmente e despois por Jordan. 163 00:52:52,600 --> 00:52:54,640 Noutras palabras, onde están as variables? 164 00:52:54,640 --> 00:52:55,520 Onde están os loops? 165 00:52:55,520 --> 00:52:56,520 Onde están as funcións? 166 00:52:56,520 --> 00:53:00,700 E imos ver se nós non vemos aqueles debaixo do capó. 167 00:53:00,700 --> 00:53:03,660 >> Só ten que premer e arrastrar o lixo para a bandexa apropiada. 168 00:53:03,660 --> 00:54:02,100 >> [Reprodución de música] 169 00:54:02,100 --> 00:54:02,600 Todo ben. 170 00:54:02,600 --> 00:54:03,160 Isto é moi bo. 171 00:54:03,160 --> 00:54:04,286 Por que non podemos para-lo alí. 172 00:54:04,286 --> 00:54:04,786 Grazas. 173 00:54:04,786 --> 00:54:05,830 Parabéns a Henry. 174 00:54:05,830 --> 00:54:07,002 Grazas. 175 00:54:07,002 --> 00:54:10,690 >> [Aplausos] 176 00:54:10,690 --> 00:54:12,450 >> Basta imaxinar a depuración este programa. 177 00:54:12,450 --> 00:54:15,880 Se hai un problema de dous minutos de song-- pero tan 178 00:54:15,880 --> 00:54:17,430 o que está pasando aquí realmente? 179 00:54:17,430 --> 00:54:20,900 Tan complicado como puido comezan a parecer para chegar ao longo do tempo, 180 00:54:20,900 --> 00:54:22,910 en realidade, máis e máis cousas comezaron a caer, 181 00:54:22,910 --> 00:54:25,370 o que é interesante sobre este tipo de example-- 182 00:54:25,370 --> 00:54:27,270 e veremos algunhas outros- é ​​que se 183 00:54:27,270 --> 00:54:30,416 mirar o pasado a complexidade ou a sofisticación do xogo, 184 00:54:30,416 --> 00:54:33,040 hai un edificio moi sinxelo bloques que play-- os cales, 185 00:54:33,040 --> 00:54:35,840 se destilar los aqueles bloques de construción, son moi accesibles 186 00:54:35,840 --> 00:54:37,401 e implementável para si mesmos. 187 00:54:37,401 --> 00:54:39,150 Por exemplo, é Xa fai algún tempo, pero estou 188 00:54:39,150 --> 00:54:42,900 seguro que eu inicialmente fixo cando facendo este partido por primeira vez 189 00:54:42,900 --> 00:54:44,787 eu estaba completamente como procrastinado. 190 00:54:44,787 --> 00:54:47,120 Non centrar en todo na a lóxica ou as pezas do puzzle, 191 00:54:47,120 --> 00:54:50,810 Eu me concentrei nos gráficos e descubrimento o poste de rúa ea lata de lixo 192 00:54:50,810 --> 00:54:51,540 e todo iso. 193 00:54:51,540 --> 00:54:53,456 Pero aqueles eran necesarias ingredientes en primeiro lugar. 194 00:54:53,456 --> 00:54:57,220 E xa que eu rematar de procrastinar e que define o marco xeral, 195 00:54:57,220 --> 00:55:00,337 Eu decidir, deixe-me facer unha peza de caída lixo do ceo. 196 00:55:00,337 --> 00:55:02,170 E veremos Raspadinha Soporta cousas chamadas 197 00:55:02,170 --> 00:55:06,386 caracteres que poden sprites-- teñen diferentes traxes en que 198 00:55:06,386 --> 00:55:07,010 ollar diferente. 199 00:55:07,010 --> 00:55:09,660 >> E por iso eu coloque nunha lata de lixo traxe nunha tal entidade gráfica. 200 00:55:09,660 --> 00:55:12,007 E eu só precisaba a caer do ceo. 201 00:55:12,007 --> 00:55:14,590 E así el saír, risco, como a maioría das linguaxes de programación, 202 00:55:14,590 --> 00:55:18,099 admite os números aleatorios ou números aleatorios tecnicamente pseudocódigo, 203 00:55:18,099 --> 00:55:20,390 de xeito que, arrastrando e deixando caer algunhas pezas do puzzle, 204 00:55:20,390 --> 00:55:22,890 Eu era capaz de ter o lixo veñen de esquerda en primeiro lugar. 205 00:55:22,890 --> 00:55:25,580 E entón a próxima vez que caeu, de a dereita e, a continuación, a partir do medio. 206 00:55:25,580 --> 00:55:28,060 E todo o partido que era só ten lixo que cae do ceo. 207 00:55:28,060 --> 00:55:29,770 Non podes ligar a el ou faga clic sobre el. 208 00:55:29,770 --> 00:55:31,103 Non podía abrir a lata de lixo. 209 00:55:31,103 --> 00:55:32,160 Non podía facer nada. 210 00:55:32,160 --> 00:55:34,450 Pero foi un paso de bebé cara a miña visión final. 211 00:55:34,450 --> 00:55:36,720 >> E despois diso, realmente aplicado algún tipo 212 00:55:36,720 --> 00:55:41,230 de detección de xeito que se premeu e arrastra sobre o anaco de lixo 213 00:55:41,230 --> 00:55:44,350 sobre a lata de lixo, Oscar tapa ía abrir e pechar. 214 00:55:44,350 --> 00:55:47,650 Nada pasaría ao lixo, pero polo menos a tapa vai abrir e pechar. 215 00:55:47,650 --> 00:55:49,642 Entón, a continuación, comprobar, paso dous de dous. 216 00:55:49,642 --> 00:55:52,100 E iso é o que vai ser clave en ambos conxunto de problemas de cero 217 00:55:52,100 --> 00:55:55,970 e na programación dun modo máis xeral, é a tomar estes pequenos pasos moi deliberados. 218 00:55:55,970 --> 00:55:59,390 Porque non só permiten que sinto honesta conseguir moito máis 219 00:55:59,390 --> 00:56:01,250 quickly-- é o peor do mundo 220 00:56:01,250 --> 00:56:06,149 para tratar de aplicar todas Oscar Equipo, logo horas despois bateu a bandeira verde, 221 00:56:06,149 --> 00:56:08,440 e nada funciona como espera porque onde mesmo 222 00:56:08,440 --> 00:56:11,150 comezar a depuración ou para solucionar este programa? 223 00:56:11,150 --> 00:56:12,470 É só esmagadora. 224 00:56:12,470 --> 00:56:16,792 >> E así realmente aperta esta idea de dar pasos de bebé steps-- novo 225 00:56:16,792 --> 00:56:19,000 e novamente-- edificación algo que é, ao final, 226 00:56:19,000 --> 00:56:23,672 realmente impresionante e complexo, pero en primeiro lugar, non é case tan grande así. 227 00:56:23,672 --> 00:56:24,630 De feito, imos facelo. 228 00:56:24,630 --> 00:56:28,989 Déixeme ir adiante e- Acoitelado si existe na web en Scratch.MIT.edu, 229 00:56:28,989 --> 00:56:30,780 e vai ser considerado coma moi novo no problema 230 00:56:30,780 --> 00:56:34,200 definir cero, a especificación para que xa está na páxina web do CS50. 231 00:56:34,200 --> 00:56:35,725 >> Pero iso é o que Raspe en si é. 232 00:56:35,725 --> 00:56:38,210 E non hai realmente só tres áreas principais. 233 00:56:38,210 --> 00:56:40,980 Na esquina superior esquerda existe é a fase de chamada. 234 00:56:40,980 --> 00:56:41,810 Este é cero. 235 00:56:41,810 --> 00:56:43,710 O traxe estándar é un gato. 236 00:56:43,710 --> 00:56:46,950 E este é o mundo rectangular en que podes move-- arriba, abaixo, á esquerda 237 00:56:46,950 --> 00:56:48,130 dereito e algunhas outras cousas. 238 00:56:48,130 --> 00:56:51,839 No medio aquí están as nosas categorías ou os nosos palés de pezas do puzzle, 239 00:56:51,839 --> 00:56:53,630 e cores diferentes significar cousas distintas. 240 00:56:53,630 --> 00:56:56,520 E se picar arredor, verás cousas como loops e condicións 241 00:56:56,520 --> 00:56:58,160 e variables e outros ingredientes. 242 00:56:58,160 --> 00:57:00,060 >> E entón aquí é a área de scripts. 243 00:57:00,060 --> 00:57:03,020 Este é o lugar onde eu poida arrastrar e soltar estas pezas do puzzle para facer as cousas. 244 00:57:03,020 --> 00:57:04,690 Entón imos facer unha cousa desas. 245 00:57:04,690 --> 00:57:06,630 Déixeme ir adiante e- e sei onde está. 246 00:57:06,630 --> 00:57:10,110 Entón, eu vou inmediatamente prema onde eu sei que as cousas están listas para ser, 247 00:57:10,110 --> 00:57:13,140 pero apuntando e premendo e bisbilhotar son inevitables. 248 00:57:13,140 --> 00:57:15,320 Entón, cando a bandeira verde premendo, o que quero facer? 249 00:57:15,320 --> 00:57:17,100 Eu vou facelo. 250 00:57:17,100 --> 00:57:20,699 Eu estou indo a arrastrar este puzzle vermello peza, dicir Hola por dous segundos, 251 00:57:20,699 --> 00:57:21,490 e deixe-me facer zoom. 252 00:57:21,490 --> 00:57:23,865 >> E eu vou cambiar isto para ser o que quero que ser-- 253 00:57:23,865 --> 00:57:26,471 Ola mundo por dous segundos é bo. 254 00:57:26,471 --> 00:57:28,970 Agora eu vou prema o bandeira verde, ou se realmente quero, 255 00:57:28,970 --> 00:57:31,820 Podo pantalla completa lo e despois volver. 256 00:57:31,820 --> 00:57:34,060 El só vai manter todo nunha ventá. 257 00:57:34,060 --> 00:57:36,141 Verde Ola mundo flag--. 258 00:57:36,141 --> 00:57:36,640 Todo ben. 259 00:57:36,640 --> 00:57:38,789 Non todo o que interesante. 260 00:57:38,789 --> 00:57:40,080 Entón deixe-me ir adiante e facelo. 261 00:57:40,080 --> 00:57:41,038 Déixeme probar outro. 262 00:57:41,038 --> 00:57:44,740 Cando a bandeira verde clicked-- imos facer algo parecido a un son. 263 00:57:44,740 --> 00:57:46,880 E teña en conta que, de a caixa de balde que comeza 264 00:57:46,880 --> 00:57:49,910 un son de gato, como é o sprite estándar. 265 00:57:49,910 --> 00:57:52,380 Entón, agora déixeme ir adiante e bateu a bandeira verde agora. 266 00:57:52,380 --> 00:57:53,224 >> [Miando] 267 00:57:53,224 --> 00:57:54,490 >> Aw. 268 00:57:54,490 --> 00:57:55,370 Isto é encantador. 269 00:57:55,370 --> 00:57:57,040 Estou programando. 270 00:57:57,040 --> 00:57:58,550 Entón o que foi que eu fixen? 271 00:57:58,550 --> 00:58:00,430 Isto é o equivalente dun programa. 272 00:58:00,430 --> 00:58:01,600 É evidente que é super sinxelo. 273 00:58:01,600 --> 00:58:05,300 Realmente non tomar tanto esforzo e MIT fixo a maior parte do traballo, 274 00:58:05,300 --> 00:58:07,890 pero eu teño chamado de función. 275 00:58:07,890 --> 00:58:08,940 Eu teño usado unha función. 276 00:58:08,940 --> 00:58:12,480 Eu fixen un pouco de acción, usando só que unha parte do enigma vermello. 277 00:58:12,480 --> 00:58:15,960 >> Ben, se quero facer tres miados nunha fileira? 278 00:58:15,960 --> 00:58:18,570 Deixe-me ir adiante e facer dous e tres. 279 00:58:18,570 --> 00:58:20,910 E teña en conta que cando pair preto dunha parte do enigma, 280 00:58:20,910 --> 00:58:22,970 un pouco de liña branca aparece tipo de magneticamente, 281 00:58:22,970 --> 00:58:25,190 e se encaixará xuntos cando deixar ir. 282 00:58:25,190 --> 00:58:26,600 Imos ver que pasa aquí. 283 00:58:26,600 --> 00:58:27,920 >> [Miando] 284 00:58:27,920 --> 00:58:32,390 285 00:58:32,390 --> 00:58:34,510 >> Hai un erro. 286 00:58:34,510 --> 00:58:35,650 Só escoitar un miado. 287 00:58:35,650 --> 00:58:37,440 Por que podería ser? 288 00:58:37,440 --> 00:58:39,001 Si? 289 00:58:39,001 --> 00:58:39,500 Si. 290 00:58:39,500 --> 00:58:41,650 Nós realmente non oín-lo, pero iso é bo intuición. 291 00:58:41,650 --> 00:58:43,400 Están todos tocando á vez. 292 00:58:43,400 --> 00:58:44,000 Por que? 293 00:58:44,000 --> 00:58:46,587 Ben, o ordenador é só ir para facer o que diga a el para facer. 294 00:58:46,587 --> 00:58:48,670 Entón, se di, son xogo, reproducir o son, reproducir o son, 295 00:58:48,670 --> 00:58:52,887 pero non diga a el para xogar ata estea listo, xogar ata que está feito, 296 00:58:52,887 --> 00:58:54,970 vai soprar a través o programa moi rápido 297 00:58:54,970 --> 00:58:56,830 e non só o que diga a el para facer. 298 00:58:56,830 --> 00:58:59,040 >> Entón, realmente precisa corrixir isto nun par de formas. 299 00:58:59,040 --> 00:59:00,623 Podería só iso, se librar desa. 300 00:59:00,623 --> 00:59:04,180 Déixeme probar este outro puzzle piece-- xogar miado de son ata feito, 301 00:59:04,180 --> 00:59:07,072 a continuación, arrastra tres estes e prema Reproducir. 302 00:59:07,072 --> 00:59:09,430 >> [Miando] 303 00:59:09,430 --> 00:59:13,350 >> Non é realmente very-- grazas você-- moi natural. 304 00:59:13,350 --> 00:59:16,590 Entón por que non deixar eu- me ir para controlar aquí. 305 00:59:16,590 --> 00:59:17,090 Niza. 306 00:59:17,090 --> 00:59:22,230 Espere un segundo, e agora déixeme volver a ruído e son xogo ata feito, 307 00:59:22,230 --> 00:59:24,620 e logo, déixeme esperar un segundo. 308 00:59:24,620 --> 00:59:28,692 E, a continuación, deixe-me ir e obter un máis de son, e aquí imos nós. 309 00:59:28,692 --> 00:59:31,350 >> [Miando] 310 00:59:31,350 --> 00:59:35,930 >> Algo máis natural, pero Isto non é moi eficiente. 311 00:59:35,930 --> 00:59:39,830 Como eu estaba quedando aburrido, ser todos Lo brevemente, premendo adiante e cara atrás 312 00:59:39,830 --> 00:59:42,724 e realmente duplicar o meu trabalho-- practicamente copiar e pegar. 313 00:59:42,724 --> 00:59:44,640 En realidade, se eu control premendo ou dereito premendo, 314 00:59:44,640 --> 00:59:46,500 Podería ter só copiado e pegado. 315 00:59:46,500 --> 00:59:49,870 O que sería unha mellor construción de usar? 316 00:59:49,870 --> 00:59:51,090 Que idea de antes? 317 00:59:51,090 --> 00:59:51,990 >> É, polo tanto, un loop. 318 00:59:51,990 --> 00:59:54,580 E, de feito, se remexia, podemos atopar exactamente isto. 319 00:59:54,580 --> 00:59:57,730 Deixe-me ir a eventos ou mellor control. 320 00:59:57,730 --> 00:59:59,650 Entón repeat-- non Quere que sexa 10 veces. 321 00:59:59,650 --> 01:00:01,370 Isto vai ser aburrido rapidamente. 322 01:00:01,370 --> 01:00:03,380 Pero vou repetir tres veces. 323 01:00:03,380 --> 01:00:06,355 Déixeme volver ao son e reproducir o son ata que se realice. 324 01:00:06,355 --> 01:00:08,480 Déixeme volver Control e só esperar un segundo. 325 01:00:08,480 --> 01:00:10,271 E observen, pode creo que non encaixa, 326 01:00:10,271 --> 01:00:13,520 pero de novo se magneticamente deixar encaixe no lugar, vai medrar para cubrir. 327 01:00:13,520 --> 01:00:14,971 Que xogar agora? 328 01:00:14,971 --> 01:00:18,500 >> [Miando] 329 01:00:18,500 --> 01:00:19,000 OK. 330 01:00:19,000 --> 01:00:19,660 Niza. 331 01:00:19,660 --> 01:00:22,540 E iso é o que sería chamado un programa que tamén é correcto. 332 01:00:22,540 --> 01:00:27,590 El Miou tres veces moi por suposto, pero é mellor deseñado. 333 01:00:27,590 --> 01:00:29,580 Está a usar menos redundancia. 334 01:00:29,580 --> 01:00:30,970 Non copiar e pegar calquera cousa. 335 01:00:30,970 --> 01:00:32,470 Eu só usei unha idea mellor. 336 01:00:32,470 --> 01:00:35,340 >> Agora, iso non é todo o que interesante co Scratch non facer 337 01:00:35,340 --> 01:00:35,930 nada. 338 01:00:35,930 --> 01:00:37,388 Entón, imos facer algo no seu lugar. 339 01:00:37,388 --> 01:00:38,670 Imos facer algo para sempre. 340 01:00:38,670 --> 01:00:39,420 E vostede sabe o que? 341 01:00:39,420 --> 01:00:40,470 Movemento parece interesante. 342 01:00:40,470 --> 01:00:45,760 Imos telo moverse a 10 pasos e bateu xogar agora. 343 01:00:45,760 --> 01:00:46,570 >> OK. 344 01:00:46,570 --> 01:00:49,300 Así podemos tipo de arrastre Lo de volta, e aínda está 345 01:00:49,300 --> 01:00:51,250 correr, porque está facendo iso para sempre. 346 01:00:51,250 --> 01:00:53,150 Así, o circuíto está facendo o que está dicindo para facer, 347 01:00:53,150 --> 01:00:54,650 pero iso non é todo o que interesante. 348 01:00:54,650 --> 01:00:55,310 Imos facelo. 349 01:00:55,310 --> 01:00:59,870 Déixeme engadir un bloque de control, e utilizar unha destas condicións para a primeira vez. 350 01:00:59,870 --> 01:01:03,119 >> Por iso, vai a mover 10 steps-- 10 puntos, 10 píxeles na screen-- 351 01:01:03,119 --> 01:01:04,660 logo vai facer esta pregunta. 352 01:01:04,660 --> 01:01:09,340 Se algo é certo, a continuación, facer algo dentro deste bloque. 353 01:01:09,340 --> 01:01:13,060 Non é que a detección ten un todo banda de expressions-- booleana 354 01:01:13,060 --> 01:01:16,580 cuestións do si non é certo false form-- déixeme facelo. 355 01:01:16,580 --> 01:01:19,260 >> Se touching-- e entón hai este pequeno menú desplegable. 356 01:01:19,260 --> 01:01:20,410 I pode parametrizar iso. 357 01:01:20,410 --> 01:01:23,010 Se tocar na edge-- imos facer algo así. 358 01:01:23,010 --> 01:01:27,310 Entón, se tocar edge-- déixeme volver ao movemento. 359 01:01:27,310 --> 01:01:32,281 E por que non só virar 180 graos? 360 01:01:32,281 --> 01:01:32,780 Todo ben. 361 01:01:32,780 --> 01:01:35,070 Entón, para sempre, mover 10 pasos. 362 01:01:35,070 --> 01:01:37,670 Se está tocando o bordo, xirar 180 graos. 363 01:01:37,670 --> 01:01:39,720 E iso non é o fin do programa porque está nun bloque para sempre, 364 01:01:39,720 --> 01:01:42,053 polo que vai a ir de novo e de novo e de novo e de novo. 365 01:01:42,053 --> 01:01:43,980 Entón, imos ver que pasa. 366 01:01:43,980 --> 01:01:44,785 OK. 367 01:01:44,785 --> 01:01:48,270 Un pouco de buggy, pero legal. 368 01:01:48,270 --> 01:01:51,710 >> E podemos engadir a isto algunhas cousas tolas que non son todos os que intelectualmente 369 01:01:51,710 --> 01:01:52,270 interesante. 370 01:01:52,270 --> 01:01:57,210 Pero se se loita este pequeno micrófono button-- ouch. 371 01:01:57,210 --> 01:01:58,480 Déixeme limpar iso. 372 01:01:58,480 --> 01:02:01,540 Déixeme mellorar isto como eles dirían na TV. 373 01:02:01,540 --> 01:02:05,400 Limpar isto, Gardar e agora vaia scripts. 374 01:02:05,400 --> 01:02:07,500 >> E agora, deixe-me ir ao son. 375 01:02:07,500 --> 01:02:09,002 Deixe-me dar-lle un nome. 376 01:02:09,002 --> 01:02:12,440 Vou chamar este ouch. 377 01:02:12,440 --> 01:02:13,840 E agora xogar ouch son. 378 01:02:13,840 --> 01:02:16,520 Lembre que aparece no pouco menú desplegable. 379 01:02:16,520 --> 01:02:17,612 Vexamos. 380 01:02:17,612 --> 01:02:20,444 >> [AI] 381 01:02:20,444 --> 01:02:24,377 >> [Risas] 382 01:02:24,377 --> 01:02:25,835 Pero podemos cambiar t seu na Moscova. 383 01:02:25,835 --> 01:02:28,106 Podemos ser dúas veces máis irritante. 384 01:02:28,106 --> 01:02:31,760 >> [AI] 385 01:02:31,760 --> 01:02:35,332 >> Ou se nós facelo como 1.000 chanzos de cada vez-- 386 01:02:35,332 --> 01:02:39,900 387 01:02:39,900 --> 01:02:40,670 >> OK. 388 01:02:40,670 --> 01:02:42,295 Entón, nós estamos indo a deixar que un só. 389 01:02:42,295 --> 01:02:45,290 Entón, de novo, a construción de blocks-- I comezou con algo super sinxelo, 390 01:02:45,290 --> 01:02:47,930 e entón eu engade un recurso, engadiu un recurso, engadiu un recurso. 391 01:02:47,930 --> 01:02:50,721 E eu xa non se preocupe como a primeira destas características 392 01:02:50,721 --> 01:02:53,690 implementado como eu continuar a capa cousas enriba. 393 01:02:53,690 --> 01:02:55,430 Entón, en realidade, déixeme facer outro aquí. 394 01:02:55,430 --> 01:03:00,580 Deixe-me ir adiante e abrir un ficheiro Eu trouxo de antelación, chamado Sheep. 395 01:03:00,580 --> 01:03:03,970 >> Entón, ten un pouco diferente personaxe que parece con isto. 396 01:03:03,970 --> 01:03:07,370 E deixe-me ver se eu non poida facer algo usando un contador 397 01:03:07,370 --> 01:03:09,310 neste case-- unha variable chamada. 398 01:03:09,310 --> 01:03:15,540 Eu estou indo a ir adiante e baixo Events-- déixeme ver unha bandeira verde premendo. 399 01:03:15,540 --> 01:03:19,030 Entón deixe-me ir datos, que sei xogar un pouco antes, 400 01:03:19,030 --> 01:03:20,214 é onde as variables son. 401 01:03:20,214 --> 01:03:21,880 E eu estou indo a ir adiante e arrastrar esta. 402 01:03:21,880 --> 01:03:25,144 >> Así, unha variable chamada contador, e Eu estou indo a iniciar a cero. 403 01:03:25,144 --> 01:03:27,560 Podo chamalo anything-- x ou y ou z-- pero na programación, 404 01:03:27,560 --> 01:03:30,410 chamando algo nun semanticamente forma útil, como contador, 405 01:03:30,410 --> 01:03:34,540 que describe o que é, é un moito máis fácil de ler o código máis tarde. 406 01:03:34,540 --> 01:03:37,460 Deixe-me ir adiante e conseguir unha bloquear sempre aquí. 407 01:03:37,460 --> 01:03:41,289 E déixeme ir a aparencia páxina e facer un bloque Say. 408 01:03:41,289 --> 01:03:44,330 Pero o que é legal sobre variables é I Non é necesario só escribir algo 409 01:03:44,330 --> 01:03:47,850 como Ola mundo, que xa feito, podo máis que ir Data 410 01:03:47,850 --> 01:03:50,690 e arrastra miña variable, e mesmo aínda que a forma non moi 411 01:03:50,690 --> 01:03:53,000 mira como debe encaixar, vai medrar para cubrir. 412 01:03:53,000 --> 01:03:58,396 E eu vou só dicir que o contador para un spoiler-- second-- vai contar. 413 01:03:58,396 --> 01:04:00,380 Imos dicir que por un segundo. 414 01:04:00,380 --> 01:04:02,840 Entón eu estou indo a ir e telo esperar por un segundo, 415 01:04:02,840 --> 01:04:04,650 polo que non conta moi rápido. 416 01:04:04,650 --> 01:04:08,430 E, a continuación, por último, contra cambiar por um-- noutras palabras, 417 01:04:08,430 --> 01:04:13,520 incrementar o contador por un valor adicional e facelo para sempre. 418 01:04:13,520 --> 01:04:16,129 >> Así, as ovellas tamén, como un programador, conta de 0. 419 01:04:16,129 --> 01:04:20,350 420 01:04:20,350 --> 01:04:23,740 E se esperarmos o tempo suficiente, vai facelo para sempre. 421 01:04:23,740 --> 01:04:27,740 Pero iso non é exactamente verdade, porque de feito, como imos descubrir unha semana, 422 01:04:27,740 --> 01:04:31,871 enteiros e ordenadores de xeito máis xeral, tecnicamente teñen só unha finite-- ben, 423 01:04:31,871 --> 01:04:33,829 no canto ordenadores, cando eles representan números enteiros, 424 01:04:33,829 --> 01:04:35,670 só ten un número finito de bits. 425 01:04:35,670 --> 01:04:37,860 Estas lámpadas alí só pode contar tan alto 426 01:04:37,860 --> 01:04:39,239 antes de que está fóra de lámpadas. 427 01:04:39,239 --> 01:04:41,590 E tamén un ordenador, só ten tanta memoria, 428 01:04:41,590 --> 01:04:44,640 só ten tantas transistores, por iso só pode contar tan alto. 429 01:04:44,640 --> 01:04:47,409 >> Así, verifícase que as ovellas, Eu penso, pode contar ata 2 millóns 430 01:04:47,409 --> 01:04:48,409 ou algo moi grande. 431 01:04:48,409 --> 01:04:50,325 Entón, nós non imos esperar a que isto ocorre. 432 01:04:50,325 --> 01:04:54,850 Pero, finalmente, un erro ocorrerá que pode ter un mundo moi real 433 01:04:54,850 --> 01:04:55,970 ramificacións. 434 01:04:55,970 --> 01:04:58,861 Pero, ademais das ovellas, que só introduce unha variable. 435 01:04:58,861 --> 01:05:01,110 Imos adiante e abrir algo que eu fixen con antelación 436 01:05:01,110 --> 01:05:07,430 aquí chamado Pet o Cat-- Acariñar o gato aquí. 437 01:05:07,430 --> 01:05:10,420 E observar aquí é pouco bloques, pero cando a bandeira verde 438 01:05:10,420 --> 01:05:12,474 premendo, sempre facendo o seguinte. 439 01:05:12,474 --> 01:05:15,265 Se está tocando o rato pointer-- de xeito que o cursor na pantalla, 440 01:05:15,265 --> 01:05:18,529 o miado de son xogo arrow-- e despois esperar dous segundos. 441 01:05:18,529 --> 01:05:19,570 E só facelo para sempre. 442 01:05:19,570 --> 01:05:22,619 Só ten que esperar constantemente a ver se o pointer-- 443 01:05:22,619 --> 01:05:24,710 o gato está tocando o punteiro. 444 01:05:24,710 --> 01:05:26,060 >> Entón eu bati xogo. 445 01:05:26,060 --> 01:05:26,920 Non está pasando nada. 446 01:05:26,920 --> 01:05:28,980 Pero como eu mover o cursor sobre o gato, 447 01:05:28,980 --> 01:05:31,960 >> [Miando] 448 01:05:31,960 --> 01:05:34,750 >> E se eu afastalo, non acariciar máis o gato. 449 01:05:34,750 --> 01:05:38,090 Entón, algunha lóxica condicional aniñada dentro dun loop. 450 01:05:38,090 --> 01:05:43,070 Como sobre este exemplo, deliberadamente chamado Non pet o gato? 451 01:05:43,070 --> 01:05:45,253 Que isto vai facer? 452 01:05:45,253 --> 01:05:47,880 >> [Miando] 453 01:05:47,880 --> 01:05:50,215 >> Por que non debe xogar co gato? 454 01:05:50,215 --> 01:05:59,440 >> [Miando] 455 01:05:59,440 --> 01:06:00,699 >> OK. 456 01:06:00,699 --> 01:06:03,880 Polo tanto, este é un exemplo dun caso máis. 457 01:06:03,880 --> 01:06:06,482 É un punto de decisión e porque está sentado no circuíto, 458 01:06:06,482 --> 01:06:07,690 ambos están verificados. 459 01:06:07,690 --> 01:06:08,280 Iso é verdade? 460 01:06:08,280 --> 01:06:08,760 Iso é verdade? 461 01:06:08,760 --> 01:06:09,250 Iso é verdade? 462 01:06:09,250 --> 01:06:09,791 Iso é verdade? 463 01:06:09,791 --> 01:06:11,880 E, finalmente, un de aqueles vai aplicar 464 01:06:11,880 --> 01:06:16,480 e así pode escoitar o miado ou o ruxido do león, nese caso. 465 01:06:16,480 --> 01:06:21,400 >> Ben, imos facer un pouco máis extravagante que fixeron con antelación demasiado-- threads. 466 01:06:21,400 --> 01:06:25,210 Así, un fío é só un cousa que un ordenador pode facer. 467 01:06:25,210 --> 01:06:29,349 Así, un programa multi-threaded é un programa que pode facer varias cousas á vez. 468 01:06:29,349 --> 01:06:31,140 E todos estes exemplos ata agora tiveron 469 01:06:31,140 --> 01:06:35,980 só un script, entón a speak-- un programa como este aquí enriba. 470 01:06:35,980 --> 01:06:38,810 Pero teña en conta que este programa ten dous sprites, dous caracteres. 471 01:06:38,810 --> 01:06:40,020 Un deles é un paxaro. 472 01:06:40,020 --> 01:06:40,870 Un deles é un gato. 473 01:06:40,870 --> 01:06:45,080 >> E teña en conta cando premer sobre estes para abaixo esquerda, cada un deles ten os seus propios scripts 474 01:06:45,080 --> 01:06:47,120 ou programas asociados a eles. 475 01:06:47,120 --> 01:06:49,420 E ambos programas, previo aviso, inicio 476 01:06:49,420 --> 01:06:52,600 con clicked-- bandeira cando verde imos ollar para a cat-- 477 01:06:52,600 --> 01:06:54,030 cando a bandeira verde premendo. 478 01:06:54,030 --> 01:06:58,220 E así, de feito, cando bati o xogo agora, dúas cousas van ocorrer á vez. 479 01:06:58,220 --> 01:07:01,750 O gato eo paxaro son ambos vai operar simultaneamente 480 01:07:01,750 --> 01:07:03,815 para crear este efecto. 481 01:07:03,815 --> 01:07:05,440 E pode imaxinar o que está a suceder. 482 01:07:05,440 --> 01:07:08,340 Hai un loop eo paxaro e que o gato está nun bucle. 483 01:07:08,340 --> 01:07:11,270 O paxaro é só saltando como Eu era antes cando dixo ouch. 484 01:07:11,270 --> 01:07:13,040 Pero o gato ten claramente unha vantaxe. 485 01:07:13,040 --> 01:07:16,040 Hai outro bloque de detección que apunta o gato deliberadamente 486 01:07:16,040 --> 01:07:19,836 ao paxaro, neste caso aquí. 487 01:07:19,836 --> 01:07:22,960 Así, poderiamos provocar unha separación, mirando a través destes bloques, o que está pasando. 488 01:07:22,960 --> 01:07:25,460 Pero o ingrediente clave aquí é un deles. 489 01:07:25,460 --> 01:07:28,520 A ave, de xeito que este partido non é totalmente boring-- ou este animation-- 490 01:07:28,520 --> 01:07:30,060 comeza nunha dirección aleatoria. 491 01:07:30,060 --> 01:07:32,890 E o ordenador é escoller un número entre 90 e 180 492 01:07:32,890 --> 01:07:36,110 esencialmente, de xeito que é un pouco Animación diferente de cada vez. 493 01:07:36,110 --> 01:07:39,480 >> E, a continuación, observar aquí, o gato está tocando o paxaro, a continuación, 494 01:07:39,480 --> 01:07:42,030 xogar o león catro sound-- o ruxido. 495 01:07:42,030 --> 01:07:46,330 Pero, mentres tanto na ave de paleta, temos iso. 496 01:07:46,330 --> 01:07:49,229 Para sempre, se non tocar o gato, só manter en movemento tres etapas. 497 01:07:49,229 --> 01:07:50,770 E entón aquí está outra peza do puzzle. 498 01:07:50,770 --> 01:07:52,030 Se é no bordo, ir. 499 01:07:52,030 --> 01:07:54,840 Entón, o paxaro é só unha especie de coidando do seu propio negocio, 500 01:07:54,840 --> 01:07:57,330 só voando arredor e saltando, e é realmente 501 01:07:57,330 --> 01:08:01,780 o gato que a lóxica condicional para determinar se tiña pego o paxaro. 502 01:08:01,780 --> 01:08:02,280 Todo ben. 503 01:08:02,280 --> 01:08:08,800 Entón imos facer outro aquí, está a ser chamado Hi Hi Hi. 504 01:08:08,800 --> 01:08:15,100 E este aquí só fai isto nun loop para sempre. 505 01:08:15,100 --> 01:08:18,925 Pero notice-- como é que imos deixar este programa moi aburrido? 506 01:08:18,925 --> 01:08:21,600 507 01:08:21,600 --> 01:08:22,640 Bata a barra de espazo. 508 01:08:22,640 --> 01:08:27,990 Porque se eu fai iso, o program-- man esquerda 509 01:08:27,990 --> 01:08:31,550 ter en conta que é constantemente listening-- é o prema a tecla espazo. 510 01:08:31,550 --> 01:08:34,090 Se a barra de espazo premida, e se é así, o que fai? 511 01:08:34,090 --> 01:08:35,980 Fai unha técnica moi común. 512 01:08:35,980 --> 01:08:38,590 El define unha variable igual a algún valor. 513 01:08:38,590 --> 01:08:39,741 Pero cambia este valor. 514 01:08:39,741 --> 01:08:41,490 [? Así aspecto?] con base no I shape-- 515 01:08:41,490 --> 01:08:43,160 ten unha variable que escribiu previamente chamado 516 01:08:43,160 --> 01:08:44,770 Silenciado, que só di si ou non. 517 01:08:44,770 --> 01:08:45,880 É o son mudo ou non? 518 01:08:45,880 --> 01:08:46,990 Verdadeiro ou falso? 519 01:08:46,990 --> 01:08:51,580 E noten, eu digo isto-- se silenciado é cero, entón cambiar a un, 520 01:08:51,580 --> 01:08:53,840 else definir mudo-a para cero. 521 01:08:53,840 --> 01:08:55,540 Entón, só tes que virar o valor de cero a un. 522 01:08:55,540 --> 01:08:58,320 Eu podería done-- cambia-lo de dous a tres e 3-2 523 01:08:58,320 --> 01:09:00,162 ou 4:56 ou 5:56. 524 01:09:00,162 --> 01:09:01,870 Pero iso non importa o que os números que eu uso, 525 01:09:01,870 --> 01:09:04,090 mentres eu sigo cambiando-se o contrario. 526 01:09:04,090 --> 01:09:07,290 >> E o máis calquera programador sería só escoller cero e um-- falso e certo, 527 01:09:07,290 --> 01:09:09,510 off e on-- para representar este. 528 01:09:09,510 --> 01:09:10,930 E iso aínda está en execución. 529 01:09:10,930 --> 01:09:12,190 Se eu acertar a barra de espazo novo 530 01:09:12,190 --> 01:09:13,590 >> [SEAL sons] 531 01:09:13,590 --> 01:09:15,440 >> O programa aínda está en execución. 532 01:09:15,440 --> 01:09:18,400 Porque non hai ese outro script que di que, para sempre facer o seguinte. 533 01:09:18,400 --> 01:09:21,390 534 01:09:21,390 --> 01:09:24,770 Se a variable silenciado é igual zero-- por iso, se non está silenciado 535 01:09:24,770 --> 01:09:29,609 é o logic-- se é falsa ou non, logo reproducir o son, 536 01:09:29,609 --> 01:09:30,650 porque non está silenciado. 537 01:09:30,650 --> 01:09:33,358 Debe reproducir o son e, a continuación, creo oi oi oi por dous segundos 538 01:09:33,358 --> 01:09:35,790 e despois esperar, e facelo de novo e de novo e de novo. 539 01:09:35,790 --> 01:09:40,760 >> E así, deste xeito temos un camiño para persoas a-- para programas para interactuar. 540 01:09:40,760 --> 01:09:43,120 E non ten que ser como datada como os outros. 541 01:09:43,120 --> 01:09:46,280 De feito, cutucando circundar-- sen trocadilho intended-- 542 01:09:46,280 --> 01:09:49,250 alguén pasou unha enorme cantidade de tempo en internet execución 543 01:09:49,250 --> 01:09:51,580 PokemonGo en perigo. 544 01:09:51,580 --> 01:09:55,440 Inda geolocates-lo Cambridge ou Allston aquí. 545 01:09:55,440 --> 01:10:03,120 Entón, se quere ver tamén o que a xente pode facer é isto-- menú moi extravagante. 546 01:10:03,120 --> 01:10:04,780 Prema aquí. 547 01:10:04,780 --> 01:10:07,430 >> Ese son eu coas miñas claves de frecha agora. 548 01:10:07,430 --> 01:10:09,446 Eu estou indo a ir despois diso. 549 01:10:09,446 --> 01:10:09,946 Clic. 550 01:10:09,946 --> 01:10:12,949 551 01:10:12,949 --> 01:10:14,240 E agora prema o Pokéball. 552 01:10:14,240 --> 01:10:17,130 553 01:10:17,130 --> 01:10:20,260 É dicir, eu creo que é suposto prema o Pokéball. 554 01:10:20,260 --> 01:10:20,760 Todo ben. 555 01:10:20,760 --> 01:10:22,680 Entón eu fixen iso. 556 01:10:22,680 --> 01:10:23,950 Podo pasar por riba aquí. 557 01:10:23,950 --> 01:10:27,790 E esa persoa implantado un pouco máis Pokeballs máis aqui-- tres Pokeballs. 558 01:10:27,790 --> 01:10:29,950 >> Imos publicar unha ligazón a esta en liña para que poida xogar. 559 01:10:29,950 --> 01:10:32,364 Pero aviso hai só algúns bloques de construción básicos. 560 01:10:32,364 --> 01:10:33,780 Ela parécese moito máis sofisticado, e é. 561 01:10:33,780 --> 01:10:35,905 Isto é impresionante e máis do que sería normalmente 562 01:10:35,905 --> 01:10:37,740 esperar, por suposto para conxunto de problemas cero. 563 01:10:37,740 --> 01:10:40,809 Eu non teño ningunha idea de canto tempo esa persoa pasou en liña. 564 01:10:40,809 --> 01:10:41,850 Pero é todo só un loop. 565 01:10:41,850 --> 01:10:43,180 Hai un xogo de son. 566 01:10:43,180 --> 01:10:44,850 Hai algún tipo de circuíto escoitar a si estou 567 01:10:44,850 --> 01:10:47,558 bater a frecha para arriba e abaixo a frecha ou á esquerda e á dereita, 568 01:10:47,558 --> 01:10:49,834 e logo, se é así, está movendo -lle algún número de píxeles. 569 01:10:49,834 --> 01:10:51,750 E entón se eu premer outro sprite, hai 570 01:10:51,750 --> 01:10:53,390 algún tipo de condición if alí. 571 01:10:53,390 --> 01:10:54,806 Si, iso está quedando moi intensa. 572 01:10:54,806 --> 01:10:56,100 Nós imos parar. 573 01:10:56,100 --> 01:10:57,750 É todos os bloques básicos de construción. 574 01:10:57,750 --> 01:11:01,530 Non hai outros outros ingredientes que os que xa mirou xa. 575 01:11:01,530 --> 01:11:04,670 >> Con todo, aquí, déixeme facer un conxunto final de exemplos 576 01:11:04,670 --> 01:11:06,960 que pinta un cadro moi do que se pode facer aquí. 577 01:11:06,960 --> 01:11:10,481 Aquí está un programa moi sinxelo que só fai isto-- tose, tose, tose. 578 01:11:10,481 --> 01:11:12,480 E con base só en nós miramos ata agora, 579 01:11:12,480 --> 01:11:14,570 onde está o evidente oportunidade de mellora. 580 01:11:14,570 --> 01:11:15,570 Este programa é correcta. 581 01:11:15,570 --> 01:11:17,980 El tose por tres veces, que é o que eu pretendía. 582 01:11:17,980 --> 01:11:19,650 Pero está mal aplicado. 583 01:11:19,650 --> 01:11:20,600 É mal deseñado. 584 01:11:20,600 --> 01:11:22,000 Por que? 585 01:11:22,000 --> 01:11:22,500 Si. 586 01:11:22,500 --> 01:11:23,230 Non é un loop. 587 01:11:23,230 --> 01:11:24,610 E non é tanto que non é un loop, 588 01:11:24,610 --> 01:11:26,400 é que hai unha morea de redundancia. 589 01:11:26,400 --> 01:11:28,830 Non é copiado e código pegado, por así dicir. 590 01:11:28,830 --> 01:11:31,830 E a solución, probablemente é de feito un loop. 591 01:11:31,830 --> 01:11:34,350 Entón deixe-me ir adiante e mellorar enriba diso. 592 01:11:34,350 --> 01:11:36,250 E eu vou arrastralo los para acá. 593 01:11:36,250 --> 01:11:39,986 Deixe-me ir adiante e conseguir unha repetición bloque, cambiar isto para tres. 594 01:11:39,986 --> 01:11:41,860 Eu estou indo a xogar fóra algúns destes bloques. 595 01:11:41,860 --> 01:11:43,150 >> E podes ver que é moi intuitivo. 596 01:11:43,150 --> 01:11:45,691 Arrastrar e soltar e cousas aparecen e desaparecen finalmente. 597 01:11:45,691 --> 01:11:49,170 E podo simplemente arrastrar este aquí, e agora eu teño unha versión máis limpa aínda. 598 01:11:49,170 --> 01:11:50,730 Pero vostede sabe o que? 599 01:11:50,730 --> 01:11:52,940 Hai a oportunidade -Se agora a abstraction-- 600 01:11:52,940 --> 01:11:56,350 para comezar a definir un novo vocabulario que o MIT non anticipar. 601 01:11:56,350 --> 01:11:59,110 Hai que esperar e repita e para sempre e se, 602 01:11:59,110 --> 01:12:02,590 pero o que se eu queira introducir a palabra tose como un bloque? 603 01:12:02,590 --> 01:12:06,230 E se eu queira unha peza do puzzle cuxo propósito na vida é a tose? 604 01:12:06,230 --> 01:12:10,720 >> Ben, imos ollar para esta versión aquí, o que eu fixen como segue. 605 01:12:10,720 --> 01:12:13,579 Magic, eu creei este puzzle anaco aquí, 606 01:12:13,579 --> 01:12:14,870 que cero permítelle. 607 01:12:14,870 --> 01:12:16,787 E, de feito C e Python e JavaScript son 608 01:12:16,787 --> 01:12:18,370 permitirá que faga iso tamén. 609 01:12:18,370 --> 01:12:21,830 Pode crear o seu propio costume pezas que chama o que quere. 610 01:12:21,830 --> 01:12:24,890 Neste caso, tose sente como unha definición razoable. 611 01:12:24,890 --> 01:12:27,880 E, a continuación, con estas pezas abaixo Aquí pode definir o que significa. 612 01:12:27,880 --> 01:12:30,290 >> Eu arrastrado e caeu de esta paleta aqui-- máis 613 01:12:30,290 --> 01:12:33,500 blocks-- este gran vermello bloque, onde eu escriba na tose 614 01:12:33,500 --> 01:12:35,290 como o nome da miña nova peza do puzzle. 615 01:12:35,290 --> 01:12:39,920 E entón eu digo sempre que un usuario chama esa nova peza tose puzzle, 616 01:12:39,920 --> 01:12:41,770 facer unha palabra que dicir e unha espera. 617 01:12:41,770 --> 01:12:46,160 E así ata aquí no meu bloque de repetición, Podo só tossir tres veces. 618 01:12:46,160 --> 01:12:49,972 >> E eu diría, especialmente Se agora ocultar ese detalle. 619 01:12:49,972 --> 01:12:51,430 Quen lle importa como tose é aplicado? 620 01:12:51,430 --> 01:12:54,390 Todo o que me importa como programador que podo tossir. 621 01:12:54,390 --> 01:12:56,280 Eu non me importa como dis é aplicado. 622 01:12:56,280 --> 01:12:58,620 Só me importa que o gato pode dicir algo. 623 01:12:58,620 --> 01:13:02,720 Poida abstraerse ese detalle e incidir só sobre o que está na pantalla aquí. 624 01:13:02,720 --> 01:13:04,400 Pero podo dar un paso máis aló. 625 01:13:04,400 --> 01:13:08,070 >> Teña en conta que aquí, eu teño aplicou o circuíto tres veces. 626 01:13:08,070 --> 01:13:11,560 Pero e se en vez diso eu coller esta versión? 627 01:13:11,560 --> 01:13:14,640 E se, no canto nesta versión aquí, 628 01:13:14,640 --> 01:13:18,730 Só cambiar a miña peza do puzzle para tomar un argumento e entrada en si mesmo? 629 01:13:18,730 --> 01:13:21,100 E esa entrada pode ser un número como tres. 630 01:13:21,100 --> 01:13:24,580 Entón, agora, se eu estou escribindo un programa e quero o gato a tossir, 631 01:13:24,580 --> 01:13:28,270 Podo realmente dicir o puzzle peza cantas veces a tossir, 632 01:13:28,270 --> 01:13:31,990 porque no fondo aquí, un columbófilo versión destas pezas do puzzle personalizado 633 01:13:31,990 --> 01:13:34,500 permíteme especificar que tos realmente leva 634 01:13:34,500 --> 01:13:36,951 un input-- leva un argumento como este. 635 01:13:36,951 --> 01:13:37,700 E vostede sabe o que? 636 01:13:37,700 --> 01:13:38,890 Poida que eu entendo, agarde un minuto. 637 01:13:38,890 --> 01:13:40,680 A tose é o same-- é fundamentalmente 638 01:13:40,680 --> 01:13:42,120 a mesma idea como espirros. 639 01:13:42,120 --> 01:13:44,040 É só un diferente palabra na pantalla. 640 01:13:44,040 --> 01:13:46,550 Poida abstraerse máis e aplicar 641 01:13:46,550 --> 01:13:48,750 esta versión final dun tos, que a primeira vista 642 01:13:48,750 --> 01:13:50,660 é moito máis complexa procura. 643 01:13:50,660 --> 01:13:52,140 Pero teña en conta o que eu fixen. 644 01:13:52,140 --> 01:13:55,930 Teño agora generalized-- genericized realmente-- esta peza de puzzle 645 01:13:55,930 --> 01:13:59,900 a ser chamado dicir palabra n veces. 646 01:13:59,900 --> 01:14:04,410 >> E agora eu teño dúas novas pezas do puzzle aquí definir tose n veces. 647 01:14:04,410 --> 01:14:06,790 E o que fai a función de tose facer? 648 01:14:06,790 --> 01:14:08,420 Que o meu costume facer parte do enigma? 649 01:14:08,420 --> 01:14:11,996 El só chama o bloque digamos, pasando a palabra que quero dicir, 650 01:14:11,996 --> 01:14:13,870 pasando o número de veces que quero dicir. 651 01:14:13,870 --> 01:14:18,210 Porque agora podo aplicar espirro, simplemente dicindo achoo, 652 01:14:18,210 --> 01:14:20,320 neste caso, un determinado número de veces. 653 01:14:20,320 --> 01:14:22,360 >> E por iso estou capas e capas. 654 01:14:22,360 --> 01:14:25,690 E, de novo, a clave aquí non é como eu aplicado, pero o feito 655 01:14:25,690 --> 01:14:28,070 que se eu só literalmente mover los para fóra da pantalla, 656 01:14:28,070 --> 01:14:31,280 vexa como simple, se non moi o meu programa agora parece. 657 01:14:31,280 --> 01:14:33,930 Porque fai o que di, eu abstraído 658 01:14:33,930 --> 01:14:37,640 o que está dentro desa caixa negra. el pasa a ser unha caixa roxa aquí, 659 01:14:37,640 --> 01:14:41,430 pero obstruída fóra o que está dentro porque eu non me importa como funciona. 660 01:14:41,430 --> 01:14:43,650 Só me importa agora que funciona. 661 01:14:43,650 --> 01:14:46,375 >> E, de feito, no problema definir cero, isto é exactamente 662 01:14:46,375 --> 01:14:49,250 o tipo de superposición de ideas que vai teñen a oportunidade de explorar. 663 01:14:49,250 --> 01:14:53,510 É exactamente a oportunidade de aplicar técnicas de resolución de problemas, 664 01:14:53,510 --> 01:14:55,550 para o que é, probablemente, un ambiente descoñecido. 665 01:14:55,550 --> 01:14:57,890 E se non programado antes ou programado antes, 666 01:14:57,890 --> 01:14:59,500 vai descubrir que hai un pouco de algo 667 01:14:59,500 --> 01:15:00,874 neste ambiente para todos. 668 01:15:00,874 --> 01:15:02,770 E con conxunto de problemas un nunha semana, 669 01:15:02,770 --> 01:15:06,630 imos ser trasladada para focando nunha linguaxe de alto nivel chamado 670 01:15:06,630 --> 01:15:09,290 C-- ou mellor, un menor linguaxe de nivel chamada 671 01:15:09,290 --> 01:15:11,347 C-- que é aínda máis poderoso, aínda que sexa 672 01:15:11,347 --> 01:15:12,930 algo máis enigmática a primeira vista. 673 01:15:12,930 --> 01:15:16,740 >> E vai entender por TL de hoxe: DR, que este problema definido ten un menor 674 01:15:16,740 --> 01:15:19,880 a xanela de tempo do que os do futuro, simplemente porque ten que considerar que é moi 675 01:15:19,880 --> 01:15:20,420 accesibles. 676 01:15:20,420 --> 01:15:22,211 E non se preocupe se engadir a clase tarde. 677 01:15:22,211 --> 01:15:23,920 Nós imos solucionar isto antes de tempo. 678 01:15:23,920 --> 01:15:28,480 E antes de suspender os traballos por bolo, imos rematar con só unha mirada de dous minutos 679 01:15:28,480 --> 01:15:30,500 polo que o espera aquí no CS50. 680 01:15:30,500 --> 01:15:40,950 681 01:15:40,950 --> 01:17:20,803 [Reprodución de música] 682 01:17:20,803 --> 01:17:21,302 Todo ben. 683 01:17:21,302 --> 01:17:22,690 Isto é todo para CS50. 684 01:17:22,690 --> 01:17:23,650 Imos velo pronto. 685 01:17:23,650 --> 01:17:25,526 O bolo é agora servido. 686 01:17:25,526 --> 01:17:28,998 687 01:17:28,998 --> 01:18:14,267 [Reprodución de música] 688 01:18:14,267 --> 01:18:16,350 COLUMNA 17: Xa escoitou falar dun ano sabático, xefe? 689 01:18:16,350 --> 01:18:29,490 690 01:18:29,490 --> 01:18:31,920 COLUMNA 18: Se houbese máis baixo o capó. 691 01:18:31,920 --> 01:18:38,279