1 00:00:00,000 --> 00:00:00,270 2 00:00:00,270 --> 00:00:01,790 DAVID MALAN: Willkommen zurück, jeder. 3 00:00:01,790 --> 00:00:05,030 So gestern, werden sich erinnern, dass Wir konzentrierten uns auf diese Themen hier. 4 00:00:05,030 --> 00:00:08,380 So hatten wir vier übergeordnete topics-- Datenschutz, Sicherheit und Gesellschaft; 5 00:00:08,380 --> 00:00:11,960 Internet-Technologien; Cloud Computing; und schließlich, Web-Entwicklung. 6 00:00:11,960 --> 00:00:14,170 >> Hat jemand die Bandbreite oder die Zeit 7 00:00:14,170 --> 00:00:16,900 ein wenig John zu sehen Oliver letzte Nacht? 8 00:00:16,900 --> 00:00:20,120 Es ist eigentlich ziemlich amüsant, wenn nicht ein wenig erschreckend. 9 00:00:20,120 --> 00:00:24,700 Irgendwelche Fragen zu irgendetwas wir haben gestern? 10 00:00:24,700 --> 00:00:27,600 Alle Erklärungen? 11 00:00:27,600 --> 00:00:35,580 Alle Fragen, die Sie machen wollen sicher, berühren wir in irgendeiner Form auf heute? 12 00:00:35,580 --> 00:00:37,300 So sauber Schiefer. 13 00:00:37,300 --> 00:00:38,760 >> Also, was ist auf der Tagesordnung für heute? 14 00:00:38,760 --> 00:00:41,301 Also dachte ich, dass wir heute beginnen würde mit einem Blick auf das, was in der Regel 15 00:00:41,301 --> 00:00:44,460 als Berechnungs thinking-- bekannt bei das Risiko von vereinfachend, zu denken 16 00:00:44,460 --> 00:00:46,636 wie ein Computer, vielleicht Denken wie ein Ingenieur, 17 00:00:46,636 --> 00:00:48,510 und zu versuchen, zu starten organisieren Sie Ihre Gedanken 18 00:00:48,510 --> 00:00:52,039 oder geben Sie ein besseres Gefühl was in eigentlich befehls beteiligt ist 19 00:00:52,039 --> 00:00:54,080 ein Computer, etwas zu tun durch Programmierung. 20 00:00:54,080 --> 00:00:56,663 Und wir halten es in einem hübschen hohem Niveau, so ziemlich Englisch, 21 00:00:56,663 --> 00:00:59,850 sondern versuchen, vertrauter zu verwenden Beispiele zu formalisieren, wie 22 00:00:59,850 --> 00:01:01,450 Sie würden über das Lösen der Probleme gehen. 23 00:01:01,450 --> 00:01:04,080 >> Und wir werden einige CS erneut Themen, wie Abstraktion, 24 00:01:04,080 --> 00:01:06,040 die kam ein Ehepaar Mal gestern, 25 00:01:06,040 --> 00:01:07,554 Algorithmen und dann Darstellung. 26 00:01:07,554 --> 00:01:09,720 Und das ist, wo wir beginnen heute in nur einem Augenblick. 27 00:01:09,720 --> 00:01:11,481 Dann werden wir einen Blick auf die Programmierung nehmen. 28 00:01:11,481 --> 00:01:13,480 Wir werden einen Blick auf einige nehmen grundlegenden Konstrukte 29 00:01:13,480 --> 00:01:16,450 mit denen könnte man vertraut sein und vielleicht sogar recht intuitiv finden. 30 00:01:16,450 --> 00:01:18,370 >> Wir werden sehen, in der Tat, bei einer Probenprogrammierung 31 00:01:18,370 --> 00:01:21,244 Umgebung, die sehr zugänglich ist, sehr verspielt, und zwar gezielt 32 00:01:21,244 --> 00:01:22,555 ab 12 Jahren auf. 33 00:01:22,555 --> 00:01:25,930 Wir werden ein paar Minuten dort verbringen und dann nehmen die Dinge auf ein niedrigeres Niveau 34 00:01:25,930 --> 00:01:30,360 und reden eigentlich über einige die Algorithmen und Datenstrukturen, 35 00:01:30,360 --> 00:01:32,360 sozusagen, dass Programmierer verwenden in der Regel 36 00:01:32,360 --> 00:01:35,040 Probleme weit mehr zu lösen effizienter als Sie vielleicht 37 00:01:35,040 --> 00:01:37,322 der Lage sein, ohne sie ganz zu tun. 38 00:01:37,322 --> 00:01:40,280 Dann nach dem Mittagessen, werden wir einen Blick bei Technologie-Stacks, die gerade ist 39 00:01:40,280 --> 00:01:42,240 eine andere Art zu sagen Sammlungen von Technologien 40 00:01:42,240 --> 00:01:43,690 dass Sie vielleicht zu verwenden lösen ein Problem. 41 00:01:43,690 --> 00:01:46,670 Und wir werden über das Alphabet sprechen Suppe von Sprachen, die es gibt today-- 42 00:01:46,670 --> 00:01:50,930 Java und Python und C ++ und PHP und Ruby und alle möglichen anderen Dinge. 43 00:01:50,930 --> 00:01:53,740 >> Wir werden einen Blick kurz nehmen bei Design-Muster. 44 00:01:53,740 --> 00:01:57,730 Programmierer, im Laufe der Zeit, haben angenommen Methoden 45 00:01:57,730 --> 00:02:00,690 , die dazu neigen, ihnen zu helfen Probleme zu lösen leichter. 46 00:02:00,690 --> 00:02:04,390 Wenn Sie sich selbst zu sehen Schreiben beginnen die gleiche Art von Code wieder und wieder, 47 00:02:04,390 --> 00:02:08,080 Menschen formalisieren diese Wiederholungen und schreiben ihnen Namen 48 00:02:08,080 --> 00:02:10,084 und dann nutzen sie, und fördern sie schließlich. 49 00:02:10,084 --> 00:02:12,250 Und wir werden ein wenig reden über Mobile-Strategien, 50 00:02:12,250 --> 00:02:16,099 wie das, was bedeutet es eigentlich machen Sie eine Handy-App oder eine mobile Website. 51 00:02:16,099 --> 00:02:17,140 Haben Sie es für Android zu tun? 52 00:02:17,140 --> 00:02:17,730 Tun Sie es für iOS? 53 00:02:17,730 --> 00:02:19,160 Tun Sie es sowohl für die von denen? 54 00:02:19,160 --> 00:02:20,326 Und was sind die Trade-offs? 55 00:02:20,326 --> 00:02:23,180 Und dann endlich, wir nehmen ein Blick Web-Programmierung, die 56 00:02:23,180 --> 00:02:25,380 ist ein Sammelbegriff Beschreiben wirklich jederzeit 57 00:02:25,380 --> 00:02:28,410 Sie Software schreiben, ist gemeint, die im Internet zu laufen, 58 00:02:28,410 --> 00:02:30,430 ob auf Handys oder Desktops oder Laptops. 59 00:02:30,430 --> 00:02:33,490 Wir nehmen einen kurzen Blick auf Datenbanken und das Design 60 00:02:33,490 --> 00:02:39,049 darin, wenn auch nur, weil fast jeder interessante Web-basierte Anwendung 61 00:02:39,049 --> 00:02:40,590 in diesen Tagen hat eine Art von Datenbank. 62 00:02:40,590 --> 00:02:42,380 Andernfalls wäre es nur statische Inhalte sein. 63 00:02:42,380 --> 00:02:45,254 Und eine Datenbank ermöglicht es Ihnen, zu machen Veränderungen im Laufe der Zeit, ob sich 64 00:02:45,254 --> 00:02:45,960 oder von den Benutzern. 65 00:02:45,960 --> 00:02:47,820 Und wir werden überlegen, wie Sie würde über die Gestaltung 66 00:02:47,820 --> 00:02:50,510 die Datenbank und die Art von Jargon das könnte in einem Ingenieur kommen 67 00:02:50,510 --> 00:02:52,790 Diskussion auf einer weißen Tafel wenn tatsächlich die Umsetzung 68 00:02:52,790 --> 00:02:53,900 eine App zum ersten Mal. 69 00:02:53,900 --> 00:02:57,002 >> Wir werden kurz sprechen über APIs, nützliche Dienste 70 00:02:57,002 --> 00:02:59,960 dass Sie auf die stehen verwenden Schultern der anderen, ob Unternehmen 71 00:02:59,960 --> 00:03:02,619 oder Einzelpersonen, und lösen Sie Ihre eigene Probleme schneller. 72 00:03:02,619 --> 00:03:04,785 Und dann werden wir vielleicht Dabble ein bisschen mit JavaScript, 73 00:03:04,785 --> 00:03:08,900 eine Programmiersprache, die verwendet wird beide Tage in Browsern, sondern auch 74 00:03:08,900 --> 00:03:09,820 in Servern. 75 00:03:09,820 --> 00:03:11,890 Und vielleicht werden wir erneut, die Zeit erlaubt, 76 00:03:11,890 --> 00:03:15,670 einige der Hands-on-Web-Sachen, die wir gestern und integrieren die beiden 77 00:03:15,670 --> 00:03:17,630 zusammen, bevor wir vertagen. 78 00:03:17,630 --> 00:03:22,380 >> Also mit dass-- was ahead-- ist es etwas fehlt, dass Sie 79 00:03:22,380 --> 00:03:26,289 möchten wir einsetzen, um sicherzustellen, und berühren Sie irgendwann auf. 80 00:03:26,289 --> 00:03:28,330 Wenn es Federn ist in den Sinn, bringen es dauerte nicht lange auf. 81 00:03:28,330 --> 00:03:32,010 Aber warum machen wir nicht mit einem beginnen Blick auf rechnerische Denken. 82 00:03:32,010 --> 00:03:35,420 >> Und lassen Sie mich, dass vorschlagen rechnerische Denken ist, wieder, 83 00:03:35,420 --> 00:03:38,830 Art der Beschreibung auf hoher Ebene von was könnte ein Computerwissenschaftler tun. 84 00:03:38,830 --> 00:03:42,470 Und in der Tat, lassen Sie uns beginnen mit drei Zutaten, die 85 00:03:42,470 --> 00:03:44,207 gehen könnte in Computational Denken. 86 00:03:44,207 --> 00:03:45,790 Dies ist nur ein Weg, um es zu beschreiben. 87 00:03:45,790 --> 00:03:48,490 Wir könnten sicherlich definieren dies in einer beliebigen Anzahl von Möglichkeiten. 88 00:03:48,490 --> 00:03:50,630 >> Aber lassen Sie mich schlagen, im Interesse der heute 89 00:03:50,630 --> 00:03:53,910 dass die Probleme der Welt, alle Probleme der Welt, 90 00:03:53,910 --> 00:03:56,730 wenn sie von einem genähert Informatiker konnte 91 00:03:56,730 --> 00:04:00,990 angesehen werden als das, was wir werden Rufeingänge, die 92 00:04:00,990 --> 00:04:08,142 erhalten müssen gefüttert in das, was wir nennen Algorithmen, die dann Ergebnisse herauskommen. 93 00:04:08,142 --> 00:04:10,600 Mit anderen Worten, die gesamte Welt der Problemlösung I in Anspruch 94 00:04:10,600 --> 00:04:13,140 kann in destilliert werden Diese drei Bestandteile. 95 00:04:13,140 --> 00:04:14,450 Also, was ich meine durch die Eingänge? 96 00:04:14,450 --> 00:04:17,060 Eingänge ist genau das, was du bist um geben zu lösen. 97 00:04:17,060 --> 00:04:20,052 >> Zum Beispiel, hier ist eine alte Schule Problem. 98 00:04:20,052 --> 00:04:22,760 Wenn ich ein Telefonbuch haben hier und Ich will etwas hineinschauen, 99 00:04:22,760 --> 00:04:23,760 dies ist mein Eingang. 100 00:04:23,760 --> 00:04:26,260 Ich habe 1000 oder so Seiten in einem Telefonbuch. 101 00:04:26,260 --> 00:04:27,780 Dies ist der Eingang zu meinem Problem. 102 00:04:27,780 --> 00:04:31,507 Und ich möchte, etwas zu finden, wie Mike Smith, so einen Freund 103 00:04:31,507 --> 00:04:33,840 dessen Name und Nummer hoffentlich in diesem Adressbuch. 104 00:04:33,840 --> 00:04:36,430 >> Dies ist vor den Tagen der Zelle Telefone, so kann ich nicht nur danach suchen. 105 00:04:36,430 --> 00:04:38,540 Also muss ich es tun alt Schule und tatsächlich Suche 106 00:04:38,540 --> 00:04:41,331 diese Eingänge für einige Antwort. 107 00:04:41,331 --> 00:04:43,580 Und diese Antwort wird nur werden die Ausgangs genannt. 108 00:04:43,580 --> 00:04:44,871 So ist der Eingang ist das Telefonbuch. 109 00:04:44,871 --> 00:04:47,787 Der Algorithmus ist unabhängig von Satz Schritte, die ich verwenden Mike Smith zu finden. 110 00:04:47,787 --> 00:04:50,120 Und der Ausgang ist hoffentlich Mike Smith Telefonnummer. 111 00:04:50,120 --> 00:04:52,703 Und das wäre dann nur repräsentativ für die meisten problemlos 112 00:04:52,703 --> 00:04:55,210 In den mit sind Sie handed Eingänge und wollen Ausgaben zu erzeugen. 113 00:04:55,210 --> 00:04:59,459 >> Also, bevor wir den Prozess betrachten von denen wir das Problem lösen, 114 00:04:59,459 --> 00:05:01,250 Suche nach Mike Smith und so ähnlich, 115 00:05:01,250 --> 00:05:04,090 Lassen Sie uns die erste betrachten und die last-- Ein- und Ausgänge. 116 00:05:04,090 --> 00:05:08,060 Physikalisch natürlich die Eingangs hier eine ganze Reihe von Papier zusammengeklebt 117 00:05:08,060 --> 00:05:09,400 in Form eines Telefonbuchs. 118 00:05:09,400 --> 00:05:13,660 Aber Computer, von course-- Laptops und Desktop-PCs und sogar Telefone 119 00:05:13,660 --> 00:05:16,430 diese days-- diejenigen sind elektronische Geräte. 120 00:05:16,430 --> 00:05:20,920 >> Und am Ende des Tages, was die einzige Eingabe in einen Computer? 121 00:05:20,920 --> 00:05:23,299 Nun, es ist so etwas wie dieses Netzkabels. 122 00:05:23,299 --> 00:05:25,590 Ich stecken Sie es in die Wand, und Ich bekomme einen Fluss von Elektronen, 123 00:05:25,590 --> 00:05:27,048 was mir erlaubt, die Maschine laufen zu lassen. 124 00:05:27,048 --> 00:05:30,420 Oder vielleicht die Elektronen sind durch meine Batterie geschaffen. 125 00:05:30,420 --> 00:05:33,790 Aber am Ende des Tages, das ist geht das einzige, was in meinem Laptop. 126 00:05:33,790 --> 00:05:35,772 Und so viel interessanter Zeug ist letztlich 127 00:05:35,772 --> 00:05:37,480 herauskommen, ob mittels des Druckers 128 00:05:37,480 --> 00:05:40,320 oder der Bildschirm oder hör- oder dergleichen. 129 00:05:40,320 --> 00:05:45,320 >> Also, wenn alles, was wir haben, wie unsere grundlegende Eingabe in einen Computer 130 00:05:45,320 --> 00:05:49,160 Strom ist, so einfach gehen Elektronen in und oder zu verkleinern, 131 00:05:49,160 --> 00:05:54,465 und so wie können wir verwenden, dass die Eingabe tatsächlich Informationen repräsentieren? 132 00:05:54,465 --> 00:05:57,090 Mit anderen Worten, wie kommen wir von einer einfachen Stromfluss 133 00:05:57,090 --> 00:06:00,350 zu repräsentieren tatsächlichen Zahlen oder Buchstaben tatsächlichen 134 00:06:00,350 --> 00:06:03,620 oder tatsächlichen Bilder auf dem Bildschirm oder tatsächlichen Filme oder E-Mails 135 00:06:03,620 --> 00:06:05,690 oder eine beliebige Anzahl davon höhere Ebene Konzepte, 136 00:06:05,690 --> 00:06:07,680 wenn man will, dass bei der Ende des Tages irgendwie 137 00:06:07,680 --> 00:06:11,950 Um das in dieser gespeicherte elektronische mechanische Vorrichtung 138 00:06:11,950 --> 00:06:16,260 Verwendung nur jene einfachen ingredients-- Elektronen in und aus? 139 00:06:16,260 --> 00:06:19,530 >> So würde es scheinen, dass, in der einfachsten Form, 140 00:06:19,530 --> 00:06:23,260 die einzige Art von Staaten Ich habe in meiner Welt, so 141 00:06:23,260 --> 00:06:25,350 zu speak-- Bedingungen in meinem world-- ist entweder 142 00:06:25,350 --> 00:06:33,020 Ich habe Elektronen fließen, Strom fließt, oder ich nicht-- so weiter, aus. 143 00:06:33,020 --> 00:06:35,850 Und lassen Sie uns formalisieren ein und aus, als ein Informatiker könnte, 144 00:06:35,850 --> 00:06:37,255 mit nur 1 und 0. 145 00:06:37,255 --> 00:06:39,880 Lassen Sie uns beschreiben nur einige willkürlich aber konsequente Nummer zu. 146 00:06:39,880 --> 00:06:41,970 1 bedeutet, auf, 0 bedeutet, ab. 147 00:06:41,970 --> 00:06:45,427 Oder Sie könnten auch dies als wahre Mittel auf und falsche Mittel. 148 00:06:45,427 --> 00:06:47,510 Sie könnten auch schwarz tun und weiß oder rot und blau. 149 00:06:47,510 --> 00:06:48,759 Sie müssen nur zwei Deskriptoren. 150 00:06:48,759 --> 00:06:52,240 Und ein Informatiker würde im Allgemeinen nur 0 und 1 verwenden. 151 00:06:52,240 --> 00:06:58,980 >> Also, wenn das der Fall ist, ist meine einzige Alphabet bestehend aus der ist 0 und 1 ist, wie 152 00:06:58,980 --> 00:07:03,360 konnte ich, um möglicherweise die Zahl gerade 2 in einem Computer, geschweige denn die Nummer 3 153 00:07:03,360 --> 00:07:06,140 oder ein Buchstabe des Alphabets oder ein Bild oder einen Film ansehen? 154 00:07:06,140 --> 00:07:08,910 Wie können wir eine Art Bootstrap uns von diesem Grundprinzip 155 00:07:08,910 --> 00:07:12,080 von 0 und 1 ist und tatsächlich repräsentieren etwas mehr interessant? 156 00:07:12,080 --> 00:07:14,430 >> Nun, lassen Sie uns diese Frage stellen in der Warteschleife für einen Moment 157 00:07:14,430 --> 00:07:17,520 und betrachten etwas hoffentlich vertraut, 158 00:07:17,520 --> 00:07:21,150 auch wenn Sie nicht wirklich haben darüber nachgedacht, es im Detail für 10, 20, 30, 40, 50 159 00:07:21,150 --> 00:07:22,520 mehr Jahren. 160 00:07:22,520 --> 00:07:24,780 Das ist was? 161 00:07:24,780 --> 00:07:28,050 Wie würden Sie das erklären? 162 00:07:28,050 --> 00:07:30,770 Kein Trick Frage. 163 00:07:30,770 --> 00:07:32,950 Eine Zahl, aber was ist es? 164 00:07:32,950 --> 00:07:34,842 1, 2, 3 oder 123. 165 00:07:34,842 --> 00:07:37,800 Und ich mochte, wie Sie 1 sagte, 2, 3, denn das ist ein Weg, es zu sehen. 166 00:07:37,800 --> 00:07:39,870 1, 2, 3, ist es eine Sequenz von drei Symbolen. 167 00:07:39,870 --> 00:07:42,005 Es ist Bilder, die wir jetzt haben Worte für. 168 00:07:42,005 --> 00:07:44,880 Und wenn Sie eine Art lesen sie alle ein typischer Mensch in Englisch zusammen, 169 00:07:44,880 --> 00:07:46,600 würde sagen, 123. 170 00:07:46,600 --> 00:07:48,350 Und das ist so eine Art höhere Level-Konzept, 171 00:07:48,350 --> 00:07:50,340 fühlt sich wie eine ziemlich große Zahl. 172 00:07:50,340 --> 00:07:51,490 >> Aber wie kommen wir dorthin? 173 00:07:51,490 --> 00:07:54,640 Nun, es könnte eine Weile dauern, da Sie haben wie diese darüber nachgedacht, 174 00:07:54,640 --> 00:07:56,680 aber zurück in mein Tag, ich Art erfuhr davon 175 00:07:56,680 --> 00:08:01,030 wie die Spalte 1 die 10er Spalte und die Spalten 100. 176 00:08:01,030 --> 00:08:06,400 So wie Lakisa sagt, es ist 1, 2, 3, aber es ist auch 123. 177 00:08:06,400 --> 00:08:08,700 Aber wie kommen wir aus die ersteren zum letzteren? 178 00:08:08,700 --> 00:08:12,340 >> Nun, man würde in der Regel tun in die 100-Säule, habe ich eine 1. 179 00:08:12,340 --> 00:08:14,794 Also das ist wie ein 100-mal zu sagen. 180 00:08:14,794 --> 00:08:16,210 Und dann in 10-Säule, habe ich 2. 181 00:08:16,210 --> 00:08:18,464 Also das ist, wie 2 10 mal sagen. 182 00:08:18,464 --> 00:08:19,630 In der Spalte 1, habe ich 3. 183 00:08:19,630 --> 00:08:21,720 Also das ist, wie wenn man sagt 1 mal 3. 184 00:08:21,720 --> 00:08:24,290 >> Und wenn ich diese Dinge hinzufügen zusammen, dies natürlich, 185 00:08:24,290 --> 00:08:27,470 100 plus 10 plus 3. 186 00:08:27,470 --> 00:08:31,750 Und oh, das ist, warum ich das bekommen höhere Ebene Vorstellung von 123. 187 00:08:31,750 --> 00:08:37,220 Es ist nur grundlegende mathematische, wobei diese Symbole haben Gewichte zu ihnen, wenn Sie 188 00:08:37,220 --> 00:08:39,620 wird, Platzhalter oder Spaltenwerte. 189 00:08:39,620 --> 00:08:42,090 Und wenn ich multiplizieren alles out, ich diese Nummer bekommen. 190 00:08:42,090 --> 00:08:47,840 >> Wie viele von Ihnen wissen, wie man spricht binary-- 0-en und 1's-- wie ein Computer? 191 00:08:47,840 --> 00:08:50,410 OK, perfekt, niemand, oder keiner von euch denken, was Sie tun. 192 00:08:50,410 --> 00:08:52,550 Aber ich würde Sie behaupten eigentlich wissen dies bereits. 193 00:08:52,550 --> 00:08:55,330 Wir brauchen nur eine Art zu zwicken unser mentales Modell ein wenig. 194 00:08:55,330 --> 00:08:57,250 Aber das Verfahren ist genau das gleiche. 195 00:08:57,250 --> 00:09:01,460 >> Lassen Sie mich noch einen verlassen da oben und Statt diese ziehen für einen Moment nach unten. 196 00:09:01,460 --> 00:09:05,060 In der Welt der Computer, wir haben nur 0 und 1 ist. 197 00:09:05,060 --> 00:09:07,240 Und so ist die Sache, die sich ändern, was ist? 198 00:09:07,240 --> 00:09:10,920 Nun, in meiner menschlichen Welt, die Dezimalsystem, Dezember Bedeutung 10, 199 00:09:10,920 --> 00:09:12,740 Ich habe, wie viele Stellen zu meiner Verfügung? 200 00:09:12,740 --> 00:09:15,270 201 00:09:15,270 --> 00:09:16,540 10, nicht wahr? 202 00:09:16,540 --> 00:09:17,880 0 bis 9, natürlich. 203 00:09:17,880 --> 00:09:21,210 >> Und das ist, warum wir das haben 10 Platz und den Platz des 100. 204 00:09:21,210 --> 00:09:22,380 Wo kommt das her? 205 00:09:22,380 --> 00:09:24,430 Nun, das ist 10, die Macht der 0. 206 00:09:24,430 --> 00:09:28,440 Dies ist 10 an die Leistung von 1, 10 auf die Potenz von 2 und so weiter. 207 00:09:28,440 --> 00:09:32,110 Sie halten nur Ihre Spalten multipliziert von 10, Anfahren mit nur 1 208 00:09:32,110 --> 00:09:33,700 in der ganz rechts hier. 209 00:09:33,700 --> 00:09:35,490 >> So in der Welt der wenn Sie Computer, nur 210 00:09:35,490 --> 00:09:39,600 haben binary-- bi Bedeutung 2-- oder 0 und 1 ist, wir haben nur 211 00:09:39,600 --> 00:09:42,420 wirklich ändern müssen die Basis des math. 212 00:09:42,420 --> 00:09:46,410 Also mit anderen Worten in, jetzt werden wir nur haben die Spalte 1 und the-- 213 00:09:46,410 --> 00:09:51,270 wo ist dies die 2 Kolumne going--, die 4-Säule, und vielleicht darüber hinaus. 214 00:09:51,270 --> 00:09:52,250 Warum das? 215 00:09:52,250 --> 00:09:55,650 Nun, das ist 2 0-te Potenz. 216 00:09:55,650 --> 00:09:57,270 Dies ist 2 der 1. 217 00:09:57,270 --> 00:09:59,610 Dies ist 2 auf die 2, und so weiter. 218 00:09:59,610 --> 00:10:04,910 >> Während also hier, haben wir 1, 10 ist, 100 von 1.000 der 10.000 der 100.000 ist, 1 219 00:10:04,910 --> 00:10:10,560 Millionen, und so weiter, hier haben wir 1, 2, 4, 8, 16, 32, 64. 220 00:10:10,560 --> 00:10:13,950 Sie halten nur durch 2 multipliziert, halten, anstatt um 10 multipliziert wird. 221 00:10:13,950 --> 00:10:16,780 So, jetzt, wenn das Ziel an Hand ist vertreten 222 00:10:16,780 --> 00:10:20,240 mit Zahlen nur 0 und 1 ist, lassen Sie uns überlegen, wie wir dorthin kommen. 223 00:10:20,240 --> 00:10:26,540 >> Dies ist natürlich, ist das Muster 0 0 0, aber was Zahl konzeptuell 224 00:10:26,540 --> 00:10:27,490 stellt es dar? 225 00:10:27,490 --> 00:10:35,430 Nun, 4 mal 0 plus 2 mal 0 Plus 1 mal 0, lassen Sie uns diese zusammen fügen. 226 00:10:35,430 --> 00:10:40,030 4 mal 0 ist natürlich, 0, plus 2 0 mal ist natürlich, 0 plus 1 mal 0 227 00:10:40,030 --> 00:10:40,850 natürlich ist,, 0. 228 00:10:40,850 --> 00:10:44,910 So ah, dies stellt die Zahl, die wir Menschen kennen als 0. 229 00:10:44,910 --> 00:10:47,810 >> Nun, lassen Sie uns sehr schnell schnell nach vorne. 230 00:10:47,810 --> 00:10:53,600 Wenn ich stattdessen nicht vertreten 0 0 0, aber wir tun 1 0 1, 231 00:10:53,600 --> 00:10:57,010 das auch sein mag, wie Lakisa, früher, wäre es nur 1 0 1 auszusprechen. 232 00:10:57,010 --> 00:11:01,020 Aber jetzt, wie nehmen wir es auf die höhere Ebene, um die Zahl, die wir Menschen kennen könnte? 233 00:11:01,020 --> 00:11:04,220 Also, was ist diese Zahl? 234 00:11:04,220 --> 00:11:06,060 Es ist 5, die Zahl, die wir als 5 kennen. 235 00:11:06,060 --> 00:11:06,870 >> Nun, warum ist das so? 236 00:11:06,870 --> 00:11:09,620 Nun, wir können wirklich Art Spaziergang durch methodisch 237 00:11:09,620 --> 00:11:14,880 4 mal 1, 2 mal 0, 1 mal 1. 238 00:11:14,880 --> 00:11:19,880 Fügen Sie zusammen die, so dies ist 4 plus 0 plus 1. 239 00:11:19,880 --> 00:11:21,577 Und das ist, in der Tat, 5. 240 00:11:21,577 --> 00:11:24,660 So ist es immer ein wenig langweilig jetzt dabei das arithmetische wieder und wieder. 241 00:11:24,660 --> 00:11:26,300 Aber das Verfahren ist genau das gleiche. 242 00:11:26,300 --> 00:11:28,380 >> Das einzige, was hat in unsere Welt verändert 243 00:11:28,380 --> 00:11:32,740 ist, dass unsere Spalten 1, 2, 4, 8, 16 sind, usw., anstelle von 1, 10, 100, 244 00:11:32,740 --> 00:11:33,740 1,000. 245 00:11:33,740 --> 00:11:40,000 Und das ist nur, weil unser Alphabet hat geschrumpft von 0 bis 9 auf nur 0 bis 1 ist. 246 00:11:40,000 --> 00:11:50,851 >> So wie hier ein wenig Quiz, wie würde Sie repräsentieren die Anzahl 7 binär? 247 00:11:50,851 --> 00:11:51,350 0? 248 00:11:51,350 --> 00:11:53,490 Nun, 0, meinst du 0 0 0? 249 00:11:53,490 --> 00:11:58,140 250 00:11:58,140 --> 00:11:59,693 Sag es noch einmal, Karina. 251 00:11:59,693 --> 00:12:03,010 252 00:12:03,010 --> 00:12:03,550 Perfekt. 253 00:12:03,550 --> 00:12:04,370 Warum das? 254 00:12:04,370 --> 00:12:08,530 Es ist effektiv 4 plus 2 plus 1. 255 00:12:08,530 --> 00:12:09,580 So gut. 256 00:12:09,580 --> 00:12:14,364 >> Wie stellen wir uns ein wenig another-- wie etwa die Nummer 2? 257 00:12:14,364 --> 00:12:18,360 258 00:12:18,360 --> 00:12:20,690 Close-up, aber rückwärts. 259 00:12:20,690 --> 00:12:21,660 Also, was ist das? 260 00:12:21,660 --> 00:12:26,290 4 plus 1, so dass 5 wieder ist. 261 00:12:26,290 --> 00:12:28,310 >> So what's-- Es tut mir leid, 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 2 würde, weil wieder, auch wenn es irgendwie nicht von dich nicht herausspringen, 264 00:12:34,762 --> 00:12:35,470 nur die Mathematik. 265 00:12:35,470 --> 00:12:40,390 4 mal 0, 0, 2 Mal 1 2, 1 mal 0 0. 266 00:12:40,390 --> 00:12:42,830 Das also ist die Zahl, die wir als 2 kennen. 267 00:12:42,830 --> 00:12:44,030 >> Wie über die Nummer 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 Gut. 271 00:12:53,330 --> 00:12:56,130 Also brauchen wir eine andere Art von Platzhalter. 272 00:12:56,130 --> 00:12:59,570 Wir brauchen 1 0 0 0. 273 00:12:59,570 --> 00:13:02,280 Und das ist wahr, von unserer Art der alten Schule Dezimalsystem. 274 00:13:02,280 --> 00:13:05,280 Wie stellen Sie die Nummer 1000? 275 00:13:05,280 --> 00:13:08,480 >> Nun, Sie würden zu sein scheinen Art in einer schwierigen Situation, 276 00:13:08,480 --> 00:13:10,390 wenn fragen Sie vertreten die Zahl 1000, 277 00:13:10,390 --> 00:13:14,960 denn selbst wenn Sie geben sich wie 9 davon, 9 von diesen, 0 davon, 278 00:13:14,960 --> 00:13:18,730 Das ist die größte Zahl, die Sie haben Sie nicht ganz bis 1000 erhalten. 279 00:13:18,730 --> 00:13:26,920 Wenn Sie also 1000, müssen Sie nur eine andere Position, so dass Sie 1 tun 0 0 0, 280 00:13:26,920 --> 00:13:29,460 ergo die Zahl 1000. 281 00:13:29,460 --> 00:13:34,200 >> Nun, lassen Sie uns die Landkarte Art konzeptionelle Diskussion zurück zur Hardware, 282 00:13:34,200 --> 00:13:37,470 wobei wiederum war die Eingabe nur dieses kleine Stromkabel, Strom 283 00:13:37,470 --> 00:13:39,300 Kommen in und fließt aus. 284 00:13:39,300 --> 00:13:44,740 Und so, dass um von hier abgebildet dort, na ja, was brauchen wir wirklich? 285 00:13:44,740 --> 00:13:49,460 Nun, können Sie denken, innerhalb eines des Seins Computer, eine ganze Reihe von Glühbirnen, 286 00:13:49,460 --> 00:13:50,450 wenn du möchtest. 287 00:13:50,450 --> 00:13:52,040 Sie sind wirklich Transistoren genannt. 288 00:13:52,040 --> 00:13:55,121 Und Transistoren sind nur die Schalter das kann entweder ein- oder ausgeschaltet sein. 289 00:13:55,121 --> 00:13:56,870 So kann man von einem denken Transistor, der auf ist 290 00:13:56,870 --> 00:14:00,730 wird damit Strom zu fließen, und ein Transistor, der als Stopp ist ausgeschaltet 291 00:14:00,730 --> 00:14:02,170 Strom fließt. 292 00:14:02,170 --> 00:14:04,130 Und anstatt nehmen über die Lichter hier, 293 00:14:04,130 --> 00:14:06,450 warum ich diese Art nicht tun der neuen Schule Stil. 294 00:14:06,450 --> 00:14:11,360 So könnte dies ein 1, eine Taschenlampe sein Sein auf, nur kaum though. 295 00:14:11,360 --> 00:14:14,050 Und dies könnte eine 0, und jetzt weg ist es. 296 00:14:14,050 --> 00:14:18,277 >> Also mit dieser physischen Gerät, I kann nun das binäre System darstellen. 297 00:14:18,277 --> 00:14:19,235 Ich brauche nur zwei Zustände. 298 00:14:19,235 --> 00:14:21,660 Es spielt keine Rolle, was Farbe es ist, oder was es ist. 299 00:14:21,660 --> 00:14:25,920 Alles, was zählt ist, dass ich ein Zustand auf und ein anderer Zustand ab. 300 00:14:25,920 --> 00:14:30,605 Also mit meinem Handy hier, wie kann ich stellen die Zahl, die wir als 0 wissen? 301 00:14:30,605 --> 00:14:34,490 302 00:14:34,490 --> 00:14:38,550 Oder äquivalent ausgedrückt, was Zahl Ich vertrete jetzt? 303 00:14:38,550 --> 00:14:39,810 0, da das Gerät ausgeschaltet ist. 304 00:14:39,810 --> 00:14:41,560 >> Und wenn ich das tun? 305 00:14:41,560 --> 00:14:43,583 Und nun, wie ich tun repräsentieren die Zahl 2? 306 00:14:43,583 --> 00:14:46,380 307 00:14:46,380 --> 00:14:50,930 Kann ich Ihr Telefon ausleihen hier, wie wir gestern getan hat? 308 00:14:50,930 --> 00:14:58,490 Also mal sehen, also, wenn ich will darstellen die Zahl 2 ist dies die Zahl 2? 309 00:14:58,490 --> 00:14:59,050 Nein. 310 00:14:59,050 --> 00:15:02,250 Welche Nummer bin ich aus Versehen repräsentiert hier? 311 00:15:02,250 --> 00:15:03,550 Dies ist eigentlich die Zahl 3 ist. 312 00:15:03,550 --> 00:15:05,008 >> Also was man will ich abschalten? 313 00:15:05,008 --> 00:15:09,634 Das schwarze Telefon oder-- gut, wenn they're-- Schwarz Telefon oder das weiße Handy? 314 00:15:09,634 --> 00:15:10,300 Das weiße Telefon. 315 00:15:10,300 --> 00:15:17,020 Also, wenn ich schalten Sie diese aus und wir Linie es hier oben haben wir ein 1 316 00:15:17,020 --> 00:15:19,487 an der Stelle des 2 und a 0 an der Stelle des 1. 317 00:15:19,487 --> 00:15:21,195 Und so bin ich jetzt repräsentieren die Zahl 2. 318 00:15:21,195 --> 00:15:24,680 Und dies natürlich wäre die Zahl 3, denn jetzt diese Lichter beide 319 00:15:24,680 --> 00:15:25,350 sind auf. 320 00:15:25,350 --> 00:15:27,480 >> Und ich werde hier aufhören, aber es steht zu vermuten, 321 00:15:27,480 --> 00:15:31,100 wenn ich möchte, dass die zu vertreten Nummer 4 oder 8 oder höher, 322 00:15:31,100 --> 00:15:32,529 Ich werde mehr Telefone benötigen. 323 00:15:32,529 --> 00:15:33,820 Aber das ist alles, was los ist. 324 00:15:33,820 --> 00:15:37,800 Also, wenn Sie jemals gehört, dass innerhalb von a-- danken Sie-- Computer 325 00:15:37,800 --> 00:15:42,269 Millionen von Transistoren ist, das ist nur Millionen von winzig kleinen Schalter. 326 00:15:42,269 --> 00:15:44,310 Und sie sind nicht Licht Lampen, die ein- und ausgeschaltet werden, 327 00:15:44,310 --> 00:15:48,340 aber sie erlauben entweder Strom fließen sie irgendwo oder zu stoppen. 328 00:15:48,340 --> 00:15:52,140 Und so gibt es Ihre zwei states-- ein- oder auszuschalten, ein- oder ausgeschaltet. 329 00:15:52,140 --> 00:15:55,730 >> So würden wir scheinen jetzt diese Fähigkeit zu haben, 330 00:15:55,730 --> 00:16:00,590 dieses Konzept darzustellen, wir würden in der tatsächlichen Hardware mögen. 331 00:16:00,590 --> 00:16:05,520 Aber alles, was wir jetzt haben, ist die Fähigkeit, darstellen Zahlen es scheint. 332 00:16:05,520 --> 00:16:08,580 Also, wie gehen wir über das Darstellen Buchstaben des Alphabets, die 333 00:16:08,580 --> 00:16:12,310 fühlt sich an wie die nächste Art von Funktion, die Sie möchte zu einem modernen Computer hinzufügen 334 00:16:12,310 --> 00:16:14,280 sobald Sie Zahlen? 335 00:16:14,280 --> 00:16:16,930 >> Und in der Tat, wenn Sie darüber nachdenken, es, historisch gesehen, Computer 336 00:16:16,930 --> 00:16:19,426 wurden eingeführt, wirklich zu dienen B. Rechner numerisch. 337 00:16:19,426 --> 00:16:21,300 Aber natürlich, diese Tage, sie noch viel mehr. 338 00:16:21,300 --> 00:16:23,799 Selbst wenn sie booten, Sie sehen in der Regel ein oder mehrere Wörter. 339 00:16:23,799 --> 00:16:27,420 So wie stellen Sie Wörter, wenn alles, was Sie haben, ist, wieder, 340 00:16:27,420 --> 00:16:31,054 Strom am Ende der Tag oder äquivalent 0en und 1en? 341 00:16:31,054 --> 00:16:34,430 342 00:16:34,430 --> 00:16:35,690 >> Ja. 343 00:16:35,690 --> 00:16:38,320 Ja, ich meine, wir Art tat dies gestern in irgendeiner Form, 344 00:16:38,320 --> 00:16:40,200 wo an einem gewissen Punkt, Ich glaube, ich willkürlich 345 00:16:40,200 --> 00:16:46,741 sagte, dass, wenn wir die darstellen wollen Buchstaben A, könnten wir nennen nur, dass eine 1. 346 00:16:46,741 --> 00:16:49,990 Es wurde im Rahmen der Kryptographie, wo wir brauchten nur eine Art von Code, 347 00:16:49,990 --> 00:16:51,160 eine Art von Mapping. 348 00:16:51,160 --> 00:16:56,680 >> Vielleicht wird A als dargestellt werden 1 ist, und B wird als 2 dargestellt werden, 349 00:16:56,680 --> 00:17:01,560 und Z sind vertreten als 26, zum Beispiel. 350 00:17:01,560 --> 00:17:07,430 Und dann ist die einzige Einschränkung ist, dass, wenn ich bin gehen Briefe in meiner E-Mails verschlüsseln 351 00:17:07,430 --> 00:17:10,430 oder in meinem Textnachrichten als Zahlen, Sie alle 352 00:17:10,430 --> 00:17:12,640 zustimmen müssen die zu verwenden gleichen Satz von Konventionen. 353 00:17:12,640 --> 00:17:14,619 Und in der Tat die Welt getan hat, genau das. 354 00:17:14,619 --> 00:17:18,040 >> Es ist ein System in der Welt genannt ASCII, American Standard 355 00:17:18,040 --> 00:17:21,640 Code für Informationsaustausch, das ist einfach eine Entscheidung einigen Jahren 356 00:17:21,640 --> 00:17:25,720 vor, dass die Menschen gemacht, dass entschieden, dass A gleich gehen, nicht 357 00:17:25,720 --> 00:17:32,260 1, 2 und 26, und so ist es ein forth-- wenig different-- aber 65, 66, 67. 358 00:17:32,260 --> 00:17:34,010 Und ich werde nach oben ziehen ein Grafik in nur einem Augenblick. 359 00:17:34,010 --> 00:17:34,580 Aber es ist willkürlich. 360 00:17:34,580 --> 00:17:36,329 Aber es spielt keine Rolle, dass es willkürlich. 361 00:17:36,329 --> 00:17:38,620 Die Welt muss nur konsequent sein. 362 00:17:38,620 --> 00:17:40,540 >> Nun, in jüngerer Zeit, es ist etwas schicker 363 00:17:40,540 --> 00:17:45,430 genannt Unicode, weil die Art der Welt realisierter nach Computern zu erfinden, 364 00:17:45,430 --> 00:17:50,977 dass es mehr als gut 256 Symbole in der Welt 365 00:17:50,977 --> 00:17:53,560 dass wir wollen darstellen könnte, vor allem, wenn Sie einführen 366 00:17:53,560 --> 00:17:58,420 Asiatische Sprachen und andere Symbologien dass brauchen mehr Ausdruckskraft, als Sie 367 00:17:58,420 --> 00:18:02,150 kann in der frühesten Version passen von Dieser Code, der ASCII genannt wurde. 368 00:18:02,150 --> 00:18:05,250 Also eigentlich Unicode erlaubt Sie mehr 0-en und 2 zu verwenden. 369 00:18:05,250 --> 00:18:08,830 Insbesondere halten Sie das hören Wort Bytes in der Gesellschaft und auch nur 370 00:18:08,830 --> 00:18:09,400 gestern. 371 00:18:09,400 --> 00:18:12,040 Und ein Byte ist, was wieder? 372 00:18:12,040 --> 00:18:14,840 >> Was ist ein Byte? 373 00:18:14,840 --> 00:18:15,700 Es ist nur 8 Bit. 374 00:18:15,700 --> 00:18:17,150 Also, was bedeutet das eigentlich? 375 00:18:17,150 --> 00:18:22,400 Nun, das bedeutet, früher, als wir reden über binäre und ich wurde mit 376 00:18:22,400 --> 00:18:28,010 willkürlich drei Bits, wenn wir waren reden über binary-- den Platz des 1, 377 00:18:28,010 --> 00:18:33,600 Die 2 Platz, und das 4 des place-- gut, ein Byte bedeutet nur, dass Sie sprechen 378 00:18:33,600 --> 00:18:38,730 nicht in Einheiten von drei, sondern vier, fünf, sechs, sieben acht, 379 00:18:38,730 --> 00:18:46,910 das gibt uns 8 Platz, 16 der 32 der 64 ist und 128 Jahren. 380 00:18:46,910 --> 00:18:50,010 >> Mit anderen Worten, ist ein bisschen nicht alle dass nützliche eine Maßeinheit, 381 00:18:50,010 --> 00:18:53,132 denn es ist wie ein winzig kleines Stück Information, ein oder aus. 382 00:18:53,132 --> 00:18:54,840 So vor einigen Jahren, die Welt gerade beschlossen 383 00:18:54,840 --> 00:18:59,060 es ist etwas bequemer in sprechen Bedingungen Bytes acht Dinge gleichzeitig. 384 00:18:59,060 --> 00:19:01,670 Und so also war geboren der Begriff eines Byte. 385 00:19:01,670 --> 00:19:03,640 Und so haben wir acht Bits hier. 386 00:19:03,640 --> 00:19:06,810 >> Und es erweist sich auch für ähnliche Gründe, entschied sich die Welt Jahre 387 00:19:06,810 --> 00:19:12,439 dass bis vor ein ASCII-Buchstaben darstellen, Sie gehen Einheiten von 8 Bits zu verwenden. 388 00:19:12,439 --> 00:19:14,230 Also selbst wenn Sie dies nicht tun müssen, dass viele, du bist 389 00:19:14,230 --> 00:19:18,130 immer gehen 8 Bits zu verwenden, um stellen einen Buchstaben des Alphabets. 390 00:19:18,130 --> 00:19:20,950 Und dies ist praktisch, wenn Sie denn dann 391 00:19:20,950 --> 00:19:28,720 erhalten eine Nachricht, die eine 0 0 0 1 1 hat 1 1 0 durch einen anderen 1 1 1 0 1 0 gefolgt 392 00:19:28,720 --> 00:19:33,320 1 0, so dass, wenn Sie erhalten 16 Bits, kann die Welt nur 393 00:19:33,320 --> 00:19:37,460 gehen davon aus, dass die ersten 8 einen Buchstaben sind und die zweite 8 sind ein weiterer Brief. 394 00:19:37,460 --> 00:19:39,240 >> Spielt keine Rolle, wie viele es sind. 395 00:19:39,240 --> 00:19:41,460 Es zählt nur, dass wir sind alle im Einklang 396 00:19:41,460 --> 00:19:42,950 wenn wir diese Bits sind zu interpretieren. 397 00:19:42,950 --> 00:19:44,377 Und das war nur zufällig. 398 00:19:44,377 --> 00:19:47,210 Das bedeutet etwas, aber ich tat es nicht wirklich darüber nachdenken, was es bedeutet. 399 00:19:47,210 --> 00:19:49,620 >> So ist es eine kleine Notlüge. 400 00:19:49,620 --> 00:19:51,990 Ursprünglich ASCII tatsächlich nur 7 Bits verwendet. 401 00:19:51,990 --> 00:19:54,180 Und das achte Bit ist, erweiterte ASCII genannt. 402 00:19:54,180 --> 00:19:56,290 Aber der Punkt ist schließlich das gleiche. 403 00:19:56,290 --> 00:19:58,850 Die Welt im Allgemeinen standardisiert auf 8 Bit. 404 00:19:58,850 --> 00:20:04,290 >> So würde dies scheint ein wenig zu sein, Begrenzung, weil ich nur kann 405 00:20:04,290 --> 00:20:07,970 repräsentieren Kapital A, Kapital B durch Kapital Z. 406 00:20:07,970 --> 00:20:10,940 Aber in der Tat nicht, wenn ich gehe zu-- Es gibt eine Menge von Ressourcen 407 00:20:10,940 --> 00:20:13,695 online, zum Beispiel, asciitable.com, diese 408 00:20:13,695 --> 00:20:16,310 geht ein wenig zu sein, überwältigend auf den ersten. 409 00:20:16,310 --> 00:20:18,910 Aber ich werde darauf hinweisen, was ist hier wichtig. 410 00:20:18,910 --> 00:20:24,090 >> Dies geschieht nur zu be-- und ich werde walk-- wollen wir mal sehen, ob ich hier gehen. 411 00:20:24,090 --> 00:20:27,990 Hier, im Dezimalsystem Spalte die Nummer 65. 412 00:20:27,990 --> 00:20:32,201 Und auf der rechten Spalte Brief Zeichen, Chr, ist der Buchstabe A. 413 00:20:32,201 --> 00:20:34,450 Und Sie können ignorieren, denn jetzt, alles in der Mitte. 414 00:20:34,450 --> 00:20:36,769 Dies ist hexadezimal, Oktal, und ein HTML-Code. 415 00:20:36,769 --> 00:20:39,810 Zu dieser Seite ist nur versuchen zu werfen eine Vielzahl von Informationen an Sie sofort. 416 00:20:39,810 --> 00:20:42,970 Aber alles, wir kümmern uns um die Dezimalzahl Spalte und die Zeichenspalte. 417 00:20:42,970 --> 00:20:46,190 >> So nach dieser Logik, was ist die Zahl, dass die Welt 418 00:20:46,190 --> 00:20:50,510 hat repräsentiert entschied sich für eine kleine a? 419 00:20:50,510 --> 00:20:52,230 Ja, 97. 420 00:20:52,230 --> 00:20:55,850 Und gerade zu verwirren möglicherweise leicht, 421 00:20:55,850 --> 00:21:03,715 welche Zahl hat sich entschieden, die Welt darstellen würde die Nummer 1? 422 00:21:03,715 --> 00:21:06,900 423 00:21:06,900 --> 00:21:10,910 Richtig, weil wir-- 49, wie es scheint hier unten in der unteren linken. 424 00:21:10,910 --> 00:21:12,320 >> Nun, was meine ich damit? 425 00:21:12,320 --> 00:21:14,830 So stellt sich heraus, dass in Computersystemen, 426 00:21:14,830 --> 00:21:16,840 es ist im allgemeinen ein grundlegender Unterschied 427 00:21:16,840 --> 00:21:19,920 zwischen einer Zahl und ein Zeichen. 428 00:21:19,920 --> 00:21:22,330 Eine Zahl ist das, was wir gelernt aufwachsen, wenn 429 00:21:22,330 --> 00:21:23,830 wir waren super in der Grundschule jung. 430 00:21:23,830 --> 00:21:25,110 Es ist Dinge, die Sie mit zu zählen. 431 00:21:25,110 --> 00:21:30,220 Aber ein Charakter ist nur eine Form, eine Glyphe, sozusagen auf dem Bildschirm. 432 00:21:30,220 --> 00:21:36,200 >> Nun, wir Menschen eine Art sehen etwas, das wie folgt aussieht. 433 00:21:36,200 --> 00:21:39,060 Und wir sagen, oh, das ist die Nummer 2. 434 00:21:39,060 --> 00:21:44,999 Aber nein, das ist nur ein Symbol, das aussieht wie das, was wir als Nummer 2 kennen. 435 00:21:44,999 --> 00:21:46,790 Und so gibt es diese grundlegende Unterscheidung 436 00:21:46,790 --> 00:21:50,340 zwischen den tatsächlichen Zahlen und Zeichen. 437 00:21:50,340 --> 00:21:52,130 Dies ist eine Zahl. 438 00:21:52,130 --> 00:21:54,420 Aber in der Regel, in der Rahmen eines Computers, 439 00:21:54,420 --> 00:21:56,809 wenn Sie stattdessen sehen so etwas wie dieses quoted-- 440 00:21:56,809 --> 00:21:58,600 und man nicht immer müssen sehen, es zitiert, 441 00:21:58,600 --> 00:22:01,474 aber aus Gründen der discussion-- wenn sehen Sie Anführungszeichen um die Zahl, 442 00:22:01,474 --> 00:22:02,730 Dies ist heute ein Zeichen. 443 00:22:02,730 --> 00:22:06,330 Also diese Nummer 2 unter die Haube innerhalb eines Computer 444 00:22:06,330 --> 00:22:12,220 würde mit einem Muster dargestellt werden, von Bits, die die Anzahl repräsentieren 445 00:22:12,220 --> 00:22:14,850 50 nach Online-Diagramm. 446 00:22:14,850 --> 00:22:18,300 >> Wenn jedoch ein Computer nur sieht diese, dieses 447 00:22:18,300 --> 00:22:24,580 würde mit der dargestellt werden Muster von Bit 0 0 0 0 0 0 1 0. 448 00:22:24,580 --> 00:22:29,595 dieses Zeichen würde der Erwägung, werden tatsächlich as-- und jetzt vertreten, 449 00:22:29,595 --> 00:22:34,710 Ich habe ein wenig harder-- so daran zu denken Charakter würde mit 0 dargestellt werden 450 00:22:34,710 --> 00:22:39,080 0 1-- was brauche ich hier? 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 Wie habe ich das gemacht? 453 00:22:45,480 --> 00:22:49,580 Gut, das ist die Nummer 50, wenn Sie multiplizieren sie sich diese Spalten verwenden, 454 00:22:49,580 --> 00:22:53,530 dies ist die Zahl 2, und so deshalb gibt es diese Dichotomie ist. 455 00:22:53,530 --> 00:22:55,850 >> Und das ist nur ein Teaser jetzt Funktionen 456 00:22:55,850 --> 00:22:59,710 die existieren in Programmiersprachen dass wir heute kurz später berühren werde. 457 00:22:59,710 --> 00:23:01,950 In Programmiersprachen, Sie haben in der Regel, 458 00:23:01,950 --> 00:23:04,495 aber nicht immer, Dinge verschiedene Datentypen nennen. 459 00:23:04,495 --> 00:23:06,870 In anderen Worten, ein programmer-- wenn er oder sie schreibt, 460 00:23:06,870 --> 00:23:11,150 ein Programmierer wird in dem, was zu entscheiden, Format seine Daten zu speichern. 461 00:23:11,150 --> 00:23:14,120 Sie können entweder Daten speichern als rohen Zahlen, wie die Nummer 2. 462 00:23:14,120 --> 00:23:17,940 Oder Sie können sie als Strings speichern, oder Sequenzen von Zeichen, 463 00:23:17,940 --> 00:23:21,550 dass Sie in der Regel zum Ausdruck bringen würde, mit Zitate in Ihrer Programmiersprache. 464 00:23:21,550 --> 00:23:25,230 >> Sie können Dinge called-- Ich werde sie vereinfachend und rufen 465 00:23:25,230 --> 00:23:28,870 echte numbers-- so Zahlen, keine ganzen Zahlen wie die Zahl sind 2, 466 00:23:28,870 --> 00:23:31,310 aber Zahlen wie 4,56. 467 00:23:31,310 --> 00:23:33,490 So reelle Zahlen können auch Dezimalstellen haben, 468 00:23:33,490 --> 00:23:36,340 so das ist eine andere grundlegende Stück von Daten in einem Computer. 469 00:23:36,340 --> 00:23:41,920 Und dann können Sie auch haben andere Datentypen immer noch. 470 00:23:41,920 --> 00:23:45,810 Also das ist nur ein Teaser wirklich von das einfachste Design-Entscheidungen 471 00:23:45,810 --> 00:23:50,960 dass ein Programmierer machen unter der Haube. 472 00:23:50,960 --> 00:23:52,925 >> Also Fragen nur noch? 473 00:23:52,925 --> 00:23:57,320 474 00:23:57,320 --> 00:23:59,860 So wollen wir versuchen zu machen dies ein wenig realer. 475 00:23:59,860 --> 00:24:02,120 Diese Hardware ist nicht so viel mehr in Gebrauch. 476 00:24:02,120 --> 00:24:07,420 Aber die meisten jeder in diesem Raum wohl wuchs mit und verwendet immer noch Festplatten 477 00:24:07,420 --> 00:24:08,010 irgendwie. 478 00:24:08,010 --> 00:24:10,100 >> Obwohl die meisten unsere Laptops nicht mehr 479 00:24:10,100 --> 00:24:15,900 haben Geräte, die so arbeiten, statt Laptops heute in der Regel 480 00:24:15,900 --> 00:24:18,590 haben Solid State Drives ohne bewegliche Teile. 481 00:24:18,590 --> 00:24:22,840 Und das dazu neigt, teurer zu sein, leider, aber ein wenig schneller 482 00:24:22,840 --> 00:24:27,230 und a-- gut, oft sehr viel schneller, Das ist einer der Gründe. 483 00:24:27,230 --> 00:24:28,980 Und tut es auch nicht so viel Wärme erzeugen. 484 00:24:28,980 --> 00:24:31,680 Es kann kleiner sein, so ist es im Allgemeinen eine positive Netto. 485 00:24:31,680 --> 00:24:35,030 >> Aber dies ermöglicht es uns, eine zur Karte wenig konkret, was 486 00:24:35,030 --> 00:24:38,460 wir reden am 0-en über und 1 Niveau nun zu einem physischen Gerät. 487 00:24:38,460 --> 00:24:40,810 Es ist eine Sache für mich zu sprechen etwa 0 und 1 ist in Bezug auf 488 00:24:40,810 --> 00:24:43,990 meines Telefons oder abstrakt in Bezug auf von ein- und ausgeschaltet wird. 489 00:24:43,990 --> 00:24:45,340 Aber was Festplatten? 490 00:24:45,340 --> 00:24:48,495 In Ihrer Laptops, haben, wenn Sie eine ältere ein, oder in Ihrem Desktop-Computer, 491 00:24:48,495 --> 00:24:51,200 oder auf jeden Fall in Servern heute, wo Sie 492 00:24:51,200 --> 00:24:53,070 Festplatten, die haben ein Terabyte Speicherplatz, 493 00:24:53,070 --> 00:24:55,560 4 Terabyte Speicherplatz, gut, was bedeutet das? 494 00:24:55,560 --> 00:24:59,560 >> Eine Festplatte mit 1 Terabyte Raum Mittel 495 00:24:59,560 --> 00:25:03,890 es gibt 1 Billion Bytes in der es irgendwie, 496 00:25:03,890 --> 00:25:10,450 oder äquivalent 8000 Milliarden Bits im Inneren. 497 00:25:10,450 --> 00:25:16,240 1 Terabyte wäre 8 Terabit oder 1 Billion Bits, die 498 00:25:16,240 --> 00:25:19,330 bedeutet, wenn Sie eine harte haben Laufwerk, müssen Sie irgendwie 499 00:25:19,330 --> 00:25:22,400 oder andere eine Billion 0-en und 1 ist im Inneren. 500 00:25:22,400 --> 00:25:25,360 Und wenn wir nur einen Blick auf eine zufälliges Bild einer Festplatte 501 00:25:25,360 --> 00:25:30,110 Vertreter, ist es das, was eine harte Laufwerk könnte typischerweise wie nach innen schauen. 502 00:25:30,110 --> 00:25:32,600 >> Es ist auch eine Art, wie ein alter Plattenspieler-Player 503 00:25:32,600 --> 00:25:35,350 aber in der Regel mit mehrere Datensätze nach innen, so 504 00:25:35,350 --> 00:25:38,270 zu speak-- mehrere Platten, wie sie genannt wird, 505 00:25:38,270 --> 00:25:42,259 Metallkreisscheiben und dann ein wenig Lesekopf, 506 00:25:42,259 --> 00:25:43,550 viel wie ein alter Plattenspieler. 507 00:25:43,550 --> 00:25:46,589 Und das Lesekopf bewegt sich hin und weiter liest und irgendwie die Bits. 508 00:25:46,589 --> 00:25:49,380 Und was ist auf diesen Platten, auch obwohl wir Menschen sie nicht sehen können, 509 00:25:49,380 --> 00:25:52,757 entweder in der Realität oder in diesem Bild, es gibt winzige magnetische Partikel. 510 00:25:52,757 --> 00:25:55,090 Und selbst wenn Sie schon lange vergessen, wie Elektrizität funktioniert, 511 00:25:55,090 --> 00:25:57,550 ein magnetisches Teilchen dass aufgeladen ist im Allgemeinen 512 00:25:57,550 --> 00:26:00,570 hat einen nördlichen Ende und einen nach Süden end-- so Norden und Süden. 513 00:26:00,570 --> 00:26:03,000 Und so einfach nur die Welt einige Zeit entschieden vor 514 00:26:03,000 --> 00:26:06,570 im Wesentlichen, dass, wenn ein magnetisches Protokoll ausgerichtet ist, wie diese, von Norden nach Süden, 515 00:26:06,570 --> 00:26:07,610 wir nennen das einen 1. 516 00:26:07,610 --> 00:26:10,470 Wenn es anstelle von Süden nach Norden, Nennen wir nur, dass ein 0. 517 00:26:10,470 --> 00:26:13,350 Und so, wenn Sie an Ihrer Verfügung eine Billion 518 00:26:13,350 --> 00:26:16,300 winzig kleine magnetische particles-- und hoffentlich, 519 00:26:16,300 --> 00:26:18,740 die Hardware Einfallsreichtum in Um die um Flip 520 00:26:18,740 --> 00:26:24,450 wie Sie fit-- sehen, wenn Sie möchten, stellen eine ganze Reihe von 0-en, Sie 521 00:26:24,450 --> 00:26:28,120 brauchen nur 8 magnetische Partikel alle wie diese ausgerichtet sind. 522 00:26:28,120 --> 00:26:30,330 Und wenn Sie wollen darstellen acht 1-en, die Sie gerade 523 00:26:30,330 --> 00:26:33,170 müssen 8 magnetische Partikel ausgerichtet Rücken an Rücken wie diese zu unterstützen. 524 00:26:33,170 --> 00:26:35,515 >> Was meine ich mit der magnetische Partikel? 525 00:26:35,515 --> 00:26:38,390 Ehrlich gesagt, all diese Jahre später, die was mir in den Sinn kommt noch 526 00:26:38,390 --> 00:26:42,139 dieser Kerl ist, wenn Sie wuchs mit diesem Ding. 527 00:26:42,139 --> 00:26:43,930 Dies ist ein für little-- diejenigen unfamiliar-- ein 528 00:26:43,930 --> 00:26:47,810 wenig Kindheit Spielzeug, das hat dieses unbehaarte Mann hier 529 00:26:47,810 --> 00:26:51,690 das hat all diese winzig kleinen schwarz magnetische Partikel, die mit ihm gekommen. 530 00:26:51,690 --> 00:26:53,930 Und das rot-Stick, Das ist nur ein Magnet, 531 00:26:53,930 --> 00:26:58,460 Sie können sortieren ihm geben einen Schnurrbart oder Augenbrauen oder Haare oder etwas über ihn. 532 00:26:58,460 --> 00:27:00,710 Also in der Tat, wenn wir heran in, zum Beispiel, diese 533 00:27:00,710 --> 00:27:02,950 ist die Art von Spiel, das Sie kann mit Wooly Willy spielen. 534 00:27:02,950 --> 00:27:06,570 >> Und dies ist nur zu sagen, diese sind viel größer magnetischen Teilchen 535 00:27:06,570 --> 00:27:09,890 als tatsächlich auf einer Festplatte, und weit weniger magnetische Teilchen. 536 00:27:09,890 --> 00:27:11,640 Aber lassen Sie uns tatsächlich sehen Wenn Sie dann haben 537 00:27:11,640 --> 00:27:14,720 winzige magnetische Teilchen in einem Festplatte, wie kann man eigentlich 538 00:27:14,720 --> 00:27:19,090 verwenden diejenigen Daten darzustellen. 539 00:27:19,090 --> 00:27:20,070 >> [VIDEO-WIEDERGABE] 540 00:27:20,070 --> 00:27:24,190 >> -Die Festplatte ist, wo Ihr PC speichert die meisten seiner permanenten Daten. 541 00:27:24,190 --> 00:27:27,170 Um dies zu erreichen, werden die Daten reist von RAM entlang 542 00:27:27,170 --> 00:27:31,720 mit Software signalisiert, dass die sagen, Festplatte, wie diese Daten zu speichern. 543 00:27:31,720 --> 00:27:36,570 Die Festplatte Schaltungen übersetzen diejenigen Signale in Spannungsschwankungen. 544 00:27:36,570 --> 00:27:40,880 Diese wiederum steuern die Festplatte einige der wenigen beweglichen bewegenden parts-- 545 00:27:40,880 --> 00:27:43,440 Teile in der modernen Computer gelassen. 546 00:27:43,440 --> 00:27:47,650 >> Einige der Signale steuern einen Motor, die spinnt metallbeschichteten Platten. 547 00:27:47,650 --> 00:27:50,980 Ihre Daten sind eigentlich auf diesen Platten gespeichert. 548 00:27:50,980 --> 00:27:56,250 Andere Signale bewegen, um die Lese- / Schreibköpfe zu lesen oder Daten auf den Platten zu schreiben. 549 00:27:56,250 --> 00:28:00,100 Diese Maschine ist so präzise, dass ein menschliches Haar konnte nicht einmal 550 00:28:00,100 --> 00:28:02,800 Pass zwischen den Köpfen und Spinnen Platten. 551 00:28:02,800 --> 00:28:04,887 Doch es funktioniert alles mit ungeheurer Geschwindigkeit. 552 00:28:04,887 --> 00:28:05,470 [END WIEDERGABE] 553 00:28:05,470 --> 00:28:06,780 Und Sie können auf die zu sehen Schwanzende des Videos, 554 00:28:06,780 --> 00:28:08,340 gibt es im Allgemeinen mehrere Platten. 555 00:28:08,340 --> 00:28:10,250 Und so, dass Lesekopf liest nicht nur die Spitze. 556 00:28:10,250 --> 00:28:12,458 Es ist eine Art, wie drei oder vier oder mehr Leseköpfe 557 00:28:12,458 --> 00:28:14,920 die sich bewegen wie diese, Lesen gleichzeitig Daten. 558 00:28:14,920 --> 00:28:17,407 >> So gibt es eine Menge von Komplexität und Art des Timings 559 00:28:17,407 --> 00:28:18,740 das ist in einer Festplatte beteiligt. 560 00:28:18,740 --> 00:28:21,920 Und die Sache dreht sich wirklich verflixt schnell, so gibt es eine Menge von Komplexität. 561 00:28:21,920 --> 00:28:25,220 Aber lassen Sie uns vergrößern, ein wenig tiefer und sehen, wo diese magnetischen Teilchen 562 00:28:25,220 --> 00:28:27,370 und wie werden wir bei ihnen. 563 00:28:27,370 --> 00:28:28,750 >> [VIDEO-WIEDERGABE] 564 00:28:28,750 --> 00:28:31,830 >> -Lassen Einen Blick auf, was wir sah nur in Zeitlupe. 565 00:28:31,830 --> 00:28:35,230 Wenn ein kurzer Impuls von Strom ist mit dem Lese- / Schreibkopf gesendet wird, 566 00:28:35,230 --> 00:28:39,000 sie dreht auf einem winzigen elektromagnetischen für einen Bruchteil einer Sekunde. 567 00:28:39,000 --> 00:28:41,390 Der Magnet erzeugt ein Feld, das ändert 568 00:28:41,390 --> 00:28:44,600 die Polarität eines kleinen, winzigen Teil der Metallpartikel 569 00:28:44,600 --> 00:28:46,960 das Fell jeder Oberfläche der Platte. 570 00:28:46,960 --> 00:28:50,020 Ein Muster Reihe dieser winzigen aufgeladen Bereiche auf der Platte 571 00:28:50,020 --> 00:28:54,590 stellt ein einzelnes Bit von Daten in der binäre Zahlensystem von Computern verwendet. 572 00:28:54,590 --> 00:28:57,510 >> Wenn nun der Strom gesendetes Weg durch den Lese- / Schreibkopf, 573 00:28:57,510 --> 00:28:59,899 der Bereich ist in einer Richtung polarisiert. 574 00:28:59,899 --> 00:29:01,940 Wenn der Strom eingeschickt die entgegengesetzte Richtung, 575 00:29:01,940 --> 00:29:04,020 die Polarisation umgekehrt wird. 576 00:29:04,020 --> 00:29:06,440 Wie Sie Daten von der Festplatte zu bekommen? 577 00:29:06,440 --> 00:29:08,190 Kehren Sie einfach den Vorgang. 578 00:29:08,190 --> 00:29:10,440 So ist es, die Partikel auf die Datenträger, der die aktuelle erhalten 579 00:29:10,440 --> 00:29:12,260 in der Lese- / Schreibkopf bewegt. 580 00:29:12,260 --> 00:29:14,580 Stellen Sie sich Millionen von diese magnetisiert Segmente, 581 00:29:14,580 --> 00:29:16,220 und Sie haben eine Datei einsehen. 582 00:29:16,220 --> 00:29:21,030 >> Nun können die Stücke aus einer einzigen Datei sein alle über eine Fahr Platten verstreut, 583 00:29:21,030 --> 00:29:24,060 Art wie das Chaos Papiere auf Ihrem Schreibtisch. 584 00:29:24,060 --> 00:29:27,590 So ein besonderes Extra-Datei hält verfolgen, wo alles ist. 585 00:29:27,590 --> 00:29:30,440 Sie nicht wünschen Sie hatten so ähnlich? 586 00:29:30,440 --> 00:29:31,290 >> [END WIEDERGABE] 587 00:29:31,290 --> 00:29:36,260 >> So wird dort erwähnt, vielleicht ist dass Thema von gestern der Löschung. 588 00:29:36,260 --> 00:29:38,380 Wenn Sie eine löschen Datei, gestern sagte, dass wir 589 00:29:38,380 --> 00:29:41,020 dass ein Computer tatsächlich tut was, wenn Sie etwas ziehen 590 00:29:41,020 --> 00:29:44,110 in den Papierkorb oder Mülleimer? 591 00:29:44,110 --> 00:29:45,150 Es vergisst es einfach. 592 00:29:45,150 --> 00:29:47,540 Aber die 0 und 1 ist, die magnetischen Teilchen 593 00:29:47,540 --> 00:29:50,640 die aussehen wie rot und blau Dinge hier, oder meinen Arm hier, 594 00:29:50,640 --> 00:29:52,350 gibt es immer noch auf der Festplatte. 595 00:29:52,350 --> 00:29:56,090 >> Und so gibt es software-- Norton Utilities und Yesteryear 596 00:29:56,090 --> 00:29:58,159 und andere modernere software-- dass nur 597 00:29:58,159 --> 00:30:01,200 scannt suchen eine ganze Festplatte bei all den 0 und 1 ist, weil es 598 00:30:01,200 --> 00:30:06,890 stellt sich heraus, dass die meisten Datei formats-- Word-Dokumente, Excel-Dateien, Bilder, 599 00:30:06,890 --> 00:30:10,380 Video files-- alle sicher haben Muster, die unter ihnen gemeinsam sind. 600 00:30:10,380 --> 00:30:12,550 Jede Videodatei könnte sein eines anderen Video-, 601 00:30:12,550 --> 00:30:14,870 aber die ersten paar Bits sind in der Regel gleich. 602 00:30:14,870 --> 00:30:16,790 Oder die letzten Bits üblicherweise sind die gleichen. 603 00:30:16,790 --> 00:30:19,910 >> Und so mit hoher Wahrscheinlichkeit, Sie können für diesen Mustern zu suchen. 604 00:30:19,910 --> 00:30:23,700 Und selbst wenn die Datei vergessen wurde, Sie können mit hoher Wahrscheinlichkeit sagen, 605 00:30:23,700 --> 00:30:28,460 aber das sieht aus wie ein Word-Dokument, erholen lässt es und un-vergiss es, 606 00:30:28,460 --> 00:30:28,990 wenn du möchtest. 607 00:30:28,990 --> 00:30:32,330 Und so ist, dass, wie Sie sich erholen können Daten, die entweder aus Versehen gewesen 608 00:30:32,330 --> 00:30:36,560 gelöscht oder gelöscht oder absichtlich für welche Zwecke auch immer gelöscht. 609 00:30:36,560 --> 00:30:42,530 >> Im Gegensatz dazu das sichere Löschen tut, was im Zusammenhang mit einem Bild wie diesem? 610 00:30:42,530 --> 00:30:44,059 Genau das macht sie alle zufällig. 611 00:30:44,059 --> 00:30:46,350 So bewegt er sich Art von einigen sie nieder, einige von ihnen nach oben, 612 00:30:46,350 --> 00:30:49,433 lässt einige von ihnen unverändert, und aus der es im allgemeinen Rauschen macht, 613 00:30:49,433 --> 00:30:52,960 oder einfach nur macht vielleicht alle sie 0en oder alle von ihnen 1 ist. 614 00:30:52,960 --> 00:30:56,350 Und auch das kann im Allgemeinen Schrubben Sie Ihre Daten weg. 615 00:30:56,350 --> 00:31:00,160 >> So kehren wir jetzt zu dem Thema Computational Denken, wobei 616 00:31:00,160 --> 00:31:03,270 wir haben die Formel-Eingänge. 617 00:31:03,270 --> 00:31:06,390 Und Algorithmen gibt Sie gibt schließlich. 618 00:31:06,390 --> 00:31:09,270 Wir konzentrieren uns jetzt auf Ein- und Ausgänge, denn jetzt, ich 619 00:31:09,270 --> 00:31:12,159 Anspruch haben wir einen Weg darstellt Ein- und Ausgänge. 620 00:31:12,159 --> 00:31:13,450 Wir gehen nur binär zu verwenden. 621 00:31:13,450 --> 00:31:15,910 >> Und egal, was wir wollen heute zu vertreten, 622 00:31:15,910 --> 00:31:20,230 ob es sich um eine Zahl oder einen Buchstaben oder Tausende davon in einem Telefonbuch 623 00:31:20,230 --> 00:31:23,210 oder Bilder oder Filme, am Ende des Tages, es ist alles 0 und 1 ist. 624 00:31:23,210 --> 00:31:26,640 Und ich behaupten, dass, auch wenn diese mit nur 0-en ist ein super einfache Welt 625 00:31:26,640 --> 00:31:28,240 und 1 ist, können wir uns aufbauen. 626 00:31:28,240 --> 00:31:32,210 Und wir haben ein Beispiel gesehen von dass bisher mit Buchstaben. 627 00:31:32,210 --> 00:31:35,615 >> Also lassen Sie uns jetzt darauf konzentrieren, auf diese Mittelzutat, ein Algorithmus. 628 00:31:35,615 --> 00:31:38,190 Und lassen Sie uns darauf zurück Beispiel für Mike Smith. 629 00:31:38,190 --> 00:31:41,689 Also in diesem Telefonbuch, die zugegebenermaßen wir so viel nicht mehr verwenden, 630 00:31:41,689 --> 00:31:42,980 es gibt ein Problem gelöst werden. 631 00:31:42,980 --> 00:31:45,040 Wir wollen wie Mike Smith, jemanden zu finden. 632 00:31:45,040 --> 00:31:47,520 >> Und was könnte ich tun, Mike zu finden? 633 00:31:47,520 --> 00:31:51,197 Nun, ich konnte einfach öffnen diese Buch, auf der ersten Seite zu starten, 634 00:31:51,197 --> 00:31:52,780 und erkennen, oh, ich in der A Abschnitt bin. 635 00:31:52,780 --> 00:31:53,510 Mike ist nicht da. 636 00:31:53,510 --> 00:31:55,510 Ich brauche die S Abschnitt für Smith. 637 00:31:55,510 --> 00:31:58,192 So halten nur eine Seite auf einmal drehen. 638 00:31:58,192 --> 00:32:00,900 Lassen Sie mich so tun, dass dies alles ist Weiß-Seiten und nicht Gelben Seiten, 639 00:32:00,900 --> 00:32:02,910 denn wir werden nicht gefunden Mike in den Gelben Seiten sowieso. 640 00:32:02,910 --> 00:32:04,034 Aber ich bin in den weißen Seiten. 641 00:32:04,034 --> 00:32:05,340 Und jetzt bin ich in der B-Seite. 642 00:32:05,340 --> 00:32:06,810 Ich habe ihn immer noch nicht gefunden. 643 00:32:06,810 --> 00:32:08,890 So halte ich eine Seite auf einmal drehen. 644 00:32:08,890 --> 00:32:10,130 >> Dies ist ein Algorithmus. 645 00:32:10,130 --> 00:32:12,440 Es ist eine Reihe von Anweisungen für ein Problem zu lösen. 646 00:32:12,440 --> 00:32:16,480 Mit anderen Worten, schauen Seite, wenn Mike nicht darauf, 647 00:32:16,480 --> 00:32:20,020 drehen Seite und wiederholt wieder und wieder und wieder, 648 00:32:20,020 --> 00:32:21,760 ideal nach unten, wie Sie es tun. 649 00:32:21,760 --> 00:32:24,120 So ist dieser Algorithmus, Dieser Prozess, richtig? 650 00:32:24,120 --> 00:32:27,400 651 00:32:27,400 --> 00:32:28,830 >> Es tut uns leid. 652 00:32:28,830 --> 00:32:30,056 Nein, ich höre einige nos. 653 00:32:30,056 --> 00:32:33,250 654 00:32:33,250 --> 00:32:36,125 OK, aber es ist-- ja, es ist sicherlich mühsam. 655 00:32:36,125 --> 00:32:39,000 Wie werden wir hier den ganzen Tag, wenn ich sein halten für Mike bei dieser Geschwindigkeit suchen. 656 00:32:39,000 --> 00:32:41,430 Aber lassen Sie mich behaupten, es ist richtig. 657 00:32:41,430 --> 00:32:43,850 Es ist dumm, aber es ist richtig. 658 00:32:43,850 --> 00:32:47,209 >> Am Ende des Tages, solange es vielleicht nehmen, werde ich Mike finden, wenn er da drin ist 659 00:32:47,209 --> 00:32:48,250 und ich zahle Aufmerksamkeit. 660 00:32:48,250 --> 00:32:50,230 Und ich erreichen schließlich seine Seite. 661 00:32:50,230 --> 00:32:52,890 Und wenn ich zu weit kommen, wenn Ich bekomme mit dem T-Profil, 662 00:32:52,890 --> 00:32:55,900 Ich kann dann leicht optimieren und nur sagen, hm, alles getan. 663 00:32:55,900 --> 00:32:57,980 Ich brauche nicht einmal zu verschwenden Zeit gehen in die Z. 664 00:32:57,980 --> 00:33:00,010 Aber dies ist eine sehr linearen Ansatz, wenn Sie 665 00:33:00,010 --> 00:33:03,370 wird eine sehr Art von links nach rechts Ansatz, eine gerade Linie. 666 00:33:03,370 --> 00:33:05,560 Und seine korrekte, aber langsam. 667 00:33:05,560 --> 00:33:09,250 >> Also ich erinnere mich, von der Grundschule, sortieren einer Optimierung von einem Erstklässler, 668 00:33:09,250 --> 00:33:13,756 wo ich gelernt, wie man es nicht zu zählen durch diejenigen, sondern durch twos-- so 2, 4, 6. 669 00:33:13,756 --> 00:33:15,630 Es ist ein, viel schwieriger zu tun, aber in der Theorie, es ist 670 00:33:15,630 --> 00:33:20,149 faster-- 8, 10, 12, 14, und so weiter. 671 00:33:20,149 --> 00:33:21,190 Was ist mit dem Algorithmus? 672 00:33:21,190 --> 00:33:23,150 Ist es effizienter? 673 00:33:23,150 --> 00:33:23,880 Ist es schneller? 674 00:33:23,880 --> 00:33:25,365 >> PUBLIKUM: Es ist effizient. 675 00:33:25,365 --> 00:33:28,560 >> DAVID MALAN: Ja, so ist es def-- es ist buchstäblich doppelt so schnell, unter der Annahme, I 676 00:33:28,560 --> 00:33:30,170 Lassen Sie sich nicht gestolpert mit meinen Fingern. 677 00:33:30,170 --> 00:33:32,294 Es ist doppelt so schnell, weil Ich drehe durch zwei 678 00:33:32,294 --> 00:33:36,560 Seiten auf einmal statt, aber es ist in der richtigen möglicherweise, weil, warum? 679 00:33:36,560 --> 00:33:37,852 >> PUBLIKUM: Sie sind etwas zu überspringen. 680 00:33:37,852 --> 00:33:41,185 DAVID MALAN: Richtig, was ist, wenn Mike passiert vielleicht werden sandwiched--, wenn ich später 681 00:33:41,185 --> 00:33:44,370 im Telefonbuch, geschieht Mike zu sein zwischen diesen beiden Seiten sandwichartig angeordnet, 682 00:33:44,370 --> 00:33:46,720 und ich überspringen einfach blind darüber. 683 00:33:46,720 --> 00:33:48,490 Also brauchen wir ein wenig fix dort. 684 00:33:48,490 --> 00:33:51,290 Sobald ich den T Abschnitt getroffen, ich nur getrost kann nicht sagen, 685 00:33:51,290 --> 00:33:52,420 wir fanden Mike Smith nicht. 686 00:33:52,420 --> 00:33:53,770 Ich habe wahrscheinlich wieder zu verdoppeln. 687 00:33:53,770 --> 00:34:00,210 Oder in der Tat, wenn ich jemanden erreichen S-N genannt, anstelle von S-M für Smith, 688 00:34:00,210 --> 00:34:02,790 Ich konnte sofort verdoppeln zurück, weil er vielleicht 689 00:34:02,790 --> 00:34:03,900 war auf der vorherigen Seite. 690 00:34:03,900 --> 00:34:05,070 >> Aber ich muss weit nicht verdoppeln zurück. 691 00:34:05,070 --> 00:34:08,030 In der Theorie tun, wenn ich es auf der rechten Seite Zeit, gehe ich nur eine Seite zurück. 692 00:34:08,030 --> 00:34:10,139 So das Hinzufügen es nur einen zusätzlichen Schritt. 693 00:34:10,139 --> 00:34:13,070 So habe ich doppelt so schnell gegangen, aber es kostete mich eine zusätzliche Seite. 694 00:34:13,070 --> 00:34:14,699 Aber das fühlt sich an wie ein Nettogewinn. 695 00:34:14,699 --> 00:34:17,230 >> Dies ist jedoch nicht wie die meisten Menschen in Das Zimmer würde dieses Problem lösen. 696 00:34:17,230 --> 00:34:20,313 Was würde eine typische Person, vielleicht ein Vor tun, einige Jahre Mike Smith zu finden? 697 00:34:20,313 --> 00:34:22,900 698 00:34:22,900 --> 00:34:24,800 Ja, nicht Mike finden. 699 00:34:24,800 --> 00:34:27,190 Was mache ich? 700 00:34:27,190 --> 00:34:31,027 Deshalb sollte man ein wenig näher, aber ich tun wissen-- was über ein Telefonbuch ist wahr? 701 00:34:31,027 --> 00:34:32,110 PUBLIKUM: Es ist sequentiell. 702 00:34:32,110 --> 00:34:32,760 DAVID MALAN: Es ist sequentiell. 703 00:34:32,760 --> 00:34:33,750 Es ist alphabetisch. 704 00:34:33,750 --> 00:34:36,540 Und so, wenn ich in der M Abschnitt bin, Mike ist eindeutig nach rechts, 705 00:34:36,540 --> 00:34:39,949 Ich kann buchstäblich zerreißen das Problem in half-- 706 00:34:39,949 --> 00:34:44,360 es ist in der Regel einfacher, als dass-- Träne das Problem in der Mitte und werfen es weg, 707 00:34:44,360 --> 00:34:47,627 so dass jetzt habe ich ein Problem, das ist nicht mehr 1000 pages--, die hart war, 708 00:34:47,627 --> 00:34:50,210 weil ich denke, ich riss tatsächlich das Telefonbuch dieses Zeit-- nicht 709 00:34:50,210 --> 00:34:52,219 1000 Seiten, aber 500. 710 00:34:52,219 --> 00:34:54,750 >> Das Problem ist also buchstäblich halb so groß. 711 00:34:54,750 --> 00:34:58,170 Und das ist ziemlich überzeugend, weil mit meinem früheren Algorithmen, Version 712 00:34:58,170 --> 00:35:02,870 1 und 2, mache ich nur das Problem eine Seite kleiner, zwei Seiten kleiner 713 00:35:02,870 --> 00:35:03,470 zu einem Zeitpunkt. 714 00:35:03,470 --> 00:35:07,230 Während jetzt habe ich es 500 Seiten kleiner auf einmal. 715 00:35:07,230 --> 00:35:10,089 >> OK, also jetzt, Karim schlägt dass ich auf die rechte Hälfte gehen. 716 00:35:10,089 --> 00:35:12,380 Also werde ich in etwa gehen in die Mitte, geben oder nehmen. 717 00:35:12,380 --> 00:35:15,185 Und wenn ich tat dies mathematisch, Ich konnte direkt in die Mitte gehen. 718 00:35:15,185 --> 00:35:17,060 Und jetzt merke ich,, oh, Ich bin in der T-Seite. 719 00:35:17,060 --> 00:35:18,280 Ich habe eigentlich zu weit gehen. 720 00:35:18,280 --> 00:35:21,670 >> Aber ich kann wieder reißen die Problem in der Hälfte, werfen Sie es weg. 721 00:35:21,670 --> 00:35:23,330 Und meine Bytes nicht so groß. 722 00:35:23,330 --> 00:35:28,780 Es ist nur, was, 256 Seiten oder 250 Seiten, geben oder sofort ergreifen. 723 00:35:28,780 --> 00:35:31,570 Aber es ist noch viel mehr als eine Seite oder zwei Seiten. 724 00:35:31,570 --> 00:35:33,345 >> Und jetzt gehe ich in etwa der Mitte. 725 00:35:33,345 --> 00:35:35,330 Oh, ich ging nicht weit genug jetzt. 726 00:35:35,330 --> 00:35:37,880 So wiederhole ich, wiederholen, wiederholen, wiederholen, bis ich hoffentlich bin 727 00:35:37,880 --> 00:35:40,360 mit nur einer Seite links. 728 00:35:40,360 --> 00:35:44,000 >> So lädt dass die Frage, ob ich mit rund 1.000 Seiten gestartet, 729 00:35:44,000 --> 00:35:47,340 wie viele Schritte hat es gedauert, mich mit der Version 1 meiner Algorithmus? 730 00:35:47,340 --> 00:35:50,420 Nun, wenn Mike in der S Abschnitt, im schlimmsten Fall, 731 00:35:50,420 --> 00:35:52,630 das ist ziemlich nahe an das Ende des Alphabets. 732 00:35:52,630 --> 00:35:56,559 Also, wenn das Telefonbuch hat 1.000 Seiten, Ich finde Mike innerhalb 1.000 Seiten, 733 00:35:56,559 --> 00:35:57,100 geben oder nehmen. 734 00:35:57,100 --> 00:35:59,750 Vielleicht ist es wie 800 oder so, aber es ist ziemlich nahe an 1000. 735 00:35:59,750 --> 00:36:01,680 >> Während in der zweiten Algorithmus, wie viele 736 00:36:01,680 --> 00:36:06,840 Seite dreht maximal könnte ich erfordern Mike Smith zu finden? 737 00:36:06,840 --> 00:36:09,970 Es gibt 1000 Seiten, aber ich bin tun sie zwei auf einmal. 738 00:36:09,970 --> 00:36:13,045 Richtig, also max wie 500ish, weil wenn ich durch das ganze Telefonbuch gehen, 739 00:36:13,045 --> 00:36:14,170 Ich kann an diesem Punkt, zu stoppen. 740 00:36:14,170 --> 00:36:16,669 Aber ich kann ein paar abrasieren durch nur Halt an dem Abschnitt T. 741 00:36:16,669 --> 00:36:19,880 Aber es ist im schlimmsten Fall 500 Seiten. 742 00:36:19,880 --> 00:36:24,710 >> Wie oft kann ich teilen ein 1,00o-Seite Telefonbuch in Hälfte wieder 743 00:36:24,710 --> 00:36:30,450 und wieder und again-- aus 1,000 bis 500 bis 250 bis 125? 744 00:36:30,450 --> 00:36:32,250 Wie lange, bevor ich traf eine Seite? 745 00:36:32,250 --> 00:36:35,510 746 00:36:35,510 --> 00:36:36,370 Ja, es ist etwa 10. 747 00:36:36,370 --> 00:36:40,780 Je nach Runden und so, es ist ca. 10 Seiten insgesamt Bedarf gedreht werden 748 00:36:40,780 --> 00:36:43,290 oder Telefon Bücher müssen abgerissen werden. 749 00:36:43,290 --> 00:36:44,710 >> Also das ist ziemlich mächtig. 750 00:36:44,710 --> 00:36:48,170 Wir begannen mit einem 1.000-Seiten-Problem in allen drei dieser Geschichten. 751 00:36:48,170 --> 00:36:51,850 Aber in dem ersten Algorithmus, es nahm mich, am schlechtesten Fall 1000 Seite 752 00:36:51,850 --> 00:36:52,740 wendet sich Mike zu finden. 753 00:36:52,740 --> 00:36:55,590 Zweiter Algorithmus, 500 Seiten Mike zu finden. 754 00:36:55,590 --> 00:36:58,480 Drittens Algorithmus, 10 Seiten Mike zu finden. 755 00:36:58,480 --> 00:37:00,230 Und es ist noch mehr mächtig, wenn Sie denken, 756 00:37:00,230 --> 00:37:01,860 über Art eines entgegengesetzten Szenario. 757 00:37:01,860 --> 00:37:05,680 Nehmen wir an, dass die Telefongesellschaft nächste Jahr verschmilzt vielleicht zwei Städte zusammen, 758 00:37:05,680 --> 00:37:08,550 und das Telefonbuch ist plötzlich diese dick, statt dieser, dass, 759 00:37:08,550 --> 00:37:12,470 so 2.000 Seiten anstelle von 1000. 760 00:37:12,470 --> 00:37:15,640 Nun, mein erster Algorithmus sucht Mike Smith in einer 2000-Seite Telefonbuch, 761 00:37:15,640 --> 00:37:21,460 schlimmer Fall geht es zu nehmen wie viele Seiten dreht sich im nächsten Jahr? 762 00:37:21,460 --> 00:37:24,800 >> Telefonbuch ist 2.000 Seiten, SO- gut, nicht noch einen. 763 00:37:24,800 --> 00:37:29,540 Wenn das Telefonbuch ist doppelt so dick in der erste Algorithmus, ersten Algorithmus, 764 00:37:29,540 --> 00:37:30,380 2000, nicht wahr? 765 00:37:30,380 --> 00:37:33,005 Im schlimmsten Fall, Mike ist wirklich nahe dem Ende des Buches, 766 00:37:33,005 --> 00:37:34,110 es ist so 2000 Seite dreht. 767 00:37:34,110 --> 00:37:38,070 Zweiter Algorithmus geht von Zweier, wie 1000 Seiten. 768 00:37:38,070 --> 00:37:41,490 >> Aber wie wäre es in meinem dritten und letzten Algorithmus? 769 00:37:41,490 --> 00:37:44,950 Wenn die Telefongesellschaft verdoppelt sich die Anzahl der Seiten, von 1.000 bis 2.000, 770 00:37:44,950 --> 00:37:47,770 Wie oft muss ich reißen dass Buch in zwei Hälften zu Mike finden? 771 00:37:47,770 --> 00:37:48,710 >> PUBLIKUM: Nur eine. 772 00:37:48,710 --> 00:37:51,001 >> DAVID MALAN: Nur noch ein, weil mit einer Seite reißen, 773 00:37:51,001 --> 00:37:53,270 Ich kann buchstäblich teilen und zu erobern, wenn man so will, 774 00:37:53,270 --> 00:37:57,410 dass Problem in Hälfte Mitnahmen ein massiver Biss aus ihm heraus. 775 00:37:57,410 --> 00:38:01,420 Und so ist dies ein Beispiel für Effizienz und wohl auch ein Algorithmus 776 00:38:01,420 --> 00:38:04,100 mit dem wir alle sind Art intuitiv vertraut. 777 00:38:04,100 --> 00:38:07,780 Aber es ist ebenso richtig wie meine anderen Algorithmen 778 00:38:07,780 --> 00:38:09,630 mit diesem Tweak für der zweite Algorithmus, 779 00:38:09,630 --> 00:38:11,290 aber es ist so viel effizienter. 780 00:38:11,290 --> 00:38:14,030 >> Und in der Tat, was ein Computer Wissenschaftler oder wiederum ein Programmierer, 781 00:38:14,030 --> 00:38:17,580 tun würde normalerweise beim Schreiben Code ist zu versuchen, um herauszufinden, 782 00:38:17,580 --> 00:38:19,960 Alles in Ordnung, ich will nicht meine Programm nur um korrekt zu sein, 783 00:38:19,960 --> 00:38:23,220 Ich will es auch effizient sein und Probleme zu lösen gut. 784 00:38:23,220 --> 00:38:26,450 Stellen Sie sich in der realen Welt heute wie Google indiziert, sucht 785 00:38:26,450 --> 00:38:31,580 wie Milliarden von Seiten, sich vorstellen, wenn sie den ersten Algorithmus verwendet, Katzen zu finden 786 00:38:31,580 --> 00:38:34,620 unter einer Milliarde pages-- bei der Suche die erste Seite in ihrer Datenbank, 787 00:38:34,620 --> 00:38:37,700 die zweite, die dritte, gerade auf der Suche für eine Katze, auf der Suche nach einer Katze. 788 00:38:37,700 --> 00:38:40,350 Das ist verdammt langsam wie es scheint. 789 00:38:40,350 --> 00:38:43,170 Sie könnten stattdessen etwas verwenden genannt binäre Suche, die 790 00:38:43,170 --> 00:38:47,420 wir keine coincidence-- bi zwei bedeutet, halten etwas in 2, in half-- Dividieren 791 00:38:47,420 --> 00:38:50,205 sie könnten binäre Suche verwenden und vielleicht Katzen noch schneller finden, 792 00:38:50,205 --> 00:38:51,830 oder was auch immer es ist, den Sie suchen. 793 00:38:51,830 --> 00:38:54,125 >> Und ehrlich gesagt, es gibt auch ausgefallenere Algorithmen 794 00:38:54,125 --> 00:38:56,250 dass viel mehr tun, als nur Dividieren halben Sachen 795 00:38:56,250 --> 00:38:58,180 um Informationen schnell zu finden. 796 00:38:58,180 --> 00:39:00,880 Und wir werden ein wenig reden etwa heute jene nach dem Mittagessen. 797 00:39:00,880 --> 00:39:02,640 Lassen Sie mich also nur versuchen, diese zu vertreten. 798 00:39:02,640 --> 00:39:05,380 Wir brauchen nicht in zu gehen, jede mathematische oder tatsächlichen Zahlen. 799 00:39:05,380 --> 00:39:07,070 Wir können über diese in der abstrakten reden. 800 00:39:07,070 --> 00:39:11,580 >> Aber lassen Sie mich nur vorschlagen, wenn Sie eine Diskussion hatten jetzt 801 00:39:11,580 --> 00:39:13,491 mit den Ingenieuren schlägt diesen Algorithmus 802 00:39:13,491 --> 00:39:15,490 und Sie versuchen zu machen eine kalkulierte Entscheidung, 803 00:39:15,490 --> 00:39:17,285 weil vielleicht die Ingenieur zu dir sagt, du 804 00:39:17,285 --> 00:39:19,910 wissen, was ich umsetzen kann ein lineare Suche in wie zwei Minuten. 805 00:39:19,910 --> 00:39:21,150 So einfach ist das. 806 00:39:21,150 --> 00:39:24,790 Binäre Suche ist nicht so schick, aber es geht mir wie 10 Minuten dauern, 807 00:39:24,790 --> 00:39:26,650 so 5-mal so lang. 808 00:39:26,650 --> 00:39:30,900 >> Es gibt einen Handel hier, auch in Bezug auf von der Entscheidung, welche Software zu schreiben. 809 00:39:30,900 --> 00:39:34,760 Haben Sie den einfacheren Algorithmus schreiben, die nehmen Sie nur zwei Minuten? 810 00:39:34,760 --> 00:39:39,880 Oder verbringen Sie mehr Zeit, 10 Minuten Schreiben des schicker Algorithmus? 811 00:39:39,880 --> 00:39:43,540 Wie Sie diese Art von Frage entscheiden? 812 00:39:43,540 --> 00:39:46,710 Oder man könnte es ein wenig mehr real zu machen. 813 00:39:46,710 --> 00:39:50,610 Ich sage meinen Chef, es wird zu nehmen mich entweder einer Woche und 10 Wochen 814 00:39:50,610 --> 00:39:52,490 zur Umsetzung der Software auf diese Weise, wie 815 00:39:52,490 --> 00:39:56,103 Sie entscheiden, welche Algorithmus, um grünes Licht? 816 00:39:56,103 --> 00:39:56,603 Karim? 817 00:39:56,603 --> 00:39:57,550 >> PUBLIKUM: Das Publikum, denke ich. 818 00:39:57,550 --> 00:39:57,960 >> DAVID MALAN: Das Publikum. 819 00:39:57,960 --> 00:39:59,460 Was meinst du mit dem Publikum? 820 00:39:59,460 --> 00:40:03,460 >> PUBLIKUM: Wenn es geht In den von den Benutzern verwendet werden, 821 00:40:03,460 --> 00:40:09,050 die [unverständlich] von Nutzern [unverständlich]. 822 00:40:09,050 --> 00:40:11,232 Aber wenn es etwas ist, du bist tun nur für sich selbst 823 00:40:11,232 --> 00:40:13,946 ein Problem zu erleichtern, [Unverständlich] schneller. 824 00:40:13,946 --> 00:40:16,820 DAVID MALAN: Ja, es ist schnell und schmutzig ist ein guter Weg, um es zu beschreiben. 825 00:40:16,820 --> 00:40:18,695 In der Tat, wenn Sie beschreibt viel von meiner Zeit 826 00:40:18,695 --> 00:40:23,630 in grad Schule, wobei oft mal, Ich schrieb schlechten Code bewusst SO- 827 00:40:23,630 --> 00:40:26,490 das ist zumindest, wie ich rationalisiert es-- bewusst so, 828 00:40:26,490 --> 00:40:30,670 denn obwohl ich das Schreiben von Code das war relativ langsam auszuführen, 829 00:40:30,670 --> 00:40:33,750 Ich konnte den Code selbst zu schreiben ziemlich schnell, die Ausgaben nur wenige Minuten 830 00:40:33,750 --> 00:40:35,107 oder Stunden nicht Tagen. 831 00:40:35,107 --> 00:40:37,190 Und es stellte sich heraus, I gelegentlich schlafen benötigt. 832 00:40:37,190 --> 00:40:41,270 Also selbst wenn mein Code erforderlich 8 Stunden, auch das ist gut zu laufen, 833 00:40:41,270 --> 00:40:42,850 Ich gehe nur zu schlafen, während es läuft. 834 00:40:42,850 --> 00:40:46,350 >> Also zu der Zeit, dachte ich, das war sehr klug, obwohl ich anscheinend 835 00:40:46,350 --> 00:40:48,990 arbeitete sehr langsam durch meine Doktorarbeit. 836 00:40:48,990 --> 00:40:52,270 Aber das Gegenteil von dem ist dass, wenn ich schriebe Software 837 00:40:52,270 --> 00:40:55,930 für andere Menschen, die mehr zählte als ich, na ja, 838 00:40:55,930 --> 00:40:59,580 mit ihnen warten 8 Stunden wieder ihre Suchergebnisse 839 00:40:59,580 --> 00:41:01,350 ist gar nicht so überzeugend. 840 00:41:01,350 --> 00:41:04,090 Und verbringen so mehr Zeit vorne zu schreiben Software 841 00:41:04,090 --> 00:41:07,300 das ist effizienter, wie unser dritter Algorithmus, 842 00:41:07,300 --> 00:41:09,780 wahrscheinlich profitieren die Anwender im Laufe der Zeit. 843 00:41:09,780 --> 00:41:12,710 Es hängt also wirklich über Zeit, wie diese Kosten summieren. 844 00:41:12,710 --> 00:41:14,960 Wenn du gehst zu schreiben Software, es zu benutzen, wenn, 845 00:41:14,960 --> 00:41:17,240 wahrscheinlich könnte genauso gut tun schnell und schmutzig, wie sie sagen. 846 00:41:17,240 --> 00:41:18,198 werfen Sie es einfach zusammen. 847 00:41:18,198 --> 00:41:20,560 Es ist Code, der in Verlegenheit bringt Sie, es ist so schlecht, 848 00:41:20,560 --> 00:41:23,860 aber es wird die Arbeit richtig gemacht, obwohl es nicht effizient. 849 00:41:23,860 --> 00:41:27,200 Im Gegensatz dazu verbringen Sie mehr Zeit auf etwas, um es genau richtig. 850 00:41:27,200 --> 00:41:30,730 Und dann im Laufe der Zeit amortisieren, dass Kosten im Voraus von Zeit 851 00:41:30,730 --> 00:41:34,330 wahrscheinlich lohnt, wenn Sie halten Optimierung für den gemeinsamen Fall. 852 00:41:34,330 --> 00:41:37,620 >> Und in der Tat, das ist ein Thema in Programmierung oder Informatik mehr 853 00:41:37,620 --> 00:41:41,390 im Allgemeinen, versuchen zu optimieren nicht für den ungewöhnlichen Fall 854 00:41:41,390 --> 00:41:44,390 aber die gemeinsame Fall-- welche Operation wird immer wieder passieren? 855 00:41:44,390 --> 00:41:47,730 Wenn Sie vorhaben, Milliarden zu haben der Nutzer auf Ihrer Website suchen, 856 00:41:47,730 --> 00:41:52,030 Sie sollten wahrscheinlich die extra ausgeben Wochen vorne bessere Software zu schreiben, 857 00:41:52,030 --> 00:41:53,670 so dass alle Benutzer profitieren. 858 00:41:53,670 --> 00:41:57,840 Jetzt wollen wir versuchen, diese ein zu erfassen wenig bildhaft, aber nicht so viel 859 00:41:57,840 --> 00:41:58,610 numerisch. 860 00:41:58,610 --> 00:42:01,680 >> Also hier ist nur eine alte Schule-Chart. 861 00:42:01,680 --> 00:42:04,260 Und lassen Sie mich sagen, dass diese Zeit ist. 862 00:42:04,260 --> 00:42:06,660 Und es spielt keine Rolle, what-- eigentlich, nein, keine Zeit. 863 00:42:06,660 --> 00:42:08,320 Sagen wir, dass auf der anderen Achse. 864 00:42:08,320 --> 00:42:15,700 Lassen Sie uns sagen, dass dies die Zeit ist, und das ist Größe des Problems. 865 00:42:15,700 --> 00:42:17,830 >> Und ein Informatiker könnte im Allgemeinen nennen 866 00:42:17,830 --> 00:42:20,820 dies nur n. n ist wie unser Go-to-Variable, wo 867 00:42:20,820 --> 00:42:26,351 n eine Zahl ist, n Zahl, und es ist das Anzahl der unabhängig Eingänge Sie haben. 868 00:42:26,351 --> 00:42:28,100 So in diesem Fall n die Anzahl der Seiten. 869 00:42:28,100 --> 00:42:30,150 So könnte es sein, 1000 in der Fall, dass wir gerade gesagt. 870 00:42:30,150 --> 00:42:31,969 >> So kann Zeit jede Maßeinheit sein. 871 00:42:31,969 --> 00:42:32,760 Vielleicht ist es Sekunde. 872 00:42:32,760 --> 00:42:33,410 Vielleicht ist es Tag. 873 00:42:33,410 --> 00:42:34,590 Vielleicht ist es wie Seite dreht. 874 00:42:34,590 --> 00:42:35,215 Spielt keine Rolle. 875 00:42:35,215 --> 00:42:38,840 Was auch immer Sie wollen in zu zählen, dass wird in äquivalenter Zeit oder Kosten. 876 00:42:38,840 --> 00:42:42,400 >> So mit dem ersten Algorithmus, wenn I, beispielsweise 877 00:42:42,400 --> 00:42:45,920 hatte ein Telefonbuch 1000-Seite, Ich werde dort einen Punkt zu zeichnen, 878 00:42:45,920 --> 00:42:51,450 denn wenn es 1.000 Seiten ist, dauerte es rund 1.000 Seite dreht, geben oder nehmen. 879 00:42:51,450 --> 00:42:54,100 Und dann, wenn ich hatte eine 2000-Seite Telefonbuch, 880 00:42:54,100 --> 00:42:57,200 und ich werde ein zweites zu ziehen hier dot, weil für 2000 Seiten, 881 00:42:57,200 --> 00:42:59,810 es ist wie 2.000 Sekunden oder Seite dreht oder was auch immer. 882 00:42:59,810 --> 00:43:02,480 Und so, wenn ich bereits sagte, ist es Art einer linearen Beziehung, 883 00:43:02,480 --> 00:43:06,020 das war absichtlich, weil ich wollte, später on-- rechts now-- eine Linie zu zeichnen. 884 00:43:06,020 --> 00:43:07,770 Es ist eine Art einer geraden Linie Beziehung. 885 00:43:07,770 --> 00:43:10,180 Die Steigung ist 1/1, wenn man so will. 886 00:43:10,180 --> 00:43:14,630 >> Inzwischen ist der zweite Algorithmus sagte, wenn Sie 1.000 Seiten haben 887 00:43:14,630 --> 00:43:17,680 und Sie wurden unter Verwendung des zweiten Algorithmus, wo ich von 2 des gezählt, Drehen 888 00:43:17,680 --> 00:43:22,564 zwei Seiten auf einmal, ich sollte ein Unentschieden Punkt unter oder über meinem ursprünglichen Punkt? 889 00:43:22,564 --> 00:43:23,450 >> PUBLIKUM: Unten. 890 00:43:23,450 --> 00:43:27,992 >> DAVID MALAN: Unten, weil, wie wir gesehen haben, es braucht weniger Zeit, halb so viel Zeit. 891 00:43:27,992 --> 00:43:29,950 So sollte der Punkt Hälfte sein so hoch ist wie die andere. 892 00:43:29,950 --> 00:43:33,330 Und gleiche Geschäft hier, dieser Punkt sollte wohl in etwa dort sein. 893 00:43:33,330 --> 00:43:39,666 Und so mein zweiter Algorithmus, ähnlich, eine lineare Beziehung mit der Zeit. 894 00:43:39,666 --> 00:43:41,990 Und wir können sie als solche zu ziehen. 895 00:43:41,990 --> 00:43:45,950 >> So, jetzt die dritte und letzte Algorithmus ist ein wenig schwieriger zu ziehen. 896 00:43:45,950 --> 00:43:49,530 Aber intuitiv, wenn ich habe 1000 bekam Seiten mit meinem dritten Algorithmus, 897 00:43:49,530 --> 00:43:52,340 es sollte nimm mich nur wie 10 Stufen. 898 00:43:52,340 --> 00:43:57,500 Und wenn ich habe 2000 Seiten bekam mit meinem dritten Algorithmus, 899 00:43:57,500 --> 00:44:01,570 es sollte mich nehmen nicht mehr als 10 Schritte, aber 11, nur eine mehr. 900 00:44:01,570 --> 00:44:03,610 Wir sind also nur knapp das gehen zu sehen. 901 00:44:03,610 --> 00:44:06,010 >> Und es stellt sich heraus, wenn Ich Zoom auf diese, ich bin 902 00:44:06,010 --> 00:44:09,320 gehen für die Wirkung zu übertreiben, die Form dieser Linie letztendlich 903 00:44:09,320 --> 00:44:11,990 keine gerade line-- denn in der Tat wäre es, 904 00:44:11,990 --> 00:44:15,390 es würde eher wie das aussehen Andere-- es ist eigentlich eine gekrümmte Linie 905 00:44:15,390 --> 00:44:19,265 dass, wenn wir die Ansicht vergrößern, wird viel mehr wie folgt aussehen. 906 00:44:19,265 --> 00:44:21,670 Es-- gut, OK, um diesen Teil zu ignorieren. 907 00:44:21,670 --> 00:44:25,330 Das war meine Feder Winkel gehen. 908 00:44:25,330 --> 00:44:29,000 Es ist eine gekrümmte Linie, die immer zunimmt, immer, immer, immer 909 00:44:29,000 --> 00:44:32,100 nimmt zu, aber nur gerade noch. 910 00:44:32,100 --> 00:44:36,260 >> Und so im Laufe der Zeit, haben Sie eine Beziehung, die eher wie dieses ist. 911 00:44:36,260 --> 00:44:37,540 Es sieht fast gerade. 912 00:44:37,540 --> 00:44:40,330 Aber es ist immer so langsam zu. 913 00:44:40,330 --> 00:44:44,780 Aber bei fast allen Punkten entlang Ihre x-Achse, horizontale Achse, 914 00:44:44,780 --> 00:44:46,550 es ist niedriger als die anderen Linien. 915 00:44:46,550 --> 00:44:49,930 >> So könnte dies eine Beziehung sein, n, wobei n, wenn Sie Seiten haben, 916 00:44:49,930 --> 00:44:51,100 nimmt man n Sekunden. 917 00:44:51,100 --> 00:44:53,320 Dies könnte ein Verhältnis n / 2 betragen. 918 00:44:53,320 --> 00:44:56,710 Sie haben n Seiten, dauert es Sie n / 2 Sekunden halb so viele. 919 00:44:56,710 --> 00:45:00,590 Und dies ist ein logarithmischer Beziehung, die 920 00:45:00,590 --> 00:45:08,920 wenn Sie sich erinnern, log Basis 2 von n-Captures Diese Art von Wachstum, sozusagen. 921 00:45:08,920 --> 00:45:12,000 So ist dies die Art von heiligen Gral unter den drei von ihnen 922 00:45:12,000 --> 00:45:15,940 hier, weil es einfach so viel mehr effizient, aber wohl komplexer 923 00:45:15,940 --> 00:45:18,610 implementieren. 924 00:45:18,610 --> 00:45:20,510 Irgendwelche Fragen? 925 00:45:20,510 --> 00:45:26,220 >> Nun lassen Sie mich dies zu tun, lassen mir öffnet sich ein Textfenster nach oben 926 00:45:26,220 --> 00:45:29,100 nur so können wir versuchen, formalisieren hier etwas. 927 00:45:29,100 --> 00:45:32,410 Also lassen Sie mich voran gehen jetzt und implementieren diesen Algorithmus 928 00:45:32,410 --> 00:45:35,170 für die Suche nach Mike Smith in Code, wenn man so will, Pseudo-Code-Code. 929 00:45:35,170 --> 00:45:36,620 Ich werde nicht Java oder C ++ zu verwenden. 930 00:45:36,620 --> 00:45:38,610 Ich werde einfach irgendwie verwenden Englisch-ähnliche Syntax, die wir 931 00:45:38,610 --> 00:45:40,151 würde in der Regel Pseudo-Code-Code aufrufen. 932 00:45:40,151 --> 00:45:41,660 Hier habe ich ein leeres Fenster. 933 00:45:41,660 --> 00:45:48,180 Und ich sage Schritt 1 des sehr erste Algorithmus ist Telefonbuch abholen. 934 00:45:48,180 --> 00:45:51,740 Schritt 2 ist offenes Buch zur ersten Seite. 935 00:45:51,740 --> 00:45:58,080 Schritt 3 aussehen wird sein auf Seite für Mike Smith. 936 00:45:58,080 --> 00:46:02,740 Wenn auf Seite rufen Mike. 937 00:46:02,740 --> 00:46:11,640 sonst wiederum Seite und gehen Sie zu Schritt 3. 938 00:46:11,640 --> 00:46:13,590 Geschehen, lassen Sie uns sagen. 939 00:46:13,590 --> 00:46:18,110 >> Und so ist es nicht ganz perfekt, die wir in einem Moment zu sehen. 940 00:46:18,110 --> 00:46:21,050 Aber lassen Sie uns überlegen, was Konzepte, die ich habe hier eingeführt. 941 00:46:21,050 --> 00:46:24,450 So die Schritte 1 und 2 und 3 sind so ziemlich Verben. 942 00:46:24,450 --> 00:46:26,544 Sie sind Aussagen, actions-- tun. 943 00:46:26,544 --> 00:46:28,710 Und so in einem Programmier Sprache, würden wir in der Regel 944 00:46:28,710 --> 00:46:32,349 nennen sie Aussagen oder Funktionen oder Prozeduren, 945 00:46:32,349 --> 00:46:33,640 sie beliebige Anzahl von Dingen nennen. 946 00:46:33,640 --> 00:46:35,460 Aber sie sind actions-- gerade dies tun. 947 00:46:35,460 --> 00:46:40,370 >> Schritt 4 ist grundlegend anders, weil es eine Art ist eine Frage zu stellen. 948 00:46:40,370 --> 00:46:42,400 Es ist zu sagen, wir sind Art von an einer Weggabelung. 949 00:46:42,400 --> 00:46:48,000 Wenn Mike auf der Seite ist, rufen ihn, so biegen Sie links ab, wenn man so will. 950 00:46:48,000 --> 00:46:52,170 Und wenn nicht, gehen Sie zurück zu einigen andere page-- oder besser gesagt, sorry, 951 00:46:52,170 --> 00:46:56,650 gehen Sie zurück zu einem anderen Schritt, der induziert eine Art von Schleifenkonstrukt. 952 00:46:56,650 --> 00:46:59,530 Und wir tun es wieder und wieder und wieder. 953 00:46:59,530 --> 00:47:01,300 >> Und tatsächlich, wissen Sie was? 954 00:47:01,300 --> 00:47:01,800 Ja. 955 00:47:01,800 --> 00:47:04,704 956 00:47:04,704 --> 00:47:09,010 wenn sonst am Ende des Buches zu stoppen. 957 00:47:09,010 --> 00:47:11,624 Also brauchen wir ein bisschen eine dritte Zustand, da Sie 958 00:47:11,624 --> 00:47:14,290 halten kann die Seite nicht ad drehen nauseum, denn schließlich, ich werde 959 00:47:14,290 --> 00:47:15,320 traf das Ende des Buches. 960 00:47:15,320 --> 00:47:18,546 Und ein Fehler in einem Programm sein könnte dieses Szenario nicht erwarten. 961 00:47:18,546 --> 00:47:21,420 Und dann habe ich gerade festgestellt, oh, warten eine Minute, ich brauche ein drittes Szenario. 962 00:47:21,420 --> 00:47:23,900 Wenn ich aus der Seiten bin ich sollte wirklich nur stoppen. 963 00:47:23,900 --> 00:47:25,330 Ansonsten ist es nicht definiert. 964 00:47:25,330 --> 00:47:29,260 Was wird passieren, wenn ich halten sagen die Seite drehen und zurück, 965 00:47:29,260 --> 00:47:31,810 dies ist als Computer einfrieren oder abstürzen, wenn sie getroffen werden 966 00:47:31,810 --> 00:47:34,160 einige unerwartete Situation ähnlich. 967 00:47:34,160 --> 00:47:37,280 >> Nun, was Mike Smiths dritte algorithm-- 968 00:47:37,280 --> 00:47:43,150 wählen Sie das Telefonbuch auf, offenes Buch first-- zu 969 00:47:43,150 --> 00:47:48,640 nein, nicht die erste Seite dieses Mal, oh middle--, na ja, das wäre 970 00:47:48,640 --> 00:47:49,640 sein der zweite Algorithmus. 971 00:47:49,640 --> 00:47:50,590 Lassen Sie uns einfach an die dritte überspringen. 972 00:47:50,590 --> 00:47:50,930 >> PUBLIKUM: Oh, tut mir leid. 973 00:47:50,930 --> 00:47:51,971 >> DAVID MALAN: Das ist in Ordnung. 974 00:47:51,971 --> 00:47:58,590 Lassen Sie uns einfach überspringen zum third-- offen bis Mitte für Mike Smith aussehen und jetzt. 975 00:47:58,590 --> 00:48:02,300 wenn auf Seite rufen Mike. 976 00:48:02,300 --> 00:48:04,910 Und dann, was tun wir hier sagen wollen? 977 00:48:04,910 --> 00:48:06,134 sonst was? 978 00:48:06,134 --> 00:48:10,620 979 00:48:10,620 --> 00:48:12,370 Wir können dies zum Ausdruck bringen in einer beliebigen Anzahl von Möglichkeiten. 980 00:48:12,370 --> 00:48:13,369 Es gibt keine richtige Antwort. 981 00:48:13,369 --> 00:48:20,819 982 00:48:20,819 --> 00:48:23,735 OK, wenn nicht wieder, aber wir müssen be-- OK, wir haben in zwei geteilt werden soll, 983 00:48:23,735 --> 00:48:25,630 aber wollen wir gehen nach links oder rechts gehen? 984 00:48:25,630 --> 00:48:29,560 Wie drücken wir diesen Begriff? 985 00:48:29,560 --> 00:48:31,790 Nun, in Mikes Fall, ja, das ist fair. 986 00:48:31,790 --> 00:48:35,050 Aber OK, das ist also eigentlich ein guter Punkt. 987 00:48:35,050 --> 00:48:35,550 Das ist gut. 988 00:48:35,550 --> 00:48:36,924 Wir halten mit dieser Logik geht. 989 00:48:36,924 --> 00:48:38,182 Damit-- 990 00:48:38,182 --> 00:48:39,810 >> PUBLIKUM: Weniger als die Hälfte. 991 00:48:39,810 --> 00:48:40,560 DAVID MALAN: Ja. 992 00:48:40,560 --> 00:48:49,820 So else if Seite ist, werden wir sagen, weniger als Smith, nach links von Smith, 993 00:48:49,820 --> 00:48:52,220 then-- wollen wir sehen, ist dies geht zu erschweren? 994 00:48:52,220 --> 00:49:01,885 else if Seite kommt, bevor Smith, in zwei Hälften reißen, wegwerfen, welche Hälfte? 995 00:49:01,885 --> 00:49:05,643 996 00:49:05,643 --> 00:49:09,140 >> PUBLIKUM: Ich dachte, das war [unverständlich]. 997 00:49:09,140 --> 00:49:11,650 >> DAVID MALAN: Ich höre beide Antworten. 998 00:49:11,650 --> 00:49:12,431 >> PUBLIKUM: links. 999 00:49:12,431 --> 00:49:14,430 DAVID MALAN: OK, werfen weg halb links, wie Lakisa 1000 00:49:14,430 --> 00:49:19,700 früher gesagt, die linke Hälfte, dann habe ich von Art 1001 00:49:19,700 --> 00:49:23,940 will nur gehen zu-- ich nach rechts gehen. 1002 00:49:23,940 --> 00:49:27,380 Oder äquivalent, und habe ich ein wenig bisschen ein Durcheinander von Anfang an hier, 1003 00:49:27,380 --> 00:49:30,760 Ich möchte effektiv gehen 2 wieder zu Schritt, 1004 00:49:30,760 --> 00:49:38,270 wo offen für die middle-- oder open-- ja, sagen wir einfach, Seiten zu Mitte. 1005 00:49:38,270 --> 00:49:39,020 Und das behebt es. 1006 00:49:39,020 --> 00:49:39,936 Es ist nicht mehr ein Buch. 1007 00:49:39,936 --> 00:49:42,210 Es ist nur die Hälfte eines Buches, so geöffneten Seiten zu Mitte. 1008 00:49:42,210 --> 00:49:44,010 >> else-- waren fast da. 1009 00:49:44,010 --> 00:49:54,000 Schritt 6, andernfalls, wenn Seite kommt nach Smith, reißen in der Hälfte, wegwerfen rechte Hälfte, 1010 00:49:54,000 --> 00:49:55,680 dann gehen Sie zu Schritt 2. 1011 00:49:55,680 --> 00:49:58,920 1012 00:49:58,920 --> 00:50:05,230 sonst verlassen, ein viertes Szenario, wenn wir haben keine Seiten zu biegen Sie links ab. 1013 00:50:05,230 --> 00:50:06,394 So konnten wir das bereinigen. 1014 00:50:06,394 --> 00:50:07,560 Und wir sollten diese bereinigen. 1015 00:50:07,560 --> 00:50:10,656 Dies ist sehr Pseudo-Code-Code, wenn Sie wird, sehr hohen Niveau Beschreibung. 1016 00:50:10,656 --> 00:50:12,280 Aber es ist im Allgemeinen die Idee zu erfassen. 1017 00:50:12,280 --> 00:50:16,040 >> Und wiederum in diesem Szenario wir haben den Begriff einer Bedingung, 1018 00:50:16,040 --> 00:50:20,450 ein Zweig, eine Gabel in der Straße, so dass wenn dies ein decision--, diesen Weg gehen, 1019 00:50:20,450 --> 00:50:23,082 wenn sonst, gehen auf diese Weise, wenn sonst, gehen auf diese Weise. 1020 00:50:23,082 --> 00:50:25,040 Und dies ist ein sehr häufig Programmiertechnik 1021 00:50:25,040 --> 00:50:27,721 welche Richtung zu entscheiden, zu gehen, sozusagen. 1022 00:50:27,721 --> 00:50:29,970 Und wir haben auch eine Art der Schleifenstruktur, wo 1023 00:50:29,970 --> 00:50:32,440 wir tun etwas wieder und wieder. 1024 00:50:32,440 --> 00:50:34,820 >> Nun, es stellt sich heraus, viel wie in diesem Beispiel, 1025 00:50:34,820 --> 00:50:37,660 Super präzise zu sein, ist wichtig. 1026 00:50:37,660 --> 00:50:42,180 Aber wir haben auch etwas gesehen dass wir halten Abstraktion aufrufen. 1027 00:50:42,180 --> 00:50:45,490 Was bedeutet es, Telefonbuch zu holen? 1028 00:50:45,490 --> 00:50:47,740 Wir sind nur eine Art der Einnahme in diesem Raum gewährt 1029 00:50:47,740 --> 00:50:49,340 dass das hat eine gewisse semantische Bedeutung. 1030 00:50:49,340 --> 00:50:51,740 wissen Art Alle von uns nur, oh, gut, wählen Sie das Telefonbuch auf. 1031 00:50:51,740 --> 00:50:52,864 Was bedeutet das eigentlich? 1032 00:50:52,864 --> 00:50:59,060 Nun, das wirklich bedeutet verlängern Hand, lehnen erstrecken sich die Finger, 1033 00:50:59,060 --> 00:51:03,890 kneifen Buch zwischen den Fingern, aufstehen, die Hand Richtung ziehen. 1034 00:51:03,890 --> 00:51:05,940 Und wir könnten wirklich sein pedantisch darüber, 1035 00:51:05,940 --> 00:51:08,640 Sein wirklich super präzise als zu dem, was ich tue. 1036 00:51:08,640 --> 00:51:13,300 Aber alle diese Schritte zusammen sind was es bedeutet, ein Telefonbuch zu holen. 1037 00:51:13,300 --> 00:51:16,940 >> Und so früher, als ich sagte, jede dieser ersten beiden Aussagen 1038 00:51:16,940 --> 00:51:20,830 werden kann, wie ein Gedanke von gehen oder eine Funktion, 1039 00:51:20,830 --> 00:51:24,090 wirklich bedeutet es, was wir halten eine Abstraktion aufrufen. 1040 00:51:24,090 --> 00:51:28,770 Es ist wie eine hohe konzeptionelle Beschreibung eines Problems, das 1041 00:51:28,770 --> 00:51:31,110 tatsächlich beinhaltet eine ganze Reihe von Schritten. 1042 00:51:31,110 --> 00:51:34,190 Und so auch dies ist ein wiederkehrende Thema in der Programmierung, 1043 00:51:34,190 --> 00:51:41,125 wobei ich könnte ein Programm schreiben, Verwendung Syntax wie 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 Und dann syntaktisch, ich bin gehen, um etwas zu stehlen 1047 00:51:46,510 --> 00:51:48,090 von den meisten Programmiersprachen. 1048 00:51:48,090 --> 00:51:51,270 >> Nun Schritt 1 sieht sogar mehr wie eine Funktion, 1049 00:51:51,270 --> 00:51:53,160 als Programmierer würde es nennen. 1050 00:51:53,160 --> 00:51:58,650 Es sieht aus wie Code, dass jemand hat einen Namen und gegeben gegeben 1051 00:51:58,650 --> 00:52:03,300 mir in anderen zu verwenden somehow-- Worte, was die Linie, die ich hervorgehoben habe 1052 00:52:03,300 --> 00:52:07,050 stellt Funktionalität, die vielleicht Ich habe nicht einmal selbst umzusetzen. 1053 00:52:07,050 --> 00:52:10,410 Jemand älter, weiser als mich bereits heraus 1054 00:52:10,410 --> 00:52:12,700 wie Sie zum Ausdruck bringen, den Begriff der Kommissionierung ein Telefonbuch auf. 1055 00:52:12,700 --> 00:52:15,860 Und es ist wie die fünf Schritte, die ich gerade rasselte, aus der Spitze von meinem Kopf. 1056 00:52:15,860 --> 00:52:19,350 >> Aber er oder sie bereits umgesetzt Dazu gab diese in mehreren Schritten 1057 00:52:19,350 --> 00:52:22,339 ein Name, pick_up_phone_book. 1058 00:52:22,339 --> 00:52:24,380 Und die Klammern genau das, was die meisten Programmierer 1059 00:52:24,380 --> 00:52:27,100 tun am Ende Aussagen wie diese. 1060 00:52:27,100 --> 00:52:30,190 Ich kann jetzt stehen auf seinem Schultern und nie wieder, 1061 00:52:30,190 --> 00:52:32,465 darüber nachzudenken, was es bedeutet, ein Telefonbuch zu holen. 1062 00:52:32,465 --> 00:52:34,090 Ich kann nur sagen, das Telefonbuch abholen. 1063 00:52:34,090 --> 00:52:36,690 Und das ist genau das, was alle von uns Menschen haben hier. 1064 00:52:36,690 --> 00:52:38,940 >> Als wir waren wahrscheinlich 1 Jahre alt, 2 Jahre alt, 1065 00:52:38,940 --> 00:52:41,690 jemand hatte uns zu lehren, was es bedeutete ein Telefonbuch zu holen. 1066 00:52:41,690 --> 00:52:43,810 Und seitdem, wir haben wegabstrahiert 1067 00:52:43,810 --> 00:52:46,739 von jenen sehr uninteressant mechanische Schritte. 1068 00:52:46,739 --> 00:52:48,530 Und wir haben nur ein intuitives Verständnis 1069 00:52:48,530 --> 00:52:50,480 von dem, was es bedeutet, wählen Sie ein Telefonbuch auf. 1070 00:52:50,480 --> 00:52:55,730 >> Und Sie können jetzt extrapolieren zu komplizierteren things-- 1071 00:52:55,730 --> 00:52:57,640 konstruieren ein Gebäude. 1072 00:52:57,640 --> 00:52:59,940 Wie, um einige Leute, das hat tatsächlich Bedeutung. 1073 00:52:59,940 --> 00:53:03,080 Um Bauunternehmer, Architekten, das hat eine Bedeutung. 1074 00:53:03,080 --> 00:53:06,400 Und sie würden wissen, was zu tun ist, wenn Ich sagte, gehen beim Bau eines Gebäudes. 1075 00:53:06,400 --> 00:53:10,520 >> Aber die meisten von uns im Zimmer konnte nicht befassen sich mit dieser Ebene der Abstraktion. 1076 00:53:10,520 --> 00:53:14,850 Sie müssen uns sagen, wie sich gehen die Schaufel und gehen, um den Beton zu bekommen 1077 00:53:14,850 --> 00:53:17,250 und nageln die Holzstücke zusammen und was sonst 1078 00:53:17,250 --> 00:53:18,830 beteiligt ist, ein Gebäude zu bauen. 1079 00:53:18,830 --> 00:53:21,690 Und das ist, weil wir nicht haben noch so programmiert worden, zu verstehen, 1080 00:53:21,690 --> 00:53:23,629 was es heißt, ein Gebäude zu errichten. 1081 00:53:23,629 --> 00:53:24,920 Wir haben nicht die Abstraktion. 1082 00:53:24,920 --> 00:53:26,570 Wir haben nicht die Funktionalität. 1083 00:53:26,570 --> 00:53:29,930 >> Und so, was Sie sehen in Programmiersprachen, im Allgemeinen, 1084 00:53:29,930 --> 00:53:34,570 vor allem modernere Sprachen, wie Java, PHP, Ruby und Python, 1085 00:53:34,570 --> 00:53:37,610 sie sind viel reifer als ältere Sprachen, 1086 00:53:37,610 --> 00:53:40,140 wie C und C ++ und noch andere. 1087 00:53:40,140 --> 00:53:42,580 Und so kommen sie mit mehr Funktionalität eingebaut. 1088 00:53:42,580 --> 00:53:45,640 Weitere Code wurde geschrieben von Menschen in der Vergangenheit 1089 00:53:45,640 --> 00:53:50,520 dass wir jetzt anrufen oder beschwören oder verwenden, wie ich anspielend 1090 00:53:50,520 --> 00:53:52,231 bei mit dieser markiert hier Linie. 1091 00:53:52,231 --> 00:53:55,230 Und so, obwohl wir reden hier nicht über Programmiersprachen per se, 1092 00:53:55,230 --> 00:54:00,230 nur Pseudo-Code-Code, die alle die Ideen sind immer noch in dieser Diskussion. 1093 00:54:00,230 --> 00:54:04,600 Und es stellt sich heraus Präzision super wichtig, wie Abstraktion. 1094 00:54:04,600 --> 00:54:06,570 Und lassen Sie uns versuchen, mitteilen, dass Sie wie folgt vor. 1095 00:54:06,570 --> 00:54:11,000 >> Ich hätte versehentlich verdorben Dies wird durch eine Folie auf dem Bildschirm blinkt 1096 00:54:11,000 --> 00:54:12,260 vorzeitig. 1097 00:54:12,260 --> 00:54:16,550 Aber lassen Sie mich für einen tapferen Freiwilligen fragen, wenn Sie nichts dagegen nicht kommen. 1098 00:54:16,550 --> 00:54:19,040 Sie würden vor dem sein Kamera, wenn Sie mit dem OK sind. 1099 00:54:19,040 --> 00:54:24,950 Möchte jemand bis zu kommen und geben hier Anweisungen an Ihre Kollegen? 1100 00:54:24,950 --> 00:54:29,540 Haben Sie einfach hierher zu kommen und stehen hier und ein paar Worte sagen. 1101 00:54:29,540 --> 00:54:32,890 >> Victoria lächelt die meisten und die Vermeidung von meinen Augen am meisten. 1102 00:54:32,890 --> 00:54:34,740 Wären Sie bereit, bis zu kommen? 1103 00:54:34,740 --> 00:54:35,240 OK. 1104 00:54:35,240 --> 00:54:38,480 Und wenn alle anderen an Ihre Plätze herausnehmen könnte ein Stück Schrott, Papier, 1105 00:54:38,480 --> 00:54:39,750 wenn du möchtest. 1106 00:54:39,750 --> 00:54:40,760 Gezeichnetes Papier ist in Ordnung. 1107 00:54:40,760 --> 00:54:41,990 Kommen Sie auf diese Weise um. 1108 00:54:41,990 --> 00:54:44,580 Oder einige des Papiers, Sie gestern gegeben wurden, 1109 00:54:44,580 --> 00:54:46,493 irgendein leeres Blatt Papier, wenn man könnte. 1110 00:54:46,493 --> 00:54:52,240 1111 00:54:52,240 --> 00:54:54,870 Und wenn Sie nicht haben, überhaupt, nur wenn Sie könnten fragen Sie Ihren Nachbarn. 1112 00:54:54,870 --> 00:55:04,220 1113 00:55:04,220 --> 00:55:07,580 >> Also für den Moment für Dieses Beispiel, Victoria 1114 00:55:07,580 --> 00:55:11,520 wird die Rolle zu spielen, ein Programmierer, ein Ingenieur, der 1115 00:55:11,520 --> 00:55:16,130 muss man alle zu programmieren, wie die Computer, um etwas zu tun. 1116 00:55:16,130 --> 00:55:19,570 Und wir werden sehen, was Annahmen Sie entscheiden, zu machen. 1117 00:55:19,570 --> 00:55:22,700 Wir werden sehen, wie genau sie sein will. 1118 00:55:22,700 --> 00:55:26,220 Und wenn dieser Demonstration geht didaktisch gut, viele Fehler 1119 00:55:26,220 --> 00:55:29,220 wird gemacht, dass wir dann verwenden dass als eine Gelegenheit zur Diskussion. 1120 00:55:29,220 --> 00:55:32,010 Aber die Herausforderung für Sie sollten sein, diese Fehler zu vermeiden, 1121 00:55:32,010 --> 00:55:32,896 ein guter Programmierer. 1122 00:55:32,896 --> 00:55:35,520 Und so ist die Herausforderung bei der Hand, wenn Sie würden gern hier zu Fuß über, 1123 00:55:35,520 --> 00:55:38,799 ist vor Victoria auf dem Bildschirm hier-- und hoffentlich keiner von euch 1124 00:55:38,799 --> 00:55:40,590 denken Sie daran, wenn ich blitzte auf dem Bildschirm. 1125 00:55:40,590 --> 00:55:44,097 Und drehen gar nicht um, weil es ist ein weiterer Bildschirm in diesem Raum 1126 00:55:44,097 --> 00:55:44,930 dass ich abschalten kann. 1127 00:55:44,930 --> 00:55:46,620 Also nicht umdrehen. 1128 00:55:46,620 --> 00:55:49,090 >> Vor Victoria ist, dass gleiche Schrei. 1129 00:55:49,090 --> 00:55:54,170 Und nun ihren Job ist es, Ihnen alles zu sagen, auf dem Stück Papier, was zu zeichnen. 1130 00:55:54,170 --> 00:55:57,020 Und wir werden sehen, basierend auf verbale Anweisungen allein, 1131 00:55:57,020 --> 00:56:00,020 Computer-Code, wenn man so will, wie genau Ihre Zeichnungen 1132 00:56:00,020 --> 00:56:02,330 sind-- Ihre Implementierungen sind. 1133 00:56:02,330 --> 00:56:02,980 Sinn ergeben? 1134 00:56:02,980 --> 00:56:03,604 >> PUBLIKUM: Ja. 1135 00:56:03,604 --> 00:56:04,980 DAVID MALAN: OK, führen. 1136 00:56:04,980 --> 00:56:06,030 >> PUBLIKUM: Zeichnen Sie ein Quadrat. 1137 00:56:06,030 --> 00:56:09,050 >> [LACHEN] 1138 00:56:09,050 --> 00:56:12,310 >> DAVID MALAN: Und nein Fragen können aufgefordert werden. 1139 00:56:12,310 --> 00:56:13,720 Kann nur das tun, was dir gesagt wird. 1140 00:56:13,720 --> 00:56:17,570 1141 00:56:17,570 --> 00:56:22,550 Oh, und wenn Sie heute Rutschen Öffnen Sie in einem Tab, schauen Sie nicht auf Ihre Registerkarte. 1142 00:56:22,550 --> 00:56:23,670 OK? 1143 00:56:23,670 --> 00:56:26,135 >> PUBLIKUM: OK, einen Kreis zu zeichnen. 1144 00:56:26,135 --> 00:56:32,544 1145 00:56:32,544 --> 00:56:34,872 Ein slope-- kann ich Steigung sagen? 1146 00:56:34,872 --> 00:56:35,830 DAVID MALAN: Bis zu Ihnen. 1147 00:56:35,830 --> 00:56:38,230 1148 00:56:38,230 --> 00:56:38,980 PUBLIKUM: Hang. 1149 00:56:38,980 --> 00:56:46,330 1150 00:56:46,330 --> 00:56:49,795 Und ein Dreieck. 1151 00:56:49,795 --> 00:56:50,850 >> DAVID MALAN: Alles in Ordnung. 1152 00:56:50,850 --> 00:56:52,286 Und bleiben Sie hier nur für einen Moment. 1153 00:56:52,286 --> 00:56:56,046 1154 00:56:56,046 --> 00:56:58,910 Und ich werde kommen um in nur einem Augenblick. 1155 00:56:58,910 --> 00:57:02,420 Und keine Notwendigkeit, Ihre Namen auf sie setzen. 1156 00:57:02,420 --> 00:57:05,030 Lassen Sie mich herum kommen und sammeln Sie Ihre Zeichnungen, 1157 00:57:05,030 --> 00:57:08,330 wenn Sie nichts dagegen, sie nicht ausreißen. 1158 00:57:08,330 --> 00:57:12,110 >> Hier ist, was wir zurückkamen. 1159 00:57:12,110 --> 00:57:14,770 Ich werde es auf die Leinwand projizieren. 1160 00:57:14,770 --> 00:57:18,310 Ich sehe ein Quadrat, ein Kreis, eine Steigung und ein Dreieck. 1161 00:57:18,310 --> 00:57:20,130 Das war also eine Antwort gibt. 1162 00:57:20,130 --> 00:57:23,640 Und let's-- hoppla. 1163 00:57:23,640 --> 00:57:25,370 Vielen Dank. 1164 00:57:25,370 --> 00:57:30,710 Hier ist ein weiteres Sortiment, und eine dahinter. 1165 00:57:30,710 --> 00:57:34,130 1166 00:57:34,130 --> 00:57:37,120 >> So scheinen sie alle den Geist zu erfassen. 1167 00:57:37,120 --> 00:57:38,600 Vielen Dank. 1168 00:57:38,600 --> 00:57:44,970 Es gibt einen anderen, und hier ist eine andere. 1169 00:57:44,970 --> 00:57:51,590 Die Steigung Interpretation ist ein wenig anders, wenig kurvig. 1170 00:57:51,590 --> 00:57:57,140 Und die nächste, entweder wegen der mit dem man wunderbar Spezifität haben 1171 00:57:57,140 --> 00:58:03,520 beschrieben, oder vielleicht haben Sie Art bevor es sah, dies in der Tat 1172 00:58:03,520 --> 00:58:06,340 was Victoria beschrieb tatsächlich. 1173 00:58:06,340 --> 00:58:09,190 >> Aber jetzt, diejenigen von Ihnen, hat es nicht ganz richtig, 1174 00:58:09,190 --> 00:58:11,140 Lassen Sie uns hier einige Einwände bieten. 1175 00:58:11,140 --> 00:58:13,770 So Victoria die erste ein Quadrat zu zeichnen. 1176 00:58:13,770 --> 00:58:15,830 Und jetzt können wir davon ausgehen, im Interesse der heute 1177 00:58:15,830 --> 00:58:17,538 dass jeder weiß, wie ein Quadrat zu zeichnen. 1178 00:58:17,538 --> 00:58:20,590 Aber das ist nicht ganz klar, nicht wahr? 1179 00:58:20,590 --> 00:58:23,220 Wie sonst könnte man gezeichnet ein Quadrat, oder wo 1180 00:58:23,220 --> 00:58:27,114 könnten einige der Zweideutigkeiten sein hier für den Computer? 1181 00:58:27,114 --> 00:58:28,280 PUBLIKUM: Lage und Größe. 1182 00:58:28,280 --> 00:58:28,980 DAVID MALAN: Standort, nicht wahr? 1183 00:58:28,980 --> 00:58:32,070 Alle von Ihnen hatte ein Papier von einem gewissen Form, im allgemeinen Rechtecke, aber leicht 1184 00:58:32,070 --> 00:58:32,830 verschiedene Größen. 1185 00:58:32,830 --> 00:58:36,250 Aber man könnte sicherlich gezogen, wenn man wollte, einen großen Platz, vielleicht 1186 00:58:36,250 --> 00:58:37,220 ein kleines Quadrat. 1187 00:58:37,220 --> 00:58:38,417 Vielleicht war es gedreht. 1188 00:58:38,417 --> 00:58:39,500 Ich glaube nicht, dass wir das sahen. 1189 00:58:39,500 --> 00:58:41,790 Aber es hätte mehr Diamant gewesen wie aber immer noch, dennoch, 1190 00:58:41,790 --> 00:58:42,900 Mathematisch wird ein Quadrat. 1191 00:58:42,900 --> 00:58:44,850 Das war also wohl nicht eindeutig. 1192 00:58:44,850 --> 00:58:46,709 >> Dann sagte sie, einen Kreis zu zeichnen. 1193 00:58:46,709 --> 00:58:49,250 Einige von Ihnen haben ziehen es neben es, die nicht unzumutbar ist, 1194 00:58:49,250 --> 00:58:52,450 weil die Menschen neigen dazu, zu denken oder zu lesen rechts in den meisten Sprachen nach links, also nicht 1195 00:58:52,450 --> 00:58:53,017 eine schlechte Vermutung. 1196 00:58:53,017 --> 00:58:55,100 Aber das Kreis könnte war im Quadrat, 1197 00:58:55,100 --> 00:58:57,600 hätte um die gewesen Platz, könnte anderswo gewesen 1198 00:58:57,600 --> 00:58:59,480 auf dem Blatt, so wohl eindeutig. 1199 00:58:59,480 --> 00:59:03,290 >> Slope könnte vielleicht gewesen wobei die meisten Freiheiten verbal 1200 00:59:03,290 --> 00:59:04,200 mit dem, was das bedeutet. 1201 00:59:04,200 --> 00:59:06,980 Und einige von Ihnen interpretiert es als eine Wellenlinie 1202 00:59:06,980 --> 00:59:08,560 oder eine gerade Linie, oder dergleichen. 1203 00:59:08,560 --> 00:59:11,719 Und dann Dreieck, könnte auch haben wurden in einer beliebigen Anzahl von Möglichkeiten, orientiert. 1204 00:59:11,719 --> 00:59:14,760 Also kurz gesagt, auch mit etwas, das Sie schauen und du bist wie, wow, so 1205 00:59:14,760 --> 00:59:17,020 einfach, könnte ein Kind zeichnen diese, auch nicht 1206 00:59:17,020 --> 00:59:19,640 wirklich, es sei denn, du bist super, super überzeugend 1207 00:59:19,640 --> 00:59:22,045 und sagen dem Computer genau das, was zu tun ist. 1208 00:59:22,045 --> 00:59:24,420 Also, wenn wir könnten, wenn Sie ein weiteres Blatt Papier, lassen Sie uns 1209 00:59:24,420 --> 00:59:26,710 versuchen, diese noch einmal. 1210 00:59:26,710 --> 00:59:29,880 Und ich werde Victoria ein zu geben andere Beispiel auf dem Bildschirm hier. 1211 00:59:29,880 --> 00:59:34,060 Und wieder, nicht umdrehen und schaut nicht auf den Folien. 1212 00:59:34,060 --> 00:59:37,304 Und ich werde sie geben einen Moment darüber nachdenken, wie diese zu beschreiben. 1213 00:59:37,304 --> 00:59:39,012 Lassen Sie sie nicht sehen die Angst in deinen Augen. 1214 00:59:39,012 --> 00:59:40,820 >> [LACHEN] 1215 00:59:40,820 --> 00:59:43,710 >> Und wieder, diesmal Hebel einige dieser Imbissbuden 1216 00:59:43,710 --> 00:59:48,130 und versuchen fast jeder bekommen zumindest die richtige Antwort. 1217 00:59:48,130 --> 00:59:52,260 >> PUBLIKUM: OK, nehmen ein Stück Papier, schauen 1218 00:59:52,260 --> 00:59:54,500 in der Mitte dieses Stück Papier. 1219 00:59:54,500 --> 00:59:59,591 In der Mitte dieses Stück Papier, einen Würfel zu ziehen. 1220 00:59:59,591 --> 01:00:01,244 >> [LACHEN] 1221 01:00:01,244 --> 01:00:02,660 DAVID MALAN: Was haben wir gelernt? 1222 01:00:02,660 --> 01:00:03,540 Wir waren so nah. 1223 01:00:03,540 --> 01:00:06,320 1224 01:00:06,320 --> 01:00:09,045 OK, wiederholen, wenn Sie könnten, für jeden etwas dabei. 1225 01:00:09,045 --> 01:00:13,210 >> PUBLIKUM: In der Mitte der Stück Papier, zeichnen Sie ein Objekt, 1226 01:00:13,210 --> 01:00:14,842 die wie ein Würfel aussieht. 1227 01:00:14,842 --> 01:00:17,332 >> DAVID MALAN: OK, das ist alles, was Sie bekommen, mit zu arbeiten. 1228 01:00:17,332 --> 01:00:20,010 1229 01:00:20,010 --> 01:00:23,080 Erlauben Sie mir, analytisch zu sein und nicht so sehr entscheidend, 1230 01:00:23,080 --> 01:00:25,720 sondern um den Anspruch machen dass Victoria definitiv 1231 01:00:25,720 --> 01:00:28,967 scheint sehr zu denken in zu hohe Abstraktionen, die 1232 01:00:28,967 --> 01:00:29,800 ist nicht unvernünftig. 1233 01:00:29,800 --> 01:00:32,160 Denn sonst, würden wir alle sein ziemlich dysfunktional, 1234 01:00:32,160 --> 01:00:35,740 wenn wir schon einmal so genau zu sein mit allem, was wir tun in der Welt. 1235 01:00:35,740 --> 01:00:38,890 >> Aber zu sagen, gehen Sie auf die middle-- I dachten, dass wir auf einem so guten Track 1236 01:00:38,890 --> 01:00:42,340 dort geht wie der sehr Mitte von der Seite und dann einen Würfel zeichnen. 1237 01:00:42,340 --> 01:00:45,730 So hat sie in Abstraktionen zu denken, Weil sie immer noch sehen 1238 01:00:45,730 --> 01:00:48,490 was auf dem Bildschirm, wie in der Tat ein Würfel. 1239 01:00:48,490 --> 01:00:51,185 Aber es gibt so viele Möglichkeiten, denn dort Interpretation. 1240 01:00:51,185 --> 01:00:53,560 Und in der Tat ist es so viele andere Möglichkeiten, wie Sie zum Ausdruck bringen konnte 1241 01:00:53,560 --> 01:00:55,101 dass, was ich in einem Moment vorschlagen werde. 1242 01:00:55,101 --> 01:00:59,770 Hier haben wir also eine Inkarnation der picture-- whoops-- ein 1243 01:00:59,770 --> 01:01:02,830 Inkarnation des Bildes, so dass ein wenig Dreidimensionalität, um es, 1244 01:01:02,830 --> 01:01:04,160 was nett ist. 1245 01:01:04,160 --> 01:01:08,470 >> Hier ist ein weiteres, in dem Sie die haben gleiche, obwohl es Art eines offenen Kubus ist. 1246 01:01:08,470 --> 01:01:12,020 Einige Leute haben es ein wenig mehr flach, zweidimensional. 1247 01:01:12,020 --> 01:01:13,910 Und das ist in Ordnung. 1248 01:01:13,910 --> 01:01:17,380 So gibt zwar in der Mitte des Papiers. 1249 01:01:17,380 --> 01:01:22,720 Dieses, das ich denke, Sie werden wie, denn wenn wir gehen hier, 1250 01:01:22,720 --> 01:01:25,130 das ist, was sie beschreibt. 1251 01:01:25,130 --> 01:01:29,570 So, jetzt lassen Sie mich schlagen, wie sonst wir könnten diese Situation zu beschreiben. 1252 01:01:29,570 --> 01:01:34,070 >> Zurück in den Tag, einer der am meisten mehr gemeinsame Wege zu lernen, Programmierung 1253 01:01:34,070 --> 01:01:38,900 war, Code zu schreiben, schreibt Linien von Anweisungen, 1254 01:01:38,900 --> 01:01:42,640 dass kontrolliert ein wenig Schildkröte auf dem Bildschirm. 1255 01:01:42,640 --> 01:01:45,660 Logo und andere Varianten dieser war der Name der Sprache. 1256 01:01:45,660 --> 01:01:47,550 Und die Schildkröte lebte in einer Welt. 1257 01:01:47,550 --> 01:01:49,970 >> Also diese rechteckigen annehmen Raum ist seine Welt. 1258 01:01:49,970 --> 01:01:53,340 Und Sie würden von assuming-- ich anfangen weiß wirklich nicht, wie Schildkröte zu zeichnen, 1259 01:01:53,340 --> 01:01:54,740 so wollen wir es so machen. 1260 01:01:54,740 --> 01:01:57,340 Und dann hat er eine Schale bekam und dann vielleicht ein paar Meter. 1261 01:01:57,340 --> 01:01:59,840 So haben Sie vielleicht dieses kleine Zeichen auf dem Bildschirm. 1262 01:01:59,840 --> 01:02:02,270 >> Und die Aufgabe dieser Programmiersprache 1263 01:02:02,270 --> 01:02:06,070 war die Schildkröte zu zwingen gehen nach oben, unten, links, rechts 1264 01:02:06,070 --> 01:02:08,420 und seine Feder niederzulegen oder Pick seine Feder nach oben, 1265 01:02:08,420 --> 01:02:12,720 so konnte er tatsächlich auf dem Bildschirm zeichnen in dieser sehr flachen, rechteckigen Welt. 1266 01:02:12,720 --> 01:02:16,850 Also, wo ich dachte, Sie könnten gehen werden, und wo Sie sollten Tauchen betrachten 1267 01:02:16,850 --> 01:02:19,520 bis zu geistig bei der Beschreibung Anweisungen allgemeiner 1268 01:02:19,520 --> 01:02:21,720 Ich würde behaupten, wird setzen Sie Ihre Stift nach unten in der middle-- 1269 01:02:21,720 --> 01:02:23,100 und wir loswerden der Schildkröte, weil ich kann nicht wirklich 1270 01:02:23,100 --> 01:02:24,680 halten ihn sehr gut zeichnen. 1271 01:02:24,680 --> 01:02:27,170 >> Und nun, wie sonst könnte Ich sage einen Würfel ziehen? 1272 01:02:27,170 --> 01:02:32,830 Nun, wir könnten so etwas wie Draw sagen eine diagonale Linie Nordosten, zum Beispiel, 1273 01:02:32,830 --> 01:02:35,182 oder in einem Winkel von 45 Grad nach oben. 1274 01:02:35,182 --> 01:02:36,640 Und das könnte mir haben hier bekommen. 1275 01:02:36,640 --> 01:02:38,380 Und ich bin mir ziemlich weit von einem Würfel. 1276 01:02:38,380 --> 01:02:42,430 Aber jetzt konnte ich etwas sagen wie um 90 Grad nach links 1277 01:02:42,430 --> 01:02:47,370 und ziehen Sie eine Linie von gleich lang Nordwest. 1278 01:02:47,370 --> 01:02:49,470 Und ich konnte weiter mit ähnlichen Richtungen. 1279 01:02:49,470 --> 01:02:50,720 Und es wird nicht einfach sein. 1280 01:02:50,720 --> 01:02:53,345 Und ehrlich gesagt, wir würden wahrscheinlich haben für fünf Minuten hier gewesen. 1281 01:02:53,345 --> 01:02:59,600 Aber vielleicht hätten wir bekommen zu etwas, das am Ende des Tages, 1282 01:02:59,600 --> 01:03:04,280 wobei ein Würfel landet, aber wir tauchte innerhalb dieser Abstraktion 1283 01:03:04,280 --> 01:03:06,370 es bei einer solch niedrigen zu tun Niveau, dass man nicht wirklich 1284 01:03:06,370 --> 01:03:09,795 sehen, was Sie, bis das ganze tun was ist eigentlich dort auf der Seite. 1285 01:03:09,795 --> 01:03:12,670 Und so ist dies ein allgemeiner Grundsatz, wieder, von programming-- dieser Idee 1286 01:03:12,670 --> 01:03:13,320 der Abstraktion. 1287 01:03:13,320 --> 01:03:15,920 Es ist so wunderbar kraftvoll, weil wieder, 1288 01:03:15,920 --> 01:03:19,281 sie sagte nur, einen Würfel zu zeichnen, das alle uns würde ziemlich schnell grok. 1289 01:03:19,281 --> 01:03:21,030 Wir würden nur zu verstehen, OK, einen Würfel zu ziehen. 1290 01:03:21,030 --> 01:03:24,030 Wir wissen vielleicht nicht die Orientierung, so konnten wir ein wenig genauer zu sein, 1291 01:03:24,030 --> 01:03:26,297 aber wir können in der Regel vorstellen oder wissen, was ein Würfel ist. 1292 01:03:26,297 --> 01:03:28,130 Und das ist nützlich, denn jedes Mal, wenn Sie 1293 01:03:28,130 --> 01:03:31,540 setzte sich als Programmierer unten an Tastatur-Code zu schreiben, 1294 01:03:31,540 --> 01:03:33,912 wenn Sie hatte bei so zu denken ein niedriges Niveau, keiner von uns 1295 01:03:33,912 --> 01:03:35,120 würde jemals etwas getan. 1296 01:03:35,120 --> 01:03:38,259 Und schon gar keiner von uns würde den Prozess des Schreibens Code genießen. 1297 01:03:38,259 --> 01:03:41,550 Es wäre wie in 0 und 1 ist das Schreiben, das war ehrlich gesagt, nicht so lange her, 1298 01:03:41,550 --> 01:03:43,680 Menschen wurden in 0 und 1 ist das Schreiben von Code. 1299 01:03:43,680 --> 01:03:46,960 Und wir kamen sehr schnell mit diese höhere Ebene languages-- 1300 01:03:46,960 --> 01:03:49,410 C ++ und Java und andere. 1301 01:03:49,410 --> 01:03:52,500 >> Also lassen Sie uns versuchen, diese einmal mehr vor Augen zu Flip die Tische, so dass alle von uns 1302 01:03:52,500 --> 01:03:55,450 die Chance haben, zu denken, in ziemlich der gleichen Weise. 1303 01:03:55,450 --> 01:03:59,230 Könnten wir bekommen noch ein Freiwilliger dieses Zeit in den Vorstand zu kommen und zu zeichnen, 1304 01:03:59,230 --> 01:04:01,480 rezitieren nicht? 1305 01:04:01,480 --> 01:04:02,070 Ja ok. 1306 01:04:02,070 --> 01:04:04,820 Ben, komm nach oben. 1307 01:04:04,820 --> 01:04:08,510 Und Ben, in diesem Fall, wenn Sie Gesicht der Vorstand, nicht Blick nach links, 1308 01:04:08,510 --> 01:04:09,370 nicht richtig angezeigt. 1309 01:04:09,370 --> 01:04:12,367 Nur tun, was Ihr Kollegen sagen, Sie hier. 1310 01:04:12,367 --> 01:04:14,950 Und für sonst jeder in der Zimmer, Sie sind jetzt der Programmierer. 1311 01:04:14,950 --> 01:04:16,020 Er ist der Computer. 1312 01:04:16,020 --> 01:04:21,395 Und das Bild, das ich habe hier gewählt im Voraus ist diese hier. 1313 01:04:21,395 --> 01:04:24,490 1314 01:04:24,490 --> 01:04:27,660 Sie sind just-- sie denken von einem lustigen Witz ist alles. 1315 01:04:27,660 --> 01:04:31,510 >> So würde nicht gerne jemanden freiwillig die erste Anweisung 1316 01:04:31,510 --> 01:04:35,470 oder Aussage, dass sollte Befehl Bens Stift? 1317 01:04:35,470 --> 01:04:40,850 Und wir werden dies gemeinsam tun, vielleicht eine Anweisung von jeder Person. 1318 01:04:40,850 --> 01:04:41,440 Es tut mir Leid? 1319 01:04:41,440 --> 01:04:42,440 >> PUBLIKUM: Zeichne einen Kreis. 1320 01:04:42,440 --> 01:04:45,866 DAVID MALAN: Zeichnen Sie einen Kreis I ist das erste, was zu hören. 1321 01:04:45,866 --> 01:04:47,100 >> PUBLIKUM: Bis oben. 1322 01:04:47,100 --> 01:04:48,140 >> DAVID MALAN: Bis oben. 1323 01:04:48,140 --> 01:04:52,504 OK, können wir Sie zu löschen, rückgängig gemacht werden. 1324 01:04:52,504 --> 01:04:53,420 Und nun, jemand anderes. 1325 01:04:53,420 --> 01:04:55,994 Dan, würden Sie bequem sein die nächste Anweisung anbietet? 1326 01:04:55,994 --> 01:05:02,070 >> PUBLIKUM: Klar, das Zentrum ziehen des Bodens des Kreises, 1327 01:05:02,070 --> 01:05:07,121 mit einem small-- ein wenig kleinen Raum aus, dass, 1328 01:05:07,121 --> 01:05:15,420 zeichnen Sie eine gerade Linie nach unten zu drei Viertel des Weges auf der Platine 1329 01:05:15,420 --> 01:05:17,845 einen leichten Winkel auf der linken Seite. 1330 01:05:17,845 --> 01:05:21,250 1331 01:05:21,250 --> 01:05:22,620 >> DAVID MALAN: Gut. 1332 01:05:22,620 --> 01:05:24,086 >> PUBLIKUM: Leichte Winkel. 1333 01:05:24,086 --> 01:05:32,807 >> DAVID MALAN: Rückgängig, Strg-Z. OK. 1334 01:05:32,807 --> 01:05:34,890 Andrew, möchten Sie bieten bis die nächste Anweisung? 1335 01:05:34,890 --> 01:05:35,515 >> PUBLIKUM: Sicher. 1336 01:05:35,515 --> 01:05:43,250 Von der Unterseite dieser Linie, eine weitere leichte angle-- 1337 01:05:43,250 --> 01:05:49,024 whoops-- vielleicht etwa ein Drittel der Länge [unverständlich], 1338 01:05:49,024 --> 01:05:52,928 leicht schräg nach unten und wie ein Drittel der Länge von [unverständlich]. 1339 01:05:52,928 --> 01:05:57,550 1340 01:05:57,550 --> 01:06:00,578 Also ja, von diesem Punkt, Ziehen Sie eine Linie ein drittes 1341 01:06:00,578 --> 01:06:04,150 der Länge des vorherigen Linie weiter nach links. 1342 01:06:04,150 --> 01:06:08,416 1343 01:06:08,416 --> 01:06:10,040 >> DAVID MALAN: Das OK? 1344 01:06:10,040 --> 01:06:12,330 Gerade, das ist in Ordnung? 1345 01:06:12,330 --> 01:06:14,900 OK, Olivier, Sie wollen die nächste zu opfern? 1346 01:06:14,900 --> 01:06:28,564 >> PUBLIKUM: [unverständlich] aus dem Boden des Kreises, [unverständlich]. 1347 01:06:28,564 --> 01:06:32,000 1348 01:06:32,000 --> 01:06:45,126 Zeichnen Sie auf der rechten Seite von [unverständlich] Zentimeter. 1349 01:06:45,126 --> 01:06:46,560 >> [LACHEN] 1350 01:06:46,560 --> 01:06:49,872 >> DAVID MALAN: Ich glaube, du gehst zu das ist hier Zoll konvertieren. 1351 01:06:49,872 --> 01:06:50,764 >> PUBLIKUM: Stop. 1352 01:06:50,764 --> 01:06:52,186 >> [LACHEN] 1353 01:06:52,186 --> 01:06:54,570 >> DAVID MALAN: OK. 1354 01:06:54,570 --> 01:06:56,660 [? Ara,?] Sie wollen die nächste zu opfern? 1355 01:06:56,660 --> 01:07:00,653 1356 01:07:00,653 --> 01:07:15,443 >> PUBLIKUM: Zeichnen Sie ein [unverständlich] die obere [unverständlich] gleich. 1357 01:07:15,443 --> 01:07:28,829 [Unverständlich] Kreis, um die zeichnen [Unverständlich] und ziehen [unverständlich]. 1358 01:07:28,829 --> 01:07:33,799 1359 01:07:33,799 --> 01:07:36,730 >> DAVID MALAN: OK, nicht mehr rückgängig gemacht werden. 1360 01:07:36,730 --> 01:07:38,390 Lassen Sie uns ein oder zwei weitere Anweisungen. 1361 01:07:38,390 --> 01:07:40,825 Chris, möchten Sie ein Angebot? 1362 01:07:40,825 --> 01:07:46,182 >> PUBLIKUM: Am unteren Ende des Kreises, [unverständlich] 1363 01:07:46,182 --> 01:07:51,528 zeichnen eine gleiche Linie slopping nach links unten [unverständlich]. 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 Wir did-- Karim? 1368 01:08:02,472 --> 01:08:06,891 1369 01:08:06,891 --> 01:08:13,765 >> PUBLIKUM: Ausgehend von der rechten Linie, das Ende der linken Linie, wobei der Boden, 1370 01:08:13,765 --> 01:08:21,012 Sie gehen über zu gehen Sie nach rechts die gleiche Länge wie die Linie 1371 01:08:21,012 --> 01:08:27,680 Sie sind auf, Zeichnung das Recht [unverständlich]. 1372 01:08:27,680 --> 01:08:33,572 1373 01:08:33,572 --> 01:08:37,991 [Unverständlich] Grad, so [unverständlich] Grad auf der rechten Seite. 1374 01:08:37,991 --> 01:08:41,919 1375 01:08:41,919 --> 01:08:43,500 >> DAVID MALAN: Alles in Ordnung. 1376 01:08:43,500 --> 01:08:44,029 Lassen Sie uns pausieren. 1377 01:08:44,029 --> 01:08:44,950 Sie noch nicht umdrehen. 1378 01:08:44,950 --> 01:08:46,783 Lassen Sie uns innehalten, und lassen Sie uns versuchen, einen anderen Versuch 1379 01:08:46,783 --> 01:08:48,850 bevor wir zu Ben offenbaren was er auf sich gezogen. 1380 01:08:48,850 --> 01:08:51,189 Können Sie Ben shuffle die right-- oder tatsächlich, 1381 01:08:51,189 --> 01:08:54,080 nein, lassen Sie uns einfach Sie geben ein anderes Brett, sogar noch besser. 1382 01:08:54,080 --> 01:08:57,640 So würde jemand wie jetzt mehr des Ansatzes zu nehmen 1383 01:08:57,640 --> 01:09:02,149 dass Victoria auf früher stattfand, wo wir sprechen in einer höheren Ebene Abstraktion 1384 01:09:02,149 --> 01:09:05,149 und in nur einem Satz oder zwei beschreiben zu Ben 1385 01:09:05,149 --> 01:09:07,229 was ohne zu ziehen Einstieg in das Unkraut, 1386 01:09:07,229 --> 01:09:10,670 sozusagen auf diese ein niedrigeres Niveau? 1387 01:09:10,670 --> 01:09:11,206 Victoria. 1388 01:09:11,206 --> 01:09:11,706 [LACHEN] 1389 01:09:11,706 --> 01:09:14,249 PUBLIKUM: Zeichnen Sie ein Bild der Mann zu Fuß. 1390 01:09:14,249 --> 01:09:18,866 Und seine Beine und Arme haben die rechte Seite zu sein. 1391 01:09:18,866 --> 01:09:20,505 >> DAVID MALAN: OK, das ist alles, was Sie bekommen. 1392 01:09:20,505 --> 01:09:27,210 1393 01:09:27,210 --> 01:09:27,710 Gut. 1394 01:09:27,710 --> 01:09:31,609 Warum gehen wir nicht zu Ben zeigen, was er tat. 1395 01:09:31,609 --> 01:09:32,890 So eine Runde Applaus. 1396 01:09:32,890 --> 01:09:35,700 Das war das härteste vielleicht. 1397 01:09:35,700 --> 01:09:37,931 >> Also auch wenn wir reden in ziemlich albern Begriffe 1398 01:09:37,931 --> 01:09:39,680 etwa nur Zeichnung Bilder, hoffentlich 1399 01:09:39,680 --> 01:09:44,226 schätzen kann wirklich den Grad der Ausdruckskraft, die erforderlich sein könnten, 1400 01:09:44,226 --> 01:09:45,850 um einen Computer zu sagen, was zu tun ist. 1401 01:09:45,850 --> 01:09:50,370 Und in der Tat ist die Tatsache, dass Ben dies war in der Lage zu ziehen, so schnell 1402 01:09:50,370 --> 01:09:54,227 Art Testament ist ein zu verwenden Sprache, vielleicht ein höheres Niveau 1403 01:09:54,227 --> 01:09:57,060 Version von Englisch, das es ihm ermöglicht nur mit Worten, oder Worte hören 1404 01:09:57,060 --> 01:09:59,990 von Victoria, die ihm erlauben, diese abstractions-- nur ziehen 1405 01:09:59,990 --> 01:10:03,020 eine Figur auf den Fuß right-- dass Art hat 1406 01:10:03,020 --> 01:10:07,100 einige semantische Bedeutung dafür, dass nicht fast so offensichtlich, wenn Sie gerade 1407 01:10:07,100 --> 01:10:10,310 setzen Sie den Stift zu sagen, nach unten, ziehen nach rechts, nach links ziehen. 1408 01:10:10,310 --> 01:10:12,420 >> Und so auch dies ist sehr gemeinsam in der Programmierung. 1409 01:10:12,420 --> 01:10:15,253 Dies würde sagen, wie ein zu sein sehr niedrigen Niveau Sprache, Programmierung 1410 01:10:15,253 --> 01:10:16,730 in 0 und 1 ist, wenn man so will. 1411 01:10:16,730 --> 01:10:19,320 Und das wäre ein höheres Niveau sein Sprachenprogrammierung in Java, 1412 01:10:19,320 --> 01:10:20,278 oder etwas ähnliches. 1413 01:10:20,278 --> 01:10:22,050 Ein bisschen ein Simplifizierung, aber das ist 1414 01:10:22,050 --> 01:10:24,310 die Art, wie emotional das Gefühl, dass Sie sich fühlen, wenn 1415 01:10:24,310 --> 01:10:26,630 mit einer Art von Sache oder ein anderes. 1416 01:10:26,630 --> 01:10:32,650 Ein bisschen Frust hier durch die Notwendigkeit für eine solche Präzision, aber die Möglichkeit, 1417 01:10:32,650 --> 01:10:34,930 etwas lockerer zu sein mit die Interpretation hier. 1418 01:10:34,930 --> 01:10:38,060 Aber natürlich Bugs kann als Folge auftreten. 1419 01:10:38,060 --> 01:10:40,500 >> Wenn Sie bei home-- möchten wir wird diese in class-- nicht tun 1420 01:10:40,500 --> 01:10:41,900 aber wenn Sie möchten bringen diese ein Haus, 1421 01:10:41,900 --> 01:10:43,387 Ich dachte, wir in diese tauchen würde. 1422 01:10:43,387 --> 01:10:45,970 Also, wenn Sie möchten, dass diese zu spielen Spiel mit Ihrem Lebensgefährten 1423 01:10:45,970 --> 01:10:49,180 oder Kinder oder dergleichen, Sie auch könnte, dass zu genießen. 1424 01:10:49,180 --> 01:10:54,460 >> So gehen wir vor und Blick auf eine letzte was hier für Computational Denken. 1425 01:10:54,460 --> 01:10:57,010 Und das bringt uns zu John Oliver, nicht für den Clip 1426 01:10:57,010 --> 01:11:00,070 Sie hätte gestern Abend gesehen, aber zu einem etwas jüngsten Ausgabe. 1427 01:11:00,070 --> 01:11:03,310 Ein paar Monate zurück, Volkswagen nahm einiges an Flakfeuer 1428 01:11:03,310 --> 01:11:05,651 wenn Sie aus welchem ​​Grund, wissen? 1429 01:11:05,651 --> 01:11:07,025 Was haben sie bekommen in Schwierigkeiten? 1430 01:11:07,025 --> 01:11:10,270 1431 01:11:10,270 --> 01:11:14,030 >> Ja, so emissions-- sie versuchten, die Emissionen zu schlagen 1432 01:11:14,030 --> 01:11:19,100 Tests, die von im wesentlichen mit ihren Autos belasten die Umwelt weniger 1433 01:11:19,100 --> 01:11:23,620 wenn ihre Autos wurden getestet und belasten die Umwelt mehr 1434 01:11:23,620 --> 01:11:25,547 wenn die Autos wurden nicht getestet werden. 1435 01:11:25,547 --> 01:11:28,630 Und was immer interessanter in der Welt, als Sie inferred haben 1436 01:11:28,630 --> 01:11:34,072 von Diskussionen über like-- was es-- Carplay, die Apple-Software für Autos 1437 01:11:34,072 --> 01:11:35,780 und die Tatsache, dass viele von uns zunehmend 1438 01:11:35,780 --> 01:11:38,390 haben Touch-Screens in unseren Autos, es gibt eine erschreckende Menge 1439 01:11:38,390 --> 01:11:41,250 von Software in der Menschen Autos heute, die 1440 01:11:41,250 --> 01:11:45,650 offen eröffnet eine ganze Dose Würmer, wenn es darum geht, die Sicherheit und körperliche Risiko. 1441 01:11:45,650 --> 01:11:48,070 Aber für heute, lassen Sie uns konzentrieren sich auf das, was ist 1442 01:11:48,070 --> 01:11:52,170 schriftlich Software beteiligt das könnte das System gamed haben. 1443 01:11:52,170 --> 01:11:54,510 >> Für die Definition der Problem, für diejenigen, die nicht, 1444 01:11:54,510 --> 01:11:55,740 Lassen Sie uns einen Blick auf John Oliver nehmen. 1445 01:11:55,740 --> 01:11:58,115 Und für diejenigen, die mit das Problem, lassen Sie uns es betrachten 1446 01:11:58,115 --> 01:12:00,480 in einem Fun-Objektiv über John Oliver als auch. 1447 01:12:00,480 --> 01:12:05,810 Also lassen Sie mich spielen auf diesem Hit, I denken, Drei-Minuten-Einführung. 1448 01:12:05,810 --> 01:12:07,074 Verdammt. 1449 01:12:07,074 --> 01:12:07,740 [VIDEO-WIEDERGABE] 1450 01:12:07,740 --> 01:12:08,170 -Cars-- 1451 01:12:08,170 --> 01:12:09,919 DAVID MALAN: Offensichtlich auf YouTube, it's-- 1452 01:12:09,919 --> 01:12:12,500 - --Die Klügste Zeichen in die Fast and Furious Filme. 1453 01:12:12,500 --> 01:12:16,080 In dieser Woche deutsche Auto Volkswagen fand sich 1454 01:12:16,080 --> 01:12:19,430 in der Mitte eines Skandal potenziell kriminelle Ausmaße an. 1455 01:12:19,430 --> 01:12:23,020 >> -Volkswagen Wappnet für Milliarden Bußgelder, mögliche Strafanzeige 1456 01:12:23,020 --> 01:12:25,530 Für Führungskräfte, wie das Unternehmen entschuldigt sich 1457 01:12:25,530 --> 01:12:28,790 Rigging 11 Millionen Autos helfen sie Emissionstests schlagen. 1458 01:12:28,790 --> 01:12:32,110 >> -Bestimmte Diesel-Modelle wurden entwickelt, mit ausgeklügelter Software, die 1459 01:12:32,110 --> 01:12:35,410 gebrauchte Informationen, einschließlich der Position des Lenkrads und der Fahrzeug 1460 01:12:35,410 --> 01:12:38,820 Geschwindigkeit, das Auto zu bestimmen war laufen Emissionstests. 1461 01:12:38,820 --> 01:12:42,620 Unter diesem Umstand, der Motor würde reduzieren toxische Emissionen. 1462 01:12:42,620 --> 01:12:46,040 Aber das Auto war in den Bypass in Ordnung gebracht dass, wenn es angesteuert wurde. 1463 01:12:46,040 --> 01:12:51,370 Stiegen die Emissionen 10 bis 40 Zeiten über akzeptable EPA Ebenen. 1464 01:12:51,370 --> 01:12:55,920 >> -Wow, 10 bis 40 mal größer ist als das EPA erlaubt. 1465 01:12:55,920 --> 01:12:59,570 Das ist das Schlimmste, was Volkswagen hat jemals getan, 1466 01:12:59,570 --> 01:13:04,200 etwas ist, könnte man sagen, wenn Sie hatte noch nie von dem Zweiten Weltkrieg gehört. 1467 01:13:04,200 --> 01:13:09,710 Aber vielleicht das sicherste Zeichen dafür, wie viel Mühe Volkswagen in ist, 1468 01:13:09,710 --> 01:13:12,730 ist, dass ganz am Menschen oben haben getreten. 1469 01:13:12,730 --> 01:13:16,320 Der CEO trat am Mittwoch nach Scrambling-Steuerung zu tun, Schaden, 1470 01:13:16,320 --> 01:13:20,380 sagte, er unendlich leid war, die klang großartig, bis sich herausstellte, 1471 01:13:20,380 --> 01:13:22,920 er war nur 10% Entschuldigung aber hatte seinen Mund in Ordnung gebracht 1472 01:13:22,920 --> 01:13:25,600 künstlich zu sein sorriness aufzublasen. 1473 01:13:25,600 --> 01:13:29,700 Und in der Zwischenzeit von Volkswagen US Chef hatte eine Entschuldigung von seiner eigenen. 1474 01:13:29,700 --> 01:13:33,580 >> -Lassen Sie die klar darüber, unser Unternehmen war unehrlich. 1475 01:13:33,580 --> 01:13:37,140 Und in meinem deutschen Worten, wir haben total vermasselt. 1476 01:13:37,140 --> 01:13:41,360 >> -Ja, Aber total verschraubt up sind nicht deutsche Werke. 1477 01:13:41,360 --> 01:13:43,750 Und die deutsche Sprache hat viele schöne Sätze 1478 01:13:43,750 --> 01:13:50,070 zu beschreiben Situationen wie diese, wie [Deutsch], was in etwa bedeutet, 1479 01:13:50,070 --> 01:13:52,870 die Traurigkeit, die kommt im geschäftlichen liegt, 1480 01:13:52,870 --> 01:13:59,060 oder [Deutsch], was übersetzt wie diejenigen, Vater shaming Beteiligung 1481 01:13:59,060 --> 01:14:00,352 Wolken von Benzin. 1482 01:14:00,352 --> 01:14:02,060 Es ist eine schöne Sprache. 1483 01:14:02,060 --> 01:14:04,660 Es segelt nur die Zunge ab. 1484 01:14:04,660 --> 01:14:07,920 Und übrigens, während die Menschen Entschuldigung haben aufrichtig klang, 1485 01:14:07,920 --> 01:14:12,260 es ist bemerkenswert, er sprach bei eine offizielle Launch-Party für die 2016 1486 01:14:12,260 --> 01:14:17,310 Volkswagen Passat, was bedeutet, dass in Kürze nachdem sie gesagt, sorry, sagte er dies. 1487 01:14:17,310 --> 01:14:18,850 >> -Danke Sehr viel für Ihr Kommen. 1488 01:14:18,850 --> 01:14:19,630 Genieße den Abend. 1489 01:14:19,630 --> 01:14:21,300 Als nächstes steht Lenny Kravitz. 1490 01:14:21,300 --> 01:14:24,640 >> [MUSIK SPIELEN] 1491 01:14:24,640 --> 01:14:28,230 >> OK-, OK, endet Ihre Entschuldigung mit bis nächste 1492 01:14:28,230 --> 01:14:31,940 Lenny Kravitz nicht schreien nüchtern Zerknirschung. 1493 01:14:31,940 --> 01:14:35,830 Es schreit, fragten wir Bon Jovi, und er sagte nein. 1494 01:14:35,830 --> 01:14:38,600 Volkswagen Marke hat wurde schwer beschädigt. 1495 01:14:38,600 --> 01:14:42,466 Und ehrlich gesagt, ihre neue Anzeige Kampagne ist nicht genau zu helfen. 1496 01:14:42,466 --> 01:14:47,289 >> - [Deutsch], würden wir bei Volkswagen gefallen entschuldigen Sie zu täuschen mit 1497 01:14:47,289 --> 01:14:47,930 unsere Fahrzeuge. 1498 01:14:47,930 --> 01:14:48,513 >> [END WIEDERGABE] 1499 01:14:48,513 --> 01:14:54,090 DAVID MALAN: So war dies ein Umwegen von-- sorry-- 1500 01:14:54,090 --> 01:14:58,730 dies war ein Umweg von die Einführung eines Grundproblem 1501 01:14:58,730 --> 01:15:02,810 in Software, die, dass Sie ist müssen bestimmte Bedingungen erkennen. 1502 01:15:02,810 --> 01:15:07,680 Und so ist die Frage auf der Hand hier ist, wie möglicherweise ein Auto hat, 1503 01:15:07,680 --> 01:15:09,870 wie in Software implementiert von diesen Programmierer, 1504 01:15:09,870 --> 01:15:11,850 erkennen, dass es tatsächlich getestet wird? 1505 01:15:11,850 --> 01:15:14,150 So zu sein Super Clear, was sie taten 1506 01:15:14,150 --> 01:15:17,940 war, in Umgebungen, in denen die Programmierer gedacht 1507 01:15:17,940 --> 01:15:20,460 das Auto wurde getestet, sie irgendwie gemacht 1508 01:15:20,460 --> 01:15:24,840 das Auto emittieren weniger Schadstoffe, weniger Emissionen, so dass weniger giftige Dämpfe 1509 01:15:24,840 --> 01:15:25,470 und derartige. 1510 01:15:25,470 --> 01:15:27,261 Aber wenn es normal Fahren auf der Straße, 1511 01:15:27,261 --> 01:15:30,350 es würde nur so viel emittieren Verschmutzung, wie sie wollten. 1512 01:15:30,350 --> 01:15:33,870 >> Wie könnten wir schreiben die Pseudocode für diesen Algorithmus? 1513 01:15:33,870 --> 01:15:37,820 Wie könnten wir schreiben die Pseudo-Code für die Software im Wagen läuft? 1514 01:15:37,820 --> 01:15:43,390 Ich meine, in aller Kürze, es kocht nach unten zu so etwas wie dieses. 1515 01:15:43,390 --> 01:15:48,000 wenn geprüft wird, emittieren weniger. 1516 01:15:48,000 --> 01:15:50,750 sonst emittiert mehr. 1517 01:15:50,750 --> 01:15:52,630 Aber das ist ein wenig zu hohe, nicht wahr? 1518 01:15:52,630 --> 01:15:58,580 >> Lassen Sie uns versuchen zu tauchen, was diese Abstraktion der getesteten Mittel zu sein. 1519 01:15:58,580 --> 01:16:06,340 Mit anderen Worten, auch wenn Sie wissen nichts über Autos, welche Art von Fragen 1520 01:16:06,340 --> 01:16:13,440 könnten Sie fragen, um zu bestimmen, ob Sie werden getestet, wenn Sie das Auto? 1521 01:16:13,440 --> 01:16:19,638 Welche Eigenschaften könnte sein, präsentieren, wenn ein Auto getestet wird? 1522 01:16:19,638 --> 01:16:21,026 >> PUBLIKUM: Die Testausrüstung. 1523 01:16:21,026 --> 01:16:22,420 >> DAVID MALAN: Die Testausrüstung. 1524 01:16:22,420 --> 01:16:26,060 Also, wenn Prüfgeräte in der Nähe, dann emittieren weniger. 1525 01:16:26,060 --> 01:16:28,669 So könnte ich mir vorstellen Umsetzung daß mit irgendeiner Art von Kameras 1526 01:16:28,669 --> 01:16:29,960 oder zum Nachweis von was um Sie herum. 1527 01:16:29,960 --> 01:16:32,870 Und lassen Sie mich schlagen, dass fühlt sich einfach zu kompliziert 1528 01:16:32,870 --> 01:16:37,914 tatsächlich haben zusätzliche Hardware nur für diesen Zweck. 1529 01:16:37,914 --> 01:16:44,830 >> PUBLIKUM: Wenn Sie in Park, ist, wenn die Haube geöffnet. 1530 01:16:44,830 --> 01:16:47,320 >> DAVID MALAN: Im Park oder Motorhaube geöffnet, das ist so gut. 1531 01:16:47,320 --> 01:16:47,420 >> PUBLIKUM: Und Auto läuft. 1532 01:16:47,420 --> 01:16:50,480 >> DAVID MALAN: Also das ist ein wenig mehr concrete-- und Auto läuft. 1533 01:16:50,480 --> 01:16:55,690 So wäre dies die Verbindung von a einige andere Bedingungen, wenn man so will. 1534 01:16:55,690 --> 01:16:59,227 Also, wenn das Auto im Park ist, und sogar obwohl dies eine sehr mechanische Sache 1535 01:16:59,227 --> 01:17:01,060 typischerweise, konnte ich vorstellen, das Schreiben von Software, 1536 01:17:01,060 --> 01:17:03,476 vor allem, weil es oft ein Licht dort in diesen Tagen, 1537 01:17:03,476 --> 01:17:07,400 Ich könnte mir vorstellen, dort zu sein Software, die den Schalthebel abfragen 1538 01:17:07,400 --> 01:17:10,634 oder was nicht, sind Sie im Park, sind Sie Antrieb, sind Sie in umgekehrter Reihenfolge. 1539 01:17:10,634 --> 01:17:12,550 Und ich kann ein zurück beantworten, das ist entweder ja 1540 01:17:12,550 --> 01:17:14,400 oder nicht auf diese Art von Fragen. 1541 01:17:14,400 --> 01:17:17,630 >> Und so konnte ich auch wahrscheinlich antworten eine Frage wie, ist die Motorhaube geöffnet. 1542 01:17:17,630 --> 01:17:21,860 Vielleicht ist es eine Art von Sensor dass entweder gibt mir eine 1 oder 0 zurück, 1543 01:17:21,860 --> 01:17:23,720 wahr oder falsch, ist die Motorhaube geöffnet. 1544 01:17:23,720 --> 01:17:28,180 Und dann Auto läuft, konnte ich erkennen, dass irgendwie über welchen Mechanismus? 1545 01:17:28,180 --> 01:17:30,430 Wie das Auto fährt, I erkennen konnte, dass es auf, 1546 01:17:30,430 --> 01:17:32,127 konnte ich erkennen, irgendwie dass das Auto in Bewegung ist? 1547 01:17:32,127 --> 01:17:32,881 >> PUBLIKUM: RPMs. 1548 01:17:32,881 --> 01:17:35,190 >> DAVID MALAN: Ja, so ist es immer, dass Nadel, die 1549 01:17:35,190 --> 01:17:38,034 sagt Ihnen, wie viele Umdrehungen pro Minute die Räder erleben. 1550 01:17:38,034 --> 01:17:39,200 Und so konnte ich das betrachten. 1551 01:17:39,200 --> 01:17:43,090 Und wenn es nicht 0, das wahrscheinlich bedeutet, dass das Auto in Bewegung ist. 1552 01:17:43,090 --> 01:17:45,400 Aber wir haben eine zu sein wenig vorsichtig dort, 1553 01:17:45,400 --> 01:17:49,780 because-- wir vereinfachen this-- wenn wir gerade gesagt, wenn Auto läuft, 1554 01:17:49,780 --> 01:17:53,070 wir wollen nicht nur weniger zu emittieren, wir wollen, wenn das Auto läuft 1555 01:17:53,070 --> 01:17:54,310 und es wird getestet. 1556 01:17:54,310 --> 01:17:56,320 >> So gibt es noch ein paar andere Zutaten, die Leute 1557 01:17:56,320 --> 01:18:00,550 haben die Hypothese aufgestellt ist, die Software zu tun, weil sie ohne die eigentlichen Quellcode, 1558 01:18:00,550 --> 01:18:05,130 Sie können nur eine Art von der folgern physikalische Effekte des Wagens, was 1559 01:18:05,130 --> 01:18:08,280 könnte unter sich gehen die Haube in Software. 1560 01:18:08,280 --> 01:18:17,090 Also, wenn Auto läuft und vielleicht, sagen wir, die Hinterräder nicht bewegt, 1561 01:18:17,090 --> 01:18:19,420 könnte dies sein indikativen von irgendeiner Art von Test? 1562 01:18:19,420 --> 01:18:22,830 Was bin ich anspielend auf hier? 1563 01:18:22,830 --> 01:18:24,830 Ja, vielleicht ist es auf der einen dieser Rolle Dinge, 1564 01:18:24,830 --> 01:18:28,340 wo wie die Räder drehen in der Vorder- oder in der Rückseite, 1565 01:18:28,340 --> 01:18:32,570 je nachdem, ob es Vorderrad oder Hinterradantrieb, so die Hälfte der Räder 1566 01:18:32,570 --> 01:18:34,420 sich bewegen, aber die beiden anderen sind es nicht, die 1567 01:18:34,420 --> 01:18:36,320 in der realen Welt ist eine seltsame Situation. 1568 01:18:36,320 --> 01:18:38,110 Wenn Sie mit dem Auto auf der Straße, das sollte nicht passieren. 1569 01:18:38,110 --> 01:18:40,568 Aber wenn Sie in einem Lager auf irgendeine Art von Rollensystem, 1570 01:18:40,568 --> 01:18:41,630 das könnte tatsächlich passieren. 1571 01:18:41,630 --> 01:18:46,980 >> Ich denke, dass die Leute auch vorgeschlagen, dass vielleicht, wenn das Fahrzeug läuft und Lenk 1572 01:18:46,980 --> 01:18:51,300 Rad nicht bewegt, dass Auch könnte ein Signal sein, 1573 01:18:51,300 --> 01:18:54,090 denn das ist zumutbar wie ein direkt auf einer Straße. 1574 01:18:54,090 --> 01:18:57,960 Aber selbst dann ist der Mensch wahrscheinlich es ein wenig bewegen oder sicher 1575 01:18:57,960 --> 01:18:59,100 über wenige Sekunden. 1576 01:18:59,100 --> 01:19:01,030 Oder den Verlauf eines Minute, stehen die Chancen es nicht ist 1577 01:19:01,030 --> 01:19:03,510 gehen zu fixieren in genau die gleiche Position. 1578 01:19:03,510 --> 01:19:05,440 >> Also mit anderen Worten, wir nehmen Substraktion kann, 1579 01:19:05,440 --> 01:19:08,200 , Sie sind getestet und brechen diese Funktionalität 1580 01:19:08,200 --> 01:19:10,420 in diese Komponente Zutaten. 1581 01:19:10,420 --> 01:19:13,440 Und das ist wirklich das, was Volkswagen Ingenieure haben irgendwie. 1582 01:19:13,440 --> 01:19:17,070 Sie schrieben Software bewusst erkennen, wenn das Fahrzeug geprüft wird, 1583 01:19:17,070 --> 01:19:20,440 Daher emittieren weniger, sonst emittieren in der üblichen Weise. 1584 01:19:20,440 --> 01:19:22,690 >> Und das Problem auch hier ist, dass Software ist nicht 1585 01:19:22,690 --> 01:19:26,080 etwas, was Sie wirklich sehen können, es sei denn, Sie haben die so genannte Quellcode. 1586 01:19:26,080 --> 01:19:29,060 Also gibt es zwei verschiedene Arten von code-- mindestens zwei verschiedene Typen 1587 01:19:29,060 --> 01:19:30,130 der Code in der Welt. 1588 01:19:30,130 --> 01:19:33,150 Es gibt so genannte Quelle Code, der nicht unähnlich, was ist 1589 01:19:33,150 --> 01:19:37,240 wir haben geschrieben, Quellcode. 1590 01:19:37,240 --> 01:19:40,099 >> Dies wird Quellcode geschrieben in eine Sprache namens Pseudo-Code, 1591 01:19:40,099 --> 01:19:41,640 Das ist nur etwas Englisch-like. 1592 01:19:41,640 --> 01:19:43,140 Es gibt keine formale Definition davon. 1593 01:19:43,140 --> 01:19:46,770 Aber C und Java, C ++, diejenigen sind alle formalen Sprachen, die, 1594 01:19:46,770 --> 01:19:50,610 wenn man in sie zu schreiben, was Sie haben, ist eine Textdatei Quellcode enthält. 1595 01:19:50,610 --> 01:19:54,850 >> Aber es gibt auch etwas in die Welt genannt Maschinencode. 1596 01:19:54,850 --> 01:20:00,579 Und Maschinencode, leider, ist nur 0 und 1 ist. 1597 01:20:00,579 --> 01:20:02,870 So ist Maschinencode, was Maschinen verstehen, natürlich. 1598 01:20:02,870 --> 01:20:04,470 Der Quellcode ist das, was den Menschen zu verstehen. 1599 01:20:04,470 --> 01:20:08,390 >> Und in der Regel, aber nicht immer ist es ein Programm, 1600 01:20:08,390 --> 01:20:14,090 dass ein Programmierer nutzt das braucht Quelle Code und wandelt es in Maschinencode. 1601 01:20:14,090 --> 01:20:17,400 Und das Programm ist im Allgemeinen ein Compiler genannt. 1602 01:20:17,400 --> 01:20:19,820 So Ihre Eingabe Quellcode ist, Ihr Ausgang ist Maschinencode, 1603 01:20:19,820 --> 01:20:22,890 und der Compiler ist ein Stück Software, die diesen Prozess tut. 1604 01:20:22,890 --> 01:20:26,260 Also diese Karten wirklich schön zu unsere Eingaben, Algorithmen, Ausgänge. 1605 01:20:26,260 --> 01:20:30,400 >> Aber dies ist eine sehr spezifische Verkörperung Darüber hinaus ist das zu sagen, 1606 01:20:30,400 --> 01:20:34,200 auch wenn Sie besitzen ein von Volkswagen Autos, die von diesem schuldig ist, 1607 01:20:34,200 --> 01:20:38,390 es ist nicht wie können Sie nur die öffnen Motorhaube oder die Bedienungsanleitung zu öffnen oder schauen 1608 01:20:38,390 --> 01:20:42,690 auf den Quellcode, weil durch die Zeit es erreicht Ihr Auto in der Einfahrt, 1609 01:20:42,690 --> 01:20:45,580 es ist bereits umgewandelt in 0 und 1 ist. 1610 01:20:45,580 --> 01:20:51,310 Und es ist sehr schwer, nicht unmöglich, aber sehr schwer viel von etwas aufzulesen 1611 01:20:51,310 --> 01:20:53,710 von gerade bei der Suche Basiswert 0 und 1 ist. 1612 01:20:53,710 --> 01:20:57,150 So können Sie es herausfinden, letztlich, wenn Sie verstehen, wie eine Maschine operates-- 1613 01:20:57,150 --> 01:20:59,870 Intel inside-- wenn Sie verstehen, die Intel-Architektur, 1614 01:20:59,870 --> 01:21:01,440 aber es ist sehr zeitaufwendig. 1615 01:21:01,440 --> 01:21:05,010 Und es auch, könnte man nicht in der Lage sein, alles zu sehen 1616 01:21:05,010 --> 01:21:08,220 dass der Code tatsächlich tun können. 1617 01:21:08,220 --> 01:21:12,521 >> Haben Sie Fragen zu diesem oder dieser allgemeiner Art von Prozess? 1618 01:21:12,521 --> 01:21:15,134 1619 01:21:15,134 --> 01:21:18,300 Und tatsächlich können wir diese Diskussion binden auf die gestrige Diskussion von Apple. 1620 01:21:18,300 --> 01:21:22,500 Auch dies ist, warum das FBI kann nicht einfach gehen und schauen in das Telefon des Verdächtigen 1621 01:21:22,500 --> 01:21:26,820 und finden Sie die Codezeilen, für So, mit denen Sie das Kennwort: 1622 01:21:26,820 --> 01:21:28,940 oder ermöglichen, dass die 80-Millisekunden Verzögerung. 1623 01:21:28,940 --> 01:21:31,630 Denn durch die Zeit, es ist auf dem iPhone-Kerl, 1624 01:21:31,630 --> 01:21:34,975 es ist bereits auf 0 und 1 ist umgewandelt. 1625 01:21:34,975 --> 01:21:38,015 1626 01:21:38,015 --> 01:21:40,820 >> Nun, lassen Sie uns pausieren hier für unsere Blick auf rechnerische Denken. 1627 01:21:40,820 --> 01:21:42,320 Warum gehen wir nicht nehmen eine Pause von 15 Minuten. 1628 01:21:42,320 --> 01:21:44,130 Und wenn wir zurückkommen, werden wir werfen Sie einen Blick auf die Programmierung 1629 01:21:44,130 --> 01:21:46,550 selbst und beginnen einige zur Karte dieser hohen Ebene Konzepte 1630 01:21:46,550 --> 01:21:49,780 eine tatsächliche, wenn spielerisch, Programmiersprache. 1631 01:21:49,780 --> 01:21:51,089