>> [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.
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 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]