1 00:00:00,000 --> 00:00:00,270 2 00:00:00,270 --> 00:00:01,790 DAVID MALAN: Bem-vindo de volta, todo mundo. 3 00:00:01,790 --> 00:00:05,030 Então, ontem, você vai lembrar que nós nos concentramos sobre estes temas aqui. 4 00:00:05,030 --> 00:00:08,380 Por isso, tivemos quatro topics-- global privacidade, segurança e sociedade; 5 00:00:08,380 --> 00:00:11,960 tecnologias de internet; computação em nuvem; e, finalmente, o desenvolvimento web. 6 00:00:11,960 --> 00:00:14,170 >> Alguém tem a largura de banda ou tempo 7 00:00:14,170 --> 00:00:16,900 para assistir a um pouco de John Oliver última noite? 8 00:00:16,900 --> 00:00:20,120 É realmente muito divertido, se não um pouco assustador. 9 00:00:20,120 --> 00:00:24,700 Quaisquer perguntas sobre qualquer coisa que fizemos ontem? 10 00:00:24,700 --> 00:00:27,600 Eventuais esclarecimentos? 11 00:00:27,600 --> 00:00:35,580 Todas as perguntas que você quer fazer Certifique-se que tocamos hoje de alguma forma? 12 00:00:35,580 --> 00:00:37,300 slate tão limpo. 13 00:00:37,300 --> 00:00:38,760 >> Então, o que está na agenda para hoje? 14 00:00:38,760 --> 00:00:41,301 Então eu pensei que ia começar hoje com um olhar para o que é geralmente 15 00:00:41,301 --> 00:00:44,460 conhecido como thinking-- computacional em o risco de simplificar demais, pensando 16 00:00:44,460 --> 00:00:46,636 como um computador, talvez pensar como um engenheiro, 17 00:00:46,636 --> 00:00:48,510 e tentando começar a organizar seus pensamentos 18 00:00:48,510 --> 00:00:52,039 ou para lhe dar uma melhor sensação de que está envolvido na verdade comandando 19 00:00:52,039 --> 00:00:54,080 um computador para fazer algo por meio de programação. 20 00:00:54,080 --> 00:00:56,663 E nós vamos mantê-lo em uma bonita de alto nível, muito bem Inglês, 21 00:00:56,663 --> 00:00:59,850 mas tentar usar de familiares exemplos de formalizar como 22 00:00:59,850 --> 00:01:01,450 você iria sobre a resolução de problemas. 23 00:01:01,450 --> 00:01:04,080 >> E vamos revisitar alguns CS tópicos, como abstração, 24 00:01:04,080 --> 00:01:06,040 que subiu um par de vezes ontem, 25 00:01:06,040 --> 00:01:07,554 algoritmos e, em seguida representação. 26 00:01:07,554 --> 00:01:09,720 E é aí que vamos começar hoje em apenas um momento. 27 00:01:09,720 --> 00:01:11,481 Então vamos dar uma olhada em programação. 28 00:01:11,481 --> 00:01:13,480 Vamos dar uma olhada em alguns construções fundamentais 29 00:01:13,480 --> 00:01:16,450 com o qual você pode estar familiarizado e pode até encontrar bastante intuitivo. 30 00:01:16,450 --> 00:01:18,370 >> Veremos, de fato, numa amostra de programação 31 00:01:18,370 --> 00:01:21,244 ambiente que é muito acessível, muito brincalhão, e de fato alvo 32 00:01:21,244 --> 00:01:22,555 para as idades de 12 e acima. 33 00:01:22,555 --> 00:01:25,930 Vamos passar alguns minutos há e, em seguida, levar as coisas a um nível mais baixo 34 00:01:25,930 --> 00:01:30,360 e realmente falar sobre algumas das os algoritmos e estruturas de dados, 35 00:01:30,360 --> 00:01:32,360 por assim dizer, que programadores costumam usar 36 00:01:32,360 --> 00:01:35,040 para resolver problemas muito mais eficientemente do que você pode 37 00:01:35,040 --> 00:01:37,322 ser capaz de fazer sem eles completamente. 38 00:01:37,322 --> 00:01:40,280 Em seguida, após o almoço, vamos dar uma olhada em pilhas de tecnologia, que é apenas 39 00:01:40,280 --> 00:01:42,240 uma maneira elegante de dizer coleções de tecnologias 40 00:01:42,240 --> 00:01:43,690 que você pode usar para resolver algum problema. 41 00:01:43,690 --> 00:01:46,670 E vamos falar sobre o alfabeto Sopa de línguas que existem today-- 42 00:01:46,670 --> 00:01:50,930 Java e Python e C ++ e PHP e Ruby e todos os tipos de outras coisas. 43 00:01:50,930 --> 00:01:53,740 >> Vamos dar uma breve olhada em padrões de projeto. 44 00:01:53,740 --> 00:01:57,730 Programadores, ao longo do tempo, têm metodologias adotadas 45 00:01:57,730 --> 00:02:00,690 que tendem a ajudá-los resolver os problemas mais facilmente. 46 00:02:00,690 --> 00:02:04,390 Quando você começar a ver-se escrever o mesmo tipo de código de novo e de novo, 47 00:02:04,390 --> 00:02:08,080 pessoas formalizar essas repetições e nomes atribuem a eles 48 00:02:08,080 --> 00:02:10,084 e, em seguida, usá-los e promovê-los, em última instância. 49 00:02:10,084 --> 00:02:12,250 E nós vamos falar um pouco sobre estratégias móveis, 50 00:02:12,250 --> 00:02:16,099 como o que significa, na verdade, fazer uma aplicação móvel ou um site móvel. 51 00:02:16,099 --> 00:02:17,140 Você fazê-lo para o Android? 52 00:02:17,140 --> 00:02:17,730 Você fazê-lo para iOS? 53 00:02:17,730 --> 00:02:19,160 Você fazer isso por tanto daqueles? 54 00:02:19,160 --> 00:02:20,326 E quais são as vantagens e desvantagens? 55 00:02:20,326 --> 00:02:23,180 E então, finalmente, vamos dar uma programação web olhar, que 56 00:02:23,180 --> 00:02:25,380 é um termo colectivo realmente descrevendo qualquer momento 57 00:02:25,380 --> 00:02:28,410 você escrever software que é destina-se a executar na web, 58 00:02:28,410 --> 00:02:30,430 se em telefones ou desktops ou laptops. 59 00:02:30,430 --> 00:02:33,490 Vamos dar uma breve olhada em bases de dados e o design 60 00:02:33,490 --> 00:02:39,049 nele, mesmo porque quase qualquer aplicativo baseado na web interessante 61 00:02:39,049 --> 00:02:40,590 nos dias de hoje tem algum tipo de banco de dados. 62 00:02:40,590 --> 00:02:42,380 Caso contrário, seria ser apenas conteúdo estático. 63 00:02:42,380 --> 00:02:45,254 E um banco de dados permite que você faça mudanças ao longo do tempo, se a si mesmo 64 00:02:45,254 --> 00:02:45,960 ou de usuários. 65 00:02:45,960 --> 00:02:47,820 E nós vamos considerar como você iria sobre a criação de 66 00:02:47,820 --> 00:02:50,510 esse banco de dados e do tipo de jargão que possa surgir em um engenheiro de 67 00:02:50,510 --> 00:02:52,790 discussão em um quadro branco quando realmente implementar 68 00:02:52,790 --> 00:02:53,900 um aplicativo pela primeira vez. 69 00:02:53,900 --> 00:02:57,002 >> Vamos falar brevemente sobre APIs, serviços úteis 70 00:02:57,002 --> 00:02:59,960 que você pode usar para ficar na ombros dos outros, se as empresas 71 00:02:59,960 --> 00:03:02,619 ou indivíduos, e resolver o seu próprios problemas mais rapidamente. 72 00:03:02,619 --> 00:03:04,785 E então nós vamos mexer talvez um pouco com JavaScript, 73 00:03:04,785 --> 00:03:08,900 uma linguagem de programação que é usado tanto em navegadores nos dias de hoje, mas também 74 00:03:08,900 --> 00:03:09,820 em servidores. 75 00:03:09,820 --> 00:03:11,890 E, talvez, nós vamos revisitar, se o tempo permitir, 76 00:03:11,890 --> 00:03:15,670 alguns dos hands-on que stuff web fez ontem e integrar os dois 77 00:03:15,670 --> 00:03:17,630 juntos, antes de encerrar. 78 00:03:17,630 --> 00:03:22,380 >> Assim, com isso-- que é ahead-- é Há alguma coisa faltando que você 79 00:03:22,380 --> 00:03:26,289 gostaria de ter certeza de que insira e tocar em em algum ponto. 80 00:03:26,289 --> 00:03:28,330 Se é vem à mente, trazê-lo antes do tempo. 81 00:03:28,330 --> 00:03:32,010 Mas por que não começar com um olhar pensamento computacional. 82 00:03:32,010 --> 00:03:35,420 >> E deixe-me propor que pensamento computacional é, novamente, 83 00:03:35,420 --> 00:03:38,830 uma espécie de descrição de alto nível de o que um cientista da computação pode fazer. 84 00:03:38,830 --> 00:03:42,470 E, de fato, vamos começar com três ingredientes que 85 00:03:42,470 --> 00:03:44,207 pode entrar em pensamento computacional. 86 00:03:44,207 --> 00:03:45,790 Esta é apenas uma maneira de descrevê-lo. 87 00:03:45,790 --> 00:03:48,490 Nós certamente poderia definir isto em qualquer número de maneiras. 88 00:03:48,490 --> 00:03:50,630 >> Mas deixe-me propor, por uma questão de hoje, 89 00:03:50,630 --> 00:03:53,910 que os problemas do mundo, todos os problemas do mundo, 90 00:03:53,910 --> 00:03:56,730 quando foi abordado por um cientista da computação poderia 91 00:03:56,730 --> 00:04:00,990 ser visto como o que vamos entradas de chamadas, os quais 92 00:04:00,990 --> 00:04:08,142 precisa se alimentado em que chamaremos algoritmos, que, em seguida, produzem saídas. 93 00:04:08,142 --> 00:04:10,600 Em outras palavras, a totalidade mundo da reivindicação I de solução de problemas 94 00:04:10,600 --> 00:04:13,140 pode ser destilada em estes três ingredientes. 95 00:04:13,140 --> 00:04:14,450 Então, o que quero dizer com entradas? 96 00:04:14,450 --> 00:04:17,060 Entradas é exatamente o que você está entregue, a fim de resolver. 97 00:04:17,060 --> 00:04:20,052 >> Por exemplo, aqui está um problema antigo da escola. 98 00:04:20,052 --> 00:04:22,760 Se eu tiver um livro de telefone aqui e Eu quero olhar algo dentro dele, 99 00:04:22,760 --> 00:04:23,760 esta é a minha entrada. 100 00:04:23,760 --> 00:04:26,260 Eu tenho 1.000 ou assim páginas de um livro de telefone. 101 00:04:26,260 --> 00:04:27,780 Esta é a entrada para o meu problema. 102 00:04:27,780 --> 00:04:31,507 E eu quero encontrar algo como Mike Smith, então um amigo 103 00:04:31,507 --> 00:04:33,840 cujo nome e número é espero que este livro de endereços. 104 00:04:33,840 --> 00:04:36,430 >> Este é antes dos dias de célula telefones, para que eu possa não só procurá-lo. 105 00:04:36,430 --> 00:04:38,540 Então eu tenho que fazê-lo de idade escola e, na verdade, a pesquisa 106 00:04:38,540 --> 00:04:41,331 estas entradas para alguma resposta. 107 00:04:41,331 --> 00:04:43,580 E essa resposta é só ir a ser chamado de saída. 108 00:04:43,580 --> 00:04:44,871 Assim, a entrada é a lista telefónica. 109 00:04:44,871 --> 00:04:47,787 O algoritmo é tudo o conjunto de passos que eu uso para encontrar Mike Smith. 110 00:04:47,787 --> 00:04:50,120 E a saída é, esperançosamente, número de telefone de Mike Smith. 111 00:04:50,120 --> 00:04:52,703 E este, em seguida, seria apenas representante de mais qualquer problema 112 00:04:52,703 --> 00:04:55,210 para com você são entradas handed e querem produzir resultados. 113 00:04:55,210 --> 00:04:59,459 >> Então, antes de considerar o processo pelo qual podemos resolver esse problema, 114 00:04:59,459 --> 00:05:01,250 encontrar Mike Smith e algo parecido, 115 00:05:01,250 --> 00:05:04,090 vamos considerar a primeira e as entradas e saídas last--. 116 00:05:04,090 --> 00:05:08,060 Fisicamente, é claro, a entrada aqui é um monte de papel coladas em conjunto 117 00:05:08,060 --> 00:05:09,400 sob a forma de uma lista telefónica. 118 00:05:09,400 --> 00:05:13,660 Mas os computadores, laptops course-- e desktops e até mesmo telefones 119 00:05:13,660 --> 00:05:16,430 estes são aqueles dias-- dispositivos eletrônicos. 120 00:05:16,430 --> 00:05:20,920 >> E no final do dia, o que está a única entrada para um computador? 121 00:05:20,920 --> 00:05:23,299 Bem, é algo como este cabo de alimentação aqui. 122 00:05:23,299 --> 00:05:25,590 Eu ligá-lo na parede, e Eu recebo um fluxo de elétrons, 123 00:05:25,590 --> 00:05:27,048 o que me permite executar a máquina. 124 00:05:27,048 --> 00:05:30,420 Ou talvez esses elétrons são criado por meio da minha bateria. 125 00:05:30,420 --> 00:05:33,790 Contudo, no final do dia, que é a única coisa que vai no meu laptop. 126 00:05:33,790 --> 00:05:35,772 E muito interessante material é, em última análise 127 00:05:35,772 --> 00:05:37,480 saindo, se por meio da impressora 128 00:05:37,480 --> 00:05:40,320 ou a tela ou audially ou semelhantes. 129 00:05:40,320 --> 00:05:45,320 >> Então, se tudo o que temos como nossa entrada fundamental para um computador 130 00:05:45,320 --> 00:05:49,160 é a eletricidade, então apenas elétrons entrando e ou para fora, 131 00:05:49,160 --> 00:05:54,465 e assim como podemos usar essa entrada para realmente representar a informação? 132 00:05:54,465 --> 00:05:57,090 Em outras palavras, como é que vamos chegar a partir de um simples fluxo de electricidade 133 00:05:57,090 --> 00:06:00,350 de representar real números ou letras reais 134 00:06:00,350 --> 00:06:03,620 ou imagens reais na tela ou filmes reais ou e-mails 135 00:06:03,620 --> 00:06:05,690 ou qualquer número dessas conceitos de nível superior, 136 00:06:05,690 --> 00:06:07,680 se quiserem, que, no final do dia, de alguma forma, 137 00:06:07,680 --> 00:06:11,950 têm de ser armazenados nesta dispositivo mecânico electrónico 138 00:06:11,950 --> 00:06:16,260 usando apenas aqueles simples ingredients-- elétrons que entram e saem? 139 00:06:16,260 --> 00:06:19,530 >> Assim, parece que, Na forma mais simples, 140 00:06:19,530 --> 00:06:23,260 o único tipo de estados Eu tenho no meu mundo, então 141 00:06:23,260 --> 00:06:25,350 para speak-- condições Na minha mundo-- seja 142 00:06:25,350 --> 00:06:33,020 Eu tenho elétrons fluindo, electricidade fluir, ou eu faço não-- assim por diante, off. 143 00:06:33,020 --> 00:06:35,850 E vamos formalizar dentro e fora, como um cientista da computação pode, 144 00:06:35,850 --> 00:06:37,255 com apenas 1 e 0. 145 00:06:37,255 --> 00:06:39,880 Vamos apenas descrever algumas arbitrária mas número consistente a ele. 146 00:06:39,880 --> 00:06:41,970 1 significa em, 0 significa desligado. 147 00:06:41,970 --> 00:06:45,427 Ou você pode também ver isso como verdadeiro meio de falsos e meios. 148 00:06:45,427 --> 00:06:47,510 Você também pode fazer preto e branco ou vermelho e azul. 149 00:06:47,510 --> 00:06:48,759 Você só precisa de dois descritores. 150 00:06:48,759 --> 00:06:52,240 E um computador cientistas geralmente apenas usar 0 e 1. 151 00:06:52,240 --> 00:06:58,980 >> Portanto, se esse for o caso, o meu único alfabeto é constituído por 0 e 1 é, como 152 00:06:58,980 --> 00:07:03,360 eu poderia chegar até mesmo o número 2 em um computador, muito menos o número 3 153 00:07:03,360 --> 00:07:06,140 ou uma letra do alfabeto ou uma imagem ou um filme? 154 00:07:06,140 --> 00:07:08,910 Como podemos tipo de inicializar -nos a este princípio básico 155 00:07:08,910 --> 00:07:12,080 de 0 e 1 e, na verdade, representar algo mais interessante? 156 00:07:12,080 --> 00:07:14,430 >> Bem, vamos colocar essa pergunta em espera por um momento 157 00:07:14,430 --> 00:07:17,520 e considerar algo espero familiarizado, 158 00:07:17,520 --> 00:07:21,150 mesmo se você realmente não tenho pensado sobre -lo em qualquer detalhe para 10, 20, 30, 40, 50 159 00:07:21,150 --> 00:07:22,520 mais anos. 160 00:07:22,520 --> 00:07:24,780 Isso é o que? 161 00:07:24,780 --> 00:07:28,050 Como você pronuncia isso? 162 00:07:28,050 --> 00:07:30,770 Não é uma pergunta capciosa. 163 00:07:30,770 --> 00:07:32,950 Um número, mas o que é? 164 00:07:32,950 --> 00:07:34,842 1, 2, 3, ou 123. 165 00:07:34,842 --> 00:07:37,800 E eu gostei de como você disse 1, 2, 3, porque essa é uma maneira de vê-lo. 166 00:07:37,800 --> 00:07:39,870 1, 2, 3, que é uma sequência de três símbolos. 167 00:07:39,870 --> 00:07:42,005 É imagens que nós Agora temos palavras para. 168 00:07:42,005 --> 00:07:44,880 E se você tipo de lê-los todos em conjunto, um ser humano típico, em Inglês 169 00:07:44,880 --> 00:07:46,600 diria 123. 170 00:07:46,600 --> 00:07:48,350 E isso é uma espécie de conceito de nível superior, 171 00:07:48,350 --> 00:07:50,340 se sente como um número razoavelmente grande. 172 00:07:50,340 --> 00:07:51,490 >> Mas como é que vamos chegar lá? 173 00:07:51,490 --> 00:07:54,640 Bem, pode ser um tempo desde você já pensou nisso como este, 174 00:07:54,640 --> 00:07:56,680 mas volta no meu dia, eu tipo de aprendi isso 175 00:07:56,680 --> 00:08:01,030 como a coluna do 1, os 10 de coluna, e a coluna 100 de. 176 00:08:01,030 --> 00:08:06,400 Assim como diz Lakisa, é 1, 2, 3, mas também é 123. 177 00:08:06,400 --> 00:08:08,700 Mas como é que vamos começar a partir de a primeira para a segunda? 178 00:08:08,700 --> 00:08:12,340 >> Bem, você normalmente fazer em coluna a 100 do, eu tenho um 1. 179 00:08:12,340 --> 00:08:14,794 Então, isso é como dizer 100 vezes 1. 180 00:08:14,794 --> 00:08:16,210 E, em seguida, na coluna 10 do, eu tenho 2. 181 00:08:16,210 --> 00:08:18,464 Então, isso é como dizer 10 vezes 2. 182 00:08:18,464 --> 00:08:19,630 Na coluna 1 do, eu tenho 3. 183 00:08:19,630 --> 00:08:21,720 Então, isso é como dizer 1 vezes 3. 184 00:08:21,720 --> 00:08:24,290 >> E se eu adicionar essas coisas em conjunto, isto, é claro, 185 00:08:24,290 --> 00:08:27,470 é 100 mais o 10 mais 3. 186 00:08:27,470 --> 00:08:31,750 E oh, é por isso que eu recebo este maior noção de nível de 123. 187 00:08:31,750 --> 00:08:37,220 É apenas matemática básica, em que estes símbolos têm pesos a eles, se 188 00:08:37,220 --> 00:08:39,620 vai, espaço reservado ou valores da coluna. 189 00:08:39,620 --> 00:08:42,090 E uma vez que se multiplicam tudo para fora, eu recebo este número. 190 00:08:42,090 --> 00:08:47,840 >> Então, como muitos de vocês sabem como falar binary-- 0 e 1's-- como um computador? 191 00:08:47,840 --> 00:08:50,410 OK, perfeito, ninguém, ou nenhum de você acha que fazer. 192 00:08:50,410 --> 00:08:52,550 Mas eu gostaria de afirmar que você na verdade já sabem disso. 193 00:08:52,550 --> 00:08:55,330 Nós só precisamos tipo de ajustar o nosso modelo mental um pouco. 194 00:08:55,330 --> 00:08:57,250 Mas o processo é exactamente o mesmo. 195 00:08:57,250 --> 00:09:01,460 >> Deixe-me deixar um presente lá em cima e em vez puxar isto para baixo por um momento. 196 00:09:01,460 --> 00:09:05,060 No mundo dos computadores, temos apenas 0 e 1.. 197 00:09:05,060 --> 00:09:07,240 E assim a coisa que é vai mudar é o quê? 198 00:09:07,240 --> 00:09:10,920 Bem, no meu mundo humano, a sistema decimal, dezembro significado 10, 199 00:09:10,920 --> 00:09:12,740 Eu tenho quantos dígitos à minha disposição? 200 00:09:12,740 --> 00:09:15,270 201 00:09:15,270 --> 00:09:16,540 10, certo? 202 00:09:16,540 --> 00:09:17,880 0 a 9, é claro. 203 00:09:17,880 --> 00:09:21,210 >> E é por isso que temos a lugar 10 do local e os 100 da. 204 00:09:21,210 --> 00:09:22,380 Onde é que vem? 205 00:09:22,380 --> 00:09:24,430 Bem, isto é 10 elevado à potência de 0. 206 00:09:24,430 --> 00:09:28,440 Este é 10 elevado à potência de 1, 10 para a potência de 2, e assim por diante. 207 00:09:28,440 --> 00:09:32,110 Você simplesmente continua multiplicando suas colunas em 10, começando com apenas 1 208 00:09:32,110 --> 00:09:33,700 em o mais à direita aqui. 209 00:09:33,700 --> 00:09:35,490 >> Assim, no mundo de computadores, se você só 210 00:09:35,490 --> 00:09:39,600 tem significado bi binary-- 2-- ou 0 e 1., nós apenas 211 00:09:39,600 --> 00:09:42,420 realmente precisa mudar a base do que a matemática. 212 00:09:42,420 --> 00:09:46,410 Portanto, em outras palavras, agora vamos tem a coluna 1 e as-- 213 00:09:46,410 --> 00:09:51,270 onde está esse going-- coluna do 2, coluna do 4, e talvez mais além. 214 00:09:51,270 --> 00:09:52,250 Por que é que? 215 00:09:52,250 --> 00:09:55,650 Bem, este é 2 o poder 0-th. 216 00:09:55,650 --> 00:09:57,270 Este é 2 a 1. 217 00:09:57,270 --> 00:09:59,610 Esta é 2 a 2, e assim por diante. 218 00:09:59,610 --> 00:10:04,910 >> Assim, enquanto que aqui, nós temos 1, 10 do, 100, de 1000, de 10.000, 100.000 da de, 1 219 00:10:04,910 --> 00:10:10,560 milhões, e assim por diante, aqui que tem 1, 2, 4, 8, 16, 32, 64. 220 00:10:10,560 --> 00:10:13,950 Você simplesmente continua multiplicando por 2, em vez de manter multiplicando por 10. 221 00:10:13,950 --> 00:10:16,780 Então, agora, se o objetivo de mão é representar 222 00:10:16,780 --> 00:10:20,240 números usando apenas 0 e 1s, vamos considerar como chegar lá. 223 00:10:20,240 --> 00:10:26,540 >> Isto, naturalmente, é o padrão de 0 0 0, mas o número conceitualmente 224 00:10:26,540 --> 00:10:27,490 que isso representa? 225 00:10:27,490 --> 00:10:35,430 Bem, 4 vezes 0, mais 2 vezes 0, mais 1 vezes 0, vamos adicionar os juntos. 226 00:10:35,430 --> 00:10:40,030 4 0 vezes, é claro, 0, mais dois vezes 0 é, naturalmente, 0 mais 1 vezes 0 227 00:10:40,030 --> 00:10:40,850 é, é claro, 0. 228 00:10:40,850 --> 00:10:44,910 Assim ah, isso representa o número que nós seres humanos sabem como 0. 229 00:10:44,910 --> 00:10:47,810 >> Bem, agora, vamos muito Avançar rapidamente rápido. 230 00:10:47,810 --> 00:10:53,600 Se eu não estou representando vez 0 0 0, mas vamos fazê-1 0 1, 231 00:10:53,600 --> 00:10:57,010 que poderia ser como Lakisa, mais cedo, seria apenas pronunciá-lo 1 0 1. 232 00:10:57,010 --> 00:11:01,020 Mas agora, como é que vamos levá-la ao maior nivelar o número de nós, seres humanos poderia saber? 233 00:11:01,020 --> 00:11:04,220 Então, qual é esse número? 234 00:11:04,220 --> 00:11:06,060 É 5, o número que conhecemos como 5. 235 00:11:06,060 --> 00:11:06,870 >> Bem, por que isso? 236 00:11:06,870 --> 00:11:09,620 muito bem, nós podemos tipo de atravessá-la metodicamente 237 00:11:09,620 --> 00:11:14,880 4 vezes 1, 2 vezes 0, 1 vezes 1. 238 00:11:14,880 --> 00:11:19,880 Adicionar os juntos, então isto é 4 + 0 + 1. 239 00:11:19,880 --> 00:11:21,577 E isso é, na verdade, 5. 240 00:11:21,577 --> 00:11:24,660 Então, está ficando um pouco entediante agora fazendo a aritmética novamente e novamente. 241 00:11:24,660 --> 00:11:26,300 Mas o processo é exactamente o mesmo. 242 00:11:26,300 --> 00:11:28,380 >> A única coisa que tem mudado no nosso mundo 243 00:11:28,380 --> 00:11:32,740 é que as nossas colunas são 1, 2, 4, 8, 16, e assim por diante, em vez de 1, 10, 100, 244 00:11:32,740 --> 00:11:33,740 1000. 245 00:11:33,740 --> 00:11:40,000 E isso é só porque o nosso alfabeto tem encolhido de 0 a 9 para apenas 0-1. 246 00:11:40,000 --> 00:11:50,851 >> Assim como um pequeno teste aqui, como seria Você representa o número 7 em binário? 247 00:11:50,851 --> 00:11:51,350 0? 248 00:11:51,350 --> 00:11:53,490 Bem, 0, você quer dizer 0 0 0? 249 00:11:53,490 --> 00:11:58,140 250 00:11:58,140 --> 00:11:59,693 Dizê-lo novamente, Karina. 251 00:11:59,693 --> 00:12:03,010 252 00:12:03,010 --> 00:12:03,550 Perfeito. 253 00:12:03,550 --> 00:12:04,370 Por que é que? 254 00:12:04,370 --> 00:12:08,530 É efetivamente 4 mais 2 mais 1. 255 00:12:08,530 --> 00:12:09,580 Tão bom. 256 00:12:09,580 --> 00:12:14,364 >> Como representamos um pouco another-- como sobre o número 2? 257 00:12:14,364 --> 00:12:18,360 258 00:12:18,360 --> 00:12:20,690 Close, mas para trás. 259 00:12:20,690 --> 00:12:21,660 Então, o que é isso? 260 00:12:21,660 --> 00:12:26,290 É 4 mais 1, de modo que é 5 novamente. 261 00:12:26,290 --> 00:12:28,310 >> Então what's-- Sinto muito, Karina? 262 00:12:28,310 --> 00:12:29,220 0 1 0. 263 00:12:29,220 --> 00:12:34,762 0 1 0 seria 2, porque mais uma vez, mesmo se ele espécie de não saltar para fora em você, 264 00:12:34,762 --> 00:12:35,470 apenas fazer a matemática. 265 00:12:35,470 --> 00:12:40,390 4 vezes 0, 0, 2 vezes 1 é 2, 1 vezes 0? 0. 266 00:12:40,390 --> 00:12:42,830 Portanto, este é o número que conhecemos como 2. 267 00:12:42,830 --> 00:12:44,030 >> Como sobre o número 8? 268 00:12:44,030 --> 00:12:51,240 269 00:12:51,240 --> 00:12:52,730 Hm? 270 00:12:52,730 --> 00:12:53,330 Boa. 271 00:12:53,330 --> 00:12:56,130 Então nós meio que precisa de outro espaço reservado. 272 00:12:56,130 --> 00:12:59,570 Precisamos 1 0 0 0. 273 00:12:59,570 --> 00:13:02,280 E isso é verdade de nossa espécie do sistema decimal da velha escola. 274 00:13:02,280 --> 00:13:05,280 Como você representar o número 1000? 275 00:13:05,280 --> 00:13:08,480 >> Bem, você pareceria ser tipo de em uma situação difícil, 276 00:13:08,480 --> 00:13:10,390 Se pedir-lhe para representar o número 1000, 277 00:13:10,390 --> 00:13:14,960 porque, mesmo se você se dá como 9 Destes, 9 destes, 0 Destes, 278 00:13:14,960 --> 00:13:18,730 que é o maior número que tem, você não chegou a chegar a 1.000. 279 00:13:18,730 --> 00:13:26,920 Então, se você 1.000, você só precisa de outro posição, de modo que você pode fazer 1 0 0 0, 280 00:13:26,920 --> 00:13:29,460 ergo o número 1.000. 281 00:13:29,460 --> 00:13:34,200 >> Então, agora, vamos mapear esse tipo de discussão conceitual de volta ao hardware, 282 00:13:34,200 --> 00:13:37,470 onde mais uma vez, a entrada era apenas este pequeno cabo de alimentação, eletricidade 283 00:13:37,470 --> 00:13:39,300 entrando e saindo. 284 00:13:39,300 --> 00:13:44,740 E assim, por que ser mapeados a partir daqui para lá, bem, o que nós realmente precisamos? 285 00:13:44,740 --> 00:13:49,460 Bem, você pode pensar de estar dentro de um computador, um monte de lâmpadas, 286 00:13:49,460 --> 00:13:50,450 Se você for. 287 00:13:50,450 --> 00:13:52,040 Eles estão realmente chamados transistores. 288 00:13:52,040 --> 00:13:55,121 E transistores são apenas muda que tanto pode ser ligado ou desligado. 289 00:13:55,121 --> 00:13:56,870 Assim, você pode pensar em um transistor que está em 290 00:13:56,870 --> 00:14:00,730 está permitindo que a eletricidade flua e um transistor que está fora como parar 291 00:14:00,730 --> 00:14:02,170 electricidade a partir de fluir. 292 00:14:02,170 --> 00:14:04,130 E em vez de tomar sobre as luzes aqui, 293 00:14:04,130 --> 00:14:06,450 por que não posso fazer esse tipo de novo estilo escola. 294 00:14:06,450 --> 00:14:11,360 Portanto, este pode ser um 1, uma lanterna estar em, apenas um pouco embora. 295 00:14:11,360 --> 00:14:14,050 E isso pode ser um 0, e agora ele está fora. 296 00:14:14,050 --> 00:14:18,277 >> Então, usando este dispositivo físico, eu podem agora representar o sistema binário. 297 00:14:18,277 --> 00:14:19,235 Eu só preciso de dois estados. 298 00:14:19,235 --> 00:14:21,660 Não importa o que colorir que é ou o que é. 299 00:14:21,660 --> 00:14:25,920 Tudo o que importa é que eu tenho um estado on e outro estado desligado. 300 00:14:25,920 --> 00:14:30,605 Então, usando o meu telefone aqui, como faço representam o número que conhecemos como 0? 301 00:14:30,605 --> 00:14:34,490 302 00:14:34,490 --> 00:14:38,550 Ou, dito de forma equivalente, o que número que eu estou representando agora? 303 00:14:38,550 --> 00:14:39,810 0, porque o dispositivo está desligado. 304 00:14:39,810 --> 00:14:41,560 >> E se eu fizer isso? 305 00:14:41,560 --> 00:14:43,583 E agora, como faço representam o número 2? 306 00:14:43,583 --> 00:14:46,380 307 00:14:46,380 --> 00:14:50,930 Pode me emprestar o seu telefone aqui, como fizemos ontem? 308 00:14:50,930 --> 00:14:58,490 Então vamos ver, então se eu quiser representar o número 2, este é o número 2? 309 00:14:58,490 --> 00:14:59,050 Não. 310 00:14:59,050 --> 00:15:02,250 O número sou eu acidentalmente representando aqui? 311 00:15:02,250 --> 00:15:03,550 Este é realmente o número 3. 312 00:15:03,550 --> 00:15:05,008 >> Então, qual é que eu quero para desligar? 313 00:15:05,008 --> 00:15:09,634 O telefone preto ou- bem, se they're-- telefone preto ou o telefone branco? 314 00:15:09,634 --> 00:15:10,300 O telefone branco. 315 00:15:10,300 --> 00:15:17,020 Então, se eu desligar isso e nós alinhá-lo aqui, temos um 1 316 00:15:17,020 --> 00:15:19,487 no lugar de 2 e um 0 no lugar a 1 de. 317 00:15:19,487 --> 00:15:21,195 E por isso estou agora representando o número 2. 318 00:15:21,195 --> 00:15:24,680 E isso, é claro, seria o número 3, porque agora ambas estas luzes 319 00:15:24,680 --> 00:15:25,350 estão no. 320 00:15:25,350 --> 00:15:27,480 >> E eu vou parar por aqui, mas é lógico 321 00:15:27,480 --> 00:15:31,100 se eu quiser representar o o número 4 ou 8 ou superior, 322 00:15:31,100 --> 00:15:32,529 Vou precisar de mais telefones. 323 00:15:32,529 --> 00:15:33,820 Mas isso é tudo o que está acontecendo. 324 00:15:33,820 --> 00:15:37,800 Então, se você já ouviu falar que dentro de um-- agradecer computador você-- 325 00:15:37,800 --> 00:15:42,269 é milhões de transistores, que é apenas a milhões de pequenos comutadores pouco. 326 00:15:42,269 --> 00:15:44,310 E eles não são luz lâmpadas que se ligam e desligam, 327 00:15:44,310 --> 00:15:48,340 mas eles não quer permitir que a eletricidade a fluir em algum lugar ou pará-lo. 328 00:15:48,340 --> 00:15:52,140 E então há o dois Unidos-- ligado ou desligado, ligado ou desligado. 329 00:15:52,140 --> 00:15:55,730 >> Por isso, parece agora ter essa capacidade 330 00:15:55,730 --> 00:16:00,590 para representar este conceito que nós gostaríamos de hardware real. 331 00:16:00,590 --> 00:16:05,520 Mas todos nós temos agora é a capacidade para representar números que parece. 332 00:16:05,520 --> 00:16:08,580 Então, como é que vamos representar letras do alfabeto, os quais 333 00:16:08,580 --> 00:16:12,310 Parece que o próximo tipo de recurso que você gostaria de adicionar a um computador moderno 334 00:16:12,310 --> 00:16:14,280 uma vez que você tem números? 335 00:16:14,280 --> 00:16:16,930 >> E, de fato, se você pensar sobre TI, historicamente, computadores 336 00:16:16,930 --> 00:16:19,426 foram introduzidas realmente para servir como calculadoras numericamente. 337 00:16:19,426 --> 00:16:21,300 Mas, claro, estes dias, eles fazem muito mais. 338 00:16:21,300 --> 00:16:23,799 Mesmo quando iniciar, você costuma ver uma ou mais palavras. 339 00:16:23,799 --> 00:16:27,420 Assim como você representar palavras, Se tudo que você tem é, novamente, 340 00:16:27,420 --> 00:16:31,054 electricidade no final do dia, ou equivalentemente 0 e 1.? 341 00:16:31,054 --> 00:16:34,430 342 00:16:34,430 --> 00:16:35,690 >> Sim. 343 00:16:35,690 --> 00:16:38,320 Sim, quero dizer, nós meio que fez isso ontem de alguma forma, 344 00:16:38,320 --> 00:16:40,200 em que, em algum ponto, Eu acho que eu arbitrariamente 345 00:16:40,200 --> 00:16:46,741 disse que, se queremos representar o letra A, nós poderíamos apenas chamar aquilo de 1. 346 00:16:46,741 --> 00:16:49,990 Foi no contexto de criptografia, onde nós só precisava de algum tipo de código, 347 00:16:49,990 --> 00:16:51,160 algum tipo de mapeamento. 348 00:16:51,160 --> 00:16:56,680 >> Assim, talvez A será representada como um 1, e B será representada como um 2, 349 00:16:56,680 --> 00:17:01,560 e Z será representado como 26, por exemplo. 350 00:17:01,560 --> 00:17:07,430 E então a única ressalva é que, se eu sou indo para codificar letras em meus e-mails 351 00:17:07,430 --> 00:17:10,430 ou em minhas mensagens de texto como números, todos vocês 352 00:17:10,430 --> 00:17:12,640 tem que concorda em usar o mesmo conjunto de convenções. 353 00:17:12,640 --> 00:17:14,619 E, de fato, o mundo fez exatamente isso. 354 00:17:14,619 --> 00:17:18,040 >> Há um sistema no mundo chamado ASCII, American Standard 355 00:17:18,040 --> 00:17:21,640 Código para Intercâmbio de Informações, que é simplesmente uma decisão alguns anos 356 00:17:21,640 --> 00:17:25,720 atrás, que os seres humanos fez que decidiu que um vai ser igual, não 357 00:17:25,720 --> 00:17:32,260 1, 2, e 26, e por isso é um forth-- pouco diferente-- mas 65, 66, 67. 358 00:17:32,260 --> 00:17:34,010 E eu vou puxar uma gráfico em apenas um momento. 359 00:17:34,010 --> 00:17:34,580 Mas é arbitrária. 360 00:17:34,580 --> 00:17:36,329 Mas isso não importa que é arbitrária. 361 00:17:36,329 --> 00:17:38,620 O mundo tem apenas ser consistente. 362 00:17:38,620 --> 00:17:40,540 >> Agora, mais recentemente, há algo mais extravagante 363 00:17:40,540 --> 00:17:45,430 chamado Unicode, porque o tipo do mundo que percebi, depois de inventar computadores, 364 00:17:45,430 --> 00:17:50,977 que há mais do que bem 256 símbolos no mundo 365 00:17:50,977 --> 00:17:53,560 que pode querer representar, especialmente quando você introduzir 366 00:17:53,560 --> 00:17:58,420 idiomas asiáticos e outras simbologias que precisam de mais expressividade do que você 367 00:17:58,420 --> 00:18:02,150 pode caber na versão mais antiga do este código, que foi chamado ASCII. 368 00:18:02,150 --> 00:18:05,250 Então Unicode realmente permite você use mais 0 e 2. 369 00:18:05,250 --> 00:18:08,830 Em particular, você fica ouvindo o bytes palavra na sociedade e até mesmo apenas 370 00:18:08,830 --> 00:18:09,400 ontem. 371 00:18:09,400 --> 00:18:12,040 E um byte é o que de novo? 372 00:18:12,040 --> 00:18:14,840 >> O que é um byte? 373 00:18:14,840 --> 00:18:15,700 É apenas 8 bits. 374 00:18:15,700 --> 00:18:17,150 E o que isso realmente significa? 375 00:18:17,150 --> 00:18:22,400 Bem, isso significa que, no início, quando estávamos falando de binário e eu estava usando 376 00:18:22,400 --> 00:18:28,010 arbitrariamente três bits quando estávamos falando binary-- lugar a 1 de, 377 00:18:28,010 --> 00:18:33,600 o 2 do lugar, ea 4 de lugar-- bem, um byte apenas significa que você está falando 378 00:18:33,600 --> 00:18:38,730 não em unidades de três mas quatro, cinco, seis, sete e oito, 379 00:18:38,730 --> 00:18:46,910 o que nos dá lugar 8 de, 16 de 32, de 64, de, e 128 do. 380 00:18:46,910 --> 00:18:50,010 >> Em outras palavras, um bit não é tudo tão útil uma unidade de medida, 381 00:18:50,010 --> 00:18:53,132 porque é apenas como um minúsculo pedaço de informação, ligado ou desligado. 382 00:18:53,132 --> 00:18:54,840 Então, há alguns anos, o mundo apenas decidiu 383 00:18:54,840 --> 00:18:59,060 É um pouco mais conveniente falar em termos de bytes, oito coisas ao mesmo tempo. 384 00:18:59,060 --> 00:19:01,670 E assim assim nasceu a noção de um byte. 385 00:19:01,670 --> 00:19:03,640 E assim temos oito bits aqui. 386 00:19:03,640 --> 00:19:06,810 >> E verifica-se, também, para semelhante razões, o mundo decidiu anos 387 00:19:06,810 --> 00:19:12,439 atrás que para representar uma carta ASCII, você está indo para usar unidades de 8 bits. 388 00:19:12,439 --> 00:19:14,230 Assim, mesmo se você não faz precisa que muitos, você está 389 00:19:14,230 --> 00:19:18,130 sempre vai usar 8 bits para representam uma letra do alfabeto. 390 00:19:18,130 --> 00:19:20,950 E isso é conveniente, porque então se você 391 00:19:20,950 --> 00:19:28,720 receber uma mensagem que tem um 0 0 0 1 1 1 1 0 seguido por outra 1 1 1 0 1 0 392 00:19:28,720 --> 00:19:33,320 0 1, por isso, se você receber 16 bocados, o mundo pode apenas 393 00:19:33,320 --> 00:19:37,460 supor que o primeiro 8 é uma carta eo segundo 8 são outra carta. 394 00:19:37,460 --> 00:19:39,240 >> Não importa quantos existem. 395 00:19:39,240 --> 00:19:41,460 Só importa que estamos todos de acordo 396 00:19:41,460 --> 00:19:42,950 quando estamos interpretando estes bits. 397 00:19:42,950 --> 00:19:44,377 E este foi apenas aleatória. 398 00:19:44,377 --> 00:19:47,210 Isso significa alguma coisa, mas eu não fiz realmente pensar sobre o que significa. 399 00:19:47,210 --> 00:19:49,620 >> Portanto, é uma pequena mentira branca. 400 00:19:49,620 --> 00:19:51,990 Originalmente, ASCII realmente utilizado somente 7 bits. 401 00:19:51,990 --> 00:19:54,180 E o oitavo bit é chamado ASCII estendido. 402 00:19:54,180 --> 00:19:56,290 Mas o ponto é, em última análise, o mesmo. 403 00:19:56,290 --> 00:19:58,850 O mundo em geral padronizado em 8 bits. 404 00:19:58,850 --> 00:20:04,290 >> Portanto, este parece ser um pouco limitante, porque eu só posso 405 00:20:04,290 --> 00:20:07,970 representam o capital A, capital de B a Z. capitais 406 00:20:07,970 --> 00:20:10,940 Mas, na verdade não, se eu for a-- há um monte de recursos 407 00:20:10,940 --> 00:20:13,695 on-line, por exemplo, asciitable.com, este 408 00:20:13,695 --> 00:20:16,310 vai ser um pouco esmagadora em primeiro lugar. 409 00:20:16,310 --> 00:20:18,910 Mas vou salientar o que é importante aqui. 410 00:20:18,910 --> 00:20:24,090 >> Isso só acontece de ser-- e eu vou walk-- vamos ver, se eu passar por cima aqui. 411 00:20:24,090 --> 00:20:27,990 Aqui está, no decimal coluna, o número 65. 412 00:20:27,990 --> 00:20:32,201 E na carta coluna da direita caráter, Chr, é a letra A. 413 00:20:32,201 --> 00:20:34,450 E você pode ignorar, por agora, tudo no meio. 414 00:20:34,450 --> 00:20:36,769 Este é hexadecimal, octal, e um código HTML. 415 00:20:36,769 --> 00:20:39,810 Para este site está apenas tentando jogar um monte de informações para você de uma vez. 416 00:20:39,810 --> 00:20:42,970 Mas tudo o que nos interessa é o decimal coluna ea coluna de caracteres. 417 00:20:42,970 --> 00:20:46,190 >> Então, por esta lógica, o que é o número que o mundo 418 00:20:46,190 --> 00:20:50,510 decidiu representa uma minúscula um? 419 00:20:50,510 --> 00:20:52,230 Sim, 97. 420 00:20:52,230 --> 00:20:55,850 E apenas para confundir potencialmente um pouco, 421 00:20:55,850 --> 00:21:03,715 o número tem o mundo decidiu representaria o número 1? 422 00:21:03,715 --> 00:21:06,900 423 00:21:06,900 --> 00:21:10,910 Certo, porque nós-- 49, parece aqui, para baixo no canto inferior esquerdo. 424 00:21:10,910 --> 00:21:12,320 >> Agora, o que quero dizer com isso? 425 00:21:12,320 --> 00:21:14,830 Assim, verifica-se que em sistemas de computador, 426 00:21:14,830 --> 00:21:16,840 existe geralmente um diferença fundamental 427 00:21:16,840 --> 00:21:19,920 entre um número e um personagem. 428 00:21:19,920 --> 00:21:22,330 Um número é a coisa que aprendeu crescendo quando 429 00:21:22,330 --> 00:21:23,830 nós super jovem na escola. 430 00:21:23,830 --> 00:21:25,110 É coisas que contam com. 431 00:21:25,110 --> 00:21:30,220 Mas um personagem é apenas uma forma, um glifo, por assim dizer, na tela. 432 00:21:30,220 --> 00:21:36,200 >> Agora, nós, humanos, espécie de ver algo que se parece com isso. 433 00:21:36,200 --> 00:21:39,060 E nós dizemos, oh, que é o número 2. 434 00:21:39,060 --> 00:21:44,999 Mas não, isso é apenas um símbolo que parece como o que nós sabemos como o número 2. 435 00:21:44,999 --> 00:21:46,790 E assim há essa distinção fundamental 436 00:21:46,790 --> 00:21:50,340 entre os números reais e personagens. 437 00:21:50,340 --> 00:21:52,130 Este é um número. 438 00:21:52,130 --> 00:21:54,420 Mas, geralmente, na contexto de um computador, 439 00:21:54,420 --> 00:21:56,809 Se você em vez ver algo como isto quoted-- 440 00:21:56,809 --> 00:21:58,600 e você nem sempre tem que ver citado, 441 00:21:58,600 --> 00:22:01,474 mas por uma questão de discussion-- se você vê aspas em torno do número, 442 00:22:01,474 --> 00:22:02,730 este é agora um personagem. 443 00:22:02,730 --> 00:22:06,330 Então esse número 2 por baixo a capa interior de um computador 444 00:22:06,330 --> 00:22:12,220 seria representada com um padrão de bits que representa o número 445 00:22:12,220 --> 00:22:14,850 50 de acordo com o gráfico online. 446 00:22:14,850 --> 00:22:18,300 >> No entanto, se um computador apenas vê isso, essa 447 00:22:18,300 --> 00:22:24,580 seria representada com o padrão de bit 0 0 0 0 0 0 1 0. 448 00:22:24,580 --> 00:22:29,595 Considerando que, este personagem seria na verdade, ser representado as-- e agora, 449 00:22:29,595 --> 00:22:34,710 Eu tenho que pensar um pouco harder-- de modo que este personagem iria ser representado com 0 450 00:22:34,710 --> 00:22:39,080 0 1-- o que eu preciso aqui? 451 00:22:39,080 --> 00:22:44,450 0 0 1 1 0 0 1 0. 452 00:22:44,450 --> 00:22:45,480 Como eu fiz isso? 453 00:22:45,480 --> 00:22:49,580 Bem, este é o número 50, se você multiplicá-lo usando essas colunas, 454 00:22:49,580 --> 00:22:53,530 este é o número 2, e assim é por isso que existe essa dicotomia. 455 00:22:53,530 --> 00:22:55,850 >> E este é apenas um provocação agora para recursos 456 00:22:55,850 --> 00:22:59,710 que existem em linguagens de programação que nós vamos tocar em breve mais tarde hoje. 457 00:22:59,710 --> 00:23:01,950 Em linguagens de programação, você tem, geralmente, 458 00:23:01,950 --> 00:23:04,495 mas nem sempre, as coisas chamar diferentes tipos de dados. 459 00:23:04,495 --> 00:23:06,870 Em outras palavras, um programmer-- quando ele ou ela está escrevendo, 460 00:23:06,870 --> 00:23:11,150 um programador começa a decidir no que formato para armazenar seus dados. 461 00:23:11,150 --> 00:23:14,120 Você pode armazenar dados como números brutos, como o número 2. 462 00:23:14,120 --> 00:23:17,940 Ou pode armazená-los como cordas, ou sequências de caracteres 463 00:23:17,940 --> 00:23:21,550 que, em geral, expressa com citações em sua linguagem de programação. 464 00:23:21,550 --> 00:23:25,230 >> Você pode ter as coisas called-- Vou simplificar e chamá-los 465 00:23:25,230 --> 00:23:28,870 Números de real, de modo que os números não são números inteiros, como o número 2, 466 00:23:28,870 --> 00:23:31,310 mas os números como 4,56. 467 00:23:31,310 --> 00:23:33,490 Então números reais também pode têm pontos decimais, 468 00:23:33,490 --> 00:23:36,340 de modo que é uma pessoa diferente fundamentais pedaço de dados num computador. 469 00:23:36,340 --> 00:23:41,920 E então você pode até ter outros tipos de dados ainda. 470 00:23:41,920 --> 00:23:45,810 Então, isso é apenas um teaser realmente de a mais simples das decisões de design 471 00:23:45,810 --> 00:23:50,960 que um programador pode fazem debaixo do capô. 472 00:23:50,960 --> 00:23:52,925 >> Então dúvidas apenas ainda? 473 00:23:52,925 --> 00:23:57,320 474 00:23:57,320 --> 00:23:59,860 Então, vamos tentar fazer isso um pouco mais real. 475 00:23:59,860 --> 00:24:02,120 Este equipamento não é muito mais em uso. 476 00:24:02,120 --> 00:24:07,420 Mas a maioria de todos nesta sala provavelmente cresci com e ainda usa discos rígidos 477 00:24:07,420 --> 00:24:08,010 de algum modo. 478 00:24:08,010 --> 00:24:10,100 >> Mesmo que a maioria dos nossos laptops não 479 00:24:10,100 --> 00:24:15,900 têm dispositivos que operam como este, em vez laptops hoje em geral 480 00:24:15,900 --> 00:24:18,590 têm drives de estado sólido sem partes móveis. 481 00:24:18,590 --> 00:24:22,840 E que tende a ser mais caros, infelizmente, mas um pouco mais rápido 482 00:24:22,840 --> 00:24:27,230 e um-- bem, muitas vezes, muito mais rápido, que é uma das razões. 483 00:24:27,230 --> 00:24:28,980 E também não faz gera tanto calor. 484 00:24:28,980 --> 00:24:31,680 Ele pode ser menor, pelo que é geralmente um líquido positivo. 485 00:24:31,680 --> 00:24:35,030 >> Mas isso nos permite mapear uma pouco mais concretamente o que 486 00:24:35,030 --> 00:24:38,460 nós estamos falando sobre a 0 e nível 1 da empresa a um dispositivo físico. 487 00:24:38,460 --> 00:24:40,810 É uma coisa para mim falar cerca de 0 e 1 em termos de 488 00:24:40,810 --> 00:24:43,990 do meu telefone ou abstratamente em termos de interruptores sendo ligado e desligado. 489 00:24:43,990 --> 00:24:45,340 Mas o que acontece com os discos rígidos? 490 00:24:45,340 --> 00:24:48,495 Em seus laptops, se você tem um mais velho um, ou no seu computador desktop, 491 00:24:48,495 --> 00:24:51,200 ou certamente em servidores hoje, onde você tem 492 00:24:51,200 --> 00:24:53,070 discos rígidos que têm um terabyte de espaço, 493 00:24:53,070 --> 00:24:55,560 4 terabytes de espaço, bem o que isso significa? 494 00:24:55,560 --> 00:24:59,560 >> Um disco rígido com 1 terabyte de meios espaciais 495 00:24:59,560 --> 00:25:03,890 há 1 trilhão de bytes dentro dele de alguma forma, 496 00:25:03,890 --> 00:25:10,450 ou equivalentemente 8 trilhões de bits dentro. 497 00:25:10,450 --> 00:25:16,240 1 terabyte seria 8 terabits ou 1 trilhão de bits, o que 498 00:25:16,240 --> 00:25:19,330 significa que se você tem um disco rígido, você tem de alguma forma 499 00:25:19,330 --> 00:25:22,400 ou outros de um trilhão de 0 do e 1 de dentro dele. 500 00:25:22,400 --> 00:25:25,360 E se nós basta dar uma olhada em um imagem arbitrária de um disco rígido 501 00:25:25,360 --> 00:25:30,110 representante, é isso que um disco unidade pode tipicamente olhar como no interior. 502 00:25:30,110 --> 00:25:32,600 >> É, também, é tipo como um leitor de fonógrafo velho 503 00:25:32,600 --> 00:25:35,350 mas geralmente com vários registros dentro, portanto, 504 00:25:35,350 --> 00:25:38,270 para speak-- múltipla travessas, como são chamados, 505 00:25:38,270 --> 00:25:42,259 discos circulares de metal, e em seguida, uma cabeça de leitura pouco, 506 00:25:42,259 --> 00:25:43,550 muito parecido com um jogador gravado idoso. 507 00:25:43,550 --> 00:25:46,589 E que a cabeça de leitura se move para trás e frente e de alguma forma lê os bits. 508 00:25:46,589 --> 00:25:49,380 E o que é sobre estas travessas, mesmo embora nós, humanos, não pode vê-los, 509 00:25:49,380 --> 00:25:52,757 quer na realidade ou, neste quadro, há minúsculas partículas magnéticas pequenas. 510 00:25:52,757 --> 00:25:55,090 E mesmo se você tiver tempo esquecido como a eletricidade funciona, 511 00:25:55,090 --> 00:25:57,550 uma partícula magnética que é cobrado em geral 512 00:25:57,550 --> 00:26:00,570 tem uma extremidade norte e um sul end-- tão norte e sul. 513 00:26:00,570 --> 00:26:03,000 E assim o mundo apenas decidiu há algum tempo atrás 514 00:26:03,000 --> 00:26:06,570 que, se um protocolo essencialmente magnética está alinhado como este, norte-sul, 515 00:26:06,570 --> 00:26:07,610 vamos chamar que uma 1. 516 00:26:07,610 --> 00:26:10,470 Se é em vez sul-norte, vamos chamar isso de um 0. 517 00:26:10,470 --> 00:26:13,350 E por isso, se você tem pelo sua disposição de um trilhão 518 00:26:13,350 --> 00:26:16,300 minúsculo magnética particles-- e, esperamos, 519 00:26:16,300 --> 00:26:18,740 a ingenuidade hardware em Para inverter aqueles ao seu redor 520 00:26:18,740 --> 00:26:24,450 como você vê fit-- se você quiser representam um grupo inteiro de 0 do, você 521 00:26:24,450 --> 00:26:28,120 só precisa de 8 partículas magnéticas todos alinhados assim. 522 00:26:28,120 --> 00:26:30,330 E se você quiser para representar oito 1s, você só 523 00:26:30,330 --> 00:26:33,170 precisa de 8 partículas magnéticas alinhadas volta para trás para fazer assim. 524 00:26:33,170 --> 00:26:35,515 >> O que quero dizer com a partículas magnéticas? 525 00:26:35,515 --> 00:26:38,390 Francamente, todos estes anos mais tarde, o coisa que ainda me vem à mente 526 00:26:38,390 --> 00:26:42,139 é esse cara, se você Cresci com essa coisa. 527 00:26:42,139 --> 00:26:43,930 Este é um little-- para aqueles unfamiliar-- um 528 00:26:43,930 --> 00:26:47,810 brinquedinho infância que tem este homem calvo aqui 529 00:26:47,810 --> 00:26:51,690 que tem todos esses pequenino preto partículas magnéticas que vêm com ele. 530 00:26:51,690 --> 00:26:53,930 E usar essa vara vermelho, que é apenas um ímã, 531 00:26:53,930 --> 00:26:58,460 você pode classificar de dar-lhe um bigode ou sobrancelhas ou o cabelo ou qualquer coisa sobre ele. 532 00:26:58,460 --> 00:27:00,710 Assim, na verdade, se aumentar em, por exemplo, esta 533 00:27:00,710 --> 00:27:02,950 é o tipo de jogo que você pode jogar com Wooly Willy. 534 00:27:02,950 --> 00:27:06,570 >> E isso é só para dizer que estes são partículas magnéticas muito maiores 535 00:27:06,570 --> 00:27:09,890 que são realmente em um disco rígido, e muito menos partículas magnéticas. 536 00:27:09,890 --> 00:27:11,640 Mas vamos realmente ver em seguida, se você tem 537 00:27:11,640 --> 00:27:14,720 minúsculas partículas magnéticas numa disco rígido, como você pode realmente 538 00:27:14,720 --> 00:27:19,090 use-os para representar dados. 539 00:27:19,090 --> 00:27:20,070 >> [REPRODUÇÃO DE VÍDEO] 540 00:27:20,070 --> 00:27:24,190 >> -A Unidade de disco rígido é onde o seu PC lojas maioria de seus dados permanentes. 541 00:27:24,190 --> 00:27:27,170 Para fazer isso, os dados viaja ao longo da RAM 542 00:27:27,170 --> 00:27:31,720 com sinais de software que contam a disco rígido como armazenar esses dados. 543 00:27:31,720 --> 00:27:36,570 Os circuitos do disco rígido traduzir os sinais em flutuações de voltagem. 544 00:27:36,570 --> 00:27:40,880 Estes, por sua vez, controla a unidade de disco de movendo parts-- alguns dos poucos em movimento 545 00:27:40,880 --> 00:27:43,440 partes deixado no computador moderno. 546 00:27:43,440 --> 00:27:47,650 >> Alguns dos sinais de controlo de um motor, que gira pratos revestidos por metal. 547 00:27:47,650 --> 00:27:50,980 Seus dados são, na verdade, armazenado nestas travessas. 548 00:27:50,980 --> 00:27:56,250 Outros sinais de mover as cabeças de leitura / gravação para ler ou gravar dados sobre os pratos. 549 00:27:56,250 --> 00:28:00,100 Esta máquina é tão preciso que um cabelo humano não poderia mesmo 550 00:28:00,100 --> 00:28:02,800 passar entre as cabeças e girando travessas. 551 00:28:02,800 --> 00:28:04,887 No entanto, tudo funciona em velocidades incríveis. 552 00:28:04,887 --> 00:28:05,470 [FIM DE REPRODUÇÃO] 553 00:28:05,470 --> 00:28:06,780 E você pode ver na extremidade da cauda do vídeo, 554 00:28:06,780 --> 00:28:08,340 geralmente há múltiplas travessas. 555 00:28:08,340 --> 00:28:10,250 E assim que a cabeça de leitura não é apenas a leitura do topo. 556 00:28:10,250 --> 00:28:12,458 É tipo como de três ou ou mais quatro cabeças de leitura 557 00:28:12,458 --> 00:28:14,920 esse movimento como este, a leitura de dados simultaneamente. 558 00:28:14,920 --> 00:28:17,407 >> Portanto, há um monte de complexidade e tipo de sincronismo 559 00:28:17,407 --> 00:28:18,740 que está envolvido em um disco rígido. 560 00:28:18,740 --> 00:28:21,920 E a coisa está girando muito danado rápido, então não há muita complexidade. 561 00:28:21,920 --> 00:28:25,220 Mas vamos ampliar um pouco mais profundo e veja onde estão essas partículas magnéticas 562 00:28:25,220 --> 00:28:27,370 e como é que está ficando para eles. 563 00:28:27,370 --> 00:28:28,750 >> [REPRODUÇÃO DE VÍDEO] 564 00:28:28,750 --> 00:28:31,830 >> olhar -Vamos para o que só vi em câmera lenta. 565 00:28:31,830 --> 00:28:35,230 Quando um breve pulso de electricidade é enviado para a cabeça de leitura / escrita, 566 00:28:35,230 --> 00:28:39,000 ele vira em uma pequena eletromagnética para uma fracção de um segundo. 567 00:28:39,000 --> 00:28:41,390 O ímã cria um campo, que muda 568 00:28:41,390 --> 00:28:44,600 a polaridade de um pequeno, pequenas porção das partículas de metal 569 00:28:44,600 --> 00:28:46,960 que revestir a superfície de cada prato. 570 00:28:46,960 --> 00:28:50,020 Uma série padrão de estes minúsculos carregadas de áreas no disco 571 00:28:50,020 --> 00:28:54,590 representa um único bit de dados no sistema numérico binário usado pelos computadores. 572 00:28:54,590 --> 00:28:57,510 >> Agora, se a corrente é enviada uma caminho através da cabeça de leitura / gravação, 573 00:28:57,510 --> 00:28:59,899 a área seja polarizada numa direcção. 574 00:28:59,899 --> 00:29:01,940 Se a corrente é enviado em no sentido oposto, 575 00:29:01,940 --> 00:29:04,020 a polarização é invertida. 576 00:29:04,020 --> 00:29:06,440 Como você obter dados fora do disco rígido? 577 00:29:06,440 --> 00:29:08,190 Basta inverter o processo. 578 00:29:08,190 --> 00:29:10,440 Por isso é que as partículas no disco que começa a corrente 579 00:29:10,440 --> 00:29:12,260 na cabeça de leitura / gravação em movimento. 580 00:29:12,260 --> 00:29:14,580 Juntos milhões de esses segmentos magnetizadas, 581 00:29:14,580 --> 00:29:16,220 e você tem um arquivo. 582 00:29:16,220 --> 00:29:21,030 >> Agora, as peças de um único arquivo pode ser espalhados por todo travessas de uma unidade, 583 00:29:21,030 --> 00:29:24,060 como o tipo de bagunça de papéis em sua mesa. 584 00:29:24,060 --> 00:29:27,590 Assim, um arquivo extra especial mantém o controle de onde está tudo. 585 00:29:27,590 --> 00:29:30,440 Você não gostaria de ter algo parecido? 586 00:29:30,440 --> 00:29:31,290 >> [FIM DE REPRODUÇÃO] 587 00:29:31,290 --> 00:29:36,260 >> Assim sendo aludido lá, talvez, é esse tópico de ontem de eliminação. 588 00:29:36,260 --> 00:29:38,380 Quando você exclui uma arquivo, ontem dissemos 589 00:29:38,380 --> 00:29:41,020 que um computador realmente faz o que, quando você arrastar algo 590 00:29:41,020 --> 00:29:44,110 para a Lixeira ou lata de lixo? 591 00:29:44,110 --> 00:29:45,150 Ela só esquece. 592 00:29:45,150 --> 00:29:47,540 Mas a 0 e 1s, as partículas magnéticas 593 00:29:47,540 --> 00:29:50,640 que se parecem com vermelho e azul coisas aqui, ou meu braço aqui, 594 00:29:50,640 --> 00:29:52,350 ainda estão lá no disco rígido. 595 00:29:52,350 --> 00:29:56,090 >> E assim existe software-- Norton Utilities e Yesteryear 596 00:29:56,090 --> 00:29:58,159 e outra mais moderna software-- que só 597 00:29:58,159 --> 00:30:01,200 fará a varredura de um disco rígido inteiro à procura para todos aqueles 0 e 1., porque 598 00:30:01,200 --> 00:30:06,890 Acontece que a maioria formatos-- arquivo documentos do Word, arquivos do Excel, imagens, 599 00:30:06,890 --> 00:30:10,380 vídeo files-- todos têm certa padrões que são comuns entre eles. 600 00:30:10,380 --> 00:30:12,550 Cada arquivo de vídeo pode ser de um vídeo diferente, 601 00:30:12,550 --> 00:30:14,870 mas o primeiro de vários os bits são geralmente o mesmo. 602 00:30:14,870 --> 00:30:16,790 Ou os últimos pedaços são geralmente o mesmo. 603 00:30:16,790 --> 00:30:19,910 >> E assim, com alta probabilidade, você pode olhar para esses padrões. 604 00:30:19,910 --> 00:30:23,700 E mesmo que o arquivo tenha sido esquecido, você pode dizer com grande probabilidade, 605 00:30:23,700 --> 00:30:28,460 mas isto parece um documento do Word, permite recuperá-lo e un-esquecê-lo, 606 00:30:28,460 --> 00:30:28,990 Se você for. 607 00:30:28,990 --> 00:30:32,330 E é assim que você pode recuperar dados que está ou foi acidentalmente 608 00:30:32,330 --> 00:30:36,560 suprimida ou eliminada ou deliberadamente suprimido, a qualquer título. 609 00:30:36,560 --> 00:30:42,530 >> Por outro lado, exclusão segura faz o que no contexto de um quadro como este? 610 00:30:42,530 --> 00:30:44,059 Exatamente, torna tudo aleatório. 611 00:30:44,059 --> 00:30:46,350 Por isso, tipo de move alguns dos -los para baixo, até algumas delas, 612 00:30:46,350 --> 00:30:49,433 deixa alguns deles inalterada e geralmente faz ruído aleatório fora dele, 613 00:30:49,433 --> 00:30:52,960 ou talvez apenas torna tudo deles 0 de ou todos eles 1s. 614 00:30:52,960 --> 00:30:56,350 E que também pode geralmente esfregue seus dados de distância. 615 00:30:56,350 --> 00:31:00,160 >> Então, vamos voltar agora para a questão de pensamento computacional, em que 616 00:31:00,160 --> 00:31:03,270 que tem as entradas de fórmula. 617 00:31:03,270 --> 00:31:06,390 E algoritmos dá você emite em última instância. 618 00:31:06,390 --> 00:31:09,270 Vamos nos concentrar agora nas entradas e saídas, porque agora, eu 619 00:31:09,270 --> 00:31:12,159 reivindicação temos uma forma de representando entradas e saídas. 620 00:31:12,159 --> 00:31:13,450 Nós apenas estamos indo para usar binário. 621 00:31:13,450 --> 00:31:15,910 >> E não importa o que nós querer representar hoje, 622 00:31:15,910 --> 00:31:20,230 se é um número ou uma letra ou milhares destes em um livro de telefone 623 00:31:20,230 --> 00:31:23,210 ou imagens ou filmes, no final do dia, é tudo 0 e 1s. 624 00:31:23,210 --> 00:31:26,640 E eu afirmo que, mesmo que este é um mundo super simples com apenas 0 do 625 00:31:26,640 --> 00:31:28,240 e 1 de, podemos construir-nos para cima. 626 00:31:28,240 --> 00:31:32,210 E nós vimos um exemplo de que, com letras até agora. 627 00:31:32,210 --> 00:31:35,615 >> Então, vamos nos concentrar agora na presente ingrediente meio, um algoritmo. 628 00:31:35,615 --> 00:31:38,190 E vamos voltar a este exemplo de Mike Smith. 629 00:31:38,190 --> 00:31:41,689 Portanto, neste livro de telefone, o que é certo, nós não usamos muito mais, 630 00:31:41,689 --> 00:31:42,980 há um problema a ser resolvido. 631 00:31:42,980 --> 00:31:45,040 Queremos encontrar alguém como Mike Smith. 632 00:31:45,040 --> 00:31:47,520 >> E o que eu poderia fazer para encontrar Mike? 633 00:31:47,520 --> 00:31:51,197 Bem, eu poderia simplesmente abrir este livro, começar na primeira página, 634 00:31:51,197 --> 00:31:52,780 e perceber, oh, eu estou na secção A. 635 00:31:52,780 --> 00:31:53,510 Mike não está lá. 636 00:31:53,510 --> 00:31:55,510 Eu preciso da secção S para Smith. 637 00:31:55,510 --> 00:31:58,192 Então, basta continuar girando uma página de cada vez. 638 00:31:58,192 --> 00:32:00,900 Deixe-me fingir que isto é tudo páginas brancas e páginas amarelas, não 639 00:32:00,900 --> 00:32:02,910 porque não estamos indo para encontrar Mike nas páginas amarelas de qualquer maneira. 640 00:32:02,910 --> 00:32:04,034 Mas estou nas páginas brancas. 641 00:32:04,034 --> 00:32:05,340 E agora, estou na secção B. 642 00:32:05,340 --> 00:32:06,810 Eu ainda não o encontrou. 643 00:32:06,810 --> 00:32:08,890 Então eu continuo virando uma página de cada vez. 644 00:32:08,890 --> 00:32:10,130 >> Este é um algoritmo. 645 00:32:10,130 --> 00:32:12,440 É um conjunto de instruções para resolver algum problema. 646 00:32:12,440 --> 00:32:16,480 Em outras palavras, olhar página, se Mike não é sobre ele, 647 00:32:16,480 --> 00:32:20,020 virar a página, e repete de novo e de novo e de novo, 648 00:32:20,020 --> 00:32:21,760 idealmente olhando para baixo enquanto você está fazendo isso. 649 00:32:21,760 --> 00:32:24,120 Então é esse algoritmo, Neste processo, correto? 650 00:32:24,120 --> 00:32:27,400 651 00:32:27,400 --> 00:32:28,830 >> Desculpa. 652 00:32:28,830 --> 00:32:30,056 Não, eu ouvi alguns nos. 653 00:32:30,056 --> 00:32:33,250 654 00:32:33,250 --> 00:32:36,125 OK, mas é-- sim, certamente é tedioso. 655 00:32:36,125 --> 00:32:39,000 Como, nós estaremos aqui durante todo o dia se eu manter a procura de Mike a esta velocidade. 656 00:32:39,000 --> 00:32:41,430 Mas deixe-me dizem que é correto. 657 00:32:41,430 --> 00:32:43,850 É estúpido, mas é correto. 658 00:32:43,850 --> 00:32:47,209 >> No fim do dia, desde que ele pode tomar, eu vou encontrar Mike se ele está lá 659 00:32:47,209 --> 00:32:48,250 e eu estou prestando atenção. 660 00:32:48,250 --> 00:32:50,230 E eu finalmente chegar a sua página. 661 00:32:50,230 --> 00:32:52,890 E se eu ficar muito longe, se I chegar à seção T, 662 00:32:52,890 --> 00:32:55,900 então eu posso ligeiramente otimizar e apenas dizer, hm, tudo feito. 663 00:32:55,900 --> 00:32:57,980 Eu nem sequer precisa perder tempo de ir para o Z de. 664 00:32:57,980 --> 00:33:00,010 Mas este é um muito abordagem linear, se você 665 00:33:00,010 --> 00:33:03,370 vai, muito espécie de esquerda para a direita abordagem, uma linha reta. 666 00:33:03,370 --> 00:33:05,560 E sua correta, mas lento. 667 00:33:05,560 --> 00:33:09,250 >> Então, eu me lembro da escola de classe, tipo de uma otimização de um aluno da primeira série, 668 00:33:09,250 --> 00:33:13,756 onde eu aprendi como contar não por outras mas por twos-- assim 2, 4, 6. 669 00:33:13,756 --> 00:33:15,630 É A, muito mais difícil de fazer, mas, em teoria, é 670 00:33:15,630 --> 00:33:20,149 faster-- 8, 10, 12, 14, e assim por diante. 671 00:33:20,149 --> 00:33:21,190 Como sobre esse algoritmo? 672 00:33:21,190 --> 00:33:23,150 É mais eficiente? 673 00:33:23,150 --> 00:33:23,880 É mais rápido? 674 00:33:23,880 --> 00:33:25,365 >> AUDIÊNCIA: É eficiente. 675 00:33:25,365 --> 00:33:28,560 >> DAVID MALAN: Sim, por isso é que é def-- literalmente duas vezes mais rápido, assumindo I 676 00:33:28,560 --> 00:33:30,170 não tropeçar com os dedos. 677 00:33:30,170 --> 00:33:32,294 É duas vezes mais rápido, porque Eu estou virando através de dois 678 00:33:32,294 --> 00:33:36,560 páginas ao mesmo tempo em vez de um, mas é potencialmente correta, por que? 679 00:33:36,560 --> 00:33:37,852 >> AUDIÊNCIA: Você está ignorando alguns. 680 00:33:37,852 --> 00:33:41,185 DAVID MALAN: Certo, e se Mike acontece a ser sandwiched-- talvez quando eu sou mais tarde 681 00:33:41,185 --> 00:33:44,370 no livro de telefone, Mike passa a ser ensanduichada entre estas duas páginas, 682 00:33:44,370 --> 00:33:46,720 e eu apenas cega ignorá-lo. 683 00:33:46,720 --> 00:33:48,490 Então, precisamos de um pouco de correção lá. 684 00:33:48,490 --> 00:33:51,290 Uma vez eu bati na seção T, I não pode simplesmente dizer com confiança, 685 00:33:51,290 --> 00:33:52,420 não encontramos Mike Smith. 686 00:33:52,420 --> 00:33:53,770 Eu provavelmente terá que dobrar para trás. 687 00:33:53,770 --> 00:34:00,210 Ou de facto, uma vez que eu falar com alguém chamado S-N, em vez de S-M para Smith, 688 00:34:00,210 --> 00:34:02,790 Imediatamente, eu poderia dobrar volta, porque talvez ele 689 00:34:02,790 --> 00:34:03,900 estava na página anterior. 690 00:34:03,900 --> 00:34:05,070 >> Mas não tem que dobrar para trás distante. 691 00:34:05,070 --> 00:34:08,030 Em teoria, se eu fizer isso à direita tempo, eu só voltar uma página. 692 00:34:08,030 --> 00:34:10,139 Por isso, está adicionando apenas uma etapa extra. 693 00:34:10,139 --> 00:34:13,070 Então eu fui duas vezes mais rápido, mas custou-me uma página extra. 694 00:34:13,070 --> 00:34:14,699 Mas isso parece uma vitória líquida. 695 00:34:14,699 --> 00:34:17,230 >> Mas isto não é como a maioria das pessoas em Este quarto resolveria este problema. 696 00:34:17,230 --> 00:34:20,313 O que seria uma pessoa normal, talvez um Há alguns anos fazer, para encontrar Mike Smith? 697 00:34:20,313 --> 00:34:22,900 698 00:34:22,900 --> 00:34:24,800 Sim, não encontrou Mike. 699 00:34:24,800 --> 00:34:27,190 O que eu faço? 700 00:34:27,190 --> 00:34:31,027 Portanto, obter um pouco mais perto, mas eu faço sabe-- que é verdade sobre um livro de telefone? 701 00:34:31,027 --> 00:34:32,110 AUDIÊNCIA: É sequencial. 702 00:34:32,110 --> 00:34:32,760 DAVID MALAN: É sequencial. 703 00:34:32,760 --> 00:34:33,750 É alfabética. 704 00:34:33,750 --> 00:34:36,540 E por isso, se eu estou na secção M, Mike é claramente para a direita, 705 00:34:36,540 --> 00:34:39,949 I pode literalmente rasgar o problema em half-- 706 00:34:39,949 --> 00:34:44,360 é geralmente mais fácil do que lágrima isso-- o problema pela metade e jogá-lo fora, 707 00:34:44,360 --> 00:34:47,627 de modo que agora, eu tenho um problema que é não 1.000 pages-- que era difícil, 708 00:34:47,627 --> 00:34:50,210 porque eu acho que realmente rasgou o livro de telefone isso não tempo-- 709 00:34:50,210 --> 00:34:52,219 1.000 páginas, mas 500. 710 00:34:52,219 --> 00:34:54,750 >> Portanto, o problema é, literalmente, metade do tamanho. 711 00:34:54,750 --> 00:34:58,170 E isso é muito atraente, porque com meus algoritmos anteriores, versão 712 00:34:58,170 --> 00:35:02,870 1 e 2, eu estava apenas fazendo o problema uma página menores, duas páginas menores 713 00:35:02,870 --> 00:35:03,470 de uma vez. 714 00:35:03,470 --> 00:35:07,230 Enquanto que agora, eu fiz isso 500 páginas menor de uma só vez. 715 00:35:07,230 --> 00:35:10,089 >> OK, então agora, Karim propõe que eu vá para a metade direita. 716 00:35:10,089 --> 00:35:12,380 Então, eu estou indo para ir mais ou menos para o meio, mais ou menos. 717 00:35:12,380 --> 00:35:15,185 E se eu fiz isso matematicamente, Eu poderia ir para a direita para o meio. 718 00:35:15,185 --> 00:35:17,060 E agora, eu percebo, oh, Estou na seção T. 719 00:35:17,060 --> 00:35:18,280 Na verdade, eu fui longe demais. 720 00:35:18,280 --> 00:35:21,670 >> Mas eu posso, mais uma vez, rasgar o problema pela metade, jogá-lo fora. 721 00:35:21,670 --> 00:35:23,330 E meus bytes não tão grande. 722 00:35:23,330 --> 00:35:28,780 É apenas, o que, 256 páginas ou 250 páginas, mais ou menos no momento. 723 00:35:28,780 --> 00:35:31,570 Mas ainda é muito mais de uma página ou duas páginas. 724 00:35:31,570 --> 00:35:33,345 >> E então agora, eu vou aproximadamente ao meio. 725 00:35:33,345 --> 00:35:35,330 Oh, eu não ir muito longe o suficiente agora. 726 00:35:35,330 --> 00:35:37,880 Então eu repetir, repetir, repetir, repetir, até que eu sou esperamos 727 00:35:37,880 --> 00:35:40,360 deixou com apenas uma página. 728 00:35:40,360 --> 00:35:44,000 >> Assim que o convida a pergunta, se eu começou com cerca de 1.000 páginas, 729 00:35:44,000 --> 00:35:47,340 quantos passos demorou me com a versão 1 do meu algoritmo? 730 00:35:47,340 --> 00:35:50,420 Bem, se Mike está no S secção, no pior caso, 731 00:35:50,420 --> 00:35:52,630 isso é muito perto de o fim do alfabeto. 732 00:35:52,630 --> 00:35:56,559 Então, se o livro de telefone tem 1.000 páginas, Eu vou encontrar Mike dentro de 1.000 páginas, 733 00:35:56,559 --> 00:35:57,100 dar ou pegar. 734 00:35:57,100 --> 00:35:59,750 Talvez seja como 800 ou assim, mas é muito perto de 1.000. 735 00:35:59,750 --> 00:36:01,680 >> Considerando que, no segundo algoritmo, quantas 736 00:36:01,680 --> 00:36:06,840 viradas de página máximo pode I exigem para encontrar Mike Smith? 737 00:36:06,840 --> 00:36:09,970 Há 1.000 páginas, mas estou fazendo-os dois de uma vez. 738 00:36:09,970 --> 00:36:13,045 Certo, então max como 500ish, porque se eu passar por todo o livro de telefone, 739 00:36:13,045 --> 00:36:14,170 em que ponto, eu posso parar. 740 00:36:14,170 --> 00:36:16,669 Mas eu posso raspar alguns por apenas parando na seção T. 741 00:36:16,669 --> 00:36:19,880 Mas é na pior das hipóteses 500 páginas. 742 00:36:19,880 --> 00:36:24,710 >> Então, quantas vezes eu posso dividir uma 1,00o-página do livro de telefone no meio novamente 743 00:36:24,710 --> 00:36:30,450 e de novo e de novamente-- 1000 a 500 a 250-125? 744 00:36:30,450 --> 00:36:32,250 Quanto tempo antes de eu bater uma página? 745 00:36:32,250 --> 00:36:35,510 746 00:36:35,510 --> 00:36:36,370 Sim, é cerca de 10. 747 00:36:36,370 --> 00:36:40,780 Dependendo arredondamento e tal, é cerca de 10 páginas necessidade total a ser transformaram 748 00:36:40,780 --> 00:36:43,290 ou livros de telefone precisa ser rasgado. 749 00:36:43,290 --> 00:36:44,710 >> Então, isso é muito poderoso. 750 00:36:44,710 --> 00:36:48,170 Começamos com um problema 1.000 páginas em todos os três destas histórias. 751 00:36:48,170 --> 00:36:51,850 Mas no primeiro algoritmo, ele Levei, pior dos casos, com 1.000 páginas 752 00:36:51,850 --> 00:36:52,740 volta-se para encontrar Mike. 753 00:36:52,740 --> 00:36:55,590 Segundo algoritmo, 500 páginas para encontrar Mike. 754 00:36:55,590 --> 00:36:58,480 Terceiro algoritmo, 10 páginas para encontrar Mike. 755 00:36:58,480 --> 00:37:00,230 E é ainda mais poderosa quando você pensa 756 00:37:00,230 --> 00:37:01,860 sobre uma espécie de cenário oposto. 757 00:37:01,860 --> 00:37:05,680 Suponha-se que a empresa de telefonia próxima ano talvez se funde duas cidades juntas, 758 00:37:05,680 --> 00:37:08,550 eo livro de telefone é de repente esta espessura, em vez de essa que, 759 00:37:08,550 --> 00:37:12,470 tão 2.000 páginas, em vez de 1.000. 760 00:37:12,470 --> 00:37:15,640 Bem, meu primeiro algoritmo procura Mike Smith em uma lista telefônica de 2.000 páginas, 761 00:37:15,640 --> 00:37:21,460 pior caso, ele vai levar quantas viradas de página no próximo ano? 762 00:37:21,460 --> 00:37:24,800 >> livro de telefone é de 2.000 páginas, assim-- bem, não mais um. 763 00:37:24,800 --> 00:37:29,540 Se a lista telefónica é duas vezes mais espessa em o primeiro algoritmo, primeiro algoritmo, 764 00:37:29,540 --> 00:37:30,380 2.000, certo? 765 00:37:30,380 --> 00:37:33,005 No pior dos casos, o Mike é realmente Perto do fim do livro, 766 00:37:33,005 --> 00:37:34,110 por isso é 2.000 viradas de página. 767 00:37:34,110 --> 00:37:38,070 Segundo algoritmo passando por twos, como 1.000 páginas. 768 00:37:38,070 --> 00:37:41,490 >> Mas como sobre no meu terceiro e algoritmo mais recente? 769 00:37:41,490 --> 00:37:44,950 Se a empresa de telefonia dobra o número de páginas de 1000 a 2000, 770 00:37:44,950 --> 00:37:47,770 quantas vezes mais precisa Eu rasgo esse livro ao meio para encontrar Mike? 771 00:37:47,770 --> 00:37:48,710 >> AUDIÊNCIA: Apenas um. 772 00:37:48,710 --> 00:37:51,001 >> DAVID MALAN: Só mais uma, porque com uma página lágrima, 773 00:37:51,001 --> 00:37:53,270 Eu pode literalmente dividir e conquistar, se quiserem, 774 00:37:53,270 --> 00:37:57,410 esse problema ao meio tomada uma mordida enorme fora dele. 775 00:37:57,410 --> 00:38:01,420 E por isso este é um exemplo de eficiência e, sem dúvida, um algoritmo 776 00:38:01,420 --> 00:38:04,100 com o qual todos nós somos tipo de intuitivamente familiar. 777 00:38:04,100 --> 00:38:07,780 Mas é apenas como correta como os meus outros algoritmos 778 00:38:07,780 --> 00:38:09,630 com esse ajuste para O segundo algoritmo, 779 00:38:09,630 --> 00:38:11,290 mas é muito mais eficiente. 780 00:38:11,290 --> 00:38:14,030 >> E, de fato, o que é um computador cientista, ou por sua vez, um programador, 781 00:38:14,030 --> 00:38:17,580 que costuma fazer quando se escreve código é tentar descobrir, 782 00:38:17,580 --> 00:38:19,960 tudo bem, eu não quero que meu programa apenas para ser correto, 783 00:38:19,960 --> 00:38:23,220 Eu também quero que seja eficiente e resolver problemas bem. 784 00:38:23,220 --> 00:38:26,450 Imagine que no mundo real hoje, como o Google indexa, pesquisas 785 00:38:26,450 --> 00:38:31,580 como milhares de milhões de páginas, imagine se eles utilizado o primeiro algoritmo para encontrar gatos 786 00:38:31,580 --> 00:38:34,620 entre um bilhão pages-- olhando a primeira página em seu banco de dados, 787 00:38:34,620 --> 00:38:37,700 a segunda, a terceira, olhando apenas para um gato, à procura de um gato. 788 00:38:37,700 --> 00:38:40,350 Isso é muito danado lento que parece. 789 00:38:40,350 --> 00:38:43,170 Eles poderiam, em vez usar algo chamado pesquisa binária, que 790 00:38:43,170 --> 00:38:47,420 há bi coincidence-- significa dois, continuar a dividir algo em 2, em half-- 791 00:38:47,420 --> 00:38:50,205 eles poderiam usar busca binária e talvez encontrar gatos ainda mais rápido, 792 00:38:50,205 --> 00:38:51,830 ou seja o que for que você está procurando. 793 00:38:51,830 --> 00:38:54,125 >> E, francamente, não há mesmo algoritmos extravagantes 794 00:38:54,125 --> 00:38:56,250 que fazer muito mais do que apenas dividir as coisas pela metade 795 00:38:56,250 --> 00:38:58,180 a fim de encontrar informações rapidamente. 796 00:38:58,180 --> 00:39:00,880 E nós vamos falar um pouco sobre aqueles após o almoço hoje. 797 00:39:00,880 --> 00:39:02,640 Então deixe-me tentar representar isso. 798 00:39:02,640 --> 00:39:05,380 Nós não precisamos de ir para qualquer matemática ou números reais. 799 00:39:05,380 --> 00:39:07,070 Podemos falar sobre isso no resumo. 800 00:39:07,070 --> 00:39:11,580 >> Mas deixe-me apenas propor, se você estávamos tendo uma discussão agora 801 00:39:11,580 --> 00:39:13,491 com os engenheiros propondo este algoritmo 802 00:39:13,491 --> 00:39:15,490 e você está tentando fazer uma decisão calculada, 803 00:39:15,490 --> 00:39:17,285 devido talvez a engenheiro diz a você, você 804 00:39:17,285 --> 00:39:19,910 sabe, eu pode implementar um busca linear em como dois minutos. 805 00:39:19,910 --> 00:39:21,150 É assim tão fácil. 806 00:39:21,150 --> 00:39:24,790 busca binária que não é chique, mas ele vai me levar como 10 minutos, 807 00:39:24,790 --> 00:39:26,650 por isso 5 vezes mais tempo. 808 00:39:26,650 --> 00:39:30,900 >> Há um comércio aqui, mesmo em termos de decidir o software para escrever. 809 00:39:30,900 --> 00:39:34,760 Você escreve o algoritmo mais simples, que só vai levá-lo dois minutos? 810 00:39:34,760 --> 00:39:39,880 Ou você gastar mais tempo, 10 minutos, escrever o algoritmo mais sofisticado? 811 00:39:39,880 --> 00:39:43,540 Como você decide que tipo de pergunta? 812 00:39:43,540 --> 00:39:46,710 Ou você pode torná-lo um pouco mais real. 813 00:39:46,710 --> 00:39:50,610 I dizer ao meu chefe que vai demorar me quer uma semana ou 10 semanas 814 00:39:50,610 --> 00:39:52,490 para implementar o software desta forma, como 815 00:39:52,490 --> 00:39:56,103 você decide qual algoritmo para verde-luz? 816 00:39:56,103 --> 00:39:56,603 Karim? 817 00:39:56,603 --> 00:39:57,550 >> Público: O público, eu acho. 818 00:39:57,550 --> 00:39:57,960 >> DAVID MALAN: A audiência. 819 00:39:57,960 --> 00:39:59,460 O que você quer dizer com o público? 820 00:39:59,460 --> 00:40:03,460 >> AUDIÊNCIA: Se ele vai para ser utilizado por utilizadores 821 00:40:03,460 --> 00:40:09,050 que [inaudível] por usuários [inaudível]. 822 00:40:09,050 --> 00:40:11,232 Mas se é algo que você está apenas fazendo para si mesmo 823 00:40:11,232 --> 00:40:13,946 para facilitar um problema, [Inaudível] mais rápido. 824 00:40:13,946 --> 00:40:16,820 DAVID MALAN: Sim, é rápida e suja é uma boa maneira de descrevê-lo. 825 00:40:16,820 --> 00:40:18,695 Na verdade, se você estiver descrevendo muito do meu tempo 826 00:40:18,695 --> 00:40:23,630 na pós-graduação, sendo que muitas vezes, Eu escrevi um código ruim conscientemente assim-- 827 00:40:23,630 --> 00:40:26,490 pelo menos, é assim que eu racionalizada ele-- conscientemente assim, 828 00:40:26,490 --> 00:40:30,670 porque mesmo que eu estava escrevendo código que era relativamente lento para executar, 829 00:40:30,670 --> 00:40:33,750 Eu era capaz de escrever o próprio código muito rápido, gastando apenas alguns minutos 830 00:40:33,750 --> 00:40:35,107 ou não horas dias. 831 00:40:35,107 --> 00:40:37,190 E ele saiu, eu de vez em quando precisava dormir. 832 00:40:37,190 --> 00:40:41,270 Assim, mesmo se o meu código necessário 8 horas para ser executado, bem, isso é bom, 833 00:40:41,270 --> 00:40:42,850 Eu só vou dormir enquanto ele é executado. 834 00:40:42,850 --> 00:40:46,350 >> Então, no momento, eu pensei que este era muito inteligente, apesar de, aparentemente, 835 00:40:46,350 --> 00:40:48,990 trabalhou através do meu PhD muito lentamente. 836 00:40:48,990 --> 00:40:52,270 Mas o inverso do que é que, software, se eu estivesse escrevendo 837 00:40:52,270 --> 00:40:55,930 para outras pessoas que era mais importante do que eu, bem, 838 00:40:55,930 --> 00:40:59,580 tê-los esperar 8 horas para voltar seus resultados de busca 839 00:40:59,580 --> 00:41:01,350 Não é tudo o que atraente. 840 00:41:01,350 --> 00:41:04,090 E assim passar mais tempo na frente para escrever software 841 00:41:04,090 --> 00:41:07,300 que é mais eficiente, mais como o nosso terceiro algoritmo, 842 00:41:07,300 --> 00:41:09,780 provavelmente beneficia os usuários ao longo do tempo. 843 00:41:09,780 --> 00:41:12,710 Então, ele realmente depende mais tempo como esses custos se somam. 844 00:41:12,710 --> 00:41:14,960 Se você estiver indo para ser escrito software para usá-lo uma vez, 845 00:41:14,960 --> 00:41:17,240 provavelmente poderia muito bem fazer rápida e suja, como se costuma dizer. 846 00:41:17,240 --> 00:41:18,198 Simplesmente jogá-lo juntos. 847 00:41:18,198 --> 00:41:20,560 É um código que embaraça você, é tão ruim, 848 00:41:20,560 --> 00:41:23,860 mas ele começa o trabalho feito corretamente, mesmo que não é eficiente. 849 00:41:23,860 --> 00:41:27,200 Por outro lado, você gasta mais tempo em alguma coisa, obtê-lo apenas para a direita. 850 00:41:27,200 --> 00:41:30,730 E então amortizado ao longo do tempo, custo que upfront do tempo 851 00:41:30,730 --> 00:41:34,330 é provavelmente vale a pena, se você continuar otimização para o caso comum. 852 00:41:34,330 --> 00:41:37,620 >> E, de fato, isso é um tema em programação, ou computador ciência mais 853 00:41:37,620 --> 00:41:41,390 geralmente, tentando otimizar não para o caso incomum 854 00:41:41,390 --> 00:41:44,390 mas os case-- comuns que operação vai acontecer de novo e de novo? 855 00:41:44,390 --> 00:41:47,730 Se você estiver indo para ter bilhões dos usuários pesquisar em seu site, 856 00:41:47,730 --> 00:41:52,030 você provavelmente deve passar o extra semanas na frente de escrever melhor software, 857 00:41:52,030 --> 00:41:53,670 de modo que todos os seus usuários se beneficiam. 858 00:41:53,670 --> 00:41:57,840 Agora, vamos tentar capturar esta uma pouco pictorially, mas não tanto 859 00:41:57,840 --> 00:41:58,610 numericamente. 860 00:41:58,610 --> 00:42:01,680 >> Então aqui é apenas um gráfico da velha escola. 861 00:42:01,680 --> 00:42:04,260 E deixe-me dizer que este é o tempo. 862 00:42:04,260 --> 00:42:06,660 E não importa what-- na verdade, não há nem tempo. 863 00:42:06,660 --> 00:42:08,320 Vamos colocar isso no outro eixo. 864 00:42:08,320 --> 00:42:15,700 Vamos dizer que este é o momento, e este é o tamanho do problema. 865 00:42:15,700 --> 00:42:17,830 >> E um cientista da computação pode geralmente chamamos 866 00:42:17,830 --> 00:42:20,820 isso só n. n é como o nosso go-to variável, onde 867 00:42:20,820 --> 00:42:26,351 n é um número, n número, e é a número de quaisquer entradas que você tem. 868 00:42:26,351 --> 00:42:28,100 Portanto, neste caso, n é o número de páginas. 869 00:42:28,100 --> 00:42:30,150 Assim, pode ser 1.000 em o caso que acabamos disse. 870 00:42:30,150 --> 00:42:31,969 >> Assim, o tempo pode ser qualquer unidade de medida. 871 00:42:31,969 --> 00:42:32,760 Talvez, é segundo. 872 00:42:32,760 --> 00:42:33,410 Talvez, é dias. 873 00:42:33,410 --> 00:42:34,590 Talvez, é como página voltas. 874 00:42:34,590 --> 00:42:35,215 Não importa. 875 00:42:35,215 --> 00:42:38,840 Tudo o que você quer contar, para que a será tempo ou custo equivalente. 876 00:42:38,840 --> 00:42:42,400 >> Então, com isso primeiro algoritmo, se eu, por exemplo, 877 00:42:42,400 --> 00:42:45,920 tinha um livro de telefone 1.000 páginas, Eu estou indo para desenhar um ponto lá, 878 00:42:45,920 --> 00:42:51,450 porque se é de 1.000 páginas, levou cerca de 1.000 viradas de página, mais ou menos. 879 00:42:51,450 --> 00:42:54,100 E então se eu tivesse um livro de telefone de 2.000 páginas, 880 00:42:54,100 --> 00:42:57,200 e eu estou indo para desenhar um segundo dot aqui, porque para 2.000 páginas, 881 00:42:57,200 --> 00:42:59,810 é como 2.000 segundos ou viradas de página ou qualquer outra coisa. 882 00:42:59,810 --> 00:43:02,480 E assim, quando eu disse anteriormente, é tipo de uma relação linear, 883 00:43:02,480 --> 00:43:06,020 que foi deliberado, porque eu queria depois on-- direito agora-- para desenhar uma linha. 884 00:43:06,020 --> 00:43:07,770 É uma espécie de um straight relacionamento line. 885 00:43:07,770 --> 00:43:10,180 A inclinação é 1/1, se você quiser. 886 00:43:10,180 --> 00:43:14,630 >> Enquanto isso, o segundo algoritmo Dito isto, se você tem 1.000 páginas 887 00:43:14,630 --> 00:43:17,680 e você estava usando o segundo algoritmo, onde eu contado por 2, girando 888 00:43:17,680 --> 00:43:22,564 duas páginas de cada vez, eu deveria tirar uma ponto abaixo ou acima do meu ponto original? 889 00:43:22,564 --> 00:43:23,450 >> AUDIÊNCIA: Abaixo. 890 00:43:23,450 --> 00:43:27,992 >> DAVID MALAN: Abaixo, porque, como vimos, leva menos tempo, metade do tempo. 891 00:43:27,992 --> 00:43:29,950 Assim, o ponto deve ser metade tão alta quanto o outro. 892 00:43:29,950 --> 00:43:33,330 E mesmo negócio por aqui, este ponto provavelmente deve ser mais ou menos ali. 893 00:43:33,330 --> 00:43:39,666 E assim meu segundo algoritmo, da mesma forma, tem um relação linear com o tempo. 894 00:43:39,666 --> 00:43:41,990 E podemos desenhá-lo como tal. 895 00:43:41,990 --> 00:43:45,950 >> Então, agora, a terceira e última algoritmo é um pouco mais difícil de desenhar. 896 00:43:45,950 --> 00:43:49,530 Mas intuitivamente, se eu tenho 1,000 páginas com o meu terceiro algoritmo, 897 00:43:49,530 --> 00:43:52,340 ele só deve me levar uns 10 passos. 898 00:43:52,340 --> 00:43:57,500 E se eu tenho 2.000 páginas com o meu terceiro algoritmo, 899 00:43:57,500 --> 00:44:01,570 ele deve me levar não 10 passos, mas 11, apenas mais um. 900 00:44:01,570 --> 00:44:03,610 Então, nós estamos apenas um pouco vai ver isso. 901 00:44:03,610 --> 00:44:06,010 >> E acontece que, se I zoom isso, eu sou 902 00:44:06,010 --> 00:44:09,320 vai exagerar para o efeito, a forma da linha que, em última análise, 903 00:44:09,320 --> 00:44:11,990 não é uma linha reta linha-- porque, na verdade, se fosse, 904 00:44:11,990 --> 00:44:15,390 ele ficaria mais parecido com o outros- é ​​realmente uma linha curva 905 00:44:15,390 --> 00:44:19,265 que, se aumentar o zoom, vai a olhar muito mais como este. 906 00:44:19,265 --> 00:44:21,670 Ele-- bem, OK, ignorar esta parte. 907 00:44:21,670 --> 00:44:25,330 Essa foi a minha pena vai de ângulo. 908 00:44:25,330 --> 00:44:29,000 É uma linha curva que é sempre aumentando, sempre, sempre, sempre 909 00:44:29,000 --> 00:44:32,100 aumentar, mas apenas por pouco. 910 00:44:32,100 --> 00:44:36,260 >> E assim ao longo do tempo, você tem um relacionamento que é mais como este. 911 00:44:36,260 --> 00:44:37,540 Parece quase em linha reta. 912 00:44:37,540 --> 00:44:40,330 Mas é cada vez mais tão devagar. 913 00:44:40,330 --> 00:44:44,780 Mas, para quase todos os pontos ao longo o eixo x, eixo horizontal, 914 00:44:44,780 --> 00:44:46,550 é menor do que as outras linhas. 915 00:44:46,550 --> 00:44:49,930 >> Portanto, este pode ser um relacionamento n, em que se tem n páginas, 916 00:44:49,930 --> 00:44:51,100 leva-o n segundos. 917 00:44:51,100 --> 00:44:53,320 Esta poderia ser uma relação n / 2. 918 00:44:53,320 --> 00:44:56,710 Você tem n páginas, leva você n / 2 segundos, metade desse número. 919 00:44:56,710 --> 00:45:00,590 E esta é uma logarítmica relacionamento, que 920 00:45:00,590 --> 00:45:08,920 se você se lembra, base 2 de n capturas de log este tipo de crescimento, por assim dizer. 921 00:45:08,920 --> 00:45:12,000 Portanto, este é o tipo de santo graal entre os três destes 922 00:45:12,000 --> 00:45:15,940 aqui, porque é apenas muito mais eficiente, mas sem dúvida mais complexa 923 00:45:15,940 --> 00:45:18,610 implementar. 924 00:45:18,610 --> 00:45:20,510 Alguma pergunta? 925 00:45:20,510 --> 00:45:26,220 >> Bem, deixe-me fazer isso, deixe me abrir uma janela de texto 926 00:45:26,220 --> 00:45:29,100 só assim podemos tentar formalizar alguma coisa aqui. 927 00:45:29,100 --> 00:45:32,410 Então deixe-me ir em frente agora e implementar este algoritmo 928 00:45:32,410 --> 00:45:35,170 para encontrar Mike Smith em código, se você, código de pseudocódigo. 929 00:45:35,170 --> 00:45:36,620 Eu não vou usar Java ou C ++. 930 00:45:36,620 --> 00:45:38,610 Eu estou indo só para usar tipo de Inglês-como a sintaxe, que nós 931 00:45:38,610 --> 00:45:40,151 seria geralmente chamar código pseudocódigo. 932 00:45:40,151 --> 00:45:41,660 Aqui, eu tenho uma janela em branco. 933 00:45:41,660 --> 00:45:48,180 E eu estou dizendo etapa 1 do muito primeiro algoritmo é pegar o livro de telefone. 934 00:45:48,180 --> 00:45:51,740 Passo 2 é livro aberto para a primeira página. 935 00:45:51,740 --> 00:45:58,080 Passo 3 será veja A página de Mike Smith. 936 00:45:58,080 --> 00:46:02,740 Se na página, chame Mike. 937 00:46:02,740 --> 00:46:11,640 page e por sua vez, senão vai para o passo 3. 938 00:46:11,640 --> 00:46:13,590 Feito, digamos. 939 00:46:13,590 --> 00:46:18,110 >> E por isso não é muito perfeito, que veremos em um momento. 940 00:46:18,110 --> 00:46:21,050 Mas vamos considerar o que conceitos que eu tenho apresentado aqui. 941 00:46:21,050 --> 00:46:24,450 Assim, as etapas 1 e 2 e 3 são praticamente verbos. 942 00:46:24,450 --> 00:46:26,544 Eles são declarações, actions-- fazer isso. 943 00:46:26,544 --> 00:46:28,710 E assim, em uma programação linguagem, teríamos geral 944 00:46:28,710 --> 00:46:32,349 chamá-los de declarações ou funções ou procedimentos, 945 00:46:32,349 --> 00:46:33,640 chamá-los de qualquer número de coisas. 946 00:46:33,640 --> 00:46:35,460 Mas eles estão apenas actions-- fazer isso. 947 00:46:35,460 --> 00:46:40,370 >> Passo 4 é fundamentalmente diferente, porque ele é o tipo de fazer uma pergunta. 948 00:46:40,370 --> 00:46:42,400 É dizer que estamos tipo de em uma bifurcação na estrada. 949 00:46:42,400 --> 00:46:48,000 Se Mike está na página, chame ele, então vire à esquerda, se você quiser. 950 00:46:48,000 --> 00:46:52,170 E se não, voltará para alguma outra página-- ou melhor, desculpe, 951 00:46:52,170 --> 00:46:56,650 voltar para algum outro passo, que induz a algum tipo de construção de loop. 952 00:46:56,650 --> 00:46:59,530 E fazemos isso de novo e de novo e de novo. 953 00:46:59,530 --> 00:47:01,300 >> E, na verdade, você sabe o quê? 954 00:47:01,300 --> 00:47:01,800 Sim. 955 00:47:01,800 --> 00:47:04,704 956 00:47:04,704 --> 00:47:09,010 else if no final da parada livro. 957 00:47:09,010 --> 00:47:11,624 Por isso, precisamos tipo de um terço condição, porque você 958 00:47:11,624 --> 00:47:14,290 não pode continuar girando o anúncio de página nauseum, porque, eventualmente, eu vou 959 00:47:14,290 --> 00:47:15,320 atingido o fim do livro. 960 00:47:15,320 --> 00:47:18,546 E um bug em um programa pode ser não antecipar esse cenário. 961 00:47:18,546 --> 00:47:21,420 E então eu percebi, oh, espere um minuto, eu preciso de um terceiro cenário. 962 00:47:21,420 --> 00:47:23,900 Se eu estou fora de páginas, deve realmente parar. 963 00:47:23,900 --> 00:47:25,330 Caso contrário, ela é indefinida. 964 00:47:25,330 --> 00:47:29,260 O que vai acontecer se eu continuar dizendo virar a página e voltar, 965 00:47:29,260 --> 00:47:31,810 Isto é, quando os computadores congelar ou falhar, quando você bate 966 00:47:31,810 --> 00:47:34,160 alguma situação inesperada como esse. 967 00:47:34,160 --> 00:47:37,280 >> Agora, o que acontece com Mike terceiro algorithm-- de Smith 968 00:47:37,280 --> 00:47:43,150 pegar o livro de telefone, livro aberto para first-- para 969 00:47:43,150 --> 00:47:48,640 Não, não é primeira página desta vez, para middle-- oh, bem, que tinha 970 00:47:48,640 --> 00:47:49,640 ser o segundo algoritmo. 971 00:47:49,640 --> 00:47:50,590 Vamos apenas passar para a terceira. 972 00:47:50,590 --> 00:47:50,930 >> AUDIÊNCIA: Oh, eu sinto muito. 973 00:47:50,930 --> 00:47:51,971 >> DAVID MALAN: Isso é bom. 974 00:47:51,971 --> 00:47:58,590 Vamos apenas saltar para o aberto third-- a meio e agora olhar para Mike Smith. 975 00:47:58,590 --> 00:48:02,300 se na página, chame Mike. 976 00:48:02,300 --> 00:48:04,910 E então o que queremos dizer aqui? 977 00:48:04,910 --> 00:48:06,134 então o quê? 978 00:48:06,134 --> 00:48:10,620 979 00:48:10,620 --> 00:48:12,370 Podemos expressar esta em qualquer número de maneiras. 980 00:48:12,370 --> 00:48:13,369 Não há uma resposta certa. 981 00:48:13,369 --> 00:48:20,819 982 00:48:20,819 --> 00:48:23,735 OK, se não de novo, mas precisamos ser-- OK, nós queremos dividir em dois, 983 00:48:23,735 --> 00:48:25,630 mas não queremos ir para a esquerda ou vá para a direita? 984 00:48:25,630 --> 00:48:29,560 Como podemos expressar essa noção? 985 00:48:29,560 --> 00:48:31,790 Bem, no caso de Mike, sim, isso é justo. 986 00:48:31,790 --> 00:48:35,050 Mas OK, então isso é realmente um bom ponto. 987 00:48:35,050 --> 00:48:35,550 Isso é bom. 988 00:48:35,550 --> 00:48:36,924 Nós vamos continuar com essa lógica. 989 00:48:36,924 --> 00:48:38,182 Assim-- 990 00:48:38,182 --> 00:48:39,810 >> AUDIÊNCIA: Menos da metade. 991 00:48:39,810 --> 00:48:40,560 DAVID MALAN: Yeah. 992 00:48:40,560 --> 00:48:49,820 Então else if página é, vamos dizer, a menos de Smith, à esquerda de Smith, 993 00:48:49,820 --> 00:48:52,220 entăo-- vamos ver, é isto vai complicar? 994 00:48:52,220 --> 00:49:01,885 else if página vem antes de Smith, lágrima no meio, jogue fora qual metade? 995 00:49:01,885 --> 00:49:05,643 996 00:49:05,643 --> 00:49:09,140 >> AUDIÊNCIA: Eu pensei que foi [inaudível]. 997 00:49:09,140 --> 00:49:11,650 >> DAVID MALAN: Eu estou ouvindo ambas as respostas. 998 00:49:11,650 --> 00:49:12,431 >> AUDIÊNCIA: Esquerda. 999 00:49:12,431 --> 00:49:14,430 DAVID MALAN: OK, jogar afastado metade esquerda, como Lakisa 1000 00:49:14,430 --> 00:49:19,700 disse anteriormente, a esquerda metade, então eu meio que 1001 00:49:19,700 --> 00:49:23,940 quer apenas ir a-- que eu vá para a direita. 1002 00:49:23,940 --> 00:49:27,380 Ou equivalentemente, e eu fiz um pouco bocado de uma confusão do começo aqui, 1003 00:49:27,380 --> 00:49:30,760 Eu efetivamente quer vá para o passo 2 novamente, 1004 00:49:30,760 --> 00:49:38,270 onde aberto ao middle-- ou open-- sim, vamos apenas dizer, páginas ao meio. 1005 00:49:38,270 --> 00:49:39,020 E isso resolve o problema. 1006 00:49:39,020 --> 00:49:39,936 Não é mais um livro. 1007 00:49:39,936 --> 00:49:42,210 É apenas a metade de um livro, páginas para abrir a meio. 1008 00:49:42,210 --> 00:49:44,010 >> else-- estavam quase lá. 1009 00:49:44,010 --> 00:49:54,000 Passo 6, else if página vem depois de Smith, rasgar ao meio, jogar meia direita, 1010 00:49:54,000 --> 00:49:55,680 em seguida, vá para o passo 2. 1011 00:49:55,680 --> 00:49:58,920 1012 00:49:58,920 --> 00:50:05,230 outra coisa sair, um quarto cenário se não temos páginas que ainda pode virar. 1013 00:50:05,230 --> 00:50:06,394 Assim, poderíamos limpar isso. 1014 00:50:06,394 --> 00:50:07,560 E devemos limpar isso. 1015 00:50:07,560 --> 00:50:10,656 Este é um código muito pseudocódigo, se você vai, descrição muito alto nível. 1016 00:50:10,656 --> 00:50:12,280 Mas isso geralmente capturar a idéia. 1017 00:50:12,280 --> 00:50:16,040 >> E, novamente, neste cenário, tem a noção de uma condição, 1018 00:50:16,040 --> 00:50:20,450 um ramo, uma bifurcação na estrada, fazendo um decision-- se este, ir por este caminho, 1019 00:50:20,450 --> 00:50:23,082 else if, ir por este caminho, else if, ir por esse caminho. 1020 00:50:23,082 --> 00:50:25,040 E isso é muito comum técnica de programação 1021 00:50:25,040 --> 00:50:27,721 para decidir qual direção para ir, por assim dizer. 1022 00:50:27,721 --> 00:50:29,970 E também temos algum tipo looping de estrutura, onde 1023 00:50:29,970 --> 00:50:32,440 estamos fazendo algo novo e de novo. 1024 00:50:32,440 --> 00:50:34,820 >> Agora, ao que parece, muito como neste exemplo, 1025 00:50:34,820 --> 00:50:37,660 ser super preciso é importante. 1026 00:50:37,660 --> 00:50:42,180 Mas também vimos algo que continuar ligando abstração. 1027 00:50:42,180 --> 00:50:45,490 O que significa para pegar livro de telefone? 1028 00:50:45,490 --> 00:50:47,740 Estamos apenas uma espécie de tomar para concedido nesta sala 1029 00:50:47,740 --> 00:50:49,340 que que tem algum significado semântico. 1030 00:50:49,340 --> 00:50:51,740 Todos nós apenas uma espécie de sabe, oh, bem, pegar o livro de telefone. 1031 00:50:51,740 --> 00:50:52,864 O que isso realmente significa? 1032 00:50:52,864 --> 00:50:59,060 Bem, isso realmente significa estender lado, inclinar, a estender os dedos, 1033 00:50:59,060 --> 00:51:03,890 beliscar livro entre os dedos, levantar, puxar a mão em sua direção. 1034 00:51:03,890 --> 00:51:05,940 E nós poderíamos ser realmente pedante sobre isso, 1035 00:51:05,940 --> 00:51:08,640 realmente ser super precisos como o que eu estou fazendo. 1036 00:51:08,640 --> 00:51:13,300 Mas todos estes passos são colectivamente o que significa pegar um livro de telefone. 1037 00:51:13,300 --> 00:51:16,940 >> E assim antes, quando eu disse, cada destas duas primeiras instruções 1038 00:51:16,940 --> 00:51:20,830 pode ser pensado como um prosseguir ou uma função, 1039 00:51:20,830 --> 00:51:24,090 realmente representa o que nós continuar chamando uma abstração. 1040 00:51:24,090 --> 00:51:28,770 É como um alto nível conceitual Descrição de um problema que 1041 00:51:28,770 --> 00:51:31,110 realmente envolve algumas etapas. 1042 00:51:31,110 --> 00:51:34,190 E assim por isso, também, é uma Temas recorrentes na programação, 1043 00:51:34,190 --> 00:51:41,125 em que eu poderia escrever um programa usando a sintaxe como isto-- 1044 00:51:41,125 --> 00:51:42,000 pick_up_phone_book (). 1045 00:51:42,000 --> 00:51:44,344 1046 00:51:44,344 --> 00:51:46,510 E, em seguida, sintaticamente, eu sou vai roubar alguma coisa 1047 00:51:46,510 --> 00:51:48,090 da maioria das linguagens de programação. 1048 00:51:48,090 --> 00:51:51,270 >> Agora, passo 1 parece ainda mais como uma função, 1049 00:51:51,270 --> 00:51:53,160 como um programador iria chamá-lo. 1050 00:51:53,160 --> 00:51:58,650 Parece que o código que alguém tem dado um nome para e dado 1051 00:51:58,650 --> 00:52:03,300 -me de usar somehow-- em outra palavras, o que a linha Eu destacou 1052 00:52:03,300 --> 00:52:07,050 representa a funcionalidade que talvez Eu nem sequer implementar mim. 1053 00:52:07,050 --> 00:52:10,410 Alguém mais velho, mais sábio do que me já descobriu 1054 00:52:10,410 --> 00:52:12,700 como você expressa a noção de pegar um livro de telefone. 1055 00:52:12,700 --> 00:52:15,860 E é como as cinco etapas Eu só desfiou, fora do topo da minha cabeça. 1056 00:52:15,860 --> 00:52:19,350 >> Mas ele ou ela já implementadas este, deu esses vários passos 1057 00:52:19,350 --> 00:52:22,339 um nome, pick_up_phone_book. 1058 00:52:22,339 --> 00:52:24,380 E os parênteses está apenas o que a maioria dos programadores 1059 00:52:24,380 --> 00:52:27,100 fazer no final de declarações como essa. 1060 00:52:27,100 --> 00:52:30,190 Agora eu posso ficar em seu ombros e nunca mais, 1061 00:52:30,190 --> 00:52:32,465 pensar sobre o que isso significa para pegar um livro de telefone. 1062 00:52:32,465 --> 00:52:34,090 Posso apenas dizer, pegar o livro de telefone. 1063 00:52:34,090 --> 00:52:36,690 E isso é exatamente o que todos nós seres humanos fizeram aqui. 1064 00:52:36,690 --> 00:52:38,940 >> Quando fomos provavelmente 1 anos de idade, 2 anos de idade, 1065 00:52:38,940 --> 00:52:41,690 alguém tinha para nos ensinar o que significava para pegar um livro de telefone. 1066 00:52:41,690 --> 00:52:43,810 E desde então, temos abstraída 1067 00:52:43,810 --> 00:52:46,739 daqueles muito desinteressante passos mecânicos. 1068 00:52:46,739 --> 00:52:48,530 E só temos um compreensão intuitiva 1069 00:52:48,530 --> 00:52:50,480 do que significa a pegar um livro de telefone. 1070 00:52:50,480 --> 00:52:55,730 >> E você pode extrapolar agora para coisas- mais complicado 1071 00:52:55,730 --> 00:52:57,640 construir um edifício. 1072 00:52:57,640 --> 00:52:59,940 Como, para algumas pessoas, que realmente tem significado. 1073 00:52:59,940 --> 00:53:03,080 Para prestadores de serviços, para os arquitectos, que tem algum significado. 1074 00:53:03,080 --> 00:53:06,400 E eles sabem o que fazer, se Eu disse, vai construir um edifício. 1075 00:53:06,400 --> 00:53:10,520 >> Mas a maioria de nós no quarto não poderia lidar com esse nível de abstração. 1076 00:53:10,520 --> 00:53:14,850 Você precisa dizer a nós como ir buscar a pá e ir buscar o concreto 1077 00:53:14,850 --> 00:53:17,250 com unhas e os pedaços de madeira juntos e tudo o mais 1078 00:53:17,250 --> 00:53:18,830 está envolvido na construção de um edifício. 1079 00:53:18,830 --> 00:53:21,690 E isso é porque nós não temos ainda foi programado para entender 1080 00:53:21,690 --> 00:53:23,629 o que significa construir um edifício. 1081 00:53:23,629 --> 00:53:24,920 Não temos que abstração. 1082 00:53:24,920 --> 00:53:26,570 Não temos essa funcionalidade. 1083 00:53:26,570 --> 00:53:29,930 >> E então o que você verá em linguagens de programação, em geral, 1084 00:53:29,930 --> 00:53:34,570 línguas especialmente mais modernos, como Java, PHP, Ruby e Python, 1085 00:53:34,570 --> 00:53:37,610 eles são muito mais maduro de linguagens mais antigas, 1086 00:53:37,610 --> 00:53:40,140 como C e C ++ e outros ainda. 1087 00:53:40,140 --> 00:53:42,580 E assim eles vêm com mais funcionalidade incorporada. 1088 00:53:42,580 --> 00:53:45,640 Mais código foi escrito por pessoas no passado 1089 00:53:45,640 --> 00:53:50,520 que agora podemos chamar ou invocar ou usar, como eu estou insinuando 1090 00:53:50,520 --> 00:53:52,231 no com esta linha destacada aqui. 1091 00:53:52,231 --> 00:53:55,230 E por isso mesmo que nós não estamos falando sobre linguagens de programação por si só, 1092 00:53:55,230 --> 00:54:00,230 código apenas pseudocódigo, todas as ideias ainda estão em que a discussão. 1093 00:54:00,230 --> 00:54:04,600 E verifica-se a precisão é super importante, como é abstração. 1094 00:54:04,600 --> 00:54:06,570 E vamos tentar comunicar que como se segue. 1095 00:54:06,570 --> 00:54:11,000 >> Eu acidentalmente poderia ter estragado este, piscando um slide na tela 1096 00:54:11,000 --> 00:54:12,260 prematuramente. 1097 00:54:12,260 --> 00:54:16,550 Mas deixe-me pedir um voluntário corajoso, Se você não se importa chegando. 1098 00:54:16,550 --> 00:54:19,040 Você ficaria na frente do câmera, se você estiver OK com isso. 1099 00:54:19,040 --> 00:54:24,950 Alguém gostaria de vir para cima e dar instruções aos seus colegas aqui? 1100 00:54:24,950 --> 00:54:29,540 Só tenho que vir aqui e ficar aqui e dizer algumas palavras. 1101 00:54:29,540 --> 00:54:32,890 >> Victoria está sorrindo mais e evitando os meus olhos a mais. 1102 00:54:32,890 --> 00:54:34,740 Você estaria disposto a vir em cima? 1103 00:54:34,740 --> 00:54:35,240 ESTÁ BEM. 1104 00:54:35,240 --> 00:54:38,480 E se todos os outros em seus lugares poderia tirar um pedaço de papel, 1105 00:54:38,480 --> 00:54:39,750 Se você for. 1106 00:54:39,750 --> 00:54:40,760 papel pautado é bom. 1107 00:54:40,760 --> 00:54:41,990 Venha ao redor desta forma. 1108 00:54:41,990 --> 00:54:44,580 Ou algum do papel que que lhe foi dada ontem, 1109 00:54:44,580 --> 00:54:46,493 apenas qualquer folha em branco de papel, se pudesse. 1110 00:54:46,493 --> 00:54:52,240 1111 00:54:52,240 --> 00:54:54,870 E se você não tem nenhum, apenas pergunte ao seu vizinho se pudesse. 1112 00:54:54,870 --> 00:55:04,220 1113 00:55:04,220 --> 00:55:07,580 >> Então, no momento, para Neste exemplo, Victoria 1114 00:55:07,580 --> 00:55:11,520 vai desempenhar o papel de um programador, um engenheiro, que 1115 00:55:11,520 --> 00:55:16,130 precisa programar a todos, como os computadores, para fazer alguma coisa. 1116 00:55:16,130 --> 00:55:19,570 E vamos ver o que suposições você decidir fazer. 1117 00:55:19,570 --> 00:55:22,700 Vamos ver como preciso que ela escolhe para ser. 1118 00:55:22,700 --> 00:55:26,220 E se esta demonstração vai pedagogicamente bem, muitos erros 1119 00:55:26,220 --> 00:55:29,220 será feita, que vamos então usar que como uma oportunidade para a discussão. 1120 00:55:29,220 --> 00:55:32,010 Mas o desafio para você deve ser o de evitar esses erros, 1121 00:55:32,010 --> 00:55:32,896 ser um bom programador. 1122 00:55:32,896 --> 00:55:35,520 E assim o desafio na mão, se você gostava de andar por aqui, 1123 00:55:35,520 --> 00:55:38,799 está em frente de Victoria na tela aqui-- e, esperamos, nenhum de vocês 1124 00:55:38,799 --> 00:55:40,590 lembre-se disso quando eu piscou na tela. 1125 00:55:40,590 --> 00:55:44,097 E não virar-se em tudo, porque há uma outra tela nesta sala 1126 00:55:44,097 --> 00:55:44,930 que eu posso desligar. 1127 00:55:44,930 --> 00:55:46,620 Portanto, não se virar. 1128 00:55:46,620 --> 00:55:49,090 >> Em frente de Victoria é que mesmo grito. 1129 00:55:49,090 --> 00:55:54,170 E seu trabalho agora é dizer-lhe tudo em seu pedaço de papel o que desenhar. 1130 00:55:54,170 --> 00:55:57,020 E veremos, com base em instruções verbais por si só, 1131 00:55:57,020 --> 00:56:00,020 código de computador, se quiser, o grau de precisão de seus desenhos 1132 00:56:00,020 --> 00:56:02,330 é-- suas implementações são. 1133 00:56:02,330 --> 00:56:02,980 Faz sentido? 1134 00:56:02,980 --> 00:56:03,604 >> AUDIÊNCIA: É. 1135 00:56:03,604 --> 00:56:04,980 DAVID MALAN: OK, executar. 1136 00:56:04,980 --> 00:56:06,030 >> AUDIÊNCIA: Desenhar um quadrado. 1137 00:56:06,030 --> 00:56:09,050 >> [RISO] 1138 00:56:09,050 --> 00:56:12,310 >> DAVID MALAN: E não perguntas podem ser feitas. 1139 00:56:12,310 --> 00:56:13,720 só pode fazer o que você disse. 1140 00:56:13,720 --> 00:56:17,570 1141 00:56:17,570 --> 00:56:22,550 Ah, e se você tem lâminas de hoje aberto em uma aba, não olhar para o seu guia. 1142 00:56:22,550 --> 00:56:23,670 ok? 1143 00:56:23,670 --> 00:56:26,135 >> AUDIÊNCIA: OK, desenhar um círculo. 1144 00:56:26,135 --> 00:56:32,544 1145 00:56:32,544 --> 00:56:34,872 A slope-- posso dizer inclinação? 1146 00:56:34,872 --> 00:56:35,830 DAVID MALAN: Até você. 1147 00:56:35,830 --> 00:56:38,230 1148 00:56:38,230 --> 00:56:38,980 AUDIÊNCIA: Uma inclinação. 1149 00:56:38,980 --> 00:56:46,330 1150 00:56:46,330 --> 00:56:49,795 E um triângulo. 1151 00:56:49,795 --> 00:56:50,850 >> DAVID MALAN: Tudo bem. 1152 00:56:50,850 --> 00:56:52,286 E ficar aqui por apenas um momento. 1153 00:56:52,286 --> 00:56:56,046 1154 00:56:56,046 --> 00:56:58,910 E eu vou vir ao redor em apenas um momento. 1155 00:56:58,910 --> 00:57:02,420 E não há necessidade de colocar seus nomes nele. 1156 00:57:02,420 --> 00:57:05,030 Deixe-me ir ao redor e recolher os seus desenhos, 1157 00:57:05,030 --> 00:57:08,330 Se você não se importa rasgar-los. 1158 00:57:08,330 --> 00:57:12,110 >> Aqui está o que temos de volta. 1159 00:57:12,110 --> 00:57:14,770 Vou projetá-la na tela. 1160 00:57:14,770 --> 00:57:18,310 Vejo um quadrado, um círculo, uma ladeira, e um triângulo. 1161 00:57:18,310 --> 00:57:20,130 Então isso foi uma resposta lá. 1162 00:57:20,130 --> 00:57:23,640 E let's-- gritos. 1163 00:57:23,640 --> 00:57:25,370 Obrigado. 1164 00:57:25,370 --> 00:57:30,710 Aqui está uma outra variedade, e um atrás dele. 1165 00:57:30,710 --> 00:57:34,130 1166 00:57:34,130 --> 00:57:37,120 >> Então, todos eles parecem capturar o espírito. 1167 00:57:37,120 --> 00:57:38,600 Obrigado. 1168 00:57:38,600 --> 00:57:44,970 Há outro, e aqui está outro. 1169 00:57:44,970 --> 00:57:51,590 A interpretação inclinação é uma pouco diferente, pouco curvilínea. 1170 00:57:51,590 --> 00:57:57,140 E o mais próximo, ou por causa da especificidade maravilhoso com o qual você 1171 00:57:57,140 --> 00:58:03,520 descrito, ou talvez você tipo de vi isso antes, esta é realmente 1172 00:58:03,520 --> 00:58:06,340 o que Victoria estava realmente descrevendo. 1173 00:58:06,340 --> 00:58:09,190 >> Mas agora, aqueles que não entendi muito bem, 1174 00:58:09,190 --> 00:58:11,140 vamos oferecer algumas objeções aqui. 1175 00:58:11,140 --> 00:58:13,770 Então Victoria primeiro disse desenhar um quadrado. 1176 00:58:13,770 --> 00:58:15,830 E agora, podemos assumir por uma questão de hoje 1177 00:58:15,830 --> 00:58:17,538 que todos conhecem como desenhar um quadrado. 1178 00:58:17,538 --> 00:58:20,590 Mas isso não é inteiramente clara, certo? 1179 00:58:20,590 --> 00:58:23,220 De que outra forma você poderia ter desenhado um quadrado, ou quando 1180 00:58:23,220 --> 00:58:27,114 pode ser algumas das ambiguidades aqui para o computador? 1181 00:58:27,114 --> 00:58:28,280 AUDIÊNCIA: localização e tamanho. 1182 00:58:28,280 --> 00:58:28,980 DAVID MALAN: Localização, certo? 1183 00:58:28,980 --> 00:58:32,070 Todos vocês tiveram um papel de alguma forma, geralmente retângulos, mas ligeiramente 1184 00:58:32,070 --> 00:58:32,830 tamanhos diferentes. 1185 00:58:32,830 --> 00:58:36,250 Mas você certamente poderia ter tirado, se você queria, uma enorme praça, talvez 1186 00:58:36,250 --> 00:58:37,220 uma pequena praça. 1187 00:58:37,220 --> 00:58:38,417 Talvez, foi rodado. 1188 00:58:38,417 --> 00:58:39,500 Eu não acho que nós vimos isso. 1189 00:58:39,500 --> 00:58:41,790 Mas poderia ter sido mais diamante como, mas ainda, no entanto, 1190 00:58:41,790 --> 00:58:42,900 Matematicamente um quadrado. 1191 00:58:42,900 --> 00:58:44,850 Assim que foi indiscutivelmente ambígua. 1192 00:58:44,850 --> 00:58:46,709 >> Então ela disse, desenhar um círculo. 1193 00:58:46,709 --> 00:58:49,250 Alguns de vocês se desenhá-lo ao lado -lo, o que não é razoável, 1194 00:58:49,250 --> 00:58:52,450 porque os seres humanos tendem a pensar ou ler direita para a esquerda na maioria dos idiomas, portanto, não 1195 00:58:52,450 --> 00:58:53,017 um palpite ruim. 1196 00:58:53,017 --> 00:58:55,100 Mas esse círculo poderia ter foi dentro do quadrado, 1197 00:58:55,100 --> 00:58:57,600 poderia ter sido em torno do quadrado, poderia ter sido em outro lugar 1198 00:58:57,600 --> 00:58:59,480 na folha, de modo que, sem dúvida, ambígua. 1199 00:58:59,480 --> 00:59:03,290 >> Slope poderia ter sido talvez tendo a maioria das liberdades verbalmente 1200 00:59:03,290 --> 00:59:04,200 com o que isso significa. 1201 00:59:04,200 --> 00:59:06,980 E alguns de vocês interpretado -lo como uma linha ondulada 1202 00:59:06,980 --> 00:59:08,560 ou uma linha recta ou semelhantes. 1203 00:59:08,560 --> 00:59:11,719 E, em seguida, triângulo, também, pode ter sido orientado em qualquer número de maneiras. 1204 00:59:11,719 --> 00:59:14,760 Assim, em breve, mesmo com algo que você olhar e você está como, uau, de modo 1205 00:59:14,760 --> 00:59:17,020 simples, uma criança poderia desenhar esse, bem, não 1206 00:59:17,020 --> 00:59:19,640 realmente, a menos que você está super, super-persuasiva 1207 00:59:19,640 --> 00:59:22,045 e dizer ao computador exatamente o que fazer. 1208 00:59:22,045 --> 00:59:24,420 Então, se nós poderíamos, se tiver outra folha de papel, vamos 1209 00:59:24,420 --> 00:59:26,710 tente isso mais uma vez. 1210 00:59:26,710 --> 00:59:29,880 E eu vou dar um Victoria outro exemplo no ecrã aqui. 1211 00:59:29,880 --> 00:59:34,060 E, novamente, não se virar e não olhar para seus slides. 1212 00:59:34,060 --> 00:59:37,304 E eu vou dar-lhe um momento para pensar em como descrever isso. 1213 00:59:37,304 --> 00:59:39,012 Não deixá-los ver o medo em seus olhos. 1214 00:59:39,012 --> 00:59:40,820 >> [RISO] 1215 00:59:40,820 --> 00:59:43,710 >> E mais uma vez, desta vez alavancagem alguns desses delivery 1216 00:59:43,710 --> 00:59:48,130 e tentar obter quase todos pelo menos, a resposta certa. 1217 00:59:48,130 --> 00:59:52,260 >> AUDIÊNCIA: OK, dê uma pedaço de papel, procure 1218 00:59:52,260 --> 00:59:54,500 no meio daquele pedaço de papel. 1219 00:59:54,500 --> 00:59:59,591 No meio desse pedaço de papel, desenhar um cubo. 1220 00:59:59,591 --> 01:00:01,244 >> [RISO] 1221 01:00:01,244 --> 01:00:02,660 DAVID MALAN: o que aprendemos? 1222 01:00:02,660 --> 01:00:03,540 Estávamos tão perto. 1223 01:00:03,540 --> 01:00:06,320 1224 01:00:06,320 --> 01:00:09,045 OK, repita se pudesse, para todos. 1225 01:00:09,045 --> 01:00:13,210 >> AUDIÊNCIA: No meio do pedaço de papel, desenhar um objeto, 1226 01:00:13,210 --> 01:00:14,842 que se parece com um cubo. 1227 01:00:14,842 --> 01:00:17,332 >> DAVID MALAN: OK, isso é tudo que você tem para trabalhar. 1228 01:00:17,332 --> 01:00:20,010 1229 01:00:20,010 --> 01:00:23,080 Permita-me ser analítica e não muito crítica, 1230 01:00:23,080 --> 01:00:25,720 mas para fazer o pedido que Victoria definitivamente 1231 01:00:25,720 --> 01:00:28,967 parece estar pensando em muito abstrações de alto nível, que 1232 01:00:28,967 --> 01:00:29,800 não é razoável. 1233 01:00:29,800 --> 01:00:32,160 Porque, caso contrário, estaríamos todos ser bastante disfuncional, 1234 01:00:32,160 --> 01:00:35,740 se tivéssemos de estar sempre tão preciso com tudo o que fazemos no mundo. 1235 01:00:35,740 --> 01:00:38,890 >> Mas dizer ir para a I middle-- pensei que estávamos no bom caminho, tais 1236 01:00:38,890 --> 01:00:42,340 ali, como ir até o meio da página, e depois desenhar um cubo. 1237 01:00:42,340 --> 01:00:45,730 Então, ela está pensando em abstrações, porque ela ainda está visualizando 1238 01:00:45,730 --> 01:00:48,490 o que está na tela como, aliás, um cubo. 1239 01:00:48,490 --> 01:00:51,185 Mas há tantas oportunidades interpretação para lá. 1240 01:00:51,185 --> 01:00:53,560 E, na verdade, há tantos outras maneiras que você pode expressar 1241 01:00:53,560 --> 01:00:55,101 que, o que eu vou propor, em um momento. 1242 01:00:55,101 --> 01:00:59,770 Portanto, temos aqui uma encarnação do um whoops-- picture-- 1243 01:00:59,770 --> 01:01:02,830 encarnação da imagem, de modo a pouco tridimensionalidade a ele, 1244 01:01:02,830 --> 01:01:04,160 que é bom. 1245 01:01:04,160 --> 01:01:08,470 >> Aqui está mais um, onde você tem a mesma, mas é uma espécie de cubo aberto. 1246 01:01:08,470 --> 01:01:12,020 Algumas pessoas tomou um pouco mais plana, bidimensional. 1247 01:01:12,020 --> 01:01:13,910 E isso é bom. 1248 01:01:13,910 --> 01:01:17,380 Portanto, há, de fato, no centro do papel. 1249 01:01:17,380 --> 01:01:22,720 Esse eu acho que você vai como, porque se nós aqui, 1250 01:01:22,720 --> 01:01:25,130 isto é o que ela estava descrevendo. 1251 01:01:25,130 --> 01:01:29,570 Então, agora, deixe-me propor que outra poderíamos descrever esta situação. 1252 01:01:29,570 --> 01:01:34,070 >> De volta ao dia, um dos mais formas mais comuns para aprender programação 1253 01:01:34,070 --> 01:01:38,900 era escrever código, escreve linhas de instruções, 1254 01:01:38,900 --> 01:01:42,640 que controlava um pouco tartaruga na tela. 1255 01:01:42,640 --> 01:01:45,660 Logo e outras variantes deste foi o nome da linguagem. 1256 01:01:45,660 --> 01:01:47,550 E a tartaruga vivia num mundo. 1257 01:01:47,550 --> 01:01:49,970 >> Então suponho que isso rectangular o espaço é seu mundo. 1258 01:01:49,970 --> 01:01:53,340 E você iria começar por assuming-- I realmente não sei como desenhar tartaruga, 1259 01:01:53,340 --> 01:01:54,740 então vamos fazê-lo assim. 1260 01:01:54,740 --> 01:01:57,340 E então ele tem um shell e então talvez alguns pés. 1261 01:01:57,340 --> 01:01:59,840 Então você pode ter este pequeno personagem na tela. 1262 01:01:59,840 --> 01:02:02,270 >> E o objeto deste linguagem de programação 1263 01:02:02,270 --> 01:02:06,070 foi para impor a tartaruga para ir para cima, para baixo, esquerda, direita 1264 01:02:06,070 --> 01:02:08,420 e de colocar a sua caneta para baixo ou pegar a caneta para cima, 1265 01:02:08,420 --> 01:02:12,720 para que ele pudesse realmente desenhar na tela neste mundo rectangular muito plana. 1266 01:02:12,720 --> 01:02:16,850 Então, onde eu achei que você poderia estar acontecendo, e onde você deve considerar mergulho 1267 01:02:16,850 --> 01:02:19,520 mentalmente até ao descrever instruções de modo mais geral, 1268 01:02:19,520 --> 01:02:21,720 Gostaria de afirmar, é colocar o seu caneta para baixo na middle-- 1269 01:02:21,720 --> 01:02:23,100 e vamos nos livrar da tartaruga, porque eu realmente não posso 1270 01:02:23,100 --> 01:02:24,680 manter puxando-o muito bem. 1271 01:02:24,680 --> 01:02:27,170 >> E agora, como poderia Eu digo desenhar um cubo? 1272 01:02:27,170 --> 01:02:32,830 Bem, poderíamos dizer algo como sorteio uma linha diagonal a nordeste, por exemplo, 1273 01:02:32,830 --> 01:02:35,182 ou a um ângulo de 45 graus para cima. 1274 01:02:35,182 --> 01:02:36,640 E que poderia ter me chegado aqui. 1275 01:02:36,640 --> 01:02:38,380 E eu estou muito longe de um cubo. 1276 01:02:38,380 --> 01:02:42,430 Mas agora, eu poderia dizer algo como virar 90 graus para a esquerda 1277 01:02:42,430 --> 01:02:47,370 e desenhar uma linha de igual a noroeste comprimento. 1278 01:02:47,370 --> 01:02:49,470 E eu poderia continuar com orientações semelhantes. 1279 01:02:49,470 --> 01:02:50,720 E não vai ser fácil. 1280 01:02:50,720 --> 01:02:53,345 E, francamente, é provável que aqui há cinco minutos. 1281 01:02:53,345 --> 01:02:59,600 Mas talvez teríamos chegado a algo que, no final do dia, 1282 01:02:59,600 --> 01:03:04,280 acaba sendo um cubo, mas nós mergulhou dentro dessa abstração 1283 01:03:04,280 --> 01:03:06,370 para fazê-lo em tal um baixo nível que você não pode realmente 1284 01:03:06,370 --> 01:03:09,795 ver o que você está fazendo até que toda coisa é realmente lá na página. 1285 01:03:09,795 --> 01:03:12,670 E por isso este é um princípio geral, de novo, de programming-- esta ideia 1286 01:03:12,670 --> 01:03:13,320 de abstração. 1287 01:03:13,320 --> 01:03:15,920 É tão maravilhosamente poderoso, porque mais uma vez, 1288 01:03:15,920 --> 01:03:19,281 ela apenas disse, desenhar um cubo, que todas -nos praticamente iria Grokar muito rapidamente. 1289 01:03:19,281 --> 01:03:21,030 Nós só iria entender, OK, desenhar um cubo. 1290 01:03:21,030 --> 01:03:24,030 Podemos não saber a orientação, por isso, poderia ser um pouco mais preciso, 1291 01:03:24,030 --> 01:03:26,297 mas geralmente podemos imaginar ou saber o que um cubo é. 1292 01:03:26,297 --> 01:03:28,130 E isso é útil, porque, se cada vez que você 1293 01:03:28,130 --> 01:03:31,540 sentou-se como um programador em o teclado para escrever o código, 1294 01:03:31,540 --> 01:03:33,912 se você tinha que pensar em tal um nível baixo, nenhum de nós 1295 01:03:33,912 --> 01:03:35,120 jamais iria fazer nada. 1296 01:03:35,120 --> 01:03:38,259 E, certamente, nenhum de nós apreciar o processo de escrever código. 1297 01:03:38,259 --> 01:03:41,550 Seria como escrever em 0 e 1., que, francamente, não era tudo o que há muito tempo 1298 01:03:41,550 --> 01:03:43,680 os seres humanos estavam escrevendo código em 0 e 1.. 1299 01:03:43,680 --> 01:03:46,960 E nós muito rapidamente surgiu com estes maior languages-- nível 1300 01:03:46,960 --> 01:03:49,410 C ++ e Java e outros. 1301 01:03:49,410 --> 01:03:52,500 >> Então, vamos tentar isso mais uma vez apenas para virar as mesas, de modo a que todos nós 1302 01:03:52,500 --> 01:03:55,450 têm a oportunidade de pensar em vez da mesma maneira. 1303 01:03:55,450 --> 01:03:59,230 Poderíamos ficar mais um voluntário este tempo para vir até a placa e desenhar, 1304 01:03:59,230 --> 01:04:01,480 não recitar? 1305 01:04:01,480 --> 01:04:02,070 Sim, ok. 1306 01:04:02,070 --> 01:04:04,820 Ben, vamos lá para cima. 1307 01:04:04,820 --> 01:04:08,510 E, Ben, neste caso, uma vez que você enfrentar o conselho, não olhar para a esquerda, 1308 01:04:08,510 --> 01:04:09,370 não parecem estar corretas. 1309 01:04:09,370 --> 01:04:12,367 fazer apenas o que o seu colegas aqui dizer-lhe. 1310 01:04:12,367 --> 01:04:14,950 E para todos os outros no quarto, você agora é o programador. 1311 01:04:14,950 --> 01:04:16,020 Ele é o computador. 1312 01:04:16,020 --> 01:04:21,395 E a imagem que eu escolhi aqui com antecedência é este aqui. 1313 01:04:21,395 --> 01:04:24,490 1314 01:04:24,490 --> 01:04:27,660 Eles estão só-- eles estão pensando de uma piada engraçada é tudo. 1315 01:04:27,660 --> 01:04:31,510 >> Então, seria que alguém gostaria de voluntariar a primeira instrução 1316 01:04:31,510 --> 01:04:35,470 ou declaração que deve A caneta de comando Ben? 1317 01:04:35,470 --> 01:04:40,850 E nós vamos fazer isso coletivamente, talvez uma instrução de cada pessoa. 1318 01:04:40,850 --> 01:04:41,440 Eu sinto Muito? 1319 01:04:41,440 --> 01:04:42,440 >> AUDIÊNCIA: Desenhe um círculo. 1320 01:04:42,440 --> 01:04:45,866 DAVID MALAN: Desenhe um círculo é a primeira coisa que ouvi. 1321 01:04:45,866 --> 01:04:47,100 >> AUDIÊNCIA: Acima da parte superior. 1322 01:04:47,100 --> 01:04:48,140 >> DAVID MALAN: Acima da parte superior. 1323 01:04:48,140 --> 01:04:52,504 OK, podemos deixá-lo apagar, desfazer. 1324 01:04:52,504 --> 01:04:53,420 E agora, outra pessoa. 1325 01:04:53,420 --> 01:04:55,994 Dan, você estaria confortável oferecendo a próxima instrução? 1326 01:04:55,994 --> 01:05:02,070 >> AUDIÊNCIA: Claro, chamar o centro da parte inferior do círculo, 1327 01:05:02,070 --> 01:05:07,121 com um small-- um pouco pequeno espaço do que, 1328 01:05:07,121 --> 01:05:15,420 desenhar uma linha reta até três quartos do caminho para baixo a placa 1329 01:05:15,420 --> 01:05:17,845 uma ligeira inclinação para a esquerda. 1330 01:05:17,845 --> 01:05:21,250 1331 01:05:21,250 --> 01:05:22,620 >> DAVID MALAN: Good. 1332 01:05:22,620 --> 01:05:24,086 >> AUDIÊNCIA: ângulo ligeira. 1333 01:05:24,086 --> 01:05:32,807 >> DAVID MALAN: Undo, Control-Z. ESTÁ BEM. 1334 01:05:32,807 --> 01:05:34,890 Andrew, que pretende oferecer até a próxima instrução? 1335 01:05:34,890 --> 01:05:35,515 >> AUDIÊNCIA: Claro. 1336 01:05:35,515 --> 01:05:43,250 A partir da parte inferior da referida linha, mais uma ligeira angle-- 1337 01:05:43,250 --> 01:05:49,024 whoops-- talvez cerca de um terço do comprimento [inaudível], 1338 01:05:49,024 --> 01:05:52,928 leve ângulo para baixo e como um terço do comprimento de [inaudível]. 1339 01:05:52,928 --> 01:05:57,550 1340 01:05:57,550 --> 01:06:00,578 Então, sim, a partir desse ponto, desenhar uma linha um terço 1341 01:06:00,578 --> 01:06:04,150 do comprimento da anterior linha mais à esquerda. 1342 01:06:04,150 --> 01:06:08,416 1343 01:06:08,416 --> 01:06:10,040 >> DAVID MALAN: Isso OK? 1344 01:06:10,040 --> 01:06:12,330 linha reta, que é OK? 1345 01:06:12,330 --> 01:06:14,900 OK, Olivier, você quer para oferecer a próxima? 1346 01:06:14,900 --> 01:06:28,564 >> AUDIÊNCIA: [inaudível] a partir do parte inferior do círculo, [inaudível]. 1347 01:06:28,564 --> 01:06:32,000 1348 01:06:32,000 --> 01:06:45,126 Desenhe no lado direito de [inaudível] centímetros. 1349 01:06:45,126 --> 01:06:46,560 >> [RISO] 1350 01:06:46,560 --> 01:06:49,872 >> DAVID MALAN: Eu acho que você vai tem que converter isso é polegadas aqui. 1351 01:06:49,872 --> 01:06:50,764 >> AUDIÊNCIA: Pare. 1352 01:06:50,764 --> 01:06:52,186 >> [RISO] 1353 01:06:52,186 --> 01:06:54,570 >> DAVID MALAN: OK. 1354 01:06:54,570 --> 01:06:56,660 [? Ara,?] Você quer para oferecer a próxima? 1355 01:06:56,660 --> 01:07:00,653 1356 01:07:00,653 --> 01:07:15,443 >> AUDIÊNCIA: Desenhar um [inaudível] o superior [inaudível] o mesmo. 1357 01:07:15,443 --> 01:07:28,829 [Inaudível] círculo, chamar a [Inaudível] e desenhar [inaudível]. 1358 01:07:28,829 --> 01:07:33,799 1359 01:07:33,799 --> 01:07:36,730 >> DAVID MALAN: OK, não mais desfazer. 1360 01:07:36,730 --> 01:07:38,390 Vamos fazer mais uma ou duas instruções. 1361 01:07:38,390 --> 01:07:40,825 Chris, que pretende oferecer um? 1362 01:07:40,825 --> 01:07:46,182 >> AUDIÊNCIA: Na parte inferior do círculo, [inaudível] 1363 01:07:46,182 --> 01:07:51,528 desenhar uma linha slopping igual para baixo, para a esquerda [inaudível]. 1364 01:07:51,528 --> 01:07:59,304 1365 01:07:59,304 --> 01:08:00,590 >> DAVID MALAN: OK. 1366 01:08:00,590 --> 01:08:01,170 Andrew? 1367 01:08:01,170 --> 01:08:02,472 Nós fez-- Karim? 1368 01:08:02,472 --> 01:08:06,891 1369 01:08:06,891 --> 01:08:13,765 >> AUDIÊNCIA: A partir da linha direita, o fim da linha esquerda, a parte inferior, 1370 01:08:13,765 --> 01:08:21,012 você está indo para ir para a direita sobre o mesmo comprimento que a linha de 1371 01:08:21,012 --> 01:08:27,680 você está, chegando ao o direito [inaudível]. 1372 01:08:27,680 --> 01:08:33,572 1373 01:08:33,572 --> 01:08:37,991 [Inaudível] graus, de modo [inaudível] graus para o lado direito. 1374 01:08:37,991 --> 01:08:41,919 1375 01:08:41,919 --> 01:08:43,500 >> DAVID MALAN: Tudo bem. 1376 01:08:43,500 --> 01:08:44,029 Vamos fazer uma pausa. 1377 01:08:44,029 --> 01:08:44,950 Não se vire ainda. 1378 01:08:44,950 --> 01:08:46,783 Vamos fazer uma pausa, e vamos tente uma outra tentativa 1379 01:08:46,783 --> 01:08:48,850 antes de revelar a Ben o que ele vem desenhando. 1380 01:08:48,850 --> 01:08:51,189 você pode embaralhar Ben o direita-- ou realmente, 1381 01:08:51,189 --> 01:08:54,080 não, vamos apenas dar-lhe outra placa, melhor ainda. 1382 01:08:54,080 --> 01:08:57,640 Assim que alguém agora gostaria a ter mais da abordagem 1383 01:08:57,640 --> 01:09:02,149 Victoria que levou anteriormente, onde nós falamos em uma abstração de nível superior 1384 01:09:02,149 --> 01:09:05,149 e em apenas uma frase ou dois descrevem a Ben 1385 01:09:05,149 --> 01:09:07,229 o que desenhar sem metendo as ervas daninhas, 1386 01:09:07,229 --> 01:09:10,670 por assim dizer, neste um nível mais baixo? 1387 01:09:10,670 --> 01:09:11,206 Victoria. 1388 01:09:11,206 --> 01:09:11,706 [RISO] 1389 01:09:11,706 --> 01:09:14,249 AUDIÊNCIA: Desenhe uma figura do homem a pé. 1390 01:09:14,249 --> 01:09:18,866 E suas pernas e braços tem que ser o lado direito. 1391 01:09:18,866 --> 01:09:20,505 >> DAVID MALAN: OK, isso é tudo que você começa. 1392 01:09:20,505 --> 01:09:27,210 1393 01:09:27,210 --> 01:09:27,710 Tudo certo. 1394 01:09:27,710 --> 01:09:31,609 Por que não vamos revelar a Ben o que ele fez. 1395 01:09:31,609 --> 01:09:32,890 Assim, uma salva de palmas. 1396 01:09:32,890 --> 01:09:35,700 Isso foi o mais difícil talvez. 1397 01:09:35,700 --> 01:09:37,931 >> Assim, mesmo que estamos falando em termos bastante tolas 1398 01:09:37,931 --> 01:09:39,680 sobre apenas um desenho fotos, espero que você 1399 01:09:39,680 --> 01:09:44,226 pode realmente apreciar o grau de expressividade que pode ser necessário 1400 01:09:44,226 --> 01:09:45,850 a fim de contar um computador o que fazer. 1401 01:09:45,850 --> 01:09:50,370 E, na verdade, o facto de Ben foi capaz de desenhar esse tão rapidamente 1402 01:09:50,370 --> 01:09:54,227 é uma espécie de testamento para utilizar um linguagem, talvez um nível mais elevado 1403 01:09:54,227 --> 01:09:57,060 versão do Inglês, que permite que ele usar apenas palavras, ou ouvir palavras 1404 01:09:57,060 --> 01:09:59,990 de Victoria, que lhe permitem estes abstractions-- apenas desenhar 1405 01:09:59,990 --> 01:10:03,020 uma figura caminhando para o direita-- esse tipo de tem 1406 01:10:03,020 --> 01:10:07,100 algum significado semântico para que isso não é quase tão óbvio quando você é apenas 1407 01:10:07,100 --> 01:10:10,310 dizendo, coloque o seu caneta para baixo, desenhe à direita, desenhe para a esquerda. 1408 01:10:10,310 --> 01:10:12,420 >> E assim por isso, também, é muito comum em programação. 1409 01:10:12,420 --> 01:10:15,253 Este seria dito para ser como uma muito baixo linguagem de nível, programação 1410 01:10:15,253 --> 01:10:16,730 em 0 e 1 do se você quiser. 1411 01:10:16,730 --> 01:10:19,320 E este seria um nível mais elevado Linguagem de Programação em Java, 1412 01:10:19,320 --> 01:10:20,278 ou algo assim. 1413 01:10:20,278 --> 01:10:22,050 Um pouco de um simplificação exagerada, mas isso é 1414 01:10:22,050 --> 01:10:24,310 o tipo de como emocional sentindo que você sente quando 1415 01:10:24,310 --> 01:10:26,630 usando um tipo de coisa ou de outra. 1416 01:10:26,630 --> 01:10:32,650 Um pouco de frustração aqui pela necessidade para tal precisão, mas a oportunidade 1417 01:10:32,650 --> 01:10:34,930 a ser um pouco mais flexível com a interpretação aqui. 1418 01:10:34,930 --> 01:10:38,060 Mas, claro, erros podem surgir como resultado. 1419 01:10:38,060 --> 01:10:40,500 >> Se você gostaria de casa-- nós não vai fazer este em class-- 1420 01:10:40,500 --> 01:10:41,900 mas se você gostaria de trazer um presente para casa, 1421 01:10:41,900 --> 01:10:43,387 Pensei que iria mergulhar neste. 1422 01:10:43,387 --> 01:10:45,970 Então, se você gostaria de jogar este jogo com seu outro significativo 1423 01:10:45,970 --> 01:10:49,180 ou filhos ou similares, você pode aproveitar isso também. 1424 01:10:49,180 --> 01:10:54,460 >> Então, vamos em frente e olhar para uma última coisa aqui para pensamento computacional. 1425 01:10:54,460 --> 01:10:57,010 E isso nos leva a John Oliver, não para o clipe 1426 01:10:57,010 --> 01:11:00,070 você pode ter visto na noite passada, mas a um problema relativamente recente. 1427 01:11:00,070 --> 01:11:03,310 Alguns meses atrás, a Volkswagen tomou um pouco de críticas 1428 01:11:03,310 --> 01:11:05,651 para o que razão, se você sabe? 1429 01:11:05,651 --> 01:11:07,025 O que eles ficar em apuros para? 1430 01:11:07,025 --> 01:11:10,270 1431 01:11:10,270 --> 01:11:14,030 >> Sim, então eles emissions-- estavam tentando vencer as emissões 1432 01:11:14,030 --> 01:11:19,100 testes por ter essencialmente a sua carros poluem o ambiente menos 1433 01:11:19,100 --> 01:11:23,620 quando seus carros foram sendo testado e poluir o ambiente mais 1434 01:11:23,620 --> 01:11:25,547 quando os carros não estavam sendo testados. 1435 01:11:25,547 --> 01:11:28,630 E o que é cada vez mais interessante no mundo, como você pode ter inferido 1436 01:11:28,630 --> 01:11:34,072 das discussões sobre o que é como-- ele-- CarPlay, software da Apple para carros 1437 01:11:34,072 --> 01:11:35,780 eo fato de que muitos de nós cada vez mais 1438 01:11:35,780 --> 01:11:38,390 têm telas sensíveis ao toque em nossos carros, há uma quantidade assustadora 1439 01:11:38,390 --> 01:11:41,250 de software no povo de carros de hoje, que 1440 01:11:41,250 --> 01:11:45,650 francamente abre uma lata de vermes quando se trata de segurança e risco físico. 1441 01:11:45,650 --> 01:11:48,070 Mas para hoje, vamos focar apenas o que é 1442 01:11:48,070 --> 01:11:52,170 envolvido em software de gravação que pode ter caçado o sistema. 1443 01:11:52,170 --> 01:11:54,510 >> Para a definição do problema, para quem não conhece, 1444 01:11:54,510 --> 01:11:55,740 vamos dar uma olhada John Oliver. 1445 01:11:55,740 --> 01:11:58,115 E para aqueles familiarizados com o problema, vamos olhar para ele 1446 01:11:58,115 --> 01:12:00,480 em uma lente através de divertimento John Oliver bem. 1447 01:12:00,480 --> 01:12:05,810 Então deixe-me bateu jogar sobre isso, eu acho que, a introdução de três minutos. 1448 01:12:05,810 --> 01:12:07,074 Droga. 1449 01:12:07,074 --> 01:12:07,740 [REPRODUÇÃO DE VÍDEO] 1450 01:12:07,740 --> 01:12:08,170 -Cars-- 1451 01:12:08,170 --> 01:12:09,919 DAVID MALAN: Obviamente, no YouTube, it's-- 1452 01:12:09,919 --> 01:12:12,500 - --os personagens mais inteligentes os filmes Velozes e Furiosos. 1453 01:12:12,500 --> 01:12:16,080 Esta semana, a montadora alemã Volkswagen encontrou-se 1454 01:12:16,080 --> 01:12:19,430 no meio de um escândalo de proporções potencialmente criminais. 1455 01:12:19,430 --> 01:12:23,020 >> -Volkswagen Está se preparando para bilhões em multas, possíveis acusações criminais 1456 01:12:23,020 --> 01:12:25,530 para seus executivos, como a empresa pede desculpas 1457 01:12:25,530 --> 01:12:28,790 para aparelhamento 11 milhões de carros para ajudá-la a vencer a testes de emissões. 1458 01:12:28,790 --> 01:12:32,110 >> modelos diesel -Certos foram projetados com o software sofisticado que 1459 01:12:32,110 --> 01:12:35,410 informações utilizadas, incluindo a posição do volante e do veículo 1460 01:12:35,410 --> 01:12:38,820 velocidade, para determinar o carro era submetidos a testes de emissões. 1461 01:12:38,820 --> 01:12:42,620 Nessa circunstância, o motor reduziria as emissões tóxicas. 1462 01:12:42,620 --> 01:12:46,040 Mas o carro foi fraudada para ignorar que quando ele estava sendo conduzido. 1463 01:12:46,040 --> 01:12:51,370 As emissões aumentaram 10 a 40 vezes acima dos níveis de EPA aceitáveis. 1464 01:12:51,370 --> 01:12:55,920 >> -Nossa, 10 a 40 vezes maior do que a EPA permite. 1465 01:12:55,920 --> 01:12:59,570 Essa é a pior coisa Volkswagen já fez, 1466 01:12:59,570 --> 01:13:04,200 é algo que você pode dizer se você nunca tinha ouvido falar da Segunda Guerra Mundial. 1467 01:13:04,200 --> 01:13:09,710 Mas talvez o sinal mais seguro de como muita dificuldade Volkswagen está em, 1468 01:13:09,710 --> 01:13:12,730 é que as pessoas no muito top renunciaram. 1469 01:13:12,730 --> 01:13:16,320 O CEO, renunciou na quarta-feira depois lutando para controlar os danos, 1470 01:13:16,320 --> 01:13:20,380 dizendo que ele era infinitamente muito, que parecia ótimo até que ele acabou 1471 01:13:20,380 --> 01:13:22,920 ele era apenas 10% desculpe mas tinha manipulado a boca 1472 01:13:22,920 --> 01:13:25,600 para inflar artificialmente o seu arrependimento. 1473 01:13:25,600 --> 01:13:29,700 E enquanto isso, US da Volkswagen chefe teve um pedido de desculpas de sua autoria. 1474 01:13:29,700 --> 01:13:33,580 >> -Vamos Ser claro sobre isso, nossa empresa foi desonesto. 1475 01:13:33,580 --> 01:13:37,140 E nas minhas palavras alemãs, nós têm totalmente asneira. 1476 01:13:37,140 --> 01:13:41,360 >> -Sim, Mas totalmente aparafusado se não são obras alemãs. 1477 01:13:41,360 --> 01:13:43,750 E a língua alemã tem muitas frases bonitas 1478 01:13:43,750 --> 01:13:50,070 para descrever situações como esta, tais como [ALEMÃO], que significa aproximadamente, 1479 01:13:50,070 --> 01:13:52,870 a tristeza que vem das mentiras de negócios relacionados, 1480 01:13:52,870 --> 01:13:59,060 ou [Alemão], o que se traduz como envergonhar aqueles pai envolvendo 1481 01:13:59,060 --> 01:14:00,352 nuvens de gasolina. 1482 01:14:00,352 --> 01:14:02,060 É uma língua bonita. 1483 01:14:02,060 --> 01:14:04,660 Ele só navega fora da língua. 1484 01:14:04,660 --> 01:14:07,920 E, a propósito, enquanto que o do homem pedido de desculpas pode ter soado sincero, 1485 01:14:07,920 --> 01:14:12,260 vale a pena notar que ele estava falando em uma festa oficial de lançamento para 2016 1486 01:14:12,260 --> 01:14:17,310 Volkswagen Passat, o que significa que em breve depois de dizer muito, ele disse isso. 1487 01:14:17,310 --> 01:14:18,850 >> -Muito Obrigado por terem vindo. 1488 01:14:18,850 --> 01:14:19,630 Aproveite a noite. 1489 01:14:19,630 --> 01:14:21,300 O próximo é Lenny Kravitz. 1490 01:14:21,300 --> 01:14:24,640 >> [REPRODUÇÃO DE MÚSICA] 1491 01:14:24,640 --> 01:14:28,230 >> -OK, OK, terminando o seu pedido de desculpas com até próxima 1492 01:14:28,230 --> 01:14:31,940 Lenny Kravitz não gritar contrição sóbrio. 1493 01:14:31,940 --> 01:14:35,830 Ela grita, pedimos Bon Jovi, e ele disse que não. 1494 01:14:35,830 --> 01:14:38,600 marca da Volkswagen tem foi muito danificado. 1495 01:14:38,600 --> 01:14:42,466 E, francamente, o seu novo anúncio campanha não é exatamente ajudando. 1496 01:14:42,466 --> 01:14:47,289 >> - [Alemão], nós da Volkswagen gostaria a pedir desculpas por enganar-lo com 1497 01:14:47,289 --> 01:14:47,930 nossos veículos. 1498 01:14:47,930 --> 01:14:48,513 >> [FIM DE REPRODUÇÃO] 1499 01:14:48,513 --> 01:14:54,090 DAVID MALAN: Então esta foi uma forma indireta de-- sorry-- 1500 01:14:54,090 --> 01:14:58,730 esta foi uma forma indireta de a introdução de um problema fundamental 1501 01:14:58,730 --> 01:15:02,810 em software, o que é que você preciso detectar determinadas condições. 1502 01:15:02,810 --> 01:15:07,680 E assim a questão em apreço aqui é, como é que um carro potencialmente, 1503 01:15:07,680 --> 01:15:09,870 como implementado no software por estes programadores, 1504 01:15:09,870 --> 01:15:11,850 detectar que ele realmente está sendo testado? 1505 01:15:11,850 --> 01:15:14,150 Assim, para ser super claro, o que estavam fazendo 1506 01:15:14,150 --> 01:15:17,940 foi, em ambientes onde os programadores figurado 1507 01:15:17,940 --> 01:15:20,460 o carro estava sendo testados, eles de alguma forma 1508 01:15:20,460 --> 01:15:24,840 o carro emitem menos emissões, menos emissões, fumos de modo menos tóxicos 1509 01:15:24,840 --> 01:15:25,470 e tal. 1510 01:15:25,470 --> 01:15:27,261 Mas quando é normalmente a condução na estrada, 1511 01:15:27,261 --> 01:15:30,350 seria apenas emitem tanto a poluição, uma vez que queria. 1512 01:15:30,350 --> 01:15:33,870 >> Assim como poderíamos escrever o pseudocódigo para este algoritmo? 1513 01:15:33,870 --> 01:15:37,820 Como poderíamos escrever pseudocódigo para o software em execução no carro? 1514 01:15:37,820 --> 01:15:43,390 Quer dizer, em poucas palavras, que ferve para baixo para algo como isto. 1515 01:15:43,390 --> 01:15:48,000 se a ser testado, emitem menos. 1516 01:15:48,000 --> 01:15:50,750 outra emite mais. 1517 01:15:50,750 --> 01:15:52,630 Mas isso é um pouco nível muito alto, certo? 1518 01:15:52,630 --> 01:15:58,580 >> Vamos tentar mergulhar, como o que este abstração do que significa ser testados. 1519 01:15:58,580 --> 01:16:06,340 Em outras palavras, mesmo se você não sabe nada sobre carros, que tipo de perguntas 1520 01:16:06,340 --> 01:16:13,440 pode você perguntar, a fim de determinar se você está sendo testado, se você é o carro? 1521 01:16:13,440 --> 01:16:19,638 O que pode ser características apresentar se um carro está sendo testado? 1522 01:16:19,638 --> 01:16:21,026 >> AUDIÊNCIA: Testando equipamento. 1523 01:16:21,026 --> 01:16:22,420 >> DAVID MALAN: Equipamento de testes. 1524 01:16:22,420 --> 01:16:26,060 Então, se o equipamento de teste nas proximidades, em seguida, emitem menos. 1525 01:16:26,060 --> 01:16:28,669 Então eu poderia imaginar implementação que, com algum tipo de câmeras 1526 01:16:28,669 --> 01:16:29,960 ou detectar o que está ao seu redor. 1527 01:16:29,960 --> 01:16:32,870 E deixe-me propor, que só se sente muito complicado 1528 01:16:32,870 --> 01:16:37,914 para realmente ter adicional hardware apenas para essa finalidade. 1529 01:16:37,914 --> 01:16:44,830 >> Audiência: Se você estiver em parque, se o seu capô estiver aberto. 1530 01:16:44,830 --> 01:16:47,320 >> DAVID MALAN: No parque ou capô aberto, de modo que é bom. 1531 01:16:47,320 --> 01:16:47,420 >> AUDIÊNCIA: E carro de corrida. 1532 01:16:47,420 --> 01:16:50,480 >> DAVID MALAN: Então, isso é um pouco mais concrete-- e carro de corrida. 1533 01:16:50,480 --> 01:16:55,690 Portanto, esta seria a conjunção de um algumas condições diferentes, se você quiser. 1534 01:16:55,690 --> 01:16:59,227 Então, se o carro está no parque, e até mesmo embora isso é uma coisa muito mecânica 1535 01:16:59,227 --> 01:17:01,060 Normalmente, eu poderia imagine escrever software, 1536 01:17:01,060 --> 01:17:03,476 especialmente porque não há muitas vezes uma luz lá estes dias, 1537 01:17:03,476 --> 01:17:07,400 Eu poderia imaginar que haja software que pode consultar o shifter 1538 01:17:07,400 --> 01:17:10,634 ou que não, você está no parque, são -lo na unidade, você está em sentido inverso. 1539 01:17:10,634 --> 01:17:12,550 E eu posso voltar um responder a isso é tanto sim 1540 01:17:12,550 --> 01:17:14,400 ou não para esses tipos de perguntas. 1541 01:17:14,400 --> 01:17:17,630 >> E assim eu também poderia provavelmente responder uma pergunta como, é o capô aberto. 1542 01:17:17,630 --> 01:17:21,860 Talvez, há algum tipo de sensor de que tanto me dá de volta um 1 ou 0, 1543 01:17:21,860 --> 01:17:23,720 verdadeiro ou falso, o capô estiver aberto. 1544 01:17:23,720 --> 01:17:28,180 E, em seguida, carro correndo, eu poderia detectar que de alguma forma através de qual mecanismo? 1545 01:17:28,180 --> 01:17:30,430 Como, o carro está funcionando, eu poderia detectar que ela está ligada, 1546 01:17:30,430 --> 01:17:32,127 Eu poderia detectar alguma forma que o carro está em movimento? 1547 01:17:32,127 --> 01:17:32,881 >> Audiência: RPMs. 1548 01:17:32,881 --> 01:17:35,190 >> DAVID MALAN: Sim, por isso há sempre que agulha que 1549 01:17:35,190 --> 01:17:38,034 informa quantas rotações por hora as rodas estão experimentando. 1550 01:17:38,034 --> 01:17:39,200 E assim eu poderia olhar para isso. 1551 01:17:39,200 --> 01:17:43,090 E se não é 0, que, provavelmente, significa que o carro está em movimento. 1552 01:17:43,090 --> 01:17:45,400 Mas temos de ser um pouco cuidado lá, 1553 01:17:45,400 --> 01:17:49,780 porque-- vamos simplificar isto-- se acabou de dizer, se o carro de corrida, 1554 01:17:49,780 --> 01:17:53,070 nós não queremos apenas emitem menos, queremos que se o carro está em execução 1555 01:17:53,070 --> 01:17:54,310 e está sendo testado. 1556 01:17:54,310 --> 01:17:56,320 >> Portanto, há algumas outras Ingredientes que pessoas 1557 01:17:56,320 --> 01:18:00,550 têm a hipótese de o software está fazendo, porque ausente o código fonte real, 1558 01:18:00,550 --> 01:18:05,130 você só pode tipo de inferir a partir da efeitos físicos do carro, como o que 1559 01:18:05,130 --> 01:18:08,280 pode estar acontecendo por baixo o capô em software. 1560 01:18:08,280 --> 01:18:17,090 Então, se carro funcionando e talvez, digamos, rodas traseiras não se movendo, 1561 01:18:17,090 --> 01:18:19,420 isso pode ser um indicativo de algum tipo de teste? 1562 01:18:19,420 --> 01:18:22,830 O que estou sugerindo aqui? 1563 01:18:22,830 --> 01:18:24,830 É, talvez, é em um dessas coisas de rolos, 1564 01:18:24,830 --> 01:18:28,340 onde como as rodas estão girando na parte da frente ou na parte de trás, 1565 01:18:28,340 --> 01:18:32,570 dependendo se é roda da frente ou tração traseira, de modo a metade das rodas 1566 01:18:32,570 --> 01:18:34,420 estão se movendo, mas o outros dois não são, o que 1567 01:18:34,420 --> 01:18:36,320 é uma situação estranha no mundo real. 1568 01:18:36,320 --> 01:18:38,110 Se você estiver dirigindo na estrada, que não deveria acontecer. 1569 01:18:38,110 --> 01:18:40,568 Mas se você estiver em um armazém em algum tipo de sistema de rolos, 1570 01:18:40,568 --> 01:18:41,630 que pode realmente acontecer. 1571 01:18:41,630 --> 01:18:46,980 >> Eu acho que as pessoas também propôs que talvez, se o carro está em execução e direção 1572 01:18:46,980 --> 01:18:51,300 não roda em movimento, que também pode ser um sinal, 1573 01:18:51,300 --> 01:18:54,090 porque isso é razoável para como um imediatamente em uma estrada. 1574 01:18:54,090 --> 01:18:57,960 Mas, mesmo assim, o humano está provavelmente movê-lo um pouco ou certamente 1575 01:18:57,960 --> 01:18:59,100 durante alguns segundos. 1576 01:18:59,100 --> 01:19:01,030 Ou o curso de um minutos, as chances são de que não 1577 01:19:01,030 --> 01:19:03,510 vai ser fixado em exatamente na mesma posição. 1578 01:19:03,510 --> 01:19:05,440 >> Assim, em outras palavras, nós pode levar a subtracção, 1579 01:19:05,440 --> 01:19:08,200 você está sendo testado, e quebrar essa funcionalidade 1580 01:19:08,200 --> 01:19:10,420 para estes ingredientes que o compõem. 1581 01:19:10,420 --> 01:19:13,440 E isso é realmente o que a Volkswagen do engenheiros de alguma forma o fez. 1582 01:19:13,440 --> 01:19:17,070 Eles escreveram software conscientemente detectar se o carro está sendo testado, 1583 01:19:17,070 --> 01:19:20,440 portanto, emitem menos, outra emitem na maneira usual. 1584 01:19:20,440 --> 01:19:22,690 >> E o problema aqui, também, é que o software não é 1585 01:19:22,690 --> 01:19:26,080 algo que você pode realmente ver a menos tem o chamado código fonte. 1586 01:19:26,080 --> 01:19:29,060 Portanto, há dois tipos diferentes de code--, pelo menos, dois tipos diferentes 1587 01:19:29,060 --> 01:19:30,130 de código no mundo. 1588 01:19:30,130 --> 01:19:33,150 Há algo chamado source de código, o que não é o que ao contrário 1589 01:19:33,150 --> 01:19:37,240 que tenho escrito, o código fonte. 1590 01:19:37,240 --> 01:19:40,099 >> Este é o código fonte escrito em uma linguagem chamada pseudo-código, 1591 01:19:40,099 --> 01:19:41,640 que é apenas algo Inglês-like. 1592 01:19:41,640 --> 01:19:43,140 Não há nenhuma definição formal do mesmo. 1593 01:19:43,140 --> 01:19:46,770 Mas C e Java, C ++, os são todas as linguagens formais que, 1594 01:19:46,770 --> 01:19:50,610 quando você escreve neles, o que você tem é um arquivo de texto contendo código fonte. 1595 01:19:50,610 --> 01:19:54,850 >> Mas também há algo em o mundo chamado de código de máquina. 1596 01:19:54,850 --> 01:20:00,579 E código de máquina, infelizmente, está apenas a 0 e 1.. 1597 01:20:00,579 --> 01:20:02,870 Assim, o código de máquina é o que máquinas de entender, é claro. 1598 01:20:02,870 --> 01:20:04,470 O código-fonte é o que os seres humanos entender. 1599 01:20:04,470 --> 01:20:08,390 >> E, geralmente, não mas sempre, há um programa 1600 01:20:08,390 --> 01:20:14,090 que usa um programador que leva fonte código e transforma-lo em código de máquina. 1601 01:20:14,090 --> 01:20:17,400 E esse programa é geralmente chamado de um compilador. 1602 01:20:17,400 --> 01:20:19,820 Portanto, sua entrada é código-fonte, sua saída é o código de máquina, 1603 01:20:19,820 --> 01:20:22,890 eo compilador é um pedaço de software que faz esse processo. 1604 01:20:22,890 --> 01:20:26,260 Então, isso realmente mapeia muito bem para nossos insumos, algoritmos saídas. 1605 01:20:26,260 --> 01:20:30,400 >> Mas esta é uma encarnação muito específico de que, o que quer dizer que, 1606 01:20:30,400 --> 01:20:34,200 mesmo se você possui um dos Volkswagen carros que é culpado disso, 1607 01:20:34,200 --> 01:20:38,390 não é como você pode simplesmente abrir o exaustor ou abrir o manual do utilizador ou olhar 1608 01:20:38,390 --> 01:20:42,690 o código-fonte, porque no momento em ele atinge o seu carro em sua garagem, 1609 01:20:42,690 --> 01:20:45,580 Já foi convertido em 0 e 1.. 1610 01:20:45,580 --> 01:20:51,310 E é muito difícil, não impossível, mas muito difícil de recolher muita coisa 1611 01:20:51,310 --> 01:20:53,710 a partir de apenas olhando para o subjacente a 0 e 1 do. 1612 01:20:53,710 --> 01:20:57,150 Assim, você pode descobrir isso, em última análise, se você entende como uma máquina operates-- 1613 01:20:57,150 --> 01:20:59,870 Intel dentro-- se você entender a arquitetura Intel, 1614 01:20:59,870 --> 01:21:01,440 mas é muito demorado. 1615 01:21:01,440 --> 01:21:05,010 E mesmo lá, você pode não ser capaz de ver tudo 1616 01:21:05,010 --> 01:21:08,220 que o código pode realmente fazer. 1617 01:21:08,220 --> 01:21:12,521 >> Qualquer dúvida sobre este ou este tipo de processo mais geralmente? 1618 01:21:12,521 --> 01:21:15,134 1619 01:21:15,134 --> 01:21:18,300 E, na verdade, podemos amarrar essa discussão a discussão de ontem da Apple. 1620 01:21:18,300 --> 01:21:22,500 Isto, também, é por isso que o FBI não pode apenas ir e olhar no telefone do suspeito 1621 01:21:22,500 --> 01:21:26,820 e encontrar as linhas de código, por exemplo, que permitem que o código de acesso 1622 01:21:26,820 --> 01:21:28,940 ou permitam que essa demora 80 milisegundos. 1623 01:21:28,940 --> 01:21:31,630 Porque no momento em que é no iPhone do companheiro, 1624 01:21:31,630 --> 01:21:34,975 Já foi convertidos em 0 e 1.. 1625 01:21:34,975 --> 01:21:38,015 1626 01:21:38,015 --> 01:21:40,820 >> Bem, vamos fazer uma pausa aqui para o nosso olhar pensamento computacional. 1627 01:21:40,820 --> 01:21:42,320 Por que não vamos fazer uma pausa de 15 minutos. 1628 01:21:42,320 --> 01:21:44,130 E quando voltar, vamos dar uma olhada em programação 1629 01:21:44,130 --> 01:21:46,550 -se e começar a mapear alguns destes conceitos de alto nível 1630 01:21:46,550 --> 01:21:49,780 a um real, se brincalhão, linguagem de programação. 1631 01:21:49,780 --> 01:21:51,089