[Musik spielt] [MUSIC - Rossini, "Ranz des VACHES "FROM Wilhelm Tell] [MUSIC - THE GERMAN BEAT, "MÄRZ DER Schwenkköpfen "] [Applaus und Jubel] DAVID MALAN: Also das ist CS50. Mein Name ist David Malan. Und 73% von euch haben keine vorherige Erfahrung mit Informatik, entgegen dem, was Sie vielleicht denken. Also heute dachten wir, wir würden Chip entfernt zu diesem Mangel an Vertrautheit, aber auch geben Ihnen ein Gefühl von, für diejenigen von Ihnen mit mehr Komfort, die Richtungen Sie gehen in diesem Semester. Also lasst uns mit diesem zu starten. Ich habe wirklich keine Ahnung, was drin ist der ein Computer, obwohl, wie Sie, ich benutzen es jeden Tag. Aber es ist eine Art von Feld, und es gibt nicht viele Eingänge hinein. Minimal, es gibt, was? Wahrscheinlich ein Netzkabel. Und in der Tat mit diesem Wirkstoff, Strom, scheinen uns in der Lage ist tut ziemlich viel in diesen Tagen. Aber am Ende des Tages, wir haben, um die Dinge darstellen dass wir kümmern uns. Wir haben, um Informationen darzustellen in irgendeiner Form. Und du bist wahrscheinlich mindestens vage vertraut mit der Idee von Binär-oder Bits irgendwie, Computer reduziert auf Nullen und Einsen. Aber können wir umarmen und dass mindestens setzen ein wenig Licht auf das? So habe ich diese kleinen Schreibtischlampen hier. Ich habe eine Steckdose hier. Und ich werde diese innerhalb vorschlagen der Computer mindestens eine von diese Dinge, etwas fähig wobei der ein-oder ausgeschaltet. In diesem Fall ist es in der Tat eine Schreibtischlampe, aber auf der unteren Ebene, es ist etwas als ein Transistor ist. Aber in unserer Welt, es ist eine Schreibtischlampe ist, so Ich werde weitermachen und stecken Sie diese in mein Strom hier. Und ich behaupte, dass die Verwendung dieses einfache, einfaches Gerät, diese einfache Schalter, ich eine Information darstellen. Zum Beispiel gerade jetzt, bin ich repräsentieren nichts, nicht wahr? Ich vertrete, was ich rufe 0 oder falsch, das Gegenteil von etwas tatsächlich vorhanden ist. Aber wenn ich einfach diesen Schalter, jetzt habe ich eine 1 vertreten. Also mit diesen sehr einfaches Stück Speicher, wenn man so will, kann ich vertreten Informationen. Jetzt leider meinem Computer kann das nicht allzu viel. Es kann nur zwei Werte darstellen in der ganzen Welt - 0 oder 1 ist. Aber was ist eine naheliegende Lösung, jetzt, wenn wir wollen, auf unsere Computer erweitern Speicher und stellen mehr als nur 0 und 1? Nun, lasst uns greifen weitere derartige Bit. Lassen Sie greifen einen weiteren Schalter, ein weiterer Transistor, aber Sie möchten darüber nachdenken. Lassen Sie mich gehen, und stecken Sie diese in meinen Computer als gut. Und ich werde behaupten jetzt, dass durch mit ein wenig Strom und Drehen mehrere dieser Schalter auf und ausgeschaltet ist, kann ich vertrete mehr solcher Informationen. So jetzt ist diese 1. Wenn ich möchte jetzt stellen 2, konnte ich dies tun. Aber in der Regel, Konvention, wie wir werden schließlich sehen, haben mich dazu. Das ist also 0, das ist 1. Dies wäre 2. Und nicht überraschend, würde dies 3 sein. Also auf diese Weise noch kann zählen wir noch weiter? Wenn ich eine dritte Bit, einen dritten Schalter, was ist die höchste Zahl kann ich jetzt zählen bis 0? So 7 wenn ich bei 0 beginnen, nicht wahr? Denn wenn ich mich wenden dieses Licht auf und tatsächlich stecken diese dritte und letzte Licht in mein Steckdose hier dann habe ich die Fähigkeit zu repräsentieren Jeder der beiden Werte hier zwei Werte hier zwei Werte hier - und so kann ich die Bedeutung von 2 mal 2 mal 2 oder acht möglichen Werte. Und wenn ich Buchhaltung beginnen bei 0, so das ist 0, 1, 2, 3, 4, 5, 6, 7. Also das binär. Es ist wirklich so einfach. Und ich würde behaupten, dass dies tatsächlich sehr vertraut, die meisten jeder in diesem Raum. Lassen Sie mich gehen, und öffnen Sie ein wenig Texteditor hier. Und Sie könnten von der Grundschule erinnern das wir hatten, Dinge wie die Hunderte Ort, die Zehnerstelle, und die, die Stelle. Und daran erinnern, dass, wenn Sie hatte eine Nachkommastelle Anzahl, wie etwas zufällig wie 123, würden Sie im Wesentlichen schreiben, dass in der Form dieser drei Spalten. Und warum ist 1, 2, 3, was wir wissen, wie 123? Nun, in der linken Spalte haben wir einem 100 plus zwei 10s, das ist also 120, plus drei 1s, so das ist 123. Nun ist diese Welt, die wir nur beleuchtet ist genau das gleiche wie Sie waren vertraut mit seit Jahren, außer jetzt, unsere Spalten sind nicht als Vielfaches von 10. Sie sind nur Potenzen von 2. Während also das ist der Ort, diejenigen, diese wird der zweit Platz sein, ist dies Going to the Vieren Ort sein. Und weil ich mich nur mit den einfachsten von Mechanismen, die Dinge drehen Ein-und Ausschalten - Strom fließt oder Strom fließt nicht - Ich verstehe nicht ganz die gleiche expressive Bereich als 0 bis neun. Wir gehen, damit es super einfach in dieser Welt der Computer. Ich habe nur 0 oder 1 - ein-oder ausschalten, falsch oder wahr. Und so, was ich bin in diesem Augenblick, die 1, 1, 1, da jedes dieser Licht beleuchtet wird. Nun, das gibt mir einen 4 plus eine 2, so das ist 6 plus eine 1, und das ist 7. Und ergo macht diese Folge von drei Bits repräsentieren die Nummer 7. Also die ganze Zeit, in der Sie Ihre Computer sind eine beliebige Anzahl von Transistoren, eine beliebige Anzahl von Bits. Aber am Ende des Tages, wir eine Information darstellen so einfach wie die. Nun leider haben wir nur gezählt bis zu 7 in CS50 bisher aber hoffentlich können wir noch ein bisschen besser als die. Und in der Tat können wir. Angenommen, dass wir als Menschen nur willkürlich entschieden, dass wir gehen Zahlen wie 1 und 2, 3 zugeordnet, 4, 5, 6, 7, die mit bestimmten Buchstaben von das Alphabet. Und aus historischen Gründen, werde ich starten etwas willkürlich, aber ich bin gehen zu sagen, die Menschen, sind wir los entscheiden als Standard weltweit, die 65 steht für die Anzahl der Buchstaben A. 66 vertritt B. Dot, Punkt, Punkt. 90 vertritt den Buchstaben Z. Und nehmen wir an, wenn wir wirklich etwas bringen Gedanken hinein, könnten wir kommen mit Zahlen für Ausrufezeichen und Kleinbuchstaben, und in der Tat, andere Leute haben, dass für uns getan. So, jetzt hatten wir Bits, mit denen wir stellen Zahlen, Zahlen, mit denen wir stehen für die Buchstaben, und mit Briefe können wir nun beginnen Komponieren E-Mails und Drucken von Zeichen auf dem Bildschirm. Also lassen Sie mich einladen, wenn ich könnte, acht tapferen Freiwilligen - wer nichts dagegen erscheinen nicht nur vor der Kamera, sondern über das Internet - hier herauf zu kommen und stellen acht solcher Bits, statt dieser drei. So wie etwa ein, zwei? Wie wäre es mit drei? Wie etwa vier in Licht blau, fünf am Ende? Über jemanden hier? Sechs vor, sieben vor, und acht vor, wie gut. Also habe ich einfach so passiert zu kommen vorbereiteten mit einem ganzen Bündel von Zetteln. Und auf diese Zettel Zahlen das repräsentieren, was Spalten , euch gehen zu vertreten. So werden Sie - was ist Ihr Name? STUDENT: Anna Lea. DAVID MALAN: Anna Lea, Sie wird die 128s Spalte sein. Sie sind? STUDENT: Chris. DAVID MALAN: Chris Wille als 64s Spalte. Sie sind? STUDENT: Dan. DAVID MALAN: Dan wird als 32s Spalte. STUDENT: Pramit. DAVID MALAN: Pramit wird als 16s Spalte. STUDENT: Lillian. DAVID MALAN: Lillian wird die 8s sein. STUDENT: Jill. DAVID MALAN: Jill wird als 4s Spalte. STUDENT: Mary. DAVID MALAN: Mary wird die 2s, und? STUDENT: David. DAVID MALAN: David Willen als 1s Spalte. Also, wenn euch könnte Schritt ein wenig nach vorne, so dass jeder sehen kann. Was euch nicht sehen, ist, dass auf die Rückseite dieser Zettel ist ein kleinen Spickzettel, die etwa zu ist anweisen, diese acht Bits, um entweder ihre Hand heben oder nicht ihre Hand heben. Wenn ihre Hand nach oben geht, sind sie 1, die eine. Wenn ihre Hand unten bleibt, sind sie repräsentiert eine 0 ein. Inzwischen haben wir das Publikum sollte der Lage, herauszufinden, auf dieser Basis Mapping, was drei-Buchstaben-Wort diese Leute sind etwa zu buchstabieren. So in nur einem Augenblick, wirst du Lesen Sie die erste Zeile von der Rückseite Ihr Spickzettel, und du bist entweder gehen zu heben oder nicht die Hand heben. Wenn Sie eine 1 sind, erhöhen Sie, wenn du bist a 0, stehen Sie dort ungeschickt, einfach so. Gehen. Welche Zahl, in erster Linie, sind diese Jungs vertreten? 66. 66, nicht wahr? Wir haben eine 1 in der Spalte 64s, eine 1 in der Spalte 2s. Das gibt mir 66, so dass erscheint zu repräsentieren B. So Sie Jungs haben geschrieben - OK, das ist genug. B. So, jetzt lasst uns auf unserem zweiten Brief. Gehen. Wer ist am schnellsten in Mathe hier? So 79. Auch wenn wir hinzufügen, bis alle Spalten in denen es eine 1, die derzeit nur wie wir es taten, bevor mit dem einfachsten Beispiele 7, jetzt sind wir Diese Nummer erhalten 79. Die nach unseren Mapping ist die Buchstaben O. So wir sind fast da. B, O. Und schließlich gehen. Was sind sie, die jetzt? Weniger Konsens. Das ist einfach ein absoluter Murmeln. Ja, es ist in der Tat 87. Gut. Also, wenn wir jetzt, dass die Karte wieder auf - lasst lostelefonieren unsere ASCII-Chart, American Standard Code Information Interchange. Das gibt uns den Brief - nicht "bo", sondern "Bogen." Und das ist eine perfekte Cue für euch zu verbeugen Kopf und auf dem Rücken. Vielen Dank. [Applaus] DAVID MALAN: Sie können sie zu halten. Obwohl eigentlich würde jemand wie eine Schreibtischlampe, auch? [HOOT aus dem Publikum] DAVID MALAN: Schreibtischlampe? [Gelächter] DAVID MALAN: Wirklich? Schreibtischlampen für alle? In Ordnung. Also beginnend mit der einfachsten von Prinzipien, haben wir jetzt nicht nur gezählt von 0 aufwärts bis hin zu 7, haben wir dass nur durch das Werfen mehr angenommen Bits oder mehr Leuchten oder mehr Transistoren an diesem Problem, wir können stellen immer größere Zahlen und ergo, größer und größer reicht von Alphabete, wie Englisch. Und lassen Sie uns über den Glauben zu nehmen für heute das ähnlich könnten wir beginnen, repräsentieren Grafiken und Videos und jede Reihe von anderen Medien, mit denen wir heute kennen. Das ist also CS50 und in dieser Klasse neben der Sie sind, wieder, sehr viele Klassenkameraden, die so wenig haben erleben, wie Sie. Und ich erwähne dies nur, weil ganz oft, unter anderem als kürzlich als einer der der Neuling Beratung und Veranstaltungen im vergangenen Frühjahr Zweitwerk Beratung Ereignis, hören wir oft Studenten lehnen wenn die bis zur CS Tisch, na ja, Ich habe über die Einnahme nachgedacht intro Klasse, aber ich bin nicht wirklich ein Computer Person. Oder aber jeder sicherlich weiß mehr als ich. Und ich habe dies in der größten Schrift möglich, diese Botschaft, dass das ist in der Tat nicht der Fall. Und wenn Sie sich fragen, sollte I, in der Tat, hier zu sein? Erkenne, dass nicht nur ist dieser Kurs der Titel Einführung in die Informatik Wissenschaft ist es Einführung in die Informatik Wissenschaft I. Es gibt also in der Tat eine zweite solche Ansiedlung. Also bist du nicht in der Tat, an der falschen Stelle. Und unter den Zielen habe ich für heute zu lindern eine solche Bedenken, die Sie haben könnte, sondern auch zu malen, ein Bild von dem, was im Speicher für Studenten weniger und komfortabler gleichermaßen in diesem Kurs. Doch zunächst ein Wort auf einer der Handouts Sie haben heute, unter denen gibt eine Reihe von FAQs. Es war eine Vision von uns seit einiger Zeit Jetzt wird eine neue Einstufung Option in diesem Kurs - nämlich, SAT / UNSAT. Philosophisch für mich ist es viel, viel, viel wichtiger, dass die Schüler in dieser Klasse zu engagieren mit der Material, durch die in Frage gestellt werden Material und weit Sorge, viel weniger über die Mechanik der tatsächlichen Ergebnisse Brief und Noten in der Semester Ende, sondern wirklich zu umarmen die Kurs und seinem Material. Und das fühlt sich wirklich, ganz allgemein, für das, was ist interessant, zu ihnen zu herausgefordert fühlen und belohnt, sondern ohne Angst vor dem Scheitern. Und in der Tat, auch dies ist ein wiederkehrendes Thema in diesem und anderen einführenden Kurse in anderen Bereichen, die Sie haben diese Angst, wenn es darum geht, Putting einem die Zehen in unbekannten Gewässern. Ich selbst, im Jahr 1995, war ein Neuling. Ich war sehr auf fokussiert werden a Gov Konzentrator hier. Und doch würde ich immer mit ein bisschen gewachsen von einem Interesse an Informatik. Ich war immer neugierig. Aber damals, auch, hatte ich diese Angst vor sogar einen Fuß in CS50, so viel so dass ich nicht einmal einkaufen es ersten Jahr. Und der einzige Grund, warum ich einen Fuß in die Tür zweiten Jahr war, weil ich durfte es nehmen Pass / Fail. Aber auch Pass / erforderlich, dass ich scheitern den Mut, um einen Termin mit Professor Kernehan an der Zeit, bringen diesen großen Blatt Papier, und fragen ihm für seine Unterschrift und seinen Erlaubnis zu erkunden diese unbekannten Gewässern. Und es hat sich in den letzten Jahren dazu beigetragen, dass, wenn Sie diese in CS50, wenn wir verwendet, um sein Pass / Fail, ähnlich würde Dutzende oder Hunderte von Ihren Klassenkameraden haben zu kommen, Gott bewahre, auf die vor Sanders mit dieser Form, dass in einigen Köpfen stellt eine Unfähigkeit, Ich wage zu behaupten, zu erfüllen sind Ihre Kollegen 'Ebene. Welches ist lächerlich, aber ich denke, gibt es diese Mentalität. Und es ist noch nie in dieser Kultur gewesen von SAT / UNSAT oder Pass / Fail mehr im Allgemeinen, in diesem Kurs oder wirklich auf diesem Campus. Also in diesem Jahr haben wir das geändert. Ich würde ekstatischen Hälfte sein diese Klasse oder mehr beendet bis unter CS50 SAT / UNSAT. In einer Zeit des Jahres, es wäre wunderbar, wenn fast jeder. Danach vielleicht werden wir arbeiten auf Brief Qualitäten an der Harvard Ausbildung im Allgemeinen. Aber jetzt werden wir dies tun im Rahmen unserer eigenen Sphäre, und ich würde herzlich Sie ermutigen, diese überprüfen und FAQs Fragen stellen, wie Sie für richtig halten, so dass hoffentlich haben Sie, im Gegensatz zu mir, nicht ganz haben die gleiche Angst-Faktor, wenn erforschen, was wahrscheinlich einem unbekannten Ort. Also, was ist CS50? Es ist eine Einführung in die geistigen Unternehmen der Computer- Wissenschaft und die Kunst des Programmierens. Aber was bedeutet das eigentlich? Nun, so weit, sprachen wir sehr kurz über die Darstellung von Informationen. Aber nehmen wir an, dass wir eigentlich wollen etwas zu tun. Wir müssen den Begriff der Einführung was wir nennen einen Algorithmus. Ein Algorithmus ist ein Verfahren, ein Verfahren, einen Satz von Anweisungen für etwas zu tun. Und ein Algorithmus kann etwas super einfach. Zum Beispiel ist ein Beispiel, mit dem einige von euch vielleicht bekannt sein ist dies Sache hier. So ist dieses Buch hier ist zunehmend veraltet, aber es war einmal, es enthielt eine ganze Reihe von Namen und Telefonnummern. Und in der Tat, wenn ich wollte zu finden jemand in diesem Telefonbuch - sagen, jemand namens Mike Smith - Ich konnte Mike Smith in beliebiger Anzahl zu finden von recht unkompliziert Wege. Ich konnte am Anfang beginnen und bewegen zu Seite 1, nicht da. Seite 2, nicht da. Page 3. Ist das Algorithmus wird, dass Verfahren, richtig? So ist es richtig, nicht wahr? Ich bin ein bisschen ein Idiot, es zu tun in diese Weise, aber irgendwann werde ich finden den Nachnamen S, und hoffentlich Mike ist in diesem Abschnitt, und ich werden getan mit meinem Algorithmus. Aber sicherlich ist es nicht intuitiv. Fast jeder vernünftige Mensch in dieser Zimmer würde das nicht tun sollen. Was hätten Sie getan? Sie würden gerade gegangen in der Mitte, nicht wahr? Etwa in der Mitte. Und du, oh realisieren, dies sind die Frau So Mike Smith, Nachname wobei Smith, ist nicht klar, dann in der linke Hälfte des Buches. Er muss in Richtung der sein S ist in der rechten Seite. Und an diesem Punkt, obwohl die meisten von uns tun dies nicht in der Realität, können wir buchstäblich zerreißen dieses Problem in zwei Hälften. [Jubel und Applaus] DAVID MALAN: Danke. [Jubel und Applaus] DAVID MALAN: Sie können buchstäblich zerreißen diese Problem in der Hälfte, ließ mich mit, buchstäblich ein Problem halb so groß. Also, wenn dieses Telefon Buch war - und es wahrscheinlich war - ca. 1000 Seiten, jetzt es ist nur 500. Wenn ich dies wieder tun und ich merke, oh, Verdammt, ich ging zu weit, ich bin in der Ts Abschnitt, kann ich ähnlich - bildlich oder wörtlich - rip das Telefonbuch - es war tatsächlich viel einfacher, dass die Zeit. Ich kann buchstäblich zerreißen das Telefonbuch in der Hälfte, ließ mich jetzt mit nicht 1000, nicht 500 - 250 Seiten. Und ich kann 125 zu gehen, und die Hälfte davon, und die Hälfte davon, und die Hälfte davon, bis schließlich werde ich mit gelassen werden nur einer einzigen Seite. [Gelächter] DAVID MALAN: Das ist das Teil I nicht auf. Eine einzige Seite, auf der Mike hoffentlich ist. Jetzt sind diese verschiedenen Algorithmen kann Art beurteilen oder zu bewerten in unterschiedlich. Der erste war sehr linear, nicht wahr? Drehen Sie Seite für Mike zu suchen. Drehen Sie Seite für Mike zu suchen. Es ist sehr linear. Wenn es eine weitere Seite im Telefon Buch, ist es wahrscheinlich, um mich eine weitere Sekunde, eine Einheit von Zeit, aber wir Rechenzeit. Also ich könnte so zeichnen diese Linie Hier, wobei die Größe der Problem nimmt von links nach rechts - Telefonbuch wird kleiner, größere - und die Zeit wird, zu erhöhen die vertikale Achse ist, desto größer das Telefonbuch. So n ist nur eine allgemeine Variable, die Informatiker nutzen zu vertreten einen gewissen Wert, einige Nummer. So n wird linear ansteigen. Doppelklicken Sie die Größe des Telefonbuchs, ist es werde mir doppelt so viel nehmen Zeit, wahrscheinlich, um Mike. Jetzt konnte ich klug gewesen haben darüber, nicht wahr? Ich war immer schnell langweilig. Könnte dies getan zu zweit haben. So zwei Seiten, dann vier, dann sechs, dann acht. Und ich konnte beginnen fliegen durch sie eine wenig schneller, wenn auch geringes Risiko von Mike Überschwingen, aber dass die Kurve nicht werde alles sein, was anders. Es ist immer noch eine gerade sein Linie, aber etwas schneller. Aber was habe ich getan? Ich hatte tatsächlich etwas grundsätzlich besser. Ich das erreicht, was wir nennen logarithmischen Zeit, log n, wobei diese grün Linie hat eine viel, viel, viel weniger geraden Kante zu. Und nicht, schlägt er, wie es von sortieren gegen unendlich jemals so allmählich, dass ich tatsächlich einen 1.000-Seite Telefonbuch, das Doppelte seiner Größe im nächsten Jahr - da nehme eine Menge mehr Menschen in die Stadt zu bewegen. So jetzt habe ich 2.000 Seiten, aber wie viele weitere Schritte ist, dass intelligentere Algorithmus dauern? Nur eine. Ich meine, das ist eine mächtige Sache. Wenn wir zu 4.000 Seiten im nächsten Jahr, das wird mir zu nehmen nur noch zwei Schritte. So können Sie werfen größer und größer Probleme mich an, nicht anders als die Bahn wirft immer größere Probleme jeden Tag um Googles und Facebooks von die Welt, und es ist nicht so eine große Sache. Da habe ich mehr Gedanken und Pflege in mein Algorithmus, mit dem zu lösen Probleme effizient. Und in der Tat, das wird einer der folgenden sein die Ziele dieses Kurses. Sie werden, auf dem Weg, lernen, wie man programmiert. Du wirst lernen, wie man programmiert in beliebige Anzahl von Sprachen. Aber am Ende des Tages, ist der Kurs Probleme zu lösen und immer besser auf die Lösung von Problemen - und, wie in Fällen wie diesem, die Lösung von Problemen effizienter zu gestalten. Jetzt so weit, haben wir dies getan ziemlich intuitiv. Lassen Sie uns vorstellen etwas ziemlich Generika genannt Pseudocode. Also werden wir irgendwann, in diesem Kurs zu verschiedenen Programmiersprachen. Aber heute werden wir es in Englisch-wie zu tun Syntax, wo man nur irgendwie sagen was du meinst, aber du bist immer so prägnante und Sie müssen sich keine Sorgen Grammatik und ganze Sätze. Sie müssen nur sich selbst auszudrücken, wie prägnant wie möglich. So Pseudocode ist Englisch-like Syntax, die für Programmiersprache. Und zu diesem Ende hin, lassen Sie mich schlagen vor, dass wir nun den Prozess modellieren wir nur beschrieben Zählen etwas ein wenig unterschiedlich, wobei diesmal Blick auf diese fünf-Minuten-Video produziert von unseren Freunden bei TED, dass definiert, was Pseudocode ist, definiert, was algorithmische Denken ist, und sogar obwohl das Beispiel Sie sind dabei zu sehen ist, in der sich, super einfach, es ist damit anfangen, uns die geistigen Modell, das Vokabular, mit denen tun viel, viel komplexer Algorithmen recht schnell. [BEGIN VIDEO PLAYBACK] [Musik spielt] SPRECHER: Was ist ein Algorithmus? In der Informatik ist ein Algorithmus ein Satz von Anweisungen für die Lösung einige Problem Schritt für Schritt. Üblicherweise werden Algorithmen ausgeführt von Computern, aber wir Menschen haben Algorithmen, wie gut. Zum Beispiel, wie würden Sie gehen über das Zählen der Anzahl von Personen in einem Raum? Nun, wenn Sie wie ich sind, würden Sie wahrscheinlich Punkt, an jede Person, eine an eine Zeit, und zählen bis 0. 1, 2, 3, 4 und so weiter. Nun, das ist ein Algorithmus. In der Tat wollen wir versuchen, es ein Ausdruck bisschen mehr formal in Pseudocode - Englisch-ähnliche Syntax ähnelt Programmiersprache. Sei N gleich 0 ist. Für jede Person im Raum, stellen N gleich N plus 1. Wie man mit dieser Pseudocode interpretieren? Nun, eine Linie erklärt, so zu sprechen, eine Variable namens N und initialisiert seinen Wert auf 0 gesetzt. Dies bedeutet nur, daß zu Beginn der unser Algorithmus, die Sache mit dem Zählen wir einen Wert von 0 ist. Denn bevor wir anfangen zu zählen, wir haben nichts gezählt noch. Das Aufrufen dieser variablen N ist nur eine Konvention. Ich konnte es nannte haben die meisten nichts. Jetzt Linie zwei renzeichen der Beginn einer Schleife, eine Abfolge von Schritten, wird wiederholen eine bestimmte Anzahl von Zeiten. Also in unserem Beispiel der Schritt wir nehmen zählt Personen im Raum. Beneath Linie ist die Linie zwei drei, das beschreibt genau, wie wir über das Zählen zu gehen. Die Vertiefung impliziert, dass es Linie drei, die wiederholt. Also, was die Pseudocode sagt, ist das nach dem Start bei 0, für jede Person im Raum, wir N um 1 erhöhen. Jetzt ist dieser Algorithmus korrekt? Nun, lasst uns darauf schlagen ein bisschen. Funktioniert es, wenn es zwei Personen im Raum? Mal sehen. In einer Linie, initialisieren wir N bis 0. Für jede dieser beiden Menschen, wir dann erhöhen N um 1 erhöht. Also auf der ersten Reise durch die Schleife, wir aktualisieren N 0-1. Auf der zweiten Reise durch denselben Schleife, wir aktualisieren N 1-2. Und so durch diesen Algorithmus Ende ist n 2, die zwar mit der Anzahl der Menschen in den Raum. So weit, so gut. Wie wäre es mit einer Ecke Fall, obwohl? Angenommen, es gibt 0 Personen in den Raum - außer mir, Wer macht das Zählen. In einer Linie, initialisieren wir N bis 0. Dieses Mal jedoch, tut Linie drei nicht Ausführen überhaupt, da es keine Person im Raum. Und so bleibt N 0, was bringt die Anzahl der Personen im Raum. Ganz einfach, nicht wahr? Aber zählen Menschen, die man in einer Zeit, ist ziemlich ineffizient, auch, nicht wahr? Sicherlich können wir es besser machen. Warum nicht zählen zwei Menschen in einer Zeit? Anstatt dem von 1, 2, 3, 4, 5, 6, 7, 8, und so weiter, warum nicht zählen, 2, 4, 6, 8 und so weiter? Es klingt sogar schneller, und es ist sicher. Lasst uns auszudrücken diese Optimierung in Pseudocode. Sei N gleich 0 ist. Für jedes Paar von Personen im Raum, gesetzt N gleich N plus 2. Ganz einfach ändern, nicht wahr? Anstatt Anzahl Menschen, die man zu einer Zeit, wir stattdessen zählen sie zwei auf einmal. Dieser Algorithmus ist damit doppelt so schnell wie der andere. Aber ist es richtig? Mal sehen. Funktioniert es, wenn es zwei Personen im Raum? In einer Linie, initialisieren wir N bis 0. Aus diesem ein Paar von Menschen, wir dann erhöhen N durch zwei. Und so durch diesen Algorithmus Ende ist N 2, die zwar mit der Anzahl der Menschen in den Raum. Nehmen wir weiter, dass es 0 Personen im Raum. In einer Linie, initialisieren wir N bis 0. Nach wie vor ist Zeile drei nicht ausführen überhaupt, da es keine Paare der Menschen in den Raum. Und so bleibt N 0, die in der Tat entspricht der Anzahl der Menschen in den Raum. Aber was, wenn es drei Personen im Raum? Wie funktioniert dieser Algorithmus Tarif? Mal sehen. In einer Linie, initialisieren wir N bis 0. Für ein Paar jener Menschen, wir dann um 2 erhöhen N. Aber was dann? Es gibt keine andere voll Paar Leute in den Raum, so dass keine Zeile zwei mehr gilt. Und so durch diesen Algorithmus Ende, N ist immer noch 2, was nicht korrekt ist. Tatsächlich ist dieser Algorithmus gesagt, dass Buggy, weil es einen Fehler. Lets Wiedergutmachung mit einigen neuen Pseudocode. Sei n gleich 0 für jedes Paar von Menschen im Raum. Set N gleich N plus 2. Wenn eine Person bleibt ungepaarten, gesetzt N gleich N plus 1. Um dieses Problem zu lösen, haben wir eingeführt, in der vierten Zeile ein Bedingung, sonst als ein Zweig bekannt das führt nur wenn es eine Person, dass wir nicht Paar mit einem anderen. Und nun, ob es eine oder drei oder eine ungerade Zahl von Menschen in der Raum, dieser Algorithmus Es wird nun gezählt. Können wir noch besser machen? Nun, wir könnten in 3s oder 4s oder sogar zählen 5s und 10s, aber darüber hinaus ist es gehen, um ein wenig zu bekommen schwer zu Punkt. Am Ende des Tages, ob ausgeführt von Computern oder Menschen, Algorithmen sind nur ein Satz von Anweisungen mit die Probleme zu lösen. Dies waren nur drei. Welches Problem würden Sie lösen mit einem Algorithmus? [END VIDEO PLAYBACK] DAVID MALAN: Das ist die einzige Zeit ist Ich werde im Cartoon-Form erscheinen. Aber wo die Geschichte aufhört, Jetzt wird, wie können wir besser machen? Dreien und Vieren, wir behaupten, wir zählen können Menschen viel schneller, aber wir können tun grundsätzlich besser als das? Und ich wette, wir können. Führt man ein bisschen von unserer eigenen Pseudocode hier, ich werde vorschlagen dass wir erreichen können, eine Zeile wie diese. Wir gehen nicht auf Menschen zählen eins, zwei, drei, vier. Wir gehen nicht auf zwei zu gehen, vier, sechs, acht. Wir werden tun, grundsätzlich besser Umdenken durch das Problem, und in diesem Fall nutzt eine ansonsten ausgelastete Ressource. In nur einem Augenblick, ich hoffe, du wirst verzeihen und Humor uns durch Aufstehen in Ort, an welchem ​​Punkt wir fahren bitten jeden von euch zu nehmen in Ihrem Köpfen die Nummer 1. Du bist dann werde zunehmend ungeschickt, wie die Zeit vergeht, finden jemanden steht, kombinieren Ihre Zahlen zusammen indem sie auf. Einer von euch ist dann auf Rennen zu setzen zuerst hinunter und die andere Person wird zu wiederholen. Mit anderen Worten, durch Impfen allen Sie mit der Nummer 1, und dann Die Kombination dieser 1s 2s und in dieser 2s in 4s, mit jeder zunehmend sitzen, sollten wir, am Ende des Dieser Algorithmus, haben nur ein Darlehen Seele, die nicht sitzen wollte schnell genug, aber wer hat das gesamte Publikum zählen in seinem oder ihrem Geist. Also, wenn Sie, würden wir voran gehen und - step one - aufstehen im Ort. Und auszuführen. [Menge Murmeln] DAVID MALAN: Wissen Sie, wo Lauren ist? 729? [Menge Murmeln] DAVID MALAN: Alles klar? [Menge Murmeln] DAVID MALAN: All right, sollten wir werden kurz vor dem Ende. Wir sehen ein Kerl hier stehen still. Wer sonst muss gepaart sein? Wenn Sie nie wieder ausziehen wollen paaren. Jemand bis oben. Warum kann ich nicht Hand anlegen hier. Für den ganz wenigen Menschen, die noch stehen, welche Zahlen Sie haben in Ihrem Kopf? STUDENT: 78. DAVID MALAN: 78 plus - wer steht hier unten? STUDENT: 39. DAVID MALAN: Plus-39. Plus-wer sonst noch steht? 81? OK, wer sonst? Ein weiterer 81? Wow. Und was ist dann auf der Rückseite? STUDENT: 49. DAVID MALAN: 49 plus? STUDENT: 98. DAVID MALAN: 98 Plus? Ist das jemand anders? 12? Gute Arbeit. [Gelächter] DAVID MALAN: Oh, 112 - oh. Good job! [Gelächter] [Applaus] DAVID MALAN: Anyone else noch stehen? Es tut uns leid? STUDENT: 99. DAVID MALAN: 99. Wer sonst noch stehen? Und die Gesamtzahl der Studenten hier ist eigentlich, nach - Sie haben eine Reihe? Oh, die tatsächliche Zahl der Menschen in der Raum, nach dem Bericht, dass die Lehre Gefährten taten auf jedermanns Weg in war 729. Also aus einem Raum voller Harvard-Studenten die gezählt selbst, die Antwort ist 637. [Gelächter] DAVID MALAN: So nah. Aber immer noch. OK, das ist so, dass eine Lehre Moment, nicht wahr? Dies ist jetzt das, was wir als einen Fehler zu beschreiben. Irgendwo auf dem Weg, wir haben einige Arithmetik, falsch ist oder jemand hingesetzt, oder links, oder etwas schiefgelaufen ist. Aber das ist in Ordnung. Denn auch noch, wir bekam ziemlich nahe. Und ich würde behaupten, dass wir an den falschen beantworten viel schneller, als ich hätte mit meinem mehr linearen Ansatz. Also nehmen wir an, wir haben in der Tat bekommen, dass zu korrigieren, aber denke, jetzt über das, was geschah jedes Mal, im Vergleich zu meinem eigene naive Algorithmus zeigt. Eine, zwei, drei. Wenn es tatsächlich 729 oder 637 Menschen hier, das würde mich genommen haben buchstäblich 637 oder 729 pointings des Fingers und Erhöhen meine Gesamtkeimzahl. Und ich könnte ein wenig besser zu machen, indem gehen zwei, vier, sechs, acht, und verdoppeln, dass die Geschwindigkeit, vielleicht sogar verdreifachen oder Vierbettzimmer, je nachdem, wie gut ich kann tun, dass das Zählen in meinem Kopf. Aber dieser Ansatz, dass ihr nahm war grundverschieden. Da am Anfang, Sie alle standen auf. Also alles 729. Und dann buchstäblich die Hälfte der Sie setzte sich. Und danach ein anderes die Hälfte von euch hingesetzt. Und danach ein anderes die Hälfte von euch hingesetzt. Und die Gesamtzahl der Zeiten, die Sie Jungs könnten hingesetzt haben, ist etwa acht oder neun oder zehn mal insgesamt, je nachdem, was unsere Gesamtkeimzahl ist. Und wir können von do sortieren diese umgekehrt. Wenn wir 1.024 Menschen mussten in den Raum, die Gesamtzahl der Zeiten konnte man halbieren 1.024 Personen ist 10. Jetzt darüber nachzudenken in die andere Richtung. Angenommen, lächerlich, dass wir hatten, sagen vier Milliarden Menschen in diesem Raum, oder ein etwas größeres Zimmer. Wie oft würden wir gegangen durch diesen Algorithmus, so dass die Hälfte dieser Klasse setzt sich? Es ist nur noch 32, so nehmen Operationen, auch in einer Klasse von Größe vier Milliarden. Warum? Weil vier Milliarden geht an zwei Milliarden, geht zu einer Million, geht an 500 Millionen Euro, geht an 250 Millionen, Punkt, Punkt, Punkt. Ich kann nur das tun, Abteilung rund 32 Zeiten, zu welchem ​​Zeitpunkt, alle außer eine Person würde stehen gelassen werden. Und das ist auch eine Art von leistungsfähigen Idee, dass wir immer versuchen, Hebelwirkung in diesem Kurs, und in Programmierung und Informatik mehr Im Allgemeinen sind diese Keime einer Idee mit was können wir dann Probleme zu lösen viel, viel stärker. Also begannen wir ganz einfach mit, dass Pseudocode und ein Kerl in einem Raum, aber Jetzt mit einem ganzen Raum voller Menschen haben wir grundsätzlich besser getan. Nun, lasst uns jetzt Übergang von Pseudocode zu einem gewissen eigentlichen Code. Diese Sprache Sie sind dabei zu sehen, passieren JavaScript genannt werden, und wir dies in Richtung Rückkehr Semester Ende. Es ist eine Programmiersprache, die Sie verwenden, um Websites und andere machen Software in diesen Tagen. Und wir haben es genutzt, dank einem Freund von uns in Stanford, zu kodieren einige versteckte Informationen hier. Das ist die Kunst der Steganographie, so zu sprechen, wo man sich verstecken Informationen in das, was sonst scheint sein Rauschen oder ein völlig anderes Bild insgesamt. Aber in diesem Bild eingebettet ist in der Tat eine geheime Nachricht von Arten. Also lassen Sie mich gehen Sie vor und nach oben ziehen das gleiche Bild hier, diese Zeit in einem Web-Browser. Und ich werde meine Hand auf einige winken die Einzelheiten für heute, besonders für diejenigen von euch, das sieht aus wie nicht nur JavaScript, sondern Griechisch, als völlig unbekannten Sprache. Aber dies ist ein Beispiel für Programmiersprache. Und jetzt, auf den Glauben nehmen, dass diese erste Zeile Code - und durch den Code, ich habe gerade meinen Text. Text, dass ich buchstäblich eingegeben haben in Microsoft Word, wenn ich die richtige Software, um dann etwas zu tun mit ihm. Programmierung Quellcode, Programmierung Code ist wirklich nur Text, und es sieht anders basierend auf welcher Sprache Sie verwenden, nicht anders als Englisch und Spanisch und Russisch alle anders aussehen Geben Sie, wenn Sie sie auf Ihrer Tastatur. Also dieser ersten Zeile, denn nun übernehmen Glauben, öffnet einfach eine Grafik aus der Internet, dass laut Grafik wir gerade gesehen haben. Das nächste Zeile hier ist ein Beispiel für eine Schleife und sahen wir tatsächlich die gleiche Jargon in der TED-Video. Eine Schleife ist etwas, das wieder passiert und wieder, und obwohl dies absolut kryptisch aussieht, mit der Stichwort für und einige Klammern und einige Semikolon. Wir kommen zurück zu der vor langer, aber, dass es im Wesentlichen Schleife erzählt das Programm durchlaufen alle dieser laut punkte, von links nach rechts, von oben nach unten. Denn am Ende des Tages, ein Bild so - und man kann tatsächlich irgendwie sehen es an diesem Projektor - ist wirklich nur ein Gitter von Punkten. So können wir erkennen jedes dieser Punkte durch ein Koordinatensystem, x, y, und damit Programm kann jetzt beginnen wir zu etwas tun, um diesen Punkten. Also, was ich werde es hier weiter gehen und Sie ist werde ich einige Änderungen vornehmen. Zuerst werde ich weitermachen und loswerden aller dieser grünlich und bläulich Lärm, und ich werde weitermachen und geben Sie den folgenden zugegebenermaßen kryptischen Syntax. im für Bild. Set blau an der Stelle x, Komma, Lage y, auf 0 gesetzt. Mit anderen Worten, ich möchte nur schalten Sie alle von dem blauen Punkte in diesem Bild. Ich werde jetzt nach vorne gehen und klicken diese Run / Schaltfläche Speichern, und du wirst Hinweise auf der rechten Seite, Das resultierende Bild wird angezeigt. Jetzt seine super grün, aber das ist nicht überraschend, weil ich buchstäblich gedreht aus, indem sie a 1 a 0, die alle das Blau in diesem Bild. Nun, jetzt machen wir es ein bisschen mehr. im zur Bild-, Punkt setGreen, x, y. Und das bedeutet nur iterate von links nach rechts und dann von oben nach unten. Drehen Sie, dass Sie mit einem Wert von 0, wie gut. Speichern. Und auf dem Projektor, können Sie eigentlich nicht wirklich sehen, überhaupt nichts. Auf meinem Laptop-Bildschirm, wenn ich nur in Peer der richtige Weg, kann ich sehen, ein bisschen ein Bild, weil sie immer noch einige rote drin. Wenn Sie jemals das Akronym RGB gehört - rot, grün, blau - es zu dieser Zusammensetzung bezogen eines Bildes unter Verwendung nur diese drei Farben. Und gerade jetzt, haben wir weggeworfen alle grün, alles blau, aber es gibt nicht viel rot. Also lassen Sie mich Kurbel bis die rote. Wie kann ich das tun? Nun, zunächst einmal, ich werde fragen dieses Programm eine Frage. Ich werde weitermachen und nennen wir es eine Variable, wie in der Algebra. Sie haben x oder y oder z. Ich werde eine Variable deklarieren und sagen, legte in dieser Variablen vorübergehend, der Wert der Bilder getRed Wert bei x, y. Und wieder, wir kommen zurück, um alle dieses Detail in der Zukunft. Aber für jetzt, nur auf den Glauben nehmen, dass diese Linie fragt das Programm, was ist der Rot-Wert an der Stelle x, y? Bei diesem bestimmten Punkt? Dann werde ich, um etwas zu tun. Dann werde ich Bildpunkt Set rot tun bei x, y, y, aber dieses Mal tue ich! steigern, indem Sie es mal rot, sagen wir mal, 10. So erhöhen sie um einen Faktor von 10. Lassen Sie mich jetzt und Verkleinern Klicken Sie könnten Run / Speichern. Und voila, das war die gesamte Zeit, auch wenn unsere menschlichen Augen konnte nicht ganz sehen. Also noch einmal, dies ist jetzt echten Code ein Beispiel für eine Sprache, die wir kommen zurück, vor langer. Aber klar, vor allem diejenigen von euch ohne solche Erfahrungen, ist es recht bald, dass wir selbst werden Schreiben von Code, wie, dass es. In der Tat, ein Werkzeug, mit dem Sie alle ein wenig vertraut, vielleicht ist das CS50 eigenen Kurs-Shopping-Tool, das war tatsächlich Neustart in diesem Sommer von einigen von CS50 eigenen ehemaligen Studenten, Jetzt drehen Transkriptionsfaktoren. So dies geschieht, um eine Website aufgebaut sein in einer Sprache namens PHP. Es verwendet eine Datenbank namens MySQL, Dinge mit denen wir uns die Hände schmutzig später im Semester. Aber glauben Sie es oder nicht, auch etwas wie dies letztlich reduziert sich die einfachsten Schleifen und Bedingungen und Zweige, wie diejenigen, die wir sahen nur eine vorhin in der TED-Video. Was ich dachte, ich würde jetzt tun ist Anteil nicht nur etwas, das wir das Personal haben für den Campus, sondern etwas ein ehemaliger Schüler - drei Studenten, in der Tat - machte im vergangenen Jahr, Sierra, Daniel und Sam, der letzte von ihnen hatte keine vorherige Programmierung Erfahrung wenn er nahm CS50. Und für ihre Abschlussarbeit, sie ausgestellt, am CS50 Fair, ein Anwendung namens wrdly, das ist ein web-basiertes Programm, für die sie gemacht Dieses Video, dass ich dachte, ich würde zu teilen geben Ihnen ein Gefühl dafür, was ist möglich Begriff am Ende. [Musik spielt] DAVID MALAN: Das ist ab KW Null bis Woche 12 im vergangenen Jahr. [Applaus] DAVID MALAN: Als Teaser auch wirklich um Appetit ist zu dem, was möglich, können Sie bereits gesehen haben, oder vielleicht schon bald sehen, market.cs50.net, eine neues Werkzeug, das Team hat natürlich wurde über die Arbeitsbedingungen, diesmal in Zusammenarbeit mit Harvard-Student Agenturen, so dass ab diesem Jahr und Weiterbildung hoffentlich in dieser kommenden Sommer haben Sie eine Standard- Möglichkeit auf dem Campus zu kaufen und verkaufen Dinge für Sie von Interesse. Und mit Partnerschaft durch HSA, werden Sie auch in der Lage, Gegenstände fallen aus in einem physikalischen Speicher HSA auf einige Zeitpunkt in der Zukunft, um Proxy Dinge, vor allem, wie Sie Absolvent und wollen nicht unbedingt zu verwerfen Dinge, aber es tatsächlich zahlen zu übermitteln, um Leute, die dir folgen könnte hier auf dem Campus. Also mehr dazu kommen. Aber ein wenig konkreter, ein Werkzeug das ist von CS50 in den letzten kommen Jahre, mit dem einige von euch vielleicht sein vertraut und andere von Ihnen vielleicht Googeln jetzt, in CS50.net/2x, werden Sie finden Sie einen Link zu einer Chrome-Erweiterung das ist demonstrative, wie Sie JavaScript verwenden, dass wir dieselbe Sprache verwendet mit dem Eiffel-Turm vor einem Augenblick, bis 2x Abspielgeschwindigkeit implementieren für alle Harvard iSites Videos. Dies ist etwas, das ist gebaut CS50 in der eigenen Video-Player. Aber auch dies, wenn Sie beginnen zu graben in den Quellcode, die wir werden glücklich zur Verfügung stellen, werden Sie sehen, wie Sie können sogar Probleme zu lösen wie das, Beschleunigung Widgets in Webseiten mit denen Sie bereits bestens vertraut. So ein Wort jetzt auf den Verlauf und Erwartungen und was vor uns liegt. In der Regel werden wir in der Tat versammeln sich hier montags und mittwochs - obwohl an diesem Freitag, wir sammeln, weil von Shopping Week - 1.00 bis 14.00 Uhr, obwohl manchmal bis 2:30 Uhr. Vorausgesetzt, dass Sie könnte daher wollen oder haben einige Klasse um 2:00 Uhr nehmen Weiterreise oder sogar vor, schon klar, die Natürlich ist unterstützend, was heißt gleichzeitige Immatrikulation, wobei wir werden unterstützt eine Petition an den Ad-Board und Ihren Wohnsitz Dekane in Ihrem Namen, wenn Sie haben einen Konflikt irgendwo in dieser 1.00 Uhr bis 02.30 Uhr zu finden. Head to dieser URL online weitere Details. Aber in Bezug auf die Tragstruktur das charakterisiert CS50, für Studenten mehr und weniger komfortabel gleichermaßen, wir bieten deutliche Spuren von Abschnitten. Und das ist ein paar Wochen weg, aber es dauerte nicht lange, werden Sie gefragt werden, wie Ihren Komfort. Sind Sie unter die weniger komfortabel, komfortabler, oder irgendwo dazwischen? Und wir haben drei verschiedene Spuren, die zu versorgen genau jene Zielgruppen. Also an keiner Stelle in dem Begriff sollten Sie sogar das Gefühl, wie Sie im Wettbewerb sind gegen jeden Studenten mit mehr oder weniger Hintergrund als Sie. Tatsächlich ist der Kurs sein soll viel mehr Zusammenarbeit und viel offener als die. In Bezug auf die Problem-Sets, werden Sie finden auch, dass zusätzlich zu den standard edition jeder Woche das Problem gesetzt ist, gibt es oft eine "Hacker edition ", die eigentlich gezielt sucht in der 5% bis 10% oder so der demographischen, die in der Tat ist unter denen, mehr wohlgefühlt und würden gerne mehr eine Herausforderung als die Standard- Ausgabe dieser pset erwartet. Weitere Details auf diejenigen zu sein gefunden in den Lehrplan. Aber auch dort finden Sie Details werden zu den Kursen späten Tage. Typischerweise Problem setzt sind am Donnerstag. Sie können jedoch verlängern viele Ihrer Fristen in diesem Herbst von Donnerstag bis Freitags einfach durch die Erfüllung uns auf halbem Weg, so zu sprechen, beantworten ein paar Warm-up Fragen in einigen der Woche das Problem Sätze, die automatisch dann geben wir Ihnen einen zusätzlichen 24 Stunden. Wir werden auch Drop Ihre niedrigsten Partitur, nach dem Lehrplan. Um Ihnen ein Gefühl dafür, was das Problem Sätze sind - weil es in der Tat ist des Kurses Problem stellt, dass letztlich fast jeder definieren Schüler Erfahrung, um so mehr als Vorträge, um so mehr, als Abschnitte, mehr so als die meisten anderen Aspekt des Kurses. Letztes Jahr, zum Beispiel, haben wir begonnen, als wir werden in diesem Jahr beginnen, mit Scratch. Besonders an diesem Freitag, verwenden wir für nur einen Tag Zeit, ein grafisches Programmiersprache, mit denen wir werde Programmierung beginnen durch Ziehen und Fallenlassen Puzzleteile, dass nur montieren körperlich, wenn es Sinn macht so logisch zu tun. Nächste Woche werden wir schnell Übergang zu C, ein ziemlich alt, aber sehr klein und einfache Sprache, die es uns ermöglichen, wird wirklich von 0 bis 60 gehen im Laufe von nur ein paar Wochen, und dann parlay die gleichen Fähigkeiten und Kenntnisse der grundlegende Programmierung Konstrukte in höheren Sprachen wie PHP, JavaScript und wieder andere noch. Letztes Jahr hat die dritte pset im Verlauf war, dass der Kryptographie, ein domain-spezifische Anwendung, wobei wir herausgefordert Studenten zu einem implementieren Anzahl der Chiffren, Programme, mit denen zu verschlüsseln oder entschlüsseln Informationen um es zu verschlüsseln. Für die Hacker Ausgabe hingegen Wir gaben den Studenten Hacker eine Datei von einem Standard-Unix-Rechner mit Benutzernamen und Kennwörter, von denen die letztere waren verschlüsselt und wir herausgefordert, diese Hacker Studenten zu entschlüsseln, so gut sie konnten, diese Passwörter, noch auf, dass derselben Domäne. Scramble, ein Spiel mit dem gewissen von Ihnen sind vielleicht vertraut. Ein Stück Forensik, wo wir fragen Sie die Schüler auf Daten, die hatte erholen sonst aus meiner eigenen digitalen gelöscht Kamera Compact-Flash-Karte, durch tatsächlich das Schreiben von Software, um herauszufinden, wo waren die Nullen und Einsen in die digitale Kamera, die vorher komponierte eine JPEG-Grafik? Eine Herausforderung der Arten im vergangenen Jahr mit Schreiben der schnellste Rechtschreibprüfung möglich, konkurrierende gegen Freunde und Klassenkameraden, wenn sie möchten. Implementieren Huff 'n Puff, ein Packprogramm. Und dann endet das Semester mit CS50 Finanzen, eine web-basierte Anwendung mit die Sie erstellen eTrade-ähnliche Website um Aktien kaufen und verkaufen, so zu sprechen, indem tatsächlich ziehen fast Real-Time-Kurse Yahoo! Finanzieren. Was wir nicht tun im vergangenen Jahr war ein Problem, das Set bleibt dennoch ein Favorit. Wenn Sie noch nie gegangen shuttle.cs50.net, sehen Sie einen Benutzer Schnittstelle ein wenig wie diese. Aber vor zwei Jahren, die Klasse implementiert, mit Google Maps und die Google Earth-Plug-in und ein wenig der versierte mit dem Fahren auf dem Campus, so dass das Ziel dieses Spiels war, wie Sie sehen können einige der Gesichter, wird rund um den Campus fahren auf der Suche nach Personal-, Lehr-Stipendiaten und Zertifizierungsstellen und wenn Sie das tun, setzen sie auf Ihren Shuttle-Bus. Keiner von ihnen tatsächlich scheint hier zu sein, so werden wir einen Cheat-Code eingeben. [Gelächter] DAVID MALAN: Dort gehen wir. In Ordnung. Und hier ist jetzt das Personal geschnürt gesamten Campus. Und wie Sie sehen können, auf der rechten Hand Seite des Bildschirms, der Shuttle-Bus hat leere Sitze. Und das Ziel war es, die schreiben Code, mit dem diese zu simulieren Fahren und Aufnehmen und Ablegen Aus der Passagiere. Dass man auch mit einer Sprache JavaScript genannt. So erkennen, dass Programme wie dieses Willens auf unserer gleiche Weise diese Jahr, wie gut. In Bezug auf die nun zusätzliche Unterstützung, wir haben Bürozeiten. Wie Sie vielleicht in Ihrem eigenen Haus gesehen haben Speisesaal oder in Annenberg, wir im Haus Speisesaal sein Hallen vier Nächte pro Woche - Leverett, Pfoho, Eliot und Annenberg in diesem Jahr, von 20.00 bis 11.00 Uhr. Und was wir dachten, wir würden in diesem Jahr ist etwas ein wenig anders. Wenn Sie hören, Rumoren im vergangenen Jahr, dass es war ein bisschen zu anstrengend, diese Jahr der Bürozeiten, wie wir beschreiben nächste Woche werden mehr organische, wobei bei der Ankunft, werden Sie entsandt, um eine bestimmte Tabelle in denen mehrere Mitarbeiter erwarten, und wir werden die Dinge viel mehr zu tun organisch. Keine Warteschlange, kein iPad, aber eher intimere Gespräche um einen Tisch von nur acht oder so Studenten, so dass wir ungefähre das Gefühl von dem, was sonst würde ein viel kleinerer Klasse. Wir bieten, als auch, diese Dinge, die wir genannt Komplettlösungen, Videos in gefilmt dadurch zu einer der Verlauf der Lehre Stipendiaten, Zamyla, in dem sie führt Sie durch die Woche das Problem Sätze, mit Tipps und Tricks für die Herausforderungen, die vor uns liegen. Und umgekehrt, nach Problem-Sets sind Grund, in diesem Jahr, werden wir auch loslassen kleine Clips nennen Obduktionen dass tatsächlich gehen Sie durch Vertreter Lösungen, sowohl gute als auch schlecht, über die Sie schließen, wie Sie haben könnten oder sollten Ihre eigene Lösung implementiert. Und was werden wir zum ersten Mal bieten auch in diesem Jahr, vor allem für diejenigen Studierenden, die sich in Anspruch nehmen des Kurses der anderen Ressourcen, aber dennoch kämpfen all zu viel, der Kurs selbst wird koppeln die Schüler, wie Ressourcen zu ermöglichen, mit den Lehrern, so dass Sie haben eine viel intimere Gelegenheit als Haus Mensen ermöglichen one-on-one Hilfe. Jetzt eine abschließende Blick auf einige Ende der Spiele in Sicht. Sie könnten sich mit die CS50 Hackathon. Nun, kommen dieses Jahr im Dezember von 8:00 Uhr bis 07.00 Uhr, zu Beginn des Lesen Zeitraum, wird eine Gelegenheit sein, sich mit Klassenkameraden zu sammeln - dies um 21.00 Uhr sein - in denen Sie tauchen ein in die endgültige Projektdurchführung neben Klassenkameraden, Freunde und Essen. Dies würde um 01.00 Uhr sein, wenn die erste Partie von Essen kam. Und hier geht es um 04.00 Uhr, dass bestimmten Jahr am CS50 Hackathon. Aber der wahre Höhepunkt des Kurses ist soll der CS50 Fair, ein Campus-weiten Ausstellung der eigenen letzten Projekte, auf die Familie und Freunde sind alle eingeladen, da unsere Personalvermittler und unsere Freunde aus der Industrie. Diese, zum Beispiel, ist ein Blick auf die 2.000-plus Leute, die bereits besucht vergangenen Jahren. Ausdrücke wie diese sind nicht selten, und in ähnlicher Weise machen Sie Ihre Mitschüler begeistern in Sachen Sie erreicht haben. Und tatsächlich, zu diesem Zweck haben wir ein Start-of-Begriff Ereignis, wie gut. Wenn Dinge wie diese Appell an Sie, oder Sie sind mindestens so neugierig auf das, was Diese wissen, dass eine neue Tradition der Natürlich heißt CS50 Puzzle Day. Und das war ein paar eingeleitet Jahre zurück, um wirklich auf dem Campus signalisieren dass Informatik geht es nicht um Programmierung, und es ist sicherlich nicht zu umarmen nur diejenigen Studenten , die bereits Erfahrung. Es geht wirklich um Problemlösung allgemein. Und so Denksport Tag, in den letzten paar Jahren hat sich in eine schöne entwickelt Partnerschaft mit unseren Freunden bei Facebook, wobei es bald fabelhaften Preise und Pizza über den Fluss an das i-lab am kommenden Samstag. Gehen Sie zu dieser URL mit zwei oder drei Freunde, wenn Sie möchten teilhaben in dieser neuen Tradition. So möchte ich darum bitten, dass Sie ein zu halten Sache im Auge, und wir haben nur eine bekam 2 Minuten Clip, auf dem zu schließen heute. 73% ist die Zahl zu erinnern. Kuchen, zu, werden Sie außerhalb dieser erwarten Querschiff wie wir vertagen in nur paar Momente, ist die Tradition des Kurses, wie gut. Aber dies ist der Schlüssel Zitat aus der Natürlich der Lehrplan im Auge zu behalten. Was letztlich zählt in diesem Kurs ist nicht so sehr, wo Sie am Ende bezogen auf Ihre Mitschüler aber wo Sie, in Woche 12, am Ende relativ zu sich in Woche 0. Aber der Blick, dass wir Ihnen verlassen mit hier und heute ist diese letzte hier von unseren gleichen Daniel tat, wer die wrdly Video nur einen Augenblick vor. Ich überlasse es Ihnen mit diesem Blick von dem, was vor uns liegt. Und wie wir das tun, wenn wir könnten CS50 Personal aus dem vorderen Teil des Raumes auf bis auf die Bühne kommen, um alle malen die mehrere visuelle Bild, um Was erwartet Sie in diesem Jahr - immer umständlich. Wir werden mit diesem abschließen hier auf dem Bildschirm. [Musik spielt] DAVID MALAN: Dies ist CS50. [MUSIC - MATT & KIM, "es ist in Ordnung"] Sprecher 1: Ich liebe CS50 mehr als Katzen. Sprecher 2: Whoaaaa! [Gelächter] DAVID MALAN: Dies ist also CS50. Wir werden Sie am Freitag zu sehen. [Applaus und Jubel] SPRECHER: Bei der nächsten CS50, eine Bühne Demo funktioniert nicht wie geplant. DAVID MALAN: Wir wollen Mike finden Smith in diesem Telefonbuch. Nun, was sind Ihre Instinkte? Ich könnte etwa springen in die Mitte des das Telefonbuch, Blick nach unten, sehen, dass Ich bin bei M, und ich weiß jetzt, dass Mike Smith nicht nach links. Er muss auf der rechten Seite. Und so an diesem Punkt haben wir kann buchstäblich zerreißen - An dieser Stelle können wir buchstäblich zerreißen - An dieser Stelle können wir bildlich reißen das Telefonbuch in zwei Hälften. [Ukulele Geklimper]