1 00:00:00,000 --> 00:00:00,479 2 00:00:00,479 --> 00:00:10,830 >> [Música tocando] 3 00:00:10,830 --> 00:00:12,080 [MUSIC - Rossini, "RANZ DES Vaches "do Guilherme Tell] 4 00:00:12,080 --> 00:00:24,222 5 00:00:24,222 --> 00:00:25,472 >> [MUSIC - THE BEAT INGLÊS, "MARÇO DOS CHEFES giratória "] 6 00:00:25,472 --> 00:02:24,538 7 00:02:24,538 --> 00:02:31,510 >> [Aplausos e aclamações] 8 00:02:31,510 --> 00:02:33,520 >> DAVID MALAN: Então isso é CS50. 9 00:02:33,520 --> 00:02:34,730 Meu nome é David Malan. 10 00:02:34,730 --> 00:02:39,250 E 73% de vocês não têm experiência prévia com a ciência da computação, 11 00:02:39,250 --> 00:02:41,300 ao contrário do que se poderia pensar. 12 00:02:41,300 --> 00:02:45,290 Então, hoje, achei que seria desbastar em que a falta de familiaridade, mas também 13 00:02:45,290 --> 00:02:48,970 dar-lhe um sentido de, para aqueles de vocês com mais conforto, que as direções 14 00:02:48,970 --> 00:02:50,550 você pode ir neste semestre. 15 00:02:50,550 --> 00:02:51,890 >> Então, vamos começar com isso. 16 00:02:51,890 --> 00:02:55,490 Eu realmente não tenho idéia do que está dentro de um computador, mesmo que, como você, eu 17 00:02:55,490 --> 00:02:56,780 usá-lo todos os dias. 18 00:02:56,780 --> 00:03:00,000 Mas é uma espécie de caixa, e não há não há muitas entradas para ele. 19 00:03:00,000 --> 00:03:01,350 No mínimo, há, o quê? 20 00:03:01,350 --> 00:03:03,120 Provavelmente um cabo de alimentação. 21 00:03:03,120 --> 00:03:06,640 >> E, de fato, com este ingrediente, eletricidade, parece que estamos a ser capazes de 22 00:03:06,640 --> 00:03:09,490 fazendo um pouco nestes dias. 23 00:03:09,490 --> 00:03:12,130 Contudo, no final do dia, tem que representar as coisas 24 00:03:12,130 --> 00:03:12,860 que nos preocupamos. 25 00:03:12,860 --> 00:03:15,240 Temos que representam informação de alguma forma. 26 00:03:15,240 --> 00:03:18,365 E você provavelmente pelo menos vagamente familiarizados com a idéia de binário ou 27 00:03:18,365 --> 00:03:21,370 pedaços de alguma forma ou de outra, os computadores reduzida a zeros e uns. 28 00:03:21,370 --> 00:03:26,320 Mas podemos abraçar isso e, pelo menos, colocar um pouco de luz para isso? 29 00:03:26,320 --> 00:03:28,880 >> Então, eu tenho esses pequenos lâmpadas de mesa aqui. 30 00:03:28,880 --> 00:03:30,450 Eu tenho uma tomada elétrica aqui. 31 00:03:30,450 --> 00:03:33,930 E eu vou propor que dentro de computador é, pelo menos, um dos 32 00:03:33,930 --> 00:03:37,300 essas coisas, algo capaz de ser ligado ou desligado. 33 00:03:37,300 --> 00:03:40,200 Neste caso, é na verdade uma lâmpada de mesa, mas no nível mais baixo, é algo 34 00:03:40,200 --> 00:03:41,500 chamado um transistor. 35 00:03:41,500 --> 00:03:44,730 >> Mas, no nosso mundo, é uma lâmpada de mesa, de modo Eu estou indo para ir em frente e ligar este 36 00:03:44,730 --> 00:03:47,990 no meu eletricidade aqui. 37 00:03:47,990 --> 00:03:52,970 E eu afirmo que o uso desse simples, dispositivo simples, este interruptor simples, eu 38 00:03:52,970 --> 00:03:54,850 pode representar informações. 39 00:03:54,850 --> 00:03:58,090 Por exemplo, agora, eu sou representando nada, certo? 40 00:03:58,090 --> 00:04:01,820 Estou representando o que eu vou chamar 0 ou falso, o oposto de algo 41 00:04:01,820 --> 00:04:03,130 realmente estar presente. 42 00:04:03,130 --> 00:04:07,050 Mas se eu simplesmente ligar esta opção, agora eu tenho representado a 1. 43 00:04:07,050 --> 00:04:10,720 Então, usando este simples pedaço de memória, se você quiser, eu posso representar 44 00:04:10,720 --> 00:04:11,450 informação. 45 00:04:11,450 --> 00:04:14,350 >> Agora, infelizmente, o meu computador não pode fazer muito. 46 00:04:14,350 --> 00:04:17,430 Ele só pode representar dois valores em todo o mundo - 47 00:04:17,430 --> 00:04:18,620 0 ou 1. 48 00:04:18,620 --> 00:04:21,839 Mas o que é uma solução óbvia, agora, se queremos expandir o nosso computador de 49 00:04:21,839 --> 00:04:25,120 memória e representam mais que apenas 0 e 1? 50 00:04:25,120 --> 00:04:27,060 >> Bem, vamos pegar outro exemplo bit. 51 00:04:27,060 --> 00:04:30,260 Vamos pegar um outro interruptor, outro transistor, mas você gostaria de 52 00:04:30,260 --> 00:04:31,130 pense nisso. 53 00:04:31,130 --> 00:04:34,170 Deixe-me ir em frente e ligar este no meu computador também. 54 00:04:34,170 --> 00:04:38,270 E eu vou afirmar, agora, que por usando um pouco mais de energia elétrica e 55 00:04:38,270 --> 00:04:42,290 tornando mais dessas opções e em fora, eu posso representar mais como 56 00:04:42,290 --> 00:04:43,020 informação. 57 00:04:43,020 --> 00:04:44,660 >> Então, agora, este é um. 58 00:04:44,660 --> 00:04:48,120 Se eu quiser representar agora 2, eu poderia fazer isso. 59 00:04:48,120 --> 00:04:51,510 Mas, normalmente, convenção, como veremos eventualmente ver, vai que eu faça isso. 60 00:04:51,510 --> 00:04:55,260 Portanto, este é 0, esta é uma. 61 00:04:55,260 --> 00:04:56,720 Este seria 2. 62 00:04:56,720 --> 00:04:59,920 E não surpreendentemente, isso seria 3. 63 00:04:59,920 --> 00:05:02,610 >> Assim, deste modo, ainda assim, pode contamos-se ainda mais? 64 00:05:02,610 --> 00:05:06,500 Se eu conseguir um terceiro bit, um terceiro switch, qual é o maior número que puder agora 65 00:05:06,500 --> 00:05:09,720 contar-se a partir de 0? 66 00:05:09,720 --> 00:05:12,020 Então 7 se eu estou começando em 0, certo? 67 00:05:12,020 --> 00:05:15,980 Porque se eu transformar essa luz e realmente ligar esta terceira e última 68 00:05:15,980 --> 00:05:20,090 luz na minha tomada elétrica aqui, então eu tenho a capacidade de representar 69 00:05:20,090 --> 00:05:24,930 nenhum dos dois valores aqui, dois valores aqui, dois valores aqui - 70 00:05:24,930 --> 00:05:32,610 e para que eu possa representar 2 vezes 2 vezes Dois, ou oito valores possíveis. 71 00:05:32,610 --> 00:05:36,340 E se eu começar a contabilidade em 0, assim que é 0, 1, 2, 3, 4, 5, 6, 7. 72 00:05:36,340 --> 00:05:37,480 >> Portanto, este binário. 73 00:05:37,480 --> 00:05:39,420 É realmente tão simples como isso. 74 00:05:39,420 --> 00:05:41,930 E eu diria que este é realmente muito familiar para a maioria 75 00:05:41,930 --> 00:05:43,180 todos nesta sala. 76 00:05:43,180 --> 00:05:45,710 Deixe-me ir em frente e abrir uma editor de texto pouco aqui. 77 00:05:45,710 --> 00:05:49,040 >> E você pode se lembrar de escola primária que tínhamos coisas como as centenas 78 00:05:49,040 --> 00:05:51,970 lugar, o lugar de dezenas, e aqueles lugar. 79 00:05:51,970 --> 00:05:55,040 E lembrar que, se você teve algum decimal número, como algo aleatório 80 00:05:55,040 --> 00:05:59,470 como 123, você faria essencialmente escrever isso na forma 81 00:05:59,470 --> 00:06:00,450 destes três colunas. 82 00:06:00,450 --> 00:06:04,070 E por que é 1, 2, 3 que sabemos como 123? 83 00:06:04,070 --> 00:06:11,220 Bem, na coluna mais à esquerda, temos uma 100, mais dois 10s, de modo que é 120, 84 00:06:11,220 --> 00:06:14,250 mais três 1s, de modo que é 123. 85 00:06:14,250 --> 00:06:17,990 >> Agora, este mundo que nós apenas iluminado é exatamente o mesmo que 86 00:06:17,990 --> 00:06:21,150 você já esteve familiarizado com por anos, Só que agora, as nossas colunas 87 00:06:21,150 --> 00:06:22,060 não são potências de 10. 88 00:06:22,060 --> 00:06:23,780 Eles são apenas potências de 2. 89 00:06:23,780 --> 00:06:27,830 Assim, enquanto que o lugar queridos, este vai ser o lugar duplas, este é 90 00:06:27,830 --> 00:06:29,540 vai ser o lugar de quatro. 91 00:06:29,540 --> 00:06:33,260 >> E porque eu estou usando apenas a mais simples de mecanismos para transformar as coisas 92 00:06:33,260 --> 00:06:37,100 on e off - eletricidade está fluindo ou eletricidade não está fluindo - 93 00:06:37,100 --> 00:06:40,880 Eu não consegue ter a mesma expressão gama de 0 a nove. 94 00:06:40,880 --> 00:06:43,270 Nós estamos indo para mantê-lo super simples neste mundo dos computadores. 95 00:06:43,270 --> 00:06:45,060 Tenho apenas 0 ou 1 - 96 00:06:45,060 --> 00:06:47,890 off ou on, falso ou verdadeiro. 97 00:06:47,890 --> 00:06:52,610 >> E então o que eu estou representando agora é 1, 1, 1, porque cada uma dessas 98 00:06:52,610 --> 00:06:54,000 luzes é iluminada. 99 00:06:54,000 --> 00:06:59,600 Bem, isso me dá um 4, mais um 2, então que é 6, mais um 1, e isso é 7. 100 00:06:59,600 --> 00:07:03,450 E ergo faz essa seqüência de três bits representam o número 7. 101 00:07:03,450 --> 00:07:06,330 >> Então todo esse tempo, dentro do seu computador, ter sido qualquer número de 102 00:07:06,330 --> 00:07:08,090 transistores, qualquer número de bits. 103 00:07:08,090 --> 00:07:10,380 Contudo, no final do dia, pode representar informações 104 00:07:10,380 --> 00:07:12,560 tão simples quanto isso. 105 00:07:12,560 --> 00:07:16,770 Agora, infelizmente, nós só contava até 7 na, até agora, CS50, mas 106 00:07:16,770 --> 00:07:18,550 espero que possamos fazer um pouco melhor que isso. 107 00:07:18,550 --> 00:07:19,550 E, de fato nós podemos. 108 00:07:19,550 --> 00:07:23,570 >> Suponha que nós, como seres humanos apenas decidiu arbitrariamente que vamos 109 00:07:23,570 --> 00:07:28,750 para associar números como 1, e 2, 3, 4, 5, 6, 7, com as letras específicas 110 00:07:28,750 --> 00:07:29,410 o alfabeto. 111 00:07:29,410 --> 00:07:32,350 E por razões históricas, eu vou iniciar um tanto arbitrariamente, mas estou 112 00:07:32,350 --> 00:07:36,880 vai dizer, os seres humanos, nós estamos indo decidir como um padrão, a nível mundial, que 113 00:07:36,880 --> 00:07:43,200 65 representa o número da letra A. 66 irá representar B. Dot, ponto, ponto. 114 00:07:43,200 --> 00:07:45,140 90 irá representar a letra Z. 115 00:07:45,140 --> 00:07:48,000 >> E vamos supor que, se realmente colocar alguns pensei nisso, poderíamos chegar 116 00:07:48,000 --> 00:07:50,860 com os números de pontos de exclamação e letras minúsculas, e de fato, 117 00:07:50,860 --> 00:07:52,710 outras pessoas têm feito isso por nós. 118 00:07:52,710 --> 00:07:56,410 Então, agora nós tinha pedaços com os quais podemos representam números, números com os quais 119 00:07:56,410 --> 00:08:00,130 podemos representar letras, e com cartas agora podemos começar a compor 120 00:08:00,130 --> 00:08:02,650 e-mails e personagens impressão no ecrã. 121 00:08:02,650 --> 00:08:05,850 >> Então deixe-me convidar, se eu pudesse, oito voluntários bravos - 122 00:08:05,850 --> 00:08:09,200 que não se importa que aparece não só na câmera, mas na internet - 123 00:08:09,200 --> 00:08:13,130 para vir aqui e representar oito tais bits, em vez de três. 124 00:08:13,130 --> 00:08:14,380 Assim como sobre um, dois? 125 00:08:14,380 --> 00:08:16,290 Como cerca de três? 126 00:08:16,290 --> 00:08:20,230 Como cerca de quatro horas de luz azul, cinco à final? 127 00:08:20,230 --> 00:08:21,250 Sobre alguém aqui? 128 00:08:21,250 --> 00:08:25,320 Seis na frente, sete na frente, e oito em frente, bem como. 129 00:08:25,320 --> 00:08:29,050 >> Então, eu só aconteceu para vir preparado com um monte de pedaços de papel. 130 00:08:29,050 --> 00:08:34,150 E, estas peças de papel são números que representam as colunas 131 00:08:34,150 --> 00:08:35,809 vocês vão representar. 132 00:08:35,809 --> 00:08:36,740 Então você vai ser - Qual o seu nome? 133 00:08:36,740 --> 00:08:37,570 >> ALUNO: Anna Leah. 134 00:08:37,570 --> 00:08:40,370 >> DAVID MALAN: Anna Leah, você será a coluna 128s. 135 00:08:40,370 --> 00:08:41,059 Você está? 136 00:08:41,059 --> 00:08:41,510 >> ALUNO: Chris. 137 00:08:41,510 --> 00:08:43,620 >> DAVID MALAN: Chris vontade ser a coluna de 64s. 138 00:08:43,620 --> 00:08:44,070 Você está? 139 00:08:44,070 --> 00:08:44,540 >> ALUNO: Dan. 140 00:08:44,540 --> 00:08:46,970 >> DAVID MALAN: Dan vontade ser a coluna de 32s. 141 00:08:46,970 --> 00:08:47,470 >> ALUNO: Pramit. 142 00:08:47,470 --> 00:08:49,430 >> DAVID MALAN: Pramit vontade ser a coluna de 16s. 143 00:08:49,430 --> 00:08:50,290 >> ALUNO: Lillian. 144 00:08:50,290 --> 00:08:51,904 >> DAVID MALAN: Lillian será a 8s. 145 00:08:51,904 --> 00:08:52,768 >> ALUNO: Jill. 146 00:08:52,768 --> 00:08:55,025 >> DAVID MALAN: Jill vontade ser a coluna de 4s. 147 00:08:55,025 --> 00:08:55,400 >> ALUNO: Mary. 148 00:08:55,400 --> 00:08:57,000 >> DAVID MALAN: Mary será o 2s, e? 149 00:08:57,000 --> 00:08:57,470 >> ALUNO: David. 150 00:08:57,470 --> 00:08:59,220 >> DAVID MALAN: David vontade ser a coluna de 1s. 151 00:08:59,220 --> 00:09:02,030 Então, se vocês pudessem pisar um pouco para a frente para que todos possam ver. 152 00:09:02,030 --> 00:09:05,370 O que vocês não vêem é que no volta desses pedaços de papel é uma 153 00:09:05,370 --> 00:09:09,760 pouco cheat sheet que está prestes a instruir os oito bits para cada 154 00:09:09,760 --> 00:09:12,380 levantar a mão ou não levantar a mão. 155 00:09:12,380 --> 00:09:14,100 Se sua mão sobe, eles são representando um 1. 156 00:09:14,100 --> 00:09:17,120 Se sua mão fica para baixo, eles são representa um 0. 157 00:09:17,120 --> 00:09:21,410 >> Enquanto isso, o público deve ser capaz de descobrir, com base nesta 158 00:09:21,410 --> 00:09:26,490 mapeamento, o que a palavra de três letras estes pessoas estão prestes a soletrar. 159 00:09:26,490 --> 00:09:29,700 Assim, em apenas um momento, que você vai ler a primeira linha fora da parte traseira 160 00:09:29,700 --> 00:09:32,880 sua folha de fraude, e você é ou vai aumentar ou não levantar a mão. 161 00:09:32,880 --> 00:09:35,710 Se você é um, você levanta, se você é um 0, você está lá 162 00:09:35,710 --> 00:09:38,594 desajeitadamente, apenas como aquele. 163 00:09:38,594 --> 00:09:40,386 Ir. 164 00:09:40,386 --> 00:09:43,945 O número, em primeiro lugar, esses caras estão representando? 165 00:09:43,945 --> 00:09:47,140 166 00:09:47,140 --> 00:09:48,860 >> 66. 167 00:09:48,860 --> 00:09:49,560 66, certo? 168 00:09:49,560 --> 00:09:52,400 Temos um 1 na coluna 64s, um 1 na coluna 2s. 169 00:09:52,400 --> 00:09:56,340 Isso me dá 66, de modo que parece estar representando B. Então, 170 00:09:56,340 --> 00:09:57,075 vocês têm escrito - 171 00:09:57,075 --> 00:09:58,300 OK, isso é o suficiente. 172 00:09:58,300 --> 00:09:59,430 B. 173 00:09:59,430 --> 00:10:01,610 >> Então agora vamos passar para nossa segunda carta. 174 00:10:01,610 --> 00:10:03,530 Ir. 175 00:10:03,530 --> 00:10:06,860 Quem é o mais rápido em matemática aqui? 176 00:10:06,860 --> 00:10:07,750 Assim, 79. 177 00:10:07,750 --> 00:10:11,840 Mais uma vez, se somarmos todas as colunas em que há a 1, atualmente, apenas 178 00:10:11,840 --> 00:10:14,840 como fizemos antes com o mais simples de exemplos de 7, agora 179 00:10:14,840 --> 00:10:16,140 obter o número 79. 180 00:10:16,140 --> 00:10:19,910 Que de acordo com o nosso mapeamento é o letra O. Então, estamos quase lá. 181 00:10:19,910 --> 00:10:22,590 B, O. E, finalmente, ir. 182 00:10:22,590 --> 00:10:26,420 183 00:10:26,420 --> 00:10:30,120 >> O que eles estão representando agora? 184 00:10:30,120 --> 00:10:31,370 Menos consenso. 185 00:10:31,370 --> 00:10:34,660 186 00:10:34,660 --> 00:10:36,460 Isso é apenas um murmúrio absoluta. 187 00:10:36,460 --> 00:10:40,090 Sim, é de fato 87. 188 00:10:40,090 --> 00:10:40,490 Bom. 189 00:10:40,490 --> 00:10:44,480 >> Então, se nós agora mapear essa volta para - vamos começar a chamar a nossa tabela ASCII, 190 00:10:44,480 --> 00:10:46,450 American Standard Code para Intercâmbio de informações. 191 00:10:46,450 --> 00:10:47,700 Isso nos dá a letra - 192 00:10:47,700 --> 00:10:51,260 193 00:10:51,260 --> 00:10:54,810 não "bo", mas "arco". E isso é um perfeito sugestão para vocês para ter um arco 194 00:10:54,810 --> 00:10:56,100 ea cabeça nas costas. 195 00:10:56,100 --> 00:10:56,980 Muito obrigado. 196 00:10:56,980 --> 00:10:57,886 >> [Aplausos] 197 00:10:57,886 --> 00:10:59,136 >> DAVID MALAN: você pode mantê-los. 198 00:10:59,136 --> 00:11:01,850 199 00:11:01,850 --> 00:11:05,942 Embora, na verdade, alguém como uma lâmpada de mesa, também? 200 00:11:05,942 --> 00:11:07,300 >> [BUZINA DE AUDIÊNCIA] 201 00:11:07,300 --> 00:11:08,390 >> DAVID MALAN: Lâmpada de mesa? 202 00:11:08,390 --> 00:11:10,850 >> [Risos] 203 00:11:10,850 --> 00:11:11,860 >> DAVID MALAN: Sério? 204 00:11:11,860 --> 00:11:13,230 Lâmpadas de mesa para todos? 205 00:11:13,230 --> 00:11:14,310 Tudo bem. 206 00:11:14,310 --> 00:11:20,990 Assim, começando com o muito mais simples de princípios, temos agora não só contava 207 00:11:20,990 --> 00:11:24,750 acima de 0 todo o caminho até a 7, temos assumido que apenas jogando mais 208 00:11:24,750 --> 00:11:28,080 bits ou mais luzes ou mais transistores para este problema, podemos 209 00:11:28,080 --> 00:11:32,680 representar números cada vez maiores, e Logo, faixas cada vez maiores de 210 00:11:32,680 --> 00:11:33,780 alfabetos, como o Inglês. 211 00:11:33,780 --> 00:11:37,770 E só vamos na fé para hoje Da mesma forma que podemos começar a 212 00:11:37,770 --> 00:11:42,220 representar gráficos e de vídeo e qualquer número de outros meios de comunicação com os quais estamos 213 00:11:42,220 --> 00:11:43,610 familiarizados hoje. 214 00:11:43,610 --> 00:11:49,240 >> Portanto, este é CS50, e nesta classe ao lado de vocês, mais uma vez, muitos mesmo 215 00:11:49,240 --> 00:11:53,050 colegas que têm tão pouco experiência como você. 216 00:11:53,050 --> 00:11:57,730 E Digo isto apenas porque muito frequentemente, incluindo como recentemente como um dos 217 00:11:57,730 --> 00:12:01,860 o calouro assessoria de eventos e em segundo ano de primavera passada aconselhando 218 00:12:01,860 --> 00:12:06,420 evento, muitas vezes ouvimos os alunos isentam quando chegando à mesa de CS, bem, 219 00:12:06,420 --> 00:12:10,070 Eu estive pensando em fazer isso classe intro, mas eu não sou realmente um 220 00:12:10,070 --> 00:12:11,120 pessoa computador. 221 00:12:11,120 --> 00:12:13,220 Ou, mas todos certamente sabe mais do que eu. 222 00:12:13,220 --> 00:12:17,340 E eu coloquei isso na maior fonte possível, para transmitir essa mensagem de que 223 00:12:17,340 --> 00:12:18,730 isso não é de fato o caso. 224 00:12:18,730 --> 00:12:21,100 >> E se você está se perguntando, se I, na verdade, estar aqui? 225 00:12:21,100 --> 00:12:25,950 Perceba que não é só deste curso título Introdução à Computação 226 00:12:25,950 --> 00:12:31,740 Ciência, é Introdução à Computação Ciência I. Portanto, não é de fato 227 00:12:31,740 --> 00:12:33,170 um segundo essa introdução. 228 00:12:33,170 --> 00:12:35,390 Então você não é, de fato, no lugar errado. 229 00:12:35,390 --> 00:12:39,000 E entre os objetivos que tenho para hoje são para amenizar-lhe quaisquer preocupações 230 00:12:39,000 --> 00:12:42,430 pode ter, mas também para pintar uma imagem do que está na loja para 231 00:12:42,430 --> 00:12:45,720 estudantes menos e mais confortável tanto neste curso. 232 00:12:45,720 --> 00:12:49,320 >> Mas em primeiro lugar, uma palavra em uma das apostilas você tem hoje, entre os quais 233 00:12:49,320 --> 00:12:50,780 há uma série de perguntas frequentes. 234 00:12:50,780 --> 00:12:54,290 Tem sido uma visão de nosso há algum tempo agora introduzir uma nova classificação 235 00:12:54,290 --> 00:12:57,010 opção para este curso - ou seja, SAT / unsat. 236 00:12:57,010 --> 00:13:01,930 Filosoficamente para mim, é muito, muito, muito mais importante que o 237 00:13:01,930 --> 00:13:05,050 alunos nesta classe se envolver com o material, ser contestada pelo 238 00:13:05,050 --> 00:13:09,800 material, e se preocupar muito, muito menos sobre a mecânica de pontuação reais 239 00:13:09,800 --> 00:13:12,590 e notas de letra no semestre de final, mas realmente abraçar a 240 00:13:12,590 --> 00:13:13,970 curso e seu material. 241 00:13:13,970 --> 00:13:18,140 E realmente isso se sente, mais geralmente, para o que é interessante para eles, a 242 00:13:18,140 --> 00:13:21,390 sentem desafiados e recompensados, mas sem medo do fracasso. 243 00:13:21,390 --> 00:13:25,030 >> E, de fato, esta é também uma recorrente tema este e outros introdutório 244 00:13:25,030 --> 00:13:28,680 cursos em outros campos, que você tem este receio quando se trata de 245 00:13:28,680 --> 00:13:31,040 colocando os dedos da pessoa em águas desconhecidas. 246 00:13:31,040 --> 00:13:34,880 Eu mesmo, em 1995, era um calouro. 247 00:13:34,880 --> 00:13:37,990 Eu estava muito focada em ser um concentrador Gov aqui. 248 00:13:37,990 --> 00:13:41,060 E ainda que eu sempre cresceu com um pouco de um interesse em ciência da computação. 249 00:13:41,060 --> 00:13:42,180 Eu sempre fui curioso. 250 00:13:42,180 --> 00:13:47,610 >> Mas naquela época, mesmo, eu tinha esse medo de mesmo de pisar no CS50, tanto 251 00:13:47,610 --> 00:13:49,420 de modo que eu nem sequer fazer compras que no primeiro ano. 252 00:13:49,420 --> 00:13:53,460 E a única razão de eu colocar um pé na porta segundo ano foi porque eu 253 00:13:53,460 --> 00:13:55,340 foi autorizada a levá-lo de aprovação / reprovação. 254 00:13:55,340 --> 00:13:58,920 Mas mesmo passa / falha exigiu que eu recebo coragem para fazer uma consulta 255 00:13:58,920 --> 00:14:01,970 com Professor Kernehan na época, trazer esta grande folha de papel, e pedir 256 00:14:01,970 --> 00:14:04,470 ele para a sua assinatura e sua permissão para explorar 257 00:14:04,470 --> 00:14:05,700 essas águas desconhecidas. 258 00:14:05,700 --> 00:14:09,030 >> E isso não tem ajudado nos últimos anos que ao fazer isso na CS50, quando 259 00:14:09,030 --> 00:14:12,500 utilizado para ser aprovado / reprovado, seria semelhantemente dezenas ou centenas de seus colegas 260 00:14:12,500 --> 00:14:15,970 tem que vir para cima, Deus me livre, no frente de Sanders com esse formulário, que 261 00:14:15,970 --> 00:14:19,520 em algumas mentes representa uma incapacidade, Ouso dizer que, para realizar 262 00:14:19,520 --> 00:14:20,800 é o nível de seus pares. 263 00:14:20,800 --> 00:14:23,410 O que é ridículo, mas eu acho que há essa mentalidade. 264 00:14:23,410 --> 00:14:27,210 E nunca houve nesta cultura do SAT / unsat, ou de aprovação / reprovação mais 265 00:14:27,210 --> 00:14:30,610 Geralmente, neste curso, ou realmente neste campus. 266 00:14:30,610 --> 00:14:32,310 >> Portanto, este ano nós mudamos isso. 267 00:14:32,310 --> 00:14:35,630 Eu seria a metade de êxtase de esta classe ou mais terminou 268 00:14:35,630 --> 00:14:38,700 levando CS50 SAT / unsat. 269 00:14:38,700 --> 00:14:42,130 No período de um ano, seria maravilhoso Se quase todo mundo é. 270 00:14:42,130 --> 00:14:44,410 A partir daí, talvez, nós vamos trabalhar em notas de letras na Universidade de Harvard 271 00:14:44,410 --> 00:14:45,480 Faculdade em geral. 272 00:14:45,480 --> 00:14:48,900 Mas, por agora, vamos fazer isso dentro da nossa própria esfera, e eu gostaria de coração 273 00:14:48,900 --> 00:14:53,400 incentivá-lo a rever os FAQs e fazer perguntas, como você vê o ajuste, de modo que 274 00:14:53,400 --> 00:14:58,000 espero que você, ao contrário de mim, não é bem ter o mesmo fator de medo quando 275 00:14:58,000 --> 00:15:01,040 explorar o que é, provavelmente, um lugar desconhecido. 276 00:15:01,040 --> 00:15:02,786 >> Então, qual é CS50? 277 00:15:02,786 --> 00:15:06,150 É uma introdução ao empresas intelectuais de computador 278 00:15:06,150 --> 00:15:07,700 ciência e da arte da programação. 279 00:15:07,700 --> 00:15:08,770 Mas o que isso realmente significa? 280 00:15:08,770 --> 00:15:12,510 >> Bem, até agora, nós conversamos muito brevemente sobre a representação da informação. 281 00:15:12,510 --> 00:15:15,070 Mas suponha que nós realmente queremos de fazer alguma coisa com ele. 282 00:15:15,070 --> 00:15:17,890 Precisamos introduzir a noção de o que vamos chamar de um algoritmo. 283 00:15:17,890 --> 00:15:21,540 Um algoritmo é um processo, um processo, um conjunto de instruções para 284 00:15:21,540 --> 00:15:22,780 fazendo alguma coisa. 285 00:15:22,780 --> 00:15:25,620 >> E um algoritmo pode ser algo super simples. 286 00:15:25,620 --> 00:15:28,660 Por exemplo, um exemplo com o qual alguns de que você pode estar familiarizado é este 287 00:15:28,660 --> 00:15:29,350 coisa aqui. 288 00:15:29,350 --> 00:15:32,510 Portanto, este livro aqui é cada vez mais datados, mas era uma vez, ele 289 00:15:32,510 --> 00:15:34,720 continha um monte de nomes e os números de telefone. 290 00:15:34,720 --> 00:15:37,710 E, de fato, se eu queria encontrar alguém nesta lista telefónica - 291 00:15:37,710 --> 00:15:39,800 dizer, alguém chamado Mike Smith - 292 00:15:39,800 --> 00:15:43,810 Eu poderia encontrar Mike Smith em qualquer número de maneiras bastante simples. 293 00:15:43,810 --> 00:15:47,700 Eu poderia começar no início e ir para página 1, não está lá. 294 00:15:47,700 --> 00:15:49,240 Page 2, não existe. 295 00:15:49,240 --> 00:15:49,960 Page 3. 296 00:15:49,960 --> 00:15:53,430 É que o algoritmo, é que processo, correto? 297 00:15:53,430 --> 00:15:54,620 >> Por isso, é correto, certo? 298 00:15:54,620 --> 00:15:58,070 Eu sou o tipo de idiota por fazer isso em dessa forma, mas, eventualmente, eu vou 299 00:15:58,070 --> 00:16:02,670 encontrar o sobrenome S, e espero que Mike É nessa seção, e eu me tornarei 300 00:16:02,670 --> 00:16:04,100 feito com o meu algoritmo. 301 00:16:04,100 --> 00:16:05,440 Mas certamente não é intuitiva. 302 00:16:05,440 --> 00:16:08,020 Mais cada ser humano razoável neste quarto não teria feito isso. 303 00:16:08,020 --> 00:16:10,180 O que você teria feito? 304 00:16:10,180 --> 00:16:11,480 >> Você teria ido direto para o meio, certo? 305 00:16:11,480 --> 00:16:12,000 Aproximadamente ao meio. 306 00:16:12,000 --> 00:16:16,310 E você percebe, oh, estes são os Ms. Então, Mike Smith, último nome a ser Smith, 307 00:16:16,310 --> 00:16:19,050 não é, claramente, em seguida, na metade esquerda do livro. 308 00:16:19,050 --> 00:16:21,040 Ele deve ser em direção ao S está na direita. 309 00:16:21,040 --> 00:16:24,090 E neste ponto, embora a maioria de nós não faça isso, na realidade, podemos 310 00:16:24,090 --> 00:16:27,125 literalmente rasgar este problema pela metade. 311 00:16:27,125 --> 00:16:27,640 >> [Aclamações e aplausos] 312 00:16:27,640 --> 00:16:28,950 >> DAVID MALAN: Obrigado. 313 00:16:28,950 --> 00:16:30,150 >> [Aclamações e aplausos] 314 00:16:30,150 --> 00:16:34,660 >> DAVID MALAN: Você pode literalmente destruir o problema pela metade, deixando-me com, 315 00:16:34,660 --> 00:16:36,120 literalmente, um problema de metade do tamanho. 316 00:16:36,120 --> 00:16:39,750 Então, se este livro telefone era - e é provavelmente foi - cerca de 1.000 páginas, agora 317 00:16:39,750 --> 00:16:40,840 é apenas 500. 318 00:16:40,840 --> 00:16:44,710 Se eu fizer isso de novo e eu percebo, oh, caramba, eu fui longe demais, eu estou no Ts 319 00:16:44,710 --> 00:16:46,480 seção, eu posso semelhante - 320 00:16:46,480 --> 00:16:48,030 figurativa ou literalmente - 321 00:16:48,030 --> 00:16:50,260 rasgar o livro de telefone - era, na verdade, muito mais fácil do que o tempo. 322 00:16:50,260 --> 00:16:53,610 Eu posso literalmente rasgar o livro de telefone ao meio, deixando-me agora com 323 00:16:53,610 --> 00:16:55,186 Não 1000, não 500 - 324 00:16:55,186 --> 00:16:56,680 250 páginas. 325 00:16:56,680 --> 00:17:00,210 E eu posso ir 125, e metade disso, e metade disso, e metade disso, 326 00:17:00,210 --> 00:17:04,760 até que, finalmente, eu vou ficar com apenas uma única página. 327 00:17:04,760 --> 00:17:06,430 >> [Risos] 328 00:17:06,430 --> 00:17:07,589 >> DAVID MALAN: Esse é o parte eu falhar diante. 329 00:17:07,589 --> 00:17:10,400 Uma única página em que Mike espero é. 330 00:17:10,400 --> 00:17:14,630 Agora, esses algoritmos diferentes podem ser tipo de ou avaliadas em 331 00:17:14,630 --> 00:17:15,270 maneiras diferentes. 332 00:17:15,270 --> 00:17:17,300 O primeiro foi muito linear, certo? 333 00:17:17,300 --> 00:17:18,500 Virar a página, olhar para Mike. 334 00:17:18,500 --> 00:17:19,630 Virar a página, olhar para Mike. 335 00:17:19,630 --> 00:17:20,560 É muito linear. 336 00:17:20,560 --> 00:17:23,339 Se houver mais de uma página no telefone livro, ele provavelmente vai me levar 337 00:17:23,339 --> 00:17:27,380 mais um segundo, mais uma unidade de tempo, no entanto estamos computando tempo. 338 00:17:27,380 --> 00:17:32,470 >> Então, eu poderia chamar assim esta linha aqui, em que medida que o tamanho do 339 00:17:32,470 --> 00:17:34,700 problema aumenta da esquerda para a direita - 340 00:17:34,700 --> 00:17:37,480 livro de telefone fica menor ao maior - 341 00:17:37,480 --> 00:17:41,080 eo tempo vai aumentar em no eixo vertical, a maior 342 00:17:41,080 --> 00:17:42,030 o livro de telefone é. 343 00:17:42,030 --> 00:17:46,180 Então n é apenas uma variável geral que cientistas da computação usam para representar 344 00:17:46,180 --> 00:17:48,210 algum valor, algum número. 345 00:17:48,210 --> 00:17:50,740 Assim, n vai aumentar linearmente. 346 00:17:50,740 --> 00:17:53,040 O dobro do tamanho da lista telefónica, é vai me levar duas vezes mais 347 00:17:53,040 --> 00:17:54,780 tempo, muito provavelmente, para encontrar o Mike. 348 00:17:54,780 --> 00:17:56,390 >> Agora, eu poderia ter sido inteligente sobre isso, certo? 349 00:17:56,390 --> 00:17:57,800 Eu estava ficando entediado rapidamente. 350 00:17:57,800 --> 00:17:58,910 Poderia ter feito isso por dois. 351 00:17:58,910 --> 00:18:01,870 Assim, duas páginas, em seguida, quatro, depois seis, depois oito. 352 00:18:01,870 --> 00:18:05,220 E eu poderia começar a voar através de uma pouco mais rápido, embora em menor risco de 353 00:18:05,220 --> 00:18:09,210 superação Mike, mas que não é curva vai ser muito diferente. 354 00:18:09,210 --> 00:18:12,550 Ele ainda vai ser uma reta linha, mas um pouco mais rápido. 355 00:18:12,550 --> 00:18:13,710 >> Mas o que foi que eu fiz? 356 00:18:13,710 --> 00:18:15,845 Na verdade, eu fiz uma coisa fundamentalmente melhor. 357 00:18:15,845 --> 00:18:21,990 Eu consegui o que vamos chamar logarítmica tempo, o registro de n, em que este verde 358 00:18:21,990 --> 00:18:27,730 linha tem um muito, muito, muito borda menos direto a ele. 359 00:18:27,730 --> 00:18:33,050 E em vez disso, ele sugere, como espécie de se aproxima do infinito sempre de forma gradual, 360 00:18:33,050 --> 00:18:36,700 que eu poderia realmente ter uma página 1000 livro de telefone, o dobro de seu tamanho 361 00:18:36,700 --> 00:18:39,610 no próximo ano - porque acho muito mais pessoas se mudam para a cidade. 362 00:18:39,610 --> 00:18:43,250 >> Então agora eu tenho 2.000 páginas, mas como muitos mais passos é que mais inteligente 363 00:18:43,250 --> 00:18:45,200 algoritmo vai levar? 364 00:18:45,200 --> 00:18:46,060 Apenas um. 365 00:18:46,060 --> 00:18:48,060 Quero dizer, isso é uma coisa poderosa. 366 00:18:48,060 --> 00:18:51,400 Se formos para 4.000 páginas no próximo ano, que vai me levar 367 00:18:51,400 --> 00:18:53,020 apenas mais duas etapas. 368 00:18:53,020 --> 00:18:56,500 Então você pode jogar cada vez maior problemas em me, não muito diferente da web é 369 00:18:56,500 --> 00:18:59,560 jogando problemas cada vez maiores todos os dias no Googles e Facebooks da 370 00:18:59,560 --> 00:19:01,590 do mundo, e não é um negócio tão grande. 371 00:19:01,590 --> 00:19:05,840 Porque eu coloquei mais atenção e cuidados em meu algoritmo com o qual deve resolver 372 00:19:05,840 --> 00:19:07,020 problemas de forma eficiente. 373 00:19:07,020 --> 00:19:09,260 >> E, de fato, que será um dos os objetivos deste curso. 374 00:19:09,260 --> 00:19:11,230 Você vai, ao longo do caminho, aprender a programar. 375 00:19:11,230 --> 00:19:13,360 Você vai aprender a programar em qualquer número de idiomas. 376 00:19:13,360 --> 00:19:16,670 Contudo, no final do dia, o curso sobre a resolução de problemas e obtendo 377 00:19:16,670 --> 00:19:20,490 melhor em resolver problemas - e, como em casos como este, resolução de problemas 378 00:19:20,490 --> 00:19:22,030 mais eficiente. 379 00:19:22,030 --> 00:19:23,990 >> Agora, até agora, fizemos esta bastante intuitiva. 380 00:19:23,990 --> 00:19:27,420 Vamos introduzir algo bastante genérica chamada pseudocódigo. 381 00:19:27,420 --> 00:19:29,150 Então, vamos finalmente chegar, neste curso, para 382 00:19:29,150 --> 00:19:30,570 várias linguagens de programação. 383 00:19:30,570 --> 00:19:34,280 Mas hoje nós vamos fazê-lo em Inglês-like sintaxe, onde apenas uma espécie de, digamos, 384 00:19:34,280 --> 00:19:37,330 o que quer dizer, mas você é sempre tão sucinta e você não se preocupar com 385 00:19:37,330 --> 00:19:38,960 gramática e frases completas. 386 00:19:38,960 --> 00:19:41,600 Você acabou de se expressar como concisa possível. 387 00:19:41,600 --> 00:19:45,400 >> Então pseudocódigo é o Inglês-like que representa a sintaxe 388 00:19:45,400 --> 00:19:46,750 uma linguagem de programação. 389 00:19:46,750 --> 00:19:51,170 E para esse fim, deixe-me propor que agora modelar o processo que acabamos de 390 00:19:51,170 --> 00:19:54,990 descrito de contar algo um pouco diferentemente, desta vez tendo um 391 00:19:54,990 --> 00:19:59,040 olha este vídeo de cinco minutos produzido pelos nossos amigos na TED que 392 00:19:59,040 --> 00:20:03,170 define o pseudocódigo seja, define o que pensamento algorítmico é, e mesmo 393 00:20:03,170 --> 00:20:07,030 embora o exemplo que você está prestes a ver é, em si mesmo, super simples, é 394 00:20:07,030 --> 00:20:09,820 vai começar a dar-nos o mental modelo, o vocabulário, com a qual 395 00:20:09,820 --> 00:20:14,588 fazer muito, muito mais complexo algoritmos muito rapidamente. 396 00:20:14,588 --> 00:20:15,576 >> [BEGIN REPRODUÇÃO DE VÍDEO] 397 00:20:15,576 --> 00:20:29,920 >> [Música tocando] 398 00:20:29,920 --> 00:20:31,100 >> Narrador: O que é um algoritmo? 399 00:20:31,100 --> 00:20:34,730 Na ciência da computação, um algoritmo é uma conjunto de instruções para resolver alguns 400 00:20:34,730 --> 00:20:36,620 problema passo a passo. 401 00:20:36,620 --> 00:20:39,650 Tipicamente, os algoritmos são executados por computadores, mas nós seres humanos temos 402 00:20:39,650 --> 00:20:41,230 algoritmos, bem. 403 00:20:41,230 --> 00:20:43,290 Por exemplo, como você iria sobre a contagem do número 404 00:20:43,290 --> 00:20:44,750 de pessoas em uma sala? 405 00:20:44,750 --> 00:20:47,980 Bem, se você é como eu, você provavelmente ponto em cada pessoa, em um 406 00:20:47,980 --> 00:20:50,120 um tempo, e contar a partir de 0. 407 00:20:50,120 --> 00:20:52,970 1, 2, 3, 4, e assim por diante. 408 00:20:52,970 --> 00:20:54,140 >> Bem, isso é um algoritmo. 409 00:20:54,140 --> 00:20:57,600 Na verdade, vamos tentar expressá-lo um pouco mais formalmente em pseudocódigo - 410 00:20:57,600 --> 00:21:00,700 Inglês-como sintaxe que se assemelha uma linguagem de programação. 411 00:21:00,700 --> 00:21:02,580 Deixe-N igual a 0. 412 00:21:02,580 --> 00:21:06,970 Para cada pessoa em quarto, definir N igual a N + 1. 413 00:21:06,970 --> 00:21:08,400 >> Como interpretar este pseudocódigo? 414 00:21:08,400 --> 00:21:12,840 Bem, uma linha declara, por assim dizer, uma variável chamada N e inicializa 415 00:21:12,840 --> 00:21:14,250 seu valor para 0. 416 00:21:14,250 --> 00:21:17,550 Isto significa que apenas no início do nosso algoritmo, a única coisa com a qual 417 00:21:17,550 --> 00:21:19,650 estamos contando tem um valor de 0. 418 00:21:19,650 --> 00:21:22,620 Afinal, antes de começar a contar, não ter contado nada ainda. 419 00:21:22,620 --> 00:21:25,340 Chamar essa variável N é apenas uma convenção. 420 00:21:25,340 --> 00:21:26,890 Eu poderia tê-lo chamado mais nada. 421 00:21:26,890 --> 00:21:30,560 >> Agora a linha de dois demarks o início de uma loop, uma seqüência de passos que 422 00:21:30,560 --> 00:21:32,310 repetir um determinado número de vezes. 423 00:21:32,310 --> 00:21:35,910 Assim, em nosso exemplo, o passo que estamos tomando está contando as pessoas na sala. 424 00:21:35,910 --> 00:21:38,730 Sob a linha dois é a linha de três, que descreve exatamente como 425 00:21:38,730 --> 00:21:40,160 vamos sobre a contagem. 426 00:21:40,160 --> 00:21:43,440 O recuo implica que é três linhas que se repetem. 427 00:21:43,440 --> 00:21:47,380 >> Então, o que o pseudocódigo está dizendo é que, depois de a partir de 0, para cada 428 00:21:47,380 --> 00:21:50,690 pessoa na sala, nós vamos aumentar N em 1. 429 00:21:50,690 --> 00:21:53,050 Agora é este algoritmo correto? 430 00:21:53,050 --> 00:21:54,580 Bem, vamos bater nele um pouco. 431 00:21:54,580 --> 00:21:57,270 Isso funciona se houver duas pessoas na sala? 432 00:21:57,270 --> 00:21:58,170 Vamos ver. 433 00:21:58,170 --> 00:22:00,260 >> Na linha um, que inicializar N a 0. 434 00:22:00,260 --> 00:22:03,660 Para cada uma destas duas pessoas, Em seguida, incrementar N em 1. 435 00:22:03,660 --> 00:22:07,310 Assim, na primeira viagem através do lacete, actualizamos N de 0 a 1. 436 00:22:07,310 --> 00:22:11,070 Na segunda viagem através desse mesmo lacete, actualizamos N 1-2. 437 00:22:11,070 --> 00:22:15,780 E assim até o final deste algoritmo, n é 2, que de fato corresponde ao número de 438 00:22:15,780 --> 00:22:16,700 pessoas na sala. 439 00:22:16,700 --> 00:22:17,760 >> Tão longe, tão bom. 440 00:22:17,760 --> 00:22:19,610 Como cerca de um caso de canto, embora? 441 00:22:19,610 --> 00:22:22,590 Suponha que existem 0 pessoas na sala - além de mim, 442 00:22:22,590 --> 00:22:24,170 quem está fazendo a contagem. 443 00:22:24,170 --> 00:22:27,150 Na linha um, que inicializar N a 0. 444 00:22:27,150 --> 00:22:30,280 Desta vez, porém, a linha de três não executar em tudo desde que não haja uma 445 00:22:30,280 --> 00:22:31,370 pessoa na sala. 446 00:22:31,370 --> 00:22:35,260 E assim permanece N 0, o que corresponde a número de pessoas na sala. 447 00:22:35,260 --> 00:22:36,420 Muito simples, certo? 448 00:22:36,420 --> 00:22:39,630 >> Mas a contagem de pessoas, uma de cada vez é bastante ineficiente, também, não? 449 00:22:39,630 --> 00:22:40,920 Certamente que podemos fazer melhor. 450 00:22:40,920 --> 00:22:43,120 Por que não contar com duas pessoas ao mesmo tempo? 451 00:22:43,120 --> 00:22:49,300 Em vez de contar 1, 2, 3, 4, 5, 6, 7, 8, e assim por diante, por que não contar, 2, 452 00:22:49,300 --> 00:22:51,460 4, 6, 8, e assim por diante? 453 00:22:51,460 --> 00:22:53,700 Ele ainda parece mais rápido, e é certamente. 454 00:22:53,700 --> 00:22:56,240 >> Vamos expressar essa otimização em pseudocódigo. 455 00:22:56,240 --> 00:22:57,800 Deixe-N igual a 0. 456 00:22:57,800 --> 00:23:02,450 Para cada par de pessoas na sala, definir N igual a N + 2. 457 00:23:02,450 --> 00:23:04,120 Mudança bastante simples, certo? 458 00:23:04,120 --> 00:23:06,750 Ao invés de uma contagem de pessoas de cada vez, que, em vez contar 459 00:23:06,750 --> 00:23:08,300 eles dois de cada vez. 460 00:23:08,300 --> 00:23:10,980 Este algoritmo é, portanto, duas vezes tão rápido quanto o último. 461 00:23:10,980 --> 00:23:12,180 >> Mas será que é correto? 462 00:23:12,180 --> 00:23:12,920 Vamos ver. 463 00:23:12,920 --> 00:23:15,330 Isso funciona se houver duas pessoas na sala? 464 00:23:15,330 --> 00:23:17,550 Na linha um, que inicializar N a 0. 465 00:23:17,550 --> 00:23:20,920 Para que um par de pessoas, Em seguida, incrementar N por dois. 466 00:23:20,920 --> 00:23:24,860 E assim até o final deste algoritmo, N é 2, que de fato corresponde ao número de 467 00:23:24,860 --> 00:23:25,650 pessoas na sala. 468 00:23:25,650 --> 00:23:28,250 >> Suponhamos que existem próxima 0 pessoas na sala. 469 00:23:28,250 --> 00:23:30,840 Na linha um, que inicializar N a 0. 470 00:23:30,840 --> 00:23:34,330 Como antes, a linha de três não executa em tudo, uma vez que não existem quaisquer pares 471 00:23:34,330 --> 00:23:35,380 de pessoas na sala. 472 00:23:35,380 --> 00:23:38,350 E assim permanece N 0, o que de fato corresponde ao número de 473 00:23:38,350 --> 00:23:39,570 pessoas na sala. 474 00:23:39,570 --> 00:23:42,280 >> Mas o que se há três pessoas na sala? 475 00:23:42,280 --> 00:23:44,130 Como é que esta tarifa algoritmo? 476 00:23:44,130 --> 00:23:44,990 Vamos ver. 477 00:23:44,990 --> 00:23:47,460 Na linha um, que inicializar N a 0. 478 00:23:47,460 --> 00:23:50,870 Para um par dessas pessoas, Em seguida, incrementar N por 2. 479 00:23:50,870 --> 00:23:51,800 Mas e depois? 480 00:23:51,800 --> 00:23:54,960 Não há outro par cheio de pessoas na sala, por isso a linha dois não 481 00:23:54,960 --> 00:23:56,180 se aplica mais. 482 00:23:56,180 --> 00:24:00,530 E assim até o final deste algoritmo, N ainda é 2, o que não é correcto. 483 00:24:00,530 --> 00:24:03,810 >> De fato, este algoritmo é dito ser carrinho, porque tem um erro. 484 00:24:03,810 --> 00:24:05,820 Permite corrigir com alguma nova pseudocódigo. 485 00:24:05,820 --> 00:24:09,670 Vamos n igual a 0 para cada par de pessoas na sala. 486 00:24:09,670 --> 00:24:12,550 Conjunto N igual a N + 2. 487 00:24:12,550 --> 00:24:17,140 Se uma pessoa permanece não pareado, definir N igual a N + 1. 488 00:24:17,140 --> 00:24:20,140 Para resolver este problema particular, temos introduzidos, em linha de quatro, uma 489 00:24:20,140 --> 00:24:24,520 condição, também conhecido como um ramo que executa somente se houver uma 490 00:24:24,520 --> 00:24:26,640 pessoa que não poderíamos par com o outro. 491 00:24:26,640 --> 00:24:30,440 E agora, se há um ou três ou qualquer número ímpar de pessoas em 492 00:24:30,440 --> 00:24:33,290 o quarto, este algoritmo agora contá-los. 493 00:24:33,290 --> 00:24:34,560 >> Podemos fazer ainda melhor? 494 00:24:34,560 --> 00:24:38,820 Bem, nós poderíamos contar em 3s ou 4s ou mesmo 5s e 10s, mas, além disso, é 495 00:24:38,820 --> 00:24:41,360 vai ficar um pouco difícil a ponto. 496 00:24:41,360 --> 00:24:44,660 No final do dia, se executada por computadores ou de seres humanos, 497 00:24:44,660 --> 00:24:46,750 algoritmos são apenas um conjunto de instruções com 498 00:24:46,750 --> 00:24:48,290 que para resolver os problemas. 499 00:24:48,290 --> 00:24:49,792 Estes foram apenas três. 500 00:24:49,792 --> 00:24:52,404 O problema que você resolve com um algoritmo? 501 00:24:52,404 --> 00:24:52,901 >> [FIM REPRODUÇÃO DE VÍDEO] 502 00:24:52,901 --> 00:24:55,883 >> DAVID MALAN: Esse é o único momento Vou aparecer em forma de desenho animado. 503 00:24:55,883 --> 00:25:01,050 Mas onde essa história deixa de fora, agora, é como podemos fazer melhor? 504 00:25:01,050 --> 00:25:04,680 Três e quatro, reivindicamos, podemos contar pessoas muito mais rápido, mas podemos 505 00:25:04,680 --> 00:25:06,290 fundamentalmente fazer melhor do que isso? 506 00:25:06,290 --> 00:25:07,540 E eu aposto que podemos. 507 00:25:07,540 --> 00:25:11,980 >> Se introduzirmos um pouco de nossa própria pseudocódigo aqui, eu vou propor 508 00:25:11,980 --> 00:25:14,550 que podemos alcançar uma linha como esta. 509 00:25:14,550 --> 00:25:17,280 Nós não vamos contar as pessoas um, dois, três, quatro. 510 00:25:17,280 --> 00:25:19,470 Nós não estamos indo para dois, quatro, seis, oito. 511 00:25:19,470 --> 00:25:23,390 Nós vamos fazer fundamentalmente melhor por repensar o problema, e neste 512 00:25:23,390 --> 00:25:27,080 caso, aproveitando uma outra forma subutilizados recurso. 513 00:25:27,080 --> 00:25:31,460 >> Em apenas um momento, eu espero que você perdoe E o humor nos por de pé em 514 00:25:31,460 --> 00:25:34,470 lugar, em que ponto nós estamos indo pedir a cada um de vocês para assumir em seu 515 00:25:34,470 --> 00:25:36,400 mente o número 1. 516 00:25:36,400 --> 00:25:39,560 Você, então, vai cada vez mais desajeitadamente, como o tempo passa, encontrar 517 00:25:39,560 --> 00:25:42,740 alguém que está de pé, combinar seus números juntos 518 00:25:42,740 --> 00:25:43,720 adicionando-up. 519 00:25:43,720 --> 00:25:47,490 Um de vocês é, então, vai correr para se sentar para baixo em primeiro lugar, e a outra pessoa 520 00:25:47,490 --> 00:25:48,880 vai repetir. 521 00:25:48,880 --> 00:25:53,090 >> Assim, em outras palavras, por sementeira de todas você com o número 1, e, em seguida, 522 00:25:53,090 --> 00:25:57,800 combinar aqueles em 1s 2s e aqueles 2s em 4s, com todos cada vez mais 523 00:25:57,800 --> 00:26:02,740 sentado, devemos, no final do este algoritmo, tem apenas um empréstimo 524 00:26:02,740 --> 00:26:07,570 alma que não se sentou rápido o suficiente, mas que tem toda a contagem de audiências 525 00:26:07,570 --> 00:26:09,180 em sua mente. 526 00:26:09,180 --> 00:26:13,730 >> Então, se você, vamos em frente e - Primeiro Passo - levantar-se no lugar. 527 00:26:13,730 --> 00:26:15,600 E executar. 528 00:26:15,600 --> 00:26:36,580 >> [Multidão murmurando] 529 00:26:36,580 --> 00:26:38,820 >> DAVID MALAN: Você sabe onde Lauren é? 530 00:26:38,820 --> 00:26:40,179 729? 531 00:26:40,179 --> 00:27:23,350 >> [Multidão murmurando] 532 00:27:23,350 --> 00:27:24,340 >> DAVID MALAN: Tudo bem? 533 00:27:24,340 --> 00:27:39,110 >> [Multidão murmurando] 534 00:27:39,110 --> 00:27:41,365 >> DAVID MALAN: Tudo bem, devemos estar se aproximando do fim. 535 00:27:41,365 --> 00:27:44,340 536 00:27:44,340 --> 00:27:47,670 Vemos um colega aqui de pé ainda. 537 00:27:47,670 --> 00:27:48,770 Quem precisa de mais para ser emparelhado? 538 00:27:48,770 --> 00:27:50,020 Se vocês querem emparelhar. 539 00:27:50,020 --> 00:27:53,260 540 00:27:53,260 --> 00:27:56,520 Alguém lá em cima. 541 00:27:56,520 --> 00:27:58,150 Por que não dar uma mão aqui. 542 00:27:58,150 --> 00:28:01,370 Para as poucas pessoas que ainda estão de pé, o que os números você 543 00:28:01,370 --> 00:28:02,790 tem em sua mente? 544 00:28:02,790 --> 00:28:04,020 >> ALUNO: 78. 545 00:28:04,020 --> 00:28:06,010 >> DAVID MALAN: 78 plus - 546 00:28:06,010 --> 00:28:07,840 que está de pé aqui em baixo? 547 00:28:07,840 --> 00:28:08,370 >> ALUNO: 39. 548 00:28:08,370 --> 00:28:09,590 >> DAVID MALAN: Mais 39. 549 00:28:09,590 --> 00:28:12,310 Além disso, quem mais ainda está de pé? 550 00:28:12,310 --> 00:28:13,650 81? 551 00:28:13,650 --> 00:28:15,960 OK, quem mais? 552 00:28:15,960 --> 00:28:17,200 Outro 81? 553 00:28:17,200 --> 00:28:17,860 Uau. 554 00:28:17,860 --> 00:28:19,210 E então o que está em volta? 555 00:28:19,210 --> 00:28:20,360 >> ALUNO: 49. 556 00:28:20,360 --> 00:28:21,812 >> DAVID MALAN: 49, além de? 557 00:28:21,812 --> 00:28:22,950 >> ALUNO: 98. 558 00:28:22,950 --> 00:28:24,980 >> DAVID MALAN: 98 plus? 559 00:28:24,980 --> 00:28:28,190 Será que mais alguém? 560 00:28:28,190 --> 00:28:29,155 12? 561 00:28:29,155 --> 00:28:30,460 Bom trabalho. 562 00:28:30,460 --> 00:28:33,610 >> [Risos] 563 00:28:33,610 --> 00:28:34,690 >> DAVID MALAN: Oh, 112 - 564 00:28:34,690 --> 00:28:35,410 oh. 565 00:28:35,410 --> 00:28:36,220 Bom trabalho! 566 00:28:36,220 --> 00:28:38,660 >> [Risos] 567 00:28:38,660 --> 00:28:42,570 >> [Aplausos] 568 00:28:42,570 --> 00:28:43,820 >> DAVID MALAN: Qualquer pessoa ainda está de pé? 569 00:28:43,820 --> 00:28:46,710 570 00:28:46,710 --> 00:28:47,260 Desculpe? 571 00:28:47,260 --> 00:28:48,110 >> ALUNO: 99. 572 00:28:48,110 --> 00:28:49,810 >> DAVID MALAN: 99. 573 00:28:49,810 --> 00:28:52,620 Qualquer outra pessoa ainda está de pé? 574 00:28:52,620 --> 00:28:57,290 E o número total de alunos aqui é, na verdade, de acordo com a - 575 00:28:57,290 --> 00:28:59,400 você tem um número? 576 00:28:59,400 --> 00:29:03,170 Oh, o número real de pessoas no quarto, de acordo com o que conta 577 00:29:03,170 --> 00:29:07,660 os bolsistas de ensino estavam fazendo no caminho de todos, foi 729. 578 00:29:07,660 --> 00:29:11,070 Assim, a partir de uma sala cheia de estudantes de Harvard que se contaram, o 579 00:29:11,070 --> 00:29:14,126 resposta é 637. 580 00:29:14,126 --> 00:29:15,480 >> [Risos] 581 00:29:15,480 --> 00:29:16,350 >> DAVID MALAN: Tão perto. 582 00:29:16,350 --> 00:29:17,360 Mas ainda assim. 583 00:29:17,360 --> 00:29:22,110 OK, então isso é um ensinamento momento, certo? 584 00:29:22,110 --> 00:29:24,120 Este agora é o que nós descrevemos como um bug. 585 00:29:24,120 --> 00:29:28,120 Em algum lugar ao longo do caminho, fizemos alguns aritmética errado, ou alguém se sentou, 586 00:29:28,120 --> 00:29:29,930 ou para a esquerda, ou algo deu errado. 587 00:29:29,930 --> 00:29:30,930 Mas isso é bom. 588 00:29:30,930 --> 00:29:33,390 Porque mesmo assim, nós ficou muito perto. 589 00:29:33,390 --> 00:29:37,480 E eu diria que nós temos para o mal responder muito mais rápido do que eu teria 590 00:29:37,480 --> 00:29:39,770 usando a minha abordagem mais linear. 591 00:29:39,770 --> 00:29:42,630 >> Então, vamos supor que tenha de fato obter esse corrigir, mas acho que agora sobre o que 592 00:29:42,630 --> 00:29:46,870 estava acontecendo cada vez, contra a minha próprio algoritmo apontando ingênuo. 593 00:29:46,870 --> 00:29:48,420 Um, dois, três. 594 00:29:48,420 --> 00:29:53,010 Se há de fato 729 ou 637 pessoas aqui, que teria me levado 595 00:29:53,010 --> 00:29:57,720 , literalmente, 637 ou 729 pointings do dedo e 596 00:29:57,720 --> 00:29:59,490 incrementando a minha contagem total. 597 00:29:59,490 --> 00:30:01,910 E eu poderia fazer um pouco melhor, vai dois, quatro, seis, oito, e 598 00:30:01,910 --> 00:30:05,660 dobrar essa velocidade, talvez até triplicar ou quádrupla, dependendo quão bem eu posso 599 00:30:05,660 --> 00:30:07,110 fazer isso contando na minha cabeça. 600 00:30:07,110 --> 00:30:10,720 >> Mas esta abordagem que vocês tomaram era fundamentalmente diferente. 601 00:30:10,720 --> 00:30:12,770 Devido, no início, todos vocês se levantou. 602 00:30:12,770 --> 00:30:14,620 Então, tudo 729. 603 00:30:14,620 --> 00:30:17,370 E então, literalmente, metade de você se sentou. 604 00:30:17,370 --> 00:30:19,720 E, depois disso, uma outra metade do que você sentou-se. 605 00:30:19,720 --> 00:30:22,650 E, depois disso, uma outra metade do que você sentou-se. 606 00:30:22,650 --> 00:30:27,470 >> E o número total de vezes que se vocês poderiam ter sentado é mais ou menos 607 00:30:27,470 --> 00:30:31,740 oito ou nove ou dez vezes o total, dependendo do que nossa contagem total é. 608 00:30:31,740 --> 00:30:33,300 E podemos classificar de fazer este o outro lado. 609 00:30:33,300 --> 00:30:37,740 Se tivéssemos 1.024 pessoas na sala, o número total de vezes que você poderia 610 00:30:37,740 --> 00:30:41,870 reduzir pela metade a 1024 é de 10 pessoas. 611 00:30:41,870 --> 00:30:43,370 >> Agora pense sobre isso em outra direção. 612 00:30:43,370 --> 00:30:49,170 Suponha que, ridiculamente, que tivemos, digamos quatro bilhões de pessoas nesta sala, 613 00:30:49,170 --> 00:30:50,860 ou uma sala um pouco maior. 614 00:30:50,860 --> 00:30:54,550 Quantas vezes teríamos ido por este algoritmo, tal que metade 615 00:30:54,550 --> 00:30:58,110 dessa classe se senta? 616 00:30:58,110 --> 00:31:03,050 Ele só vai ter 32 como operações, mesmo em uma classe de tamanho 617 00:31:03,050 --> 00:31:03,770 quatro bilhões. 618 00:31:03,770 --> 00:31:04,055 Por quê? 619 00:31:04,055 --> 00:31:06,980 Devido quatro mil milhões vai para dois bilhões, vai para um milhão, vai para 620 00:31:06,980 --> 00:31:09,925 500 milhões, vai para 250 milhões, ponto, ponto, ponto. 621 00:31:09,925 --> 00:31:14,940 Eu só posso fazer essa divisão cerca de 32 vezes, no ponto em que, todos, exceto 622 00:31:14,940 --> 00:31:17,820 uma pessoa estaria de pé esquerdo. 623 00:31:17,820 --> 00:31:21,590 >> E que, também, é uma espécie de poderoso idéia de que cada vez mais vamos tentar 624 00:31:21,590 --> 00:31:24,690 alavancagem neste curso, e em programação e ciência da computação mais 625 00:31:24,690 --> 00:31:29,400 Geralmente, esses germes de uma idéia com que pode então resolver problemas muito, 626 00:31:29,400 --> 00:31:31,130 muito mais poderosa. 627 00:31:31,130 --> 00:31:34,610 Então começamos muito simples com que pseudocódigo e um cara em uma sala, mas 628 00:31:34,610 --> 00:31:38,205 agora com uma sala cheia de pessoas fizemos fundamentalmente melhor. 629 00:31:38,205 --> 00:31:41,460 >> Bem, vamos agora transição pseudocódigo para algum código real. 630 00:31:41,460 --> 00:31:44,200 Esta linguagem que você está prestes a ver acontecer para ser chamado Javascript, e 631 00:31:44,200 --> 00:31:46,190 vamos voltar a esta direção final do semestre. 632 00:31:46,190 --> 00:31:49,960 É uma linguagem de programação que você usar para fazer sites e outros tais 633 00:31:49,960 --> 00:31:51,360 software nos dias de hoje. 634 00:31:51,360 --> 00:31:54,890 E nós tê-lo usado, graças a um amigo de nossos em Stanford, para codificar 635 00:31:54,890 --> 00:31:56,630 alguma informação escondida aqui. 636 00:31:56,630 --> 00:31:59,500 Esta é a arte de esteganografia, por assim dizer, onde você pode se esconder 637 00:31:59,500 --> 00:32:03,990 informações que por outro lado parece ser ruído ou um completamente diferente 638 00:32:03,990 --> 00:32:05,220 imagem completamente. 639 00:32:05,220 --> 00:32:10,120 Mas incorporado nesta imagem em particular é realmente uma mensagem secreta das sortes. 640 00:32:10,120 --> 00:32:12,950 >> Então deixe-me ir em frente e puxe para cima a mesma imagem aqui, este 641 00:32:12,950 --> 00:32:14,270 tempo em um navegador web. 642 00:32:14,270 --> 00:32:17,710 E eu vou acenar a mão em alguns dos os detalhes para hoje, particularmente 643 00:32:17,710 --> 00:32:21,780 para aqueles de vocês que isso parece não apenas JavaScript, mas grego, como um 644 00:32:21,780 --> 00:32:23,930 linguagem completamente estranha. 645 00:32:23,930 --> 00:32:26,190 Mas esta é uma lista de uma linguagem de programação. 646 00:32:26,190 --> 00:32:30,660 >> E, por enquanto, assumir a fé que esta primeira linha de código - 647 00:32:30,660 --> 00:32:32,470 e por código, eu só quero dizer o texto. 648 00:32:32,470 --> 00:32:35,660 O texto que eu poderia ter literalmente digitado em Microsoft Word, se eu tivesse a 649 00:32:35,660 --> 00:32:37,630 software direito para, em seguida, fazer algo com ele. 650 00:32:37,630 --> 00:32:42,120 Código de programação, programação código, é realmente apenas texto, e 651 00:32:42,120 --> 00:32:45,420 parece diferente com base em que língua você está usando, e não ao contrário Inglês e 652 00:32:45,420 --> 00:32:49,200 Espanhol e russo todos olhar diferente quando você digita em seu teclado. 653 00:32:49,200 --> 00:32:53,520 >> Portanto, esta primeira linha, para agora assumir fé, simplesmente abre um gráfico da 654 00:32:53,520 --> 00:32:56,160 internet, esse gráfico barulhento acabamos de ver. 655 00:32:56,160 --> 00:32:59,900 Esta próxima linha aqui é um exemplo de uma loop, e que se viu a mesma 656 00:32:59,900 --> 00:33:01,130 jargão no vídeo TED. 657 00:33:01,130 --> 00:33:03,750 Um ciclo é algo que acontece mais uma vez e de novo, e mesmo que isso 658 00:33:03,750 --> 00:33:08,440 parece absolutamente enigmática, com o palavra-chave, e alguns parênteses, e 659 00:33:08,440 --> 00:33:09,510 alguns pontos e vírgulas. 660 00:33:09,510 --> 00:33:13,070 Voltaremos a isso em pouco tempo, mas que não há essencialmente lacete 661 00:33:13,070 --> 00:33:17,310 dizendo ao programa, iterar sobre todos desses pontos ruidosos, da esquerda para a 662 00:33:17,310 --> 00:33:18,980 direita, de cima para baixo. 663 00:33:18,980 --> 00:33:21,260 >> Porque, no final do dia, a imagem como este - e você pode realmente 664 00:33:21,260 --> 00:33:22,860 tipo de vê-lo no projetor - 665 00:33:22,860 --> 00:33:25,280 é realmente apenas uma grade de pontos. 666 00:33:25,280 --> 00:33:29,730 Assim, podemos identificar cada um desses pontos por um sistema de coordenadas, X, Y, e com esta 667 00:33:29,730 --> 00:33:33,890 programa, agora podemos começar a fazer alguma coisa para esses pontos. 668 00:33:33,890 --> 00:33:37,540 >> Então o que eu estou indo para ir em frente aqui e não é que eu vou fazer algumas mudanças. 669 00:33:37,540 --> 00:33:41,000 Primeiro, eu estou indo para ir em frente e se livrar de tudo isso esverdeada e azulada 670 00:33:41,000 --> 00:33:43,520 ruído, e eu estou indo para ir em frente e digite o seguinte 671 00:33:43,520 --> 00:33:45,710 reconhecidamente sintaxe enigmática. 672 00:33:45,710 --> 00:33:48,020 im por imagem. 673 00:33:48,020 --> 00:33:53,380 definir azul no local x, vírgula, Local de y, a 0. 674 00:33:53,380 --> 00:33:55,610 Em outras palavras, eu quero apenas desligar toda a azul 675 00:33:55,610 --> 00:33:56,920 pontos em que a imagem. 676 00:33:56,920 --> 00:33:59,800 >> Eu estou indo para ir em frente agora e clique este botão Run / Salve, e você vai 677 00:33:59,800 --> 00:34:02,850 observar no lado direito, a imagem resultante é exibido. 678 00:34:02,850 --> 00:34:06,120 Agora seu super verde, mas isso não é surpreendente, porque eu literalmente virou 679 00:34:06,120 --> 00:34:11,070 fora, fazendo a 1 a 0, todos o azul na foto. 680 00:34:11,070 --> 00:34:12,540 >> Bem, agora vamos fazê-lo um pouco mais. 681 00:34:12,540 --> 00:34:16,989 im para a imagem, ponto setGreen, x, y. 682 00:34:16,989 --> 00:34:20,659 E isso significa apenas iterate da esquerda para a direita e de cima para baixo. 683 00:34:20,659 --> 00:34:23,520 Desligue isso com um valor de 0, bem. 684 00:34:23,520 --> 00:34:24,750 Salvar. 685 00:34:24,750 --> 00:34:28,100 E no projetor, você não pode realmente realmente ver nada. 686 00:34:28,100 --> 00:34:31,380 >> Na tela do meu laptop, se eu espreitar em apenas o caminho certo, eu posso ver um pouco de um 687 00:34:31,380 --> 00:34:33,300 imagem, porque eles ainda estão algum vermelho lá dentro. 688 00:34:33,300 --> 00:34:35,540 Se você já ouviu a sigla RGB - 689 00:34:35,540 --> 00:34:36,830 vermelho, verde, azul - 690 00:34:36,830 --> 00:34:39,110 ele está se referindo a essa composição de uma imagem usando 691 00:34:39,110 --> 00:34:40,230 apenas essas três cores. 692 00:34:40,230 --> 00:34:43,159 E agora, temos jogado fora tudo verde, tudo azul, mas 693 00:34:43,159 --> 00:34:44,500 não há muito vermelho. 694 00:34:44,500 --> 00:34:45,920 >> Então deixe-me pôr em marcha acima o vermelho. 695 00:34:45,920 --> 00:34:47,070 Como posso fazer isso? 696 00:34:47,070 --> 00:34:49,300 Bem, primeiro, eu vou pedir este programa uma pergunta. 697 00:34:49,300 --> 00:34:52,030 Eu estou indo para ir em frente e vamos chamá-lo uma variável, como na álgebra. 698 00:34:52,030 --> 00:34:54,060 Você pode ter x ou y ou z. 699 00:34:54,060 --> 00:34:57,230 Eu estou indo para declarar uma variável e dizer: colocar nesta variável, 700 00:34:57,230 --> 00:35:02,790 temporariamente, o valor da imagens getRed valor de x, y. 701 00:35:02,790 --> 00:35:05,870 >> E, novamente, vamos voltar a todos deste detalhe no futuro. 702 00:35:05,870 --> 00:35:10,630 Mas, por agora, basta ter fé em que esta linha está pedindo o programa, o que 703 00:35:10,630 --> 00:35:12,740 é o valor de vermelho em x, y? 704 00:35:12,740 --> 00:35:14,450 Nesse ponto em particular? 705 00:35:14,450 --> 00:35:15,710 >> Então eu vou fazer alguma coisa para ele. 706 00:35:15,710 --> 00:35:21,100 Então eu vou fazer image dot set vermelho em x, y, y, mas desta vez eu vou 707 00:35:21,100 --> 00:35:24,760 impulsioná-lo, fazendo vezes vermelho, digamos, 10. 708 00:35:24,760 --> 00:35:26,870 Então, aumentá-lo por um fator de 10. 709 00:35:26,870 --> 00:35:29,880 Deixe-me afastar agora e clique poderia Run / Salvar. 710 00:35:29,880 --> 00:35:36,430 E voila, que estava lá todo o tempo, mesmo que os nossos olhos humanos 711 00:35:36,430 --> 00:35:37,900 não conseguia vê-lo. 712 00:35:37,900 --> 00:35:41,470 >> Então, novamente, este agora é o código real, uma exemplo de uma linguagem que nós viremos 713 00:35:41,470 --> 00:35:42,770 de volta para antes do tempo. 714 00:35:42,770 --> 00:35:46,670 Mas perceba, particularmente aqueles de vocês sem essa experiência, é muito 715 00:35:46,670 --> 00:35:50,280 logo que nos será escrever código como esse aí. 716 00:35:50,280 --> 00:35:54,520 Na verdade, uma ferramenta com a qual você é tudo um pouco familiar, talvez, é CS50 da 717 00:35:54,520 --> 00:35:57,330 própria ferramenta claro-shopping, que era realmente reiniciado neste verão por alguns 718 00:35:57,330 --> 00:36:01,070 dos próprios ex-alunos do CS50, agora voltar TFs. 719 00:36:01,070 --> 00:36:04,740 >> Portanto, este passa a ser um site construído em uma linguagem chamada PHP. 720 00:36:04,740 --> 00:36:08,510 Ele usa um banco de dados chamado MySQL, as coisas com a qual nós vamos chegar em nossas mãos 721 00:36:08,510 --> 00:36:10,190 sujo no final do semestre. 722 00:36:10,190 --> 00:36:14,140 Mas, acredite ou não, até mesmo algo como esta última análise, reduz a 723 00:36:14,140 --> 00:36:19,480 simples de ciclos e as condições e ramos, como os que vimos apenas um 724 00:36:19,480 --> 00:36:21,530 há pouco no vídeo TED. 725 00:36:21,530 --> 00:36:25,180 >> O que eu pensei que eu ia fazer agora é compartilhar não apenas algo que a equipe tem feito 726 00:36:25,180 --> 00:36:28,010 para o campus, mas sim algo um ex-aluno - três 727 00:36:28,010 --> 00:36:29,080 estudantes, na verdade - 728 00:36:29,080 --> 00:36:33,950 fez no ano passado, Serra, Daniel e Sam, o último dos quais não tinha antes 729 00:36:33,950 --> 00:36:36,370 experiência de programação quando assumiu o CS50. 730 00:36:36,370 --> 00:36:39,950 E para o seu projecto final, que exibiu, na Feira do CS50, uma 731 00:36:39,950 --> 00:36:43,720 wrdly aplicação chamada, que é um programa baseado na web para que eles fizeram 732 00:36:43,720 --> 00:36:47,670 este vídeo que eu pensei que eu iria partilhar a dar-lhe um sentido de o que é 733 00:36:47,670 --> 00:36:49,280 possível até o final do prazo. 734 00:36:49,280 --> 00:37:57,170 >> [Música tocando] 735 00:37:57,170 --> 00:38:00,570 >> DAVID MALAN: Isso é da Semana Zero Semana de 12 no ano passado. 736 00:38:00,570 --> 00:38:05,470 >> [Aplausos] 737 00:38:05,470 --> 00:38:09,520 >> DAVID MALAN: Como uma provocação, muito, muito para aguçar o apetite é o que é 738 00:38:09,520 --> 00:38:14,580 possível, você já deve ter visto, ou pode ver em breve, market.cs50.net, um 739 00:38:14,580 --> 00:38:17,710 nova ferramenta que a equipe do curso tem vindo a trabalhar, desta vez em 740 00:38:17,710 --> 00:38:21,530 colaboração com Harvard Estudante Agências, de tal forma que a partir deste ano 741 00:38:21,530 --> 00:38:24,980 e continuando esperançosamente neste próximo verão você vai ter um padrão 742 00:38:24,980 --> 00:38:27,890 oportunidade no campus para comprar e vender as coisas de seu interesse. 743 00:38:27,890 --> 00:38:32,220 E com a parceria por meio de HSA, você vai também ser capaz de soltar itens off 744 00:38:32,220 --> 00:38:35,950 em uma das lojas físicas da HSA em algum momento no futuro, de modo a 745 00:38:35,950 --> 00:38:39,150 coisas proxy, particularmente como você pós-graduação e não necessariamente quer 746 00:38:39,150 --> 00:38:44,110 descartar as coisas, mas na verdade pagá-lo encaminhar para as pessoas que você pode seguir 747 00:38:44,110 --> 00:38:45,270 aqui no campus. 748 00:38:45,270 --> 00:38:46,740 Então, mais sobre isso mais para vir. 749 00:38:46,740 --> 00:38:49,830 >> Mas um pouco mais concretamente, uma ferramenta que veio de CS50 em recente 750 00:38:49,830 --> 00:38:52,760 anos, com o qual alguns de vocês podem estar familiares e outras pessoas de que você pode ser 751 00:38:52,760 --> 00:38:57,940 pesquisando agora, pelo CS50.net/2x, você vai encontrar um link para uma extensão do Chrome 752 00:38:57,940 --> 00:39:01,250 o que é demonstrativo de como você pode usar JavaScript, que mesmo idioma que nós 753 00:39:01,250 --> 00:39:06,660 usado com a torre Eiffel um momento atrás, para implementar a velocidade de reprodução 2x 754 00:39:06,660 --> 00:39:09,000 para todos os vídeos de Harvard Genwi. 755 00:39:09,000 --> 00:39:11,880 Isso é algo que é construído no próprio player de vídeo do CS50. 756 00:39:11,880 --> 00:39:14,870 Mas isso, também, se você começar a cavar no código-fonte, o que vamos 757 00:39:14,870 --> 00:39:18,840 felizmente disponibilizar, você vai ver como você pode até mesmo resolver problemas como esse, 758 00:39:18,840 --> 00:39:23,180 acelerando widgets em sites com que você já está bem familiarizado. 759 00:39:23,180 --> 00:39:26,630 >> Assim, uma palavra de agora o curso e expectativas e que está à frente. 760 00:39:26,630 --> 00:39:29,445 Em geral, nós vamos de fato se reúnem aqui às segundas-feiras e quartas-feiras - embora 761 00:39:29,445 --> 00:39:31,490 nesta sexta-feira, vamos reunir porque do Shopping Semana - 762 00:39:31,490 --> 00:39:34,640 01:00 - 14:00, embora às vezes até 2:30. 763 00:39:34,640 --> 00:39:38,700 Dado que você poderia, portanto, quer ou tem que tomar alguma classe em 02:00 764 00:39:38,700 --> 00:39:42,480 em diante, ou mesmo antes, percebem a curso é de suporte do que é chamado 765 00:39:42,480 --> 00:39:45,900 inscrição simultânea, em que vamos apoiar uma petição ao Conselho Ad e 766 00:39:45,900 --> 00:39:49,400 o residente reitores em seu nome se você tem um conflito em algum lugar deste 767 00:39:49,400 --> 00:39:50,790 01:00 - 02:30 intervalo. 768 00:39:50,790 --> 00:39:54,110 Cabeça para que URL on-line para detalhes adicionais. 769 00:39:54,110 --> 00:39:57,750 >> Mas, em termos da estrutura de suporte que caracteriza CS50, para estudantes 770 00:39:57,750 --> 00:40:01,750 mais e menos confortável iguais, nós oferecer faixas distintas de seções. 771 00:40:01,750 --> 00:40:04,730 E este é um par de semanas de folga, mas em pouco tempo, você será solicitado a 772 00:40:04,730 --> 00:40:05,770 seu nível de conforto. 773 00:40:05,770 --> 00:40:08,590 Você está entre os menos confortáveis, mais confortável, ou 774 00:40:08,590 --> 00:40:10,520 algures no meio? 775 00:40:10,520 --> 00:40:13,150 >> E nós vamos ter três distintas faixas que atendem a 776 00:40:13,150 --> 00:40:14,470 precisamente aquelas audiências. 777 00:40:14,470 --> 00:40:17,900 Assim, em nenhum ponto o termo que você deveria até se sentir como você está competindo 778 00:40:17,900 --> 00:40:21,390 contra qualquer aluno com mais ou menos fundo do que você. 779 00:40:21,390 --> 00:40:24,160 Na verdade, o curso destina-se a ser muito mais colaborativa e muito mais 780 00:40:24,160 --> 00:40:25,650 mais aberto do que isso. 781 00:40:25,650 --> 00:40:29,030 >> Em termos de conjuntos de problemas, você vai encontrar-se também que para além da 782 00:40:29,030 --> 00:40:32,130 edição padrão do problema de cada semana definido, muitas vezes há um "hacker 783 00:40:32,130 --> 00:40:37,010 edição ", que está destinado a ser alvo a 5% a 10% ou mais do 784 00:40:37,010 --> 00:40:40,270 demográfico que está de fato entre os mais confortável e gostaria mais 785 00:40:40,270 --> 00:40:43,960 um desafio do que o padrão edição do que pset espera. 786 00:40:43,960 --> 00:40:46,390 Mais detalhes sobre aqueles a serem encontrado no programa. 787 00:40:46,390 --> 00:40:49,430 >> Mas também podem encontrar-se detalhes sobre os cursos de dias de atraso. 788 00:40:49,430 --> 00:40:51,570 Normalmente problema define são devido às quintas-feiras. 789 00:40:51,570 --> 00:40:55,550 No entanto, você pode estender a muitos de seus prazos esta queda de quinta a 790 00:40:55,550 --> 00:41:00,010 Sextas-feiras simplesmente por nos encontrar a meio caminho, por assim dizer, respondendo a alguns warm-up 791 00:41:00,010 --> 00:41:03,370 perguntas em alguns dos problemas da semana sets, que irá automaticamente 792 00:41:03,370 --> 00:41:05,710 em seguida, dar-lhe um extra de 24 horas. 793 00:41:05,710 --> 00:41:09,120 Também vai cair seu menor pontuação, de acordo com o conteúdo programático. 794 00:41:09,120 --> 00:41:12,170 >> Para lhe dar uma sensação de que o problema conjuntos são - porque é de fato 795 00:41:12,170 --> 00:41:15,120 o problema do curso define que em última análise, definir quase todos os 796 00:41:15,120 --> 00:41:18,760 experiência do aluno, mais do que palestras, mais do que seções, mais 797 00:41:18,760 --> 00:41:21,230 de modo que a maioria de qualquer outra aspecto do curso. 798 00:41:21,230 --> 00:41:25,140 No ano passado, por exemplo, que começou, como vamos começar este ano, com o Scratch. 799 00:41:25,140 --> 00:41:29,150 Particularmente nesta sexta-feira, vamos usar, por apenas o tempo de um dia, uma gráfica 800 00:41:29,150 --> 00:41:32,260 linguagem de programação, com o qual vamos iniciar a programação, arrastando e 801 00:41:32,260 --> 00:41:37,580 soltando peças do puzzle que só montar fisicamente se faz sentido 802 00:41:37,580 --> 00:41:38,990 a fazê-lo logicamente. 803 00:41:38,990 --> 00:41:43,460 >> Na próxima semana, vamos rapidamente a transição para C, um bastante antigo, mas muito pequeno e 804 00:41:43,460 --> 00:41:48,510 linguagem simples que nos permitirá realmente ir de 0 a 60 no decurso 805 00:41:48,510 --> 00:41:52,290 de apenas algumas semanas, e depois apostar essas mesmas habilidades e conhecimentos de 806 00:41:52,290 --> 00:41:56,160 construções básicas de programação em linguagens de alto nível, como PHP, 807 00:41:56,160 --> 00:41:58,240 JavaScript, e ainda outros ainda. 808 00:41:58,240 --> 00:42:02,560 >> No ano passado, o terceiro pset no curso foi o de criptografia, um 809 00:42:02,560 --> 00:42:06,380 aplicação específica do domínio pelo qual estudantes desafiados a implementar qualquer 810 00:42:06,380 --> 00:42:11,140 número de cifras, programas com os quais para codificar ou decodificar informações, 811 00:42:11,140 --> 00:42:11,880 para criptografá-lo. 812 00:42:11,880 --> 00:42:16,300 Para a edição hackers, em contraste, demos aos estudantes de hackers um arquivo 813 00:42:16,300 --> 00:42:19,900 a partir de um computador padrão Unix contendo nomes de usuário e senhas, 814 00:42:19,900 --> 00:42:22,740 o último dos quais foi codificado, e desafiou os hackers 815 00:42:22,740 --> 00:42:26,850 alunos para descriptografar, o melhor que podiam, essas senhas, ainda que em 816 00:42:26,850 --> 00:42:27,770 mesmo domínio. 817 00:42:27,770 --> 00:42:30,580 >> Scramble, um jogo com o qual alguns vocês são talvez familiar. 818 00:42:30,580 --> 00:42:34,410 A peça forense, onde pedimos aos alunos para recuperar dados que haviam sido 819 00:42:34,410 --> 00:42:38,530 caso contrário excluído do meu próprio digitais cartão compact flash da câmera, por 820 00:42:38,530 --> 00:42:42,740 realmente escrever software para descobrir, onde estavam os zeros e uns em 821 00:42:42,740 --> 00:42:46,850 que a câmera digital que anteriormente compôs um gráfico JPEG? 822 00:42:46,850 --> 00:42:49,710 >> Um desafio de sorte no ano passado envolvendo a escrever o mais rápido 823 00:42:49,710 --> 00:42:53,160 corretor ortográfico possível, competindo contra amigos e colegas se 824 00:42:53,160 --> 00:42:53,860 eles gostariam. 825 00:42:53,860 --> 00:42:56,330 Implementar n Huff Puff ', um programa de compressão. 826 00:42:56,330 --> 00:43:01,930 E, em seguida, terminando o semestre com CS50 Finanças, um aplicativo baseado na web com 827 00:43:01,930 --> 00:43:06,570 qual você cria um site eTrade-like para comprar e vender ações, de modo a 828 00:43:06,570 --> 00:43:09,860 falar, por realmente puxando quase cotações em tempo real Yahoo! 829 00:43:09,860 --> 00:43:10,450 Financiamento. 830 00:43:10,450 --> 00:43:13,590 >> O que não fizemos no ano passado foi um conjunto de problemas, que permanece 831 00:43:13,590 --> 00:43:14,810 deixa de ser um favorito. 832 00:43:14,810 --> 00:43:18,400 Se você nunca foi para shuttle.cs50.net, você verá um usuário 833 00:43:18,400 --> 00:43:19,670 interagir um pouco com isso. 834 00:43:19,670 --> 00:43:23,530 Mas há dois anos, a classe implementado, usando o Google Maps e do 835 00:43:23,530 --> 00:43:28,570 Google Earth plug-in e um pouco de habilidade com a condução em torno do campus, 836 00:43:28,570 --> 00:43:33,290 de modo que o objectivo deste jogo era, como você pode ver alguns dos rostos, 837 00:43:33,290 --> 00:43:37,530 é a unidade em torno campus procurando funcionários, companheiros de ensino e CAs, e 838 00:43:37,530 --> 00:43:40,080 quando você, colocando-os em seu ônibus. 839 00:43:40,080 --> 00:43:44,035 Nenhum deles realmente parecem estar aqui, então vamos entrar em um código da fraude. 840 00:43:44,035 --> 00:43:47,150 >> [Risos] 841 00:43:47,150 --> 00:43:48,430 >> DAVID MALAN: Lá vamos nós. 842 00:43:48,430 --> 00:43:49,240 Tudo bem. 843 00:43:49,240 --> 00:43:51,750 E aqui é o pessoal atado em todo campus. 844 00:43:51,750 --> 00:43:54,530 E, como você pode ver, no lado direito lado da tela, o autocarro 845 00:43:54,530 --> 00:43:55,510 tem assentos vazios. 846 00:43:55,510 --> 00:43:59,000 E o objetivo foi o de escrever o código com o qual simular esta 847 00:43:59,000 --> 00:44:01,790 condução e pegando e largando fora de passageiros. 848 00:44:01,790 --> 00:44:04,960 Esse, também, usando uma linguagem chamado de JavaScript. 849 00:44:04,960 --> 00:44:10,030 Então percebemos que programas como o que vai estar na nossa mesma trajetória deste 850 00:44:10,030 --> 00:44:10,910 ano, também. 851 00:44:10,910 --> 00:44:13,640 >> Em termos, agora, de um apoio adicional, temos o horário de expediente. 852 00:44:13,640 --> 00:44:16,520 Como você pode ter visto em sua própria casa sala de jantar ou no Annenberg, 853 00:44:16,520 --> 00:44:19,280 estaremos em casa de jantar salões de quatro noites por semana - 854 00:44:19,280 --> 00:44:24,450 Leverett, Pfoho, Eliot e Annenberg este ano, 20:00-23:00. 855 00:44:24,450 --> 00:44:26,830 E o que nós pensamos em fazer este ano é algo um pouco diferente. 856 00:44:26,830 --> 00:44:29,650 >> Se você ouviu rumores no ano passado que era um pouco estressante, este 857 00:44:29,650 --> 00:44:32,800 o horário de expediente do ano, como iremos descrever na próxima semana, será mais orgânica, 858 00:44:32,800 --> 00:44:36,900 em que, à chegada, você será despachado para uma mesa especial 859 00:44:36,900 --> 00:44:39,860 onde vários membros da equipe esperam, e vamos fazer as coisas muito mais 860 00:44:39,860 --> 00:44:40,440 organicamente. 861 00:44:40,440 --> 00:44:43,740 Não há mais fila, não mais do iPad, mas prefiro ter mais íntima 862 00:44:43,740 --> 00:44:47,300 conversas em torno de uma mesa de apenas oito ou para que os alunos, de modo que 863 00:44:47,300 --> 00:44:50,880 aproximado a sensação de que caso contrário Seria uma classe muito menor. 864 00:44:50,880 --> 00:44:54,120 >> Oferecemos, assim, essas coisas que chamado orientações, vídeos filmados em 865 00:44:54,120 --> 00:44:57,330 avançar por um dos ensinamentos do curso companheiros, Zamyla, no qual ela 866 00:44:57,330 --> 00:45:00,690 percorre problema da semana conjuntos, oferecendo dicas e truques para o 867 00:45:00,690 --> 00:45:02,640 desafios que se colocam. 868 00:45:02,640 --> 00:45:06,230 E, inversamente, depois de conjuntos de problemas são devido, este ano, vamos também lançar 869 00:45:06,230 --> 00:45:09,100 pequenos clipes chamar post-mortem que realmente levá-lo através 870 00:45:09,100 --> 00:45:13,630 soluções representativas, tanto o bem como ruim, através do qual pode-se inferir como 871 00:45:13,630 --> 00:45:17,550 você poderia ter ou deveria ter implementou sua própria solução. 872 00:45:17,550 --> 00:45:20,500 >> E o que nós vamos oferecer pela primeira vez este ano, bem como, em particular 873 00:45:20,500 --> 00:45:23,420 para os alunos que fizerem uso do curso da outra 874 00:45:23,420 --> 00:45:28,580 recursos, mas mesmo assim estão lutando tudo muito, o curso 875 00:45:28,580 --> 00:45:33,030 si vai emparelhar os alunos, como os recursos permitirem, com os tutores para que 876 00:45:33,030 --> 00:45:35,840 você tem muito mais íntimo oportunidade de casa refeitórios 877 00:45:35,840 --> 00:45:38,700 permitir one-on-one assistência. 878 00:45:38,700 --> 00:45:42,780 >> Agora, um vislumbre final em alguns dos jogos fim à vista. 879 00:45:42,780 --> 00:45:44,580 Você pode estar familiarizado com o CS50 Hackathon. 880 00:45:44,580 --> 00:45:48,120 Bem, chegando em dezembro, a partir de 08:00 PM às 07h00, no início 881 00:45:48,120 --> 00:45:51,410 Período de leitura, será uma oportunidade para se reunir com os colegas - 882 00:45:51,410 --> 00:45:53,130 esta seria em torno de 9:00 PM - 883 00:45:53,130 --> 00:45:56,550 durante o qual você mergulha em sua última implementação do projeto ao lado de 884 00:45:56,550 --> 00:45:59,910 colegas, amigos, e alimentos. 885 00:45:59,910 --> 00:46:03,680 Isso seria em torno de 01h00, quando o primeiro lote de comida chegou. 886 00:46:03,680 --> 00:46:08,470 E isso é que cerca de 4h00 determinado ano no CS50 Hackathon. 887 00:46:08,470 --> 00:46:12,000 >> Mas o verdadeiro clímax do curso é destina-se a Feira do CS50, um campus-wide 888 00:46:12,000 --> 00:46:15,790 exposição de seus próprios projetos finais, para que a família e os amigos são tudo 889 00:46:15,790 --> 00:46:18,730 convidado, como os nossos recrutadores e os nossos amigos da indústria. 890 00:46:18,730 --> 00:46:22,170 Este, por exemplo, é um vislumbre do 2.000 pessoas-além de que já participei 891 00:46:22,170 --> 00:46:23,160 últimos anos. 892 00:46:23,160 --> 00:46:27,180 Expressões como esta não são incomuns, e da mesma forma fazer o seu 893 00:46:27,180 --> 00:46:29,660 colegas deliciar-se com as coisas você realizou. 894 00:46:29,660 --> 00:46:33,170 >> E na verdade, nesse sentido, temos um evento de início de mandato, também. 895 00:46:33,170 --> 00:46:37,400 Se as coisas como este apelo a você, ou você está, no mínimo, curioso para saber o que 896 00:46:37,400 --> 00:46:41,590 isso, saber que uma nova tradição do curso é chamado CS50 enigma dia. 897 00:46:41,590 --> 00:46:45,710 E isso foi instituído um par de anos atrás para realmente sinalizar para campus 898 00:46:45,710 --> 00:46:48,930 que a informática não é sobre programação, e não é certamente 899 00:46:48,930 --> 00:46:51,960 cerca de abraçar somente os estudantes que têm experiência prévia. 900 00:46:51,960 --> 00:46:54,200 É realmente sobre a resolução de problemas mais geral. 901 00:46:54,200 --> 00:46:57,360 >> E assim Enigma Dia, ao longo dos últimos anos, evoluiu para um bom 902 00:46:57,360 --> 00:47:00,500 parceria com nossos amigos da Facebook, através do qual haverá fabuloso 903 00:47:00,500 --> 00:47:04,830 prêmios e pizza outro lado do rio em o i-lab no próximo sábado. 904 00:47:04,830 --> 00:47:09,180 Dirija-se a URL com dois ou três amigos, se você gostaria de participar 905 00:47:09,180 --> 00:47:10,830 nesta nova tradição. 906 00:47:10,830 --> 00:47:14,180 >> Então eu gostaria de pedir que você mantenha um coisa em mente, e nós temos apenas um 907 00:47:14,180 --> 00:47:17,070 dois minutos clipe em que para fechar hoje. 908 00:47:17,070 --> 00:47:19,640 73% é o número de lembrar. 909 00:47:19,640 --> 00:47:23,900 Cake, também, esperam por você fora dessa transepto como adiar em apenas um 910 00:47:23,900 --> 00:47:26,710 alguns momentos, o que é uma tradição do curso, bem. 911 00:47:26,710 --> 00:47:29,860 Mas esta é a citação chave do syllabus do curso para manter em mente. 912 00:47:29,860 --> 00:47:32,820 O que importa, em última análise, este curso não é tanto onde você acaba 913 00:47:32,820 --> 00:47:36,580 em relação a seus colegas de classe, mas onde você, na Semana de 12, acabam em relação ao 914 00:47:36,580 --> 00:47:37,960 se na semana 0. 915 00:47:37,960 --> 00:47:43,670 >> Mas a visão de que vamos deixá-lo com aqui, hoje, é esta última aqui 916 00:47:43,670 --> 00:47:47,580 pelo nosso mesmo Daniel, que fez o vídeo wrdly apenas um momento atrás. 917 00:47:47,580 --> 00:47:50,000 Deixo-vos com este vislumbre do que está por vir. 918 00:47:50,000 --> 00:47:53,360 E como fazemos isso, se pudéssemos ter CS50 pessoal a partir da frente da sala 919 00:47:53,360 --> 00:47:57,280 para vir até à fase de pintar tudo a mais de uma imagem visual de 920 00:47:57,280 --> 00:47:59,100 o que o espera neste ano - 921 00:47:59,100 --> 00:48:00,350 ficando estranho. 922 00:48:00,350 --> 00:48:02,200 923 00:48:02,200 --> 00:48:05,188 Vamos concluir com este aqui na tela. 924 00:48:05,188 --> 00:48:18,634 >> [Música tocando] 925 00:48:18,634 --> 00:48:21,124 >> DAVID MALAN: Este é CS50. 926 00:48:21,124 --> 00:50:00,226 >> [MUSIC - MATT & KIM, "Está tudo bem"] 927 00:50:00,226 --> 00:50:03,245 >> COLUNA 1: Eu amo CS50 mais do que gatos. 928 00:50:03,245 --> 00:50:06,030 >> COLUNA 2: Whoaaaa! 929 00:50:06,030 --> 00:50:06,990 >> [Risos] 930 00:50:06,990 --> 00:50:08,140 >> DAVID MALAN: Este é, então, CS50. 931 00:50:08,140 --> 00:50:10,050 Vamos vê-lo na sexta-feira. 932 00:50:10,050 --> 00:50:13,370 >> [Aplausos e aclamações] 933 00:50:13,370 --> 00:50:17,540 >> Narrador: Na próxima CS50, um palco demo não saem como planejado. 934 00:50:17,540 --> 00:50:19,080 >> DAVID MALAN: Queremos encontrar Mike Smith no livro de telefone. 935 00:50:19,080 --> 00:50:20,380 Bem, quais são seus instintos? 936 00:50:20,380 --> 00:50:23,750 Eu poderia saltar aproximadamente para o meio o livro de telefone, olhar para baixo, ver que 937 00:50:23,750 --> 00:50:26,830 Estou em M, e agora eu sei que Mike Smith não é para a esquerda. 938 00:50:26,830 --> 00:50:27,840 Ele deve ser para a direita. 939 00:50:27,840 --> 00:50:30,515 E assim, neste momento, nós pode, literalmente, rasgar - 940 00:50:30,515 --> 00:50:33,300 Neste ponto, podemos literalmente rasgar - 941 00:50:33,300 --> 00:50:36,490 Neste ponto, podemos figurativamente rasgar o livro de telefone pela metade. 942 00:50:36,490 --> 00:50:38,954 >> [Dedilhando UKELELE]