DAVID MALAN: Willkommen zurück, jeder. So gestern, werden sich erinnern, dass Wir konzentrierten uns auf diese Themen hier. So hatten wir vier übergeordnete topics-- Datenschutz, Sicherheit und Gesellschaft; Internet-Technologien; Cloud Computing; und schließlich, Web-Entwicklung. Hat jemand die Bandbreite oder die Zeit ein wenig John zu sehen Oliver letzte Nacht? Es ist eigentlich ziemlich amüsant, wenn nicht ein wenig erschreckend. Irgendwelche Fragen zu irgendetwas wir haben gestern? Alle Erklärungen? Alle Fragen, die Sie machen wollen sicher, berühren wir in irgendeiner Form auf heute? So sauber Schiefer. Also, was ist auf der Tagesordnung für heute? Also dachte ich, dass wir heute beginnen würde mit einem Blick auf das, was in der Regel als Berechnungs thinking-- bekannt bei das Risiko von vereinfachend, zu denken wie ein Computer, vielleicht Denken wie ein Ingenieur, und zu versuchen, zu starten organisieren Sie Ihre Gedanken oder geben Sie ein besseres Gefühl was in eigentlich befehls beteiligt ist ein Computer, etwas zu tun durch Programmierung. Und wir halten es in einem hübschen hohem Niveau, so ziemlich Englisch, sondern versuchen, vertrauter zu verwenden Beispiele zu formalisieren, wie Sie würden über das Lösen der Probleme gehen. Und wir werden einige CS erneut Themen, wie Abstraktion, die kam ein Ehepaar Mal gestern, Algorithmen und dann Darstellung. Und das ist, wo wir beginnen heute in nur einem Augenblick. Dann werden wir einen Blick auf die Programmierung nehmen. Wir werden einen Blick auf einige nehmen grundlegenden Konstrukte mit denen könnte man vertraut sein und vielleicht sogar recht intuitiv finden. Wir werden sehen, in der Tat, bei einer Probenprogrammierung Umgebung, die sehr zugänglich ist, sehr verspielt, und zwar gezielt ab 12 Jahren auf. Wir werden ein paar Minuten dort verbringen und dann nehmen die Dinge auf ein niedrigeres Niveau und reden eigentlich über einige die Algorithmen und Datenstrukturen, sozusagen, dass Programmierer verwenden in der Regel Probleme weit mehr zu lösen effizienter als Sie vielleicht der Lage sein, ohne sie ganz zu tun. Dann nach dem Mittagessen, werden wir einen Blick bei Technologie-Stacks, die gerade ist eine andere Art zu sagen Sammlungen von Technologien dass Sie vielleicht zu verwenden lösen ein Problem. Und wir werden über das Alphabet sprechen Suppe von Sprachen, die es gibt today-- Java und Python und C ++ und PHP und Ruby und alle möglichen anderen Dinge. Wir werden einen Blick kurz nehmen bei Design-Muster. Programmierer, im Laufe der Zeit, haben angenommen Methoden , die dazu neigen, ihnen zu helfen Probleme zu lösen leichter. Wenn Sie sich selbst zu sehen Schreiben beginnen die gleiche Art von Code wieder und wieder, Menschen formalisieren diese Wiederholungen und schreiben ihnen Namen und dann nutzen sie, und fördern sie schließlich. Und wir werden ein wenig reden über Mobile-Strategien, wie das, was bedeutet es eigentlich machen Sie eine Handy-App oder eine mobile Website. Haben Sie es für Android zu tun? Tun Sie es für iOS? Tun Sie es sowohl für die von denen? Und was sind die Trade-offs? Und dann endlich, wir nehmen ein Blick Web-Programmierung, die ist ein Sammelbegriff Beschreiben wirklich jederzeit Sie Software schreiben, ist gemeint, die im Internet zu laufen, ob auf Handys oder Desktops oder Laptops. Wir nehmen einen kurzen Blick auf Datenbanken und das Design darin, wenn auch nur, weil fast jeder interessante Web-basierte Anwendung in diesen Tagen hat eine Art von Datenbank. Andernfalls wäre es nur statische Inhalte sein. Und eine Datenbank ermöglicht es Ihnen, zu machen Veränderungen im Laufe der Zeit, ob sich oder von den Benutzern. Und wir werden überlegen, wie Sie würde über die Gestaltung die Datenbank und die Art von Jargon das könnte in einem Ingenieur kommen Diskussion auf einer weißen Tafel wenn tatsächlich die Umsetzung eine App zum ersten Mal. Wir werden kurz sprechen über APIs, nützliche Dienste dass Sie auf die stehen verwenden Schultern der anderen, ob Unternehmen oder Einzelpersonen, und lösen Sie Ihre eigene Probleme schneller. Und dann werden wir vielleicht Dabble ein bisschen mit JavaScript, eine Programmiersprache, die verwendet wird beide Tage in Browsern, sondern auch in Servern. Und vielleicht werden wir erneut, die Zeit erlaubt, einige der Hands-on-Web-Sachen, die wir gestern und integrieren die beiden zusammen, bevor wir vertagen. Also mit dass-- was ahead-- ist es etwas fehlt, dass Sie möchten wir einsetzen, um sicherzustellen, und berühren Sie irgendwann auf. Wenn es Federn ist in den Sinn, bringen es dauerte nicht lange auf. Aber warum machen wir nicht mit einem beginnen Blick auf rechnerische Denken. Und lassen Sie mich, dass vorschlagen rechnerische Denken ist, wieder, Art der Beschreibung auf hoher Ebene von was könnte ein Computerwissenschaftler tun. Und in der Tat, lassen Sie uns beginnen mit drei Zutaten, die gehen könnte in Computational Denken. Dies ist nur ein Weg, um es zu beschreiben. Wir könnten sicherlich definieren dies in einer beliebigen Anzahl von Möglichkeiten. Aber lassen Sie mich schlagen, im Interesse der heute dass die Probleme der Welt, alle Probleme der Welt, wenn sie von einem genähert Informatiker konnte angesehen werden als das, was wir werden Rufeingänge, die erhalten müssen gefüttert in das, was wir nennen Algorithmen, die dann Ergebnisse herauskommen. Mit anderen Worten, die gesamte Welt der Problemlösung I in Anspruch kann in destilliert werden Diese drei Bestandteile. Also, was ich meine durch die Eingänge? Eingänge ist genau das, was du bist um geben zu lösen. Zum Beispiel, hier ist eine alte Schule Problem. Wenn ich ein Telefonbuch haben hier und Ich will etwas hineinschauen, dies ist mein Eingang. Ich habe 1000 oder so Seiten in einem Telefonbuch. Dies ist der Eingang zu meinem Problem. Und ich möchte, etwas zu finden, wie Mike Smith, so einen Freund dessen Name und Nummer hoffentlich in diesem Adressbuch. Dies ist vor den Tagen der Zelle Telefone, so kann ich nicht nur danach suchen. Also muss ich es tun alt Schule und tatsächlich Suche diese Eingänge für einige Antwort. Und diese Antwort wird nur werden die Ausgangs genannt. So ist der Eingang ist das Telefonbuch. Der Algorithmus ist unabhängig von Satz Schritte, die ich verwenden Mike Smith zu finden. Und der Ausgang ist hoffentlich Mike Smith Telefonnummer. Und das wäre dann nur repräsentativ für die meisten problemlos In den mit sind Sie handed Eingänge und wollen Ausgaben zu erzeugen. Also, bevor wir den Prozess betrachten von denen wir das Problem lösen, Suche nach Mike Smith und so ähnlich, Lassen Sie uns die erste betrachten und die last-- Ein- und Ausgänge. Physikalisch natürlich die Eingangs hier eine ganze Reihe von Papier zusammengeklebt in Form eines Telefonbuchs. Aber Computer, von course-- Laptops und Desktop-PCs und sogar Telefone diese days-- diejenigen sind elektronische Geräte. Und am Ende des Tages, was die einzige Eingabe in einen Computer? Nun, es ist so etwas wie dieses Netzkabels. Ich stecken Sie es in die Wand, und Ich bekomme einen Fluss von Elektronen, was mir erlaubt, die Maschine laufen zu lassen. Oder vielleicht die Elektronen sind durch meine Batterie geschaffen. Aber am Ende des Tages, das ist geht das einzige, was in meinem Laptop. Und so viel interessanter Zeug ist letztlich herauskommen, ob mittels des Druckers oder der Bildschirm oder hör- oder dergleichen. Also, wenn alles, was wir haben, wie unsere grundlegende Eingabe in einen Computer Strom ist, so einfach gehen Elektronen in und oder zu verkleinern, und so wie können wir verwenden, dass die Eingabe tatsächlich Informationen repräsentieren? Mit anderen Worten, wie kommen wir von einer einfachen Stromfluss zu repräsentieren tatsächlichen Zahlen oder Buchstaben tatsächlichen oder tatsächlichen Bilder auf dem Bildschirm oder tatsächlichen Filme oder E-Mails oder eine beliebige Anzahl davon höhere Ebene Konzepte, wenn man will, dass bei der Ende des Tages irgendwie Um das in dieser gespeicherte elektronische mechanische Vorrichtung Verwendung nur jene einfachen ingredients-- Elektronen in und aus? So würde es scheinen, dass, in der einfachsten Form, die einzige Art von Staaten Ich habe in meiner Welt, so zu speak-- Bedingungen in meinem world-- ist entweder Ich habe Elektronen fließen, Strom fließt, oder ich nicht-- so weiter, aus. Und lassen Sie uns formalisieren ein und aus, als ein Informatiker könnte, mit nur 1 und 0. Lassen Sie uns beschreiben nur einige willkürlich aber konsequente Nummer zu. 1 bedeutet, auf, 0 bedeutet, ab. Oder Sie könnten auch dies als wahre Mittel auf und falsche Mittel. Sie könnten auch schwarz tun und weiß oder rot und blau. Sie müssen nur zwei Deskriptoren. Und ein Informatiker würde im Allgemeinen nur 0 und 1 verwenden. Also, wenn das der Fall ist, ist meine einzige Alphabet bestehend aus der ist 0 und 1 ist, wie konnte ich, um möglicherweise die Zahl gerade 2 in einem Computer, geschweige denn die Nummer 3 oder ein Buchstabe des Alphabets oder ein Bild oder einen Film ansehen? Wie können wir eine Art Bootstrap uns von diesem Grundprinzip von 0 und 1 ist und tatsächlich repräsentieren etwas mehr interessant? Nun, lassen Sie uns diese Frage stellen in der Warteschleife für einen Moment und betrachten etwas hoffentlich vertraut, auch wenn Sie nicht wirklich haben darüber nachgedacht, es im Detail für 10, 20, 30, 40, 50 mehr Jahren. Das ist was? Wie würden Sie das erklären? Kein Trick Frage. Eine Zahl, aber was ist es? 1, 2, 3 oder 123. Und ich mochte, wie Sie 1 sagte, 2, 3, denn das ist ein Weg, es zu sehen. 1, 2, 3, ist es eine Sequenz von drei Symbolen. Es ist Bilder, die wir jetzt haben Worte für. Und wenn Sie eine Art lesen sie alle ein typischer Mensch in Englisch zusammen, würde sagen, 123. Und das ist so eine Art höhere Level-Konzept, fühlt sich wie eine ziemlich große Zahl. Aber wie kommen wir dorthin? Nun, es könnte eine Weile dauern, da Sie haben wie diese darüber nachgedacht, aber zurück in mein Tag, ich Art erfuhr davon wie die Spalte 1 die 10er Spalte und die Spalten 100. So wie Lakisa sagt, es ist 1, 2, 3, aber es ist auch 123. Aber wie kommen wir aus die ersteren zum letzteren? Nun, man würde in der Regel tun in die 100-Säule, habe ich eine 1. Also das ist wie ein 100-mal zu sagen. Und dann in 10-Säule, habe ich 2. Also das ist, wie 2 10 mal sagen. In der Spalte 1, habe ich 3. Also das ist, wie wenn man sagt 1 mal 3. Und wenn ich diese Dinge hinzufügen zusammen, dies natürlich, 100 plus 10 plus 3. Und oh, das ist, warum ich das bekommen höhere Ebene Vorstellung von 123. Es ist nur grundlegende mathematische, wobei diese Symbole haben Gewichte zu ihnen, wenn Sie wird, Platzhalter oder Spaltenwerte. Und wenn ich multiplizieren alles out, ich diese Nummer bekommen. Wie viele von Ihnen wissen, wie man spricht binary-- 0-en und 1's-- wie ein Computer? OK, perfekt, niemand, oder keiner von euch denken, was Sie tun. Aber ich würde Sie behaupten eigentlich wissen dies bereits. Wir brauchen nur eine Art zu zwicken unser mentales Modell ein wenig. Aber das Verfahren ist genau das gleiche. Lassen Sie mich noch einen verlassen da oben und Statt diese ziehen für einen Moment nach unten. In der Welt der Computer, wir haben nur 0 und 1 ist. Und so ist die Sache, die sich ändern, was ist? Nun, in meiner menschlichen Welt, die Dezimalsystem, Dezember Bedeutung 10, Ich habe, wie viele Stellen zu meiner Verfügung? 10, nicht wahr? 0 bis 9, natürlich. Und das ist, warum wir das haben 10 Platz und den Platz des 100. Wo kommt das her? Nun, das ist 10, die Macht der 0. Dies ist 10 an die Leistung von 1, 10 auf die Potenz von 2 und so weiter. Sie halten nur Ihre Spalten multipliziert von 10, Anfahren mit nur 1 in der ganz rechts hier. So in der Welt der wenn Sie Computer, nur haben binary-- bi Bedeutung 2-- oder 0 und 1 ist, wir haben nur wirklich ändern müssen die Basis des math. Also mit anderen Worten in, jetzt werden wir nur haben die Spalte 1 und the-- wo ist dies die 2 Kolumne going--, die 4-Säule, und vielleicht darüber hinaus. Warum das? Nun, das ist 2 0-te Potenz. Dies ist 2 der 1. Dies ist 2 auf die 2, und so weiter. Während also hier, haben wir 1, 10 ist, 100 von 1.000 der 10.000 der 100.000 ist, 1 Millionen, und so weiter, hier haben wir 1, 2, 4, 8, 16, 32, 64. Sie halten nur durch 2 multipliziert, halten, anstatt um 10 multipliziert wird. So, jetzt, wenn das Ziel an Hand ist vertreten mit Zahlen nur 0 und 1 ist, lassen Sie uns überlegen, wie wir dorthin kommen. Dies ist natürlich, ist das Muster 0 0 0, aber was Zahl konzeptuell stellt es dar? Nun, 4 mal 0 plus 2 mal 0 Plus 1 mal 0, lassen Sie uns diese zusammen fügen. 4 mal 0 ist natürlich, 0, plus 2 0 mal ist natürlich, 0 plus 1 mal 0 natürlich ist,, 0. So ah, dies stellt die Zahl, die wir Menschen kennen als 0. Nun, lassen Sie uns sehr schnell schnell nach vorne. Wenn ich stattdessen nicht vertreten 0 0 0, aber wir tun 1 0 1, das auch sein mag, wie Lakisa, früher, wäre es nur 1 0 1 auszusprechen. Aber jetzt, wie nehmen wir es auf die höhere Ebene, um die Zahl, die wir Menschen kennen könnte? Also, was ist diese Zahl? Es ist 5, die Zahl, die wir als 5 kennen. Nun, warum ist das so? Nun, wir können wirklich Art Spaziergang durch methodisch 4 mal 1, 2 mal 0, 1 mal 1. Fügen Sie zusammen die, so dies ist 4 plus 0 plus 1. Und das ist, in der Tat, 5. So ist es immer ein wenig langweilig jetzt dabei das arithmetische wieder und wieder. Aber das Verfahren ist genau das gleiche. Das einzige, was hat in unsere Welt verändert ist, dass unsere Spalten 1, 2, 4, 8, 16 sind, usw., anstelle von 1, 10, 100, 1,000. Und das ist nur, weil unser Alphabet hat geschrumpft von 0 bis 9 auf nur 0 bis 1 ist. So wie hier ein wenig Quiz, wie würde Sie repräsentieren die Anzahl 7 binär? 0? Nun, 0, meinst du 0 0 0? Sag es noch einmal, Karina. Perfekt. Warum das? Es ist effektiv 4 plus 2 plus 1. So gut. Wie stellen wir uns ein wenig another-- wie etwa die Nummer 2? Close-up, aber rückwärts. Also, was ist das? 4 plus 1, so dass 5 wieder ist. So what's-- Es tut mir leid, Karina? 0 1 0. 0 1 0 2 würde, weil wieder, auch wenn es irgendwie nicht von dich nicht herausspringen, nur die Mathematik. 4 mal 0, 0, 2 Mal 1 2, 1 mal 0 0. Das also ist die Zahl, die wir als 2 kennen. Wie über die Nummer 8? Hm? Gut. Also brauchen wir eine andere Art von Platzhalter. Wir brauchen 1 0 0 0. Und das ist wahr, von unserer Art der alten Schule Dezimalsystem. Wie stellen Sie die Nummer 1000? Nun, Sie würden zu sein scheinen Art in einer schwierigen Situation, wenn fragen Sie vertreten die Zahl 1000, denn selbst wenn Sie geben sich wie 9 davon, 9 von diesen, 0 davon, Das ist die größte Zahl, die Sie haben Sie nicht ganz bis 1000 erhalten. Wenn Sie also 1000, müssen Sie nur eine andere Position, so dass Sie 1 tun 0 0 0, ergo die Zahl 1000. Nun, lassen Sie uns die Landkarte Art konzeptionelle Diskussion zurück zur Hardware, wobei wiederum war die Eingabe nur dieses kleine Stromkabel, Strom Kommen in und fließt aus. Und so, dass um von hier abgebildet dort, na ja, was brauchen wir wirklich? Nun, können Sie denken, innerhalb eines des Seins Computer, eine ganze Reihe von Glühbirnen, wenn du möchtest. Sie sind wirklich Transistoren genannt. Und Transistoren sind nur die Schalter das kann entweder ein- oder ausgeschaltet sein. So kann man von einem denken Transistor, der auf ist wird damit Strom zu fließen, und ein Transistor, der als Stopp ist ausgeschaltet Strom fließt. Und anstatt nehmen über die Lichter hier, warum ich diese Art nicht tun der neuen Schule Stil. So könnte dies ein 1, eine Taschenlampe sein Sein auf, nur kaum though. Und dies könnte eine 0, und jetzt weg ist es. Also mit dieser physischen Gerät, I kann nun das binäre System darstellen. Ich brauche nur zwei Zustände. Es spielt keine Rolle, was Farbe es ist, oder was es ist. Alles, was zählt ist, dass ich ein Zustand auf und ein anderer Zustand ab. Also mit meinem Handy hier, wie kann ich stellen die Zahl, die wir als 0 wissen? Oder äquivalent ausgedrückt, was Zahl Ich vertrete jetzt? 0, da das Gerät ausgeschaltet ist. Und wenn ich das tun? Und nun, wie ich tun repräsentieren die Zahl 2? Kann ich Ihr Telefon ausleihen hier, wie wir gestern getan hat? Also mal sehen, also, wenn ich will darstellen die Zahl 2 ist dies die Zahl 2? Nein. Welche Nummer bin ich aus Versehen repräsentiert hier? Dies ist eigentlich die Zahl 3 ist. Also was man will ich abschalten? Das schwarze Telefon oder-- gut, wenn they're-- Schwarz Telefon oder das weiße Handy? Das weiße Telefon. Also, wenn ich schalten Sie diese aus und wir Linie es hier oben haben wir ein 1 an der Stelle des 2 und a 0 an der Stelle des 1. Und so bin ich jetzt repräsentieren die Zahl 2. Und dies natürlich wäre die Zahl 3, denn jetzt diese Lichter beide sind auf. Und ich werde hier aufhören, aber es steht zu vermuten, wenn ich möchte, dass die zu vertreten Nummer 4 oder 8 oder höher, Ich werde mehr Telefone benötigen. Aber das ist alles, was los ist. Also, wenn Sie jemals gehört, dass innerhalb von a-- danken Sie-- Computer Millionen von Transistoren ist, das ist nur Millionen von winzig kleinen Schalter. Und sie sind nicht Licht Lampen, die ein- und ausgeschaltet werden, aber sie erlauben entweder Strom fließen sie irgendwo oder zu stoppen. Und so gibt es Ihre zwei states-- ein- oder auszuschalten, ein- oder ausgeschaltet. So würden wir scheinen jetzt diese Fähigkeit zu haben, dieses Konzept darzustellen, wir würden in der tatsächlichen Hardware mögen. Aber alles, was wir jetzt haben, ist die Fähigkeit, darstellen Zahlen es scheint. Also, wie gehen wir über das Darstellen Buchstaben des Alphabets, die fühlt sich an wie die nächste Art von Funktion, die Sie möchte zu einem modernen Computer hinzufügen sobald Sie Zahlen? Und in der Tat, wenn Sie darüber nachdenken, es, historisch gesehen, Computer wurden eingeführt, wirklich zu dienen B. Rechner numerisch. Aber natürlich, diese Tage, sie noch viel mehr. Selbst wenn sie booten, Sie sehen in der Regel ein oder mehrere Wörter. So wie stellen Sie Wörter, wenn alles, was Sie haben, ist, wieder, Strom am Ende der Tag oder äquivalent 0en und 1en? Ja. Ja, ich meine, wir Art tat dies gestern in irgendeiner Form, wo an einem gewissen Punkt, Ich glaube, ich willkürlich sagte, dass, wenn wir die darstellen wollen Buchstaben A, könnten wir nennen nur, dass eine 1. Es wurde im Rahmen der Kryptographie, wo wir brauchten nur eine Art von Code, eine Art von Mapping. Vielleicht wird A als dargestellt werden 1 ist, und B wird als 2 dargestellt werden, und Z sind vertreten als 26, zum Beispiel. Und dann ist die einzige Einschränkung ist, dass, wenn ich bin gehen Briefe in meiner E-Mails verschlüsseln oder in meinem Textnachrichten als Zahlen, Sie alle zustimmen müssen die zu verwenden gleichen Satz von Konventionen. Und in der Tat die Welt getan hat, genau das. Es ist ein System in der Welt genannt ASCII, American Standard Code für Informationsaustausch, das ist einfach eine Entscheidung einigen Jahren vor, dass die Menschen gemacht, dass entschieden, dass A gleich gehen, nicht 1, 2 und 26, und so ist es ein forth-- wenig different-- aber 65, 66, 67. Und ich werde nach oben ziehen ein Grafik in nur einem Augenblick. Aber es ist willkürlich. Aber es spielt keine Rolle, dass es willkürlich. Die Welt muss nur konsequent sein. Nun, in jüngerer Zeit, es ist etwas schicker genannt Unicode, weil die Art der Welt realisierter nach Computern zu erfinden, dass es mehr als gut 256 Symbole in der Welt dass wir wollen darstellen könnte, vor allem, wenn Sie einführen Asiatische Sprachen und andere Symbologien dass brauchen mehr Ausdruckskraft, als Sie kann in der frühesten Version passen von Dieser Code, der ASCII genannt wurde. Also eigentlich Unicode erlaubt Sie mehr 0-en und 2 zu verwenden. Insbesondere halten Sie das hören Wort Bytes in der Gesellschaft und auch nur gestern. Und ein Byte ist, was wieder? Was ist ein Byte? Es ist nur 8 Bit. Also, was bedeutet das eigentlich? Nun, das bedeutet, früher, als wir reden über binäre und ich wurde mit willkürlich drei Bits, wenn wir waren reden über binary-- den Platz des 1, Die 2 Platz, und das 4 des place-- gut, ein Byte bedeutet nur, dass Sie sprechen nicht in Einheiten von drei, sondern vier, fünf, sechs, sieben acht, das gibt uns 8 Platz, 16 der 32 der 64 ist und 128 Jahren. Mit anderen Worten, ist ein bisschen nicht alle dass nützliche eine Maßeinheit, denn es ist wie ein winzig kleines Stück Information, ein oder aus. So vor einigen Jahren, die Welt gerade beschlossen es ist etwas bequemer in sprechen Bedingungen Bytes acht Dinge gleichzeitig. Und so also war geboren der Begriff eines Byte. Und so haben wir acht Bits hier. Und es erweist sich auch für ähnliche Gründe, entschied sich die Welt Jahre dass bis vor ein ASCII-Buchstaben darstellen, Sie gehen Einheiten von 8 Bits zu verwenden. Also selbst wenn Sie dies nicht tun müssen, dass viele, du bist immer gehen 8 Bits zu verwenden, um stellen einen Buchstaben des Alphabets. Und dies ist praktisch, wenn Sie denn dann erhalten eine Nachricht, die eine 0 0 0 1 1 hat 1 1 0 durch einen anderen 1 1 1 0 1 0 gefolgt 1 0, so dass, wenn Sie erhalten 16 Bits, kann die Welt nur gehen davon aus, dass die ersten 8 einen Buchstaben sind und die zweite 8 sind ein weiterer Brief. Spielt keine Rolle, wie viele es sind. Es zählt nur, dass wir sind alle im Einklang wenn wir diese Bits sind zu interpretieren. Und das war nur zufällig. Das bedeutet etwas, aber ich tat es nicht wirklich darüber nachdenken, was es bedeutet. So ist es eine kleine Notlüge. Ursprünglich ASCII tatsächlich nur 7 Bits verwendet. Und das achte Bit ist, erweiterte ASCII genannt. Aber der Punkt ist schließlich das gleiche. Die Welt im Allgemeinen standardisiert auf 8 Bit. So würde dies scheint ein wenig zu sein, Begrenzung, weil ich nur kann repräsentieren Kapital A, Kapital B durch Kapital Z. Aber in der Tat nicht, wenn ich gehe zu-- Es gibt eine Menge von Ressourcen online, zum Beispiel, asciitable.com, diese geht ein wenig zu sein, überwältigend auf den ersten. Aber ich werde darauf hinweisen, was ist hier wichtig. Dies geschieht nur zu be-- und ich werde walk-- wollen wir mal sehen, ob ich hier gehen. Hier, im Dezimalsystem Spalte die Nummer 65. Und auf der rechten Spalte Brief Zeichen, Chr, ist der Buchstabe A. Und Sie können ignorieren, denn jetzt, alles in der Mitte. Dies ist hexadezimal, Oktal, und ein HTML-Code. Zu dieser Seite ist nur versuchen zu werfen eine Vielzahl von Informationen an Sie sofort. Aber alles, wir kümmern uns um die Dezimalzahl Spalte und die Zeichenspalte. So nach dieser Logik, was ist die Zahl, dass die Welt hat repräsentiert entschied sich für eine kleine a? Ja, 97. Und gerade zu verwirren möglicherweise leicht, welche Zahl hat sich entschieden, die Welt darstellen würde die Nummer 1? Richtig, weil wir-- 49, wie es scheint hier unten in der unteren linken. Nun, was meine ich damit? So stellt sich heraus, dass in Computersystemen, es ist im allgemeinen ein grundlegender Unterschied zwischen einer Zahl und ein Zeichen. Eine Zahl ist das, was wir gelernt aufwachsen, wenn wir waren super in der Grundschule jung. Es ist Dinge, die Sie mit zu zählen. Aber ein Charakter ist nur eine Form, eine Glyphe, sozusagen auf dem Bildschirm. Nun, wir Menschen eine Art sehen etwas, das wie folgt aussieht. Und wir sagen, oh, das ist die Nummer 2. Aber nein, das ist nur ein Symbol, das aussieht wie das, was wir als Nummer 2 kennen. Und so gibt es diese grundlegende Unterscheidung zwischen den tatsächlichen Zahlen und Zeichen. Dies ist eine Zahl. Aber in der Regel, in der Rahmen eines Computers, wenn Sie stattdessen sehen so etwas wie dieses quoted-- und man nicht immer müssen sehen, es zitiert, aber aus Gründen der discussion-- wenn sehen Sie Anführungszeichen um die Zahl, Dies ist heute ein Zeichen. Also diese Nummer 2 unter die Haube innerhalb eines Computer würde mit einem Muster dargestellt werden, von Bits, die die Anzahl repräsentieren 50 nach Online-Diagramm. Wenn jedoch ein Computer nur sieht diese, dieses würde mit der dargestellt werden Muster von Bit 0 0 0 0 0 0 1 0. dieses Zeichen würde der Erwägung, werden tatsächlich as-- und jetzt vertreten, Ich habe ein wenig harder-- so daran zu denken Charakter würde mit 0 dargestellt werden 0 1-- was brauche ich hier? 0 0 1 1 0 0 1 0. Wie habe ich das gemacht? Gut, das ist die Nummer 50, wenn Sie multiplizieren sie sich diese Spalten verwenden, dies ist die Zahl 2, und so deshalb gibt es diese Dichotomie ist. Und das ist nur ein Teaser jetzt Funktionen die existieren in Programmiersprachen dass wir heute kurz später berühren werde. In Programmiersprachen, Sie haben in der Regel, aber nicht immer, Dinge verschiedene Datentypen nennen. In anderen Worten, ein programmer-- wenn er oder sie schreibt, ein Programmierer wird in dem, was zu entscheiden, Format seine Daten zu speichern. Sie können entweder Daten speichern als rohen Zahlen, wie die Nummer 2. Oder Sie können sie als Strings speichern, oder Sequenzen von Zeichen, dass Sie in der Regel zum Ausdruck bringen würde, mit Zitate in Ihrer Programmiersprache. Sie können Dinge called-- Ich werde sie vereinfachend und rufen echte numbers-- so Zahlen, keine ganzen Zahlen wie die Zahl sind 2, aber Zahlen wie 4,56. So reelle Zahlen können auch Dezimalstellen haben, so das ist eine andere grundlegende Stück von Daten in einem Computer. Und dann können Sie auch haben andere Datentypen immer noch. Also das ist nur ein Teaser wirklich von das einfachste Design-Entscheidungen dass ein Programmierer machen unter der Haube. Also Fragen nur noch? So wollen wir versuchen zu machen dies ein wenig realer. Diese Hardware ist nicht so viel mehr in Gebrauch. Aber die meisten jeder in diesem Raum wohl wuchs mit und verwendet immer noch Festplatten irgendwie. Obwohl die meisten unsere Laptops nicht mehr haben Geräte, die so arbeiten, statt Laptops heute in der Regel haben Solid State Drives ohne bewegliche Teile. Und das dazu neigt, teurer zu sein, leider, aber ein wenig schneller und a-- gut, oft sehr viel schneller, Das ist einer der Gründe. Und tut es auch nicht so viel Wärme erzeugen. Es kann kleiner sein, so ist es im Allgemeinen eine positive Netto. Aber dies ermöglicht es uns, eine zur Karte wenig konkret, was wir reden am 0-en über und 1 Niveau nun zu einem physischen Gerät. Es ist eine Sache für mich zu sprechen etwa 0 und 1 ist in Bezug auf meines Telefons oder abstrakt in Bezug auf von ein- und ausgeschaltet wird. Aber was Festplatten? In Ihrer Laptops, haben, wenn Sie eine ältere ein, oder in Ihrem Desktop-Computer, oder auf jeden Fall in Servern heute, wo Sie Festplatten, die haben ein Terabyte Speicherplatz, 4 Terabyte Speicherplatz, gut, was bedeutet das? Eine Festplatte mit 1 Terabyte Raum Mittel es gibt 1 Billion Bytes in der es irgendwie, oder äquivalent 8000 Milliarden Bits im Inneren. 1 Terabyte wäre 8 Terabit oder 1 Billion Bits, die bedeutet, wenn Sie eine harte haben Laufwerk, müssen Sie irgendwie oder andere eine Billion 0-en und 1 ist im Inneren. Und wenn wir nur einen Blick auf eine zufälliges Bild einer Festplatte Vertreter, ist es das, was eine harte Laufwerk könnte typischerweise wie nach innen schauen. Es ist auch eine Art, wie ein alter Plattenspieler-Player aber in der Regel mit mehrere Datensätze nach innen, so zu speak-- mehrere Platten, wie sie genannt wird, Metallkreisscheiben und dann ein wenig Lesekopf, viel wie ein alter Plattenspieler. Und das Lesekopf bewegt sich hin und weiter liest und irgendwie die Bits. Und was ist auf diesen Platten, auch obwohl wir Menschen sie nicht sehen können, entweder in der Realität oder in diesem Bild, es gibt winzige magnetische Partikel. Und selbst wenn Sie schon lange vergessen, wie Elektrizität funktioniert, ein magnetisches Teilchen dass aufgeladen ist im Allgemeinen hat einen nördlichen Ende und einen nach Süden end-- so Norden und Süden. Und so einfach nur die Welt einige Zeit entschieden vor im Wesentlichen, dass, wenn ein magnetisches Protokoll ausgerichtet ist, wie diese, von Norden nach Süden, wir nennen das einen 1. Wenn es anstelle von Süden nach Norden, Nennen wir nur, dass ein 0. Und so, wenn Sie an Ihrer Verfügung eine Billion winzig kleine magnetische particles-- und hoffentlich, die Hardware Einfallsreichtum in Um die um Flip wie Sie fit-- sehen, wenn Sie möchten, stellen eine ganze Reihe von 0-en, Sie brauchen nur 8 magnetische Partikel alle wie diese ausgerichtet sind. Und wenn Sie wollen darstellen acht 1-en, die Sie gerade müssen 8 magnetische Partikel ausgerichtet Rücken an Rücken wie diese zu unterstützen. Was meine ich mit der magnetische Partikel? Ehrlich gesagt, all diese Jahre später, die was mir in den Sinn kommt noch dieser Kerl ist, wenn Sie wuchs mit diesem Ding. Dies ist ein für little-- diejenigen unfamiliar-- ein wenig Kindheit Spielzeug, das hat dieses unbehaarte Mann hier das hat all diese winzig kleinen schwarz magnetische Partikel, die mit ihm gekommen. Und das rot-Stick, Das ist nur ein Magnet, Sie können sortieren ihm geben einen Schnurrbart oder Augenbrauen oder Haare oder etwas über ihn. Also in der Tat, wenn wir heran in, zum Beispiel, diese ist die Art von Spiel, das Sie kann mit Wooly Willy spielen. Und dies ist nur zu sagen, diese sind viel größer magnetischen Teilchen als tatsächlich auf einer Festplatte, und weit weniger magnetische Teilchen. Aber lassen Sie uns tatsächlich sehen Wenn Sie dann haben winzige magnetische Teilchen in einem Festplatte, wie kann man eigentlich verwenden diejenigen Daten darzustellen. [VIDEO-WIEDERGABE] -Die Festplatte ist, wo Ihr PC speichert die meisten seiner permanenten Daten. Um dies zu erreichen, werden die Daten reist von RAM entlang mit Software signalisiert, dass die sagen, Festplatte, wie diese Daten zu speichern. Die Festplatte Schaltungen übersetzen diejenigen Signale in Spannungsschwankungen. Diese wiederum steuern die Festplatte einige der wenigen beweglichen bewegenden parts-- Teile in der modernen Computer gelassen. Einige der Signale steuern einen Motor, die spinnt metallbeschichteten Platten. Ihre Daten sind eigentlich auf diesen Platten gespeichert. Andere Signale bewegen, um die Lese- / Schreibköpfe zu lesen oder Daten auf den Platten zu schreiben. Diese Maschine ist so präzise, dass ein menschliches Haar konnte nicht einmal Pass zwischen den Köpfen und Spinnen Platten. Doch es funktioniert alles mit ungeheurer Geschwindigkeit. [END WIEDERGABE] Und Sie können auf die zu sehen Schwanzende des Videos, gibt es im Allgemeinen mehrere Platten. Und so, dass Lesekopf liest nicht nur die Spitze. Es ist eine Art, wie drei oder vier oder mehr Leseköpfe die sich bewegen wie diese, Lesen gleichzeitig Daten. So gibt es eine Menge von Komplexität und Art des Timings das ist in einer Festplatte beteiligt. Und die Sache dreht sich wirklich verflixt schnell, so gibt es eine Menge von Komplexität. Aber lassen Sie uns vergrößern, ein wenig tiefer und sehen, wo diese magnetischen Teilchen und wie werden wir bei ihnen. [VIDEO-WIEDERGABE] -Lassen Einen Blick auf, was wir sah nur in Zeitlupe. Wenn ein kurzer Impuls von Strom ist mit dem Lese- / Schreibkopf gesendet wird, sie dreht auf einem winzigen elektromagnetischen für einen Bruchteil einer Sekunde. Der Magnet erzeugt ein Feld, das ändert die Polarität eines kleinen, winzigen Teil der Metallpartikel das Fell jeder Oberfläche der Platte. Ein Muster Reihe dieser winzigen aufgeladen Bereiche auf der Platte stellt ein einzelnes Bit von Daten in der binäre Zahlensystem von Computern verwendet. Wenn nun der Strom gesendetes Weg durch den Lese- / Schreibkopf, der Bereich ist in einer Richtung polarisiert. Wenn der Strom eingeschickt die entgegengesetzte Richtung, die Polarisation umgekehrt wird. Wie Sie Daten von der Festplatte zu bekommen? Kehren Sie einfach den Vorgang. So ist es, die Partikel auf die Datenträger, der die aktuelle erhalten in der Lese- / Schreibkopf bewegt. Stellen Sie sich Millionen von diese magnetisiert Segmente, und Sie haben eine Datei einsehen. Nun können die Stücke aus einer einzigen Datei sein alle über eine Fahr Platten verstreut, Art wie das Chaos Papiere auf Ihrem Schreibtisch. So ein besonderes Extra-Datei hält verfolgen, wo alles ist. Sie nicht wünschen Sie hatten so ähnlich? [END WIEDERGABE] So wird dort erwähnt, vielleicht ist dass Thema von gestern der Löschung. Wenn Sie eine löschen Datei, gestern sagte, dass wir dass ein Computer tatsächlich tut was, wenn Sie etwas ziehen in den Papierkorb oder Mülleimer? Es vergisst es einfach. Aber die 0 und 1 ist, die magnetischen Teilchen die aussehen wie rot und blau Dinge hier, oder meinen Arm hier, gibt es immer noch auf der Festplatte. Und so gibt es software-- Norton Utilities und Yesteryear und andere modernere software-- dass nur scannt suchen eine ganze Festplatte bei all den 0 und 1 ist, weil es stellt sich heraus, dass die meisten Datei formats-- Word-Dokumente, Excel-Dateien, Bilder, Video files-- alle sicher haben Muster, die unter ihnen gemeinsam sind. Jede Videodatei könnte sein eines anderen Video-, aber die ersten paar Bits sind in der Regel gleich. Oder die letzten Bits üblicherweise sind die gleichen. Und so mit hoher Wahrscheinlichkeit, Sie können für diesen Mustern zu suchen. Und selbst wenn die Datei vergessen wurde, Sie können mit hoher Wahrscheinlichkeit sagen, aber das sieht aus wie ein Word-Dokument, erholen lässt es und un-vergiss es, wenn du möchtest. Und so ist, dass, wie Sie sich erholen können Daten, die entweder aus Versehen gewesen gelöscht oder gelöscht oder absichtlich für welche Zwecke auch immer gelöscht. Im Gegensatz dazu das sichere Löschen tut, was im Zusammenhang mit einem Bild wie diesem? Genau das macht sie alle zufällig. So bewegt er sich Art von einigen sie nieder, einige von ihnen nach oben, lässt einige von ihnen unverändert, und aus der es im allgemeinen Rauschen macht, oder einfach nur macht vielleicht alle sie 0en oder alle von ihnen 1 ist. Und auch das kann im Allgemeinen Schrubben Sie Ihre Daten weg. So kehren wir jetzt zu dem Thema Computational Denken, wobei wir haben die Formel-Eingänge. Und Algorithmen gibt Sie gibt schließlich. Wir konzentrieren uns jetzt auf Ein- und Ausgänge, denn jetzt, ich Anspruch haben wir einen Weg darstellt Ein- und Ausgänge. Wir gehen nur binär zu verwenden. Und egal, was wir wollen heute zu vertreten, ob es sich um eine Zahl oder einen Buchstaben oder Tausende davon in einem Telefonbuch oder Bilder oder Filme, am Ende des Tages, es ist alles 0 und 1 ist. Und ich behaupten, dass, auch wenn diese mit nur 0-en ist ein super einfache Welt und 1 ist, können wir uns aufbauen. Und wir haben ein Beispiel gesehen von dass bisher mit Buchstaben. Also lassen Sie uns jetzt darauf konzentrieren, auf diese Mittelzutat, ein Algorithmus. Und lassen Sie uns darauf zurück Beispiel für Mike Smith. Also in diesem Telefonbuch, die zugegebenermaßen wir so viel nicht mehr verwenden, es gibt ein Problem gelöst werden. Wir wollen wie Mike Smith, jemanden zu finden. Und was könnte ich tun, Mike zu finden? Nun, ich konnte einfach öffnen diese Buch, auf der ersten Seite zu starten, und erkennen, oh, ich in der A Abschnitt bin. Mike ist nicht da. Ich brauche die S Abschnitt für Smith. So halten nur eine Seite auf einmal drehen. Lassen Sie mich so tun, dass dies alles ist Weiß-Seiten und nicht Gelben Seiten, denn wir werden nicht gefunden Mike in den Gelben Seiten sowieso. Aber ich bin in den weißen Seiten. Und jetzt bin ich in der B-Seite. Ich habe ihn immer noch nicht gefunden. So halte ich eine Seite auf einmal drehen. Dies ist ein Algorithmus. Es ist eine Reihe von Anweisungen für ein Problem zu lösen. Mit anderen Worten, schauen Seite, wenn Mike nicht darauf, drehen Seite und wiederholt wieder und wieder und wieder, ideal nach unten, wie Sie es tun. So ist dieser Algorithmus, Dieser Prozess, richtig? Es tut uns leid. Nein, ich höre einige nos. OK, aber es ist-- ja, es ist sicherlich mühsam. Wie werden wir hier den ganzen Tag, wenn ich sein halten für Mike bei dieser Geschwindigkeit suchen. Aber lassen Sie mich behaupten, es ist richtig. Es ist dumm, aber es ist richtig. Am Ende des Tages, solange es vielleicht nehmen, werde ich Mike finden, wenn er da drin ist und ich zahle Aufmerksamkeit. Und ich erreichen schließlich seine Seite. Und wenn ich zu weit kommen, wenn Ich bekomme mit dem T-Profil, Ich kann dann leicht optimieren und nur sagen, hm, alles getan. Ich brauche nicht einmal zu verschwenden Zeit gehen in die Z. Aber dies ist eine sehr linearen Ansatz, wenn Sie wird eine sehr Art von links nach rechts Ansatz, eine gerade Linie. Und seine korrekte, aber langsam. Also ich erinnere mich, von der Grundschule, sortieren einer Optimierung von einem Erstklässler, wo ich gelernt, wie man es nicht zu zählen durch diejenigen, sondern durch twos-- so 2, 4, 6. Es ist ein, viel schwieriger zu tun, aber in der Theorie, es ist faster-- 8, 10, 12, 14, und so weiter. Was ist mit dem Algorithmus? Ist es effizienter? Ist es schneller? PUBLIKUM: Es ist effizient. DAVID MALAN: Ja, so ist es def-- es ist buchstäblich doppelt so schnell, unter der Annahme, I Lassen Sie sich nicht gestolpert mit meinen Fingern. Es ist doppelt so schnell, weil Ich drehe durch zwei Seiten auf einmal statt, aber es ist in der richtigen möglicherweise, weil, warum? PUBLIKUM: Sie sind etwas zu überspringen. DAVID MALAN: Richtig, was ist, wenn Mike passiert vielleicht werden sandwiched--, wenn ich später im Telefonbuch, geschieht Mike zu sein zwischen diesen beiden Seiten sandwichartig angeordnet, und ich überspringen einfach blind darüber. Also brauchen wir ein wenig fix dort. Sobald ich den T Abschnitt getroffen, ich nur getrost kann nicht sagen, wir fanden Mike Smith nicht. Ich habe wahrscheinlich wieder zu verdoppeln. Oder in der Tat, wenn ich jemanden erreichen S-N genannt, anstelle von S-M für Smith, Ich konnte sofort verdoppeln zurück, weil er vielleicht war auf der vorherigen Seite. Aber ich muss weit nicht verdoppeln zurück. In der Theorie tun, wenn ich es auf der rechten Seite Zeit, gehe ich nur eine Seite zurück. So das Hinzufügen es nur einen zusätzlichen Schritt. So habe ich doppelt so schnell gegangen, aber es kostete mich eine zusätzliche Seite. Aber das fühlt sich an wie ein Nettogewinn. Dies ist jedoch nicht wie die meisten Menschen in Das Zimmer würde dieses Problem lösen. Was würde eine typische Person, vielleicht ein Vor tun, einige Jahre Mike Smith zu finden? Ja, nicht Mike finden. Was mache ich? Deshalb sollte man ein wenig näher, aber ich tun wissen-- was über ein Telefonbuch ist wahr? PUBLIKUM: Es ist sequentiell. DAVID MALAN: Es ist sequentiell. Es ist alphabetisch. Und so, wenn ich in der M Abschnitt bin, Mike ist eindeutig nach rechts, Ich kann buchstäblich zerreißen das Problem in half-- es ist in der Regel einfacher, als dass-- Träne das Problem in der Mitte und werfen es weg, so dass jetzt habe ich ein Problem, das ist nicht mehr 1000 pages--, die hart war, weil ich denke, ich riss tatsächlich das Telefonbuch dieses Zeit-- nicht 1000 Seiten, aber 500. Das Problem ist also buchstäblich halb so groß. Und das ist ziemlich überzeugend, weil mit meinem früheren Algorithmen, Version 1 und 2, mache ich nur das Problem eine Seite kleiner, zwei Seiten kleiner zu einem Zeitpunkt. Während jetzt habe ich es 500 Seiten kleiner auf einmal. OK, also jetzt, Karim schlägt dass ich auf die rechte Hälfte gehen. Also werde ich in etwa gehen in die Mitte, geben oder nehmen. Und wenn ich tat dies mathematisch, Ich konnte direkt in die Mitte gehen. Und jetzt merke ich,, oh, Ich bin in der T-Seite. Ich habe eigentlich zu weit gehen. Aber ich kann wieder reißen die Problem in der Hälfte, werfen Sie es weg. Und meine Bytes nicht so groß. Es ist nur, was, 256 Seiten oder 250 Seiten, geben oder sofort ergreifen. Aber es ist noch viel mehr als eine Seite oder zwei Seiten. Und jetzt gehe ich in etwa der Mitte. Oh, ich ging nicht weit genug jetzt. So wiederhole ich, wiederholen, wiederholen, wiederholen, bis ich hoffentlich bin mit nur einer Seite links. So lädt dass die Frage, ob ich mit rund 1.000 Seiten gestartet, wie viele Schritte hat es gedauert, mich mit der Version 1 meiner Algorithmus? Nun, wenn Mike in der S Abschnitt, im schlimmsten Fall, das ist ziemlich nahe an das Ende des Alphabets. Also, wenn das Telefonbuch hat 1.000 Seiten, Ich finde Mike innerhalb 1.000 Seiten, geben oder nehmen. Vielleicht ist es wie 800 oder so, aber es ist ziemlich nahe an 1000. Während in der zweiten Algorithmus, wie viele Seite dreht maximal könnte ich erfordern Mike Smith zu finden? Es gibt 1000 Seiten, aber ich bin tun sie zwei auf einmal. Richtig, also max wie 500ish, weil wenn ich durch das ganze Telefonbuch gehen, Ich kann an diesem Punkt, zu stoppen. Aber ich kann ein paar abrasieren durch nur Halt an dem Abschnitt T. Aber es ist im schlimmsten Fall 500 Seiten. Wie oft kann ich teilen ein 1,00o-Seite Telefonbuch in Hälfte wieder und wieder und again-- aus 1,000 bis 500 bis 250 bis 125? Wie lange, bevor ich traf eine Seite? Ja, es ist etwa 10. Je nach Runden und so, es ist ca. 10 Seiten insgesamt Bedarf gedreht werden oder Telefon Bücher müssen abgerissen werden. Also das ist ziemlich mächtig. Wir begannen mit einem 1.000-Seiten-Problem in allen drei dieser Geschichten. Aber in dem ersten Algorithmus, es nahm mich, am schlechtesten Fall 1000 Seite wendet sich Mike zu finden. Zweiter Algorithmus, 500 Seiten Mike zu finden. Drittens Algorithmus, 10 Seiten Mike zu finden. Und es ist noch mehr mächtig, wenn Sie denken, über Art eines entgegengesetzten Szenario. Nehmen wir an, dass die Telefongesellschaft nächste Jahr verschmilzt vielleicht zwei Städte zusammen, und das Telefonbuch ist plötzlich diese dick, statt dieser, dass, so 2.000 Seiten anstelle von 1000. Nun, mein erster Algorithmus sucht Mike Smith in einer 2000-Seite Telefonbuch, schlimmer Fall geht es zu nehmen wie viele Seiten dreht sich im nächsten Jahr? Telefonbuch ist 2.000 Seiten, SO- gut, nicht noch einen. Wenn das Telefonbuch ist doppelt so dick in der erste Algorithmus, ersten Algorithmus, 2000, nicht wahr? Im schlimmsten Fall, Mike ist wirklich nahe dem Ende des Buches, es ist so 2000 Seite dreht. Zweiter Algorithmus geht von Zweier, wie 1000 Seiten. Aber wie wäre es in meinem dritten und letzten Algorithmus? Wenn die Telefongesellschaft verdoppelt sich die Anzahl der Seiten, von 1.000 bis 2.000, Wie oft muss ich reißen dass Buch in zwei Hälften zu Mike finden? PUBLIKUM: Nur eine. DAVID MALAN: Nur noch ein, weil mit einer Seite reißen, Ich kann buchstäblich teilen und zu erobern, wenn man so will, dass Problem in Hälfte Mitnahmen ein massiver Biss aus ihm heraus. Und so ist dies ein Beispiel für Effizienz und wohl auch ein Algorithmus mit dem wir alle sind Art intuitiv vertraut. Aber es ist ebenso richtig wie meine anderen Algorithmen mit diesem Tweak für der zweite Algorithmus, aber es ist so viel effizienter. Und in der Tat, was ein Computer Wissenschaftler oder wiederum ein Programmierer, tun würde normalerweise beim Schreiben Code ist zu versuchen, um herauszufinden, Alles in Ordnung, ich will nicht meine Programm nur um korrekt zu sein, Ich will es auch effizient sein und Probleme zu lösen gut. Stellen Sie sich in der realen Welt heute wie Google indiziert, sucht wie Milliarden von Seiten, sich vorstellen, wenn sie den ersten Algorithmus verwendet, Katzen zu finden unter einer Milliarde pages-- bei der Suche die erste Seite in ihrer Datenbank, die zweite, die dritte, gerade auf der Suche für eine Katze, auf der Suche nach einer Katze. Das ist verdammt langsam wie es scheint. Sie könnten stattdessen etwas verwenden genannt binäre Suche, die wir keine coincidence-- bi zwei bedeutet, halten etwas in 2, in half-- Dividieren sie könnten binäre Suche verwenden und vielleicht Katzen noch schneller finden, oder was auch immer es ist, den Sie suchen. Und ehrlich gesagt, es gibt auch ausgefallenere Algorithmen dass viel mehr tun, als nur Dividieren halben Sachen um Informationen schnell zu finden. Und wir werden ein wenig reden etwa heute jene nach dem Mittagessen. Lassen Sie mich also nur versuchen, diese zu vertreten. Wir brauchen nicht in zu gehen, jede mathematische oder tatsächlichen Zahlen. Wir können über diese in der abstrakten reden. Aber lassen Sie mich nur vorschlagen, wenn Sie eine Diskussion hatten jetzt mit den Ingenieuren schlägt diesen Algorithmus und Sie versuchen zu machen eine kalkulierte Entscheidung, weil vielleicht die Ingenieur zu dir sagt, du wissen, was ich umsetzen kann ein lineare Suche in wie zwei Minuten. So einfach ist das. Binäre Suche ist nicht so schick, aber es geht mir wie 10 Minuten dauern, so 5-mal so lang. Es gibt einen Handel hier, auch in Bezug auf von der Entscheidung, welche Software zu schreiben. Haben Sie den einfacheren Algorithmus schreiben, die nehmen Sie nur zwei Minuten? Oder verbringen Sie mehr Zeit, 10 Minuten Schreiben des schicker Algorithmus? Wie Sie diese Art von Frage entscheiden? Oder man könnte es ein wenig mehr real zu machen. Ich sage meinen Chef, es wird zu nehmen mich entweder einer Woche und 10 Wochen zur Umsetzung der Software auf diese Weise, wie Sie entscheiden, welche Algorithmus, um grünes Licht? Karim? PUBLIKUM: Das Publikum, denke ich. DAVID MALAN: Das Publikum. Was meinst du mit dem Publikum? PUBLIKUM: Wenn es geht In den von den Benutzern verwendet werden, die [unverständlich] von Nutzern [unverständlich]. Aber wenn es etwas ist, du bist tun nur für sich selbst ein Problem zu erleichtern, [Unverständlich] schneller. DAVID MALAN: Ja, es ist schnell und schmutzig ist ein guter Weg, um es zu beschreiben. In der Tat, wenn Sie beschreibt viel von meiner Zeit in grad Schule, wobei oft mal, Ich schrieb schlechten Code bewusst SO- das ist zumindest, wie ich rationalisiert es-- bewusst so, denn obwohl ich das Schreiben von Code das war relativ langsam auszuführen, Ich konnte den Code selbst zu schreiben ziemlich schnell, die Ausgaben nur wenige Minuten oder Stunden nicht Tagen. Und es stellte sich heraus, I gelegentlich schlafen benötigt. Also selbst wenn mein Code erforderlich 8 Stunden, auch das ist gut zu laufen, Ich gehe nur zu schlafen, während es läuft. Also zu der Zeit, dachte ich, das war sehr klug, obwohl ich anscheinend arbeitete sehr langsam durch meine Doktorarbeit. Aber das Gegenteil von dem ist dass, wenn ich schriebe Software für andere Menschen, die mehr zählte als ich, na ja, mit ihnen warten 8 Stunden wieder ihre Suchergebnisse ist gar nicht so überzeugend. Und verbringen so mehr Zeit vorne zu schreiben Software das ist effizienter, wie unser dritter Algorithmus, wahrscheinlich profitieren die Anwender im Laufe der Zeit. Es hängt also wirklich über Zeit, wie diese Kosten summieren. Wenn du gehst zu schreiben Software, es zu benutzen, wenn, wahrscheinlich könnte genauso gut tun schnell und schmutzig, wie sie sagen. werfen Sie es einfach zusammen. Es ist Code, der in Verlegenheit bringt Sie, es ist so schlecht, aber es wird die Arbeit richtig gemacht, obwohl es nicht effizient. Im Gegensatz dazu verbringen Sie mehr Zeit auf etwas, um es genau richtig. Und dann im Laufe der Zeit amortisieren, dass Kosten im Voraus von Zeit wahrscheinlich lohnt, wenn Sie halten Optimierung für den gemeinsamen Fall. Und in der Tat, das ist ein Thema in Programmierung oder Informatik mehr im Allgemeinen, versuchen zu optimieren nicht für den ungewöhnlichen Fall aber die gemeinsame Fall-- welche Operation wird immer wieder passieren? Wenn Sie vorhaben, Milliarden zu haben der Nutzer auf Ihrer Website suchen, Sie sollten wahrscheinlich die extra ausgeben Wochen vorne bessere Software zu schreiben, so dass alle Benutzer profitieren. Jetzt wollen wir versuchen, diese ein zu erfassen wenig bildhaft, aber nicht so viel numerisch. Also hier ist nur eine alte Schule-Chart. Und lassen Sie mich sagen, dass diese Zeit ist. Und es spielt keine Rolle, what-- eigentlich, nein, keine Zeit. Sagen wir, dass auf der anderen Achse. Lassen Sie uns sagen, dass dies die Zeit ist, und das ist Größe des Problems. Und ein Informatiker könnte im Allgemeinen nennen dies nur n. n ist wie unser Go-to-Variable, wo n eine Zahl ist, n Zahl, und es ist das Anzahl der unabhängig Eingänge Sie haben. So in diesem Fall n die Anzahl der Seiten. So könnte es sein, 1000 in der Fall, dass wir gerade gesagt. So kann Zeit jede Maßeinheit sein. Vielleicht ist es Sekunde. Vielleicht ist es Tag. Vielleicht ist es wie Seite dreht. Spielt keine Rolle. Was auch immer Sie wollen in zu zählen, dass wird in äquivalenter Zeit oder Kosten. So mit dem ersten Algorithmus, wenn I, beispielsweise hatte ein Telefonbuch 1000-Seite, Ich werde dort einen Punkt zu zeichnen, denn wenn es 1.000 Seiten ist, dauerte es rund 1.000 Seite dreht, geben oder nehmen. Und dann, wenn ich hatte eine 2000-Seite Telefonbuch, und ich werde ein zweites zu ziehen hier dot, weil für 2000 Seiten, es ist wie 2.000 Sekunden oder Seite dreht oder was auch immer. Und so, wenn ich bereits sagte, ist es Art einer linearen Beziehung, das war absichtlich, weil ich wollte, später on-- rechts now-- eine Linie zu zeichnen. Es ist eine Art einer geraden Linie Beziehung. Die Steigung ist 1/1, wenn man so will. Inzwischen ist der zweite Algorithmus sagte, wenn Sie 1.000 Seiten haben und Sie wurden unter Verwendung des zweiten Algorithmus, wo ich von 2 des gezählt, Drehen zwei Seiten auf einmal, ich sollte ein Unentschieden Punkt unter oder über meinem ursprünglichen Punkt? PUBLIKUM: Unten. DAVID MALAN: Unten, weil, wie wir gesehen haben, es braucht weniger Zeit, halb so viel Zeit. So sollte der Punkt Hälfte sein so hoch ist wie die andere. Und gleiche Geschäft hier, dieser Punkt sollte wohl in etwa dort sein. Und so mein zweiter Algorithmus, ähnlich, eine lineare Beziehung mit der Zeit. Und wir können sie als solche zu ziehen. So, jetzt die dritte und letzte Algorithmus ist ein wenig schwieriger zu ziehen. Aber intuitiv, wenn ich habe 1000 bekam Seiten mit meinem dritten Algorithmus, es sollte nimm mich nur wie 10 Stufen. Und wenn ich habe 2000 Seiten bekam mit meinem dritten Algorithmus, es sollte mich nehmen nicht mehr als 10 Schritte, aber 11, nur eine mehr. Wir sind also nur knapp das gehen zu sehen. Und es stellt sich heraus, wenn Ich Zoom auf diese, ich bin gehen für die Wirkung zu übertreiben, die Form dieser Linie letztendlich keine gerade line-- denn in der Tat wäre es, es würde eher wie das aussehen Andere-- es ist eigentlich eine gekrümmte Linie dass, wenn wir die Ansicht vergrößern, wird viel mehr wie folgt aussehen. Es-- gut, OK, um diesen Teil zu ignorieren. Das war meine Feder Winkel gehen. Es ist eine gekrümmte Linie, die immer zunimmt, immer, immer, immer nimmt zu, aber nur gerade noch. Und so im Laufe der Zeit, haben Sie eine Beziehung, die eher wie dieses ist. Es sieht fast gerade. Aber es ist immer so langsam zu. Aber bei fast allen Punkten entlang Ihre x-Achse, horizontale Achse, es ist niedriger als die anderen Linien. So könnte dies eine Beziehung sein, n, wobei n, wenn Sie Seiten haben, nimmt man n Sekunden. Dies könnte ein Verhältnis n / 2 betragen. Sie haben n Seiten, dauert es Sie n / 2 Sekunden halb so viele. Und dies ist ein logarithmischer Beziehung, die wenn Sie sich erinnern, log Basis 2 von n-Captures Diese Art von Wachstum, sozusagen. So ist dies die Art von heiligen Gral unter den drei von ihnen hier, weil es einfach so viel mehr effizient, aber wohl komplexer implementieren. Irgendwelche Fragen? Nun lassen Sie mich dies zu tun, lassen mir öffnet sich ein Textfenster nach oben nur so können wir versuchen, formalisieren hier etwas. Also lassen Sie mich voran gehen jetzt und implementieren diesen Algorithmus für die Suche nach Mike Smith in Code, wenn man so will, Pseudo-Code-Code. Ich werde nicht Java oder C ++ zu verwenden. Ich werde einfach irgendwie verwenden Englisch-ähnliche Syntax, die wir würde in der Regel Pseudo-Code-Code aufrufen. Hier habe ich ein leeres Fenster. Und ich sage Schritt 1 des sehr erste Algorithmus ist Telefonbuch abholen. Schritt 2 ist offenes Buch zur ersten Seite. Schritt 3 aussehen wird sein auf Seite für Mike Smith. Wenn auf Seite rufen Mike. sonst wiederum Seite und gehen Sie zu Schritt 3. Geschehen, lassen Sie uns sagen. Und so ist es nicht ganz perfekt, die wir in einem Moment zu sehen. Aber lassen Sie uns überlegen, was Konzepte, die ich habe hier eingeführt. So die Schritte 1 und 2 und 3 sind so ziemlich Verben. Sie sind Aussagen, actions-- tun. Und so in einem Programmier Sprache, würden wir in der Regel nennen sie Aussagen oder Funktionen oder Prozeduren, sie beliebige Anzahl von Dingen nennen. Aber sie sind actions-- gerade dies tun. Schritt 4 ist grundlegend anders, weil es eine Art ist eine Frage zu stellen. Es ist zu sagen, wir sind Art von an einer Weggabelung. Wenn Mike auf der Seite ist, rufen ihn, so biegen Sie links ab, wenn man so will. Und wenn nicht, gehen Sie zurück zu einigen andere page-- oder besser gesagt, sorry, gehen Sie zurück zu einem anderen Schritt, der induziert eine Art von Schleifenkonstrukt. Und wir tun es wieder und wieder und wieder. Und tatsächlich, wissen Sie was? Ja. wenn sonst am Ende des Buches zu stoppen. Also brauchen wir ein bisschen eine dritte Zustand, da Sie halten kann die Seite nicht ad drehen nauseum, denn schließlich, ich werde traf das Ende des Buches. Und ein Fehler in einem Programm sein könnte dieses Szenario nicht erwarten. Und dann habe ich gerade festgestellt, oh, warten eine Minute, ich brauche ein drittes Szenario. Wenn ich aus der Seiten bin ich sollte wirklich nur stoppen. Ansonsten ist es nicht definiert. Was wird passieren, wenn ich halten sagen die Seite drehen und zurück, dies ist als Computer einfrieren oder abstürzen, wenn sie getroffen werden einige unerwartete Situation ähnlich. Nun, was Mike Smiths dritte algorithm-- wählen Sie das Telefonbuch auf, offenes Buch first-- zu nein, nicht die erste Seite dieses Mal, oh middle--, na ja, das wäre sein der zweite Algorithmus. Lassen Sie uns einfach an die dritte überspringen. PUBLIKUM: Oh, tut mir leid. DAVID MALAN: Das ist in Ordnung. Lassen Sie uns einfach überspringen zum third-- offen bis Mitte für Mike Smith aussehen und jetzt. wenn auf Seite rufen Mike. Und dann, was tun wir hier sagen wollen? sonst was? Wir können dies zum Ausdruck bringen in einer beliebigen Anzahl von Möglichkeiten. Es gibt keine richtige Antwort. OK, wenn nicht wieder, aber wir müssen be-- OK, wir haben in zwei geteilt werden soll, aber wollen wir gehen nach links oder rechts gehen? Wie drücken wir diesen Begriff? Nun, in Mikes Fall, ja, das ist fair. Aber OK, das ist also eigentlich ein guter Punkt. Das ist gut. Wir halten mit dieser Logik geht. Damit-- PUBLIKUM: Weniger als die Hälfte. DAVID MALAN: Ja. So else if Seite ist, werden wir sagen, weniger als Smith, nach links von Smith, then-- wollen wir sehen, ist dies geht zu erschweren? else if Seite kommt, bevor Smith, in zwei Hälften reißen, wegwerfen, welche Hälfte? PUBLIKUM: Ich dachte, das war [unverständlich]. DAVID MALAN: Ich höre beide Antworten. PUBLIKUM: links. DAVID MALAN: OK, werfen weg halb links, wie Lakisa früher gesagt, die linke Hälfte, dann habe ich von Art will nur gehen zu-- ich nach rechts gehen. Oder äquivalent, und habe ich ein wenig bisschen ein Durcheinander von Anfang an hier, Ich möchte effektiv gehen 2 wieder zu Schritt, wo offen für die middle-- oder open-- ja, sagen wir einfach, Seiten zu Mitte. Und das behebt es. Es ist nicht mehr ein Buch. Es ist nur die Hälfte eines Buches, so geöffneten Seiten zu Mitte. else-- waren fast da. Schritt 6, andernfalls, wenn Seite kommt nach Smith, reißen in der Hälfte, wegwerfen rechte Hälfte, dann gehen Sie zu Schritt 2. sonst verlassen, ein viertes Szenario, wenn wir haben keine Seiten zu biegen Sie links ab. So konnten wir das bereinigen. Und wir sollten diese bereinigen. Dies ist sehr Pseudo-Code-Code, wenn Sie wird, sehr hohen Niveau Beschreibung. Aber es ist im Allgemeinen die Idee zu erfassen. Und wiederum in diesem Szenario wir haben den Begriff einer Bedingung, ein Zweig, eine Gabel in der Straße, so dass wenn dies ein decision--, diesen Weg gehen, wenn sonst, gehen auf diese Weise, wenn sonst, gehen auf diese Weise. Und dies ist ein sehr häufig Programmiertechnik welche Richtung zu entscheiden, zu gehen, sozusagen. Und wir haben auch eine Art der Schleifenstruktur, wo wir tun etwas wieder und wieder. Nun, es stellt sich heraus, viel wie in diesem Beispiel, Super präzise zu sein, ist wichtig. Aber wir haben auch etwas gesehen dass wir halten Abstraktion aufrufen. Was bedeutet es, Telefonbuch zu holen? Wir sind nur eine Art der Einnahme in diesem Raum gewährt dass das hat eine gewisse semantische Bedeutung. wissen Art Alle von uns nur, oh, gut, wählen Sie das Telefonbuch auf. Was bedeutet das eigentlich? Nun, das wirklich bedeutet verlängern Hand, lehnen erstrecken sich die Finger, kneifen Buch zwischen den Fingern, aufstehen, die Hand Richtung ziehen. Und wir könnten wirklich sein pedantisch darüber, Sein wirklich super präzise als zu dem, was ich tue. Aber alle diese Schritte zusammen sind was es bedeutet, ein Telefonbuch zu holen. Und so früher, als ich sagte, jede dieser ersten beiden Aussagen werden kann, wie ein Gedanke von gehen oder eine Funktion, wirklich bedeutet es, was wir halten eine Abstraktion aufrufen. Es ist wie eine hohe konzeptionelle Beschreibung eines Problems, das tatsächlich beinhaltet eine ganze Reihe von Schritten. Und so auch dies ist ein wiederkehrende Thema in der Programmierung, wobei ich könnte ein Programm schreiben, Verwendung Syntax wie this-- pick_up_phone_book (). Und dann syntaktisch, ich bin gehen, um etwas zu stehlen von den meisten Programmiersprachen. Nun Schritt 1 sieht sogar mehr wie eine Funktion, als Programmierer würde es nennen. Es sieht aus wie Code, dass jemand hat einen Namen und gegeben gegeben mir in anderen zu verwenden somehow-- Worte, was die Linie, die ich hervorgehoben habe stellt Funktionalität, die vielleicht Ich habe nicht einmal selbst umzusetzen. Jemand älter, weiser als mich bereits heraus wie Sie zum Ausdruck bringen, den Begriff der Kommissionierung ein Telefonbuch auf. Und es ist wie die fünf Schritte, die ich gerade rasselte, aus der Spitze von meinem Kopf. Aber er oder sie bereits umgesetzt Dazu gab diese in mehreren Schritten ein Name, pick_up_phone_book. Und die Klammern genau das, was die meisten Programmierer tun am Ende Aussagen wie diese. Ich kann jetzt stehen auf seinem Schultern und nie wieder, darüber nachzudenken, was es bedeutet, ein Telefonbuch zu holen. Ich kann nur sagen, das Telefonbuch abholen. Und das ist genau das, was alle von uns Menschen haben hier. Als wir waren wahrscheinlich 1 Jahre alt, 2 Jahre alt, jemand hatte uns zu lehren, was es bedeutete ein Telefonbuch zu holen. Und seitdem, wir haben wegabstrahiert von jenen sehr uninteressant mechanische Schritte. Und wir haben nur ein intuitives Verständnis von dem, was es bedeutet, wählen Sie ein Telefonbuch auf. Und Sie können jetzt extrapolieren zu komplizierteren things-- konstruieren ein Gebäude. Wie, um einige Leute, das hat tatsächlich Bedeutung. Um Bauunternehmer, Architekten, das hat eine Bedeutung. Und sie würden wissen, was zu tun ist, wenn Ich sagte, gehen beim Bau eines Gebäudes. Aber die meisten von uns im Zimmer konnte nicht befassen sich mit dieser Ebene der Abstraktion. Sie müssen uns sagen, wie sich gehen die Schaufel und gehen, um den Beton zu bekommen und nageln die Holzstücke zusammen und was sonst beteiligt ist, ein Gebäude zu bauen. Und das ist, weil wir nicht haben noch so programmiert worden, zu verstehen, was es heißt, ein Gebäude zu errichten. Wir haben nicht die Abstraktion. Wir haben nicht die Funktionalität. Und so, was Sie sehen in Programmiersprachen, im Allgemeinen, vor allem modernere Sprachen, wie Java, PHP, Ruby und Python, sie sind viel reifer als ältere Sprachen, wie C und C ++ und noch andere. Und so kommen sie mit mehr Funktionalität eingebaut. Weitere Code wurde geschrieben von Menschen in der Vergangenheit dass wir jetzt anrufen oder beschwören oder verwenden, wie ich anspielend bei mit dieser markiert hier Linie. Und so, obwohl wir reden hier nicht über Programmiersprachen per se, nur Pseudo-Code-Code, die alle die Ideen sind immer noch in dieser Diskussion. Und es stellt sich heraus Präzision super wichtig, wie Abstraktion. Und lassen Sie uns versuchen, mitteilen, dass Sie wie folgt vor. Ich hätte versehentlich verdorben Dies wird durch eine Folie auf dem Bildschirm blinkt vorzeitig. Aber lassen Sie mich für einen tapferen Freiwilligen fragen, wenn Sie nichts dagegen nicht kommen. Sie würden vor dem sein Kamera, wenn Sie mit dem OK sind. Möchte jemand bis zu kommen und geben hier Anweisungen an Ihre Kollegen? Haben Sie einfach hierher zu kommen und stehen hier und ein paar Worte sagen. Victoria lächelt die meisten und die Vermeidung von meinen Augen am meisten. Wären Sie bereit, bis zu kommen? OK. Und wenn alle anderen an Ihre Plätze herausnehmen könnte ein Stück Schrott, Papier, wenn du möchtest. Gezeichnetes Papier ist in Ordnung. Kommen Sie auf diese Weise um. Oder einige des Papiers, Sie gestern gegeben wurden, irgendein leeres Blatt Papier, wenn man könnte. Und wenn Sie nicht haben, überhaupt, nur wenn Sie könnten fragen Sie Ihren Nachbarn. Also für den Moment für Dieses Beispiel, Victoria wird die Rolle zu spielen, ein Programmierer, ein Ingenieur, der muss man alle zu programmieren, wie die Computer, um etwas zu tun. Und wir werden sehen, was Annahmen Sie entscheiden, zu machen. Wir werden sehen, wie genau sie sein will. Und wenn dieser Demonstration geht didaktisch gut, viele Fehler wird gemacht, dass wir dann verwenden dass als eine Gelegenheit zur Diskussion. Aber die Herausforderung für Sie sollten sein, diese Fehler zu vermeiden, ein guter Programmierer. Und so ist die Herausforderung bei der Hand, wenn Sie würden gern hier zu Fuß über, ist vor Victoria auf dem Bildschirm hier-- und hoffentlich keiner von euch denken Sie daran, wenn ich blitzte auf dem Bildschirm. Und drehen gar nicht um, weil es ist ein weiterer Bildschirm in diesem Raum dass ich abschalten kann. Also nicht umdrehen. Vor Victoria ist, dass gleiche Schrei. Und nun ihren Job ist es, Ihnen alles zu sagen, auf dem Stück Papier, was zu zeichnen. Und wir werden sehen, basierend auf verbale Anweisungen allein, Computer-Code, wenn man so will, wie genau Ihre Zeichnungen sind-- Ihre Implementierungen sind. Sinn ergeben? PUBLIKUM: Ja. DAVID MALAN: OK, führen. PUBLIKUM: Zeichnen Sie ein Quadrat. [LACHEN] DAVID MALAN: Und nein Fragen können aufgefordert werden. Kann nur das tun, was dir gesagt wird. Oh, und wenn Sie heute Rutschen Öffnen Sie in einem Tab, schauen Sie nicht auf Ihre Registerkarte. OK? PUBLIKUM: OK, einen Kreis zu zeichnen. Ein slope-- kann ich Steigung sagen? DAVID MALAN: Bis zu Ihnen. PUBLIKUM: Hang. Und ein Dreieck. DAVID MALAN: Alles in Ordnung. Und bleiben Sie hier nur für einen Moment. Und ich werde kommen um in nur einem Augenblick. Und keine Notwendigkeit, Ihre Namen auf sie setzen. Lassen Sie mich herum kommen und sammeln Sie Ihre Zeichnungen, wenn Sie nichts dagegen, sie nicht ausreißen. Hier ist, was wir zurückkamen. Ich werde es auf die Leinwand projizieren. Ich sehe ein Quadrat, ein Kreis, eine Steigung und ein Dreieck. Das war also eine Antwort gibt. Und let's-- hoppla. Vielen Dank. Hier ist ein weiteres Sortiment, und eine dahinter. So scheinen sie alle den Geist zu erfassen. Vielen Dank. Es gibt einen anderen, und hier ist eine andere. Die Steigung Interpretation ist ein wenig anders, wenig kurvig. Und die nächste, entweder wegen der mit dem man wunderbar Spezifität haben beschrieben, oder vielleicht haben Sie Art bevor es sah, dies in der Tat was Victoria beschrieb tatsächlich. Aber jetzt, diejenigen von Ihnen, hat es nicht ganz richtig, Lassen Sie uns hier einige Einwände bieten. So Victoria die erste ein Quadrat zu zeichnen. Und jetzt können wir davon ausgehen, im Interesse der heute dass jeder weiß, wie ein Quadrat zu zeichnen. Aber das ist nicht ganz klar, nicht wahr? Wie sonst könnte man gezeichnet ein Quadrat, oder wo könnten einige der Zweideutigkeiten sein hier für den Computer? PUBLIKUM: Lage und Größe. DAVID MALAN: Standort, nicht wahr? Alle von Ihnen hatte ein Papier von einem gewissen Form, im allgemeinen Rechtecke, aber leicht verschiedene Größen. Aber man könnte sicherlich gezogen, wenn man wollte, einen großen Platz, vielleicht ein kleines Quadrat. Vielleicht war es gedreht. Ich glaube nicht, dass wir das sahen. Aber es hätte mehr Diamant gewesen wie aber immer noch, dennoch, Mathematisch wird ein Quadrat. Das war also wohl nicht eindeutig. Dann sagte sie, einen Kreis zu zeichnen. Einige von Ihnen haben ziehen es neben es, die nicht unzumutbar ist, weil die Menschen neigen dazu, zu denken oder zu lesen rechts in den meisten Sprachen nach links, also nicht eine schlechte Vermutung. Aber das Kreis könnte war im Quadrat, hätte um die gewesen Platz, könnte anderswo gewesen auf dem Blatt, so wohl eindeutig. Slope könnte vielleicht gewesen wobei die meisten Freiheiten verbal mit dem, was das bedeutet. Und einige von Ihnen interpretiert es als eine Wellenlinie oder eine gerade Linie, oder dergleichen. Und dann Dreieck, könnte auch haben wurden in einer beliebigen Anzahl von Möglichkeiten, orientiert. Also kurz gesagt, auch mit etwas, das Sie schauen und du bist wie, wow, so einfach, könnte ein Kind zeichnen diese, auch nicht wirklich, es sei denn, du bist super, super überzeugend und sagen dem Computer genau das, was zu tun ist. Also, wenn wir könnten, wenn Sie ein weiteres Blatt Papier, lassen Sie uns versuchen, diese noch einmal. Und ich werde Victoria ein zu geben andere Beispiel auf dem Bildschirm hier. Und wieder, nicht umdrehen und schaut nicht auf den Folien. Und ich werde sie geben einen Moment darüber nachdenken, wie diese zu beschreiben. Lassen Sie sie nicht sehen die Angst in deinen Augen. [LACHEN] Und wieder, diesmal Hebel einige dieser Imbissbuden und versuchen fast jeder bekommen zumindest die richtige Antwort. PUBLIKUM: OK, nehmen ein Stück Papier, schauen in der Mitte dieses Stück Papier. In der Mitte dieses Stück Papier, einen Würfel zu ziehen. [LACHEN] DAVID MALAN: Was haben wir gelernt? Wir waren so nah. OK, wiederholen, wenn Sie könnten, für jeden etwas dabei. PUBLIKUM: In der Mitte der Stück Papier, zeichnen Sie ein Objekt, die wie ein Würfel aussieht. DAVID MALAN: OK, das ist alles, was Sie bekommen, mit zu arbeiten. Erlauben Sie mir, analytisch zu sein und nicht so sehr entscheidend, sondern um den Anspruch machen dass Victoria definitiv scheint sehr zu denken in zu hohe Abstraktionen, die ist nicht unvernünftig. Denn sonst, würden wir alle sein ziemlich dysfunktional, wenn wir schon einmal so genau zu sein mit allem, was wir tun in der Welt. Aber zu sagen, gehen Sie auf die middle-- I dachten, dass wir auf einem so guten Track dort geht wie der sehr Mitte von der Seite und dann einen Würfel zeichnen. So hat sie in Abstraktionen zu denken, Weil sie immer noch sehen was auf dem Bildschirm, wie in der Tat ein Würfel. Aber es gibt so viele Möglichkeiten, denn dort Interpretation. Und in der Tat ist es so viele andere Möglichkeiten, wie Sie zum Ausdruck bringen konnte dass, was ich in einem Moment vorschlagen werde. Hier haben wir also eine Inkarnation der picture-- whoops-- ein Inkarnation des Bildes, so dass ein wenig Dreidimensionalität, um es, was nett ist. Hier ist ein weiteres, in dem Sie die haben gleiche, obwohl es Art eines offenen Kubus ist. Einige Leute haben es ein wenig mehr flach, zweidimensional. Und das ist in Ordnung. So gibt zwar in der Mitte des Papiers. Dieses, das ich denke, Sie werden wie, denn wenn wir gehen hier, das ist, was sie beschreibt. So, jetzt lassen Sie mich schlagen, wie sonst wir könnten diese Situation zu beschreiben. Zurück in den Tag, einer der am meisten mehr gemeinsame Wege zu lernen, Programmierung war, Code zu schreiben, schreibt Linien von Anweisungen, dass kontrolliert ein wenig Schildkröte auf dem Bildschirm. Logo und andere Varianten dieser war der Name der Sprache. Und die Schildkröte lebte in einer Welt. Also diese rechteckigen annehmen Raum ist seine Welt. Und Sie würden von assuming-- ich anfangen weiß wirklich nicht, wie Schildkröte zu zeichnen, so wollen wir es so machen. Und dann hat er eine Schale bekam und dann vielleicht ein paar Meter. So haben Sie vielleicht dieses kleine Zeichen auf dem Bildschirm. Und die Aufgabe dieser Programmiersprache war die Schildkröte zu zwingen gehen nach oben, unten, links, rechts und seine Feder niederzulegen oder Pick seine Feder nach oben, so konnte er tatsächlich auf dem Bildschirm zeichnen in dieser sehr flachen, rechteckigen Welt. Also, wo ich dachte, Sie könnten gehen werden, und wo Sie sollten Tauchen betrachten bis zu geistig bei der Beschreibung Anweisungen allgemeiner Ich würde behaupten, wird setzen Sie Ihre Stift nach unten in der middle-- und wir loswerden der Schildkröte, weil ich kann nicht wirklich halten ihn sehr gut zeichnen. Und nun, wie sonst könnte Ich sage einen Würfel ziehen? Nun, wir könnten so etwas wie Draw sagen eine diagonale Linie Nordosten, zum Beispiel, oder in einem Winkel von 45 Grad nach oben. Und das könnte mir haben hier bekommen. Und ich bin mir ziemlich weit von einem Würfel. Aber jetzt konnte ich etwas sagen wie um 90 Grad nach links und ziehen Sie eine Linie von gleich lang Nordwest. Und ich konnte weiter mit ähnlichen Richtungen. Und es wird nicht einfach sein. Und ehrlich gesagt, wir würden wahrscheinlich haben für fünf Minuten hier gewesen. Aber vielleicht hätten wir bekommen zu etwas, das am Ende des Tages, wobei ein Würfel landet, aber wir tauchte innerhalb dieser Abstraktion es bei einer solch niedrigen zu tun Niveau, dass man nicht wirklich sehen, was Sie, bis das ganze tun was ist eigentlich dort auf der Seite. Und so ist dies ein allgemeiner Grundsatz, wieder, von programming-- dieser Idee der Abstraktion. Es ist so wunderbar kraftvoll, weil wieder, sie sagte nur, einen Würfel zu zeichnen, das alle uns würde ziemlich schnell grok. Wir würden nur zu verstehen, OK, einen Würfel zu ziehen. Wir wissen vielleicht nicht die Orientierung, so konnten wir ein wenig genauer zu sein, aber wir können in der Regel vorstellen oder wissen, was ein Würfel ist. Und das ist nützlich, denn jedes Mal, wenn Sie setzte sich als Programmierer unten an Tastatur-Code zu schreiben, wenn Sie hatte bei so zu denken ein niedriges Niveau, keiner von uns würde jemals etwas getan. Und schon gar keiner von uns würde den Prozess des Schreibens Code genießen. Es wäre wie in 0 und 1 ist das Schreiben, das war ehrlich gesagt, nicht so lange her, Menschen wurden in 0 und 1 ist das Schreiben von Code. Und wir kamen sehr schnell mit diese höhere Ebene languages-- C ++ und Java und andere. Also lassen Sie uns versuchen, diese einmal mehr vor Augen zu Flip die Tische, so dass alle von uns die Chance haben, zu denken, in ziemlich der gleichen Weise. Könnten wir bekommen noch ein Freiwilliger dieses Zeit in den Vorstand zu kommen und zu zeichnen, rezitieren nicht? Ja ok. Ben, komm nach oben. Und Ben, in diesem Fall, wenn Sie Gesicht der Vorstand, nicht Blick nach links, nicht richtig angezeigt. Nur tun, was Ihr Kollegen sagen, Sie hier. Und für sonst jeder in der Zimmer, Sie sind jetzt der Programmierer. Er ist der Computer. Und das Bild, das ich habe hier gewählt im Voraus ist diese hier. Sie sind just-- sie denken von einem lustigen Witz ist alles. So würde nicht gerne jemanden freiwillig die erste Anweisung oder Aussage, dass sollte Befehl Bens Stift? Und wir werden dies gemeinsam tun, vielleicht eine Anweisung von jeder Person. Es tut mir Leid? PUBLIKUM: Zeichne einen Kreis. DAVID MALAN: Zeichnen Sie einen Kreis I ist das erste, was zu hören. PUBLIKUM: Bis oben. DAVID MALAN: Bis oben. OK, können wir Sie zu löschen, rückgängig gemacht werden. Und nun, jemand anderes. Dan, würden Sie bequem sein die nächste Anweisung anbietet? PUBLIKUM: Klar, das Zentrum ziehen des Bodens des Kreises, mit einem small-- ein wenig kleinen Raum aus, dass, zeichnen Sie eine gerade Linie nach unten zu drei Viertel des Weges auf der Platine einen leichten Winkel auf der linken Seite. DAVID MALAN: Gut. PUBLIKUM: Leichte Winkel. DAVID MALAN: Rückgängig, Strg-Z. OK. Andrew, möchten Sie bieten bis die nächste Anweisung? PUBLIKUM: Sicher. Von der Unterseite dieser Linie, eine weitere leichte angle-- whoops-- vielleicht etwa ein Drittel der Länge [unverständlich], leicht schräg nach unten und wie ein Drittel der Länge von [unverständlich]. Also ja, von diesem Punkt, Ziehen Sie eine Linie ein drittes der Länge des vorherigen Linie weiter nach links. DAVID MALAN: Das OK? Gerade, das ist in Ordnung? OK, Olivier, Sie wollen die nächste zu opfern? PUBLIKUM: [unverständlich] aus dem Boden des Kreises, [unverständlich]. Zeichnen Sie auf der rechten Seite von [unverständlich] Zentimeter. [LACHEN] DAVID MALAN: Ich glaube, du gehst zu das ist hier Zoll konvertieren. PUBLIKUM: Stop. [LACHEN] DAVID MALAN: OK. [? Ara,?] Sie wollen die nächste zu opfern? PUBLIKUM: Zeichnen Sie ein [unverständlich] die obere [unverständlich] gleich. [Unverständlich] Kreis, um die zeichnen [Unverständlich] und ziehen [unverständlich]. DAVID MALAN: OK, nicht mehr rückgängig gemacht werden. Lassen Sie uns ein oder zwei weitere Anweisungen. Chris, möchten Sie ein Angebot? PUBLIKUM: Am unteren Ende des Kreises, [unverständlich] zeichnen eine gleiche Linie slopping nach links unten [unverständlich]. DAVID MALAN: OK. Andrew? Wir did-- Karim? PUBLIKUM: Ausgehend von der rechten Linie, das Ende der linken Linie, wobei der Boden, Sie gehen über zu gehen Sie nach rechts die gleiche Länge wie die Linie Sie sind auf, Zeichnung das Recht [unverständlich]. [Unverständlich] Grad, so [unverständlich] Grad auf der rechten Seite. DAVID MALAN: Alles in Ordnung. Lassen Sie uns pausieren. Sie noch nicht umdrehen. Lassen Sie uns innehalten, und lassen Sie uns versuchen, einen anderen Versuch bevor wir zu Ben offenbaren was er auf sich gezogen. Können Sie Ben shuffle die right-- oder tatsächlich, nein, lassen Sie uns einfach Sie geben ein anderes Brett, sogar noch besser. So würde jemand wie jetzt mehr des Ansatzes zu nehmen dass Victoria auf früher stattfand, wo wir sprechen in einer höheren Ebene Abstraktion und in nur einem Satz oder zwei beschreiben zu Ben was ohne zu ziehen Einstieg in das Unkraut, sozusagen auf diese ein niedrigeres Niveau? Victoria. [LACHEN] PUBLIKUM: Zeichnen Sie ein Bild der Mann zu Fuß. Und seine Beine und Arme haben die rechte Seite zu sein. DAVID MALAN: OK, das ist alles, was Sie bekommen. Gut. Warum gehen wir nicht zu Ben zeigen, was er tat. So eine Runde Applaus. Das war das härteste vielleicht. Also auch wenn wir reden in ziemlich albern Begriffe etwa nur Zeichnung Bilder, hoffentlich schätzen kann wirklich den Grad der Ausdruckskraft, die erforderlich sein könnten, um einen Computer zu sagen, was zu tun ist. Und in der Tat ist die Tatsache, dass Ben dies war in der Lage zu ziehen, so schnell Art Testament ist ein zu verwenden Sprache, vielleicht ein höheres Niveau Version von Englisch, das es ihm ermöglicht nur mit Worten, oder Worte hören von Victoria, die ihm erlauben, diese abstractions-- nur ziehen eine Figur auf den Fuß right-- dass Art hat einige semantische Bedeutung dafür, dass nicht fast so offensichtlich, wenn Sie gerade setzen Sie den Stift zu sagen, nach unten, ziehen nach rechts, nach links ziehen. Und so auch dies ist sehr gemeinsam in der Programmierung. Dies würde sagen, wie ein zu sein sehr niedrigen Niveau Sprache, Programmierung in 0 und 1 ist, wenn man so will. Und das wäre ein höheres Niveau sein Sprachenprogrammierung in Java, oder etwas ähnliches. Ein bisschen ein Simplifizierung, aber das ist die Art, wie emotional das Gefühl, dass Sie sich fühlen, wenn mit einer Art von Sache oder ein anderes. Ein bisschen Frust hier durch die Notwendigkeit für eine solche Präzision, aber die Möglichkeit, etwas lockerer zu sein mit die Interpretation hier. Aber natürlich Bugs kann als Folge auftreten. Wenn Sie bei home-- möchten wir wird diese in class-- nicht tun aber wenn Sie möchten bringen diese ein Haus, Ich dachte, wir in diese tauchen würde. Also, wenn Sie möchten, dass diese zu spielen Spiel mit Ihrem Lebensgefährten oder Kinder oder dergleichen, Sie auch könnte, dass zu genießen. So gehen wir vor und Blick auf eine letzte was hier für Computational Denken. Und das bringt uns zu John Oliver, nicht für den Clip Sie hätte gestern Abend gesehen, aber zu einem etwas jüngsten Ausgabe. Ein paar Monate zurück, Volkswagen nahm einiges an Flakfeuer wenn Sie aus welchem ​​Grund, wissen? Was haben sie bekommen in Schwierigkeiten? Ja, so emissions-- sie versuchten, die Emissionen zu schlagen Tests, die von im wesentlichen mit ihren Autos belasten die Umwelt weniger wenn ihre Autos wurden getestet und belasten die Umwelt mehr wenn die Autos wurden nicht getestet werden. Und was immer interessanter in der Welt, als Sie inferred haben von Diskussionen über like-- was es-- Carplay, die Apple-Software für Autos und die Tatsache, dass viele von uns zunehmend haben Touch-Screens in unseren Autos, es gibt eine erschreckende Menge von Software in der Menschen Autos heute, die offen eröffnet eine ganze Dose Würmer, wenn es darum geht, die Sicherheit und körperliche Risiko. Aber für heute, lassen Sie uns konzentrieren sich auf das, was ist schriftlich Software beteiligt das könnte das System gamed haben. Für die Definition der Problem, für diejenigen, die nicht, Lassen Sie uns einen Blick auf John Oliver nehmen. Und für diejenigen, die mit das Problem, lassen Sie uns es betrachten in einem Fun-Objektiv über John Oliver als auch. Also lassen Sie mich spielen auf diesem Hit, I denken, Drei-Minuten-Einführung. Verdammt. [VIDEO-WIEDERGABE] -Cars-- DAVID MALAN: Offensichtlich auf YouTube, it's-- - --Die Klügste Zeichen in die Fast and Furious Filme. In dieser Woche deutsche Auto Volkswagen fand sich in der Mitte eines Skandal potenziell kriminelle Ausmaße an. -Volkswagen Wappnet für Milliarden Bußgelder, mögliche Strafanzeige Für Führungskräfte, wie das Unternehmen entschuldigt sich Rigging 11 Millionen Autos helfen sie Emissionstests schlagen. -Bestimmte Diesel-Modelle wurden entwickelt, mit ausgeklügelter Software, die gebrauchte Informationen, einschließlich der Position des Lenkrads und der Fahrzeug Geschwindigkeit, das Auto zu bestimmen war laufen Emissionstests. Unter diesem Umstand, der Motor würde reduzieren toxische Emissionen. Aber das Auto war in den Bypass in Ordnung gebracht dass, wenn es angesteuert wurde. Stiegen die Emissionen 10 bis 40 Zeiten über akzeptable EPA Ebenen. -Wow, 10 bis 40 mal größer ist als das EPA erlaubt. Das ist das Schlimmste, was Volkswagen hat jemals getan, etwas ist, könnte man sagen, wenn Sie hatte noch nie von dem Zweiten Weltkrieg gehört. Aber vielleicht das sicherste Zeichen dafür, wie viel Mühe Volkswagen in ist, ist, dass ganz am Menschen oben haben getreten. Der CEO trat am Mittwoch nach Scrambling-Steuerung zu tun, Schaden, sagte, er unendlich leid war, die klang großartig, bis sich herausstellte, er war nur 10% Entschuldigung aber hatte seinen Mund in Ordnung gebracht künstlich zu sein sorriness aufzublasen. Und in der Zwischenzeit von Volkswagen US Chef hatte eine Entschuldigung von seiner eigenen. -Lassen Sie die klar darüber, unser Unternehmen war unehrlich. Und in meinem deutschen Worten, wir haben total vermasselt. -Ja, Aber total verschraubt up sind nicht deutsche Werke. Und die deutsche Sprache hat viele schöne Sätze zu beschreiben Situationen wie diese, wie [Deutsch], was in etwa bedeutet, die Traurigkeit, die kommt im geschäftlichen liegt, oder [Deutsch], was übersetzt wie diejenigen, Vater shaming Beteiligung Wolken von Benzin. Es ist eine schöne Sprache. Es segelt nur die Zunge ab. Und übrigens, während die Menschen Entschuldigung haben aufrichtig klang, es ist bemerkenswert, er sprach bei eine offizielle Launch-Party für die 2016 Volkswagen Passat, was bedeutet, dass in Kürze nachdem sie gesagt, sorry, sagte er dies. -Danke Sehr viel für Ihr Kommen. Genieße den Abend. Als nächstes steht Lenny Kravitz. [MUSIK SPIELEN] OK-, OK, endet Ihre Entschuldigung mit bis nächste Lenny Kravitz nicht schreien nüchtern Zerknirschung. Es schreit, fragten wir Bon Jovi, und er sagte nein. Volkswagen Marke hat wurde schwer beschädigt. Und ehrlich gesagt, ihre neue Anzeige Kampagne ist nicht genau zu helfen. - [Deutsch], würden wir bei Volkswagen gefallen entschuldigen Sie zu täuschen mit unsere Fahrzeuge. [END WIEDERGABE] DAVID MALAN: So war dies ein Umwegen von-- sorry-- dies war ein Umweg von die Einführung eines Grundproblem in Software, die, dass Sie ist müssen bestimmte Bedingungen erkennen. Und so ist die Frage auf der Hand hier ist, wie möglicherweise ein Auto hat, wie in Software implementiert von diesen Programmierer, erkennen, dass es tatsächlich getestet wird? So zu sein Super Clear, was sie taten war, in Umgebungen, in denen die Programmierer gedacht das Auto wurde getestet, sie irgendwie gemacht das Auto emittieren weniger Schadstoffe, weniger Emissionen, so dass weniger giftige Dämpfe und derartige. Aber wenn es normal Fahren auf der Straße, es würde nur so viel emittieren Verschmutzung, wie sie wollten. Wie könnten wir schreiben die Pseudocode für diesen Algorithmus? Wie könnten wir schreiben die Pseudo-Code für die Software im Wagen läuft? Ich meine, in aller Kürze, es kocht nach unten zu so etwas wie dieses. wenn geprüft wird, emittieren weniger. sonst emittiert mehr. Aber das ist ein wenig zu hohe, nicht wahr? Lassen Sie uns versuchen zu tauchen, was diese Abstraktion der getesteten Mittel zu sein. Mit anderen Worten, auch wenn Sie wissen nichts über Autos, welche Art von Fragen könnten Sie fragen, um zu bestimmen, ob Sie werden getestet, wenn Sie das Auto? Welche Eigenschaften könnte sein, präsentieren, wenn ein Auto getestet wird? PUBLIKUM: Die Testausrüstung. DAVID MALAN: Die Testausrüstung. Also, wenn Prüfgeräte in der Nähe, dann emittieren weniger. So könnte ich mir vorstellen Umsetzung daß mit irgendeiner Art von Kameras oder zum Nachweis von was um Sie herum. Und lassen Sie mich schlagen, dass fühlt sich einfach zu kompliziert tatsächlich haben zusätzliche Hardware nur für diesen Zweck. PUBLIKUM: Wenn Sie in Park, ist, wenn die Haube geöffnet. DAVID MALAN: Im Park oder Motorhaube geöffnet, das ist so gut. PUBLIKUM: Und Auto läuft. DAVID MALAN: Also das ist ein wenig mehr concrete-- und Auto läuft. So wäre dies die Verbindung von a einige andere Bedingungen, wenn man so will. Also, wenn das Auto im Park ist, und sogar obwohl dies eine sehr mechanische Sache typischerweise, konnte ich vorstellen, das Schreiben von Software, vor allem, weil es oft ein Licht dort in diesen Tagen, Ich könnte mir vorstellen, dort zu sein Software, die den Schalthebel abfragen oder was nicht, sind Sie im Park, sind Sie Antrieb, sind Sie in umgekehrter Reihenfolge. Und ich kann ein zurück beantworten, das ist entweder ja oder nicht auf diese Art von Fragen. Und so konnte ich auch wahrscheinlich antworten eine Frage wie, ist die Motorhaube geöffnet. Vielleicht ist es eine Art von Sensor dass entweder gibt mir eine 1 oder 0 zurück, wahr oder falsch, ist die Motorhaube geöffnet. Und dann Auto läuft, konnte ich erkennen, dass irgendwie über welchen Mechanismus? Wie das Auto fährt, I erkennen konnte, dass es auf, konnte ich erkennen, irgendwie dass das Auto in Bewegung ist? PUBLIKUM: RPMs. DAVID MALAN: Ja, so ist es immer, dass Nadel, die sagt Ihnen, wie viele Umdrehungen pro Minute die Räder erleben. Und so konnte ich das betrachten. Und wenn es nicht 0, das wahrscheinlich bedeutet, dass das Auto in Bewegung ist. Aber wir haben eine zu sein wenig vorsichtig dort, because-- wir vereinfachen this-- wenn wir gerade gesagt, wenn Auto läuft, wir wollen nicht nur weniger zu emittieren, wir wollen, wenn das Auto läuft und es wird getestet. So gibt es noch ein paar andere Zutaten, die Leute haben die Hypothese aufgestellt ist, die Software zu tun, weil sie ohne die eigentlichen Quellcode, Sie können nur eine Art von der folgern physikalische Effekte des Wagens, was könnte unter sich gehen die Haube in Software. Also, wenn Auto läuft und vielleicht, sagen wir, die Hinterräder nicht bewegt, könnte dies sein indikativen von irgendeiner Art von Test? Was bin ich anspielend auf hier? Ja, vielleicht ist es auf der einen dieser Rolle Dinge, wo wie die Räder drehen in der Vorder- oder in der Rückseite, je nachdem, ob es Vorderrad oder Hinterradantrieb, so die Hälfte der Räder sich bewegen, aber die beiden anderen sind es nicht, die in der realen Welt ist eine seltsame Situation. Wenn Sie mit dem Auto auf der Straße, das sollte nicht passieren. Aber wenn Sie in einem Lager auf irgendeine Art von Rollensystem, das könnte tatsächlich passieren. Ich denke, dass die Leute auch vorgeschlagen, dass vielleicht, wenn das Fahrzeug läuft und Lenk Rad nicht bewegt, dass Auch könnte ein Signal sein, denn das ist zumutbar wie ein direkt auf einer Straße. Aber selbst dann ist der Mensch wahrscheinlich es ein wenig bewegen oder sicher über wenige Sekunden. Oder den Verlauf eines Minute, stehen die Chancen es nicht ist gehen zu fixieren in genau die gleiche Position. Also mit anderen Worten, wir nehmen Substraktion kann, , Sie sind getestet und brechen diese Funktionalität in diese Komponente Zutaten. Und das ist wirklich das, was Volkswagen Ingenieure haben irgendwie. Sie schrieben Software bewusst erkennen, wenn das Fahrzeug geprüft wird, Daher emittieren weniger, sonst emittieren in der üblichen Weise. Und das Problem auch hier ist, dass Software ist nicht etwas, was Sie wirklich sehen können, es sei denn, Sie haben die so genannte Quellcode. Also gibt es zwei verschiedene Arten von code-- mindestens zwei verschiedene Typen der Code in der Welt. Es gibt so genannte Quelle Code, der nicht unähnlich, was ist wir haben geschrieben, Quellcode. Dies wird Quellcode geschrieben in eine Sprache namens Pseudo-Code, Das ist nur etwas Englisch-like. Es gibt keine formale Definition davon. Aber C und Java, C ++, diejenigen sind alle formalen Sprachen, die, wenn man in sie zu schreiben, was Sie haben, ist eine Textdatei Quellcode enthält. Aber es gibt auch etwas in die Welt genannt Maschinencode. Und Maschinencode, leider, ist nur 0 und 1 ist. So ist Maschinencode, was Maschinen verstehen, natürlich. Der Quellcode ist das, was den Menschen zu verstehen. Und in der Regel, aber nicht immer ist es ein Programm, dass ein Programmierer nutzt das braucht Quelle Code und wandelt es in Maschinencode. Und das Programm ist im Allgemeinen ein Compiler genannt. So Ihre Eingabe Quellcode ist, Ihr Ausgang ist Maschinencode, und der Compiler ist ein Stück Software, die diesen Prozess tut. Also diese Karten wirklich schön zu unsere Eingaben, Algorithmen, Ausgänge. Aber dies ist eine sehr spezifische Verkörperung Darüber hinaus ist das zu sagen, auch wenn Sie besitzen ein von Volkswagen Autos, die von diesem schuldig ist, es ist nicht wie können Sie nur die öffnen Motorhaube oder die Bedienungsanleitung zu öffnen oder schauen auf den Quellcode, weil durch die Zeit es erreicht Ihr Auto in der Einfahrt, es ist bereits umgewandelt in 0 und 1 ist. Und es ist sehr schwer, nicht unmöglich, aber sehr schwer viel von etwas aufzulesen von gerade bei der Suche Basiswert 0 und 1 ist. So können Sie es herausfinden, letztlich, wenn Sie verstehen, wie eine Maschine operates-- Intel inside-- wenn Sie verstehen, die Intel-Architektur, aber es ist sehr zeitaufwendig. Und es auch, könnte man nicht in der Lage sein, alles zu sehen dass der Code tatsächlich tun können. Haben Sie Fragen zu diesem oder dieser allgemeiner Art von Prozess? Und tatsächlich können wir diese Diskussion binden auf die gestrige Diskussion von Apple. Auch dies ist, warum das FBI kann nicht einfach gehen und schauen in das Telefon des Verdächtigen und finden Sie die Codezeilen, für So, mit denen Sie das Kennwort: oder ermöglichen, dass die 80-Millisekunden Verzögerung. Denn durch die Zeit, es ist auf dem iPhone-Kerl, es ist bereits auf 0 und 1 ist umgewandelt. Nun, lassen Sie uns pausieren hier für unsere Blick auf rechnerische Denken. Warum gehen wir nicht nehmen eine Pause von 15 Minuten. Und wenn wir zurückkommen, werden wir werfen Sie einen Blick auf die Programmierung selbst und beginnen einige zur Karte dieser hohen Ebene Konzepte eine tatsächliche, wenn spielerisch, Programmiersprache.