1 00:00:00,000 --> 00:00:00,270 2 00:00:00,270 --> 00:00:01,790 DAVID Malan: Benvido de volta, todo o mundo. 3 00:00:01,790 --> 00:00:05,030 Entón, onte, vai lembrar que Nós nos concentrados sobre estes temas aquí. 4 00:00:05,030 --> 00:00:08,380 Por iso, tivemos catro topics-- global privacidade, seguridade e sociedade; 5 00:00:08,380 --> 00:00:11,960 tecnoloxías de internet; cloud computing; e, finalmente, o desenvolvemento web. 6 00:00:11,960 --> 00:00:14,170 >> Alguén ten a ancho de banda ou tempo 7 00:00:14,170 --> 00:00:16,900 para asistir a un pouco de John Oliver última noite? 8 00:00:16,900 --> 00:00:20,120 É realmente moi divertido, se non un pouco asustado. 9 00:00:20,120 --> 00:00:24,700 Calquera preguntas sobre calquera cousa que fixemos onte? 10 00:00:24,700 --> 00:00:27,600 Posibles aclaracións? 11 00:00:27,600 --> 00:00:35,580 Todas as preguntas que quere facer Asegúrese de que tocamos hoxe dalgún xeito? 12 00:00:35,580 --> 00:00:37,300 Slater tan limpo. 13 00:00:37,300 --> 00:00:38,760 >> Entón, o que está na axenda para hoxe? 14 00:00:38,760 --> 00:00:41,301 Entón eu penso que ía comezar hoxe cun ollar para o que adoita 15 00:00:41,301 --> 00:00:44,460 coñecido como thinking-- computacional en o risco de simplificar demasiado, pensando 16 00:00:44,460 --> 00:00:46,636 como un ordenador, é posible pensar como un enxeñeiro, 17 00:00:46,636 --> 00:00:48,510 e intentando empezar a organizar os seus pensamentos 18 00:00:48,510 --> 00:00:52,039 ou para lle dar unha mellor sensación de que toma parte en realidade comandando 19 00:00:52,039 --> 00:00:54,080 un ordenador para facer algo por medio de programación. 20 00:00:54,080 --> 00:00:56,663 E nós imos mantelo nunha fermosa de alto nivel, moi ben inglés, 21 00:00:56,663 --> 00:00:59,850 pero tentar empregar de familiares exemplos de formalizar como 22 00:00:59,850 --> 00:01:01,450 ía sobre a resolución de problemas. 23 00:01:01,450 --> 00:01:04,080 >> E imos revisitar algúns CS temas, como abstracción, 24 00:01:04,080 --> 00:01:06,040 que subiu un par de veces onte 25 00:01:06,040 --> 00:01:07,554 algoritmos e logo representación. 26 00:01:07,554 --> 00:01:09,720 E é aí onde imos comezar hoxe en só un momento. 27 00:01:09,720 --> 00:01:11,481 Entón imos dar un ollo a programación. 28 00:01:11,481 --> 00:01:13,480 Imos dar un ollo a algúns construcións fundamentais 29 00:01:13,480 --> 00:01:16,450 co cal pode estar familiarizado e pode ata atopar bastante intuitivo. 30 00:01:16,450 --> 00:01:18,370 >> Veremos, de feito, nunha mostra de programación 31 00:01:18,370 --> 00:01:21,244 ambiente que é moi accesible, moi brincallón, e de feito obxectivo 32 00:01:21,244 --> 00:01:22,555 para as idades de 12 e por riba. 33 00:01:22,555 --> 00:01:25,930 Imos pasar uns minutos hai e logo, levar as cousas a un nivel máis baixo 34 00:01:25,930 --> 00:01:30,360 e realmente falar sobre algunhas das os algoritmos e estruturas de datos, 35 00:01:30,360 --> 00:01:32,360 por así dicir, que programadores adoitan usar 36 00:01:32,360 --> 00:01:35,040 para resolver problemas moito máis eficientemente que pode 37 00:01:35,040 --> 00:01:37,322 ser capaz de facer sen eles completamente. 38 00:01:37,322 --> 00:01:40,280 Logo despois do xantar, imos dar un ollo en pilas de tecnoloxía, que é só 39 00:01:40,280 --> 00:01:42,240 un xeito elegante de dicir coleccións de tecnoloxías 40 00:01:42,240 --> 00:01:43,690 que pode usar para resolver problemas. 41 00:01:43,690 --> 00:01:46,670 E imos falar do alfabeto Sopa de linguas que existen today-- 42 00:01:46,670 --> 00:01:50,930 Java e Python e C ++ e PHP e Ruby e todo tipo de cousas. 43 00:01:50,930 --> 00:01:53,740 >> Imos dar unha breve ollada en patróns de deseño. 44 00:01:53,740 --> 00:01:57,730 Programadores, co paso do tempo, teñen metodoloxías adoptadas 45 00:01:57,730 --> 00:02:00,690 que tenden a axudalos resolver os problemas máis facilmente. 46 00:02:00,690 --> 00:02:04,390 Cando comezar a ver-se escribir o mesmo tipo de código de novo e de novo, 47 00:02:04,390 --> 00:02:08,080 persoas formalizar estas repeticións e nomes atribúen a eles 48 00:02:08,080 --> 00:02:10,084 e logo, usalos e promove-los, en última instancia. 49 00:02:10,084 --> 00:02:12,250 E nós imos falar un pouco sobre estratexias móbiles, 50 00:02:12,250 --> 00:02:16,099 como o que significa, en realidade, facer unha aplicación móbil ou un sitio web móbil. 51 00:02:16,099 --> 00:02:17,140 Facelo para Android? 52 00:02:17,140 --> 00:02:17,730 Facelo para iOS? 53 00:02:17,730 --> 00:02:19,160 Facelo por tanto daqueles? 54 00:02:19,160 --> 00:02:20,326 E cales son as vantaxes e desvantaxes? 55 00:02:20,326 --> 00:02:23,180 E entón, finalmente, imos dar unha programación web ollar, que 56 00:02:23,180 --> 00:02:25,380 é un termo colectivo Realmente describindo calquera momento 57 00:02:25,380 --> 00:02:28,410 escribir software que é destínase a realizar na web, 58 00:02:28,410 --> 00:02:30,430 en teléfonos ou escritorios ou portátiles. 59 00:02:30,430 --> 00:02:33,490 Imos dar unha breve ollada en bases de datos e deseño 60 00:02:33,490 --> 00:02:39,049 nel, mesmo porque case calquera aplicación baseado na web interesante 61 00:02:39,049 --> 00:02:40,590 nos días de hoxe ten algún tipo de base de datos. 62 00:02:40,590 --> 00:02:42,380 En caso contrario, sería ser só contido estático. 63 00:02:42,380 --> 00:02:45,254 E unha base de datos permítelle cambios ao longo do tempo, a si mesmo 64 00:02:45,254 --> 00:02:45,960 ou usuarios. 65 00:02:45,960 --> 00:02:47,820 E nós imos considerar como ía sobre a creación 66 00:02:47,820 --> 00:02:50,510 Esta base de datos e do tipo de xerga que poida xurdir en un enxeñeiro de 67 00:02:50,510 --> 00:02:52,790 discusión nun cadro branco cando realmente aplicar 68 00:02:52,790 --> 00:02:53,900 unha aplicación por primeira vez. 69 00:02:53,900 --> 00:02:57,002 >> Imos falar brevemente sobre APIs, servizos útiles 70 00:02:57,002 --> 00:02:59,960 que pode usar para estar na ombreiros dos outros, as empresas 71 00:02:59,960 --> 00:03:02,619 ou individuos, e resolver o seu propios problemas máis rapidamente. 72 00:03:02,619 --> 00:03:04,785 E entón nós imos xogar quizais algo con JavaScript, 73 00:03:04,785 --> 00:03:08,900 unha linguaxe de programación que se usa tanto en navegadores nos días de hoxe, pero tamén 74 00:03:08,900 --> 00:03:09,820 en servidores. 75 00:03:09,820 --> 00:03:11,890 E, quizais, imos revisitar, se o tempo permitir, 76 00:03:11,890 --> 00:03:15,670 algúns dos hands-on que stuff web fixo onte e integrar os dous 77 00:03:15,670 --> 00:03:17,630 xuntos, antes de pechar. 78 00:03:17,630 --> 00:03:22,380 >> Así, con isso-- que é ahead-- é Hai algo falta que 79 00:03:22,380 --> 00:03:26,289 Quere estar seguro de que introduce e tocar nalgún punto. 80 00:03:26,289 --> 00:03:28,330 Se é vén á mente, trae-lo antes do tempo. 81 00:03:28,330 --> 00:03:32,010 Pero por que non comezar cun ollar pensamento computacional. 82 00:03:32,010 --> 00:03:35,420 >> E déixeme propoñer que pensamento computacional é, de novo, 83 00:03:35,420 --> 00:03:38,830 unha especie de descrición de alto nivel de o que un científico da computación pode facer. 84 00:03:38,830 --> 00:03:42,470 E, de feito, imos comezar con tres ingredientes que 85 00:03:42,470 --> 00:03:44,207 Pode poñerse en pensamento computacional. 86 00:03:44,207 --> 00:03:45,790 Esta é só unha forma de describilo. 87 00:03:45,790 --> 00:03:48,490 Nós seguramente podería definir isto en calquera número de formas. 88 00:03:48,490 --> 00:03:50,630 >> Pero déixeme propoñer, por unha cuestión de hoxe, 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 cando foi abordado por un científico da computación podería 91 00:03:56,730 --> 00:04:00,990 ser visto como o que imos entradas de chamadas, os cales 92 00:04:00,990 --> 00:04:08,142 se alimentado no que chamaremos algoritmos, que, a continuación, producen saídas. 93 00:04:08,142 --> 00:04:10,600 Noutras palabras, a totalidade mundo da reivindicación I de solución de problemas 94 00:04:10,600 --> 00:04:13,140 pode ser destilada en estes tres ingredientes. 95 00:04:13,140 --> 00:04:14,450 Entón, o que quero dicir con entradas? 96 00:04:14,450 --> 00:04:17,060 Entradas é o que está a entregado, a fin de resolver. 97 00:04:17,060 --> 00:04:20,052 >> Por exemplo, aquí está un problema antigo da escola. 98 00:04:20,052 --> 00:04:22,760 Se eu tivera un libro de teléfono aquí e Quero ollar algo dentro del, 99 00:04:22,760 --> 00:04:23,760 esta é a miña entrada. 100 00:04:23,760 --> 00:04:26,260 Teño 1.000 ou así páxinas dun libro de teléfono. 101 00:04:26,260 --> 00:04:27,780 Esta é a entrada ao meu problema. 102 00:04:27,780 --> 00:04:31,507 E quero atopar algo como Mike Smith, entón correo 103 00:04:31,507 --> 00:04:33,840 cuxo nome e número é espero que este libro de enderezos. 104 00:04:33,840 --> 00:04:36,430 >> Este é antes dos días de célula teléfonos, para que eu poida non só buscalo. 105 00:04:36,430 --> 00:04:38,540 Entón eu teño que facelo de idade escola e, de feito, a investigación 106 00:04:38,540 --> 00:04:41,331 estas entradas para algunha resposta. 107 00:04:41,331 --> 00:04:43,580 E esa resposta é só ir a ser chamado de saída. 108 00:04:43,580 --> 00:04:44,871 Así, a entrada é a lista telefónica. 109 00:04:44,871 --> 00:04:47,787 O algoritmo é todo o conxunto de pasos que eu uso para atopar Mike Smith. 110 00:04:47,787 --> 00:04:50,120 E a saída é, esperanza, número de teléfono de Mike Smith. 111 00:04:50,120 --> 00:04:52,703 E este, logo sería só representante máis ningún problema 112 00:04:52,703 --> 00:04:55,210 para con vostede son entradas handed e queren producir resultados. 113 00:04:55,210 --> 00:04:59,459 >> Entón, antes de considerar o proceso polo que podemos resolver este problema, 114 00:04:59,459 --> 00:05:01,250 atopar Mike Smith e algo así, 115 00:05:01,250 --> 00:05:04,090 imos considerar a primeira e as entradas e saídas last--. 116 00:05:04,090 --> 00:05:08,060 Fisicamente, por suposto, a entrada aquí é unha morea de papel pegadas en conxunto 117 00:05:08,060 --> 00:05:09,400 baixo a forma dunha lista telefónica. 118 00:05:09,400 --> 00:05:13,660 Pero os ordenadores, portátiles course-- e escritorios e mesmo teléfonos 119 00:05:13,660 --> 00:05:16,430 estes son os dias-- dispositivos electrónicos. 120 00:05:16,430 --> 00:05:20,920 >> E ao final do día, o que está a única entrada para un ordenador? 121 00:05:20,920 --> 00:05:23,299 Ben, é algo así como este cable de alimentación aquí. 122 00:05:23,299 --> 00:05:25,590 Eu liga-lo na parede, e Eu recibín un fluxo de electróns, 123 00:05:25,590 --> 00:05:27,048 o que me permite realizar a máquina. 124 00:05:27,048 --> 00:05:30,420 Ou que eses electróns son creado por medio da miña batería. 125 00:05:30,420 --> 00:05:33,790 Con todo, ao final do día, que é o único que vai no meu portátil. 126 00:05:33,790 --> 00:05:35,772 É moi interesante material é, en definitiva 127 00:05:35,772 --> 00:05:37,480 saíndo si por medio da impresora 128 00:05:37,480 --> 00:05:40,320 ou a pantalla ou audially ou similares. 129 00:05:40,320 --> 00:05:45,320 >> Entón, se todo o que temos como a nosa entrada fundamental para un ordenador 130 00:05:45,320 --> 00:05:49,160 é a electricidade, entón só electróns entrando e ou fóra, 131 00:05:49,160 --> 00:05:54,465 e así como podemos utilizar esta entrada para realmente representar a información? 132 00:05:54,465 --> 00:05:57,090 Noutras palabras, como é que imos chegar a partir dun simple 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 imaxes reais na pantalla ou películas reais ou correos electrónicos 135 00:06:03,620 --> 00:06:05,690 ou calquera número destas conceptos de nivel superior, 136 00:06:05,690 --> 00:06:07,680 se quixeren, que, no final do día, de algunha maneira, 137 00:06:07,680 --> 00:06:11,950 han de ser almacenados nesta dispositivo mecánico electrónico 138 00:06:11,950 --> 00:06:16,260 usando só aqueles simples ingredients-- electróns que entran e saen? 139 00:06:16,260 --> 00:06:19,530 >> Así, parece que, Na forma máis simple, 140 00:06:19,530 --> 00:06:23,260 o único tipo de estados Teño no meu mundo, entón 141 00:06:23,260 --> 00:06:25,350 para speak-- condicións Na miña mundo-- sexa 142 00:06:25,350 --> 00:06:33,020 Teño electróns fluíndo, electricidade fluír, ou fago não-- etc., off. 143 00:06:33,020 --> 00:06:35,850 E imos formalizar dentro e fóra, como un científico da computación pode, 144 00:06:35,850 --> 00:06:37,255 con só 1 e 0. 145 00:06:37,255 --> 00:06:39,880 Nós só describir algunhas arbitraria pero número consistente a el. 146 00:06:39,880 --> 00:06:41,970 1 significa en, 0 significa desactivado. 147 00:06:41,970 --> 00:06:45,427 Ou tamén pode ver iso como verdadeiro medio de falsos e medios. 148 00:06:45,427 --> 00:06:47,510 Tamén pode facer negro e negro ou vermello e azul. 149 00:06:47,510 --> 00:06:48,759 Só ten que dous descritores. 150 00:06:48,759 --> 00:06:52,240 E un ordenador científicos xeralmente só usar 0 e 1. 151 00:06:52,240 --> 00:06:58,980 >> Polo tanto, se este é o caso, o meu único alfabeto está formado por 0 e 1 é, como 152 00:06:58,980 --> 00:07:03,360 podería chegar ata o número 2 nun ordenador, e moito menos o número 3 153 00:07:03,360 --> 00:07:06,140 ou unha letra do alfabeto ou unha imaxe ou unha película? 154 00:07:06,140 --> 00:07:08,910 Como podemos tipo de arrincar -Nos a este principio básico 155 00:07:08,910 --> 00:07:12,080 de 0 e 1, e de feito, representar algo máis interesante? 156 00:07:12,080 --> 00:07:14,430 >> Ben, imos poñer esta pregunta agardando por un 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 realmente non teño pensado sobre Lo en calquera detalle a 10, 20, 30, 40, 50 159 00:07:21,150 --> 00:07:22,520 máis anos. 160 00:07:22,520 --> 00:07:24,780 Isto é o que? 161 00:07:24,780 --> 00:07:28,050 Como pronúnciase iso? 162 00:07:28,050 --> 00:07:30,770 Non é unha pregunta capciosa. 163 00:07:30,770 --> 00:07:32,950 Un número, pero 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 me gustou como dixo 1, 2, 3, porque esta é unha forma de velo. 166 00:07:37,800 --> 00:07:39,870 1, 2, 3, que é unha secuencia de tres símbolos. 167 00:07:39,870 --> 00:07:42,005 É imaxes que nos Agora temos palabras para. 168 00:07:42,005 --> 00:07:44,880 E se tipo de le-los todos en conxunto, un ser humano típico, en inglés 169 00:07:44,880 --> 00:07:46,600 diría 123. 170 00:07:46,600 --> 00:07:48,350 E iso é unha especie de concepto de nivel superior, 171 00:07:48,350 --> 00:07:50,340 Se sente como un número razoabelmente grande. 172 00:07:50,340 --> 00:07:51,490 >> Pero como é que imos chegar alí? 173 00:07:51,490 --> 00:07:54,640 Ben, pode ser un tempo dende xa penso niso como este, 174 00:07:54,640 --> 00:07:56,680 pero volta no meu día, eu tipo de aprendín iso 175 00:07:56,680 --> 00:08:01,030 como a columna do 1, os 10 de columna, ea columna 100 de. 176 00:08:01,030 --> 00:08:06,400 Así como di Lakisa, é 1, 2, 3, pero tamén é 123. 177 00:08:06,400 --> 00:08:08,700 Pero como é que imos comezar a partir de a primeira á segunda? 178 00:08:08,700 --> 00:08:12,340 >> Ben, normalmente facer en columna a 100 do, eu teño un 1. 179 00:08:12,340 --> 00:08:14,794 Entón, iso é como dicir 100 veces 1. 180 00:08:14,794 --> 00:08:16,210 E, a continuación, na columna 10 da, eu teño 2. 181 00:08:16,210 --> 00:08:18,464 Entón, iso é como dicir 10 veces 2. 182 00:08:18,464 --> 00:08:19,630 Na columna 1 do, teño 3. 183 00:08:19,630 --> 00:08:21,720 Entón, iso é como dicir 1 veces 3. 184 00:08:21,720 --> 00:08:24,290 >> E se eu engadir isto en conxunto, isto, por suposto, 185 00:08:24,290 --> 00:08:27,470 é 100 máis o 10 máis 3. 186 00:08:27,470 --> 00:08:31,750 E oh, é por iso que eu recibín este maior noción de nivel de 123. 187 00:08:31,750 --> 00:08:37,220 É só matemática básica, en que estes símbolos teñen pesos a eles, se 188 00:08:37,220 --> 00:08:39,620 Vai, espazo reservado ou valores da columna. 189 00:08:39,620 --> 00:08:42,090 E xa que se multiplican todo a fóra, eu recibín este número. 190 00:08:42,090 --> 00:08:47,840 >> Entón, como moitos de vostedes saben falar binary-- 0 e 1's-- como un ordenador? 191 00:08:47,840 --> 00:08:50,410 OK, perfecto, ninguén, ou ningún de pensas que facer. 192 00:08:50,410 --> 00:08:52,550 Pero gustaríame afirmar que en realidade xa saben diso. 193 00:08:52,550 --> 00:08:55,330 Nós só necesitamos tipo de axustar o noso modelo mental algo. 194 00:08:55,330 --> 00:08:57,250 Pero o proceso é exactamente o mesmo. 195 00:08:57,250 --> 00:09:01,460 >> Déixeme deixar un presente alí enriba e en vez tirar isto para abaixo por un momento. 196 00:09:01,460 --> 00:09:05,060 No mundo dos ordenadores, temos só 0 e 1 .. 197 00:09:05,060 --> 00:09:07,240 E así a cousa que é cambiará é o que? 198 00:09:07,240 --> 00:09:10,920 Ben, o meu mundo humano, a sistema decimal, decembro significado 10, 199 00:09:10,920 --> 00:09:12,740 Teño cantos díxitos á miña disposición? 200 00:09:12,740 --> 00:09:15,270 201 00:09:15,270 --> 00:09:16,540 10, non? 202 00:09:16,540 --> 00:09:17,880 0 a 9, claro. 203 00:09:17,880 --> 00:09:21,210 >> E é por iso que temos a lugar 10 do lugar e os 100 da. 204 00:09:21,210 --> 00:09:22,380 Onde é que vén? 205 00:09:22,380 --> 00:09:24,430 Ben, isto é 10 elevado á potencia de 0. 206 00:09:24,430 --> 00:09:28,440 Este é 10 elevado á potencia de 1, 10 á potencia de 2, e así por diante. 207 00:09:28,440 --> 00:09:32,110 Simplemente continúa multiplicando as súas columnas 10, comezando con só 1 208 00:09:32,110 --> 00:09:33,700 en o máis á dereita aquí. 209 00:09:33,700 --> 00:09:35,490 >> Así, no mundo de ordenadores, se só 210 00:09:35,490 --> 00:09:39,600 significou bi binary-- 2-- ou 0 e 1., nós só 211 00:09:39,600 --> 00:09:42,420 realmente precisa cambiar a base do que a matemática. 212 00:09:42,420 --> 00:09:46,410 Polo tanto, noutras palabras, agora imos ten a columna 1 e as-- 213 00:09:46,410 --> 00:09:51,270 onde está ese going-- columna do 2, columna do 4, e quizais máis aló. 214 00:09:51,270 --> 00:09:52,250 Por que é iso? 215 00:09:52,250 --> 00:09:55,650 Ben, 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 así por diante. 218 00:09:59,610 --> 00:10:04,910 >> Así, mentres que aquí, temos 1, 10 do, 100, de 1000, de 10.000, 100.000 da de, 1 219 00:10:04,910 --> 00:10:10,560 millóns, etc., aquí que 1, 2, 4, 8, 16, 32, 64. 220 00:10:10,560 --> 00:10:13,950 Simplemente continúa multiplicando por 2, no canto de manter multiplicando por 10. 221 00:10:13,950 --> 00:10:16,780 Entón, agora, se o obxectivo de man é representar 222 00:10:16,780 --> 00:10:20,240 números usando só 0 e 1s, imos considerar como chegar alí. 223 00:10:20,240 --> 00:10:26,540 >> Isto, naturalmente, é o patrón de 0 0 0, pero o número conceptualmente 224 00:10:26,540 --> 00:10:27,490 que iso representa? 225 00:10:27,490 --> 00:10:35,430 Ben, 4 veces 0, máis 2 veces 0, máis 1 veces 0, imos engadir os xuntos. 226 00:10:35,430 --> 00:10:40,030 4 0 veces, por suposto, 0, dous veces 0 é, por suposto, 0 máis 1 veces 0 227 00:10:40,030 --> 00:10:40,850 é, por suposto, 0. 228 00:10:40,850 --> 00:10:44,910 Así ah, iso representa o número que seres humanos saben 0. 229 00:10:44,910 --> 00:10:47,810 >> Ben, agora, imos moi Avanzar rapidamente rápido. 230 00:10:47,810 --> 00:10:53,600 Se eu non estou representando vez 0 0 0, pero imos facer 1 0 1, 231 00:10:53,600 --> 00:10:57,010 que podería ser como Lakisa, máis cedo, sería só pronuncialo lo 1 0 1. 232 00:10:57,010 --> 00:11:01,020 Pero agora, como é que imos levala ao maior nivelar o número de nós, seres humanos podería saber? 233 00:11:01,020 --> 00:11:04,220 Entón, cal é ese número? 234 00:11:04,220 --> 00:11:06,060 E 5, o número que coñecemos como 5. 235 00:11:06,060 --> 00:11:06,870 >> Ben, por que isto? 236 00:11:06,870 --> 00:11:09,620 moi ben, podemos tipo de atravesa-la metodicamente 237 00:11:09,620 --> 00:11:14,880 4 veces 1, 2 veces 0, 1 veces 1. 238 00:11:14,880 --> 00:11:19,880 Engadir os xuntos, entón isto é 4 + 0 + 1. 239 00:11:19,880 --> 00:11:21,577 E iso é, en realidade, 5. 240 00:11:21,577 --> 00:11:24,660 Entón, está quedando un pouco entediante agora facendo a aritmética de novo e de novo. 241 00:11:24,660 --> 00:11:26,300 Pero o proceso é exactamente o mesmo. 242 00:11:26,300 --> 00:11:28,380 >> O único que ten cambiou o noso mundo 243 00:11:28,380 --> 00:11:32,740 é que as nosas columnas son 1, 2, 4, 8, 16, etc., en 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 iso é só porque o noso alfabeto ten encollido de 0 a 9 para só 0-1. 246 00:11:40,000 --> 00:11:50,851 >> Así como unha pequena proba aquí, como sería Representa o número 7 en binario? 247 00:11:50,851 --> 00:11:51,350 0? 248 00:11:51,350 --> 00:11:53,490 Ben, 0, quere dicir 0 0 0? 249 00:11:53,490 --> 00:11:58,140 250 00:11:58,140 --> 00:11:59,693 Dicilo de novo, Karina. 251 00:11:59,693 --> 00:12:03,010 252 00:12:03,010 --> 00:12:03,550 Perfecto. 253 00:12:03,550 --> 00:12:04,370 Por que é iso? 254 00:12:04,370 --> 00:12:08,530 É efectivamente 4 máis 2 máis 1. 255 00:12:08,530 --> 00:12:09,580 Boísimo. 256 00:12:09,580 --> 00:12:14,364 >> Como representamos algo 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, pero detrás. 259 00:12:20,690 --> 00:12:21,660 Entón, o que é iso? 260 00:12:21,660 --> 00:12:26,290 É 4 máis 1, de xeito que é 5 de novo. 261 00:12:26,290 --> 00:12:28,310 >> Entón what's-- Sinto moito, 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 sería 2, porque unha vez máis, mesmo se especie de non ir para fóra en ti, 264 00:12:34,762 --> 00:12:35,470 só facer a matemática. 265 00:12:35,470 --> 00:12:40,390 4 veces 0, 0, 2 veces 1 e 2, 1 veces 0? 0. 266 00:12:40,390 --> 00:12:42,830 Polo tanto, este é o número que coñecemos 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 Bo. 271 00:12:53,330 --> 00:12:56,130 Entón nós medio que precisa outro espazo reservado. 272 00:12:56,130 --> 00:12:59,570 Necesitamos 1 0 0 0. 273 00:12:59,570 --> 00:13:02,280 E iso é verdade da nosa especie do sistema decimal da vella escola. 274 00:13:02,280 --> 00:13:05,280 Como representan o número 1000? 275 00:13:05,280 --> 00:13:08,480 >> Ben, parecería ser tipo de nunha situación difícil, 276 00:13:08,480 --> 00:13:10,390 Se pedirlle para representar o número 1000, 277 00:13:10,390 --> 00:13:14,960 porque, mesmo se se dá como 9 Destes, 9 destes, 0 Destes, 278 00:13:14,960 --> 00:13:18,730 que é o maior número que ten, non chegou a alcanzar a 1.000. 279 00:13:18,730 --> 00:13:26,920 Entón, se 1000, só precisa doutro posición, de modo que pode facer 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ón, agora, imos mapear este tipo de discusión conceptual de volta ao hardware, 282 00:13:34,200 --> 00:13:37,470 onde unha vez máis, a entrada era só este pequeno cable de alimentación, electricidade 283 00:13:37,470 --> 00:13:39,300 entrando e saíndo. 284 00:13:39,300 --> 00:13:44,740 E así, por que ser mapeados dende aquí para alí, así, o que realmente necesitamos? 285 00:13:44,740 --> 00:13:49,460 Ben, pode pensar de estar dentro dun ordenador, unha morea de lámpadas, 286 00:13:49,460 --> 00:13:50,450 se quere. 287 00:13:50,450 --> 00:13:52,040 Están realmente chamados transistores. 288 00:13:52,040 --> 00:13:55,121 E transistores son só cambia que tanto pode ser activado ou desactivado. 289 00:13:55,121 --> 00:13:56,870 Así, pode pensar nun transistor que está 290 00:13:56,870 --> 00:14:00,730 está permitindo que a electricidade flúa e un transistor que está fóra como deixar 291 00:14:00,730 --> 00:14:02,170 electricidade a partir de fluír. 292 00:14:02,170 --> 00:14:04,130 E no canto de tomar sobre as luces aquí, 293 00:14:04,130 --> 00:14:06,450 por que non podo facer este tipo de novo estilo escola. 294 00:14:06,450 --> 00:14:11,360 Polo tanto, este pode ser un 1, unha lanterna estar en, só un pouco aínda. 295 00:14:11,360 --> 00:14:14,050 E iso pode ser un 0, e agora está fóra. 296 00:14:14,050 --> 00:14:18,277 >> Entón, usando este dispositivo físico, eu poden agora representar o sistema binario. 297 00:14:18,277 --> 00:14:19,235 Eu só teño dous estados. 298 00:14:19,235 --> 00:14:21,660 Non importa o que color que é ou o que é. 299 00:14:21,660 --> 00:14:25,920 Todo o que importa é que eu teño un estado en e outro estado desconectado. 300 00:14:25,920 --> 00:14:30,605 Entón, usando o meu teléfono aquí, como fago representan o número que coñecemos 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 estou representando agora? 303 00:14:38,550 --> 00:14:39,810 0, porque o dispositivo está apagado. 304 00:14:39,810 --> 00:14:41,560 >> E se eu fai iso? 305 00:14:41,560 --> 00:14:43,583 E agora, como fago representan o número 2? 306 00:14:43,583 --> 00:14:46,380 307 00:14:46,380 --> 00:14:50,930 Me pode prestar o seu teléfono aquí, como fixemos onte? 308 00:14:50,930 --> 00:14:58,490 Entón imos ver, entón se eu queira representar o número 2, que é o número 2? 309 00:14:58,490 --> 00:14:59,050 Non. 310 00:14:59,050 --> 00:15:02,250 Número son eu accidentalmente representando aquí? 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ón, cal é o que quero para desactivar? 313 00:15:05,008 --> 00:15:09,634 O teléfono negro ou- ben, se they're-- teléfono negro ou o teléfono branco? 314 00:15:09,634 --> 00:15:10,300 O teléfono branco. 315 00:15:10,300 --> 00:15:17,020 Entón, se eu desactivar isto e nós aliñar-lo aquí, temos un 1 316 00:15:17,020 --> 00:15:19,487 no lugar de 2 e un 0 no lugar o 1 de. 317 00:15:19,487 --> 00:15:21,195 E por iso estou agora representando o número 2. 318 00:15:21,195 --> 00:15:24,680 E, por suposto, sería o número 3, porque agora ambas estas luces 319 00:15:24,680 --> 00:15:25,350 están ligados. 320 00:15:25,350 --> 00:15:27,480 >> E eu vou deixar por aquí, pero é lóxico 321 00:15:27,480 --> 00:15:31,100 se eu queira representar o o número 4 ou 8 ou superior, 322 00:15:31,100 --> 00:15:32,529 Vou ter máis teléfonos. 323 00:15:32,529 --> 00:15:33,820 Pero iso é todo o que está pasando. 324 00:15:33,820 --> 00:15:37,800 Entón, se xa escoitou falar que dentro um-- agradecer ordenador você-- 325 00:15:37,800 --> 00:15:42,269 é millóns de transistores, que é só a millóns de pequenos conmutador pouco. 326 00:15:42,269 --> 00:15:44,310 E non son luz lámpadas que se ligan e desconectan, 327 00:15:44,310 --> 00:15:48,340 pero non quere permitir que a electricidade a fluír en algún lugar ou para-lo. 328 00:15:48,340 --> 00:15:52,140 E entón hai o dous Unidos-- activado ou desactivado, activado ou desactivado. 329 00:15:52,140 --> 00:15:55,730 >> Por iso, parece agora ter esa capacidade 330 00:15:55,730 --> 00:16:00,590 para representar este concepto que nós queremos hardware real. 331 00:16:00,590 --> 00:16:05,520 Pero todos temos agora é a capacidade para representar números que parece. 332 00:16:05,520 --> 00:16:08,580 Entón, como é que imos representar letras do alfabeto, os cales 333 00:16:08,580 --> 00:16:12,310 Parece que o próximo tipo de recurso que Quere engadir a un ordenador moderno 334 00:16:12,310 --> 00:16:14,280 xa que ten números? 335 00:16:14,280 --> 00:16:16,930 >> E, de feito, se pensar sobre TI, historicamente, ordenadores 336 00:16:16,930 --> 00:16:19,426 aparecen realmente para servir como calculadoras numericamente. 337 00:16:19,426 --> 00:16:21,300 Pero, por suposto, estes días, eles fan moito máis. 338 00:16:21,300 --> 00:16:23,799 Mesmo cando comezar, ten adoita ver unha ou máis palabras. 339 00:16:23,799 --> 00:16:27,420 Así como representar palabras, Se todo o que tes é, de novo, 340 00:16:27,420 --> 00:16:31,054 electricidade ao final do día, ou equivalentemente 0 e 1.? 341 00:16:31,054 --> 00:16:34,430 342 00:16:34,430 --> 00:16:35,690 >> Si. 343 00:16:35,690 --> 00:16:38,320 Si, quero dicir, nós medio que fixo iso onte dalgún xeito, 344 00:16:38,320 --> 00:16:40,200 en que, nalgún momento, Eu creo que eu arbitrariamente 345 00:16:40,200 --> 00:16:46,741 dixo que, se queremos representar o letra A, poderíamos só chamar aquilo de 1. 346 00:16:46,741 --> 00:16:49,990 Foi no contexto de cifrado, onde nós só precisaba dalgún tipo de código, 347 00:16:49,990 --> 00:16:51,160 algún tipo de cartografía. 348 00:16:51,160 --> 00:16:56,680 >> Así, se cadra a será representada como 1, e B será representada como 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ón a única excepción é que, se eu son indo para codificar letras nos meus correos electrónicos 351 00:17:07,430 --> 00:17:10,430 ou nas miñas mensaxes de texto como números, todos vostedes 352 00:17:10,430 --> 00:17:12,640 Ten que de acordo en usar o mesmo conxunto de convencións. 353 00:17:12,640 --> 00:17:14,619 E, de feito, o mundo fixo exactamente iso. 354 00:17:14,619 --> 00:17:18,040 >> Hai un sistema no mundo chamado ASCII, American Standard 355 00:17:18,040 --> 00:17:21,640 Código para intercambio de información, que é simplemente unha decisión algúns anos 356 00:17:21,640 --> 00:17:25,720 atrás, que os seres humanos fixo que decidiu que un será igual, non 357 00:17:25,720 --> 00:17:32,260 1, 2, e 26, e por iso é un forth-- pouco diferente-- pero 65, 66, 67. 358 00:17:32,260 --> 00:17:34,010 E eu vou tirar unha gráfico en só un momento. 359 00:17:34,010 --> 00:17:34,580 Pero é arbitraria. 360 00:17:34,580 --> 00:17:36,329 Pero iso non importa que é arbitraria. 361 00:17:36,329 --> 00:17:38,620 O mundo ten só ser consistente. 362 00:17:38,620 --> 00:17:40,540 >> Agora, máis recentemente, hai algo máis extravagante 363 00:17:40,540 --> 00:17:45,430 chamado Unicode, xa que o tipo do mundo que conta, logo de inventar ordenadores, 364 00:17:45,430 --> 00:17:50,977 que hai máis do que ben 256 símbolos no mundo 365 00:17:50,977 --> 00:17:53,560 que pode querer representar, especialmente cando introducir 366 00:17:53,560 --> 00:17:58,420 idiomas asiáticos e outras simboloxías que precisan de máis expresividade do que 367 00:17:58,420 --> 00:18:02,150 pode caber na versión máis antiga do este código, que foi chamado ASCII. 368 00:18:02,150 --> 00:18:05,250 Entón Unicode realmente permite use máis 0 e 2. 369 00:18:05,250 --> 00:18:08,830 En particular, queda escoitando o bytes palabra na sociedade e mesmo só 370 00:18:08,830 --> 00:18:09,400 onte. 371 00:18:09,400 --> 00:18:12,040 E un byte é o que de novo? 372 00:18:12,040 --> 00:18:14,840 >> ¿Que é un byte? 373 00:18:14,840 --> 00:18:15,700 É só 8 bits. 374 00:18:15,700 --> 00:18:17,150 E o que iso realmente significa? 375 00:18:17,150 --> 00:18:22,400 Ben, iso significa que, en principio, cando estabamos falando de par e eu estaba a usar 376 00:18:22,400 --> 00:18:28,010 arbitrariamente tres bits cando estabamos falando binary-- lugar o 1 de, 377 00:18:28,010 --> 00:18:33,600 2 do lugar, ea 4 de lugar-- ben, un byte só significa que está falando 378 00:18:33,600 --> 00:18:38,730 non en unidades de tres mais catro, 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 >> Noutras palabras, un bit non é todo tan útil unha unidade de medida, 381 00:18:50,010 --> 00:18:53,132 porque é só como un minúsculo peza de información, activado ou desactivado. 382 00:18:53,132 --> 00:18:54,840 Entón, hai uns anos, o mundo só decidiu 383 00:18:54,840 --> 00:18:59,060 É un pouco máis cómodo falar en termos de bytes, oito cousas á vez. 384 00:18:59,060 --> 00:19:01,670 E así así naceu a noción dun byte. 385 00:19:01,670 --> 00:19:03,640 E así temos oito bits aquí. 386 00:19:03,640 --> 00:19:06,810 >> E verifícase se, tamén, para semellante razóns, o mundo decidiu anos 387 00:19:06,810 --> 00:19:12,439 atrás que para representar carta ASCII, está indo a usar unidades de 8 bits. 388 00:19:12,439 --> 00:19:14,230 Así, mesmo se non fai precisa que moitos, está 389 00:19:14,230 --> 00:19:18,130 sempre vai utilizar 8 bits para representan unha letra do alfabeto. 390 00:19:18,130 --> 00:19:20,950 E iso é conveniente, porque entón se 391 00:19:20,950 --> 00:19:28,720 recibe unha mensaxe que ten un 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, polo que se recibe 16 bocados, o mundo pode só 393 00:19:33,320 --> 00:19:37,460 supoñer que o primeiro 8 é unha carta eo segundo 8 son outra carta. 394 00:19:37,460 --> 00:19:39,240 >> Non importa cantos existen. 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 cando estamos interpretando estes bits. 397 00:19:42,950 --> 00:19:44,377 E este foi só aleatoria. 398 00:19:44,377 --> 00:19:47,210 Isto significa algo, pero eu non fixen realmente pensar sobre o que quere dicir. 399 00:19:47,210 --> 00:19:49,620 >> Polo tanto, é unha pequena mentira branca. 400 00:19:49,620 --> 00:19:51,990 Orixinalmente, ASCII realmente utilizado soamente 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 Pero o punto é, en definitiva, o mesmo. 403 00:19:56,290 --> 00:19:58,850 O mundo en xeral estándar en 8 bits. 404 00:19:58,850 --> 00:20:04,290 >> Polo tanto, este parece ser un pouco limitante porque eu só podo 405 00:20:04,290 --> 00:20:07,970 representan o capital A, capital de B a Z. capitais 406 00:20:07,970 --> 00:20:10,940 Pero, en realidade non, se eu for a-- hai unha morea de recursos 407 00:20:10,940 --> 00:20:13,695 en liña, por exemplo, asciitable.com, este 408 00:20:13,695 --> 00:20:16,310 vai ser un pouco esmagadora en primeiro lugar. 409 00:20:16,310 --> 00:20:18,910 Pero vou salientar o que é importante aquí. 410 00:20:18,910 --> 00:20:24,090 >> Isto só acontece de ser-- e eu vou walk-- veremos, se eu pasar por riba aquí. 411 00:20:24,090 --> 00:20:27,990 Aquí está, no decimal columna, o número 65. 412 00:20:27,990 --> 00:20:32,201 E na carta columna da dereita carácter, Chr, é a letra A. 413 00:20:32,201 --> 00:20:34,450 E pode ignorar, polo momento, todo no medio. 414 00:20:34,450 --> 00:20:36,769 Este é hexadecimal, octal, e un código HTML. 415 00:20:36,769 --> 00:20:39,810 Para este sitio está só tentando xogar unha morea de información para ti dunha vez. 416 00:20:39,810 --> 00:20:42,970 Pero todo o que nos interesa é o decimal columna ea columna de caracteres. 417 00:20:42,970 --> 00:20:46,190 >> Entón, por esta lóxica, o que é o número que o mundo 418 00:20:46,190 --> 00:20:50,510 decidiu representa unha minúscula un? 419 00:20:50,510 --> 00:20:52,230 Si, 97. 420 00:20:52,230 --> 00:20:55,850 E só para confundir potencialmente algo, 421 00:20:55,850 --> 00:21:03,715 o número ten o mundo decidiu representaría o número 1? 422 00:21:03,715 --> 00:21:06,900 423 00:21:06,900 --> 00:21:10,910 Seguro, porque nós-- 49, parece aquí, abaixo na parte inferior esquerda. 424 00:21:10,910 --> 00:21:12,320 >> Agora, o que quero dicir con isto? 425 00:21:12,320 --> 00:21:14,830 Así, verifícase que en sistemas de ordenador, 426 00:21:14,830 --> 00:21:16,840 hai xeralmente un diferenza fundamental 427 00:21:16,840 --> 00:21:19,920 entre un número e un personaxe. 428 00:21:19,920 --> 00:21:22,330 Un número é o que aprendeu crecendo cando 429 00:21:22,330 --> 00:21:23,830 nós super mozo na escola. 430 00:21:23,830 --> 00:21:25,110 É cousas que contan con. 431 00:21:25,110 --> 00:21:30,220 Pero un personaxe é só unha forma, un glifo, por así dicir, na pantalla. 432 00:21:30,220 --> 00:21:36,200 >> Agora, nós, humanos, especie de ver algo que se parece con isto. 433 00:21:36,200 --> 00:21:39,060 E nós dicimos, oh, que é o número 2. 434 00:21:39,060 --> 00:21:44,999 Pero non, iso é só un símbolo que parece como o que sabemos como o número 2. 435 00:21:44,999 --> 00:21:46,790 E así hai esa distinción fundamental 436 00:21:46,790 --> 00:21:50,340 entre os números reais e personaxes. 437 00:21:50,340 --> 00:21:52,130 Este é un número. 438 00:21:52,130 --> 00:21:54,420 Pero, xeralmente, na contexto dun ordenador, 439 00:21:54,420 --> 00:21:56,809 Se en vez ver algo así quoted-- 440 00:21:56,809 --> 00:21:58,600 e non sempre Ten que ver citado, 441 00:21:58,600 --> 00:22:01,474 pero por unha cuestión de discussion-- se ve comiñas en torno do número, 442 00:22:01,474 --> 00:22:02,730 este é agora un personaxe. 443 00:22:02,730 --> 00:22:06,330 Entón ese número 2 por baixo a capa interior dun ordenador 444 00:22:06,330 --> 00:22:12,220 sería representada cun estándar de bits que representa o número 445 00:22:12,220 --> 00:22:14,850 50 segundo o gráfico en liña. 446 00:22:14,850 --> 00:22:18,300 >> Con todo, se un ordenador só ve iso, esta 447 00:22:18,300 --> 00:22:24,580 sería representada co patrón de bits 0 0 0 0 0 0 1 0. 448 00:22:24,580 --> 00:22:29,595 Tendo en conta que, este personaxe sería en realidade, ser representado as-- e agora, 449 00:22:29,595 --> 00:22:34,710 Teño que pensar un pouco harder-- de xeito que este personaxe ía ser representado con 0 450 00:22:34,710 --> 00:22:39,080 0 1-- o que eu teño aquí? 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 fixen iso? 453 00:22:45,480 --> 00:22:49,580 Ben, este é o número 50, se multiplicala lo usando estas columnas, 454 00:22:49,580 --> 00:22:53,530 este é o número 2, e así é por iso que hai esa dicotomía. 455 00:22:53,530 --> 00:22:55,850 >> E este é só un provocación agora a recursos 456 00:22:55,850 --> 00:22:59,710 que hai en linguaxes de programación que imos tocar pronto máis tarde hoxe. 457 00:22:59,710 --> 00:23:01,950 En linguaxes de programación, ten, xeralmente, 458 00:23:01,950 --> 00:23:04,495 pero non sempre, as cousas chamar diferentes tipos de datos. 459 00:23:04,495 --> 00:23:06,870 Noutras palabras, un programmer-- cando el ou ela está escribindo, 460 00:23:06,870 --> 00:23:11,150 programador comeza a decidir o que formato para almacenar os seus datos. 461 00:23:11,150 --> 00:23:14,120 Pode almacenar datos como números brutos, como o número 2. 462 00:23:14,120 --> 00:23:17,940 Ou pode almacena-los como cordas, ou secuencias de caracteres 463 00:23:17,940 --> 00:23:21,550 que, en xeral, expresa con citas na súa linguaxe de programación. 464 00:23:21,550 --> 00:23:25,230 >> Pode que as cousas called-- Vou simplificar e chamalos 465 00:23:25,230 --> 00:23:28,870 Números de real, de xeito que os números non son números enteiros, como o número 2, 466 00:23:28,870 --> 00:23:31,310 pero os números como 4,56. 467 00:23:31,310 --> 00:23:33,490 Entón números reais tamén pode teñen puntos decimais, 468 00:23:33,490 --> 00:23:36,340 de xeito que é unha persoa diferente fundamentais peza de datos nun computador. 469 00:23:36,340 --> 00:23:41,920 E entón pode ata ter outros tipos de datos aínda. 470 00:23:41,920 --> 00:23:45,810 Entón, iso é só un teaser realmente de a máis simple das decisións de deseño 471 00:23:45,810 --> 00:23:50,960 que un programador pode fan debaixo do capó. 472 00:23:50,960 --> 00:23:52,925 >> Entón dúbidas só aínda? 473 00:23:52,925 --> 00:23:57,320 474 00:23:57,320 --> 00:23:59,860 Entón, imos tratar de facer iso un pouco máis real. 475 00:23:59,860 --> 00:24:02,120 Este equipo non é moito máis en uso. 476 00:24:02,120 --> 00:24:07,420 Pero a maioría de todos nesta sala probablemente medrei con e aínda usa discos duros 477 00:24:07,420 --> 00:24:08,010 dalgún modo. 478 00:24:08,010 --> 00:24:10,100 >> Aínda que a maioría dos nosos portátiles non 479 00:24:10,100 --> 00:24:15,900 teñen dispositivos que operan como este, en vez portátiles hoxe en xeral 480 00:24:15,900 --> 00:24:18,590 teñen unidades de estado sólido sen partes móbiles. 481 00:24:18,590 --> 00:24:22,840 E que tende a ser máis caros, sentímolo, pero un pouco máis rápido 482 00:24:22,840 --> 00:24:27,230 e um-- ben, moitas veces, moito máis rápido, que é unha das razóns. 483 00:24:27,230 --> 00:24:28,980 E tamén non fai xera tanto calor. 484 00:24:28,980 --> 00:24:31,680 Pode ser menor, polo que é xeralmente un líquido positivo. 485 00:24:31,680 --> 00:24:35,030 >> Pero iso permítenos mapear unha pouco máis concretamente o que 486 00:24:35,030 --> 00:24:38,460 estamos a falar sobre a 0 e nivel 1 da empresa a un dispositivo físico. 487 00:24:38,460 --> 00:24:40,810 É unha cousa para min falar preto de 0 e 1 en termos de 488 00:24:40,810 --> 00:24:43,990 do meu teléfono ou abstractamente en termos de interruptores sendo conexionado e apagado. 489 00:24:43,990 --> 00:24:45,340 Pero o que acontece cos discos duros? 490 00:24:45,340 --> 00:24:48,495 Nos seus portátiles, se ten un maior un, ou no seu ordenador de escritorio, 491 00:24:48,495 --> 00:24:51,200 ou seguro en servidores hoxe, onde ten 492 00:24:51,200 --> 00:24:53,070 discos duros que teñen un terabyte de espazo, 493 00:24:53,070 --> 00:24:55,560 4 terabytes de espazo, ben o que significa isto? 494 00:24:55,560 --> 00:24:59,560 >> Un disco duro de 1 terabyte de medios espaciais 495 00:24:59,560 --> 00:25:03,890 hai 1 billón de bytes dentro del de algunha maneira, 496 00:25:03,890 --> 00:25:10,450 ou equivalentemente 8 billóns de bits dentro. 497 00:25:10,450 --> 00:25:16,240 1 terabyte sería 8 terabits ou 1 billón de bits, o que 498 00:25:16,240 --> 00:25:19,330 significa que se ten un disco duro, ten de algunha maneira 499 00:25:19,330 --> 00:25:22,400 ou outros de un billón de 0 do e 1 de dentro del. 500 00:25:22,400 --> 00:25:25,360 E se nós simplemente dar un ollo a un imaxe arbitraria dun disco duro 501 00:25:25,360 --> 00:25:30,110 representante, iso é o que un disco unidade pode tipicamente ollar como no interior. 502 00:25:30,110 --> 00:25:32,600 >> É, tamén, é tipo como un lector de fonógrafo vello 503 00:25:32,600 --> 00:25:35,350 pero normalmente con varios rexistros dentro, polo tanto, 504 00:25:35,350 --> 00:25:38,270 para speak-- múltiple sopandas, como son chamados, 505 00:25:38,270 --> 00:25:42,259 discos circulares de metal, e a continuación, unha cabeza de lectura pouco, 506 00:25:42,259 --> 00:25:43,550 moi parecido un xogador gravado ancián. 507 00:25:43,550 --> 00:25:46,589 E que a cabeza de lectura se move cara atrás e adiante e de algunha maneira le os bits. 508 00:25:46,589 --> 00:25:49,380 E o que é sobre estas sopandas, mesmo aínda que, humanos, non pode velos, 509 00:25:49,380 --> 00:25:52,757 quere en realidade é, neste marco, hai minúsculas partículas magnéticas pequenas. 510 00:25:52,757 --> 00:25:55,090 E mesmo se ten tempo esquecido como a electricidade funciona, 511 00:25:55,090 --> 00:25:57,550 unha partícula magnética que cobra en xeral 512 00:25:57,550 --> 00:26:00,570 ten unha extremidade norte e un sur end-- tan norte e sur. 513 00:26:00,570 --> 00:26:03,000 E así o mundo só decidiu hai algún tempo atrás 514 00:26:03,000 --> 00:26:06,570 que, se un protocolo esencialmente magnética está aliñado como este, norte-sur, 515 00:26:06,570 --> 00:26:07,610 imos chamar que unha 1. 516 00:26:07,610 --> 00:26:10,470 Se é en vez sur-norte, imos chamar iso dunha 0. 517 00:26:10,470 --> 00:26:13,350 E por iso, se ten polo súa disposición dun billón 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 inxenuidade hardware Para inverter os que a rodean 520 00:26:18,740 --> 00:26:24,450 como ve fit-- se quere representan un grupo enteiro de 0 do, vostede 521 00:26:24,450 --> 00:26:28,120 só precisa 8 partículas magnéticas todos aliñados así. 522 00:26:28,120 --> 00:26:30,330 E se queres para representar oito 1s, só 523 00:26:30,330 --> 00:26:33,170 Debe 8 partículas magnéticas aliñadas volta atrás para facer así. 524 00:26:33,170 --> 00:26:35,515 >> O que quero dicir con partículas magnéticas? 525 00:26:35,515 --> 00:26:38,390 Francamente, todos estes anos máis tarde, o que aínda me vén á mente 526 00:26:38,390 --> 00:26:42,139 é este cara, se Medrei con esa cousa. 527 00:26:42,139 --> 00:26:43,930 Este é un little-- para aqueles unfamiliar-- un 528 00:26:43,930 --> 00:26:47,810 brinquedinho infancia que ten este home calvo aquí 529 00:26:47,810 --> 00:26:51,690 que ten todos eses pequeno negro partículas magnéticas que veñen con el. 530 00:26:51,690 --> 00:26:53,930 E usar esta vara vermello, que é só un imán, 531 00:26:53,930 --> 00:26:58,460 pode clasificar de darlle un bigote ou cellas ou o pelo ou algo sobre el. 532 00:26:58,460 --> 00:27:00,710 Así, en realidade, aumentar en, por exemplo, esta 533 00:27:00,710 --> 00:27:02,950 é o tipo de xogo que pode xogar con wooly Willy. 534 00:27:02,950 --> 00:27:06,570 >> E iso é só para dicir que estes son partículas magnéticas moito maiores 535 00:27:06,570 --> 00:27:09,890 que son realmente en un disco duro, e moito menos partículas magnéticas. 536 00:27:09,890 --> 00:27:11,640 Pero imos realmente ver logo se ten 537 00:27:11,640 --> 00:27:14,720 minúsculas partículas magnéticas nunha disco duro, como pode realmente 538 00:27:14,720 --> 00:27:19,090 Utiliza-los para representar datos. 539 00:27:19,090 --> 00:27:20,070 >> [Reprodución de vídeo] 540 00:27:20,070 --> 00:27:24,190 >> -A Unidade de disco duro é onde o seu PC tendas maioría dos seus datos permanentes. 541 00:27:24,190 --> 00:27:27,170 Para iso, os datos viaxa ao longo da RAM 542 00:27:27,170 --> 00:27:31,720 con sinais de software que contan a disco duro como almacenar eses datos. 543 00:27:31,720 --> 00:27:36,570 Os circuítos do disco duro traducir os sinais en flutuacións de voltaxe. 544 00:27:36,570 --> 00:27:40,880 Estes, á súa vez, controla a unidade de disco movendo parts-- algúns dos poucos en movemento 545 00:27:40,880 --> 00:27:43,440 partes deixar no ordenador moderno. 546 00:27:43,440 --> 00:27:47,650 >> Algúns dos sinais de control dun motor, que xira pratos revestidos por metal. 547 00:27:47,650 --> 00:27:50,980 Os seus datos son, en realidade, almacenado nestas sopandas. 548 00:27:50,980 --> 00:27:56,250 Outros signos de mover as cabezas de lectura / escritura para ler ou gravar datos sobre os pratos. 549 00:27:56,250 --> 00:28:00,100 Esta máquina é tan preciso que un cabelo humano non podería mesmo 550 00:28:00,100 --> 00:28:02,800 pasar entre as cabezas e xirando sopandas. 551 00:28:02,800 --> 00:28:04,887 Con todo, todo funciona en velocidades incribles. 552 00:28:04,887 --> 00:28:05,470 [FIN DE REPRODUCIÓN] 553 00:28:05,470 --> 00:28:06,780 E podes ver na extremo da cola do vídeo, 554 00:28:06,780 --> 00:28:08,340 xeralmente hai múltiples sopandas. 555 00:28:08,340 --> 00:28:10,250 E así que a cabeza de lectura Non é só a lectura do cume. 556 00:28:10,250 --> 00:28:12,458 É tipo como de tres ou ou catro cabezas de lectura 557 00:28:12,458 --> 00:28:14,920 este movemento como este, a lectura de datos ao mesmo tempo. 558 00:28:14,920 --> 00:28:17,407 >> Polo tanto, hai unha morea de complexidade e tipo de sincronismo 559 00:28:17,407 --> 00:28:18,740 que está implicado nun disco duro. 560 00:28:18,740 --> 00:28:21,920 E a cousa está xirando moi danado rápido, entón non hai moita complexidade. 561 00:28:21,920 --> 00:28:25,220 Pero imos ampliar un pouco máis profundo e vexa onde están esas partículas magnéticas 562 00:28:25,220 --> 00:28:27,370 e como é que está quedando para eles. 563 00:28:27,370 --> 00:28:28,750 >> [Reprodución de vídeo] 564 00:28:28,750 --> 00:28:31,830 >> ollar -Imos ao que só vin en cámara lenta. 565 00:28:31,830 --> 00:28:35,230 Cando un breve pulso de electricidade é enviado a cabeza de lectura / escritura, 566 00:28:35,230 --> 00:28:39,000 el vira nunha pequena electromagnética para unha fracción dun segundo. 567 00:28:39,000 --> 00:28:41,390 O imán crea un campo, que cambia 568 00:28:41,390 --> 00:28:44,600 a polaridade dun pequeno, pequenas porción das partículas de metal 569 00:28:44,600 --> 00:28:46,960 que revestir a superficie de cada prato. 570 00:28:46,960 --> 00:28:50,020 Unha serie estándar de estes minúsculos cargadas de áreas no disco 571 00:28:50,020 --> 00:28:54,590 representa un único bit de datos no sistema numérico binario usado polos ordenadores. 572 00:28:54,590 --> 00:28:57,510 >> Agora, se a corrente é enviada unha camiño a través da cabeza de lectura / escritura, 573 00:28:57,510 --> 00:28:59,899 a área sexa polarizada nunha dirección. 574 00:28:59,899 --> 00:29:01,940 Se a cadea é enviado no sentido oposto, 575 00:29:01,940 --> 00:29:04,020 a polarización é invertida. 576 00:29:04,020 --> 00:29:06,440 Como obter datos fóra do disco duro? 577 00:29:06,440 --> 00:29:08,190 Basta inverter o proceso. 578 00:29:08,190 --> 00:29:10,440 Por iso é que as partículas no disco que comeza a cadea 579 00:29:10,440 --> 00:29:12,260 na cabeza de lectura / escritura en movemento. 580 00:29:12,260 --> 00:29:14,580 Xuntos millóns de eses segmentos magnetizadas, 581 00:29:14,580 --> 00:29:16,220 e ten un arquivo. 582 00:29:16,220 --> 00:29:21,030 >> Agora, as pezas dun único arquivo pode ser espallados por todo sopandas dunha unidade, 583 00:29:21,030 --> 00:29:24,060 como o tipo de desorde de papeis na súa mesa. 584 00:29:24,060 --> 00:29:27,590 Así, un arquivo extra especial mantén o control de onde está todo. 585 00:29:27,590 --> 00:29:30,440 Non quere ter algo así? 586 00:29:30,440 --> 00:29:31,290 >> [FIN DE REPRODUCIÓN] 587 00:29:31,290 --> 00:29:36,260 >> Así sendo aludido alí, quizais, é este tema de onte de eliminación. 588 00:29:36,260 --> 00:29:38,380 Cando exclúe unha arquivo, onte dixemos 589 00:29:38,380 --> 00:29:41,020 que un ordenador realmente fai o que, cando arrastrar algo 590 00:29:41,020 --> 00:29:44,110 ao lixo 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 Pero a 0 e 1s, as partículas magnéticas 593 00:29:47,540 --> 00:29:50,640 que se parecen con vermello e azul cousas aquí, ou o meu brazo aquí, 594 00:29:50,640 --> 00:29:52,350 aínda están alí no disco duro. 595 00:29:52,350 --> 00:29:56,090 >> E así hai software-- Norton Utilities e Yesteryear 596 00:29:56,090 --> 00:29:58,159 e outra máis moderna software-- que só 597 00:29:58,159 --> 00:30:01,200 fará a exploración de un disco duro enteiro buscando a quen 0 e 1. porque 598 00:30:01,200 --> 00:30:06,890 Acontece que a maioría formatos-- arquivo documentos de Word, ficheiros de Excel, imaxes, 599 00:30:06,890 --> 00:30:10,380 video files-- todos teñen certa patróns que son comúns entre eles. 600 00:30:10,380 --> 00:30:12,550 Cada arquivo de vídeo pode ser un vídeo diferente, 601 00:30:12,550 --> 00:30:14,870 pero o primeiro de varios os bits son xeralmente o mesmo. 602 00:30:14,870 --> 00:30:16,790 Ou os últimos anacos son xeralmente o mesmo. 603 00:30:16,790 --> 00:30:19,910 >> E así, con alta probabilidade, pode ollar para estes patróns. 604 00:30:19,910 --> 00:30:23,700 E aínda que o arquivo foi esquecido, pode dicir con gran probabilidade, 605 00:30:23,700 --> 00:30:28,460 pero isto parece un documento de Word, permite recuperala lo e un-esquece-lo, 606 00:30:28,460 --> 00:30:28,990 se quere. 607 00:30:28,990 --> 00:30:32,330 E é así que pode recuperar datos que está ou se accidentalmente 608 00:30:32,330 --> 00:30:36,560 suprimida ou eliminada ou deliberadamente suprimido, a calquera título. 609 00:30:36,560 --> 00:30:42,530 >> Por outra banda, exclusión segura fai o que no contexto dun cadro como este? 610 00:30:42,530 --> 00:30:44,059 Exactamente, fai todo aleatorio. 611 00:30:44,059 --> 00:30:46,350 Por iso, tipo de move algúns dos Los abaixo, ata algunhas delas, 612 00:30:46,350 --> 00:30:49,433 deixa algúns deles inalterada e xeralmente fai ruído aleatorio fóra del, 613 00:30:49,433 --> 00:30:52,960 ou quizais só fai todo deles 0 de ou todos eles 1s. 614 00:30:52,960 --> 00:30:56,350 E que tamén pode xeralmente esfregue seus datos de distancia. 615 00:30:56,350 --> 00:31:00,160 >> Entón, imos volver agora á cuestión de pensamento computacional, en que 616 00:31:00,160 --> 00:31:03,270 que as entradas de fórmula. 617 00:31:03,270 --> 00:31:06,390 E algoritmos dá vostede emite en última instancia. 618 00:31:06,390 --> 00:31:09,270 Imos concentrar agora nas entradas e saídas, porque agora, eu 619 00:31:09,270 --> 00:31:12,159 reivindicación temos unha forma de representando entradas e saídas. 620 00:31:12,159 --> 00:31:13,450 Nós só estamos indo a usar binario. 621 00:31:13,450 --> 00:31:15,910 >> E non importa o que nós querer representar hoxe, 622 00:31:15,910 --> 00:31:20,230 se é un número ou unha letra ou miles destes nun libro de teléfono 623 00:31:20,230 --> 00:31:23,210 ou imaxes ou películas, a finais do día, é todo 0 e 1s. 624 00:31:23,210 --> 00:31:26,640 E eu afirmo que, aínda que este é un mundo super sinxelo con só 0 do 625 00:31:26,640 --> 00:31:28,240 e 1 de, podemos construír connosco superior. 626 00:31:28,240 --> 00:31:32,210 E vimos un exemplo de que, con letras de momento. 627 00:31:32,210 --> 00:31:35,615 >> Entón, imos concentrar agora nesta ingrediente medio, un algoritmo. 628 00:31:35,615 --> 00:31:38,190 E imos voltar a este exemplo de Mike Smith. 629 00:31:38,190 --> 00:31:41,689 Polo tanto, neste libro de teléfono, o que si é certo, Non usamos moito máis, 630 00:31:41,689 --> 00:31:42,980 hai un problema a ser resolto. 631 00:31:42,980 --> 00:31:45,040 Queremos atopar alguén como Mike Smith. 632 00:31:45,040 --> 00:31:47,520 >> E o que eu podería facer para atopar Mike? 633 00:31:47,520 --> 00:31:51,197 Ben, eu podería simplemente abrir este libro, comezar na primeira páxina, 634 00:31:51,197 --> 00:31:52,780 e entender, oh, eu estou na sección A. 635 00:31:52,780 --> 00:31:53,510 Mike non está alí. 636 00:31:53,510 --> 00:31:55,510 Necesito da sección S Smith. 637 00:31:55,510 --> 00:31:58,192 Entón, só tes que seguir xirando unha páxina de cada vez. 638 00:31:58,192 --> 00:32:00,900 Déixeme finxir que isto é todo páxinas brancas e páxinas amarelas, non 639 00:32:00,900 --> 00:32:02,910 porque non estamos indo para atopar Mike nas páxinas amarelas de calquera maneira. 640 00:32:02,910 --> 00:32:04,034 Pero estou nas páxinas brancas. 641 00:32:04,034 --> 00:32:05,340 E agora, estou no apartado B. 642 00:32:05,340 --> 00:32:06,810 Eu aínda non o atopou. 643 00:32:06,810 --> 00:32:08,890 Entón eu sigo virando unha páxina de cada vez. 644 00:32:08,890 --> 00:32:10,130 >> Este é un algoritmo. 645 00:32:10,130 --> 00:32:12,440 É un conxunto de instrucións para resolver problemas. 646 00:32:12,440 --> 00:32:16,480 Noutras palabras, ollar páxina, se Mike non é sobre el, 647 00:32:16,480 --> 00:32:20,020 pasar páxina, e repite de novo e de novo e de novo, 648 00:32:20,020 --> 00:32:21,760 Ideal mirando para abaixo mentres está facendo iso. 649 00:32:21,760 --> 00:32:24,120 Entón é este algoritmo, Neste proceso, correcto? 650 00:32:24,120 --> 00:32:27,400 651 00:32:27,400 --> 00:32:28,830 >> Sentímolo. 652 00:32:28,830 --> 00:32:30,056 Non, eu oín algúns nos. 653 00:32:30,056 --> 00:32:33,250 654 00:32:33,250 --> 00:32:36,125 OK, pero é-- si, certamente é tedioso. 655 00:32:36,125 --> 00:32:39,000 Como, estaremos aquí todo o día se eu manter a procura de Mike a esta velocidade. 656 00:32:39,000 --> 00:32:41,430 Pero déixeme din que é correcto. 657 00:32:41,430 --> 00:32:43,850 É estúpido, pero é correcto. 658 00:32:43,850 --> 00:32:47,209 >> Ao final do día, sempre que pode tomar, eu vou atopar Mike se está alí 659 00:32:47,209 --> 00:32:48,250 e eu estou prestando atención. 660 00:32:48,250 --> 00:32:50,230 E finalmente chegar a súa páxina. 661 00:32:50,230 --> 00:32:52,890 E se eu ficar lonxe, se I chegar á sección T, 662 00:32:52,890 --> 00:32:55,900 entón podo lixeiramente optimizar e só dicir, hm, todo feito. 663 00:32:55,900 --> 00:32:57,980 Eu nin sequera precisa perder tempo de ir ao Z de. 664 00:32:57,980 --> 00:33:00,010 Pero este é un moi visión lineal, se 665 00:33:00,010 --> 00:33:03,370 vai, moi especie de esquerda a dereita visión, unha liña recta. 666 00:33:03,370 --> 00:33:05,560 E a súa correcta, pero lento. 667 00:33:05,560 --> 00:33:09,250 >> Entón, eu me lembro da escola de clase, tipo dunha optimización dun alumno da primeira serie, 668 00:33:09,250 --> 00:33:13,756 onde eu aprendín como contar non por outras pero por twos-- así 2, 4, 6. 669 00:33:13,756 --> 00:33:15,630 É A, moito máis difícil de facer, pero, en teoría, é 670 00:33:15,630 --> 00:33:20,149 faster-- 8, 10, 12, 14, e así por diante. 671 00:33:20,149 --> 00:33:21,190 Como sobre este algoritmo? 672 00:33:21,190 --> 00:33:23,150 É máis eficiente? 673 00:33:23,150 --> 00:33:23,880 É máis rápido? 674 00:33:23,880 --> 00:33:25,365 >> Audiencia: É eficiente. 675 00:33:25,365 --> 00:33:28,560 >> DAVID Malan: Si, por iso é que é def-- literalmente dúas veces máis rápido, asumindo I 676 00:33:28,560 --> 00:33:30,170 non tropezar cos dedos. 677 00:33:30,170 --> 00:33:32,294 É dúas veces máis rápido, porque Estou virando a través de dous 678 00:33:32,294 --> 00:33:36,560 páxinas á vez no canto de un, pero é potencialmente correcta, por que? 679 00:33:36,560 --> 00:33:37,852 >> Audiencia: Está ignorando algúns. 680 00:33:37,852 --> 00:33:41,185 DAVID Malan: Certo, e se Mike pasa sendo sandwiched-- quizais cando eu son máis tarde 681 00:33:41,185 --> 00:33:44,370 no libro de teléfono, Mike pasa a ser ensanduichada entre estas dúas páxinas, 682 00:33:44,370 --> 00:33:46,720 e eu só cega ignore-lo. 683 00:33:46,720 --> 00:33:48,490 Entón, necesitamos un pouco de corrección alí. 684 00:33:48,490 --> 00:33:51,290 Unha vez eu bati na sección T, I Non pode simplemente dicir con confianza, 685 00:33:51,290 --> 00:33:52,420 non atopamos Mike Smith. 686 00:33:52,420 --> 00:33:53,770 Eu probablemente terá que dobrar cara atrás. 687 00:33:53,770 --> 00:34:00,210 Ou de feito, xa que eu falar con alguén chamado S-N, en vez de S-M para Smith, 688 00:34:00,210 --> 00:34:02,790 Inmediatamente, eu podería dobrar volta, porque quizais 689 00:34:02,790 --> 00:34:03,900 estaba na páxina anterior. 690 00:34:03,900 --> 00:34:05,070 >> Pero non ten que dobrar cara atrás distante. 691 00:34:05,070 --> 00:34:08,030 En teoría, se eu fai iso á dereita tempo, eu só volver a páxina. 692 00:34:08,030 --> 00:34:10,139 Por iso, está engadindo só unha etapa extra. 693 00:34:10,139 --> 00:34:13,070 Entón eu fun dúas veces máis rápido, pero custoume unha páxina extra. 694 00:34:13,070 --> 00:34:14,699 Pero iso parece unha vitoria neta. 695 00:34:14,699 --> 00:34:17,230 >> Pero isto non é como a maioría da xente en Este cuarto resolvería este problema. 696 00:34:17,230 --> 00:34:20,313 O que sería unha persoa normal, quizais un Hai algúns anos facer, para atopar Mike Smith? 697 00:34:20,313 --> 00:34:22,900 698 00:34:22,900 --> 00:34:24,800 Si, non atopou Mike. 699 00:34:24,800 --> 00:34:27,190 Que fago? 700 00:34:27,190 --> 00:34:31,027 Polo tanto, obter un pouco máis preto, pero eu fago sabe-- que é verdade sobre un libro de teléfono? 701 00:34:31,027 --> 00:34:32,110 Audiencia: É secuencial. 702 00:34:32,110 --> 00:34:32,760 DAVID Malan: É secuencial. 703 00:34:32,760 --> 00:34:33,750 É alfabética. 704 00:34:33,750 --> 00:34:36,540 E por iso, se eu estou na sección M, Mike é claramente a dereita, 705 00:34:36,540 --> 00:34:39,949 I pode literalmente rasgar o problema en half-- 706 00:34:39,949 --> 00:34:44,360 é xeralmente máis fácil do que bágoa isso-- o problema á metade e xoga-lo fóra, 707 00:34:44,360 --> 00:34:47,627 de xeito que agora, eu teño un problema que é Non 1.000 pages-- que era difícil, 708 00:34:47,627 --> 00:34:50,210 porque eu creo que realmente rasgos o libro de teléfono que non tempo-- 709 00:34:50,210 --> 00:34:52,219 1.000 páxinas, pero 500. 710 00:34:52,219 --> 00:34:54,750 >> Polo tanto, o problema é, literalmente, a metade do tamaño. 711 00:34:54,750 --> 00:34:58,170 E iso é moi atractivo, porque cos meus algoritmos anteriores, versión 712 00:34:58,170 --> 00:35:02,870 1 e 2, eu estaba só facendo o problema unha páxina menores, dúas páxinas menores 713 00:35:02,870 --> 00:35:03,470 á vez. 714 00:35:03,470 --> 00:35:07,230 Mentres que agora, eu fixen iso 500 páxinas menor dunha soa vez. 715 00:35:07,230 --> 00:35:10,089 >> OK, entón agora, Karim propón que vaia á metade dereita. 716 00:35:10,089 --> 00:35:12,380 Entón, eu estou indo a ir máis ou menos para o medio, máis ou menos. 717 00:35:12,380 --> 00:35:15,185 E se eu fixen iso matematicamente, Podería ir á dereita para o medio. 718 00:35:15,185 --> 00:35:17,060 E agora, eu entendo, oh, Estou na sección T. 719 00:35:17,060 --> 00:35:18,280 En realidade, eu fun lonxe de máis. 720 00:35:18,280 --> 00:35:21,670 >> Pero podo, unha vez máis, rasgar o problema á metade, xoga-lo fóra. 721 00:35:21,670 --> 00:35:23,330 E os meus bytes non tan grande. 722 00:35:23,330 --> 00:35:28,780 É só o que, 256 páxinas ou 250 páxinas, máis ou menos no momento. 723 00:35:28,780 --> 00:35:31,570 Senón que é moito máis dunha páxina ou dúas páxinas. 724 00:35:31,570 --> 00:35:33,345 >> E entón agora eu vou aproximadamente polo medio. 725 00:35:33,345 --> 00:35:35,330 Oh, eu non ir moi lonxe o suficiente agora. 726 00:35:35,330 --> 00:35:37,880 Entón eu repetir, repetir, repetir, repetir, ata que eu son esperamos 727 00:35:37,880 --> 00:35:40,360 deixou con só unha páxina. 728 00:35:40,360 --> 00:35:44,000 >> Así que o convida a pregunta, se eu comezou con preto de 1.000 páxinas, 729 00:35:44,000 --> 00:35:47,340 cantos pasos tardou me coa versión 1 do meu algoritmo? 730 00:35:47,340 --> 00:35:50,420 Ben, se Mike está no S sección, no peor caso, 731 00:35:50,420 --> 00:35:52,630 iso é moi preto de a fin do alfabeto. 732 00:35:52,630 --> 00:35:56,559 Entón, se o libro de teléfono ten 1.000 páxinas, Eu vou atopar Mike dentro de 1.000 páxinas, 733 00:35:56,559 --> 00:35:57,100 máis ou menos. 734 00:35:57,100 --> 00:35:59,750 Quizais sexa como 800 ou así, pero é moi preto de 1.000. 735 00:35:59,750 --> 00:36:01,680 >> Tendo en conta que, no segundo algoritmo, cantas 736 00:36:01,680 --> 00:36:06,840 viradas de páxina máximo pode I esixen para atopar Mike Smith? 737 00:36:06,840 --> 00:36:09,970 Hai 1.000 páxinas, pero estou facéndose os dous dunha vez. 738 00:36:09,970 --> 00:36:13,045 Seguro, entón max como 500ish porque se eu pasar por todo o libro de teléfono, 739 00:36:13,045 --> 00:36:14,170 en que punto, podo parar. 740 00:36:14,170 --> 00:36:16,669 Pero podo raspar algúns por só parando na sección T. 741 00:36:16,669 --> 00:36:19,880 Pero é no peor dos casos 500 páxinas. 742 00:36:19,880 --> 00:36:24,710 >> Entón, cantas veces podo dividir unha 1,00o-páxina do libro de teléfono no medio novo 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 Canto antes de bater unha páxina? 745 00:36:32,250 --> 00:36:35,510 746 00:36:35,510 --> 00:36:36,370 Si, é preto de 10. 747 00:36:36,370 --> 00:36:40,780 Dependendo redondeo e tal, é preto de 10 páxinas necesidade total a transformaron 748 00:36:40,780 --> 00:36:43,290 ou libros de teléfono que ser rasgado. 749 00:36:43,290 --> 00:36:44,710 >> Entón, iso é moi poderoso. 750 00:36:44,710 --> 00:36:48,170 Comezamos cun problema 1.000 páxinas en todos os tres destas historias. 751 00:36:48,170 --> 00:36:51,850 Pero o primeiro algoritmo, el Levei, peor dos casos, con 1.000 páxinas 752 00:36:51,850 --> 00:36:52,740 vólvese para atopar Mike. 753 00:36:52,740 --> 00:36:55,590 Segundo algoritmo, 500 páxinas para atopar Mike. 754 00:36:55,590 --> 00:36:58,480 Terceiro algoritmo, 10 páxinas para atopar Mike. 755 00:36:58,480 --> 00:37:00,230 E é aínda máis poderosa cando pensa 756 00:37:00,230 --> 00:37:01,860 sobre unha especie de escenario contrario. 757 00:37:01,860 --> 00:37:05,680 Supóñase que a empresa de telefonía próxima ano quizais se funde dúas cidades xuntas, 758 00:37:05,680 --> 00:37:08,550 eo libro de teléfono é de súpeto esta espesor, en vez de esa que, 759 00:37:08,550 --> 00:37:12,470 tan 2.000 páxinas, no canto de 1000. 760 00:37:12,470 --> 00:37:15,640 Ben, o meu primeiro algoritmo busca Mike Smith nunha lista telefónica de 2.000 páxinas, 761 00:37:15,640 --> 00:37:21,460 peor caso, que vai levar cantas viradas de páxina o próximo ano? 762 00:37:21,460 --> 00:37:24,800 >> libro de teléfono é de 2.000 páxinas, assim-- ben, non máis. 763 00:37:24,800 --> 00:37:29,540 Se a lista telefónica é dúas veces máis espesa en o primeiro algoritmo, primeiro algoritmo, 764 00:37:29,540 --> 00:37:30,380 2.000, non? 765 00:37:30,380 --> 00:37:33,005 No peor dos casos, o Mike é realmente Preto do fin do libro, 766 00:37:33,005 --> 00:37:34,110 por iso é 2.000 viradas de páxina. 767 00:37:34,110 --> 00:37:38,070 Segundo algoritmo pasando por twos, como 1.000 páxinas. 768 00:37:38,070 --> 00:37:41,490 >> Pero como sobre o meu terceiro e algoritmo última? 769 00:37:41,490 --> 00:37:44,950 Se a empresa de telefonía dobra o número de páxinas de 1000 a 2000, 770 00:37:44,950 --> 00:37:47,770 cantas veces máis precisa Eu trazo este libro ao medio para atopar Mike? 771 00:37:47,770 --> 00:37:48,710 >> Audiencia: Só un. 772 00:37:48,710 --> 00:37:51,001 >> DAVID Malan: Só unha, porque con unha páxina bágoa, 773 00:37:51,001 --> 00:37:53,270 Eu pode literalmente dividir e conquistar, se quixeren, 774 00:37:53,270 --> 00:37:57,410 este problema ao medio toma unha mordida enorme fóra del. 775 00:37:57,410 --> 00:38:01,420 E por iso este é un exemplo de eficiencia e, sen dúbida, un algoritmo 776 00:38:01,420 --> 00:38:04,100 co cal todos somos tipo de intuitivamente familiar. 777 00:38:04,100 --> 00:38:07,780 Pero é só como correcta como os meus outros algoritmos 778 00:38:07,780 --> 00:38:09,630 con este axuste para O segundo algoritmo, 779 00:38:09,630 --> 00:38:11,290 pero é moito máis eficiente. 780 00:38:11,290 --> 00:38:14,030 >> E, de feito, o que é un ordenador científico, ou á súa vez, un programador, 781 00:38:14,030 --> 00:38:17,580 que adoita facer cando se escribe código é tentar descubrir, 782 00:38:17,580 --> 00:38:19,960 todo ben, eu non quero que o meu programa só para ser correcto, 783 00:38:19,960 --> 00:38:23,220 Eu tamén quero que sexa eficiente e resolver problemas ben. 784 00:38:23,220 --> 00:38:26,450 Imaxina que no mundo real hoxe, como Google indexa, investigacións 785 00:38:26,450 --> 00:38:31,580 como miles de millóns de páxinas, imaxine se utilizado o primeiro algoritmo para atopar gatos 786 00:38:31,580 --> 00:38:34,620 entre mil millóns pages-- mirando a primeira páxina no seu banco de datos, 787 00:38:34,620 --> 00:38:37,700 a segunda, terceira, mirando só para un gato, buscando un gato. 788 00:38:37,700 --> 00:38:40,350 Isto é moi danado lento que parece. 789 00:38:40,350 --> 00:38:43,170 Poderían, en vez usar algo chamado busca binaria, que 790 00:38:43,170 --> 00:38:47,420 hai bi coincidence-- significa dous, seguir dividir algo en 2, en half-- 791 00:38:47,420 --> 00:38:50,205 eles poderían usar busca binaria e quizais atopar gatos aínda máis rápido, 792 00:38:50,205 --> 00:38:51,830 ou sexa o que sexa que está a procurar. 793 00:38:51,830 --> 00:38:54,125 >> E, francamente, non hai mesmo algoritmos extravagantes 794 00:38:54,125 --> 00:38:56,250 que facer moito máis que dividir as cousas a medias 795 00:38:56,250 --> 00:38:58,180 a fin de atopar información rapidamente. 796 00:38:58,180 --> 00:39:00,880 E nós imos falar un pouco sobre aqueles despois do xantar hoxe. 797 00:39:00,880 --> 00:39:02,640 Entón deixe-me tentar representar isto. 798 00:39:02,640 --> 00:39:05,380 Non necesitamos ir calquera matemáticas ou números reais. 799 00:39:05,380 --> 00:39:07,070 Podemos falar sobre iso no resumo. 800 00:39:07,070 --> 00:39:11,580 >> Pero déixeme só propoñer, se estabamos tendo un debate agora 801 00:39:11,580 --> 00:39:13,491 cos enxeñeiros propoñendo este algoritmo 802 00:39:13,491 --> 00:39:15,490 e está intentando facer unha decisión calculada, 803 00:39:15,490 --> 00:39:17,285 debido quizais a enxeñeiro di a vostede, 804 00:39:17,285 --> 00:39:19,910 sabe, eu pode aplicar un busca lineal en como dous minutos. 805 00:39:19,910 --> 00:39:21,150 É tan fácil. 806 00:39:21,150 --> 00:39:24,790 busca binaria que non é chique, pero vai me levar como 10 minutos, 807 00:39:24,790 --> 00:39:26,650 por iso 5 veces máis tempo. 808 00:39:26,650 --> 00:39:30,900 >> Hai un comercio aquí, mesmo en termos de decidir o software para escribir. 809 00:39:30,900 --> 00:39:34,760 Escribe o algoritmo máis simple, que só vai leva-lo dous minutos? 810 00:39:34,760 --> 00:39:39,880 Ou gastar máis tempo, 10 minutos, escribir o algoritmo máis sofisticado? 811 00:39:39,880 --> 00:39:43,540 Como decide que tipo de pregunta? 812 00:39:43,540 --> 00:39:46,710 Ou pode facelo un pouco máis real. 813 00:39:46,710 --> 00:39:50,610 I dicir ao meu xefe que vai levar me quere unha semana ou 10 semanas 814 00:39:50,610 --> 00:39:52,490 para aplicar o software deste xeito, como 815 00:39:52,490 --> 00:39:56,103 decide cal 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 creo. 818 00:39:57,550 --> 00:39:57,960 >> DAVID Malan: A audiencia. 819 00:39:57,960 --> 00:39:59,460 O que quere dicir co público? 820 00:39:59,460 --> 00:40:03,460 >> Audiencia: Se vai para ser usado por usuarios 821 00:40:03,460 --> 00:40:09,050 que [inaudível] por usuarios [inaudível]. 822 00:40:09,050 --> 00:40:11,232 Pero se é algo que está só facendo a si mesmo 823 00:40:11,232 --> 00:40:13,946 para facilitar un problema, [Inaudível] máis rápido. 824 00:40:13,946 --> 00:40:16,820 DAVID Malan: Si, é rápido e sucia é unha boa forma de describilo. 825 00:40:16,820 --> 00:40:18,695 En realidade, se está describindo moito do meu tempo 826 00:40:18,695 --> 00:40:23,630 na posgrao, sendo que moitas veces, Eu escribín un código malo conscientemente assim-- 827 00:40:23,630 --> 00:40:26,490 polo menos, é así que eu racionalizar ele-- conscientemente así, 828 00:40:26,490 --> 00:40:30,670 porque aínda que eu estaba escribindo código que era relativamente lento para realizar, 829 00:40:30,670 --> 00:40:33,750 Eu era capaz de escribir o propio código moi rápido, gastan só uns minutos 830 00:40:33,750 --> 00:40:35,107 ou non horas días. 831 00:40:35,107 --> 00:40:37,190 E saíu, eu de cando en vez precisaba durmir. 832 00:40:37,190 --> 00:40:41,270 Así, aínda que o meu código necesario 8 horas para ser executado, así, iso é bo, 833 00:40:41,270 --> 00:40:42,850 Eu só vou durmir mentres corre. 834 00:40:42,850 --> 00:40:46,350 >> Entón, no momento, eu penso que este era moi intelixente, a pesar de, ao parecer, 835 00:40:46,350 --> 00:40:48,990 traballou a través do meu PhD moi lentamente. 836 00:40:48,990 --> 00:40:52,270 Pero o inverso do que é que, software, se eu estivese escribindo 837 00:40:52,270 --> 00:40:55,930 para outras persoas que era máis importante que eu, así, 838 00:40:55,930 --> 00:40:59,580 telos esperar 8 horas para volver os seus resultados de busca 839 00:40:59,580 --> 00:41:01,350 Non é todo o que atractivo. 840 00:41:01,350 --> 00:41:04,090 E así pasar máis tempo diante para escribir software 841 00:41:04,090 --> 00:41:07,300 que é máis eficiente, máis como o noso terceiro algoritmo, 842 00:41:07,300 --> 00:41:09,780 probablemente beneficia aos usuarios ao longo do tempo. 843 00:41:09,780 --> 00:41:12,710 Entón, realmente depende máis tempo como eses custos súmanse. 844 00:41:12,710 --> 00:41:14,960 Se está indo a ser escrito software para usalo unha vez, 845 00:41:14,960 --> 00:41:17,240 Probablemente podería moi ben facer rápida e sucia, como se adoita dicir. 846 00:41:17,240 --> 00:41:18,198 Simplemente xoga-lo xuntos. 847 00:41:18,198 --> 00:41:20,560 É un código que embaraça vostede, é tan malo, 848 00:41:20,560 --> 00:41:23,860 pero comeza o traballo feito correctamente, aínda que non é eficiente. 849 00:41:23,860 --> 00:41:27,200 Por outra banda, gasta máis tempo en algo, obtelo só dereito. 850 00:41:27,200 --> 00:41:30,730 E entón amortizado co paso do tempo, custo que upfront do tempo 851 00:41:30,730 --> 00:41:34,330 é probablemente paga a pena, se continúa optimización para o caso común. 852 00:41:34,330 --> 00:41:37,620 >> E, de feito, iso é un tema en programación, ou ordenador ciencia máis 853 00:41:37,620 --> 00:41:41,390 xeralmente, intentando optimizar Non para o caso inusual 854 00:41:41,390 --> 00:41:44,390 pero os case-- comúns que operación vai ocorrer de novo e de novo? 855 00:41:44,390 --> 00:41:47,730 Se está indo a ter millóns dos usuarios buscar na súa páxina web, 856 00:41:47,730 --> 00:41:52,030 vostede probabelmente debería pasar o extra semanas diante de escribir mellor software, 857 00:41:52,030 --> 00:41:53,670 de xeito que os seus usuarios se benefician. 858 00:41:53,670 --> 00:41:57,840 Agora, imos intentar capturar esta unha pouco pictorially, pero non tanto 859 00:41:57,840 --> 00:41:58,610 numericamente. 860 00:41:58,610 --> 00:42:01,680 >> Entón aquí é só un gráfico da vella escola. 861 00:42:01,680 --> 00:42:04,260 E deixe-me dicir que este é o tempo. 862 00:42:04,260 --> 00:42:06,660 E non importa what-- en realidade, non hai nin tempo. 863 00:42:06,660 --> 00:42:08,320 Imos poñer isto no outro eixe. 864 00:42:08,320 --> 00:42:15,700 Imos dicir que este é o momento, e este é o tamaño do problema. 865 00:42:15,700 --> 00:42:17,830 >> E un científico da computación pode xeralmente chamamos 866 00:42:17,830 --> 00:42:20,820 iso só n. n é como o noso go-to variable, onde 867 00:42:20,820 --> 00:42:26,351 n é un número, n número, e é a número de calquera entradas que ten. 868 00:42:26,351 --> 00:42:28,100 Polo tanto, neste caso, n é o número de páxinas. 869 00:42:28,100 --> 00:42:30,150 Así, pode ser 1.000 en o caso de que acabamos dixo. 870 00:42:30,150 --> 00:42:31,969 >> Así, o tempo pode ser calquera unidade de medida. 871 00:42:31,969 --> 00:42:32,760 Quizais, é segundo. 872 00:42:32,760 --> 00:42:33,410 Quizais, e días. 873 00:42:33,410 --> 00:42:34,590 Quizais, é como páxina voltas. 874 00:42:34,590 --> 00:42:35,215 Non importa. 875 00:42:35,215 --> 00:42:38,840 Todo o que quere contar, para que a será tempo ou custo equivalente. 876 00:42:38,840 --> 00:42:42,400 >> Entón, con iso primeiro algoritmo, se eu, por exemplo, 877 00:42:42,400 --> 00:42:45,920 tiña un libro de teléfono 1000 páxinas, Eu estou indo a deseñar un punto alí, 878 00:42:45,920 --> 00:42:51,450 porque si é de 1.000 páxinas, levou uns 1.000 viradas de páxina, máis ou menos. 879 00:42:51,450 --> 00:42:54,100 E entón se eu tivese un libro de teléfono de 2.000 páxinas, 880 00:42:54,100 --> 00:42:57,200 e eu estou indo a deseñar un segundo dot aquí, porque a 2.000 páxinas, 881 00:42:57,200 --> 00:42:59,810 é como 2.000 segundos ou viradas de páxina ou calquera outra cousa. 882 00:42:59,810 --> 00:43:02,480 E así, cando dixo anteriormente, é tipo de unha relación lineal, 883 00:43:02,480 --> 00:43:06,020 que foi deliberado, porque eu quería despois on-- dereito agora-- para debuxar unha liña. 884 00:43:06,020 --> 00:43:07,770 É unha especie de un straight relación liña. 885 00:43:07,770 --> 00:43:10,180 A inclinación é 1/1, se quere. 886 00:43:10,180 --> 00:43:14,630 >> Mentres tanto, o segundo algoritmo Dito isto, se ten 1.000 páxinas 887 00:43:14,630 --> 00:43:17,680 e estaba usando o segundo algoritmo, onde contou por 2, xirando 888 00:43:17,680 --> 00:43:22,564 dúas páxinas á vez, eu debería tomar unha punto por baixo ou por riba do meu punto orixinal? 889 00:43:22,564 --> 00:43:23,450 >> Audiencia: Abaixo. 890 00:43:23,450 --> 00:43:27,992 >> DAVID Malan: Abaixo, porque, como xa vimos, leva menos tempo, a metade do tempo. 891 00:43:27,992 --> 00:43:29,950 Así, o punto debe ser a metade tan alta como o outro. 892 00:43:29,950 --> 00:43:33,330 E aínda negocio por aquí, este punto probablemente debe ser máis ou menos alí. 893 00:43:33,330 --> 00:43:39,666 E así o meu segundo algoritmo, do mesmo xeito, ten un relación lineal co tempo. 894 00:43:39,666 --> 00:43:41,990 E podemos deseña-lo como tal. 895 00:43:41,990 --> 00:43:45,950 >> Entón, agora, a terceira e última algoritmo é un pouco máis difícil de deseñar. 896 00:43:45,950 --> 00:43:49,530 Pero intuitivamente, se eu teño 1,000 páxinas co meu terceiro algoritmo, 897 00:43:49,530 --> 00:43:52,340 el só debe me levar uns 10 pasos. 898 00:43:52,340 --> 00:43:57,500 E se eu teño 2.000 páxinas co meu terceiro algoritmo, 899 00:43:57,500 --> 00:44:01,570 debe me levar non 10 pasos, pero 11, só un. 900 00:44:01,570 --> 00:44:03,610 Entón, nós estamos só un pouco vai ver isto. 901 00:44:03,610 --> 00:44:06,010 >> E resulta que, se I zoom iso, eu son 902 00:44:06,010 --> 00:44:09,320 vai esaxerar para o efecto, a forma da liña que, en definitiva, 903 00:44:09,320 --> 00:44:11,990 non é unha liña recta linha-- porque, en realidade, se fose, 904 00:44:11,990 --> 00:44:15,390 quedaría máis parecido ao outros- é ​​realmente unha liña curva 905 00:44:15,390 --> 00:44:19,265 que, se aumentar o zoom, vai a ollar máis como este. 906 00:44:19,265 --> 00:44:21,670 Ele-- ben, OK, ignorar esta parte. 907 00:44:21,670 --> 00:44:25,330 Esa foi a miña pena vai de ángulo. 908 00:44:25,330 --> 00:44:29,000 É unha liña curva que sempre aumentando, sempre, sempre, sempre 909 00:44:29,000 --> 00:44:32,100 aumentar, pero só por pouco. 910 00:44:32,100 --> 00:44:36,260 >> E así ao longo do tempo, ten un relación que é máis como este. 911 00:44:36,260 --> 00:44:37,540 Parece case en liña recta. 912 00:44:37,540 --> 00:44:40,330 Pero cada vez é máis tan devagar. 913 00:44:40,330 --> 00:44:44,780 Pero, para case todos os puntos ao longo o eixe x, eixe horizontal, 914 00:44:44,780 --> 00:44:46,550 é menor que as outras liñas. 915 00:44:46,550 --> 00:44:49,930 >> Polo tanto, este pode ser unha relación n, no que se ten n páxinas, 916 00:44:49,930 --> 00:44:51,100 lévase a n segundos. 917 00:44:51,100 --> 00:44:53,320 Esta podería ser unha relación n / 2. 918 00:44:53,320 --> 00:44:56,710 Ten n páxinas, leva vostede n / 2 segundos, a metade dese número. 919 00:44:56,710 --> 00:45:00,590 E esta é unha logarítmica relación, que 920 00:45:00,590 --> 00:45:08,920 se se lembra, base 2 n capturas de rexistro este tipo de crecemento, por así dicir. 921 00:45:08,920 --> 00:45:12,000 Polo tanto, este é o tipo de santo Graal entre os tres destes 922 00:45:12,000 --> 00:45:15,940 aquí, porque é só moito máis eficiente, pero sen dúbida máis complexa 923 00:45:15,940 --> 00:45:18,610 para aplicar. 924 00:45:18,610 --> 00:45:20,510 Algunha pregunta? 925 00:45:20,510 --> 00:45:26,220 >> Ben, deixe-me facelo, deixe me abrir unha ventá de texto 926 00:45:26,220 --> 00:45:29,100 só así podemos probar formalizar algo aquí. 927 00:45:29,100 --> 00:45:32,410 Entón deixe-me ir adiante agora e aplicar este algoritmo 928 00:45:32,410 --> 00:45:35,170 para atopar Mike Smith en código, se, código de pseudocódigo. 929 00:45:35,170 --> 00:45:36,620 Non 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 931 00:45:38,610 --> 00:45:40,151 sería normalmente chamar código pseudocódigo. 932 00:45:40,151 --> 00:45:41,660 Aquí, eu teño unha ventá en branco. 933 00:45:41,660 --> 00:45:48,180 E eu digo etapa 1 do moi primeiro algoritmo é incorporarse o libro de teléfono. 934 00:45:48,180 --> 00:45:51,740 Paso 2 é libro aberto para a primeira páxina. 935 00:45:51,740 --> 00:45:58,080 Paso 3 será vexa A páxina de Mike Smith. 936 00:45:58,080 --> 00:46:02,740 Na páxina, chame Mike. 937 00:46:02,740 --> 00:46:11,640 Page e á súa vez, senón vai para o paso 3. 938 00:46:11,640 --> 00:46:13,590 Feito, digamos. 939 00:46:13,590 --> 00:46:18,110 >> E por iso non é moi perfecto, que veremos en un momento. 940 00:46:18,110 --> 00:46:21,050 Pero imos considerar o que conceptos que eu teño presentado aquí. 941 00:46:21,050 --> 00:46:24,450 Así, os pasos 1 e 2 e 3 son practicamente verbos. 942 00:46:24,450 --> 00:46:26,544 Son declaracións, actions-- facelo. 943 00:46:26,544 --> 00:46:28,710 E así, nunha programación linguaxe, teriamos xeral 944 00:46:28,710 --> 00:46:32,349 chamalos de declaracións ou funcións ou procedementos, 945 00:46:32,349 --> 00:46:33,640 chamalos de calquera número de cousas. 946 00:46:33,640 --> 00:46:35,460 Pero eles están só actions-- facelo. 947 00:46:35,460 --> 00:46:40,370 >> Paso 4 é fundamentalmente diferente, porque é o tipo de facer unha pregunta. 948 00:46:40,370 --> 00:46:42,400 É dicir que estamos tipo de nunha bifurcación na estrada. 949 00:46:42,400 --> 00:46:48,000 Se Mike está na páxina, chame el, entón Xire á esquerda, se quere. 950 00:46:48,000 --> 00:46:52,170 E se non, volverá a algunha outra página-- ou mellor, desculpe, 951 00:46:52,170 --> 00:46:56,650 voltar algún outro paso, que induce a algún tipo de construción de loop. 952 00:46:56,650 --> 00:46:59,530 E facemos iso de novo e de novo e de novo. 953 00:46:59,530 --> 00:47:01,300 >> E, de feito, xa sabe o que? 954 00:47:01,300 --> 00:47:01,800 Si. 955 00:47:01,800 --> 00:47:04,704 956 00:47:04,704 --> 00:47:09,010 else if no final da parada libro. 957 00:47:09,010 --> 00:47:11,624 Por iso, cómpre tipo dun terzo condición, porque 958 00:47:11,624 --> 00:47:14,290 non pode continuar xirando o anuncio de páxina nauseum, porque, finalmente, eu vou 959 00:47:14,290 --> 00:47:15,320 acadar o fin do libro. 960 00:47:15,320 --> 00:47:18,546 E un erro nun programa pode ser non anticipar ese escenario. 961 00:47:18,546 --> 00:47:21,420 E entón eu entender, oh, agarde un minuto, eu teño un terceiro escenario. 962 00:47:21,420 --> 00:47:23,900 Se eu estou fóra de páxinas, que realmente parar. 963 00:47:23,900 --> 00:47:25,330 Se non, ela non está definida. 964 00:47:25,330 --> 00:47:29,260 O que vai ocorrer se eu continuar dicindo pasar páxina e volver, 965 00:47:29,260 --> 00:47:31,810 Isto é, cando os ordenadores conxelar ou falla, cando bate 966 00:47:31,810 --> 00:47:34,160 algunha situación inesperada como este. 967 00:47:34,160 --> 00:47:37,280 >> Agora, o que pasa con Mike terceiro algorithm-- de Smith 968 00:47:37,280 --> 00:47:43,150 incorporarse o libro de teléfono, libro aberto para first-- para 969 00:47:43,150 --> 00:47:48,640 Non, non é primeira páxina desta vez, para middle-- oh, así, que 970 00:47:48,640 --> 00:47:49,640 ser o segundo algoritmo. 971 00:47:49,640 --> 00:47:50,590 Nós só pasar á terceira. 972 00:47:50,590 --> 00:47:50,930 >> Audiencia: Oh, eu sinto moito. 973 00:47:50,930 --> 00:47:51,971 >> DAVID Malan: Isto é bo. 974 00:47:51,971 --> 00:47:58,590 Nós só ir ao aberto third-- a medio e agora ollar para Mike Smith. 975 00:47:58,590 --> 00:48:02,300 na páxina, chame Mike. 976 00:48:02,300 --> 00:48:04,910 E entón o que queremos dicir aquí? 977 00:48:04,910 --> 00:48:06,134 entón o que? 978 00:48:06,134 --> 00:48:10,620 979 00:48:10,620 --> 00:48:12,370 Podemos expresar esta en calquera número de formas. 980 00:48:12,370 --> 00:48:13,369 Non hai unha resposta correcta. 981 00:48:13,369 --> 00:48:20,819 982 00:48:20,819 --> 00:48:23,735 OK, se non de novo, pero precisamos ser-- OK, queremos dividir en dous, 983 00:48:23,735 --> 00:48:25,630 pero non queremos ir á esquerda ou desprácese á dereita? 984 00:48:25,630 --> 00:48:29,560 Como podemos expresar esa noción? 985 00:48:29,560 --> 00:48:31,790 Ben, no caso de Mike, si, iso é xusto. 986 00:48:31,790 --> 00:48:35,050 Pero OK, entón iso é realmente un bo punto. 987 00:48:35,050 --> 00:48:35,550 Está ben. 988 00:48:35,550 --> 00:48:36,924 Nós imos seguir con esa lóxica. 989 00:48:36,924 --> 00:48:38,182 assim-- 990 00:48:38,182 --> 00:48:39,810 >> Audiencia: 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ón else if páxina é, imos dicir, a menos de Smith, á esquerda de Smith, 993 00:48:49,820 --> 00:48:52,220 entăo-- veremos, é isto vai complicar? 994 00:48:52,220 --> 00:49:01,885 else if páxina vén antes de Smith, bágoa no medio, xogue fóra cal metade? 995 00:49:01,885 --> 00:49:05,643 996 00:49:05,643 --> 00:49:09,140 >> Audiencia: Eu penso que foi [inaudível]. 997 00:49:09,140 --> 00:49:11,650 >> DAVID Malan: Estou escoitando ambas as respostas. 998 00:49:11,650 --> 00:49:12,431 >> Audiencia: Esquerda. 999 00:49:12,431 --> 00:49:14,430 DAVID Malan: OK, xogar afastado metade esquerda, como Lakisa 1000 00:49:14,430 --> 00:49:19,700 dixo anteriormente, a esquerda metade, entón eu medio que 1001 00:49:19,700 --> 00:49:23,940 Quere só ir a-- que vaia á dereita. 1002 00:49:23,940 --> 00:49:27,380 Ou equivalentemente, e eu fixen un pouco bocado dunha confusión do comezo aquí, 1003 00:49:27,380 --> 00:49:30,760 Eu efectivamente quere vaia para o paso 2 de novo, 1004 00:49:30,760 --> 00:49:38,270 onde aberto ao middle-- ou open-- si, imos só dicir, páxinas ao medio. 1005 00:49:38,270 --> 00:49:39,020 E iso resolve o problema. 1006 00:49:39,020 --> 00:49:39,936 Non é un libro. 1007 00:49:39,936 --> 00:49:42,210 É só a metade dun libro, páxinas para abrir a medio. 1008 00:49:42,210 --> 00:49:44,010 >> else-- estaban case alí. 1009 00:49:44,010 --> 00:49:54,000 Paso 6, else if páxina vén despois de Smith, rasgar ao medio, xogar media dereita, 1010 00:49:54,000 --> 00:49:55,680 a continuación, vai para o paso 2. 1011 00:49:55,680 --> 00:49:58,920 1012 00:49:58,920 --> 00:50:05,230 algo saír, un cuarto escenario se Non temos páxinas que aínda pode virar. 1013 00:50:05,230 --> 00:50:06,394 Así, poderiamos borrar iso. 1014 00:50:06,394 --> 00:50:07,560 E temos que limpar isto. 1015 00:50:07,560 --> 00:50:10,656 Este é un código moi pseudocódigo, se Vai, descrición moi alto nivel. 1016 00:50:10,656 --> 00:50:12,280 Pero iso xeralmente capturar a idea. 1017 00:50:12,280 --> 00:50:16,040 >> E, de novo, neste escenario, ten a noción dunha condición, 1018 00:50:16,040 --> 00:50:20,450 unha rama, unha bifurcación na estrada, facendo un decision-- este, ir por este camiño, 1019 00:50:20,450 --> 00:50:23,082 else if, ir por este camiño, else if, ir por ese camiño. 1020 00:50:23,082 --> 00:50:25,040 E iso é moi común técnica de programación 1021 00:50:25,040 --> 00:50:27,721 para decidir cal dirección para ir, por así dicir. 1022 00:50:27,721 --> 00:50:29,970 E tamén temos algún tipo Looping de estrutura, onde 1023 00:50:29,970 --> 00:50:32,440 estamos facendo algo novo e de novo. 1024 00:50:32,440 --> 00:50:34,820 >> Agora, ao parecer, moi 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 Pero tamén vimos algo que seguir conectando abstracción. 1027 00:50:42,180 --> 00:50:45,490 Que significa para incorporarse libro de teléfono? 1028 00:50:45,490 --> 00:50:47,740 Estamos só unha especie de tomar para concedida nesta sala 1029 00:50:47,740 --> 00:50:49,340 que que ten algún significado semántico. 1030 00:50:49,340 --> 00:50:51,740 Todos só unha especie de sabe, oh, ben, incorporarse o libro de teléfono. 1031 00:50:51,740 --> 00:50:52,864 O que isto realmente significa? 1032 00:50:52,864 --> 00:50:59,060 Ben, iso realmente significa ampliar banda, inclinarse, a estender os dedos, 1033 00:50:59,060 --> 00:51:03,890 beliscar libro entre os dedos, levantar, tirar a man na súa dirección. 1034 00:51:03,890 --> 00:51:05,940 E poderíamos ser realmente pedante sobre iso, 1035 00:51:05,940 --> 00:51:08,640 realmente ser super precisos como o que eu estou facendo. 1036 00:51:08,640 --> 00:51:13,300 Pero todos estes pasos son colectivamente o que significa incorporarse un libro de teléfono. 1037 00:51:13,300 --> 00:51:16,940 >> E así antes, cando dixo, cada destas dúas primeiras instrucións 1038 00:51:16,940 --> 00:51:20,830 pode ser pensado como un continuar ou unha función, 1039 00:51:20,830 --> 00:51:24,090 realmente representa o que nós seguir chamando unha abstracción. 1040 00:51:24,090 --> 00:51:28,770 É como un alto nivel conceptual Descrición dun problema que 1041 00:51:28,770 --> 00:51:31,110 realmente implica algúns pasos. 1042 00:51:31,110 --> 00:51:34,190 E así por iso, tamén, é unha Temas recurrentes na programación, 1043 00:51:34,190 --> 00:51:41,125 en que eu podería escribir un programa mediante 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, a continuación, sintaticamente, eu son vai roubar algo 1047 00:51:46,510 --> 00:51:48,090 da maioría das linguaxes de programación. 1048 00:51:48,090 --> 00:51:51,270 >> Agora, paso 1 parece aínda máis como unha función, 1049 00:51:51,270 --> 00:51:53,160 como un programador estaba chamalo. 1050 00:51:53,160 --> 00:51:58,650 Parece que o código que alguén deu un nome para e dado 1051 00:51:58,650 --> 00:52:03,300 -me de usar somehow-- noutra palabras, o que a liña Eu destacou 1052 00:52:03,300 --> 00:52:07,050 representa a función que quizais Eu nin sequera aplicar min. 1053 00:52:07,050 --> 00:52:10,410 Alguén máis vello, máis sabio do que me xa descubriu 1054 00:52:10,410 --> 00:52:12,700 como expresa a noción de coller un libro de teléfono. 1055 00:52:12,700 --> 00:52:15,860 E é que as cinco etapas Só desfiou, fóra do cumio da cabeza. 1056 00:52:15,860 --> 00:52:19,350 >> Pero el ou ela xa aplicadas este, deuse eses varios pasos 1057 00:52:19,350 --> 00:52:22,339 un nome, pick_up_phone_book. 1058 00:52:22,339 --> 00:52:24,380 E os parénteses está só o que a maioría dos programadores 1059 00:52:24,380 --> 00:52:27,100 facer a finais de declaracións como esta. 1060 00:52:27,100 --> 00:52:30,190 Agora podo estar no seu ombros e nunca máis, 1061 00:52:30,190 --> 00:52:32,465 pensar sobre o que iso significa para incorporarse un libro de teléfono. 1062 00:52:32,465 --> 00:52:34,090 Podo só dicir, incorporarse o libro de teléfono. 1063 00:52:34,090 --> 00:52:36,690 E iso é o que todos os seres humanos fixeron aquí. 1064 00:52:36,690 --> 00:52:38,940 >> Cando fomos probablemente 1 anos de idade, 2 anos de idade, 1065 00:52:38,940 --> 00:52:41,690 alguén para ensinar o que significaba para incorporarse un libro de teléfono. 1066 00:52:41,690 --> 00:52:43,810 E desde entón, temos abstraída 1067 00:52:43,810 --> 00:52:46,739 daqueles moi desinteressante pasos mecánicos. 1068 00:52:46,739 --> 00:52:48,530 E só temos un comprensión intuitiva 1069 00:52:48,530 --> 00:52:50,480 do que significa a pegar un libro de teléfono. 1070 00:52:50,480 --> 00:52:55,730 >> E pode extrapolar agora para coisas- máis complicado 1071 00:52:55,730 --> 00:52:57,640 construír un edificio. 1072 00:52:57,640 --> 00:52:59,940 Como, para algunhas persoas, que realmente ten significado. 1073 00:52:59,940 --> 00:53:03,080 Para provedores de servizos, para os arquitectos, que ten algún significado. 1074 00:53:03,080 --> 00:53:06,400 E saben o que facer, se Eu dixen, vai construír un edificio. 1075 00:53:06,400 --> 00:53:10,520 >> Pero a maioría de nós no cuarto non podería xestionar ese nivel de abstracción. 1076 00:53:10,520 --> 00:53:14,850 Debe dicir a nós como ir buscar a pa e ir buscar o formigón 1077 00:53:14,850 --> 00:53:17,250 con uñas e os anacos de madeira xuntos e todo o máis 1078 00:53:17,250 --> 00:53:18,830 toma parte na construción dun edificio. 1079 00:53:18,830 --> 00:53:21,690 E iso é porque non temos aínda foi programado para entender 1080 00:53:21,690 --> 00:53:23,629 o que significa construír un edificio. 1081 00:53:23,629 --> 00:53:24,920 Non temos que abstracción. 1082 00:53:24,920 --> 00:53:26,570 Non temos esa función. 1083 00:53:26,570 --> 00:53:29,930 >> E entón o que podes ver en linguaxes de programación, en xeral, 1084 00:53:29,930 --> 00:53:34,570 linguas especialmente máis modernos, como Java, PHP, Ruby e Python, 1085 00:53:34,570 --> 00:53:37,610 son moito máis maduro de linguaxes máis antigas, 1086 00:53:37,610 --> 00:53:40,140 como C e C ++ e outros aínda. 1087 00:53:40,140 --> 00:53:42,580 E así eles veñen con máis funcionalidade incorporada. 1088 00:53:42,580 --> 00:53:45,640 Máis código foi escrito por persoas que no pasado 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 con esta liña destacada aquí. 1091 00:53:52,231 --> 00:53:55,230 E por iso mesmo que non estamos falando sobre linguaxes de programación por si só, 1092 00:53:55,230 --> 00:54:00,230 código só pseudocódigo, as ideas aínda están en que a discusión. 1093 00:54:00,230 --> 00:54:04,600 E verifícase a precisión é super importante, como é abstracción. 1094 00:54:04,600 --> 00:54:06,570 E imos tratar comunicar que deste xeito. 1095 00:54:06,570 --> 00:54:11,000 >> Eu accidentalmente podería estragado este, chiscando un slide na pantalla 1096 00:54:11,000 --> 00:54:12,260 prematuramente. 1097 00:54:12,260 --> 00:54:16,550 Pero déixeme pedir un voluntario valente, Se non lle importa chegando. 1098 00:54:16,550 --> 00:54:19,040 Vostede quedaría diante do cámara, se está OK con iso. 1099 00:54:19,040 --> 00:54:24,950 Alguén quere vir cara arriba e dar instrucións aos seus compañeiros aquí? 1100 00:54:24,950 --> 00:54:29,540 Só teño que vir aquí e estar aquí e dicir algunhas palabras. 1101 00:54:29,540 --> 00:54:32,890 >> Victoria está sorrindo máis e evitando os meus ollos a máis. 1102 00:54:32,890 --> 00:54:34,740 Estaría disposto a vir enriba? 1103 00:54:34,740 --> 00:54:35,240 OK. 1104 00:54:35,240 --> 00:54:38,480 E se todos os outros nos seus lugares podería sacar un pedazo de papel, 1105 00:54:38,480 --> 00:54:39,750 se quere. 1106 00:54:39,750 --> 00:54:40,760 papel pautado é bo. 1107 00:54:40,760 --> 00:54:41,990 Veña arredor deste xeito. 1108 00:54:41,990 --> 00:54:44,580 Ou algún papel que que lle foi dada onte 1109 00:54:44,580 --> 00:54:46,493 só calquera folla en branco de papel, se puidese. 1110 00:54:46,493 --> 00:54:52,240 1111 00:54:52,240 --> 00:54:54,870 E se non ten ningún, só Pregunta ó seu veciño se puidese. 1112 00:54:54,870 --> 00:55:04,220 1113 00:55:04,220 --> 00:55:07,580 >> Entón, no momento, para Neste exemplo, Victoria 1114 00:55:07,580 --> 00:55:11,520 Vai desempeñar o papel programador, un enxeñeiro, que 1115 00:55:11,520 --> 00:55:16,130 Debe programar a todos, como os ordenadores, para facer algo. 1116 00:55:16,130 --> 00:55:19,570 E imos ver o que suposicións decide facer. 1117 00:55:19,570 --> 00:55:22,700 Imos ver como que que escolle para ser. 1118 00:55:22,700 --> 00:55:26,220 E se esta demostración vai pedagoxicamente ben, moitos erros 1119 00:55:26,220 --> 00:55:29,220 farase, que imos entón usar que como unha oportunidade para a discusión. 1120 00:55:29,220 --> 00:55:32,010 Pero o reto para vostede debe ser o de evitar estes erros, 1121 00:55:32,010 --> 00:55:32,896 ser un bo programador. 1122 00:55:32,896 --> 00:55:35,520 E así o reto na man, se lle gustaba de andar por aquí, 1123 00:55:35,520 --> 00:55:38,799 está diante de Victoria en pantalla aqui-- e, esperamos, ningún de vós 1124 00:55:38,799 --> 00:55:40,590 Lembre-se diso cando chiscou na pantalla. 1125 00:55:40,590 --> 00:55:44,097 E non virar-se en todo, porque hai outra pantalla nesta sala 1126 00:55:44,097 --> 00:55:44,930 que podo desconectar. 1127 00:55:44,930 --> 00:55:46,620 Polo tanto, non se virar. 1128 00:55:46,620 --> 00:55:49,090 >> Fronte de Victoria é que aínda berro. 1129 00:55:49,090 --> 00:55:54,170 E o seu traballo agora é dicirlle todo no seu anaco de papel que debuxar. 1130 00:55:54,170 --> 00:55:57,020 E veremos, en base a instrucións verbais por si só, 1131 00:55:57,020 --> 00:56:00,020 código de ordenador, se queres, o grao de precisión dos seus debuxos 1132 00:56:00,020 --> 00:56:02,330 é-- súas implementacións son. 1133 00:56:02,330 --> 00:56:02,980 Ten sentido? 1134 00:56:02,980 --> 00:56:03,604 >> Audiencia: É. 1135 00:56:03,604 --> 00:56:04,980 DAVID Malan: OK, executar. 1136 00:56:04,980 --> 00:56:06,030 >> Audiencia: Deseñar un cadrado. 1137 00:56:06,030 --> 00:56:09,050 >> [Risas] 1138 00:56:09,050 --> 00:56:12,310 >> DAVID Malan: E non preguntas poden ser feitas. 1139 00:56:12,310 --> 00:56:13,720 só pode facer o que dixo. 1140 00:56:13,720 --> 00:56:17,570 1141 00:56:17,570 --> 00:56:22,550 Ah, e se tes láminas de hoxe aberto nunha pestana, non ollar para o seu guía. 1142 00:56:22,550 --> 00:56:23,670 OK? 1143 00:56:23,670 --> 00:56:26,135 >> Audiencia: OK, debuxar un círculo. 1144 00:56:26,135 --> 00:56:32,544 1145 00:56:32,544 --> 00:56:34,872 A slope-- podo dicir inclinación? 1146 00:56:34,872 --> 00:56:35,830 DAVID Malan: Ata ti. 1147 00:56:35,830 --> 00:56:38,230 1148 00:56:38,230 --> 00:56:38,980 Audiencia: Unha inclinación. 1149 00:56:38,980 --> 00:56:46,330 1150 00:56:46,330 --> 00:56:49,795 E un triángulo. 1151 00:56:49,795 --> 00:56:50,850 >> DAVID Malan: Todo ben. 1152 00:56:50,850 --> 00:56:52,286 E estar aquí por só un momento. 1153 00:56:52,286 --> 00:56:56,046 1154 00:56:56,046 --> 00:56:58,910 E eu vou vir arredor en só un momento. 1155 00:56:58,910 --> 00:57:02,420 E non hai necesidade de poñer os seus nomes nel. 1156 00:57:02,420 --> 00:57:05,030 Deixe-me ir ao redor e recoller os seus debuxos, 1157 00:57:05,030 --> 00:57:08,330 Se non lle importa rasgar-los. 1158 00:57:08,330 --> 00:57:12,110 >> Aquí está o que temos de volta. 1159 00:57:12,110 --> 00:57:14,770 Vou proxecto-la na pantalla. 1160 00:57:14,770 --> 00:57:18,310 Vexo un cadrado, un círculo, unha ladeira, e un triángulo. 1161 00:57:18,310 --> 00:57:20,130 Entón iso foi unha resposta alí. 1162 00:57:20,130 --> 00:57:23,640 E let's-- berros. 1163 00:57:23,640 --> 00:57:25,370 Grazas. 1164 00:57:25,370 --> 00:57:30,710 Aquí está outra variedade, e un detrás del. 1165 00:57:30,710 --> 00:57:34,130 1166 00:57:34,130 --> 00:57:37,120 >> Entón, todos eles parecen captar o espírito. 1167 00:57:37,120 --> 00:57:38,600 Grazas. 1168 00:57:38,600 --> 00:57:44,970 Hai outro, e aquí está outro. 1169 00:57:44,970 --> 00:57:51,590 A interpretación inclinación é unha pouco distinto, algo curvilínea. 1170 00:57:51,590 --> 00:57:57,140 E o máis próximo, ou por mor da especificidade marabilloso co que 1171 00:57:57,140 --> 00:58:03,520 descrito, ou que tipo de vin isto antes, esta é realmente 1172 00:58:03,520 --> 00:58:06,340 o que Victoria estaba realmente describindo. 1173 00:58:06,340 --> 00:58:09,190 >> Pero agora, os que non entendín moi ben, 1174 00:58:09,190 --> 00:58:11,140 imos ofrecer algunhas obxeccións aquí. 1175 00:58:11,140 --> 00:58:13,770 Entón Victoria primeiro dixo deseñar un cadrado. 1176 00:58:13,770 --> 00:58:15,830 E agora, podemos asumir por unha cuestión de hoxe 1177 00:58:15,830 --> 00:58:17,538 que todos coñecen como deseñar un cadrado. 1178 00:58:17,538 --> 00:58:20,590 Pero iso non é enteiramente clara, non? 1179 00:58:20,590 --> 00:58:23,220 De que outra forma podería ter deseñado un cadrado, ou cando 1180 00:58:23,220 --> 00:58:27,114 pode ser algunhas das ambigüidades aquí para o ordenador? 1181 00:58:27,114 --> 00:58:28,280 Audiencia: localización e tamaño. 1182 00:58:28,280 --> 00:58:28,980 DAVID Malan: Localización, non? 1183 00:58:28,980 --> 00:58:32,070 Todos vostedes tiveron un papel de algunha maneira, xeralmente rectángulos, pero lixeiramente 1184 00:58:32,070 --> 00:58:32,830 diferentes tamaños. 1185 00:58:32,830 --> 00:58:36,250 Pero certamente podería tirado, se quería, unha enorme praza, quizais 1186 00:58:36,250 --> 00:58:37,220 unha pequena praza. 1187 00:58:37,220 --> 00:58:38,417 Quizais, foi rodado. 1188 00:58:38,417 --> 00:58:39,500 Eu non creo que nós vimos isto. 1189 00:58:39,500 --> 00:58:41,790 Pero podería ser máis diamante como, pero aínda con todo, 1190 00:58:41,790 --> 00:58:42,900 Matematicamente un cadrado. 1191 00:58:42,900 --> 00:58:44,850 Así que foi indiscutiblemente ambigua. 1192 00:58:44,850 --> 00:58:46,709 >> Entón ela dixo, debuxar un círculo. 1193 00:58:46,709 --> 00:58:49,250 Algúns de vostedes se deseña-lo xunto Lo, o que non é razoable, 1194 00:58:49,250 --> 00:58:52,450 porque os seres humanos tenden a pensar ou ler dereita a esquerda na maioría dos idiomas, polo tanto, non 1195 00:58:52,450 --> 00:58:53,017 un palpite mal. 1196 00:58:53,017 --> 00:58:55,100 Pero ese círculo podería foi dentro do cadrado, 1197 00:58:55,100 --> 00:58:57,600 podería ser en torno ao cadrado, podería ser noutro lugar 1198 00:58:57,600 --> 00:58:59,480 na folla, de xeito que, sen dúbida, ambigua. 1199 00:58:59,480 --> 00:59:03,290 >> Slope podería ser posible tendo a maioría das liberdades verbalmente 1200 00:59:03,290 --> 00:59:04,200 co que iso significa. 1201 00:59:04,200 --> 00:59:06,980 E algúns de vostedes interpretado Lo como unha liña ondulada 1202 00:59:06,980 --> 00:59:08,560 ou unha liña recta ou similares. 1203 00:59:08,560 --> 00:59:11,719 E, a continuación, triángulo, tamén, pode ter foi orientado en calquera número de formas. 1204 00:59:11,719 --> 00:59:14,760 Así, en breve, mesmo con algo que ollar e está como, uau, de xeito 1205 00:59:14,760 --> 00:59:17,020 simple, un neno podería deseñar ese, así, non 1206 00:59:17,020 --> 00:59:19,640 Realmente, a menos que está super, super-persuasiva 1207 00:59:19,640 --> 00:59:22,045 e dicir ao ordenador o que facer. 1208 00:59:22,045 --> 00:59:24,420 Entón, se nós poderíamos, se ten outra folla de papel, imos 1209 00:59:24,420 --> 00:59:26,710 tente iso unha vez máis. 1210 00:59:26,710 --> 00:59:29,880 E eu vou dar un Victoria outro exemplo na pantalla aquí. 1211 00:59:29,880 --> 00:59:34,060 E, de novo, non se virar e non mirar para os seus diapositivas. 1212 00:59:34,060 --> 00:59:37,304 E eu vou darlle un momento para pensar en como describir iso. 1213 00:59:37,304 --> 00:59:39,012 Non deixalos ver o medo nos seus ollos. 1214 00:59:39,012 --> 00:59:40,820 >> [Risas] 1215 00:59:40,820 --> 00:59:43,710 >> E unha vez máis, esta vez alavancagem algúns destes delivery 1216 00:59:43,710 --> 00:59:48,130 e tentar obter case todos polo menos, a resposta correcta. 1217 00:59:48,130 --> 00:59:52,260 >> Audiencia: OK, bótalle un anaco de papel, busque 1218 00:59:52,260 --> 00:59:54,500 no medio daquel anaco de papel. 1219 00:59:54,500 --> 00:59:59,591 No medio dese anaco de papel, deseñar un cubo. 1220 00:59:59,591 --> 01:00:01,244 >> [Risas] 1221 01:00:01,244 --> 01:00:02,660 DAVID Malan: o que aprenden? 1222 01:00:02,660 --> 01:00:03,540 Estabamos tan preto. 1223 01:00:03,540 --> 01:00:06,320 1224 01:00:06,320 --> 01:00:09,045 OK, repita se puidese, para todos. 1225 01:00:09,045 --> 01:00:13,210 >> Audiencia: No medio do anaco de papel, deseñar un obxecto, 1226 01:00:13,210 --> 01:00:14,842 que se parece un cubo. 1227 01:00:14,842 --> 01:00:17,332 >> DAVID Malan: OK, iso é todo o que tes para traballar. 1228 01:00:17,332 --> 01:00:20,010 1229 01:00:20,010 --> 01:00:23,080 Permítame ser analítica e non moi crítica, 1230 01:00:23,080 --> 01:00:25,720 pero para facer a solicitude que Victoria definitivamente 1231 01:00:25,720 --> 01:00:28,967 parece estar a pensar en moi abstraccións de alto nivel, que 1232 01:00:28,967 --> 01:00:29,800 Non é razoable. 1233 01:00:29,800 --> 01:00:32,160 Porque, se non, estariamos todos ser moi disfuncional, 1234 01:00:32,160 --> 01:00:35,740 se tivésemos de estar sempre tan preciso con todo o que facemos no mundo. 1235 01:00:35,740 --> 01:00:38,890 >> Pero dicir ir á I middle-- penso que estabamos no bo camiño, tales 1236 01:00:38,890 --> 01:00:42,340 alí, como ir ata o medio da páxina, e despois deseñar un cubo. 1237 01:00:42,340 --> 01:00:45,730 Entón, se está a pensar en abstraccións, porque aínda está a ver 1238 01:00:45,730 --> 01:00:48,490 o que está na pantalla como, de feito, un cubo. 1239 01:00:48,490 --> 01:00:51,185 Pero hai tantas oportunidades interpretación para alí. 1240 01:00:51,185 --> 01:00:53,560 E, de feito, hai tantos outras formas que pode expresar 1241 01:00:53,560 --> 01:00:55,101 que, o que eu vou propoñer, en un momento. 1242 01:00:55,101 --> 01:00:59,770 Polo tanto, temos aquí unha encarnación do un whoops-- picture-- 1243 01:00:59,770 --> 01:01:02,830 encarnación da imaxe, de xeito pouco tridimensionalidade a el, 1244 01:01:02,830 --> 01:01:04,160 que é bo. 1245 01:01:04,160 --> 01:01:08,470 >> Aquí está un máis, onde ten a mesmo, pero é unha especie de cubo aberto. 1246 01:01:08,470 --> 01:01:12,020 Algunhas persoas tomou un pouco máis plana, bidimensional. 1247 01:01:12,020 --> 01:01:13,910 E iso é bo. 1248 01:01:13,910 --> 01:01:17,380 Polo tanto, hai, de feito, no centro do papel. 1249 01:01:17,380 --> 01:01:22,720 Ese creo que vai como, porque se nós aquí, 1250 01:01:22,720 --> 01:01:25,130 Isto é o que estaba describindo. 1251 01:01:25,130 --> 01:01:29,570 Entón, agora, déixeme propoñer que outra poderiamos describir esta situación. 1252 01:01:29,570 --> 01:01:34,070 >> De volta ao día, un dos máis formas máis comúns para aprender programación 1253 01:01:34,070 --> 01:01:38,900 era escribir código, escribe liñas de instrucións, 1254 01:01:38,900 --> 01:01:42,640 que controlaba un pouco tartaruga na pantalla. 1255 01:01:42,640 --> 01:01:45,660 Logo e outras variantes deste foi o nome da linguaxe. 1256 01:01:45,660 --> 01:01:47,550 E a tartaruga vivía nun mundo. 1257 01:01:47,550 --> 01:01:49,970 >> Entón supoño que iso rectangular o espazo é seu mundo. 1258 01:01:49,970 --> 01:01:53,340 E ía comezar por assuming-- I Realmente non sei como deseñar tartaruga, 1259 01:01:53,340 --> 01:01:54,740 entón imos facelo así. 1260 01:01:54,740 --> 01:01:57,340 E entón el ten un shell e entón pode que algúns pés. 1261 01:01:57,340 --> 01:01:59,840 Entón vostede pode ter este pequeno personaxe na pantalla. 1262 01:01:59,840 --> 01:02:02,270 >> E o obxecto deste linguaxe de programación 1263 01:02:02,270 --> 01:02:06,070 foi para impoñer a tartaruga para ir cara arriba, abaixo, esquerda, dereita 1264 01:02:06,070 --> 01:02:08,420 e de poñer a súa pluma abaixo ou incorporarse a pluma para arriba, 1265 01:02:08,420 --> 01:02:12,720 para que puidese realmente deseñar na pantalla neste mundo rectangular moi plana. 1266 01:02:12,720 --> 01:02:16,850 Entón, onde eu penso que podería estar a suceder, e onde ten que considerar mergullo 1267 01:02:16,850 --> 01:02:19,520 mentalmente ata describir instrucións de xeito máis xeral, 1268 01:02:19,520 --> 01:02:21,720 Desexa afirmar, é poñer o seu pluma abaixo na middle-- 1269 01:02:21,720 --> 01:02:23,100 e imos librar da tartaruga, porque eu realmente non podo 1270 01:02:23,100 --> 01:02:24,680 manter tirando-o moi ben. 1271 01:02:24,680 --> 01:02:27,170 >> E agora, como podería Digo deseñar un cubo? 1272 01:02:27,170 --> 01:02:32,830 Así, poderiamos dicir algo así como sorteo unha liña diagonal a nordeste, por exemplo, 1273 01:02:32,830 --> 01:02:35,182 ou a un ángulo de 45 graos cara arriba. 1274 01:02:35,182 --> 01:02:36,640 E que podería me chegou aquí. 1275 01:02:36,640 --> 01:02:38,380 E eu estou moi lonxe de un cubo. 1276 01:02:38,380 --> 01:02:42,430 Pero agora, eu podería dicir algo como virar 90 graos á esquerda 1277 01:02:42,430 --> 01:02:47,370 e debuxar unha liña de igual a noroeste lonxitude. 1278 01:02:47,370 --> 01:02:49,470 E eu podería continuar con orientacións similares. 1279 01:02:49,470 --> 01:02:50,720 E non vai ser doado. 1280 01:02:50,720 --> 01:02:53,345 E, francamente, é probable que aquí hai cinco minutos. 1281 01:02:53,345 --> 01:02:59,600 Pero quizais teriamos chegado a algo que, ao final do día, 1282 01:02:59,600 --> 01:03:04,280 acaba sendo un cubo, pero mergullou dentro desa abstracción 1283 01:03:04,280 --> 01:03:06,370 para facelo en tal un baixo nivel que non pode realmente 1284 01:03:06,370 --> 01:03:09,795 ver o que está facendo ata que toda cousa é realmente alí na páxina. 1285 01:03:09,795 --> 01:03:12,670 E por iso este é un principio xeral, de novo, de programming-- esta idea 1286 01:03:12,670 --> 01:03:13,320 de abstracción. 1287 01:03:13,320 --> 01:03:15,920 É tan marabillosas poderoso, porque unha vez máis, 1288 01:03:15,920 --> 01:03:19,281 ela só dixo, deseñar un cubo, que todas -Nos practicamente ía Grokar moi rapidamente. 1289 01:03:19,281 --> 01:03:21,030 Nós só ía entender, OK, deseñar un cubo. 1290 01:03:21,030 --> 01:03:24,030 Podemos non saber a orientación, por iso, podería ser algo máis preciso, 1291 01:03:24,030 --> 01:03:26,297 pero xeralmente podemos imaxinar ou ver o que un cubo é. 1292 01:03:26,297 --> 01:03:28,130 E iso é útil, porque, se cada vez que 1293 01:03:28,130 --> 01:03:31,540 sentou-se como un programador en teclado para escribir o código, 1294 01:03:31,540 --> 01:03:33,912 se tiña que pensar en tal un nivel baixo, ningún de nós 1295 01:03:33,912 --> 01:03:35,120 xamais ía facer nada. 1296 01:03:35,120 --> 01:03:38,259 E, por suposto, ningún de nós apreciar o proceso de escribir código. 1297 01:03:38,259 --> 01:03:41,550 Sería como escribir en 0 e 1., que, francamente, non era todo o que hai moito tempo 1298 01:03:41,550 --> 01:03:43,680 os seres humanos estaban escribindo código en 0 e 1 .. 1299 01:03:43,680 --> 01:03:46,960 E moi rapidamente xurdiu con estes maior languages-- nivel 1300 01:03:46,960 --> 01:03:49,410 C ++ e Java e outros. 1301 01:03:49,410 --> 01:03:52,500 >> Entón, imos tentar que unha vez só para Xire as mesas, de xeito que todos nós 1302 01:03:52,500 --> 01:03:55,450 teñen a oportunidade de pensar en vez do mesmo xeito. 1303 01:03:55,450 --> 01:03:59,230 Poderiamos estar máis un voluntario este tempo para chegar ata a tarxeta e deseñar, 1304 01:03:59,230 --> 01:04:01,480 non recitar? 1305 01:04:01,480 --> 01:04:02,070 Si, OK. 1306 01:04:02,070 --> 01:04:04,820 Ben, imos para arriba. 1307 01:04:04,820 --> 01:04:08,510 E, Ben, neste caso, unha vez que afrontar o consello, non ollar para a esquerda, 1308 01:04:08,510 --> 01:04:09,370 non parecen estar correctas. 1309 01:04:09,370 --> 01:04:12,367 facer só o que a súa compañeiros aquí dicirlle. 1310 01:04:12,367 --> 01:04:14,950 E para todos os demais no cuarto, agora é o programador. 1311 01:04:14,950 --> 01:04:16,020 El é o ordenador. 1312 01:04:16,020 --> 01:04:21,395 E a imaxe que eu escollín aquí con antelación é este aquí. 1313 01:04:21,395 --> 01:04:24,490 1314 01:04:24,490 --> 01:04:27,660 Están só-- están pensando dunha broma divertido é todo. 1315 01:04:27,660 --> 01:04:31,510 >> Entón, sería que alguén quere voluntariamente a primeira instrución 1316 01:04:31,510 --> 01:04:35,470 ou declaración que debe A pluma de mando Ben? 1317 01:04:35,470 --> 01:04:40,850 E nós imos facelo colectivamente, quizais unha instrución de cada persoa. 1318 01:04:40,850 --> 01:04:41,440 Síntoo? 1319 01:04:41,440 --> 01:04:42,440 >> Audiencia: Debuxe un círculo. 1320 01:04:42,440 --> 01:04:45,866 DAVID Malan: Debuxe un círculo é o primeiro que escoitei. 1321 01:04:45,866 --> 01:04:47,100 >> Audiencia: Por riba da parte superior. 1322 01:04:47,100 --> 01:04:48,140 >> DAVID Malan: Por riba da parte superior. 1323 01:04:48,140 --> 01:04:52,504 OK, podemos deixalo borrar, desfacer. 1324 01:04:52,504 --> 01:04:53,420 E agora, outra persoa. 1325 01:04:53,420 --> 01:04:55,994 Dan, estaría cómodo ofrecendo a seguinte instrución? 1326 01:04:55,994 --> 01:05:02,070 >> Audiencia: Por suposto, chamar ao centro da parte inferior do círculo, 1327 01:05:02,070 --> 01:05:07,121 cun small-- algo pequeno espazo que, 1328 01:05:07,121 --> 01:05:15,420 debuxar unha liña recta ata tres cuartos do camiño para abaixo a tarxeta 1329 01:05:15,420 --> 01:05:17,845 unha lixeira inclinación cara á 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 >> Audiencia: ángulo lixeira. 1333 01:05:24,086 --> 01:05:32,807 >> DAVID Malan: Undo, Control-Z. OK. 1334 01:05:32,807 --> 01:05:34,890 Andrew, que pretende ofrecer ata a próxima instrución? 1335 01:05:34,890 --> 01:05:35,515 >> Audiencia: Por suposto. 1336 01:05:35,515 --> 01:05:43,250 A partir da parte inferior da referida liña, unha lixeira angle-- 1337 01:05:43,250 --> 01:05:49,024 whoops-- quizais preto dun terzo da lonxitude [inaudível] 1338 01:05:49,024 --> 01:05:52,928 leve ángulo abaixo e como terzo da lonxitude de [inaudível]. 1339 01:05:52,928 --> 01:05:57,550 1340 01:05:57,550 --> 01:06:00,578 Entón, si, a partir dese punto, debuxar unha liña dun terzo 1341 01:06:00,578 --> 01:06:04,150 da lonxitude da anterior liña máis á esquerda. 1342 01:06:04,150 --> 01:06:08,416 1343 01:06:08,416 --> 01:06:10,040 >> DAVID Malan: Isto OK? 1344 01:06:10,040 --> 01:06:12,330 liña recta, que é OK? 1345 01:06:12,330 --> 01:06:14,900 OK, Olivier, quere para ofrecer a seguinte? 1346 01:06:14,900 --> 01:06:28,564 >> Audiencia: [inaudível] dende o 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 Debuxe no lado dereito de [inaudível] centímetros. 1349 01:06:45,126 --> 01:06:46,560 >> [Risas] 1350 01:06:46,560 --> 01:06:49,872 >> DAVID Malan: Eu creo que vai Ten que converter isto polgadas aquí. 1351 01:06:49,872 --> 01:06:50,764 >> Audiencia: Pare. 1352 01:06:50,764 --> 01:06:52,186 >> [Risas] 1353 01:06:52,186 --> 01:06:54,570 >> DAVID Malan: OK. 1354 01:06:54,570 --> 01:06:56,660 [? Ara ,?] Quere para ofrecer a seguinte? 1355 01:06:56,660 --> 01:07:00,653 1356 01:07:00,653 --> 01:07:15,443 >> Audiencia: Deseñar un [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 deseñar [inaudível]. 1358 01:07:28,829 --> 01:07:33,799 1359 01:07:33,799 --> 01:07:36,730 >> DAVID Malan: OK, non máis desfacer. 1360 01:07:36,730 --> 01:07:38,390 Imos facer unha ou dúas instrucións. 1361 01:07:38,390 --> 01:07:40,825 Chris, que pretende ofrecer un? 1362 01:07:40,825 --> 01:07:46,182 >> Audiencia: Na parte inferior do círculo, [inaudível] 1363 01:07:46,182 --> 01:07:51,528 debuxar unha liña slopping igual abaixo, á 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 >> Audiencia: A partir da liña dereita, o fin da liña esquerda, a parte inferior, 1370 01:08:13,765 --> 01:08:21,012 está indo a ir á dereita sobre a mesma lonxitude que a liña de 1371 01:08:21,012 --> 01:08:27,680 está, chegando ao dereito [inaudível]. 1372 01:08:27,680 --> 01:08:33,572 1373 01:08:33,572 --> 01:08:37,991 [Inaudível] graos, de xeito [inaudível] clases para o lado dereito. 1374 01:08:37,991 --> 01:08:41,919 1375 01:08:41,919 --> 01:08:43,500 >> DAVID Malan: Todo ben. 1376 01:08:43,500 --> 01:08:44,029 Imos facer unha pausa. 1377 01:08:44,029 --> 01:08:44,950 Non Xire aínda. 1378 01:08:44,950 --> 01:08:46,783 Imos facer unha pausa, e imos tente outra tentativa 1379 01:08:46,783 --> 01:08:48,850 antes de revelar a Ben o que vén deseñando. 1380 01:08:48,850 --> 01:08:51,189 podes embaralhar Ben o direita-- ou realmente, 1381 01:08:51,189 --> 01:08:54,080 non, imos só darlle outra tarxeta, mellor aínda. 1382 01:08:54,080 --> 01:08:57,640 Así que alguén agora quere a ter máis de achegamento 1383 01:08:57,640 --> 01:09:02,149 Victoria que levou anteriormente, onde falamos nunha abstracción de nivel superior 1384 01:09:02,149 --> 01:09:05,149 e en só unha frase ou dous describen a Ben 1385 01:09:05,149 --> 01:09:07,229 o que deseñar sen metendo as herbas daniñas, 1386 01:09:07,229 --> 01:09:10,670 por así dicir, neste nivel máis baixo? 1387 01:09:10,670 --> 01:09:11,206 Victoria. 1388 01:09:11,206 --> 01:09:11,706 [Risas] 1389 01:09:11,706 --> 01:09:14,249 Audiencia: Debuxe unha figura do home a pé. 1390 01:09:14,249 --> 01:09:18,866 E as súas pernas e brazos ten que ser o lado dereito. 1391 01:09:18,866 --> 01:09:20,505 >> DAVID Malan: OK, iso é todo o que comeza. 1392 01:09:20,505 --> 01:09:27,210 1393 01:09:27,210 --> 01:09:27,710 Todo ben. 1394 01:09:27,710 --> 01:09:31,609 Por que non imos revelar a Ben o que fixo. 1395 01:09:31,609 --> 01:09:32,890 Así, unha salva de palmas. 1396 01:09:32,890 --> 01:09:35,700 Iso foi o máis difícil é posible. 1397 01:09:35,700 --> 01:09:37,931 >> Así, aínda que estamos a falar en termos moi tolas 1398 01:09:37,931 --> 01:09:39,680 sobre só un debuxo fotos, espero que 1399 01:09:39,680 --> 01:09:44,226 Pode realmente apreciar o grao de expresividade que pode ser necesario 1400 01:09:44,226 --> 01:09:45,850 a fin de contar unha computadora que facer. 1401 01:09:45,850 --> 01:09:50,370 E, de feito, o feito de Ben foi capaz de deseñar este tan axiña 1402 01:09:50,370 --> 01:09:54,227 é unha especie de testamento para utilizar un linguaxe, quizais un nivel 1403 01:09:54,227 --> 01:09:57,060 versión do inglés, que permite que usar só palabras, é escoitar palabras 1404 01:09:57,060 --> 01:09:59,990 de Victoria, que lle permiten estes abstractions-- só deseñar 1405 01:09:59,990 --> 01:10:03,020 unha figura camiñando ao direita-- este tipo de conta 1406 01:10:03,020 --> 01:10:07,100 algún significado semántico para que isto non é case tan obvio cando é só 1407 01:10:07,100 --> 01:10:10,310 dicindo, introduza o seu bolígrafo abaixo, debuxe á dereita, debuxe á esquerda. 1408 01:10:10,310 --> 01:10:12,420 >> E así por iso, tamén, é moi común en programación. 1409 01:10:12,420 --> 01:10:15,253 Este sería dito para ser como unha moi baixo linguaxe de nivel, programación 1410 01:10:15,253 --> 01:10:16,730 en 0 e 1 do que quere. 1411 01:10:16,730 --> 01:10:19,320 E este sería un nivel Linguaxe de Programación en Java, 1412 01:10:19,320 --> 01:10:20,278 ou algo así. 1413 01:10:20,278 --> 01:10:22,050 Un pouco de un simplificación esaxerada, pero iso é 1414 01:10:22,050 --> 01:10:24,310 o tipo de como emocional sentindo que sente cando 1415 01:10:24,310 --> 01:10:26,630 usando un tipo de cousa ou outra. 1416 01:10:26,630 --> 01:10:32,650 Un pouco de frustración aquí pola necesidade para tal precisión, pero a oportunidade 1417 01:10:32,650 --> 01:10:34,930 a ser un pouco máis flexible con a interpretación aquí. 1418 01:10:34,930 --> 01:10:38,060 Pero, por suposto, erros poden xurdir como resultado. 1419 01:10:38,060 --> 01:10:40,500 >> Se desexa casa-- nós Non vai facer este en class-- 1420 01:10:40,500 --> 01:10:41,900 pero se quere levar un regalo para casa, 1421 01:10:41,900 --> 01:10:43,387 Pensei que ía mergullar neste. 1422 01:10:43,387 --> 01:10:45,970 Entón, se quere xogar este xogo co seu outro significativo 1423 01:10:45,970 --> 01:10:49,180 ou fillos ou similares, que pode aproveitar iso tamén. 1424 01:10:49,180 --> 01:10:54,460 >> Entón, imos adiante e ollar a unha última cousa aquí para pensamento computacional. 1425 01:10:54,460 --> 01:10:57,010 E iso lévanos a John Oliver, non para o clip 1426 01:10:57,010 --> 01:11:00,070 podes ver na noite pasada, pero a un problema relativamente recente. 1427 01:11:00,070 --> 01:11:03,310 Uns meses, a Volkswagen tomou un pouco de crítica 1428 01:11:03,310 --> 01:11:05,651 para o que razón, se sabe? 1429 01:11:05,651 --> 01:11:07,025 O que estar en apuros para? 1430 01:11:07,025 --> 01:11:10,270 1431 01:11:10,270 --> 01:11:14,030 >> Si, entón eles emissions-- estaban tentando gañar as emisións 1432 01:11:14,030 --> 01:11:19,100 probas por esencialmente a coches contaminar o ambiente menos 1433 01:11:19,100 --> 01:11:23,620 cando os seus coches foron sendo probado e contaminar o ambiente máis 1434 01:11:23,620 --> 01:11:25,547 cando os coches non estaban a ser probado. 1435 01:11:25,547 --> 01:11:28,630 E o que é cada vez máis interesante no mundo, como pode ter inferido 1436 01:11:28,630 --> 01:11:34,072 das discusións sobre o que é como-- ele-- CarPlay, software de Apple para coches 1437 01:11:34,072 --> 01:11:35,780 eo feito de que moitos de nós cada vez máis 1438 01:11:35,780 --> 01:11:38,390 teñen pantallas táctiles nos nosos coches, hai unha cantidade asustado 1439 01:11:38,390 --> 01:11:41,250 de software no pobo de coches de hoxe, que 1440 01:11:41,250 --> 01:11:45,650 francamente abre unha lata de vermes cando se trata de seguridade e risco físico. 1441 01:11:45,650 --> 01:11:48,070 Pero para hoxe, imos centrar só o que é 1442 01:11:48,070 --> 01:11:52,170 envolto software de gravación que pode ter cazado o sistema. 1443 01:11:52,170 --> 01:11:54,510 >> Para a definición do problema, para quen non coñece, 1444 01:11:54,510 --> 01:11:55,740 imos dar un ollo John Oliver. 1445 01:11:55,740 --> 01:11:58,115 E para aqueles familiarizados con o problema, imos ollar para el 1446 01:11:58,115 --> 01:12:00,480 nunha lente a través de desfrute John Oliver ben. 1447 01:12:00,480 --> 01:12:05,810 Entón deixe-me bateu xogar sobre iso, eu creo que, a introdución de tres minutos. 1448 01:12:05,810 --> 01:12:07,074 Carallo. 1449 01:12:07,074 --> 01:12:07,740 [Reprodución 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, en YouTube, it's-- 1452 01:12:09,919 --> 01:12:12,500 - --os Personaxes máis intelixentes as películas Veloces e Furiosos. 1453 01:12:12,500 --> 01:12:16,080 Esta semana, a montadora alemá Volkswagen atopou-se 1454 01:12:16,080 --> 01:12:19,430 no medio dun escándalo de proporcións potencialmente penais. 1455 01:12:19,430 --> 01:12:23,020 >> -Volkswagen Está preparado para millóns en multas, posibles cargos criminais 1456 01:12:23,020 --> 01:12:25,530 para os seus directivos, como a empresa pide desculpas 1457 01:12:25,530 --> 01:12:28,790 para aparellos 11 millóns de coches para axudala a gañar a probas de emisións. 1458 01:12:28,790 --> 01:12:32,110 >> modelos diésel -Certos foron deseñados co software sofisticado que 1459 01:12:32,110 --> 01:12:35,410 información utilizadas, incluíndo a posición do volante e do vehículo 1460 01:12:35,410 --> 01:12:38,820 velocidade, para determinar o coche era sometidos a probas de emisións. 1461 01:12:38,820 --> 01:12:42,620 Nesa circunstancia, o motor reduciría as emisións tóxicas. 1462 01:12:42,620 --> 01:12:46,040 Pero o coche foi fraude para ignorar que cando estaba sendo conducido. 1463 01:12:46,040 --> 01:12:51,370 As emisións aumentaron 10 a 40 veces por encima dos niveis de EPA aceptables. 1464 01:12:51,370 --> 01:12:55,920 >> -A Nosa, 10 a 40 veces maior que a EPA permite. 1465 01:12:55,920 --> 01:12:59,570 Esta é a peor cousa Volkswagen xa fixo, 1466 01:12:59,570 --> 01:13:04,200 é algo que ten que dicir se nunca tiña oído falar da Segunda Guerra Mundial. 1467 01:13:04,200 --> 01:13:09,710 Pero quizais o sinal máis seguro de como moita dificultade Volkswagen está, 1468 01:13:09,710 --> 01:13:12,730 é que a xente no moi top renunciaron. 1469 01:13:12,730 --> 01:13:16,320 O CEO, renunciou o mércores despois loitando para controlar os danos, 1470 01:13:16,320 --> 01:13:20,380 dicindo que era infinitamente moito, que parecía óptimo ata que acabou 1471 01:13:20,380 --> 01:13:22,920 el era só un 10% Sentímolo pero tiña manipulado boca 1472 01:13:22,920 --> 01:13:25,600 para inflar artificialmente o seu arrepentimento. 1473 01:13:25,600 --> 01:13:29,700 E mentres tanto, US de Volkswagen xefe tivo unha petición de desculpas de súa autoría. 1474 01:13:29,700 --> 01:13:33,580 >> -Imos Ser claro sobre isto, A nosa empresa foi deshonesto. 1475 01:13:33,580 --> 01:13:37,140 E nas miñas palabras alemás, nós teñen totalmente asneira. 1476 01:13:37,140 --> 01:13:41,360 >> -Si, Pero totalmente aparafusado se non son obras alemás. 1477 01:13:41,360 --> 01:13:43,750 E a lingua alemá Ten moitas frases bonitas 1478 01:13:43,750 --> 01:13:50,070 para describir situacións como esta, como [ALEMÁN], que significa aproximadamente, 1479 01:13:50,070 --> 01:13:52,870 a tristeza que vén das mentiras de negocios relacionados, 1480 01:13:52,870 --> 01:13:59,060 ou [Alemán], o que se traduce como avergoñar aqueles pai inclúen 1481 01:13:59,060 --> 01:14:00,352 nubes de gasolina. 1482 01:14:00,352 --> 01:14:02,060 É unha lingua fermosa. 1483 01:14:02,060 --> 01:14:04,660 El só navega fóra da lingua. 1484 01:14:04,660 --> 01:14:07,920 E, a propósito, mentres que o do home desculpa pode soado sincero, 1485 01:14:07,920 --> 01:14:12,260 Paga a pena notar que estaba falando en unha festa oficial de lanzamento para 2016 1486 01:14:12,260 --> 01:14:17,310 Volkswagen Passat, o que significa que en breve despois de dicir moito, el dixo iso. 1487 01:14:17,310 --> 01:14:18,850 >> -Moitas Grazas por vir. 1488 01:14:18,850 --> 01:14:19,630 Disfruta da noite. 1489 01:14:19,630 --> 01:14:21,300 O seguinte é Lenny Kravitz. 1490 01:14:21,300 --> 01:14:24,640 >> [Reprodución de música] 1491 01:14:24,640 --> 01:14:28,230 >> -OK, OK, terminando a súa desculpa con ata próxima 1492 01:14:28,230 --> 01:14:31,940 Lenny Kravitz non berrar contrición sobrio. 1493 01:14:31,940 --> 01:14:35,830 Ela berra, pedimos Bon Jovi, e el dixo que non. 1494 01:14:35,830 --> 01:14:38,600 marca de Volkswagen ten foi moi mal. 1495 01:14:38,600 --> 01:14:42,466 E, francamente, o seu novo anuncio campaña non é exactamente axudando. 1496 01:14:42,466 --> 01:14:47,289 >> - [Alemán], nos de Volkswagen quere pedindo desculpas por enganar-lo con 1497 01:14:47,289 --> 01:14:47,930 nosos vehículos. 1498 01:14:47,930 --> 01:14:48,513 >> [FIN DE REPRODUCIÓN] 1499 01:14:48,513 --> 01:14:54,090 DAVID Malan: Entón esta foi unha forma indirecta de-- sorry-- 1500 01:14:54,090 --> 01:14:58,730 esta foi unha forma indirecta de a introdución dun problema fundamental 1501 01:14:58,730 --> 01:15:02,810 en software, o que é o que que detectar determinadas condicións. 1502 01:15:02,810 --> 01:15:07,680 E así a cuestión en apreciado aquí é, como é que un coche potencialmente, 1503 01:15:07,680 --> 01:15:09,870 como aplicado no programa por estes desenvolvedores, 1504 01:15:09,870 --> 01:15:11,850 detectar que realmente está a ser probado? 1505 01:15:11,850 --> 01:15:14,150 Así, para ser super claro, o que estaban facendo 1506 01:15:14,150 --> 01:15:17,940 foi, en ambientes onde os programadores figurado 1507 01:15:17,940 --> 01:15:20,460 o coche estaba sendo probado, eles dalgunha forma 1508 01:15:20,460 --> 01:15:24,840 o coche emiten menos emisións, menos emisións, fumes de xeito menos tóxicos 1509 01:15:24,840 --> 01:15:25,470 e tal. 1510 01:15:25,470 --> 01:15:27,261 Pero cando adoita a condución en estrada, 1511 01:15:27,261 --> 01:15:30,350 sería só emiten tanto a contaminación, xa que quería. 1512 01:15:30,350 --> 01:15:33,870 >> Así como poderiamos escribir o pseudocódigo para este algoritmo? 1513 01:15:33,870 --> 01:15:37,820 Como poderiamos escribir pseudocódigo para o software en execución no coche? 1514 01:15:37,820 --> 01:15:43,390 É dicir, en poucas palabras, que ferve abaixo para algo así. 1515 01:15:43,390 --> 01:15:48,000 se a ser probado, emiten menos. 1516 01:15:48,000 --> 01:15:50,750 outra emite máis. 1517 01:15:50,750 --> 01:15:52,630 Pero iso é algo nivel moi alto, non? 1518 01:15:52,630 --> 01:15:58,580 >> Intentaremos mergullo, como o que este abstracción do que significa ser probado. 1519 01:15:58,580 --> 01:16:06,340 Noutras palabras, mesmo se non sabe nada sobre coches, que tipo de preguntas 1520 01:16:06,340 --> 01:16:13,440 Pode preguntar, a fin de determinar se está a ser probado, se é o coche? 1521 01:16:13,440 --> 01:16:19,638 O que se pode características presentar un coche está a ser probado? 1522 01:16:19,638 --> 01:16:21,026 >> Audiencia: Probando equipo. 1523 01:16:21,026 --> 01:16:22,420 >> DAVID Malan: Equipos de test. 1524 01:16:22,420 --> 01:16:26,060 Entón, se o equipo de proba nas proximidades, a continuación, emiten menos. 1525 01:16:26,060 --> 01:16:28,669 Entón eu podería imaxinar implementación que, con algún tipo de cámaras 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 déixeme propoñer, que só se sente moi complicado 1528 01:16:32,870 --> 01:16:37,914 para realmente ter adicional hardware só para esa finalidade. 1529 01:16:37,914 --> 01:16:44,830 >> Audiencia: Se vostede está en parque, se o capó está aberto. 1530 01:16:44,830 --> 01:16:47,320 >> DAVID Malan: No parque ou capo aberto, de xeito que é bo. 1531 01:16:47,320 --> 01:16:47,420 >> Audiencia: E coche de carreiras. 1532 01:16:47,420 --> 01:16:50,480 >> DAVID Malan: Entón, iso é un pouco máis concrete-- e coche de carreiras. 1533 01:16:50,480 --> 01:16:55,690 Polo tanto, esta sería a conxunción dun algunhas condicións diferentes, se quere. 1534 01:16:55,690 --> 01:16:59,227 Entón, se o coche está no parque, e mesmo aínda que iso é unha cousa moi mecánica 1535 01:16:59,227 --> 01:17:01,060 Normalmente, eu podería Imaxina escribir software, 1536 01:17:01,060 --> 01:17:03,476 sobre todo porque non hai moitas veces unha luz alí estes días, 1537 01:17:03,476 --> 01:17:07,400 Podería imaxinar que haxa software que pode consultar o Shift 1538 01:17:07,400 --> 01:17:10,634 ou que non, está no parque, son Lo na unidade, está en sentido inverso. 1539 01:17:10,634 --> 01:17:12,550 E podo volver un responder a iso é tanto si 1540 01:17:12,550 --> 01:17:14,400 ou non a estes tipos de preguntas. 1541 01:17:14,400 --> 01:17:17,630 >> E así eu tamén podería probablemente responder unha pregunta como é o capó aberto. 1542 01:17:17,630 --> 01:17:21,860 Quizais, hai algún tipo de sensor de que tanto me dá de volta un 1 ou 0, 1543 01:17:21,860 --> 01:17:23,720 verdadeiro ou falso, o capó está aberto. 1544 01:17:23,720 --> 01:17:28,180 E, a continuación, coche correndo, eu podería detectar que dalgún xeito a través de cal mecanismo? 1545 01:17:28,180 --> 01:17:30,430 Como, o coche funciona, eu podería detectar que está ligada, 1546 01:17:30,430 --> 01:17:32,127 Podería detectar algún que o coche está en movemento? 1547 01:17:32,127 --> 01:17:32,881 >> Audiencia: RPMs. 1548 01:17:32,881 --> 01:17:35,190 >> DAVID Malan: Si, por iso hai sempre que agulla que 1549 01:17:35,190 --> 01:17:38,034 informa cantas revolucións por hora as rodas están experimentando. 1550 01:17:38,034 --> 01:17:39,200 E así eu podería ollar para iso. 1551 01:17:39,200 --> 01:17:43,090 E se non é 0, que, probablemente, significa que o coche está en movemento. 1552 01:17:43,090 --> 01:17:45,400 Pero temos que ser un pouco coidado aí, 1553 01:17:45,400 --> 01:17:49,780 porque-- imos simplificar isto-- se acaba de dicir, o coche de carreiras, 1554 01:17:49,780 --> 01:17:53,070 Non queremos só emiten menos, queremos que o coche está en execución 1555 01:17:53,070 --> 01:17:54,310 e está a ser probado. 1556 01:17:54,310 --> 01:17:56,320 >> Polo tanto, hai algunhas outras Ingredientes que persoas 1557 01:17:56,320 --> 01:18:00,550 teñen a hipótese de que o software está facendo, porque ausente o código fonte real, 1558 01:18:00,550 --> 01:18:05,130 só se pode tipo de inferir a partir da efectos físicos do coche, como o que 1559 01:18:05,130 --> 01:18:08,280 pode estar a suceder baixo o capó en software. 1560 01:18:08,280 --> 01:18:17,090 Entón, se coche funcionando e quizais, digamos, rodas traseiras non movendo, 1561 01:18:17,090 --> 01:18:19,420 isto pode ser un indicativo dalgún tipo de proba? 1562 01:18:19,420 --> 01:18:22,830 O que estou suxerindo aquí? 1563 01:18:22,830 --> 01:18:24,830 É, quizais, é nun destas cousas de rolos, 1564 01:18:24,830 --> 01:18:28,340 onde como as rodas están xirando na parte da fronte ou na parte de atrás, 1565 01:18:28,340 --> 01:18:32,570 dependendo se é roda dianteira ou tracción traseira, para a metade das rodas 1566 01:18:32,570 --> 01:18:34,420 están movendo, pero o outros dous non son, o que 1567 01:18:34,420 --> 01:18:36,320 é unha situación estraña no mundo real. 1568 01:18:36,320 --> 01:18:38,110 Se está dirixido na estrada, que non debería ocorrer. 1569 01:18:38,110 --> 01:18:40,568 Pero se está en un almacén en algún tipo de sistema de rolos, 1570 01:18:40,568 --> 01:18:41,630 que realmente pode acontecer. 1571 01:18:41,630 --> 01:18:46,980 >> Creo que a xente tamén propuxo que quizais se o coche está en execución e dirección 1572 01:18:46,980 --> 01:18:51,300 non roda en movemento, que Tamén pode ser un sinal, 1573 01:18:51,300 --> 01:18:54,090 porque iso é razoable para como un inmediato nunha estrada. 1574 01:18:54,090 --> 01:18:57,960 Pero, aínda así, o humano está probablemente movelo un pouco ou seguramente 1575 01:18:57,960 --> 01:18:59,100 durante uns segundos. 1576 01:18:59,100 --> 01:19:01,030 Ou o curso dun minutos, as posibilidades son de que non 1577 01:19:01,030 --> 01:19:03,510 será fixado exactamente na mesma posición. 1578 01:19:03,510 --> 01:19:05,440 >> Así, noutras palabras, nós pode levar a resta, 1579 01:19:05,440 --> 01:19:08,200 está a ser probado, e romper esa función 1580 01:19:08,200 --> 01:19:10,420 para estes ingredientes que o compoñen. 1581 01:19:10,420 --> 01:19:13,440 E iso é realmente o que Volkswagen do enxeñeiros de algunha maneira o fixo. 1582 01:19:13,440 --> 01:19:17,070 Eles escribiron software conscientemente detectar se o coche está a ser probado, 1583 01:19:17,070 --> 01:19:20,440 polo tanto, emiten menos, outra emiten na forma habitual. 1584 01:19:20,440 --> 01:19:22,690 >> E o problema aquí, tamén, é que o software non é 1585 01:19:22,690 --> 01:19:26,080 algo que realmente pode ver a menos ten o chamado código fonte. 1586 01:19:26,080 --> 01:19:29,060 Polo tanto, hai dous tipos de code--, polo menos, dous tipos 1587 01:19:29,060 --> 01:19:30,130 de código no mundo. 1588 01:19:30,130 --> 01:19:33,150 Hai algo chamado aberto de código, o que non é o que a diferenza 1589 01:19:33,150 --> 01:19:37,240 que teño escrito, o código fonte. 1590 01:19:37,240 --> 01:19:40,099 >> Este é o código fonte escrito en unha linguaxe chamada pseudo-código, 1591 01:19:40,099 --> 01:19:41,640 que é só algo inglés-like. 1592 01:19:41,640 --> 01:19:43,140 Non hai ningunha definición formal da mesma. 1593 01:19:43,140 --> 01:19:46,770 Pero C e Java, C ++, os son todas as linguaxes formais que, 1594 01:19:46,770 --> 01:19:50,610 cando escribe neles, o que ten é un ficheiro de texto que contén código fonte. 1595 01:19:50,610 --> 01:19:54,850 >> Pero tamén hai algo en o mundo chama código de máquina. 1596 01:19:54,850 --> 01:20:00,579 E código de máquina, por desgraza, Está só a 0 e 1 .. 1597 01:20:00,579 --> 01:20:02,870 Así, o código de máquina é o que máquinas de entender, por suposto. 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, xeralmente, non mais sempre, hai un programa 1600 01:20:08,390 --> 01:20:14,090 que usa un programador que leva fonte código e transforma-lo en código máquina. 1601 01:20:14,090 --> 01:20:17,400 E este programa é xeralmente chamado de un compilador. 1602 01:20:17,400 --> 01:20:19,820 Polo tanto, a súa entrada é o código fonte, súa saída é o código de máquina, 1603 01:20:19,820 --> 01:20:22,890 eo compilador é unha peza de software que fai este proceso. 1604 01:20:22,890 --> 01:20:26,260 Entón, iso realmente mapea moi ben para nosos insumos, algoritmos saídas. 1605 01:20:26,260 --> 01:20:30,400 >> Pero esta é unha encarnación moi específico de que, o que quere dicir que, 1606 01:20:30,400 --> 01:20:34,200 mesmo se ten unha das Volkswagen coches que é culpable disto, 1607 01:20:34,200 --> 01:20:38,390 Non é como pode simplemente abrir o exaustores ou abrir a guía do usuario ou mirar 1608 01:20:38,390 --> 01:20:42,690 o código fonte, xa que no momento en chega o seu coche na súa garaxe, 1609 01:20:42,690 --> 01:20:45,580 xa convertido 0 e 1 .. 1610 01:20:45,580 --> 01:20:51,310 E é moi difícil, non imposible, pero moi difícil de recoller moita cousa 1611 01:20:51,310 --> 01:20:53,710 a partir de só mirando para o subxacente a 0 e 1 do. 1612 01:20:53,710 --> 01:20:57,150 Así, pode descubrir que, en definitiva, se entende como unha máquina operates-- 1613 01:20:57,150 --> 01:20:59,870 Intel dentro-- se entender a arquitectura Intel, 1614 01:20:59,870 --> 01:21:01,440 pero é moi lento. 1615 01:21:01,440 --> 01:21:05,010 E aínda alí, pode non poder ver todo 1616 01:21:05,010 --> 01:21:08,220 que o código pode realmente facer. 1617 01:21:08,220 --> 01:21:12,521 >> Calquera dúbida sobre este ou este tipo de proceso máis xeralmente? 1618 01:21:12,521 --> 01:21:15,134 1619 01:21:15,134 --> 01:21:18,300 E, de feito, podemos amarrar esa discusión a discusión de onte de Apple. 1620 01:21:18,300 --> 01:21:22,500 Isto, tamén, é por iso que o FBI non pode só ir e ollar no teléfono do sospeitoso 1621 01:21:22,500 --> 01:21:26,820 e atopar as liñas de código, por exemplo, que permiten que o código de acceso 1622 01:21:26,820 --> 01:21:28,940 ou permitan que esa demora 80 milisegundos. 1623 01:21:28,940 --> 01:21:31,630 Porque no momento en que é no iPhone do compañeiro, 1624 01:21:31,630 --> 01:21:34,975 xa convertidos en 0 e 1 .. 1625 01:21:34,975 --> 01:21:38,015 1626 01:21:38,015 --> 01:21:40,820 >> Ben, imos facer unha pausa aquí para o noso ollar pensamento computacional. 1627 01:21:40,820 --> 01:21:42,320 Por que non imos facer unha pausa de 15 minutos. 1628 01:21:42,320 --> 01:21:44,130 E cando volver, imos dar un ollo a programación 1629 01:21:44,130 --> 01:21:46,550 -se e comezar a mapear algúns destes conceptos de alto nivel 1630 01:21:46,550 --> 01:21:49,780 a un real, se brincallón, linguaxe de programación. 1631 01:21:49,780 --> 01:21:51,089