1 00:00:00,000 --> 00:00:00,270 2 00:00:00,270 --> 00:00:01,790 DAVID MALAN: Bienvenue à nouveau, tout le monde. 3 00:00:01,790 --> 00:00:05,030 Donc hier, vous vous souviendrez que nous nous sommes concentrés sur ces sujets ici. 4 00:00:05,030 --> 00:00:08,380 Donc, nous avons eu quatre topics-- global la vie privée, la sécurité, et de la société; 5 00:00:08,380 --> 00:00:11,960 technologies de l'internet; cloud computing; et, finalement, le développement web. 6 00:00:11,960 --> 00:00:14,170 >> Quelqu'un at-il le la bande passante ou du temps 7 00:00:14,170 --> 00:00:16,900 pour regarder un peu John Oliver hier soir? 8 00:00:16,900 --> 00:00:20,120 Il est en fait assez amusant, sinon un peu effrayant. 9 00:00:20,120 --> 00:00:24,700 Toutes les questions sur quoi que ce soit nous avons fait hier? 10 00:00:24,700 --> 00:00:27,600 Toute précision? 11 00:00:27,600 --> 00:00:35,580 Toutes les questions que vous voulez faire que nous touchons aujourd'hui sous une certaine forme? 12 00:00:35,580 --> 00:00:37,300 ardoise Alors propre. 13 00:00:37,300 --> 00:00:38,760 >> Alors, quel est l'ordre du jour pour aujourd'hui? 14 00:00:38,760 --> 00:00:41,301 Je pensais que nous allions commencer aujourd'hui avec un coup d'oeil à ce qui est généralement 15 00:00:41,301 --> 00:00:44,460 connu sous le nom thinking-- de calcul au le risque de trop simplifier, pensant 16 00:00:44,460 --> 00:00:46,636 comme un ordinateur, peut-être penser comme un ingénieur, 17 00:00:46,636 --> 00:00:48,510 et essayer de commencer à organiser vos pensées 18 00:00:48,510 --> 00:00:52,039 ou pour vous donner une meilleure idée de ce qui est impliqué dans le fait commandant 19 00:00:52,039 --> 00:00:54,080 un ordinateur de faire quelque chose par le biais de la programmation. 20 00:00:54,080 --> 00:00:56,663 Et nous allons le garder à un joli de haut niveau, à peu près l'anglais, 21 00:00:56,663 --> 00:00:59,850 mais essayez d'utiliser des familiers exemples de formaliser la façon dont 22 00:00:59,850 --> 00:01:01,450 vous iriez sur la résolution de problèmes. 23 00:01:01,450 --> 00:01:04,080 >> Et nous allons revoir certains CS sujets, comme l'abstraction, 24 00:01:04,080 --> 00:01:06,040 qui est entré un couple de fois hier, 25 00:01:06,040 --> 00:01:07,554 algorithmes, puis la représentation. 26 00:01:07,554 --> 00:01:09,720 Et voilà où nous allons commencer aujourd'hui dans un instant. 27 00:01:09,720 --> 00:01:11,481 Ensuite, nous allons jeter un oeil à la programmation. 28 00:01:11,481 --> 00:01:13,480 Nous allons jeter un oeil à certains constructions fondamentales 29 00:01:13,480 --> 00:01:16,450 avec lequel vous pourriez être familier et pourrait même trouver assez intuitive. 30 00:01:16,450 --> 00:01:18,370 >> Nous allons voir, en effet, à une programmation de l'échantillon 31 00:01:18,370 --> 00:01:21,244 environnement qui est très accessible, très ludique, et bien ciblé 32 00:01:21,244 --> 00:01:22,555 pour 12 ans et plus. 33 00:01:22,555 --> 00:01:25,930 Nous allons passer quelques minutes il puis prendre les choses à un niveau inférieur 34 00:01:25,930 --> 00:01:30,360 et effectivement parler de certains les algorithmes et structures de données, 35 00:01:30,360 --> 00:01:32,360 pour ainsi dire, que programmeurs utilisent généralement 36 00:01:32,360 --> 00:01:35,040 pour résoudre des problèmes beaucoup plus efficacement que vous pourriez 37 00:01:35,040 --> 00:01:37,322 être en mesure de le faire sans eux tout à fait. 38 00:01:37,322 --> 00:01:40,280 Puis, après le déjeuner, nous allons jeter un coup d'oeil à piles de la technologie, qui est juste 39 00:01:40,280 --> 00:01:42,240 une façon élégante de dire collections de technologies 40 00:01:42,240 --> 00:01:43,690 que vous pourriez utiliser pour résoudre un problème. 41 00:01:43,690 --> 00:01:46,670 Et nous allons parler de l'alphabet soupe de langues qui existent today-- 42 00:01:46,670 --> 00:01:50,930 Java et Python et C ++ et PHP et Ruby et toutes sortes d'autres choses. 43 00:01:50,930 --> 00:01:53,740 >> Nous allons jeter un bref regard au design patterns. 44 00:01:53,740 --> 00:01:57,730 Les programmeurs, au fil du temps, ont des méthodologies adoptées 45 00:01:57,730 --> 00:02:00,690 qui tendent à les aider résoudre les problèmes plus facilement. 46 00:02:00,690 --> 00:02:04,390 Lorsque vous commencez à vous voir écrire le même type de code encore et encore, 47 00:02:04,390 --> 00:02:08,080 personnes formalisent ces répétitions et les noms de leur attribuer 48 00:02:08,080 --> 00:02:10,084 et ensuite les utiliser et promouvoir, en fin de compte. 49 00:02:10,084 --> 00:02:12,250 Et nous allons parler un peu sur les stratégies mobiles, 50 00:02:12,250 --> 00:02:16,099 comme ce que cela signifie réellement faire une application mobile ou un site Web mobile. 51 00:02:16,099 --> 00:02:17,140 Avez-vous le faire pour Android? 52 00:02:17,140 --> 00:02:17,730 Avez-vous le faire pour iOS? 53 00:02:17,730 --> 00:02:19,160 Avez-vous le faire pour deux personnes? 54 00:02:19,160 --> 00:02:20,326 Et quels sont les compromis? 55 00:02:20,326 --> 00:02:23,180 Et puis finalement, nous allons une programmation web de regard, qui 56 00:02:23,180 --> 00:02:25,380 est un terme collectif vraiment décrivant tout moment 57 00:02:25,380 --> 00:02:28,410 vous écrivez un logiciel qui est destiné à fonctionner sur le web, 58 00:02:28,410 --> 00:02:30,430 que ce soit sur les téléphones ou ordinateurs de bureau ou ordinateurs portables. 59 00:02:30,430 --> 00:02:33,490 Nous allons jeter un bref regard sur bases de données et la conception 60 00:02:33,490 --> 00:02:39,049 celui-ci, si seulement parce que presque tous les application web intéressante 61 00:02:39,049 --> 00:02:40,590 ces jours-ci a une sorte de base de données. 62 00:02:40,590 --> 00:02:42,380 Sinon, il serait juste être contenu statique. 63 00:02:42,380 --> 00:02:45,254 Et une base de données vous permet de faire les changements au fil du temps, que ce soit vous-même 64 00:02:45,254 --> 00:02:45,960 ou des utilisateurs. 65 00:02:45,960 --> 00:02:47,820 Et nous allons examiner comment vous irait sur la conception 66 00:02:47,820 --> 00:02:50,510 cette base de données et le type de jargon qui pourrait venir dans un ingénieur de 67 00:02:50,510 --> 00:02:52,790 discussion à un tableau blanc alors qu'en réalité, la mise en œuvre 68 00:02:52,790 --> 00:02:53,900 une application pour la première fois. 69 00:02:53,900 --> 00:02:57,002 >> Nous allons parler brièvement de API, services utiles 70 00:02:57,002 --> 00:02:59,960 que vous pouvez utiliser pour se tenir debout sur la épaules des autres, que ce soit les entreprises 71 00:02:59,960 --> 00:03:02,619 ou des individus, et résoudre votre propres problèmes plus rapidement. 72 00:03:02,619 --> 00:03:04,785 Et puis nous allons peut-être Dabble un peu avec JavaScript, 73 00:03:04,785 --> 00:03:08,900 un langage de programmation qui est utilisé les deux dans les navigateurs ces jours-ci, mais aussi 74 00:03:08,900 --> 00:03:09,820 dans les serveurs. 75 00:03:09,820 --> 00:03:11,890 Et peut-être, nous allons revisiter le temps le permet, 76 00:03:11,890 --> 00:03:15,670 quelques-unes des mains sur la toile des choses que nous a fait hier et intégrer les deux 77 00:03:15,670 --> 00:03:17,630 ensemble avant de lever la séance. 78 00:03:17,630 --> 00:03:22,380 >> Donc, avec ce qui est that-- ahead-- est il manque quelque chose que vous 79 00:03:22,380 --> 00:03:26,289 aimerait nous assurer que nous insérons et toucher à un moment donné. 80 00:03:26,289 --> 00:03:28,330 Si ses sources à l'esprit, le mettre avant longtemps. 81 00:03:28,330 --> 00:03:32,010 Mais pourquoi ne pas commencer avec un regarder la pensée informatique. 82 00:03:32,010 --> 00:03:35,420 >> Et permettez-moi de proposer que la pensée de calcul est, encore une fois, 83 00:03:35,420 --> 00:03:38,830 sorte de la description de haut niveau de quel informaticien pourrait faire. 84 00:03:38,830 --> 00:03:42,470 Et en effet, nous allons commencer avec trois ingrédients qui 85 00:03:42,470 --> 00:03:44,207 pourrait aller dans la pensée de calcul. 86 00:03:44,207 --> 00:03:45,790 Ceci est juste une façon de le décrire. 87 00:03:45,790 --> 00:03:48,490 Nous pourrions certainement définir ceci dans n'importe quel nombre de façons. 88 00:03:48,490 --> 00:03:50,630 >> Mais permettez-moi de proposer, pour l'amour d'aujourd'hui, 89 00:03:50,630 --> 00:03:53,910 que les problèmes du monde, tous les problèmes du monde, 90 00:03:53,910 --> 00:03:56,730 quand il est approché par un informaticien pourrait 91 00:03:56,730 --> 00:04:00,990 être considéré comme ce que nous allons entrées d'appel, qui 92 00:04:00,990 --> 00:04:08,142 besoin de se nourrir dans ce que nous appellerons algorithmes, qui donnent ensuite des sorties. 93 00:04:08,142 --> 00:04:10,600 En d'autres termes, la totalité monde de la I revendication de résolution de problèmes 94 00:04:10,600 --> 00:04:13,140 peut être distillée dans ces trois ingrédients. 95 00:04:13,140 --> 00:04:14,450 Alors qu'est-ce que je veux dire par les entrées? 96 00:04:14,450 --> 00:04:17,060 Entrées est juste ce que vous êtes remis afin de résoudre. 97 00:04:17,060 --> 00:04:20,052 >> Par exemple, voici un problème de vieille école. 98 00:04:20,052 --> 00:04:22,760 Si je dois un livre de téléphone ici et Je veux regarder quelque chose en elle, 99 00:04:22,760 --> 00:04:23,760 ceci est mon entrée. 100 00:04:23,760 --> 00:04:26,260 J'ai 1000 ou plus pages dans un annuaire téléphonique. 101 00:04:26,260 --> 00:04:27,780 Ceci est l'entrée à mon problème. 102 00:04:27,780 --> 00:04:31,507 Et je veux trouver quelque chose comme Mike Smith, donc un ami 103 00:04:31,507 --> 00:04:33,840 dont le nom et le numéro est nous espérons que dans ce carnet d'adresses. 104 00:04:33,840 --> 00:04:36,430 >> Ceci est avant les jours de cellule téléphones, donc je ne peux pas simplement chercher. 105 00:04:36,430 --> 00:04:38,540 Donc, je dois le faire vieux la recherche de l'école et fait 106 00:04:38,540 --> 00:04:41,331 ces entrées pour une certaine réponse. 107 00:04:41,331 --> 00:04:43,580 Et cette réponse va tout simplement à appeler la sortie. 108 00:04:43,580 --> 00:04:44,871 Donc, l'entrée est le livre de téléphone. 109 00:04:44,871 --> 00:04:47,787 L'algorithme est quelque ensemble de étapes que j'utilise pour trouver Mike Smith. 110 00:04:47,787 --> 00:04:50,120 Et la sortie est, espérons-le, le numéro de téléphone de Mike Smith. 111 00:04:50,120 --> 00:04:52,703 Et ce serait alors juste représentant de la plupart aucun problème 112 00:04:52,703 --> 00:04:55,210 à vous êtes entrées mains et que vous voulez produire des résultats. 113 00:04:55,210 --> 00:04:59,459 >> Donc, avant que nous considérons le processus par lequel nous pouvons résoudre ce problème, 114 00:04:59,459 --> 00:05:01,250 trouver Mike Smith et quelque chose comme ca, 115 00:05:01,250 --> 00:05:04,090 nous allons examiner la première et les entrées et sorties last--. 116 00:05:04,090 --> 00:05:08,060 Physiquement, bien entendu, ici l'entrée est tout un tas de papier collés ensemble 117 00:05:08,060 --> 00:05:09,400 sous la forme d'un annuaire téléphonique. 118 00:05:09,400 --> 00:05:13,660 Mais les ordinateurs, des ordinateurs portables course-- et les postes de travail et même les téléphones 119 00:05:13,660 --> 00:05:16,430 ces days-- ceux qui sont appareils électroniques. 120 00:05:16,430 --> 00:05:20,920 >> Et à la fin de la journée, ce qui est la seule entrée à un ordinateur? 121 00:05:20,920 --> 00:05:23,299 Eh bien, il est quelque chose comme ce cordon d'alimentation ici. 122 00:05:23,299 --> 00:05:25,590 Je branche dans le mur, et Je reçois un flux d'électrons, 123 00:05:25,590 --> 00:05:27,048 qui me permet de faire fonctionner la machine. 124 00:05:27,048 --> 00:05:30,420 Ou peut-être ces électrons sont créé par le biais de ma batterie. 125 00:05:30,420 --> 00:05:33,790 Mais à la fin de la journée, qui est la seule chose entrer dans mon ordinateur portable. 126 00:05:33,790 --> 00:05:35,772 Et tellement intéressant stuff est en fin de compte 127 00:05:35,772 --> 00:05:37,480 sortant, que ce soit par le biais de l'imprimante, 128 00:05:37,480 --> 00:05:40,320 ou l'écran ou déficients auditifs ou similaire. 129 00:05:40,320 --> 00:05:45,320 >> Donc, si tout ce que nous avons comme fondamentale entrée à un ordinateur 130 00:05:45,320 --> 00:05:49,160 est l'électricité, si juste électrons aller et ou arrière, 131 00:05:49,160 --> 00:05:54,465 et comment pouvons-nous utiliser cette entrée pour représenter effectivement l'information? 132 00:05:54,465 --> 00:05:57,090 En d'autres termes, comment pouvons-nous d'un simple flux d'électricité 133 00:05:57,090 --> 00:06:00,350 à la représentation réelle des chiffres ou des lettres réelles 134 00:06:00,350 --> 00:06:03,620 ou des images réelles sur l'écran ou des films réels ou des e-mails 135 00:06:03,620 --> 00:06:05,690 ou un nombre quelconque de ceux-ci concepts de niveau supérieur, 136 00:06:05,690 --> 00:06:07,680 si vous voulez, que, à la fin de la journée en quelque sorte 137 00:06:07,680 --> 00:06:11,950 doivent être stockées dans cette dispositif mécanique électronique 138 00:06:11,950 --> 00:06:16,260 en utilisant uniquement les simples ingredients-- électrons entrant et sortant? 139 00:06:16,260 --> 00:06:19,530 >> Donc, il semble que, dans la forme la plus simple, 140 00:06:19,530 --> 00:06:23,260 le seul type d'états J'ai dans mon monde, de sorte 141 00:06:23,260 --> 00:06:25,350 à speak-- conditions dans mon monde-- est soit 142 00:06:25,350 --> 00:06:33,020 Je électrons circulant, l'électricité qui coule, ou je pas-- ainsi de suite, au large. 143 00:06:33,020 --> 00:06:35,850 Et nous allons formaliser sur et en dehors, en tant que chercheur en informatique pourrait, 144 00:06:35,850 --> 00:06:37,255 avec juste 1 et 0. 145 00:06:37,255 --> 00:06:39,880 Disons simplement décrire une certaine arbitraire mais nombre constant à elle. 146 00:06:39,880 --> 00:06:41,970 1 signifie sur, 0 signifie off. 147 00:06:41,970 --> 00:06:45,427 Ou vous pourriez aussi voir ce que vrai moyen sur et de faux moyens. 148 00:06:45,427 --> 00:06:47,510 Vous pouvez également faire noir et blanc ou rouge et bleu. 149 00:06:47,510 --> 00:06:48,759 Vous avez juste besoin de deux descripteurs. 150 00:06:48,759 --> 00:06:52,240 Et un des informaticiens serait utiliser généralement 0 et 1. 151 00:06:52,240 --> 00:06:58,980 >> Donc, si tel est le cas, mon seul alphabet est composé de 0 et de 1, comment 152 00:06:58,980 --> 00:07:03,360 pourrais-je obtenir pour égaliser le nombre 2 dans un ordinateur, et encore moins le nombre 3 153 00:07:03,360 --> 00:07:06,140 ou une lettre de l'alphabet ou une image ou un film? 154 00:07:06,140 --> 00:07:08,910 Comment peut-on sorte de bootstrap nous-mêmes de ce principe de base 155 00:07:08,910 --> 00:07:12,080 de 0 et de 1 et effectivement représenter quelque chose de plus intéressant? 156 00:07:12,080 --> 00:07:14,430 >> Eh bien, nous allons mettre cette question en attente pour un instant 157 00:07:14,430 --> 00:07:17,520 et envisager quelque chose espérons-familier, 158 00:07:17,520 --> 00:07:21,150 même si vous ne l'avez pas vraiment pensé il en détail à 10, 20, 30, 40, 50 159 00:07:21,150 --> 00:07:22,520 années. 160 00:07:22,520 --> 00:07:24,780 C'est quoi? 161 00:07:24,780 --> 00:07:28,050 Comment vous prononcer ce? 162 00:07:28,050 --> 00:07:30,770 Pas une question piège. 163 00:07:30,770 --> 00:07:32,950 Un certain nombre, mais qu'en est-il? 164 00:07:32,950 --> 00:07:34,842 1, 2, 3 ou 123. 165 00:07:34,842 --> 00:07:37,800 Et j'aimé la façon dont vous avez dit 1, 2, 3, parce que c'est une façon de le visionnement. 166 00:07:37,800 --> 00:07:39,870 1, 2, 3, il y a une séquence de trois symboles. 167 00:07:39,870 --> 00:07:42,005 Il est des images que nous ont maintenant des mots pour. 168 00:07:42,005 --> 00:07:44,880 Et si vous sorte de les lire tous ensemble, un humain typique en anglais 169 00:07:44,880 --> 00:07:46,600 dirait 123. 170 00:07:46,600 --> 00:07:48,350 Et c'est une sorte de supérieur concept de niveau, 171 00:07:48,350 --> 00:07:50,340 se sent comme un assez grand nombre. 172 00:07:50,340 --> 00:07:51,490 >> Mais comment avons-nous y arriver? 173 00:07:51,490 --> 00:07:54,640 Eh bien, il pourrait être un moment depuis vous avez pensé à ce sujet comme celui-ci, 174 00:07:54,640 --> 00:07:56,680 mais de retour dans ma journée, je sorte de appris cette 175 00:07:56,680 --> 00:08:01,030 comme la colonne du 1, les années 10 colonne et la colonne du 100. 176 00:08:01,030 --> 00:08:06,400 Donc, comme le dit Lakisa, il est 1, 2, 3, mais il y a aussi 123. 177 00:08:06,400 --> 00:08:08,700 Mais comment pouvons-nous obtenir de la première à la seconde? 178 00:08:08,700 --> 00:08:12,340 >> Eh bien, vous devez généralement faire la colonne du 100, j'ai 1. 179 00:08:12,340 --> 00:08:14,794 Voilà donc à dire 100 fois 1. 180 00:08:14,794 --> 00:08:16,210 Et puis, dans la colonne de 10, je dois 2. 181 00:08:16,210 --> 00:08:18,464 Voilà donc comme dire 10 fois 2. 182 00:08:18,464 --> 00:08:19,630 Dans la colonne du 1, je dois 3. 183 00:08:19,630 --> 00:08:21,720 Voilà donc comme dire 1 fois 3. 184 00:08:21,720 --> 00:08:24,290 >> Et si j'ajouter ces choses en même temps, ceci, bien sûr, 185 00:08:24,290 --> 00:08:27,470 100 est plus les 10 plus 3. 186 00:08:27,470 --> 00:08:31,750 Et oh, voilà pourquoi je reçois ce supérieur notion de niveau de 123. 187 00:08:31,750 --> 00:08:37,220 Il est juste mathématiques de base, de sorte que ceux-ci symboles ont un poids pour eux, si vous 188 00:08:37,220 --> 00:08:39,620 sera, espace réservé ou les valeurs des colonnes. 189 00:08:39,620 --> 00:08:42,090 Et une fois que je multiplie tout , je reçois ce nombre. 190 00:08:42,090 --> 00:08:47,840 >> Alors combien d'entre vous savez comment parler binary-- 0 et 1's-- comme un ordinateur? 191 00:08:47,840 --> 00:08:50,410 OK, parfait, personne, ou aucun d'entre vous pense que vous faites. 192 00:08:50,410 --> 00:08:52,550 Mais je voudrais vous demander réellement savoir déjà. 193 00:08:52,550 --> 00:08:55,330 Nous avons juste besoin sorte de tordre notre modèle mental un peu de bits. 194 00:08:55,330 --> 00:08:57,250 Mais le processus est exactement le même. 195 00:08:57,250 --> 00:09:01,460 >> Permettez-moi de laisser celui-là et à la place tirer de cette baisse pour un moment. 196 00:09:01,460 --> 00:09:05,060 Dans le monde des ordinateurs, nous avons seulement de 0 et de 1. 197 00:09:05,060 --> 00:09:07,240 Et la chose qui est va changer est quoi? 198 00:09:07,240 --> 00:09:10,920 Eh bien, dans mon monde humain, système décimal, diminuer sens 10, 199 00:09:10,920 --> 00:09:12,740 Je dois le nombre de chiffres à ma disposition? 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 à 9, bien sûr. 203 00:09:17,880 --> 00:09:21,210 >> Et voilà pourquoi nous avons la de 10 la place et la place du 100. 204 00:09:21,210 --> 00:09:22,380 Où est ce que vient? 205 00:09:22,380 --> 00:09:24,430 Eh bien, cela est 10 à la puissance de 0. 206 00:09:24,430 --> 00:09:28,440 Ceci est 10 à la puissance de 1, 10 à la puissance de 2, et ainsi de suite. 207 00:09:28,440 --> 00:09:32,110 Vous continuez à multiplier vos colonnes par 10, en commençant avec juste 1 208 00:09:32,110 --> 00:09:33,700 dans la droite un ici. 209 00:09:33,700 --> 00:09:35,490 >> Ainsi, dans le monde de la ordinateurs, si vous ne 210 00:09:35,490 --> 00:09:39,600 avoir un sens bi binary-- 2-- ou 0 et de 1, nous avons juste 211 00:09:39,600 --> 00:09:42,420 vraiment besoin de changer la base de ce calcul. 212 00:09:42,420 --> 00:09:46,410 Donc, en d'autres termes, maintenant nous allons juste ont la colonne du 1 et the-- 213 00:09:46,410 --> 00:09:51,270 où est ce going-- la colonne du 2, la colonne du 4, et peut-être au-delà. 214 00:09:51,270 --> 00:09:52,250 Pourquoi donc? 215 00:09:52,250 --> 00:09:55,650 Eh bien, cela est 2 le 0-ième puissance. 216 00:09:55,650 --> 00:09:57,270 Ceci est le 2 1. 217 00:09:57,270 --> 00:09:59,610 Ceci est 2 à 2, et ainsi de suite. 218 00:09:59,610 --> 00:10:04,910 >> Donc, alors qu'ici, nous avons 1, 10 de, 100 de 1000, de 10.000, de, 100.000 de, 1 219 00:10:04,910 --> 00:10:10,560 millions, et ainsi de suite, ici nous avons 1, 2, 4, 8, 16, 32, 64. 220 00:10:10,560 --> 00:10:13,950 Vous continuez à multiplier par 2, au lieu de continuer à multiplier par 10. 221 00:10:13,950 --> 00:10:16,780 Alors maintenant, si l'objectif à la main est de représenter 222 00:10:16,780 --> 00:10:20,240 numéros en utilisant uniquement de 0 et de 1, nous allons examiner comment nous y arriverons. 223 00:10:20,240 --> 00:10:26,540 >> Ceci, bien entendu, est le motif 0 0 0, mais ce nombre conceptuellement 224 00:10:26,540 --> 00:10:27,490 que cela représente? 225 00:10:27,490 --> 00:10:35,430 Eh bien, 4 fois 0 et 2 fois 0, plus 1 fois 0, ajoutons ceux ensemble. 226 00:10:35,430 --> 00:10:40,030 4 fois 0 est, bien sûr, 0, plus 2 0 fois est, bien sûr, 0 plus 1 fois 0 227 00:10:40,030 --> 00:10:40,850 est, bien entendu, 0. 228 00:10:40,850 --> 00:10:44,910 Donc, ah, cela représente la numéro nous, les humains savent que 0. 229 00:10:44,910 --> 00:10:47,810 >> Eh bien, maintenant, nous allons très rapidement de l'avant rapidement. 230 00:10:47,810 --> 00:10:53,600 Si je place ne représente pas 0 0 0, mais nous allons faire 1 0 1, 231 00:10:53,600 --> 00:10:57,010 qui pourrait être la façon dont Lakisa, plus tôt, serait tout simplement prononcer 1 0 1. 232 00:10:57,010 --> 00:11:01,020 Mais maintenant, comment pouvons-nous le prenons à la plus élevée niveler le nombre nous, les humains savent peut-être? 233 00:11:01,020 --> 00:11:04,220 Alors, quel est ce nombre? 234 00:11:04,220 --> 00:11:06,060 Il est 5, le nombre que nous savons que 5. 235 00:11:06,060 --> 00:11:06,870 >> Eh bien, pourquoi est-ce? 236 00:11:06,870 --> 00:11:09,620 Eh bien, nous pouvons vraiment sorte de marcher à travers méthodiquement 237 00:11:09,620 --> 00:11:14,880 4 fois 1, 2 fois 0, 1 fois 1. 238 00:11:14,880 --> 00:11:19,880 Ajouter les ensemble, donc ceci est 4 plus 0 plus 1. 239 00:11:19,880 --> 00:11:21,577 Et c'est, en effet, 5. 240 00:11:21,577 --> 00:11:24,660 Donc, ça devient un peu fastidieux maintenant faire encore et encore l'arithmétique. 241 00:11:24,660 --> 00:11:26,300 Mais le processus est exactement le même. 242 00:11:26,300 --> 00:11:28,380 >> La seule chose qui a changé dans notre monde 243 00:11:28,380 --> 00:11:32,740 est que les colonnes 1, 2, 4, 8, 16, et ainsi de suite, au lieu de 1, 10, 100, 244 00:11:32,740 --> 00:11:33,740 1000. 245 00:11:33,740 --> 00:11:40,000 Et ce qui est juste parce que notre alphabet a diminué de 0 à 9 pour seulement 0 à 1. 246 00:11:40,000 --> 00:11:50,851 >> Donc, comme un petit quiz ici, comment Vous représentez le numéro 7 en binaire? 247 00:11:50,851 --> 00:11:51,350 0? 248 00:11:51,350 --> 00:11:53,490 Eh bien, 0, vous voulez dire 0 0 0? 249 00:11:53,490 --> 00:11:58,140 250 00:11:58,140 --> 00:11:59,693 Dites-le à nouveau, Karina. 251 00:11:59,693 --> 00:12:03,010 252 00:12:03,010 --> 00:12:03,550 Parfait. 253 00:12:03,550 --> 00:12:04,370 Pourquoi donc? 254 00:12:04,370 --> 00:12:08,530 Il est effectivement 4 plus 2 plus 1. 255 00:12:08,530 --> 00:12:09,580 Tellement bon. 256 00:12:09,580 --> 00:12:14,364 >> Comment représentons-nous un peu another-- diriez numéro 2? 257 00:12:14,364 --> 00:12:18,360 258 00:12:18,360 --> 00:12:20,690 Fermer, mais à l'envers. 259 00:12:20,690 --> 00:12:21,660 Alors qu'est-ce? 260 00:12:21,660 --> 00:12:26,290 Est 4 plus 1, de sorte que ce 5 nouveau. 261 00:12:26,290 --> 00:12:28,310 >> Alors what's-- Je suis désolé, 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 serait 2, car encore une fois, même si ce genre de ne saute pas sur vous, 264 00:12:34,762 --> 00:12:35,470 il suffit de faire le calcul. 265 00:12:35,470 --> 00:12:40,390 4 fois par 0, 0, 2 fois 1 est 2, 1 fois 0 est 0. 266 00:12:40,390 --> 00:12:42,830 Donc, ceci est le nombre que nous savons que 2. 267 00:12:42,830 --> 00:12:44,030 >> Que diriez-vous le numéro 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 Bien. 271 00:12:53,330 --> 00:12:56,130 Nous avons donc besoin d'un autre type d'espace réservé. 272 00:12:56,130 --> 00:12:59,570 Nous avons besoin de 1 0 0 0. 273 00:12:59,570 --> 00:13:02,280 Et cela est vrai de notre espèce du vieux système scolaire décimal. 274 00:13:02,280 --> 00:13:05,280 Comment représentez-vous le nombre de 1000? 275 00:13:05,280 --> 00:13:08,480 >> Eh bien, vous semblez être en quelque sorte dans une situation difficile, 276 00:13:08,480 --> 00:13:10,390 si vous demandez à représenter le nombre de 1000, 277 00:13:10,390 --> 00:13:14,960 parce que même si vous vous donnez comme 9 d'entre eux, 9 d'entre eux, 0 de ceux-ci, 278 00:13:14,960 --> 00:13:18,730 qui est le plus grand nombre que vous ont, vous ne l'avez pas tout à fait obtenir à 1000. 279 00:13:18,730 --> 00:13:26,920 Donc, si vous 1000, vous avez juste besoin d'un autre la position, de sorte que vous pouvez faire 1 0 0 0, 280 00:13:26,920 --> 00:13:29,460 ergo le nombre 1000. 281 00:13:29,460 --> 00:13:34,200 >> Alors maintenant, nous allons map ce genre de discussion conceptuelle retour au matériel, 282 00:13:34,200 --> 00:13:37,470 où encore une fois, l'entrée était juste ce petit câble d'alimentation, l'électricité 283 00:13:37,470 --> 00:13:39,300 entrant et sortant. 284 00:13:39,300 --> 00:13:44,740 Et pour cela d'être mappé à partir d'ici là, eh bien, qu'est-ce que nous avons vraiment besoin? 285 00:13:44,740 --> 00:13:49,460 Eh bien, vous pouvez penser à être à l'intérieur d'un ordinateur, tout un tas d'ampoules, 286 00:13:49,460 --> 00:13:50,450 si vous voulez. 287 00:13:50,450 --> 00:13:52,040 Ils sont vraiment appelés transistors. 288 00:13:52,040 --> 00:13:55,121 Et les transistors commutateurs sont simplement qui peut être soit allumé ou éteint. 289 00:13:55,121 --> 00:13:56,870 Ainsi, vous pouvez penser à un transistor qui est sur 290 00:13:56,870 --> 00:14:00,730 permet à l'électricité de circuler et un transistor qui est hors de l'arrêt 291 00:14:00,730 --> 00:14:02,170 l'électricité de circuler. 292 00:14:02,170 --> 00:14:04,130 Et plutôt que de prendre sur les lumières ici, 293 00:14:04,130 --> 00:14:06,450 pourquoi dois-je faire pas ce genre du nouveau style de l'école. 294 00:14:06,450 --> 00:14:11,360 Donc, cela pourrait être un 1, une lampe de poche être sur, à peine si. 295 00:14:11,360 --> 00:14:14,050 Et cela pourrait être un 0, et maintenant il est hors tension. 296 00:14:14,050 --> 00:14:18,277 >> Donc, en utilisant ce dispositif physique, je peut maintenant représenter le système binaire. 297 00:14:18,277 --> 00:14:19,235 Je dois juste deux états. 298 00:14:19,235 --> 00:14:21,660 Il n'a pas d'importance ce que la couleur, il est ou ce qu'elle est. 299 00:14:21,660 --> 00:14:25,920 Tout ce qui importe est que je dois un Etat sur un autre état d'arrêt. 300 00:14:25,920 --> 00:14:30,605 Donc, en utilisant mon téléphone ici, comment puis-je représenter le nombre que nous savons que 0? 301 00:14:30,605 --> 00:14:34,490 302 00:14:34,490 --> 00:14:38,550 Ou mettre équivalente, ce qui Numéro suis-je représente maintenant? 303 00:14:38,550 --> 00:14:39,810 0, car l'appareil est hors tension. 304 00:14:39,810 --> 00:14:41,560 >> Et si je fais ça? 305 00:14:41,560 --> 00:14:43,583 Et maintenant, comment puis-je représenter le numéro 2? 306 00:14:43,583 --> 00:14:46,380 307 00:14:46,380 --> 00:14:50,930 Puis-je emprunter votre téléphone ici, comme nous l'avons fait hier? 308 00:14:50,930 --> 00:14:58,490 Donc, nous allons voir, donc si je veux représenter le numéro 2, est-ce le numéro 2? 309 00:14:58,490 --> 00:14:59,050 Non. 310 00:14:59,050 --> 00:15:02,250 Quel numéro suis-je accidentellement représentant ici? 311 00:15:02,250 --> 00:15:03,550 Ceci est en fait le numéro 3. 312 00:15:03,550 --> 00:15:05,008 >> Alors, qui que je veux éteindre? 313 00:15:05,008 --> 00:15:09,634 Le téléphone noir ou-- bien, si they're-- téléphone noir ou le téléphone blanc? 314 00:15:09,634 --> 00:15:10,300 Le téléphone blanc. 315 00:15:10,300 --> 00:15:17,020 Donc, si je désactiver cette fonction et nous l'aligner ici, nous avons un 1 316 00:15:17,020 --> 00:15:19,487 à la place de la 2 et un 0 à la place de la 1. 317 00:15:19,487 --> 00:15:21,195 Et donc je suis maintenant représentant le numéro 2. 318 00:15:21,195 --> 00:15:24,680 Et cela, bien sûr, serait le nombre 3, parce que maintenant ces deux lumières 319 00:15:24,680 --> 00:15:25,350 sont sur. 320 00:15:25,350 --> 00:15:27,480 >> Et je vais arrêter ici, mais il va de soi 321 00:15:27,480 --> 00:15:31,100 si je veux représenter le le numéro 4 ou 8 ou supérieur, 322 00:15:31,100 --> 00:15:32,529 Je vais avoir besoin de plus de téléphones. 323 00:15:32,529 --> 00:15:33,820 Mais c'est tout ce qui se passe. 324 00:15:33,820 --> 00:15:37,800 Donc, si vous avez jamais entendu que intérieur de a-- remercier ordinateur vous-- 325 00:15:37,800 --> 00:15:42,269 est des millions de transistors, c'est seulement des millions de minuscules petits interrupteurs. 326 00:15:42,269 --> 00:15:44,310 Et ils ne sont pas la lumière ampoules qui tournent sur et en dehors, 327 00:15:44,310 --> 00:15:48,340 mais ils ne permettent ni l'électricité à couler quelque part ou de l'arrêter. 328 00:15:48,340 --> 00:15:52,140 Et donc il y a vos deux Unis-- allumé ou éteint, allumé ou éteint. 329 00:15:52,140 --> 00:15:55,730 >> Donc, nous semble maintenant d'avoir cette capacité 330 00:15:55,730 --> 00:16:00,590 pour représenter ce concept nous aimerions en matériel réel. 331 00:16:00,590 --> 00:16:05,520 Mais tout ce que nous avons maintenant est la capacité pour représenter des nombres il semblerait. 332 00:16:05,520 --> 00:16:08,580 Alors, comment allons-nous représenter lettres de l'alphabet, qui 333 00:16:08,580 --> 00:16:12,310 se sent comme la prochaine sorte de fonctionnalité, vous voudrait ajouter à un ordinateur moderne 334 00:16:12,310 --> 00:16:14,280 une fois que vous avez des chiffres? 335 00:16:14,280 --> 00:16:16,930 >> Et en effet, si vous pensez elle, historiquement, les ordinateurs 336 00:16:16,930 --> 00:16:19,426 ont été introduits vraiment servir que les calculatrices numériquement. 337 00:16:19,426 --> 00:16:21,300 Mais bien sûr, ces jours, ils font beaucoup plus. 338 00:16:21,300 --> 00:16:23,799 Même quand ils démarrent, vous voir généralement un ou plusieurs mots. 339 00:16:23,799 --> 00:16:27,420 Alors, comment vous représentez des mots, si tout ce que vous avez est, encore une fois, 340 00:16:27,420 --> 00:16:31,054 l'électricité à la fin de la jour, ou de manière équivalente de 0 et de 1? 341 00:16:31,054 --> 00:16:34,430 342 00:16:34,430 --> 00:16:35,690 >> Ouais. 343 00:16:35,690 --> 00:16:38,320 Ouais, je veux dire, nous sorte de fait hier sous une certaine forme, 344 00:16:38,320 --> 00:16:40,200 où à un moment donné, Je pense que je arbitrairement 345 00:16:40,200 --> 00:16:46,741 dit que, si nous voulons représenter la lettre A, nous pourrions simplement appeler cela un 1. 346 00:16:46,741 --> 00:16:49,990 Il est dans le cadre de la cryptographie, où nous voulions juste une sorte de code, 347 00:16:49,990 --> 00:16:51,160 une sorte de cartographie. 348 00:16:51,160 --> 00:16:56,680 >> Alors peut-être A sera représentée comme 1 et B seront représentés en tant que 2, 349 00:16:56,680 --> 00:17:01,560 et Z sera représentée en 26, par exemple. 350 00:17:01,560 --> 00:17:07,430 Et alors la seule réserve est que si je suis va encoder des lettres dans mes e-mails 351 00:17:07,430 --> 00:17:10,430 ou dans mes messages texte sous forme de nombres, vous tous 352 00:17:10,430 --> 00:17:12,640 se mettre d'accord pour utiliser la même ensemble de conventions. 353 00:17:12,640 --> 00:17:14,619 Et en effet, le monde a fait exactement cela. 354 00:17:14,619 --> 00:17:18,040 >> Il existe un système dans le monde appelé ASCII, American Standard 355 00:17:18,040 --> 00:17:21,640 Code pour l'échange d'information, qui est tout simplement une décision quelques années 356 00:17:21,640 --> 00:17:25,720 il y a que les humains ont fait que a décidé que A va égaler, pas 357 00:17:25,720 --> 00:17:32,260 1, 2, et 26, et ainsi forth-- c'est un peu different-- mais 65, 66, 67. 358 00:17:32,260 --> 00:17:34,010 Et je vais tirer un graphique dans un instant. 359 00:17:34,010 --> 00:17:34,580 Mais il est arbitraire. 360 00:17:34,580 --> 00:17:36,329 Mais il n'a pas d'importance qu'il est arbitraire. 361 00:17:36,329 --> 00:17:38,620 Le monde doit juste être cohérent. 362 00:17:38,620 --> 00:17:40,540 >> Or, plus récemment, il y a quelque chose de l'amateur 363 00:17:40,540 --> 00:17:45,430 appelé Unicode, parce que le genre du monde de réaliser, après avoir inventé les ordinateurs, 364 00:17:45,430 --> 00:17:50,977 qu'il n'y a plus que bien 256 symboles dans le monde 365 00:17:50,977 --> 00:17:53,560 que nous pourrions représenter, surtout quand vous introduisez 366 00:17:53,560 --> 00:17:58,420 langues asiatiques et autres symbologies qui ont besoin de plus d'expressivité que vous 367 00:17:58,420 --> 00:18:02,150 peut tenir dans la première version de ce code, qui a été appelé ASCII. 368 00:18:02,150 --> 00:18:05,250 Donc Unicode permet effectivement d'utiliser plus 0 et 2. 369 00:18:05,250 --> 00:18:08,830 En particulier, vous continuez à entendre la octets de mots dans la société et même seulement 370 00:18:08,830 --> 00:18:09,400 hier. 371 00:18:09,400 --> 00:18:12,040 Et un octet est ce nouveau? 372 00:18:12,040 --> 00:18:14,840 >> Qu'est-ce qu'un octet? 373 00:18:14,840 --> 00:18:15,700 Il est à seulement 8 bits. 374 00:18:15,700 --> 00:18:17,150 Alors qu'est-ce que cela signifie réellement? 375 00:18:17,150 --> 00:18:22,400 Eh bien, cela signifie que, plus tôt, quand nous étions parler binaire et je suis en utilisant 376 00:18:22,400 --> 00:18:28,010 arbitrairement trois bits lorsque nous étions parler binary-- la place du 1, 377 00:18:28,010 --> 00:18:33,600 la place de la 2 et la 4 puits de place--, un octet signifie simplement que vous parlez 378 00:18:33,600 --> 00:18:38,730 pas en unités de trois, mais quatre, cinq, six, sept huit, 379 00:18:38,730 --> 00:18:46,910 ce qui nous donne la place de 8, De 16 ans, 32, 64 de son et de 128. 380 00:18:46,910 --> 00:18:50,010 >> En d'autres termes, un bit est pas toutes qu 'une unité de mesure utile, 381 00:18:50,010 --> 00:18:53,132 parce qu'elle est comme un minuscule élément d'information, ou le désactiver. 382 00:18:53,132 --> 00:18:54,840 Donc, il y a quelques années, le monde vient de décider 383 00:18:54,840 --> 00:18:59,060 il est un peu plus commode de parler en termes d'octets, huit choses à la fois. 384 00:18:59,060 --> 00:19:01,670 Et ainsi est né la notion d'un octet. 385 00:19:01,670 --> 00:19:03,640 Et nous avons donc huit bits ici. 386 00:19:03,640 --> 00:19:06,810 >> Et il se trouve, aussi, pour la même raisons, le monde a décidé ans 387 00:19:06,810 --> 00:19:12,439 il y a que pour représenter une lettre ASCII, vous allez utiliser des unités de 8 bits. 388 00:19:12,439 --> 00:19:14,230 Donc, même si vous ne le faites pas besoin que beaucoup, vous êtes 389 00:19:14,230 --> 00:19:18,130 allant toujours utiliser 8 bits pour représenter une lettre de l'alphabet. 390 00:19:18,130 --> 00:19:20,950 Et cela est pratique, car alors si vous 391 00:19:20,950 --> 00:19:28,720 recevoir un message qui a un 0 0 0 1 1 1 1 0 suivie d'une autre 1 1 1 0 1 0 392 00:19:28,720 --> 00:19:33,320 0 1, donc si vous recevez 16 les bits, le monde peut simplement 393 00:19:33,320 --> 00:19:37,460 supposons que les 8 premiers sont une seule lettre et le second 8 sont une autre lettre. 394 00:19:37,460 --> 00:19:39,240 >> N'a pas d'importance combien il y a. 395 00:19:39,240 --> 00:19:41,460 Il importe simplement que nous sommes tous compatibles 396 00:19:41,460 --> 00:19:42,950 quand on interprète ces bits. 397 00:19:42,950 --> 00:19:44,377 Et ce fut tout simplement aléatoire. 398 00:19:44,377 --> 00:19:47,210 Cela signifie quelque chose, mais je ne vraiment penser à ce que cela signifie. 399 00:19:47,210 --> 00:19:49,620 >> Il est donc un petit mensonge. 400 00:19:49,620 --> 00:19:51,990 A l'origine, ASCII en fait utilisé que 7 bits. 401 00:19:51,990 --> 00:19:54,180 Et le huitième bit est appelé ASCII étendu. 402 00:19:54,180 --> 00:19:56,290 Mais le point est, en fin de compte, le même. 403 00:19:56,290 --> 00:19:58,850 Le monde en général normalisé sur 8 bits. 404 00:19:58,850 --> 00:20:04,290 >> Donc, cela semble être un peu limiter, parce que je ne peut 405 00:20:04,290 --> 00:20:07,970 représenter le capital A, le capital B à Z. du capital 406 00:20:07,970 --> 00:20:10,940 Mais en effet pas, si je vais to-- il y a un tas de ressources 407 00:20:10,940 --> 00:20:13,695 en ligne, par exemple, asciitable.com, cette 408 00:20:13,695 --> 00:20:16,310 va être un peu écrasante au premier abord. 409 00:20:16,310 --> 00:20:18,910 Mais je vais souligner ce qui est important ici. 410 00:20:18,910 --> 00:20:24,090 >> Cela se produit juste pour être-- et je vais walk-- nous allons voir, si je vais ici. 411 00:20:24,090 --> 00:20:27,990 Voici, dans la décimale colonne, le numéro 65. 412 00:20:27,990 --> 00:20:32,201 Et sur la lettre de la colonne de droite caractère, Chr, est la lettre A. 413 00:20:32,201 --> 00:20:34,450 Et vous pouvez ignorer, pour l'instant, tout au milieu. 414 00:20:34,450 --> 00:20:36,769 Ceci est hexadécimal, octal, et un code HTML. 415 00:20:36,769 --> 00:20:39,810 Pour ce site est juste essayer de jeter beaucoup d'informations à vous à la fois. 416 00:20:39,810 --> 00:20:42,970 Mais tout ce que nous soucions est la virgule colonne et la colonne de caractères. 417 00:20:42,970 --> 00:20:46,190 >> Donc, par cette logique, ce qui est le nombre que le monde 418 00:20:46,190 --> 00:20:50,510 a décidé représente un a minuscule? 419 00:20:50,510 --> 00:20:52,230 Oui, 97. 420 00:20:52,230 --> 00:20:55,850 Et juste pour confondre éventuellement légèrement, 421 00:20:55,850 --> 00:21:03,715 ce nombre a décidé le monde représenterait le numéro 1? 422 00:21:03,715 --> 00:21:06,900 423 00:21:06,900 --> 00:21:10,910 Droit, parce nous-- 49, il semble ici, dans le coin inférieur gauche. 424 00:21:10,910 --> 00:21:12,320 >> Maintenant, qu'est-ce que je veux dire par là? 425 00:21:12,320 --> 00:21:14,830 Ainsi, il apparaît que dans les systèmes informatiques, 426 00:21:14,830 --> 00:21:16,840 il existe généralement une différence fondamentale 427 00:21:16,840 --> 00:21:19,920 entre un nombre et un caractère. 428 00:21:19,920 --> 00:21:22,330 Un nombre est la chose que nous appris en grandissant lorsque 429 00:21:22,330 --> 00:21:23,830 nous étions super-jeunes à l'école primaire. 430 00:21:23,830 --> 00:21:25,110 Il est des choses que vous comptez avec. 431 00:21:25,110 --> 00:21:30,220 Mais un personnage est juste une forme, une glyphe, pour ainsi dire, à l'écran. 432 00:21:30,220 --> 00:21:36,200 >> Maintenant, nous les humains sorte de voir quelque chose qui ressemble à ceci. 433 00:21:36,200 --> 00:21:39,060 Et nous disons, oh, qui est le numéro 2. 434 00:21:39,060 --> 00:21:44,999 Mais non, c'est juste un symbole qui ressemble comme ce que nous savons que le nombre 2. 435 00:21:44,999 --> 00:21:46,790 Et donc il y a cette distinction fondamentale 436 00:21:46,790 --> 00:21:50,340 entre les chiffres réels et des personnages. 437 00:21:50,340 --> 00:21:52,130 Ceci est un nombre. 438 00:21:52,130 --> 00:21:54,420 Mais de façon générale, dans le le contexte d'un ordinateur, 439 00:21:54,420 --> 00:21:56,809 si vous voyez la place quelque chose comme ça quoted-- 440 00:21:56,809 --> 00:21:58,600 et vous ne le faites pas toujours faut le voir cité, 441 00:21:58,600 --> 00:22:01,474 mais pour le bien de discussion-- si vous voyez des guillemets autour du nombre, 442 00:22:01,474 --> 00:22:02,730 ceci est maintenant un caractère. 443 00:22:02,730 --> 00:22:06,330 Donc, ce numéro 2 ci-dessous le capot à l'intérieur d'un ordinateur 444 00:22:06,330 --> 00:22:12,220 serait représenté avec un motif de bits représentant le nombre 445 00:22:12,220 --> 00:22:14,850 50 selon le tableau en ligne. 446 00:22:14,850 --> 00:22:18,300 >> Cependant, si un ordinateur voit tout cela, ce 447 00:22:18,300 --> 00:22:24,580 serait représenté par le modèle de bit 0 0 0 0 0 0 1 0. 448 00:22:24,580 --> 00:22:29,595 Considérant que, ce personnage serait être effectivement représenté as-- et maintenant, 449 00:22:29,595 --> 00:22:34,710 Je suis arrivé à penser un peu harder-- donc ce caractère serait représenté avec 0 450 00:22:34,710 --> 00:22:39,080 0 1-- que dois-je ici? 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 Comment ai-je fait cela? 453 00:22:45,480 --> 00:22:49,580 Eh bien, c'est le numéro 50, si vous multiplier à l'aide de ces colonnes, 454 00:22:49,580 --> 00:22:53,530 ceci est le numéro 2, etc. Voilà pourquoi il y a cette dichotomie. 455 00:22:53,530 --> 00:22:55,850 >> Et ceci est juste un Teaser maintenant fonctionnalités 456 00:22:55,850 --> 00:22:59,710 qui existent dans les langages de programmation que nous allons aborder brièvement plus tard aujourd'hui. 457 00:22:59,710 --> 00:23:01,950 Dans les langages de programmation, vous avez généralement, 458 00:23:01,950 --> 00:23:04,495 mais pas toujours, les choses appeler différents types de données. 459 00:23:04,495 --> 00:23:06,870 En d'autres termes, une programmer-- quand il ou elle est en train d'écrire, 460 00:23:06,870 --> 00:23:11,150 un programmeur doit décider dans quel le format pour stocker ses données. 461 00:23:11,150 --> 00:23:14,120 Les données peuvent être soit des magasins comme chiffres bruts, comme le numéro 2. 462 00:23:14,120 --> 00:23:17,940 Ou vous pouvez les stocker sous forme de chaînes, ou des séquences de caractères 463 00:23:17,940 --> 00:23:21,550 que vous généralement exprimer avec citations dans votre langage de programmation. 464 00:23:21,550 --> 00:23:25,230 >> Vous pouvez avoir des choses called-- Je vais trop simplifier et de les appeler 465 00:23:25,230 --> 00:23:28,870 réel numbers-- donc des chiffres qui ne sont pas des nombres entiers tels que le nombre 2, 466 00:23:28,870 --> 00:23:31,310 mais les chiffres aiment 4,56. 467 00:23:31,310 --> 00:23:33,490 Donc, les nombres réels peuvent également avoir des points décimaux, 468 00:23:33,490 --> 00:23:36,340 de sorte que c'est une autre fondamentale morceau de données dans un ordinateur. 469 00:23:36,340 --> 00:23:41,920 Et puis vous pouvez même avoir d'autres types de données fixes. 470 00:23:41,920 --> 00:23:45,810 Voilà juste un teaser vraiment de le plus simple des décisions de conception 471 00:23:45,810 --> 00:23:50,960 qu'un programmeur pourrait faire sous le capot. 472 00:23:50,960 --> 00:23:52,925 >> Donc, des questions pour l'instant? 473 00:23:52,925 --> 00:23:57,320 474 00:23:57,320 --> 00:23:59,860 Donc, nous allons essayer de faire cela un peu plus réel. 475 00:23:59,860 --> 00:24:02,120 Ce matériel ne tellement plus utilisés. 476 00:24:02,120 --> 00:24:07,420 Mais presque tout le monde dans cette salle probablement a grandi avec et utilise encore les disques durs 477 00:24:07,420 --> 00:24:08,010 en quelque sorte. 478 00:24:08,010 --> 00:24:10,100 >> Même si la plupart des nos ordinateurs portables ne sont plus 479 00:24:10,100 --> 00:24:15,900 avoir des dispositifs qui fonctionnent comme ça, ordinateurs portables à la place aujourd'hui généralement 480 00:24:15,900 --> 00:24:18,590 ont des disques durs SSD sans pièces mobiles. 481 00:24:18,590 --> 00:24:22,840 Et qui a tendance à être plus cher, malheureusement, mais un peu plus rapide 482 00:24:22,840 --> 00:24:27,230 et a-- bien souvent, beaucoup plus rapide, qui est l'une des raisons. 483 00:24:27,230 --> 00:24:28,980 Et il ne fait pas générer autant de chaleur. 484 00:24:28,980 --> 00:24:31,680 Il peut être plus petit, il est donc généralement une nette positive. 485 00:24:31,680 --> 00:24:35,030 >> Mais cela nous permet de cartographier un peu plus concrètement ce que 486 00:24:35,030 --> 00:24:38,460 nous parlons au 0 et de 1 niveau maintenant à un dispositif physique. 487 00:24:38,460 --> 00:24:40,810 Il est une chose pour moi de parler environ 0 et de 1 dans les termes 488 00:24:40,810 --> 00:24:43,990 de mon téléphone ou abstraitement en termes des commutateurs étant sous et hors tension. 489 00:24:43,990 --> 00:24:45,340 Mais qu'en est-il des disques durs? 490 00:24:45,340 --> 00:24:48,495 Dans vos ordinateurs portables, si vous avez une ancienne un, ou dans votre ordinateur de bureau, 491 00:24:48,495 --> 00:24:51,200 ou certainement dans les serveurs aujourd'hui, où vous avez 492 00:24:51,200 --> 00:24:53,070 disques durs qui ont un téraoctet d'espace, 493 00:24:53,070 --> 00:24:55,560 4 téraoctets d'espace, bien ce que cela signifie? 494 00:24:55,560 --> 00:24:59,560 >> Un disque dur avec 1 téraoctet de moyens spatiaux 495 00:24:59,560 --> 00:25:03,890 il y a 1 billion d'octets à l'intérieur de celui-ci en quelque sorte, 496 00:25:03,890 --> 00:25:10,450 ou de manière équivalente 8 billions de bits à l'intérieur. 497 00:25:10,450 --> 00:25:16,240 1 téraoctet serait 8 térabits ou 1 billion de bits, 498 00:25:16,240 --> 00:25:19,330 signifie que si vous avez un disque lecteur, vous avez en quelque sorte 499 00:25:19,330 --> 00:25:22,400 ou d'autres un billion 0 de et de 1 l'intérieur de celui-ci. 500 00:25:22,400 --> 00:25:25,360 Et si nous prenons juste un oeil à un image arbitraire d'un disque dur 501 00:25:25,360 --> 00:25:30,110 représentant, voici ce que le disque lecteur peut généralement ressembler à l'intérieur. 502 00:25:30,110 --> 00:25:32,600 >> Elle aussi, est un peu comme un ancien joueur de phonographe 503 00:25:32,600 --> 00:25:35,350 mais en général, avec plusieurs enregistrements à l'intérieur, de sorte 504 00:25:35,350 --> 00:25:38,270 à speak-- multiples plateaux, comme on les appelle, 505 00:25:38,270 --> 00:25:42,259 disques circulaires en métal, et puis un peu la tête de lecture, 506 00:25:42,259 --> 00:25:43,550 un peu comme un vieux tourne-disque. 507 00:25:43,550 --> 00:25:46,589 Et que la tête de lecture se déplace en arrière et en avant et en quelque sorte lit les bits. 508 00:25:46,589 --> 00:25:49,380 Et ce qui est sur ces plateaux, même si nous, les humains ne peuvent pas les voir, 509 00:25:49,380 --> 00:25:52,757 soit dans la réalité ou dans cette image, il y a de minuscules particules magnétiques. 510 00:25:52,757 --> 00:25:55,090 Et même si vous avez longtemps oublié comment l'électricité fonctionne, 511 00:25:55,090 --> 00:25:57,550 une particule magnétique qui est accusé généralement 512 00:25:57,550 --> 00:26:00,570 a une extrémité nord et sud end-- donc au nord et au sud. 513 00:26:00,570 --> 00:26:03,000 Et ainsi le monde juste a décidé il y a quelque temps 514 00:26:03,000 --> 00:26:06,570 que, si un protocole magnétique essentiellement est aligné comme ça, nord-sud, 515 00:26:06,570 --> 00:26:07,610 disons que 1. 516 00:26:07,610 --> 00:26:10,470 Si elle est à la place sud-nord, disons simplement appeler cela un 0. 517 00:26:10,470 --> 00:26:13,350 Et donc si vous avez à votre disposition un billion 518 00:26:13,350 --> 00:26:16,300 minuscule magnétique particles-- et espérons-le, 519 00:26:16,300 --> 00:26:18,740 l'ingéniosité de matériel dans afin de retourner ceux autour 520 00:26:18,740 --> 00:26:24,450 comme vous le voyez fit-- si vous voulez représenter tout un tas de 0 de, vous 521 00:26:24,450 --> 00:26:28,120 juste besoin de 8 particules magnétiques tous alignés comme ça. 522 00:26:28,120 --> 00:26:30,330 Et si vous voulez représenter huit de 1, vous venez 523 00:26:30,330 --> 00:26:33,170 besoin de 8 particules magnétiques alignées dos à dos à dos comme ça. 524 00:26:33,170 --> 00:26:35,515 >> Qu'est-ce que je veux dire par la des particules magnétiques? 525 00:26:35,515 --> 00:26:38,390 Franchement, toutes ces années plus tard, le chose qui vient encore à l'esprit 526 00:26:38,390 --> 00:26:42,139 est ce gars, si vous a grandi avec cette chose. 527 00:26:42,139 --> 00:26:43,930 Ceci est un little-- pour ceux unfamiliar-- une 528 00:26:43,930 --> 00:26:47,810 petit jouet d'enfance qui a cet homme glabre ici 529 00:26:47,810 --> 00:26:51,690 qui a tous ces petits peu de noir des particules magnétiques qui viennent avec lui. 530 00:26:51,690 --> 00:26:53,930 Et en utilisant ce bâton rouge, qui est juste un aimant, 531 00:26:53,930 --> 00:26:58,460 vous pouvez sorte de lui donner une moustache ou les sourcils ou les cheveux ou quoi que ce soit sur lui. 532 00:26:58,460 --> 00:27:00,710 Donc, en fait, si on fait un zoom dans, par exemple, cela 533 00:27:00,710 --> 00:27:02,950 est le genre de jeu que vous peut jouer avec Wooly Willy. 534 00:27:02,950 --> 00:27:06,570 >> Et ce n'est-à-dire, ceux-ci sont des particules magnétiques beaucoup plus importantes 535 00:27:06,570 --> 00:27:09,890 que sont en fait sur un disque dur, et des particules magnétiques beaucoup moins. 536 00:27:09,890 --> 00:27:11,640 Mais voyons effectivement alors si vous ne possédez 537 00:27:11,640 --> 00:27:14,720 minuscules particules magnétiques dans un disque dur, comment vous pouvez réellement 538 00:27:14,720 --> 00:27:19,090 les utiliser pour représenter des données. 539 00:27:19,090 --> 00:27:20,070 >> [LECTURE VIDÉO] 540 00:27:20,070 --> 00:27:24,190 >> -Le Disque dur est où votre PC la plupart des magasins de ses données permanentes. 541 00:27:24,190 --> 00:27:27,170 Pour ce faire, les données se déplace le long de la RAM 542 00:27:27,170 --> 00:27:31,720 avec des signaux de logiciels qui racontent la disque dur comment stocker ces données. 543 00:27:31,720 --> 00:27:36,570 Les circuits de disques durs traduisent les signaux en fluctuations de tension. 544 00:27:36,570 --> 00:27:40,880 Ceux-ci, à son tour, contrôler le disque dur de déplacer parts-- certains des rares déplacement 545 00:27:40,880 --> 00:27:43,440 pièces laissées dans l'ordinateur moderne. 546 00:27:43,440 --> 00:27:47,650 >> Certains des signaux commandent un moteur, qui tourne plateaux revêtus de métal. 547 00:27:47,650 --> 00:27:50,980 Vos données sont en fait stocké sur ces plateaux. 548 00:27:50,980 --> 00:27:56,250 D'autres signaux se déplacent les têtes de lecture / écriture pour lire ou écrire des données sur les plateaux. 549 00:27:56,250 --> 00:28:00,100 Ce mécanisme est si précis qu'un cheveu humain ne pouvait même pas 550 00:28:00,100 --> 00:28:02,800 passer entre les têtes et la filature plateaux. 551 00:28:02,800 --> 00:28:04,887 Pourtant, tout cela fonctionne à des vitesses fantastiques. 552 00:28:04,887 --> 00:28:05,470 [FIN LECTURE] 553 00:28:05,470 --> 00:28:06,780 Et vous pouvez voir à la l'extrémité de queue de la vidéo, 554 00:28:06,780 --> 00:28:08,340 il y a généralement plusieurs plateaux. 555 00:28:08,340 --> 00:28:10,250 Et pour que la tête de lecture est non seulement la lecture de la partie supérieure. 556 00:28:10,250 --> 00:28:12,458 Il est un peu comme trois ou au moins quatre têtes de lecture 557 00:28:12,458 --> 00:28:14,920 ce mouvement comme celui-ci, la lecture de données simultanément. 558 00:28:14,920 --> 00:28:17,407 >> Donc, il y a beaucoup de la complexité et une sorte de calendrier 559 00:28:17,407 --> 00:28:18,740 qui est impliqué dans un disque dur. 560 00:28:18,740 --> 00:28:21,920 Et la chose tourne vraiment sacrément rapide, donc il y a beaucoup de complexité. 561 00:28:21,920 --> 00:28:25,220 Mais nous allons faire un zoom dans un peu plus profond et voir où sont ces particules magnétiques 562 00:28:25,220 --> 00:28:27,370 et comment nous obtenons à eux. 563 00:28:27,370 --> 00:28:28,750 >> [LECTURE VIDÉO] 564 00:28:28,750 --> 00:28:31,830 >> Le regard de -LET à ce que nous juste vu dans le mouvement lent. 565 00:28:31,830 --> 00:28:35,230 Quand une brève impulsion électrique est envoyé à la tête de lecture / écriture, 566 00:28:35,230 --> 00:28:39,000 il bascule sur un petit électromagnétique pour une fraction de seconde. 567 00:28:39,000 --> 00:28:41,390 L'aimant crée un champ, ce qui modifie 568 00:28:41,390 --> 00:28:44,600 la polarité d'un minuscule, minuscule partie des particules métalliques 569 00:28:44,600 --> 00:28:46,960 qui enrobent la surface de chaque plateau. 570 00:28:46,960 --> 00:28:50,020 Une série de motifs de ces minuscules zones chargées jusqu'à sur le disque 571 00:28:50,020 --> 00:28:54,590 représente un bit de données dans le système de numération binaire utilisé par les ordinateurs. 572 00:28:54,590 --> 00:28:57,510 >> Maintenant, si le courant est envoyé une chemin à travers la tête de lecture / écriture, 573 00:28:57,510 --> 00:28:59,899 la région est polarisée dans une seule direction. 574 00:28:59,899 --> 00:29:01,940 Si le courant est envoyé dans la direction opposée, 575 00:29:01,940 --> 00:29:04,020 la polarisation est inversée. 576 00:29:04,020 --> 00:29:06,440 Comment obtenez-vous des données depuis le disque dur? 577 00:29:06,440 --> 00:29:08,190 Juste inverser le processus. 578 00:29:08,190 --> 00:29:10,440 Ce sont donc les particules sur la disque qui obtiennent le courant 579 00:29:10,440 --> 00:29:12,260 dans la tête de lecture / écriture en mouvement. 580 00:29:12,260 --> 00:29:14,580 Mettez ensemble des millions de ces segments aimantés, 581 00:29:14,580 --> 00:29:16,220 et vous avez un fichier. 582 00:29:16,220 --> 00:29:21,030 >> Maintenant, les pièces d'un seul fichier peut être dispersés dans les plateaux d'un entraînement, 583 00:29:21,030 --> 00:29:24,060 un peu comme le gâchis de papiers sur votre bureau. 584 00:29:24,060 --> 00:29:27,590 Donc, un fichier spécial supplémentaire conserve piste de l'endroit où tout est. 585 00:29:27,590 --> 00:29:30,440 Voulez-vous pas que vous aviez quelque chose comme ca? 586 00:29:30,440 --> 00:29:31,290 >> [FIN LECTURE] 587 00:29:31,290 --> 00:29:36,260 >> Donc, étant fait allusion là, peut-être, est ce sujet d'hier de la suppression. 588 00:29:36,260 --> 00:29:38,380 Lorsque vous supprimez un fichier, hier, nous avons dit 589 00:29:38,380 --> 00:29:41,020 qu'un ordinateur ne fait ce que, lorsque vous faites glisser quelque chose 590 00:29:41,020 --> 00:29:44,110 à la corbeille ou poubelle? 591 00:29:44,110 --> 00:29:45,150 Il oublie tout simplement. 592 00:29:45,150 --> 00:29:47,540 Mais tout le 0 et de 1, les particules magnétiques 593 00:29:47,540 --> 00:29:50,640 ce regard comme le rouge et le bleu choses ici, ou mon bras ici, 594 00:29:50,640 --> 00:29:52,350 sont toujours là sur le disque dur. 595 00:29:52,350 --> 00:29:56,090 >> Et donc il existe software-- Norton Utilities et Antan 596 00:29:56,090 --> 00:29:58,159 et d'autres plus modernes software-- qui vient 597 00:29:58,159 --> 00:30:01,200 va scanner un disque dur entier à la recherche à tous ces 0 et de 1, parce qu'il 598 00:30:01,200 --> 00:30:06,890 se révèle que la plupart des fichiers formats-- documents Word, fichiers Excel, images, 599 00:30:06,890 --> 00:30:10,380 vidéo files-- ont tous certains les modèles qui sont communs entre eux. 600 00:30:10,380 --> 00:30:12,550 Chaque fichier vidéo pourrait être d'une autre vidéo, 601 00:30:12,550 --> 00:30:14,870 mais la première de plusieurs les bits sont généralement les mêmes. 602 00:30:14,870 --> 00:30:16,790 Ou les derniers plusieurs bits sont généralement les mêmes. 603 00:30:16,790 --> 00:30:19,910 >> Et donc avec une forte probabilité, vous pouvez rechercher ces modèles. 604 00:30:19,910 --> 00:30:23,700 Et même si le fichier a été oublié, vous pouvez dire avec une forte probabilité, 605 00:30:23,700 --> 00:30:28,460 mais cela ressemble à un document Word, laisse récupérer et non l'oublier, 606 00:30:28,460 --> 00:30:28,990 si vous voulez. 607 00:30:28,990 --> 00:30:32,330 Et voilà comment vous pouvez récupérer données qui soit été accidentellement 608 00:30:32,330 --> 00:30:36,560 supprimé ou supprimé ou délibérément supprimé les buts. 609 00:30:36,560 --> 00:30:42,530 >> En revanche, la suppression sécurisée fait quoi dans le contexte d'une image comme ça? 610 00:30:42,530 --> 00:30:44,059 Exactement, les rend tout hasard. 611 00:30:44,059 --> 00:30:46,350 Donc, ce genre de déplace certains les, certains d'entre eux jusqu'à, 612 00:30:46,350 --> 00:30:49,433 laisse certains d'entre eux inchangés, et fait généralement le bruit aléatoire hors de lui, 613 00:30:49,433 --> 00:30:52,960 ou tout simplement fait peut-être tous eux des 0 ou chacun d'eux 1 de. 614 00:30:52,960 --> 00:30:56,350 Et cela aussi peut généralement frottez vos données de distance. 615 00:30:56,350 --> 00:31:00,160 >> Revenons donc maintenant à la question de la pensée de calcul, de sorte que 616 00:31:00,160 --> 00:31:03,270 nous avons les entrées de la formule. 617 00:31:03,270 --> 00:31:06,390 Et algorithmes donne vous sorties en fin de compte. 618 00:31:06,390 --> 00:31:09,270 Nous nous concentrons maintenant sur les intrants et sorties, parce que maintenant, je 619 00:31:09,270 --> 00:31:12,159 la revendication que nous avons une façon de représentant les entrées et sorties. 620 00:31:12,159 --> 00:31:13,450 Nous allons juste utiliser binaire. 621 00:31:13,450 --> 00:31:15,910 >> Et peu importe ce que nous vouloir représenter aujourd'hui, 622 00:31:15,910 --> 00:31:20,230 que ce soit un numéro ou une lettre ou des milliers de ceux-ci dans un annuaire téléphonique 623 00:31:20,230 --> 00:31:23,210 ou des images ou des films, à la fin de la journée, il est tout 0 et de 1. 624 00:31:23,210 --> 00:31:26,640 Et je prétends que, même si cela est un monde super simple avec seulement des 0 625 00:31:26,640 --> 00:31:28,240 et de 1, nous pouvons nous construire. 626 00:31:28,240 --> 00:31:32,210 Et nous avons vu un exemple de que des lettres à ce jour. 627 00:31:32,210 --> 00:31:35,615 >> Alors concentrons-nous maintenant sur ce ingrédient milieu, un algorithme. 628 00:31:35,615 --> 00:31:38,190 Et revenons à cette exemple de Mike Smith. 629 00:31:38,190 --> 00:31:41,689 Donc, dans ce livre de téléphone, ce qui est vrai, nous ne l'utilisons plus tellement, 630 00:31:41,689 --> 00:31:42,980 il y a un problème à résoudre. 631 00:31:42,980 --> 00:31:45,040 Nous voulons trouver quelqu'un comme Mike Smith. 632 00:31:45,040 --> 00:31:47,520 >> Et que pourrais-je faire pour trouver Mike? 633 00:31:47,520 --> 00:31:51,197 Eh bien, je ne pouvais ouvrir ce livre, commencer à la première page, 634 00:31:51,197 --> 00:31:52,780 et de réaliser, oh, je suis dans la section A. 635 00:31:52,780 --> 00:31:53,510 Mike est pas là. 636 00:31:53,510 --> 00:31:55,510 Je dois la section S pour Smith. 637 00:31:55,510 --> 00:31:58,192 Il suffit donc de continuer à tourner une page à la fois. 638 00:31:58,192 --> 00:32:00,900 Permettez-moi de prétendre que tout cela est pages blanches et pages jaunes, pas 639 00:32:00,900 --> 00:32:02,910 parce que nous ne trouverons Mike dans les pages jaunes de toute façon. 640 00:32:02,910 --> 00:32:04,034 Mais je suis dans les pages blanches. 641 00:32:04,034 --> 00:32:05,340 Et maintenant, je suis dans la section B. 642 00:32:05,340 --> 00:32:06,810 Je n'ai pas encore trouvé. 643 00:32:06,810 --> 00:32:08,890 Donc je continue à tourner une page à la fois. 644 00:32:08,890 --> 00:32:10,130 >> Ceci est un algorithme. 645 00:32:10,130 --> 00:32:12,440 Il est un ensemble d'instructions pour résoudre un problème. 646 00:32:12,440 --> 00:32:16,480 En d'autres mots, regardez page, si Mike est pas sur elle, 647 00:32:16,480 --> 00:32:20,020 tourner la page, et répète Encore et encore et encore, 648 00:32:20,020 --> 00:32:21,760 idéalement regardant vers le bas comme vous le faites. 649 00:32:21,760 --> 00:32:24,120 Ainsi est cet algorithme, ce processus, correct? 650 00:32:24,120 --> 00:32:27,400 651 00:32:27,400 --> 00:32:28,830 >> Pardon. 652 00:32:28,830 --> 00:32:30,056 Non, j'entends des nos. 653 00:32:30,056 --> 00:32:33,250 654 00:32:33,250 --> 00:32:36,125 OK, mais il est-- ouais, il est certainement fastidieux. 655 00:32:36,125 --> 00:32:39,000 Comme, nous serons ici toute la journée si je continuer à chercher Mike à cette vitesse. 656 00:32:39,000 --> 00:32:41,430 Mais permettez-moi de prétendre qu'il est correct. 657 00:32:41,430 --> 00:32:43,850 Il est stupide, mais il est exact. 658 00:32:43,850 --> 00:32:47,209 >> A la fin de la journée, tant qu'elle pourrait prendre, je vais trouver Mike s'il est là 659 00:32:47,209 --> 00:32:48,250 et je suis en accordant une attention. 660 00:32:48,250 --> 00:32:50,230 Et je fini par atteindre sa page. 661 00:32:50,230 --> 00:32:52,890 Et si je suis trop loin, si Je reçois à la section T, 662 00:32:52,890 --> 00:32:55,900 alors je peux légèrement optimiser et dire simplement, hm, tout est fait. 663 00:32:55,900 --> 00:32:57,980 Je ne suis même pas besoin de perdre le temps d'aller à la Z de. 664 00:32:57,980 --> 00:33:00,010 Mais ceci est un très approche linéaire, si vous 665 00:33:00,010 --> 00:33:03,370 sera, très sorte de gauche à droite approche, une ligne droite. 666 00:33:03,370 --> 00:33:05,560 Et son bon mais lent. 667 00:33:05,560 --> 00:33:09,250 >> Donc, je me souviens de l'école primaire, trier d'une optimisation d'une première niveleuse, 668 00:33:09,250 --> 00:33:13,756 où j'appris à compter pas par ceux mais si twos-- 2, 4, 6. 669 00:33:13,756 --> 00:33:15,630 Il est A, beaucoup plus difficile à faire, mais en théorie, il est 670 00:33:15,630 --> 00:33:20,149 faster-- 8, 10, 12, 14, et ainsi de suite. 671 00:33:20,149 --> 00:33:21,190 Que diriez-vous de cet algorithme? 672 00:33:21,190 --> 00:33:23,150 Est-il plus efficace? 673 00:33:23,150 --> 00:33:23,880 Est-il plus rapide? 674 00:33:23,880 --> 00:33:25,365 >> AUDIENCE: Il est efficace. 675 00:33:25,365 --> 00:33:28,560 >> DAVID MALAN: Oui, il est donc def-- il est littéralement deux fois plus vite, en supposant que je 676 00:33:28,560 --> 00:33:30,170 ne pas se trébucher avec mes doigts. 677 00:33:30,170 --> 00:33:32,294 Il est deux fois plus rapide, parce que Je tourne à travers deux 678 00:33:32,294 --> 00:33:36,560 pages à la fois au lieu d'un, mais il est potentiellement correct, parce que pourquoi? 679 00:33:36,560 --> 00:33:37,852 >> AUDIENCE: Vous sauter quelques-uns. 680 00:33:37,852 --> 00:33:41,185 DAVID MALAN: droit, si Mike arrive à sandwiched-- peut-être quand je suis plus tard 681 00:33:41,185 --> 00:33:44,370 dans l'annuaire téléphonique, Mike arrive à être pris en sandwich entre ces deux pages, 682 00:33:44,370 --> 00:33:46,720 et je viens de sauter aveuglément dessus. 683 00:33:46,720 --> 00:33:48,490 Nous avons donc besoin d'un peu fix là. 684 00:33:48,490 --> 00:33:51,290 Une fois que je frappe la section T, I ne peut pas dire tout simplement en toute confiance, 685 00:33:51,290 --> 00:33:52,420 nous avons trouvé pas Mike Smith. 686 00:33:52,420 --> 00:33:53,770 Je dois probablement doubler en arrière. 687 00:33:53,770 --> 00:34:00,210 Ou en fait, une fois arrivé à quelqu'un nommé S-N, au lieu de S-M pour Smith, 688 00:34:00,210 --> 00:34:02,790 immédiatement, je pouvais doubler arrière, parce que peut-être qu'il 689 00:34:02,790 --> 00:34:03,900 était sur la page précédente. 690 00:34:03,900 --> 00:34:05,070 >> Mais je ne dois pas doubler en arrière loin. 691 00:34:05,070 --> 00:34:08,030 En théorie, si je le fais à droite temps, je viens de revenir d'une page. 692 00:34:08,030 --> 00:34:10,139 il est donc l'ajout d'une seule étape supplémentaire. 693 00:34:10,139 --> 00:34:13,070 Donc, je suis allé deux fois plus vite, mais il m'a coûté une page supplémentaire. 694 00:34:13,070 --> 00:34:14,699 Mais cela se sent comme une victoire nette. 695 00:34:14,699 --> 00:34:17,230 >> Mais ce n'est pas la façon dont la plupart des gens cette chambre résoudrait ce problème. 696 00:34:17,230 --> 00:34:20,313 Que serait une personne typique, peut-être un Il y a quelques années le font, pour trouver Mike Smith? 697 00:34:20,313 --> 00:34:22,900 698 00:34:22,900 --> 00:34:24,800 Ouais, n'a pas trouvé Mike. 699 00:34:24,800 --> 00:34:27,190 Que fais-je? 700 00:34:27,190 --> 00:34:31,027 Donc, obtenir un peu plus près, mais je ne know-- ce qui est vrai d'un livre de téléphone? 701 00:34:31,027 --> 00:34:32,110 AUDIENCE: Il est séquentiel. 702 00:34:32,110 --> 00:34:32,760 DAVID MALAN: Il est séquentiel. 703 00:34:32,760 --> 00:34:33,750 Il est alphabétique. 704 00:34:33,750 --> 00:34:36,540 Et donc, si je suis dans la section M, Mike est clairement à droite, 705 00:34:36,540 --> 00:34:39,949 Je peux littéralement déchirer le problème dans half-- 706 00:34:39,949 --> 00:34:44,360 il est généralement plus facile que la déchirure that-- le problème dans la moitié et le jeter, 707 00:34:44,360 --> 00:34:47,627 de sorte que maintenant, j'ai un problème qui est plus de 1000 pages-- qui était dur, 708 00:34:47,627 --> 00:34:50,210 parce que je pense que je réellement déchiré l'annuaire téléphonique ce time-- pas 709 00:34:50,210 --> 00:34:52,219 1000 pages, mais 500. 710 00:34:52,219 --> 00:34:54,750 >> Donc, le problème est littéralement la moitié aussi grand. 711 00:34:54,750 --> 00:34:58,170 Et c'est assez convaincant, parce avec mes algorithmes précédents, la version 712 00:34:58,170 --> 00:35:02,870 1 et 2, je ne gagnais que le problème une page plus petits, deux pages plus petites 713 00:35:02,870 --> 00:35:03,470 à la fois. 714 00:35:03,470 --> 00:35:07,230 Alors que maintenant, je l'ai fait 500 les pages plus petit à la fois. 715 00:35:07,230 --> 00:35:10,089 >> OK, maintenant, Karim propose que je vais à la moitié droite. 716 00:35:10,089 --> 00:35:12,380 Donc, je vais aller à peu près au milieu, donner ou prendre. 717 00:35:12,380 --> 00:35:15,185 Et si je l'ai fait mathématiquement, Je pourrais aller droit au milieu. 718 00:35:15,185 --> 00:35:17,060 Et maintenant, je me rends compte, oh, Je suis dans la section T. 719 00:35:17,060 --> 00:35:18,280 Je ne fait aller trop loin. 720 00:35:18,280 --> 00:35:21,670 >> Mais je peux, encore une fois, déchirer le problème dans la moitié, le jeter. 721 00:35:21,670 --> 00:35:23,330 Et mes octets pas aussi grand. 722 00:35:23,330 --> 00:35:28,780 Il est seulement, ce qui, 256 pages ou 250 pages, donner ou prendre en ce moment. 723 00:35:28,780 --> 00:35:31,570 Mais il est encore beaucoup plus d'une page ou deux pages. 724 00:35:31,570 --> 00:35:33,345 >> Et maintenant, je vais à peu près au milieu. 725 00:35:33,345 --> 00:35:35,330 Oh, je ne suis pas allé assez loin maintenant assez. 726 00:35:35,330 --> 00:35:37,880 Donc, je le répète, répéter, répéter, répéter, jusqu'à ce que je suis, espérons 727 00:35:37,880 --> 00:35:40,360 à gauche avec une seule page. 728 00:35:40,360 --> 00:35:44,000 >> Donc, qui invite à la question, si je a commencé avec environ 1000 pages, 729 00:35:44,000 --> 00:35:47,340 combien d'étapes at-il me prendre avec la version 1 de mon algorithme? 730 00:35:47,340 --> 00:35:50,420 Eh bien, si Mike est dans le S section, dans le pire des cas, 731 00:35:50,420 --> 00:35:52,630 qui est assez proche de la fin de l'alphabet. 732 00:35:52,630 --> 00:35:56,559 Donc, si le répertoire a 1.000 pages, Je vais trouver Mike à moins de 1000 pages, 733 00:35:56,559 --> 00:35:57,100 donner ou prendre. 734 00:35:57,100 --> 00:35:59,750 Peut-être qu'il est comme 800 ou plus, mais il est assez proche de 1000. 735 00:35:59,750 --> 00:36:01,680 >> Considérant que, dans le second algorithme, combien 736 00:36:01,680 --> 00:36:06,840 la page se tourne au maximum pourrait I besoin de trouver Mike Smith? 737 00:36:06,840 --> 00:36:09,970 Il y a 1000 pages, mais je suis les deux faisant à la fois. 738 00:36:09,970 --> 00:36:13,045 Bon, alors max comme 500ish, parce si je vais à travers l'ensemble du livre de téléphone, 739 00:36:13,045 --> 00:36:14,170 à quel point, je peux arrêter. 740 00:36:14,170 --> 00:36:16,669 Mais je peux raser quelques par juste arrêter à la section T. 741 00:36:16,669 --> 00:36:19,880 Mais il est au pire des cas, 500 pages. 742 00:36:19,880 --> 00:36:24,710 >> Alors, combien de fois puis-je diviser un 1,00o page annuaire téléphonique dans la moitié encore 743 00:36:24,710 --> 00:36:30,450 et encore et de again-- 1 000 500 à 250-125? 744 00:36:30,450 --> 00:36:32,250 Combien de temps avant que je frappe une page? 745 00:36:32,250 --> 00:36:35,510 746 00:36:35,510 --> 00:36:36,370 Ouais, il est environ 10. 747 00:36:36,370 --> 00:36:40,780 Selon l'arrondissement et tel, il est environ 10 pages besoin total à être mis sous tension 748 00:36:40,780 --> 00:36:43,290 ou des livres de téléphone doivent être déchirés. 749 00:36:43,290 --> 00:36:44,710 >> Donc c'est assez puissant. 750 00:36:44,710 --> 00:36:48,170 Nous avons commencé avec un problème de 1000 pages dans tous les trois de ces histoires. 751 00:36:48,170 --> 00:36:51,850 Mais dans le premier algorithme, il m'a pris, le pire des cas, la page 1000 752 00:36:51,850 --> 00:36:52,740 tourne pour trouver Mike. 753 00:36:52,740 --> 00:36:55,590 Deuxième algorithme, 500 pages pour trouver Mike. 754 00:36:55,590 --> 00:36:58,480 Troisième algorithme, 10 pages pour trouver Mike. 755 00:36:58,480 --> 00:37:00,230 Et il est encore plus quand puissant vous pensez 756 00:37:00,230 --> 00:37:01,860 environ une sorte de scénario inverse. 757 00:37:01,860 --> 00:37:05,680 Supposons que la compagnie de téléphone suivant année se confond peut-être deux villes ensemble, 758 00:37:05,680 --> 00:37:08,550 et le livre de téléphone est soudainement cette épaisseur, au lieu de ce que, 759 00:37:08,550 --> 00:37:12,470 donc 2.000 pages au lieu de 1000. 760 00:37:12,470 --> 00:37:15,640 Eh bien, mon premier algorithme à la recherche de Mike Smith dans un 2000 pages annuaire téléphonique, 761 00:37:15,640 --> 00:37:21,460 le pire des cas, il va prendre combien de pages tourne l'année prochaine? 762 00:37:21,460 --> 00:37:24,800 >> Répertoire est de 2000 pages, so-- bien, pas un de plus. 763 00:37:24,800 --> 00:37:29,540 Si le répertoire est deux fois plus épaisse le premier algorithme, le premier algorithme, 764 00:37:29,540 --> 00:37:30,380 2000, non? 765 00:37:30,380 --> 00:37:33,005 Dans le pire des cas, Mike est vraiment près de la fin du livre, 766 00:37:33,005 --> 00:37:34,110 il est si 2000 page se tourne. 767 00:37:34,110 --> 00:37:38,070 Deuxième algorithme en passant par deux, comme 1.000 pages. 768 00:37:38,070 --> 00:37:41,490 >> Mais que diriez-vous dans ma troisième et le plus récent algorithme? 769 00:37:41,490 --> 00:37:44,950 Si la compagnie de téléphone double la nombre de pages 1000 à 2000, 770 00:37:44,950 --> 00:37:47,770 combien de fois ai-je besoin déchirer ce livre en deux pour trouver Mike? 771 00:37:47,770 --> 00:37:48,710 >> AUDIENCE: Juste une. 772 00:37:48,710 --> 00:37:51,001 >> DAVID MALAN: Juste une, car avec une seule page à la déchirure, 773 00:37:51,001 --> 00:37:53,270 Je peux littéralement diviser et de conquérir, si vous voulez, 774 00:37:53,270 --> 00:37:57,410 ce problème dans la moitié de prise une morsure massif en sortir. 775 00:37:57,410 --> 00:38:01,420 Et ceci est un exemple de efficacité et sans doute un algorithme 776 00:38:01,420 --> 00:38:04,100 avec laquelle nous sommes tous sorte de intuitivement familier. 777 00:38:04,100 --> 00:38:07,780 Mais il est tout aussi correct comme mes autres algorithmes 778 00:38:07,780 --> 00:38:09,630 avec ce tweak pour le second algorithme, 779 00:38:09,630 --> 00:38:11,290 mais il est tellement plus efficace. 780 00:38:11,290 --> 00:38:14,030 >> Et en fait, ce qu'est un ordinateur scientifique, ou à son tour un programmeur, 781 00:38:14,030 --> 00:38:17,580 serait généralement faire lors de l'écriture le code est d'essayer de comprendre, 782 00:38:17,580 --> 00:38:19,960 tout droit, je ne veux pas que mon programme juste pour être correct, 783 00:38:19,960 --> 00:38:23,220 Je veux aussi qu'il soit efficace et résoudre des problèmes bien. 784 00:38:23,220 --> 00:38:26,450 Imaginez dans le monde réel d'aujourd'hui, comme Google indexe, les recherches 785 00:38:26,450 --> 00:38:31,580 comme des milliards de pages, imaginez si elles utilisé le premier algorithme pour trouver les chats 786 00:38:31,580 --> 00:38:34,620 au sein d'un milliard de pages-- regardant la première page dans leur base de données, 787 00:38:34,620 --> 00:38:37,700 le second, le troisième, tout en regardant pour un chat, la recherche d'un chat. 788 00:38:37,700 --> 00:38:40,350 Cela est diablement lent, il semblerait. 789 00:38:40,350 --> 00:38:43,170 Ils pourraient plutôt utiliser quelque chose appelé recherche binaire, qui 790 00:38:43,170 --> 00:38:47,420 est pas bi coincidence-- signifie deux, nous garder quelque chose en divisant 2, en half-- 791 00:38:47,420 --> 00:38:50,205 ils pourraient utiliser la recherche binaire et peut-être trouver des chats encore plus rapide, 792 00:38:50,205 --> 00:38:51,830 ou quoi que ce soit que vous recherchez. 793 00:38:51,830 --> 00:38:54,125 >> Et franchement, il n'y a même algorithmes fantaisistes 794 00:38:54,125 --> 00:38:56,250 que faire beaucoup plus que juste divisant les choses dans la moitié 795 00:38:56,250 --> 00:38:58,180 afin de trouver rapidement des informations. 796 00:38:58,180 --> 00:39:00,880 Et nous allons parler un peu à propos de ceux qui, après le déjeuner aujourd'hui. 797 00:39:00,880 --> 00:39:02,640 Alors permettez-moi d'essayer de représenter cela. 798 00:39:02,640 --> 00:39:05,380 On n'a pas besoin d'aller dans toute les mathématiques ou les chiffres réels. 799 00:39:05,380 --> 00:39:07,070 Nous pouvons en parler dans l'abstrait. 800 00:39:07,070 --> 00:39:11,580 >> Mais laissez-moi vous propose, si vous ont été une discussion maintenant 801 00:39:11,580 --> 00:39:13,491 avec les ingénieurs proposant cet algorithme 802 00:39:13,491 --> 00:39:15,490 et vous essayez de faire une décision calculée, 803 00:39:15,490 --> 00:39:17,285 parce que peut-être le ingénieur vous dit, vous 804 00:39:17,285 --> 00:39:19,910 savoir ce que je peux mettre en œuvre un recherche linéaire comme deux minutes. 805 00:39:19,910 --> 00:39:21,150 Il est si facile. 806 00:39:21,150 --> 00:39:24,790 Recherche binaire est pas chic, mais ça va me prendre comme 10 minutes, 807 00:39:24,790 --> 00:39:26,650 alors 5 fois plus longtemps. 808 00:39:26,650 --> 00:39:30,900 >> Il y a un commerce ici, même en termes de décider quel logiciel à écrire. 809 00:39:30,900 --> 00:39:34,760 Écrivez-vous l'algorithme plus simple, qui va juste vous prendre deux minutes? 810 00:39:34,760 --> 00:39:39,880 Ou voulez-vous passer plus de temps, 10 minutes, écrire l'algorithme colombophile? 811 00:39:39,880 --> 00:39:43,540 Comment décidez-vous ce genre de question? 812 00:39:43,540 --> 00:39:46,710 Ou vous pouvez faire un peu plus réel. 813 00:39:46,710 --> 00:39:50,610 Je dis à mon patron, il va prendre moi non plus d'une semaine ou 10 semaines 814 00:39:50,610 --> 00:39:52,490 mettre en oeuvre le logiciel de cette façon, comment 815 00:39:52,490 --> 00:39:56,103 décidez-vous algorithme pour feu vert? 816 00:39:56,103 --> 00:39:56,603 Karim? 817 00:39:56,603 --> 00:39:57,550 >> AUDIENCE: Le public, je suppose. 818 00:39:57,550 --> 00:39:57,960 >> DAVID MALAN: Le public. 819 00:39:57,960 --> 00:39:59,460 Que voulez-vous dire par le public? 820 00:39:59,460 --> 00:40:03,460 >> AUDIENCE: Si ça va pour être utilisé par des utilisateurs 821 00:40:03,460 --> 00:40:09,050 qui [Inaudible] par les utilisateurs [Inaudible]. 822 00:40:09,050 --> 00:40:11,232 Mais si elle est quelque chose que vous êtes juste faire pour vous-même 823 00:40:11,232 --> 00:40:13,946 pour faciliter un problème, [Inaudible] plus rapide. 824 00:40:13,946 --> 00:40:16,820 DAVID MALAN: Oui, il est rapide et sale est une bonne façon de le décrire. 825 00:40:16,820 --> 00:40:18,695 En fait, si vous êtes décrivant une grande partie de mon temps 826 00:40:18,695 --> 00:40:23,630 à l'école grad, de sorte que souvent, J'ai écrit mauvais code consciemment so-- 827 00:40:23,630 --> 00:40:26,490 au moins, voilà comment je it-- rationalisée consciemment donc, 828 00:40:26,490 --> 00:40:30,670 parce que même si je suis en train d'écrire le code qui a été relativement lente à exécuter, 829 00:40:30,670 --> 00:40:33,750 Je suis capable d'écrire le code lui-même assez rapide, les dépenses à quelques minutes 830 00:40:33,750 --> 00:40:35,107 ou heures et non de jours. 831 00:40:35,107 --> 00:40:37,190 Et il est apparu, je de temps en temps nécessaire pour dormir. 832 00:40:37,190 --> 00:40:41,270 Donc, même si mon code requis 8 heures à courir, bien que très bien, 833 00:40:41,270 --> 00:40:42,850 Je vais aller dormir pendant son exécution. 834 00:40:42,850 --> 00:40:46,350 >> Donc, à l'époque, je pensais que cela était très intelligent, même si je semble 835 00:40:46,350 --> 00:40:48,990 travaillé à travers ma thèse très lentement. 836 00:40:48,990 --> 00:40:52,270 Mais l'inverse de cela est que, le logiciel si je devais écrire 837 00:40:52,270 --> 00:40:55,930 pour d'autres personnes qui importait plus que moi, eh bien, 838 00:40:55,930 --> 00:40:59,580 les avoir attendez 8 heures à récupérer leurs résultats de recherche 839 00:40:59,580 --> 00:41:01,350 est pas tout à fait convaincante. 840 00:41:01,350 --> 00:41:04,090 Et donc passer plus de temps à l'avant d'écrire des logiciels 841 00:41:04,090 --> 00:41:07,300 qui est plus efficace, plus comme notre troisième algorithme, 842 00:41:07,300 --> 00:41:09,780 profite probablement les utilisateurs au fil du temps. 843 00:41:09,780 --> 00:41:12,710 Donc, cela dépend vraiment plus temps comment ces coûts additionner. 844 00:41:12,710 --> 00:41:14,960 Si vous allez être écrit logiciel à utiliser une fois, 845 00:41:14,960 --> 00:41:17,240 probablement pourrait aussi bien faire rapide et sale, comme on dit. 846 00:41:17,240 --> 00:41:18,198 Il suffit de jeter ensemble. 847 00:41:18,198 --> 00:41:20,560 Il est le code qui embarrasse vous, il est si mauvais, 848 00:41:20,560 --> 00:41:23,860 mais il fait le travail correctement, même si ce n'est pas efficace. 849 00:41:23,860 --> 00:41:27,200 Inversement, vous passez plus de temps sur quelque chose, faites-le juste. 850 00:41:27,200 --> 00:41:30,730 Et puis amorti au fil du temps, coût initial du temps 851 00:41:30,730 --> 00:41:34,330 est probablement utile, si vous gardez optimisation pour le cas commun. 852 00:41:34,330 --> 00:41:37,620 >> Et en effet, c'est un thème programmation, ou l'informatique plus 853 00:41:37,620 --> 00:41:41,390 généralement, en essayant d'optimiser pas pour le cas rare 854 00:41:41,390 --> 00:41:44,390 mais les case-- communes quelle opération qui va se passer encore et encore? 855 00:41:44,390 --> 00:41:47,730 Si vous allez avoir des milliards des utilisateurs effectuant une recherche sur votre site Web, 856 00:41:47,730 --> 00:41:52,030 vous devriez probablement passer le supplément semaines à l'avant l'écriture de meilleurs logiciels, 857 00:41:52,030 --> 00:41:53,670 de sorte que tous vos utilisateurs bénéficient. 858 00:41:53,670 --> 00:41:57,840 Maintenant, nous allons essayer de capturer ce un peu picturalement, mais pas tellement 859 00:41:57,840 --> 00:41:58,610 numériquement. 860 00:41:58,610 --> 00:42:01,680 >> Alors, voici juste un vieux tableau de l'école. 861 00:42:01,680 --> 00:42:04,260 Et permettez-moi de dire que ce moment est venu. 862 00:42:04,260 --> 00:42:06,660 Et il n'a pas d'importance what-- en fait, non, pas le temps. 863 00:42:06,660 --> 00:42:08,320 Mettons que sur l'autre axe. 864 00:42:08,320 --> 00:42:15,700 Disons que le moment est venu, et ceci est la taille du problème. 865 00:42:15,700 --> 00:42:17,830 >> Et un informaticien peut généralement appeler 866 00:42:17,830 --> 00:42:20,820 ce juste n. n est comme notre go-to variable où 867 00:42:20,820 --> 00:42:26,351 n est un nombre, le nombre n, et il est le nombre de quelles que soient les entrées que vous avez. 868 00:42:26,351 --> 00:42:28,100 Donc dans ce cas, n est le nombre de pages. 869 00:42:28,100 --> 00:42:30,150 Il pourrait donc être 1000 en le cas que nous venons de dire. 870 00:42:30,150 --> 00:42:31,969 >> Donc, le temps peut être une unité de mesure. 871 00:42:31,969 --> 00:42:32,760 Peut-être, il est deuxième. 872 00:42:32,760 --> 00:42:33,410 Peut-être, il est temps. 873 00:42:33,410 --> 00:42:34,590 Peut-être, il est comme page se tourne. 874 00:42:34,590 --> 00:42:35,215 N'a pas d'importance. 875 00:42:35,215 --> 00:42:38,840 Quoi que vous voulez compter dans, que sera le temps ou le coût de manière équivalente. 876 00:42:38,840 --> 00:42:42,400 >> Donc, avec cette première algorithme, si je, par exemple, 877 00:42:42,400 --> 00:42:45,920 eu 1000 pages annuaire téléphonique, Je vais dessiner un point là-bas, 878 00:42:45,920 --> 00:42:51,450 parce que si elle est de 1000 pages, il a fallu environ 1000 pages tourne, donner ou prendre. 879 00:42:51,450 --> 00:42:54,100 Et puis si j'avais un 2000 pages annuaire téléphonique, 880 00:42:54,100 --> 00:42:57,200 et je vais dessiner un second dot ici, parce que pour 2.000 pages, 881 00:42:57,200 --> 00:42:59,810 il est comme 2.000 secondes ou page se tourne ou autre. 882 00:42:59,810 --> 00:43:02,480 Et quand je l'ai déjà dit, il est sorte d'une relation linéaire, 883 00:43:02,480 --> 00:43:06,020 qui était délibéré, parce que je voulais plus tard on-- droit maintenant-- de tracer une ligne. 884 00:43:06,020 --> 00:43:07,770 Il est une sorte de droit relation de ligne. 885 00:43:07,770 --> 00:43:10,180 La pente est 1/1, si vous voulez. 886 00:43:10,180 --> 00:43:14,630 >> Pendant ce temps, le second algorithme dit, si vous avez 1000 pages 887 00:43:14,630 --> 00:43:17,680 et vous utilisez le second algorithme, où je comptais par 2 de, tourner 888 00:43:17,680 --> 00:43:22,564 deux pages à la fois, dois-je dessiner un dot ci-dessous ou au-dessus de mon point original? 889 00:43:22,564 --> 00:43:23,450 >> AUDIENCE: Ci-dessous. 890 00:43:23,450 --> 00:43:27,992 >> DAVID MALAN: Ci-dessous, parce que, comme nous l'avons vu, il prend moins de temps, la moitié du temps. 891 00:43:27,992 --> 00:43:29,950 Donc, le point devrait être la moitié aussi élevé que l'autre. 892 00:43:29,950 --> 00:43:33,330 Et même beaucoup plus ici, ce point devrait probablement être à peu près là. 893 00:43:33,330 --> 00:43:39,666 Et donc mon second algorithme, de même, a une relation linéaire avec le temps. 894 00:43:39,666 --> 00:43:41,990 Et nous pouvons tirer comme tel. 895 00:43:41,990 --> 00:43:45,950 >> Alors maintenant, la troisième et dernière algorithme est un peu plus difficile à dessiner. 896 00:43:45,950 --> 00:43:49,530 Mais intuitivement, si j'ai 1000 pages avec mon troisième algorithme, 897 00:43:49,530 --> 00:43:52,340 il ne devrait me prendre comme 10 étapes. 898 00:43:52,340 --> 00:43:57,500 Et si j'ai 2.000 pages avec mon troisième algorithme, 899 00:43:57,500 --> 00:44:01,570 il devrait me prendre pas 10 étapes, mais 11, juste un de plus. 900 00:44:01,570 --> 00:44:03,610 Donc, nous sommes à peine d'aller voir cela. 901 00:44:03,610 --> 00:44:06,010 >> Et il se trouve, si Je zoome sur ce point, je suis 902 00:44:06,010 --> 00:44:09,320 aller à exagérer pour effet, la forme de cette ligne, en fin de compte, 903 00:44:09,320 --> 00:44:11,990 est pas une line-- droite parce que, en effet, si elle était, 904 00:44:11,990 --> 00:44:15,390 il ressemblerait plus à la others-- il est en fait une ligne courbe 905 00:44:15,390 --> 00:44:19,265 que, si on fait un zoom, va à regarder beaucoup plus comme ça. 906 00:44:19,265 --> 00:44:21,670 It-- bien, OK, ignorer cette partie. 907 00:44:21,670 --> 00:44:25,330 Ce fut ma plume va de l'angle. 908 00:44:25,330 --> 00:44:29,000 Il est une ligne courbe qui est toujours de plus en plus, toujours, toujours, toujours 909 00:44:29,000 --> 00:44:32,100 de plus en plus, mais seulement à peine. 910 00:44:32,100 --> 00:44:36,260 >> Et au fil du temps, vous avez un relation qui est plus comme ça. 911 00:44:36,260 --> 00:44:37,540 Il semble presque droite. 912 00:44:37,540 --> 00:44:40,330 Mais il est de plus en plus lentement. 913 00:44:40,330 --> 00:44:44,780 Mais pour presque tous les points le long de votre axe x, axe horizontal, 914 00:44:44,780 --> 00:44:46,550 il est plus bas que les autres lignes. 915 00:44:46,550 --> 00:44:49,930 >> Donc, cela pourrait être une relation n, de sorte que si vous avez n pages, 916 00:44:49,930 --> 00:44:51,100 vous n secondes prend. 917 00:44:51,100 --> 00:44:53,320 Cela pourrait être une relation n / 2. 918 00:44:53,320 --> 00:44:56,710 Vous avez n pages, il faut vous n / 2 secondes, la moitié. 919 00:44:56,710 --> 00:45:00,590 Et ceci est un logarithmique relation, qui 920 00:45:00,590 --> 00:45:08,920 si vous vous souvenez, connectez-base 2 de n captures ce type de croissance, pour ainsi dire. 921 00:45:08,920 --> 00:45:12,000 Voilà donc le genre de sainte Graal parmi les trois de ces 922 00:45:12,000 --> 00:45:15,940 ici, parce qu'il est tellement plus efficace, mais sans doute plus complexe 923 00:45:15,940 --> 00:45:18,610 implémenter. 924 00:45:18,610 --> 00:45:20,510 Des questions? 925 00:45:20,510 --> 00:45:26,220 >> Eh bien, laissez-moi faire, laissez moi ouvrir une fenêtre de texte 926 00:45:26,220 --> 00:45:29,100 afin que nous puissions essayer de officialiser quelque chose ici. 927 00:45:29,100 --> 00:45:32,410 Alors laissez-moi aller de l'avant maintenant et mettre en oeuvre cet algorithme 928 00:45:32,410 --> 00:45:35,170 pour trouver Mike Smith dans le code, si vous voulez, le code de pseudocode. 929 00:45:35,170 --> 00:45:36,620 Je ne vais pas utiliser Java ou C ++. 930 00:45:36,620 --> 00:45:38,610 Je vais juste utiliser sorte de syntaxe anglaise-like, que nous 931 00:45:38,610 --> 00:45:40,151 serait généralement appeler le code de pseudocode. 932 00:45:40,151 --> 00:45:41,660 Ici, j'ai une fenêtre vide. 933 00:45:41,660 --> 00:45:48,180 Et je l'étape 1 de la très disant premier algorithme est de prendre l'annuaire téléphonique. 934 00:45:48,180 --> 00:45:51,740 Étape 2 est à livre ouvert à la première page. 935 00:45:51,740 --> 00:45:58,080 Étape 3 sera regarder page pour Mike Smith. 936 00:45:58,080 --> 00:46:02,740 Si la page, appelez Mike. 937 00:46:02,740 --> 00:46:11,640 de tourner la page d'autre et passez à l'étape 3. 938 00:46:11,640 --> 00:46:13,590 Fait, disons. 939 00:46:13,590 --> 00:46:18,110 >> Et il est donc pas tout à fait parfait, que nous verrons dans un instant. 940 00:46:18,110 --> 00:46:21,050 Mais nous allons examiner ce que concepts que j'ai présenté ici. 941 00:46:21,050 --> 00:46:24,450 Donc, les étapes 1 et 2 et 3 sont à peu près les verbes. 942 00:46:24,450 --> 00:46:26,544 Ils sont énoncés, actions-- font cela. 943 00:46:26,544 --> 00:46:28,710 Et dans une programmation la langue, nous le ferions en général 944 00:46:28,710 --> 00:46:32,349 appeler les déclarations ou fonctions ou procédures, 945 00:46:32,349 --> 00:46:33,640 les appeler un certain nombre de choses. 946 00:46:33,640 --> 00:46:35,460 Mais ils actions-- juste faire cela. 947 00:46:35,460 --> 00:46:40,370 >> L'étape 4 est fondamentalement différent, parce qu'il est une sorte de poser une question. 948 00:46:40,370 --> 00:46:42,400 Il est dit que nous sommes en quelque sorte du à une bifurcation de la route. 949 00:46:42,400 --> 00:46:48,000 Si Mike est sur la page, appelez lui, donc tourner à gauche, si vous voulez. 950 00:46:48,000 --> 00:46:52,170 Et si non, revenir à une certaine autre page-- ou plutôt, désolé, 951 00:46:52,170 --> 00:46:56,650 revenir à une autre étape, qui induit une sorte de construction de boucle. 952 00:46:56,650 --> 00:46:59,530 Et nous le faisons encore et encore et encore. 953 00:46:59,530 --> 00:47:01,300 >> Et en fait, vous savez quoi? 954 00:47:01,300 --> 00:47:01,800 Ouais. 955 00:47:01,800 --> 00:47:04,704 956 00:47:04,704 --> 00:47:09,010 d'autre si à la fin de l'arrêt de livre. 957 00:47:09,010 --> 00:47:11,624 Nous avons donc besoin d'un troisième type condition, parce que vous 958 00:47:11,624 --> 00:47:14,290 ne peut pas continuer à tourner la page ad nauseam, parce que finalement, je vais 959 00:47:14,290 --> 00:47:15,320 frapper la fin du livre. 960 00:47:15,320 --> 00:47:18,546 Et un bogue dans un programme pourrait être ne pas anticiper ce scénario. 961 00:47:18,546 --> 00:47:21,420 Et puis je viens de réaliser, oh, attendez une minute, je besoin d'un troisième scénario. 962 00:47:21,420 --> 00:47:23,900 Si je suis hors de pages, je devrait vraiment juste arrêter. 963 00:47:23,900 --> 00:47:25,330 Sinon, il est indéfini. 964 00:47:25,330 --> 00:47:29,260 Qu'est-ce qui va se passer si je garde dire tourner la page et de revenir en arrière, 965 00:47:29,260 --> 00:47:31,810 c'est lorsque les ordinateurs geler ou accident, quand vous frappez 966 00:47:31,810 --> 00:47:34,160 une situation imprévue comme ça. 967 00:47:34,160 --> 00:47:37,280 >> Maintenant, qu'en est-Mike troisième algorithm-- Smith 968 00:47:37,280 --> 00:47:43,150 prendre le livre de téléphone, livre ouvert à first-- à 969 00:47:43,150 --> 00:47:48,640 non, pas la première page cette fois, à middle-- oh, eh bien, ce serait 970 00:47:48,640 --> 00:47:49,640 le second algorithme. 971 00:47:49,640 --> 00:47:50,590 Disons simplement sauter à la troisième. 972 00:47:50,590 --> 00:47:50,930 >> AUDIENCE: Oh, je suis désolé. 973 00:47:50,930 --> 00:47:51,971 >> DAVID MALAN: Très bien. 974 00:47:51,971 --> 00:47:58,590 Disons simplement sauter à l'ouverture third-- au milieu et maintenant chercher Mike Smith. 975 00:47:58,590 --> 00:48:02,300 si la page, appelez Mike. 976 00:48:02,300 --> 00:48:04,910 Et puis qu'est-ce qu'on veut dire ici? 977 00:48:04,910 --> 00:48:06,134 d'autre quoi? 978 00:48:06,134 --> 00:48:10,620 979 00:48:10,620 --> 00:48:12,370 Nous pouvons exprimer cette dans un certain nombre de façons. 980 00:48:12,370 --> 00:48:13,369 Il n'y a pas de bonne réponse. 981 00:48:13,369 --> 00:48:20,819 982 00:48:20,819 --> 00:48:23,735 OK, sinon à nouveau, mais nous devons être-- OK, nous ne voulons diviser en deux, 983 00:48:23,735 --> 00:48:25,630 mais voulons-nous aller à gauche ou aller à droite? 984 00:48:25,630 --> 00:48:29,560 Comment pouvons-nous exprimons cette notion? 985 00:48:29,560 --> 00:48:31,790 Eh bien, dans le cas de Mike, oui, que ce soit juste. 986 00:48:31,790 --> 00:48:35,050 Mais OK, donc c'est en fait un bon point. 987 00:48:35,050 --> 00:48:35,550 C'est très bien. 988 00:48:35,550 --> 00:48:36,924 Nous allons continuer avec cette logique. 989 00:48:36,924 --> 00:48:38,182 Alors-- 990 00:48:38,182 --> 00:48:39,810 >> AUDIENCE: Moins de la moitié. 991 00:48:39,810 --> 00:48:40,560 DAVID MALAN: Oui. 992 00:48:40,560 --> 00:48:49,820 Donc, d'autre si la page est, nous disons, moins Smith que, à la gauche de Smith, 993 00:48:49,820 --> 00:48:52,220 alors-- nous allons voir, est cela va compliquer? 994 00:48:52,220 --> 00:49:01,885 d'autre si la page vient avant Smith, larme dans la moitié, jeter dont la moitié? 995 00:49:01,885 --> 00:49:05,643 996 00:49:05,643 --> 00:49:09,140 >> AUDIENCE: Je pensais qui était [Inaudible]. 997 00:49:09,140 --> 00:49:11,650 >> DAVID MALAN: J'entends les deux réponses. 998 00:49:11,650 --> 00:49:12,431 >> AUDIENCE: Gauche. 999 00:49:12,431 --> 00:49:14,430 DAVID MALAN: OK, jeter loin laissé la moitié, comme Lakisa 1000 00:49:14,430 --> 00:49:19,700 dit plus haut, la gauche la moitié, alors je sorte de 1001 00:49:19,700 --> 00:49:23,940 veulent juste aller to-- je vais à droite. 1002 00:49:23,940 --> 00:49:27,380 Ou équivalente, et je fait un petit peu de désordre du début ici, 1003 00:49:27,380 --> 00:49:30,760 Je veux efficacement passez à l'étape 2 de nouveau, 1004 00:49:30,760 --> 00:49:38,270 où ouvert au middle-- ou open-- oui, disons simplement, pages à moyenne. 1005 00:49:38,270 --> 00:49:39,020 Et cela l'arrange. 1006 00:49:39,020 --> 00:49:39,936 Il est plus un livre. 1007 00:49:39,936 --> 00:49:42,210 Il est juste la moitié d'un livre, pages afin ouvertes à moyenne. 1008 00:49:42,210 --> 00:49:44,010 >> else-- étaient presque là. 1009 00:49:44,010 --> 00:49:54,000 Étape 6, d'autre si la page vient après Smith, déchirer en deux, jeter demie droite, 1010 00:49:54,000 --> 00:49:55,680 puis passez à l'étape 2. 1011 00:49:55,680 --> 00:49:58,920 1012 00:49:58,920 --> 00:50:05,230 d'autre cesser de fumer, un quatrième scénario si nous avons pas de pages restant à tourner. 1013 00:50:05,230 --> 00:50:06,394 Donc, nous pourrions nettoyer cette place. 1014 00:50:06,394 --> 00:50:07,560 Et nous devons nettoyer cette place. 1015 00:50:07,560 --> 00:50:10,656 Ceci est un code très pseudocode, si vous sera, description très haut niveau. 1016 00:50:10,656 --> 00:50:12,280 Mais il ne tient généralement l'idée. 1017 00:50:12,280 --> 00:50:16,040 >> Et, encore une fois, dans ce scénario, nous avoir la notion d'une condition, 1018 00:50:16,040 --> 00:50:20,450 une branche, une fourchette dans la route, ce qui un decision-- si cela, rendez-vous de cette façon, 1019 00:50:20,450 --> 00:50:23,082 else if, aller de cette façon, else if, aller dans ce sens. 1020 00:50:23,082 --> 00:50:25,040 Et ceci est un très commun la technique de programmation 1021 00:50:25,040 --> 00:50:27,721 de décider quelle direction d'aller, pour ainsi dire. 1022 00:50:27,721 --> 00:50:29,970 Et nous avons aussi une sorte de la structure en boucle, où 1023 00:50:29,970 --> 00:50:32,440 nous faisons encore et encore quelque chose. 1024 00:50:32,440 --> 00:50:34,820 >> Maintenant, il se trouve, bien comme dans cet exemple, 1025 00:50:34,820 --> 00:50:37,660 être super précis est important. 1026 00:50:37,660 --> 00:50:42,180 Mais nous avons aussi vu quelque chose que nous continuons d'appeler l'abstraction. 1027 00:50:42,180 --> 00:50:45,490 Qu'est-ce que cela signifie pour ramasser l'annuaire téléphonique? 1028 00:50:45,490 --> 00:50:47,740 Nous sommes juste sorte de prendre pour acquis dans cette salle 1029 00:50:47,740 --> 00:50:49,340 que cela a un sens sémantique. 1030 00:50:49,340 --> 00:50:51,740 Chacun d'entre nous juste genre de savoir, oh, bien, prendre le livre de téléphone. 1031 00:50:51,740 --> 00:50:52,864 Qu'est-ce que ça veut vraiment dire? 1032 00:50:52,864 --> 00:50:59,060 Eh bien, cela signifie vraiment prolonger main, pencher sur, étendre les doigts, 1033 00:50:59,060 --> 00:51:03,890 pincer livre entre les doigts, debout, tirez vers vous. 1034 00:51:03,890 --> 00:51:05,940 Et nous pourrions être vraiment pédant à ce sujet, 1035 00:51:05,940 --> 00:51:08,640 vraiment être super précis à ce que je fais. 1036 00:51:08,640 --> 00:51:13,300 Mais toutes ces étapes sont collectivement ce que cela signifie pour ramasser un livre de téléphone. 1037 00:51:13,300 --> 00:51:16,940 >> Et plus tôt, quand je l'ai dit, chaque de ces deux premières déclarations 1038 00:51:16,940 --> 00:51:20,830 peut être considéré comme un procéder ou une fonction, 1039 00:51:20,830 --> 00:51:24,090 vraiment il représente ce que nous continuer à appeler une abstraction. 1040 00:51:24,090 --> 00:51:28,770 Il est comme un haut niveau conceptuel Description d'un problème 1041 00:51:28,770 --> 00:51:31,110 implique en fait assez peu d'étapes. 1042 00:51:31,110 --> 00:51:34,190 Et cela, aussi, est un sujet récurrent dans la programmation, 1043 00:51:34,190 --> 00:51:41,125 de sorte que je pourrais écrire un programme en utilisant la syntaxe comme this-- 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 Et puis syntaxiquement, je suis va voler quelque chose 1047 00:51:46,510 --> 00:51:48,090 de la plupart des langages de programmation. 1048 00:51:48,090 --> 00:51:51,270 >> Maintenant, l'étape 1 semble encore plus comme une fonction, 1049 00:51:51,270 --> 00:51:53,160 en tant que programmeur pourrait l'appeler. 1050 00:51:53,160 --> 00:51:58,650 Il ressemble à un code que quelqu'un a donné un nom à et donné 1051 00:51:58,650 --> 00:52:03,300 me utiliser somehow-- dans d'autres mots, ce que la ligne que j'ai soulignés 1052 00:52:03,300 --> 00:52:07,050 représente la fonctionnalité que peut-être Je ne me suis même pas mettre en œuvre. 1053 00:52:07,050 --> 00:52:10,410 Quelqu'un plus âgé, plus sage que moi déjà figuré dehors 1054 00:52:10,410 --> 00:52:12,700 comment vous exprimer la notion de ramasser un livre de téléphone. 1055 00:52:12,700 --> 00:52:15,860 Et il est comme les cinq étapes que je viens roula, du haut de ma tête. 1056 00:52:15,860 --> 00:52:19,350 >> Mais il ou elle déjà mis en œuvre cela a donné ces plusieurs étapes 1057 00:52:19,350 --> 00:52:22,339 un nom, pick_up_phone_book. 1058 00:52:22,339 --> 00:52:24,380 Et les parenthèses est juste ce que la plupart des programmeurs 1059 00:52:24,380 --> 00:52:27,100 faire à la fin des déclarations de ce genre. 1060 00:52:27,100 --> 00:52:30,190 Je peux maintenant se tenir debout sur son épaules et jamais, 1061 00:52:30,190 --> 00:52:32,465 penser à ce que cela signifie pour ramasser un livre de téléphone. 1062 00:52:32,465 --> 00:52:34,090 Je peux simplement dire, prendre le livre de téléphone. 1063 00:52:34,090 --> 00:52:36,690 Et c'est exactement ce nous tous les humains ont fait ici. 1064 00:52:36,690 --> 00:52:38,940 >> Quand nous étions probablement 1 ans, 2 ans, 1065 00:52:38,940 --> 00:52:41,690 quelqu'un devait nous enseigner ce qu'il destiné à prendre un livre de téléphone. 1066 00:52:41,690 --> 00:52:43,810 Et depuis lors, nous avons Détaché 1067 00:52:43,810 --> 00:52:46,739 de ceux inintéressante les étapes mécaniques. 1068 00:52:46,739 --> 00:52:48,530 Et nous avons juste un compréhension intuitive 1069 00:52:48,530 --> 00:52:50,480 de ce que signifie prendre un livre de téléphone. 1070 00:52:50,480 --> 00:52:55,730 >> Et vous pouvez extrapoler maintenant à things-- plus compliqué 1071 00:52:55,730 --> 00:52:57,640 construire un bâtiment. 1072 00:52:57,640 --> 00:52:59,940 Comme, pour certaines personnes, qui a fait sens. 1073 00:52:59,940 --> 00:53:03,080 Pour les entrepreneurs, aux architectes, qui a un sens. 1074 00:53:03,080 --> 00:53:06,400 Et ils savent ce qu'il faut faire, si Je l'ai dit, allez construire un bâtiment. 1075 00:53:06,400 --> 00:53:10,520 >> Mais la plupart d'entre nous dans la chambre ne pouvait pas faire face à ce niveau d'abstraction. 1076 00:53:10,520 --> 00:53:14,850 Vous devez nous dire aimons aller chercher la pelle et aller chercher le béton 1077 00:53:14,850 --> 00:53:17,250 et clouer les morceaux de bois ensemble et tout le reste 1078 00:53:17,250 --> 00:53:18,830 est impliqué dans la construction d'un bâtiment. 1079 00:53:18,830 --> 00:53:21,690 Et c'est parce que nous avons pas encore été programmé pour comprendre 1080 00:53:21,690 --> 00:53:23,629 ce que cela signifie pour construire un bâtiment. 1081 00:53:23,629 --> 00:53:24,920 Nous ne disposons pas que l'abstraction. 1082 00:53:24,920 --> 00:53:26,570 Nous ne disposons pas cette fonctionnalité. 1083 00:53:26,570 --> 00:53:29,930 >> Et si ce que vous verrez dans les langages de programmation, en général, 1084 00:53:29,930 --> 00:53:34,570 langues surtout plus modernes, comme Java, PHP, Ruby et Python, 1085 00:53:34,570 --> 00:53:37,610 ils sont beaucoup plus matures que les langues anciennes, 1086 00:53:37,610 --> 00:53:40,140 comme C et C ++ et d'autres encore. 1087 00:53:40,140 --> 00:53:42,580 Et ils viennent avec plus fonctionnalité intégrée. 1088 00:53:42,580 --> 00:53:45,640 Plus code a été écrit par les gens dans le passé 1089 00:53:45,640 --> 00:53:50,520 que nous pouvons maintenant appeler ou invoquer ou utiliser, comme je suis allusion 1090 00:53:50,520 --> 00:53:52,231 à cette ligne surlignée ici. 1091 00:53:52,231 --> 00:53:55,230 Et même si nous ne parlons pas sur les langages de programmation en soi, 1092 00:53:55,230 --> 00:54:00,230 code juste pseudocode, tous les les idées sont encore dans cette discussion. 1093 00:54:00,230 --> 00:54:04,600 Et il se trouve précision est super important, tout comme l'abstraction. 1094 00:54:04,600 --> 00:54:06,570 Et nous allons essayer de communiquer que comme suit. 1095 00:54:06,570 --> 00:54:11,000 >> Je pourrais accidentellement ai gâté en faisant clignoter une diapositive à l'écran 1096 00:54:11,000 --> 00:54:12,260 prématurément. 1097 00:54:12,260 --> 00:54:16,550 Mais permettez-moi de demander à un volontaire courageux, si cela ne vous dérange pas venir. 1098 00:54:16,550 --> 00:54:19,040 Vous seriez en face de la appareil photo, si vous êtes OK avec ça. 1099 00:54:19,040 --> 00:54:24,950 Quelqu'un voudrait-il venir et de donner des instructions à vos collègues? 1100 00:54:24,950 --> 00:54:29,540 Suffit de venir ici et se tenir ici et dire quelques mots. 1101 00:54:29,540 --> 00:54:32,890 >> Victoria sourit le plus et en évitant mes yeux le plus. 1102 00:54:32,890 --> 00:54:34,740 Seriez-vous prêt à venir sur place? 1103 00:54:34,740 --> 00:54:35,240 D'ACCORD. 1104 00:54:35,240 --> 00:54:38,480 Et si tout le monde à vos sièges pourrait prendre un morceau de papier brouillon, 1105 00:54:38,480 --> 00:54:39,750 si vous voulez. 1106 00:54:39,750 --> 00:54:40,760 papier doublé est très bien. 1107 00:54:40,760 --> 00:54:41,990 Venez autour de cette façon. 1108 00:54:41,990 --> 00:54:44,580 Ou une partie du papier qui vous a été donné hier, 1109 00:54:44,580 --> 00:54:46,493 juste une quelconque feuille blanche de papier, si vous pouviez. 1110 00:54:46,493 --> 00:54:52,240 1111 00:54:52,240 --> 00:54:54,870 Et si vous n'avez pas, tout simplement demandez à votre voisin si vous pouviez. 1112 00:54:54,870 --> 00:55:04,220 1113 00:55:04,220 --> 00:55:07,580 >> Donc, pour le moment, pour cet exemple, Victoria 1114 00:55:07,580 --> 00:55:11,520 va jouer le rôle de un programmeur, un ingénieur, qui 1115 00:55:11,520 --> 00:55:16,130 a besoin de vous programmer tous, comme les ordinateurs, de faire quelque chose. 1116 00:55:16,130 --> 00:55:19,570 Et nous verrons quelles hypothèses vous décidez de faire. 1117 00:55:19,570 --> 00:55:22,700 Nous allons voir comment précise qu'elle choisit d'être. 1118 00:55:22,700 --> 00:55:26,220 Et si cette démonstration va pédagogiquement bien, beaucoup d'erreurs 1119 00:55:26,220 --> 00:55:29,220 sera fait, que nous allons ensuite utiliser que comme une opportunité pour la discussion. 1120 00:55:29,220 --> 00:55:32,010 Mais le défi pour vous devriez être d'éviter ces erreurs, 1121 00:55:32,010 --> 00:55:32,896 être un bon programmeur. 1122 00:55:32,896 --> 00:55:35,520 Et donc le défi à relever, si vous auriez aimé marcher ici, 1123 00:55:35,520 --> 00:55:38,799 est en face de Victoria sur l'écran ici-- et espérons-le, aucun d'entre vous 1124 00:55:38,799 --> 00:55:40,590 rappelez-vous quand je flashé sur l'écran. 1125 00:55:40,590 --> 00:55:44,097 Et ne pas tourner autour du tout, parce que il y a un autre écran dans cette salle 1126 00:55:44,097 --> 00:55:44,930 que je peux désactiver. 1127 00:55:44,930 --> 00:55:46,620 Donc, ne pas tourner autour. 1128 00:55:46,620 --> 00:55:49,090 >> En face de Victoria est le même cri. 1129 00:55:49,090 --> 00:55:54,170 Et son travail est maintenant de vous dire tout sur votre morceau de papier quoi dessiner. 1130 00:55:54,170 --> 00:55:57,020 Et nous verrons, sur la base instructions verbales seules, 1131 00:55:57,020 --> 00:56:00,020 code informatique, si vous voulez, comment vos dessins précis 1132 00:56:00,020 --> 00:56:02,330 vos implémentations sont soient:. 1133 00:56:02,330 --> 00:56:02,980 Donner un sens? 1134 00:56:02,980 --> 00:56:03,604 >> AUDIENCE: Ouais. 1135 00:56:03,604 --> 00:56:04,980 DAVID MALAN: OK, exécuter. 1136 00:56:04,980 --> 00:56:06,030 >> AUDIENCE: Dessinez un carré. 1137 00:56:06,030 --> 00:56:09,050 >> [RIRE] 1138 00:56:09,050 --> 00:56:12,310 >> DAVID MALAN: Et pas peuvent être posées. 1139 00:56:12,310 --> 00:56:13,720 Ne peut faire ce qu'on vous dit. 1140 00:56:13,720 --> 00:56:17,570 1141 00:56:17,570 --> 00:56:22,550 Oh, et si vous avez des diapositives d'aujourd'hui ouvrir dans un onglet, ne regardez pas votre onglet. 1142 00:56:22,550 --> 00:56:23,670 D'accord? 1143 00:56:23,670 --> 00:56:26,135 >> AUDIENCE: OK, dessiner un cercle. 1144 00:56:26,135 --> 00:56:32,544 1145 00:56:32,544 --> 00:56:34,872 A slope-- je peux dire la pente? 1146 00:56:34,872 --> 00:56:35,830 DAVID MALAN: jusqu'à vous. 1147 00:56:35,830 --> 00:56:38,230 1148 00:56:38,230 --> 00:56:38,980 AUDIENCE: Une pente. 1149 00:56:38,980 --> 00:56:46,330 1150 00:56:46,330 --> 00:56:49,795 Et un triangle. 1151 00:56:49,795 --> 00:56:50,850 >> DAVID MALAN: Très bien. 1152 00:56:50,850 --> 00:56:52,286 Et rester ici pour un moment. 1153 00:56:52,286 --> 00:56:56,046 1154 00:56:56,046 --> 00:56:58,910 Et je vais venir autour dans un instant. 1155 00:56:58,910 --> 00:57:02,420 Et pas besoin de mettre vos noms sur elle. 1156 00:57:02,420 --> 00:57:05,030 Permettez-moi de venir autour et recueillir vos dessins, 1157 00:57:05,030 --> 00:57:08,330 si cela ne vous dérange pas les arracher. 1158 00:57:08,330 --> 00:57:12,110 >> Voici ce que nous sommes rentrés. 1159 00:57:12,110 --> 00:57:14,770 Je projette sur l'écran. 1160 00:57:14,770 --> 00:57:18,310 Je vois un carré, un cercle, une pente et un triangle. 1161 00:57:18,310 --> 00:57:20,130 Voilà donc une réponse là-bas. 1162 00:57:20,130 --> 00:57:23,640 Et let's-- whoops. 1163 00:57:23,640 --> 00:57:25,370 Je vous remercie. 1164 00:57:25,370 --> 00:57:30,710 Voici un autre assortiment, et l'autre derrière elle. 1165 00:57:30,710 --> 00:57:34,130 1166 00:57:34,130 --> 00:57:37,120 >> Donc, ils semblent tous de capturer l'esprit. 1167 00:57:37,120 --> 00:57:38,600 Je vous remercie. 1168 00:57:38,600 --> 00:57:44,970 Il y a un autre, et a un autre ici. 1169 00:57:44,970 --> 00:57:51,590 L'interprétation de la pente est un peu différente, peu sinueuse. 1170 00:57:51,590 --> 00:57:57,140 Et le plus proche, que ce soit à cause de la merveilleuse spécificité avec laquelle vous avez 1171 00:57:57,140 --> 00:58:03,520 décrit, ou peut-être vous sorte de vu auparavant, c'est en effet 1172 00:58:03,520 --> 00:58:06,340 ce que Victoria a été décrit en fait. 1173 00:58:06,340 --> 00:58:09,190 >> Mais maintenant, ceux qui n'a pas eu tout à fait raison, 1174 00:58:09,190 --> 00:58:11,140 nous allons offrir quelques objections ici. 1175 00:58:11,140 --> 00:58:13,770 Donc, Victoria a d'abord dit dessiner un carré. 1176 00:58:13,770 --> 00:58:15,830 Et maintenant, nous pouvons supposer pour l'amour d'aujourd'hui 1177 00:58:15,830 --> 00:58:17,538 que tout le monde sait comment dessiner un carré. 1178 00:58:17,538 --> 00:58:20,590 Mais ce n'est pas tout à fait clair, non? 1179 00:58:20,590 --> 00:58:23,220 Sinon, comment pourriez-vous avoir dessiné un carré, ou lorsque 1180 00:58:23,220 --> 00:58:27,114 peut-être quelques-unes des ambiguïtés ici pour l'ordinateur? 1181 00:58:27,114 --> 00:58:28,280 AUDIENCE: Emplacement et taille. 1182 00:58:28,280 --> 00:58:28,980 DAVID MALAN: Situation, non? 1183 00:58:28,980 --> 00:58:32,070 Vous avez tous eu un papier d'une certaine forme, généralement des rectangles, mais légèrement 1184 00:58:32,070 --> 00:58:32,830 des tailles différentes. 1185 00:58:32,830 --> 00:58:36,250 Mais vous avez certainement aurait pu tirer, si vous voulez, une immense place, peut-être 1186 00:58:36,250 --> 00:58:37,220 un petit carré. 1187 00:58:37,220 --> 00:58:38,417 Peut-être, il a été tourné. 1188 00:58:38,417 --> 00:58:39,500 Je ne pense pas que nous avons vu que. 1189 00:58:39,500 --> 00:58:41,790 Mais il aurait pu être plus diamant comme toujours, mais, néanmoins, 1190 00:58:41,790 --> 00:58:42,900 mathématiquement un carré. 1191 00:58:42,900 --> 00:58:44,850 Donc, ce fut sans doute ambigu. 1192 00:58:44,850 --> 00:58:46,709 >> Puis elle dit, dessiner un cercle. 1193 00:58:46,709 --> 00:58:49,250 Certains d'entre vous ne le dessiner à côté de , ce qui est pas déraisonnable, 1194 00:58:49,250 --> 00:58:52,450 parce que les humains ont tendance à penser ou lire droite à gauche dans la plupart des langues, donc pas 1195 00:58:52,450 --> 00:58:53,017 une mauvaise estimation. 1196 00:58:53,017 --> 00:58:55,100 Mais ce cercle pourrait avoir été à l'intérieur de la place, 1197 00:58:55,100 --> 00:58:57,600 aurait pu être autour de la carré, aurait pu être ailleurs 1198 00:58:57,600 --> 00:58:59,480 sur la feuille, de manière sans doute ambiguë. 1199 00:58:59,480 --> 00:59:03,290 >> Pente aurait pu peut-être en prenant le plus de libertés verbalement 1200 00:59:03,290 --> 00:59:04,200 avec ce que cela signifie. 1201 00:59:04,200 --> 00:59:06,980 Et certains d'entre vous interprété comme une ligne ondulée 1202 00:59:06,980 --> 00:59:08,560 ou une ligne droite ou similaire. 1203 00:59:08,560 --> 00:59:11,719 Et puis triangle, aussi, pourrait avoir été orienté dans n'importe quel nombre de façons. 1204 00:59:11,719 --> 00:59:14,760 Donc en bref, même avec quelque chose qui vous coup d'oeil et vous êtes comme, wow, donc 1205 00:59:14,760 --> 00:59:17,020 simple, un enfant pourrait dessiner, eh bien pas 1206 00:59:17,020 --> 00:59:19,640 vraiment, sauf si vous êtes super, super persuasive 1207 00:59:19,640 --> 00:59:22,045 et dire à l'ordinateur exactement ce qu'il faut faire. 1208 00:59:22,045 --> 00:59:24,420 Donc, si nous pouvions, si vous avez une autre feuille de papier, nous allons 1209 00:59:24,420 --> 00:59:26,710 essayer une fois de plus. 1210 00:59:26,710 --> 00:59:29,880 Et je vais donner une Victoria autre exemple sur l'écran ici. 1211 00:59:29,880 --> 00:59:34,060 Et encore une fois, ne pas tourner autour et ne pas regarder vos diapositives. 1212 00:59:34,060 --> 00:59:37,304 Et je vais lui donner un moment pour réfléchir à la façon de décrire cela. 1213 00:59:37,304 --> 00:59:39,012 Ne les laissez pas voir la peur dans vos yeux. 1214 00:59:39,012 --> 00:59:40,820 >> [RIRE] 1215 00:59:40,820 --> 00:59:43,710 >> Et encore, cette fois l'effet de levier certains de ces plats à emporter 1216 00:59:43,710 --> 00:59:48,130 et essayer d'obtenir presque tout le monde au moins la bonne réponse. 1217 00:59:48,130 --> 00:59:52,260 >> AUDIENCE: OK, prendre un morceau de papier, regardez 1218 00:59:52,260 --> 00:59:54,500 au milieu de ce morceau de papier. 1219 00:59:54,500 --> 00:59:59,591 Au milieu de cette pièce de papier, dessiner un cube. 1220 00:59:59,591 --> 01:00:01,244 >> [RIRE] 1221 01:00:01,244 --> 01:00:02,660 DAVID MALAN: Qu'avons-nous appris? 1222 01:00:02,660 --> 01:00:03,540 Nous étions si près. 1223 01:00:03,540 --> 01:00:06,320 1224 01:00:06,320 --> 01:00:09,045 OK, répéter si vous le pouviez, pour tout le monde. 1225 01:00:09,045 --> 01:00:13,210 >> AUDIENCE: Dans le milieu de la morceau de papier, dessiner un objet, 1226 01:00:13,210 --> 01:00:14,842 qui ressemble à un cube. 1227 01:00:14,842 --> 01:00:17,332 >> DAVID MALAN: OK, c'est tout ce que vous obtenez de travailler avec. 1228 01:00:17,332 --> 01:00:20,010 1229 01:00:20,010 --> 01:00:23,080 Permettez-moi d'être analytique et pas tellement critique, 1230 01:00:23,080 --> 01:00:25,720 mais pour faire la demande que Victoria définitivement 1231 01:00:25,720 --> 01:00:28,967 semble penser en très abstractions de haut niveau, qui 1232 01:00:28,967 --> 01:00:29,800 est pas déraisonnable. 1233 01:00:29,800 --> 01:00:32,160 Parce que sinon, nous serions tous être assez dysfonctionnel, 1234 01:00:32,160 --> 01:00:35,740 si nous devions être toujours si précis avec tout ce que nous faisons dans le monde. 1235 01:00:35,740 --> 01:00:38,890 >> Mais dire aller au I middle-- pensé que nous étions sur une bonne piste 1236 01:00:38,890 --> 01:00:42,340 là, comme aller au beau milieu de la page, puis dessiner un cube. 1237 01:00:42,340 --> 01:00:45,730 Alors qu'elle pense dans les abstractions, parce qu'elle est encore la visualisation 1238 01:00:45,730 --> 01:00:48,490 ce qui est sur l'écran comme d'ailleurs un cube. 1239 01:00:48,490 --> 01:00:51,185 Mais il y a tellement de possibilités pour l'interprétation là. 1240 01:00:51,185 --> 01:00:53,560 Et en fait, il y en a tellement d'autres moyens que vous pourriez exprimer 1241 01:00:53,560 --> 01:00:55,101 que, que je propose dans un instant. 1242 01:00:55,101 --> 01:00:59,770 Nous avons donc ici une incarnation de l'une whoops-- picture-- 1243 01:00:59,770 --> 01:01:02,830 incarnation de l'image, donc un peu tridimensionnalité à elle, 1244 01:01:02,830 --> 01:01:04,160 ce qui est agréable. 1245 01:01:04,160 --> 01:01:08,470 >> Voici un autre, où vous avez la même, même si elle est une sorte d'un cube ouvert. 1246 01:01:08,470 --> 01:01:12,020 Certaines personnes ont un peu plus plat, en deux dimensions. 1247 01:01:12,020 --> 01:01:13,910 Et ça va. 1248 01:01:13,910 --> 01:01:17,380 Il y a donc, en effet dans le centre du papier. 1249 01:01:17,380 --> 01:01:22,720 Celui-ci, je pense que vous allez comme, parce que si nous allons ici, 1250 01:01:22,720 --> 01:01:25,130 c'est ce qu'elle décrivait. 1251 01:01:25,130 --> 01:01:29,570 Alors maintenant, je vous propose de quelle autre façon nous pourrions décrire cette situation. 1252 01:01:29,570 --> 01:01:34,070 >> Retour dans la journée, l'un des plus façons les plus courantes pour apprendre la programmation 1253 01:01:34,070 --> 01:01:38,900 était d'écrire du code, écrit lignes d'instructions, 1254 01:01:38,900 --> 01:01:42,640 que contrôlait un peu tortue sur l'écran. 1255 01:01:42,640 --> 01:01:45,660 Logo et d'autres variantes de cette est le nom de la langue. 1256 01:01:45,660 --> 01:01:47,550 Et la tortue vivait dans un monde. 1257 01:01:47,550 --> 01:01:49,970 >> Supposons donc que cette rectangulaire l'espace est son monde. 1258 01:01:49,970 --> 01:01:53,340 Et vous commencez par assuming-- I ne savent pas vraiment comment dessiner la tortue, 1259 01:01:53,340 --> 01:01:54,740 donc nous allons le faire comme ça. 1260 01:01:54,740 --> 01:01:57,340 Et puis il a une coquille et peut-être quelques pieds. 1261 01:01:57,340 --> 01:01:59,840 Donc, vous pourriez avoir ce petit personnage à l'écran. 1262 01:01:59,840 --> 01:02:02,270 >> Et l'objet de cette langage de programmation 1263 01:02:02,270 --> 01:02:06,070 était d'obliger la tortue pour aller haut, bas, gauche, droite 1264 01:02:06,070 --> 01:02:08,420 et de mettre sa plume ou prendre sa plume jusqu'à, 1265 01:02:08,420 --> 01:02:12,720 alors il pourrait en fait dessiner sur l'écran dans ce monde rectangulaire très plat. 1266 01:02:12,720 --> 01:02:16,850 Alors, où je pensais que vous allez peut-être, et où vous devriez considérer la plongée 1267 01:02:16,850 --> 01:02:19,520 bas mentalement en décrivant instructions plus généralement, 1268 01:02:19,520 --> 01:02:21,720 Je revendication, est mis à votre plume dans le middle-- 1269 01:02:21,720 --> 01:02:23,100 et nous allons nous débarrasser de la tortue, parce que je ne peux pas vraiment 1270 01:02:23,100 --> 01:02:24,680 garder le dessin très bien. 1271 01:02:24,680 --> 01:02:27,170 >> Et maintenant, sinon comment pourrait Je dis dessiner un cube? 1272 01:02:27,170 --> 01:02:32,830 Eh bien, on pourrait dire quelque chose comme nul un nord de la ligne diagonale, par exemple, 1273 01:02:32,830 --> 01:02:35,182 ou à un angle de 45 degrés vers le haut. 1274 01:02:35,182 --> 01:02:36,640 Et qui aurait pu me obtenu ici. 1275 01:02:36,640 --> 01:02:38,380 Et je suis loin d'être un cube. 1276 01:02:38,380 --> 01:02:42,430 Mais maintenant, je pourrais dire quelque chose comme tourner à 90 degrés vers la gauche 1277 01:02:42,430 --> 01:02:47,370 et tracer une ligne de égale au nord-ouest de longueur. 1278 01:02:47,370 --> 01:02:49,470 Et je pourrais continuer avec des directions similaires. 1279 01:02:49,470 --> 01:02:50,720 Et ça ne va pas être facile. 1280 01:02:50,720 --> 01:02:53,345 Et franchement, nous aurions probablement ont été ici pendant cinq minutes. 1281 01:02:53,345 --> 01:02:59,600 Mais peut-être que nous aurions obtenu à ce qui, à la fin de la journée, 1282 01:02:59,600 --> 01:03:04,280 finit par être un cube, mais nous plongé à l'intérieur de cette abstraction 1283 01:03:04,280 --> 01:03:06,370 de le faire à un prix aussi bas niveau que vous ne pouvez pas vraiment 1284 01:03:06,370 --> 01:03:09,795 voyez ce que vous faites jusqu'à ce que l'ensemble chose est en fait là-bas sur la page. 1285 01:03:09,795 --> 01:03:12,670 Et ceci est un principe général, encore une fois, de programming-- cette idée 1286 01:03:12,670 --> 01:03:13,320 de l'abstraction. 1287 01:03:13,320 --> 01:03:15,920 Il est si merveilleusement puissant, car encore une fois, 1288 01:03:15,920 --> 01:03:19,281 elle a juste dit, dessiner un cube, dont tous nous aurions à peu près grok très rapidement. 1289 01:03:19,281 --> 01:03:21,030 Nous voudrions simplement comprendre, OK, dessiner un cube. 1290 01:03:21,030 --> 01:03:24,030 Nous ne pourrions pas savoir l'orientation, afin que nous puissions être un peu plus précis, 1291 01:03:24,030 --> 01:03:26,297 mais nous pouvons généralement imaginer ou savoir ce qu'est un cube est. 1292 01:03:26,297 --> 01:03:28,130 Et c'est utile, parce que si chaque fois que vous 1293 01:03:28,130 --> 01:03:31,540 assis en tant que programmeur à votre clavier pour écrire du code, 1294 01:03:31,540 --> 01:03:33,912 si vous deviez penser à une telle un faible niveau, aucun d'entre nous 1295 01:03:33,912 --> 01:03:35,120 ne serait jamais rien fait. 1296 01:03:35,120 --> 01:03:38,259 Et certainement, aucun de nous ne profiter du processus de l'écriture de code. 1297 01:03:38,259 --> 01:03:41,550 Ce serait comme l'écriture en 0 et de 1, qui était franchement pas si longtemps 1298 01:03:41,550 --> 01:03:43,680 les humains ont écrit le code dans 0 et de 1. 1299 01:03:43,680 --> 01:03:46,960 Et nous très rapidement arrivés avec ceux-ci plus languages-- niveau 1300 01:03:46,960 --> 01:03:49,410 C ++ et Java et d'autres. 1301 01:03:49,410 --> 01:03:52,500 >> Essayons donc cette fois de plus juste retourner les tables, de sorte que chacun d'entre nous 1302 01:03:52,500 --> 01:03:55,450 avoir la chance de penser au lieu de la même manière. 1303 01:03:55,450 --> 01:03:59,230 Pourrions-nous obtenir un bénévole plus cette le temps de venir au conseil d'administration et d'en tirer, 1304 01:03:59,230 --> 01:04:01,480 pas réciter? 1305 01:04:01,480 --> 01:04:02,070 Ouais ok. 1306 01:04:02,070 --> 01:04:04,820 Ben, allez vers le haut. 1307 01:04:04,820 --> 01:04:08,510 Et, Ben, dans ce cas, une fois que vous face à la carte, ne pas regarder à gauche, 1308 01:04:08,510 --> 01:04:09,370 ne regardez pas à droite. 1309 01:04:09,370 --> 01:04:12,367 Seulement faire ce que votre collègues ici vous dire. 1310 01:04:12,367 --> 01:04:14,950 Et pour tout le monde dans le chambre, vous êtes maintenant le programmeur. 1311 01:04:14,950 --> 01:04:16,020 Il est l'ordinateur. 1312 01:04:16,020 --> 01:04:21,395 Et l'image que je l'ai choisi ici à l'avance est celui-là. 1313 01:04:21,395 --> 01:04:24,490 1314 01:04:24,490 --> 01:04:27,660 Ils just-- qu'ils pensent d'une drôle de plaisanterie est tout. 1315 01:04:27,660 --> 01:04:31,510 >> Ainsi serait-ce que quelqu'un souhaite bénévole de la première instruction 1316 01:04:31,510 --> 01:04:35,470 ou déclaration qui devrait la plume de commande Ben? 1317 01:04:35,470 --> 01:04:40,850 Et nous allons faire cela collectivement, peut-être une instruction provenant de chaque personne. 1318 01:04:40,850 --> 01:04:41,440 Je suis désolé? 1319 01:04:41,440 --> 01:04:42,440 >> AUDIENCE: Tracez un cercle. 1320 01:04:42,440 --> 01:04:45,866 DAVID MALAN: Tracez un cercle est la première chose que j'ai entendu. 1321 01:04:45,866 --> 01:04:47,100 >> AUDIENCE: Up top. 1322 01:04:47,100 --> 01:04:48,140 >> DAVID MALAN: Up top. 1323 01:04:48,140 --> 01:04:52,504 OK, nous pouvons vous permettre de supprimer, d'annuler. 1324 01:04:52,504 --> 01:04:53,420 Et maintenant, quelqu'un d'autre. 1325 01:04:53,420 --> 01:04:55,994 Dan, pourriez-vous être à l'aise offrant l'instruction suivante? 1326 01:04:55,994 --> 01:05:02,070 >> AUDIENCE: Bien sûr, dessiner le centre du fond du cercle, 1327 01:05:02,070 --> 01:05:07,121 avec un peu small-- petit espace de cela, 1328 01:05:07,121 --> 01:05:15,420 tracer une ligne droite vers le bas pour trois quarts du chemin en bas de la carte 1329 01:05:15,420 --> 01:05:17,845 un léger angle à votre gauche. 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 >> AUDIENCE: Un angle. 1333 01:05:24,086 --> 01:05:32,807 >> DAVID MALAN: Undo, Control-Z. D'ACCORD. 1334 01:05:32,807 --> 01:05:34,890 Andrew, vous voulez offrir jusqu'à la prochaine instruction? 1335 01:05:34,890 --> 01:05:35,515 >> AUDIENCE: Bien sûr. 1336 01:05:35,515 --> 01:05:43,250 À partir du bas de cette ligne, une nouvelle légère angle-- 1337 01:05:43,250 --> 01:05:49,024 whoops-- peut-être environ un tiers de la longueur [Inaudible], 1338 01:05:49,024 --> 01:05:52,928 léger angle vers le bas et comme un le tiers de la longueur de [inaudible]. 1339 01:05:52,928 --> 01:05:57,550 1340 01:05:57,550 --> 01:06:00,578 Donc oui, à partir de ce moment-là, tracer une ligne d'un tiers 1341 01:06:00,578 --> 01:06:04,150 de la longueur de la précédente ligne plus à gauche. 1342 01:06:04,150 --> 01:06:08,416 1343 01:06:08,416 --> 01:06:10,040 >> DAVID MALAN: Ce OK? 1344 01:06:10,040 --> 01:06:12,330 Ligne droite, qui est OK? 1345 01:06:12,330 --> 01:06:14,900 OK, Olivier, vous voulez pour offrir le prochain? 1346 01:06:14,900 --> 01:06:28,564 >> AUDIENCE: [Inaudible] de la bas du cercle, [Inaudible]. 1347 01:06:28,564 --> 01:06:32,000 1348 01:06:32,000 --> 01:06:45,126 Dessinez sur le côté droit de [Inaudible] centimètres. 1349 01:06:45,126 --> 01:06:46,560 >> [RIRE] 1350 01:06:46,560 --> 01:06:49,872 >> DAVID MALAN: Je pense que vous allez ont pour convertir c'est pouces ici. 1351 01:06:49,872 --> 01:06:50,764 >> AUDIENCE: Stop. 1352 01:06:50,764 --> 01:06:52,186 >> [RIRE] 1353 01:06:52,186 --> 01:06:54,570 >> DAVID MALAN: OK. 1354 01:06:54,570 --> 01:06:56,660 [? Ara,?] Vous voulez pour offrir le prochain? 1355 01:06:56,660 --> 01:07:00,653 1356 01:07:00,653 --> 01:07:15,443 >> AUDIENCE: Dessinez un [Inaudible] la partie supérieure [Inaudible] la même chose. 1357 01:07:15,443 --> 01:07:28,829 [Inaudible] cercle, dessiner à la [Inaudible] et dessiner [Inaudible]. 1358 01:07:28,829 --> 01:07:33,799 1359 01:07:33,799 --> 01:07:36,730 >> DAVID MALAN: OK, pas plus défaire. 1360 01:07:36,730 --> 01:07:38,390 Faisons plus un ou deux instructions. 1361 01:07:38,390 --> 01:07:40,825 Chris, vous voulez offrir un? 1362 01:07:40,825 --> 01:07:46,182 >> AUDIENCE: Au fond du cercle, [Inaudible] 1363 01:07:46,182 --> 01:07:51,528 dessiner une ligne slopping égale vers le bas vers la gauche [Inaudible]. 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 Nous did-- Karim? 1368 01:08:02,472 --> 01:08:06,891 1369 01:08:06,891 --> 01:08:13,765 >> AUDIENCE: A partir de la ligne droite, la fin de la ligne gauche, le fond, 1370 01:08:13,765 --> 01:08:21,012 vous allez aller à droite à propos de la même longueur que la ligne 1371 01:08:21,012 --> 01:08:27,680 vous êtes sur, dessin à le droit [Inaudible]. 1372 01:08:27,680 --> 01:08:33,572 1373 01:08:33,572 --> 01:08:37,991 [Inaudible] degrés, de sorte [Inaudible] degrés sur le côté droit. 1374 01:08:37,991 --> 01:08:41,919 1375 01:08:41,919 --> 01:08:43,500 >> DAVID MALAN: Très bien. 1376 01:08:43,500 --> 01:08:44,029 Arrêtons-nous. 1377 01:08:44,029 --> 01:08:44,950 Ne pas tourner autour encore. 1378 01:08:44,950 --> 01:08:46,783 Arrêtons-nous et allons laisser essayez une autre tentative 1379 01:08:46,783 --> 01:08:48,850 avant que nous révélons Ben ce qu'il dessine. 1380 01:08:48,850 --> 01:08:51,189 Pouvez-vous mélanger Ben à le fait droite- ou, 1381 01:08:51,189 --> 01:08:54,080 non, nous allons vous donner juste un autre conseil, encore mieux. 1382 01:08:54,080 --> 01:08:57,640 Alors Quelqu'un voudrait maintenant de prendre plus de l'approche 1383 01:08:57,640 --> 01:09:02,149 que Victoria a pris plus tôt, où nous parlons dans une abstraction de plus haut niveau 1384 01:09:02,149 --> 01:09:05,149 et juste une phrase ou deux décrivent à Ben 1385 01:09:05,149 --> 01:09:07,229 quoi dessiner sans entrer dans les mauvaises herbes, 1386 01:09:07,229 --> 01:09:10,670 pour ainsi dire, à ce niveau inférieur? 1387 01:09:10,670 --> 01:09:11,206 Victoria. 1388 01:09:11,206 --> 01:09:11,706 [RIRE] 1389 01:09:11,706 --> 01:09:14,249 AUDIENCE: Dessinez une figure de l'homme à pied. 1390 01:09:14,249 --> 01:09:18,866 Et ses jambes et les bras doivent être du côté droit. 1391 01:09:18,866 --> 01:09:20,505 >> DAVID MALAN: OK, voilà tout ce que vous obtenez. 1392 01:09:20,505 --> 01:09:27,210 1393 01:09:27,210 --> 01:09:27,710 D'accord. 1394 01:09:27,710 --> 01:09:31,609 Pourquoi ne nous révélons pas Ben ce qu'il a fait. 1395 01:09:31,609 --> 01:09:32,890 Donc, une salve d'applaudissements. 1396 01:09:32,890 --> 01:09:35,700 Cela a été le plus dur peut-être. 1397 01:09:35,700 --> 01:09:37,931 >> Donc, même si nous parlons en termes assez stupides 1398 01:09:37,931 --> 01:09:39,680 à propos de tout dessin images, espérons-vous 1399 01:09:39,680 --> 01:09:44,226 peut vraiment apprécier le degré de expressivité qui pourrait être nécessaire 1400 01:09:44,226 --> 01:09:45,850 afin de dire à un ordinateur ce qu'il faut faire. 1401 01:09:45,850 --> 01:09:50,370 En effet, le fait que Ben a été en mesure de tirer cette si vite 1402 01:09:50,370 --> 01:09:54,227 est une sorte de testament à l'aide d'un langue, peut-être un niveau plus élevé 1403 01:09:54,227 --> 01:09:57,060 version de l'anglais, qui lui permet d'utiliser simplement des mots, ou entendre des mots 1404 01:09:57,060 --> 01:09:59,990 de Victoria, qui lui permettra ces abstractions-- simplement dessiner 1405 01:09:59,990 --> 01:10:03,020 une figure de marche de la droite- ce genre de a 1406 01:10:03,020 --> 01:10:07,100 une signification sémantique pour ce qui est pas presque aussi évident quand vous êtes juste 1407 01:10:07,100 --> 01:10:10,310 dire, mettre votre stylo, dessiner à droite, tirer vers la gauche. 1408 01:10:10,310 --> 01:10:12,420 >> Et cela, aussi, est très commune dans la programmation. 1409 01:10:12,420 --> 01:10:15,253 Ce serait, dit-on comme un très faible niveau de langue, de programmation 1410 01:10:15,253 --> 01:10:16,730 dans de 0 et de 1 si vous voulez. 1411 01:10:16,730 --> 01:10:19,320 Et ce serait un niveau plus élevé la programmation en langage Java, 1412 01:10:19,320 --> 01:10:20,278 ou quelque chose comme ça. 1413 01:10:20,278 --> 01:10:22,050 Un peu d'un simplisme, mais qui est 1414 01:10:22,050 --> 01:10:24,310 la sorte comme affective le sentiment que vous vous sentez quand 1415 01:10:24,310 --> 01:10:26,630 en utilisant une sorte de chose ou une autre. 1416 01:10:26,630 --> 01:10:32,650 Un peu de frustration ici par la nécessité pour une telle précision, mais la possibilité 1417 01:10:32,650 --> 01:10:34,930 être un peu plus souple avec l'interprétation ici. 1418 01:10:34,930 --> 01:10:38,060 Mais bien sûr, des bugs peut survenir à la suite. 1419 01:10:38,060 --> 01:10:40,500 >> Si vous souhaitez à home-- nous ne fera pas celle-ci dans class-- 1420 01:10:40,500 --> 01:10:41,900 mais si vous souhaitez amener celui-ci à la maison, 1421 01:10:41,900 --> 01:10:43,387 Je pensais que nous allions plonger dans ce. 1422 01:10:43,387 --> 01:10:45,970 Donc, si vous souhaitez jouer à ce jeu avec votre autre significatif 1423 01:10:45,970 --> 01:10:49,180 ou les enfants ou autres, vous pourraient profiter de cela aussi. 1424 01:10:49,180 --> 01:10:54,460 >> Donc, nous allons aller de l'avant et de regarder une dernière chose ici pour la pensée informatique. 1425 01:10:54,460 --> 01:10:57,010 Et cela nous amène à John Oliver, pas pour le clip 1426 01:10:57,010 --> 01:11:00,070 vous pourriez avoir vu la nuit dernière, mais à une question un peu récent. 1427 01:11:00,070 --> 01:11:03,310 Il y a quelques mois, Volkswagen a pris un peu de flak 1428 01:11:03,310 --> 01:11:05,651 pour quelle raison, si vous le savez? 1429 01:11:05,651 --> 01:11:07,025 Qu'ont-ils en difficulté pour? 1430 01:11:07,025 --> 01:11:10,270 1431 01:11:10,270 --> 01:11:14,030 >> Ouais, donc ils emissions-- ont été en essayant de battre les émissions 1432 01:11:14,030 --> 01:11:19,100 des essais ayant essentiellement par leur les voitures polluent l'environnement moins 1433 01:11:19,100 --> 01:11:23,620 lorsque leurs voitures ont été mis à l'essai et polluent l'environnement plus 1434 01:11:23,620 --> 01:11:25,547 quand les voitures ne sont pas testés. 1435 01:11:25,547 --> 01:11:28,630 Et ce qui est plus intéressant dans le monde, comme vous pouvez avoir inféré 1436 01:11:28,630 --> 01:11:34,072 des discussions de like-- ce qui est it-- carplay, le logiciel d'Apple pour les voitures 1437 01:11:34,072 --> 01:11:35,780 et le fait que de nombreux nous de plus en plus 1438 01:11:35,780 --> 01:11:38,390 ont des écrans tactiles dans nos voitures, il y a une quantité effrayante 1439 01:11:38,390 --> 01:11:41,250 des logiciels de personnes les voitures d'aujourd'hui, qui 1440 01:11:41,250 --> 01:11:45,650 ouvre franchement toute une boîte de Pandore lorsque En matière de sécurité et de risque physique. 1441 01:11:45,650 --> 01:11:48,070 Mais pour aujourd'hui, nous allons se concentrer uniquement sur ce qui est 1442 01:11:48,070 --> 01:11:52,170 impliqué dans le logiciel d'écriture qui aurait pu gamed le système. 1443 01:11:52,170 --> 01:11:54,510 >> Pour la définition de la problème, pour ceux qui ne connaissent, 1444 01:11:54,510 --> 01:11:55,740 nous allons jeter un coup d'oeil à John Oliver. 1445 01:11:55,740 --> 01:11:58,115 Et pour ceux qui sont familiers avec le problème, regardons ce 1446 01:11:58,115 --> 01:12:00,480 dans une lentille fun via John Oliver ainsi. 1447 01:12:00,480 --> 01:12:05,810 Alors permettez-moi de frapper le jeu sur ce, je penser, de trois minutes l'introduction. 1448 01:12:05,810 --> 01:12:07,074 Bon sang. 1449 01:12:07,074 --> 01:12:07,740 [LECTURE VIDÉO] 1450 01:12:07,740 --> 01:12:08,170 -Des voitures-- 1451 01:12:08,170 --> 01:12:09,919 DAVID MALAN: De toute évidence, sur YouTube, est-- 1452 01:12:09,919 --> 01:12:12,500 - --les personnages les plus intelligents les films Fast and Furious. 1453 01:12:12,500 --> 01:12:16,080 Cette semaine, le constructeur automobile allemand Volkswagen se trouve 1454 01:12:16,080 --> 01:12:19,430 au milieu d'un scandale de proportions potentiellement criminelles. 1455 01:12:19,430 --> 01:12:23,020 >> -Volkswagen Se prépare à des milliards d'amendes, d'éventuelles accusations criminelles 1456 01:12:23,020 --> 01:12:25,530 pour ses cadres, comme la société présente ses excuses 1457 01:12:25,530 --> 01:12:28,790 pour le gréement 11 millions de voitures à l'aider à battre les essais d'émissions. 1458 01:12:28,790 --> 01:12:32,110 >> les modèles diesel ont été conçus -certaines avec un logiciel sophistiqué qui 1459 01:12:32,110 --> 01:12:35,410 utilisé des informations, y compris la position du volant et véhicule 1460 01:12:35,410 --> 01:12:38,820 la vitesse, afin de déterminer la voiture était soumis à des tests d'émissions. 1461 01:12:38,820 --> 01:12:42,620 En vertu de cette circonstance, le moteur permettrait de réduire les émissions toxiques. 1462 01:12:42,620 --> 01:12:46,040 Mais la voiture a été truqué pour contourner que, quand elle a été entraînée. 1463 01:12:46,040 --> 01:12:51,370 Les émissions ont augmenté de 10 à 40 fois au-dessus des niveaux APE acceptables. 1464 01:12:51,370 --> 01:12:55,920 >> -WOW, 10 à 40 fois plus que l'EPA permet. 1465 01:12:55,920 --> 01:12:59,570 Telle est la pire chose Volkswagen a jamais fait, 1466 01:12:59,570 --> 01:13:04,200 est quelque chose que vous pourriez dire si vous ne l'avais jamais entendu parler de la Seconde Guerre mondiale. 1467 01:13:04,200 --> 01:13:09,710 Mais peut-être le signe le plus sûr de la façon dont beaucoup de peine Volkswagen est, 1468 01:13:09,710 --> 01:13:12,730 est que les gens à la très dessus ont démissionné. 1469 01:13:12,730 --> 01:13:16,320 Le PDG a démissionné mercredi après brouillage pour limiter les dégâts, 1470 01:13:16,320 --> 01:13:20,380 en disant qu'il était sans cesse désolé, qui sonné grand jusqu'à ce qu'il est avéré 1471 01:13:20,380 --> 01:13:22,920 il était seulement 10% désolé mais avait truqué sa bouche 1472 01:13:22,920 --> 01:13:25,600 pour gonfler artificiellement son sorriness. 1473 01:13:25,600 --> 01:13:29,700 Et pendant ce temps, US Volkswagen chef avait des excuses de la sienne. 1474 01:13:29,700 --> 01:13:33,580 >> -LET Être clair à ce sujet, notre entreprise était malhonnête. 1475 01:13:33,580 --> 01:13:37,140 Et dans mes mots allemands, nous ont totalement foiré. 1476 01:13:37,140 --> 01:13:41,360 >> -Ouais, Mais totalement vissé up ne sont pas des œuvres allemandes. 1477 01:13:41,360 --> 01:13:43,750 Et la langue allemande a beaucoup de belles phrases 1478 01:13:43,750 --> 01:13:50,070 pour décrire des situations comme celle-ci, tels que [ALLEMAND], ce qui signifie à peu près, 1479 01:13:50,070 --> 01:13:52,870 la tristesse qui vient des mensonges d'affaires liées, 1480 01:13:52,870 --> 01:13:59,060 ou [ALLEMAND], ce qui se traduit par comme honte ceux impliquant le père 1481 01:13:59,060 --> 01:14:00,352 nuages ​​d'essence. 1482 01:14:00,352 --> 01:14:02,060 Il est une belle langue. 1483 01:14:02,060 --> 01:14:04,660 Il navigue juste à côté de la langue. 1484 01:14:04,660 --> 01:14:07,920 Et en passant, tandis que l'homme de des excuses peut avoir sonné sincère, 1485 01:14:07,920 --> 01:14:12,260 il est intéressant de noter qu'il parlait au une soirée de lancement officiel pour 2016 1486 01:14:12,260 --> 01:14:17,310 Volkswagen Passat, ce qui signifie que peu de temps après avoir dit désolé, il a dit cela. 1487 01:14:17,310 --> 01:14:18,850 >> mercie beaucoup d'être venus. 1488 01:14:18,850 --> 01:14:19,630 Passe une belle soirée. 1489 01:14:19,630 --> 01:14:21,300 est à côté de Lenny Kravitz. 1490 01:14:21,300 --> 01:14:24,640 >> [MUSIC PLAYING] 1491 01:14:24,640 --> 01:14:28,230 >> -OK, OK, mettre fin à votre excuses jusqu'à la prochaine 1492 01:14:28,230 --> 01:14:31,940 Lenny Kravitz ne crier contrition sobre. 1493 01:14:31,940 --> 01:14:35,830 Il crie, nous avons demandé Bon Jovi, et il a dit non. 1494 01:14:35,830 --> 01:14:38,600 La marque Volkswagen a été gravement endommagée. 1495 01:14:38,600 --> 01:14:42,466 Et franchement, leur nouvelle annonce campagne ne contribue pas exactement. 1496 01:14:42,466 --> 01:14:47,289 >> - [ALLEMAND], nous Volkswagen aimerions de présenter des excuses pour vous tromper avec 1497 01:14:47,289 --> 01:14:47,930 nos véhicules. 1498 01:14:47,930 --> 01:14:48,513 >> [FIN LECTURE] 1499 01:14:48,513 --> 01:14:54,090 DAVID MALAN: Donc, ce fut un manière détournée de-- sorry-- 1500 01:14:54,090 --> 01:14:58,730 ce fut une façon détournée de l'introduction d'un problème fondamental 1501 01:14:58,730 --> 01:15:02,810 dans le logiciel, qui est que vous besoin de détecter certaines conditions. 1502 01:15:02,810 --> 01:15:07,680 Et donc la question à portée de main ici est, comment fonctionne une voiture potentiellement, 1503 01:15:07,680 --> 01:15:09,870 mis en œuvre dans le logiciel par ces programmeurs, 1504 01:15:09,870 --> 01:15:11,850 détecter qu'il est effectivement mis à l'essai? 1505 01:15:11,850 --> 01:15:14,150 Donc, pour être super clair, ce qu'ils faisaient 1506 01:15:14,150 --> 01:15:17,940 était, dans des environnements où les programmeurs ont figuré 1507 01:15:17,940 --> 01:15:20,460 la voiture était testé, ils en quelque sorte fait 1508 01:15:20,460 --> 01:15:24,840 la voiture émet moins d'émissions, moins les émissions, les fumées donc moins toxiques 1509 01:15:24,840 --> 01:15:25,470 et autres choses de ce genre. 1510 01:15:25,470 --> 01:15:27,261 Mais quand il est normalement conduite sur la route, 1511 01:15:27,261 --> 01:15:30,350 il serait tout simplement émettre autant la pollution comme il voulait. 1512 01:15:30,350 --> 01:15:33,870 >> Alors, comment pourrions-nous écrire le pseudocode pour cet algorithme? 1513 01:15:33,870 --> 01:15:37,820 Comment pourrions-nous écrire le pseudocode pour le logiciel en cours d'exécution dans la voiture? 1514 01:15:37,820 --> 01:15:43,390 Je veux dire, en un mot, il se résume à quelque chose comme ça. 1515 01:15:43,390 --> 01:15:48,000 si l'essai, émettent moins. 1516 01:15:48,000 --> 01:15:50,750 d'autre émet plus. 1517 01:15:50,750 --> 01:15:52,630 Mais c'est un peu niveau trop élevé, non? 1518 01:15:52,630 --> 01:15:58,580 >> Essayons de plonger à ce que cela abstraction d'être des moyens testés. 1519 01:15:58,580 --> 01:16:06,340 En d'autres termes, même si vous ne savez rien sur les voitures, ce genre de questions 1520 01:16:06,340 --> 01:16:13,440 pourriez-vous poser afin de déterminer si vous êtes en cours de test, si vous êtes la voiture? 1521 01:16:13,440 --> 01:16:19,638 Quelles caractéristiques pourraient être présenter si une voiture est en cours de test? 1522 01:16:19,638 --> 01:16:21,026 >> AUDIENCE: Test de l'équipement. 1523 01:16:21,026 --> 01:16:22,420 >> DAVID MALAN: Equipements de tests. 1524 01:16:22,420 --> 01:16:26,060 Donc, si l'équipement d'essai à proximité, puis émettre moins. 1525 01:16:26,060 --> 01:16:28,669 Donc, je pouvais imaginer la mise en œuvre que, avec une sorte de caméras 1526 01:16:28,669 --> 01:16:29,960 ou la détection de ce qui est autour de vous. 1527 01:16:29,960 --> 01:16:32,870 Et permettez-moi de proposer que se sent tout simplement trop compliqué 1528 01:16:32,870 --> 01:16:37,914 d'avoir réellement supplémentaire matériel juste pour cette fin. 1529 01:16:37,914 --> 01:16:44,830 >> AUDIENCE: Si vous êtes dans parc, si votre capot est ouvert. 1530 01:16:44,830 --> 01:16:47,320 >> DAVID MALAN: Dans un parc ou capot ouvert, de sorte que ce qui est bon. 1531 01:16:47,320 --> 01:16:47,420 >> AUDIENCE: Et voiture en marche. 1532 01:16:47,420 --> 01:16:50,480 >> DAVID MALAN: Donc, qui est un peu plus concrete-- et la voiture en cours d'exécution. 1533 01:16:50,480 --> 01:16:55,690 Ce serait donc la conjonction d'un quelques conditions différentes, si vous voulez. 1534 01:16:55,690 --> 01:16:59,227 Donc, si la voiture est dans le parc, et même bien que ce soit une chose très mécanique 1535 01:16:59,227 --> 01:17:01,060 généralement, je pouvais imaginer un logiciel d'écriture, 1536 01:17:01,060 --> 01:17:03,476 en particulier parce qu'il ya souvent une lumière là-bas ces jours, 1537 01:17:03,476 --> 01:17:07,400 Je ne pouvais imaginer qu'il y ait logiciel qui peut interroger le shifter 1538 01:17:07,400 --> 01:17:10,634 ou quoi, êtes-vous dans le parc, sont vous dans le lecteur, êtes-vous dans le sens inverse. 1539 01:17:10,634 --> 01:17:12,550 Et je peux récupérer un répondre que ce soit oui 1540 01:17:12,550 --> 01:17:14,400 ou pas à ce genre de questions. 1541 01:17:14,400 --> 01:17:17,630 >> Et donc je pourrais aussi probablement répondre une question comme, est le capot ouvert. 1542 01:17:17,630 --> 01:17:21,860 Peut-être, il y a une sorte de capteur que ce soit me redonne un 1 ou 0, 1543 01:17:21,860 --> 01:17:23,720 vrai ou faux, le capot est ouvert. 1544 01:17:23,720 --> 01:17:28,180 Et puis la voiture en marche, je ne pouvais détecter qui en quelque sorte par l'intermédiaire de ce mécanisme? 1545 01:17:28,180 --> 01:17:30,430 Comme, la voiture est en marche, je pourrait détecter que ce soit sur, 1546 01:17:30,430 --> 01:17:32,127 pourrais-je détecter en quelque sorte que la voiture est en mouvement? 1547 01:17:32,127 --> 01:17:32,881 >> AUDIENCE: RPM. 1548 01:17:32,881 --> 01:17:35,190 >> DAVID MALAN: Ouais, donc il n'y a toujours cette aiguille 1549 01:17:35,190 --> 01:17:38,034 vous indique combien de rotations par minute les roues connaissent. 1550 01:17:38,034 --> 01:17:39,200 Et donc je pourrais regarder ça. 1551 01:17:39,200 --> 01:17:43,090 Et si ce n'est pas 0, que probablement signifie que la voiture est en mouvement. 1552 01:17:43,090 --> 01:17:45,400 Mais nous devons être un peu prudent là-bas, 1553 01:17:45,400 --> 01:17:49,780 because-- simplifions this-- si nous venons de le dire, si la voiture en cours d'exécution, 1554 01:17:49,780 --> 01:17:53,070 nous ne voulons pas simplement émettre moins, nous voulons si la voiture est en cours d'exécution 1555 01:17:53,070 --> 01:17:54,310 et il est testé. 1556 01:17:54,310 --> 01:17:56,320 >> Donc, il y a quelques autres ingrédients que les gens 1557 01:17:56,320 --> 01:18:00,550 ont émis l'hypothèse que le logiciel est en train de faire, car en l'absence du code source, 1558 01:18:00,550 --> 01:18:05,130 vous ne pouvez sorte de déduire de la effets physiques de la voiture sur ce que 1559 01:18:05,130 --> 01:18:08,280 pourrait se passer sous le capot dans le logiciel. 1560 01:18:08,280 --> 01:18:17,090 Donc, si la voiture en cours d'exécution et peut-être, disons, les roues arrière ne bouge pas, 1561 01:18:17,090 --> 01:18:19,420 pourrait-il être indicative d'une sorte de test? 1562 01:18:19,420 --> 01:18:22,830 Que vais-je allusion ici? 1563 01:18:22,830 --> 01:18:24,830 Ouais, peut-être, il est sur un de ces choses à rouleaux, 1564 01:18:24,830 --> 01:18:28,340 où comme les roues se tournent à l'avant ou à l'arrière, 1565 01:18:28,340 --> 01:18:32,570 selon qu'il est la roue avant ou entraînement de la roue arrière, de sorte que la moitié des roues 1566 01:18:32,570 --> 01:18:34,420 sont en mouvement, mais le deux autres ne sont pas, ce qui 1567 01:18:34,420 --> 01:18:36,320 est une situation bizarre dans le monde réel. 1568 01:18:36,320 --> 01:18:38,110 Si vous conduisez sur la route, cela ne devrait pas se produire. 1569 01:18:38,110 --> 01:18:40,568 Mais si vous êtes dans un entrepôt sur une sorte de système de rouleaux, 1570 01:18:40,568 --> 01:18:41,630 qui pourrait bien se produire. 1571 01:18:41,630 --> 01:18:46,980 >> Je pense que les gens ont également proposé que peut-être, si la voiture est en cours d'exécution et de direction 1572 01:18:46,980 --> 01:18:51,300 roue ne bouge pas, que trop peut-être un signal, 1573 01:18:51,300 --> 01:18:54,090 parce que ce raisonnable pour comme une ligne droite sur une route. 1574 01:18:54,090 --> 01:18:57,960 Mais même alors, l'être humain est probablement déplacer un peu ou certainement 1575 01:18:57,960 --> 01:18:59,100 en quelques secondes. 1576 01:18:59,100 --> 01:19:01,030 Ou au cours d'une minute, les chances sont qu'il est pas 1577 01:19:01,030 --> 01:19:03,510 va être obsédé dans exactement la même position. 1578 01:19:03,510 --> 01:19:05,440 >> En d'autres termes, nous peut prendre soustractions, 1579 01:19:05,440 --> 01:19:08,200 êtes-vous d'être testé, et briser cette fonctionnalité 1580 01:19:08,200 --> 01:19:10,420 dans ces ingrédients composant. 1581 01:19:10,420 --> 01:19:13,440 Et c'est vraiment ce que Volkswagen ingénieurs en quelque sorte fait. 1582 01:19:13,440 --> 01:19:17,070 Ils ont écrit le logiciel consciemment détecter si le véhicule est en cours de test, 1583 01:19:17,070 --> 01:19:20,440 donc émettre moins, sinon émettre de la manière habituelle. 1584 01:19:20,440 --> 01:19:22,690 >> Et le problème ici aussi, est que le logiciel est pas 1585 01:19:22,690 --> 01:19:26,080 quelque chose que vous pouvez vraiment voir moins vous avez le code que l'on appelle la source. 1586 01:19:26,080 --> 01:19:29,060 Donc, il y a deux types de différents code-- au moins deux types différents 1587 01:19:29,060 --> 01:19:30,130 du code dans le monde. 1588 01:19:30,130 --> 01:19:33,150 Il y a quelque chose appelé source code, qui est semblable à ce que 1589 01:19:33,150 --> 01:19:37,240 nous avons écrit, le code source. 1590 01:19:37,240 --> 01:19:40,099 >> Ceci est le code source écrit en un langage appelé pseudocode, 1591 01:19:40,099 --> 01:19:41,640 qui est juste quelque chose Anglais-like. 1592 01:19:41,640 --> 01:19:43,140 Il n'y a pas de définition officielle de celui-ci. 1593 01:19:43,140 --> 01:19:46,770 Mais C et Java, C ++, celles sont toutes les langues officielles qui, 1594 01:19:46,770 --> 01:19:50,610 lorsque vous écrivez en eux, ce que vous avez est un fichier texte contenant le code source. 1595 01:19:50,610 --> 01:19:54,850 >> Mais il y a aussi quelque chose dans le monde a appelé code machine. 1596 01:19:54,850 --> 01:20:00,579 Et le code machine, malheureusement, est seulement 0 et de 1. 1597 01:20:00,579 --> 01:20:02,870 Donc, le code de la machine est ce machines comprennent, bien sûr. 1598 01:20:02,870 --> 01:20:04,470 Le code source est ce que les humains comprennent. 1599 01:20:04,470 --> 01:20:08,390 >> Et généralement, mais pas toujours, il y a un programme 1600 01:20:08,390 --> 01:20:14,090 qu'un programmeur utilise qui prend la source le code et le transforme en code machine. 1601 01:20:14,090 --> 01:20:17,400 Et ce programme est généralement appelé un compilateur. 1602 01:20:17,400 --> 01:20:19,820 Donc, votre entrée est le code source, votre sortie est le code machine, 1603 01:20:19,820 --> 01:20:22,890 et le compilateur est un morceau de logiciel qui fait ce processus. 1604 01:20:22,890 --> 01:20:26,260 Donc, cela correspond en fait très bien à nos entrées, les algorithmes, les sorties. 1605 01:20:26,260 --> 01:20:30,400 >> Mais ceci est une incarnation très spécifique de ce qui est à dire que, 1606 01:20:30,400 --> 01:20:34,200 même si vous possédez l'un de Volkswagen les voitures qui est coupable de cela, 1607 01:20:34,200 --> 01:20:38,390 il est pas comme vous pouvez simplement ouvrir le capot ou ouvrir le manuel de l'utilisateur ou regarder 1608 01:20:38,390 --> 01:20:42,690 au code source, parce que le temps il atteint votre voiture dans votre entrée, 1609 01:20:42,690 --> 01:20:45,580 il a déjà été converti en 0 et de 1. 1610 01:20:45,580 --> 01:20:51,310 Et il est très difficile, pas impossible, mais très difficile à glaner quoi que ce soit 1611 01:20:51,310 --> 01:20:53,710 de simplement regarder la sous-jacente de 0 et de 1. 1612 01:20:53,710 --> 01:20:57,150 Ainsi, vous pouvez le comprendre, en fin de compte, si vous comprenez comment une machine operates-- 1613 01:20:57,150 --> 01:20:59,870 Intel inside-- si vous comprenez l'architecture Intel, 1614 01:20:59,870 --> 01:21:01,440 mais il est consommatrice de temps très. 1615 01:21:01,440 --> 01:21:05,010 Et même là, vous pourriez ne pas être en mesure de voir tout 1616 01:21:05,010 --> 01:21:08,220 que le code peut réellement faire. 1617 01:21:08,220 --> 01:21:12,521 >> Une question sur ceci ou cela sorte de processus plus généralement? 1618 01:21:12,521 --> 01:21:15,134 1619 01:21:15,134 --> 01:21:18,300 Et effectivement, nous pouvons lier cette discussion à la discussion d'hier d'Apple. 1620 01:21:18,300 --> 01:21:22,500 Cela, aussi, est la raison pour laquelle le FBI ne peut pas simplement aller chercher dans le téléphone du suspect 1621 01:21:22,500 --> 01:21:26,820 et trouver les lignes de code, pour par exemple, qui permettent le mot de passe 1622 01:21:26,820 --> 01:21:28,940 ou permettre que le retard de 80 millisecondes. 1623 01:21:28,940 --> 01:21:31,630 Parce que par le temps, il est sur iPhone du boursier, 1624 01:21:31,630 --> 01:21:34,975 il a déjà été converti à 0 et de 1. 1625 01:21:34,975 --> 01:21:38,015 1626 01:21:38,015 --> 01:21:40,820 >> Eh bien, nous allons faire une pause ici pour notre regarder la pensée informatique. 1627 01:21:40,820 --> 01:21:42,320 Pourquoi ne prenons pas une pause de 15 minutes. 1628 01:21:42,320 --> 01:21:44,130 Et quand nous reviendrons, nous allons jetez un oeil à la programmation 1629 01:21:44,130 --> 01:21:46,550 lui-même et commencer à cartographier certains de ces concepts de haut niveau 1630 01:21:46,550 --> 01:21:49,780 à une réelle, si ludique, langage de programmation. 1631 01:21:49,780 --> 01:21:51,089